Amazon MQ Features

Amazon MQ Features

With Amazon MQ, you can use the AWS Management ConsoleAWS CloudFormation, the Command Line Interface (CLI), or simple API calls to launch a production-ready message broker in minutes. Amazon MQ manages administrative tasks such as hardware provisioning, broker setup, software upgrades, and failure detection and recovery.

Amazon MQ provides encryption of your messages at rest and in transit. It’s easy to ensure that your messages are securely stored in an encrypted format. Connections to the broker use SSL, and access can be restricted to a private endpoint within your Amazon VPC, which allows you to isolate your broker in your own virtual network.

Amazon MQ is integrated with AWS Identity and Access Management (IAM) and provides you the ability to control the actions that your IAM users and groups can take on specific Amazon MQ brokers. Authentication from applications to the broker itself is provided using username and password-based authentication, and optionally using LDAP (Lightweight Directory Access Protocol) for ActiveMQ brokers.

Amazon MQ currently supports five broker instance types: mq.t3.micro, mq.m5.large, mq.m5.xlarge, mq.m5.2xlarge, and mq.m5.4xlarge/ The mq.t3.micro instances are designed for product evaluation while the mq.m5 instance types are designed for production workloads. Amazon MQ supports a single-instance deployment mode recommended for evaluation and testing, and replicated highly available deployment modes recommended for production.

Amazon MQ provides cost-efficient and flexible capacity, and there is no minimum fee. You pay for the number of hours your broker instance runs and the storage you use monthly. It’s easy and inexpensive to create new brokers for additional capacity. For more details see Amazon MQ Pricing.

The AWS Free Tier includes up to 750 hours of a single-instance mq.t2.micro or mq.t3.micro broker, and up to 5GB of Amazon EFS storage per month for an ActiveMQ broker or 20GB of Amazon EBS for a RabbitMQ broker, for one year.

RabbitMQ Features

RabbitMQ cluster brokers on Amazon MQ are backed by Amazon EBS, and use multi-AZ replication for high-availability and message durability. Data transfer for inter-node replication is included at no additional cost. Clusters are created behind a single-endpoint for high availability, simple management, and easy connection from your application.

Messages in RabbitMQ brokers are routed through exchanges before arriving at queues. RabbitMQ features several built-in exchange types for typical routing logic. RabbitMQ on Amazon MQ also supports multiple queue types including classic queues, classic mirrored queues, and quorum queues. Quorum queues are only supported on RabbitMQ 3.13 and above. Amazon MQ recommends quorum queues be used as the default replicated queue type for your workloads.

Develop using your favorite programming languages, including: Python, .NET, PHP, Python, JavaScript, Ruby, Java, and Go.

For a full description of RabbitMQ’s features, please see the RabbitMQ website.

ActiveMQ Features

Amazon MQ for ActiveMQ provides durability-optimized brokers backed by Amazon Elastic File System (Amazon EFS) to support high availability and message durability. Durability-optimized brokers, backed by Amazon Elastic File System (Amazon EFS) store messages in a redundant manner across multiple Availability Zones (AZs). Active-standby brokers automatically fail over to a standby instance if a broker or AZ fails, so you can continue sending and receiving messages.

Amazon MQ also supports creating throughput-optimized message brokers backed by Amazon Elastic Block Store (EBS), perfect for use cases that require high throughput such as high-volume order processing, stock trading, text processing and many more. Throughput optimized message brokers reduce the number of brokers required, and cost of operating, high-volume applications using Amazon MQ.

ActiveMQ supports a wide range of clients including Java Message Service (JMS v1.1 and JMS v2.0), NET Message Service (NMS), and a range of other languages including Node.js, Go, Python, Ruby, and C++. ActiveMQ also supports wire-level protocols including AMQP, STOMP, OpenWire, WebSocket, and MQTT. This compatibility with industry standards facilitates migration from existing message brokers, enables interoperability between vendors, and helps you avoid vendor dependency.

ActiveMQ provides all the standard JMS features including point-to-point (message queues), publish-subscribe (topics), request/reply, persistent and non-persistent modes, JMS transactions, and distributed (XA) transactions. In addition to basic queues and topics, ActiveMQ also supports more complex patterns such as composite destinations (producers can send the same message to multiple destinations, useful for real-time analytics) and virtual destinations (publishers broadcast messages via a topic to a pool of receivers subscribing through queues).

For a full description of ActiveMQ’s features, please see the Apache ActiveMQ website.