Running RabbitMQ on Amazon EC2

RabbitMQ

Features
Get Started
Support
Community
Docs
Blog

Overview

This guide assumes familiarity with the general clustering guide as well the guide on cluster peer discovery.

Using RabbitMQ on EC2 is quite similar running it on other platforms. However, there are certain minor aspects to EC2 that need to be accounted for. They primarily have to do with hostnames and their resolution.

This guide demonstrates manual (CLI-driven) RabbitMQ clustering. Peer discovery plugin for AWS (RabbitMQ 3.7.0 or later) is an option more suitable for automation.
AMIs

Pivotal currently does not provide AMI images with RabbitMQ pre-provisioned. RabbitMQ works well on up-to-date Ubuntu, Debian and CentOS AMIs as long as a compatible version of Erlang/OTP is installed.
Choosing an Instance Type

RabbitMQ will work on every instance type, but there are a few considerations worth bearing in mind:

Use 64-bit instances.
Depending on the workload and settings, RabbitMQ can require substantial amounts of memory. Make sure that your host does have an appropriate amount of RAM and always have at least a few gigabytes of swap space enabled. Workloads can be simulated using PerfTest. A separate guide on reasoning about node memory usage is available.
RabbitMQ generally will take advantage of all the CPU cores in the system provided the workload uses multiple queues. Other factors should be taken into account (e.g. disk and network I/O throughput).
Monitoring RabbitMQ nodes as well as applications that use it on real or simulated workloads will help assess how suitable a particular instance type is.

Operaing Systems

Although RabbitMQ is tested with most major Linux distributions, Ubuntu support for Amazon EC2 seems to be strongest, so that’s the distribution this guide will use.

See Ubuntu Cloud Images and Ubuntu EC2 Starters Guide.
Installation

Please consult the installation guides for

Debian and Ubuntu
RHEL, CentOS and Fedora

A wide variety of deployment tools can be used to automate RabbitMQ deployment.

Community Docker image (on GitHub)
Chef cookbook
Puppet module

are some popular options.
Durable Storage on EBS Volumes

On Linux, RabbitMQ will use the following directories for its node data directory:

/var/lib/rabbitmq/ to store persistent data like the messages or queues
/var/log/rabbitmq/ to store logs

See the File and Directory Locations for details.

Those directories can be symlinks to a dedicated storage volume. The node must be stopped before symlinking is performed:

sudo service rabbitmq-server stop

We recommend performing symlinking and other storage preparation steps before installing RabbitMQ when possible.

Note that EBS volumes have an IOPS limits, which can impact thoughput and RabbitMQ operations. If an EBS volume hits the limit, disk writes will worsen. It is also possible that the RabbitMQ message store compaction (garbage collection of on-disk data) can fall behind disk writes, which means the disk will be filled up quicker than disk space can be reclaimed after messages were consumed and acknowledged. This will eventually lead to resource alarms and publisher throttling. Please make sure the limit is high and set up I/O operation rate monitoring.
Further Reading

Several other guides cover topics highly relevant for running RabbitMQ clusters in public clouds:

Custering Fundamentals
Peer Discovery
Configuration
Monitoring
Production Checklist
File and Directory Locations

Getting Help and Providing Feedback

If you have questions about the contents of this guide or any other topic related to RabbitMQ, don’t hesitate to ask them on the RabbitMQ mailing list.
Help Us Improve the Docs ❤️

If you’d like to contribute an improvement to the site, its source is available on GitHub. Simply fork the repository and submit a pull request. Thank you!
In This Section

Install: Windows
Install: Debian and Ubuntu
Install: RPM-based Linux
Install: Homebrew
Install: Windows (manual)
Install: Generic binary build
Install: Solaris
Install: EC2
Upgrade
Blue-green deployment-based upgrade
Supported Platforms
Changelog
Erlang Versions
Signed Packages
Java Client Downloads
.NET Client Downloads
Erlang Client Downloads
Community Plugins
Snapshots

RabbitMQ

Features
Get Started
Support
Community
Docs
Blog

Copyright © 2007-2020 VMware, Inc. or its affiliates. All rights reserved. Terms of Use, Privacy and Trademark Guidelines

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值