AWS News Blog

Amazon MQ Update – New RabbitMQ Message Broker Service

Voiced by Polly

In 2017, we launched Amazon MQ – a managed message broker service for Apache ActiveMQ, a popular open-source message broker that is fast and feature-rich. It offers queues and topics, durable and non-durable subscriptions, push-based and poll-based messaging, and filtering. With Amazon MQ, we have enhanced lots of new features by customer feedback to improve high scalability and availability such as vertical scaling and throughput-optimized message brokers with 99.9% Service Level Agreement (SLA), to support LDAP Authentication and Authorization, and to build compliant applications such as HIPAA, ISO/PCI DSS, SOC, and FIPS 140-2 validated endpoints in US Commercial Regions.

Not only ActiveMQ, but RabbitMQ is also one of the most popular open source message brokers and a critical component of distributed applications, like commodities trading and order processing software. Some customers choose RabbitMQ for its feature richness, active community support, and broad range of supported clients and frameworks. However, RabbitMQ message brokers require significant investment in the expertise needed for creating and patching complex clustered deployments. Companies willing to change to a different broker, and to migrate to a managed service, had to invest weeks in changing their application.

Today, we are launching Amazon MQ for RabbitMQ, a managed messaging service that reduces the operational overhead for companies managing RabbitMQ message brokers. Thousands of customers have already used Amazon MQ to reduce the operational overhead for their messaging infrastructure. Expanding Amazon MQ application compatibility by adding RabbitMQ frees more companies from the complexity of deploying, scaling, and operating message brokers.

You can continue to use your preferred broker and have cost-efficient scalable messaging capacity with reduced operational overhead. Amazon MQ manages the work involved in setting up both individual and clustered message brokers: from provisioning the infrastructure capacity to installing the messaging software. Once it is up and running, Amazon MQ handles administrative tasks such as patching the operating system and messaging software.

Amazon MQ for RabbitMQ – Getting Started
To create new RabbitMQ message brokers, you can click the Get started button in Amazon MQ console and select a broker engine, either ActiveMQ or RabbitMQ that offers native support for the AMQP 0.9.1 protocol with client libraries for a variety of platforms, including Ruby, Python, Node.js, .NET, and more.

In the next step, select a deployment mode of RabbitMQ. Single-broker deployment will have one broker instance in one Availability Zone, Cluster deployment will have a logical grouping of three nodes, each sharing a distributed state, users, and queues. In a cluster deployment, data is stored redundantly across multiple Availability Zones to provide message durability.

RabbitMQ clusters support classic queue mirroring for use cases that require high availability. Mirrored queues replicate messages across multiple nodes. If the main node that hosts a queue fails, a mirror node is promoted to the main node, resulting in uninterrupted availability.

In the next step, enter a Broker name and choose the instance type. You can select mq.t3.micro for basic evaluations eligible for the Free Tier with a single-instance broker deployment. Enter Username and Password to access RabbitMQ web console.

For your additional setting, you can choose a broker engine version, enable CloudWatch Logs to publish the broker’s logs to Amazon CloudWatch, and set the access type to outside Virtual Private Cloud (VPC) or only within VPC. If you select Private access, you can assign VPC/Subnet(s) to attach your EC2 instances and Security group(s) to define the rules that authorize connections from all EC2 instances and devices that require access to your broker instance.

Click Next and review your setting and click Create broker button, which your broker will be created and ready to use in 5-10 minutes.

You can create a RabbitMQ broker via a simple command of AWS Command Line Interface (AWS CLI) for the cluster deployment:

$ aws mq create-broker --broker-name myRabbitCluster \
        --deployment-mode CLUSTER_MULTI_AZ \
        --engine-type rabbitmq \
        --engine-version 3.8.6 \
        --host-instance-type mq.m5.large \ 
        --publicly-accessible \
        --users ConsoleAccess=true,Username=admin,Password=str0nGpass@#,Groups=admin

Once your new broker was created, the web console URL and endpoints that you use to access your broker are all available at a click:

You can access the RabbitMQ web console at the link provided. I simply tested this broker using the Pika Python client:

The broker publishes instance, topic, and queue metrics to CloudWatch. To learn more, read the Amazon MQ for Rabbit MQ Developer Guide.

Available Now
Amazon MQ for RabbitMQ is available now and you can start using it in all regions where Amazon MQ is currently available. Please send us feedback either in the AWS forum for Amazon MQ or through AWS support, or your account team.

Learn all the details about Amazon MQ for RabbitMQ and get started today.

Channy

Channy Yun

Channy Yun

Channy Yun is a Principal Developer Advocate for AWS, and passionate about helping developers to build modern applications on latest AWS services. A pragmatic developer and blogger at heart, he loves community-driven learning and sharing of technology, which has funneled developers to global AWS Usergroups. His main topics are open-source, container, storage, network & security, and IoT. Follow him on Twitter at @channyun.