HAQM MQ is a managed message broker service for Apache ActiveMQ and RabbitMQ that makes it easy to set up and operate message brokers in the cloud. You can directly access the ActiveMQ console, RabbitMQ console, industry standard APIs and protocols for messaging, including JMS, NMS, AMQP 0.9.1, AMQP 1.0, STOMP, MQTTv3, and WebSocket. You can create a new HAQM MQ broker using these standards with a few steps, or migrate existing message brokers to HAQM MQ without rewriting messaging code.
General
Open allWhat is HAQM MQ?
Who should use HAQM MQ?
HAQM MQ is suitable for enterprise IT professionals, developers, and architects who plan to adopt industry standard messaging APIs and protocols to decouple and scale their applications on the cloud without the operational burden of managing the message broker itself.
What does HAQM MQ manage on my behalf?
HAQM MQ manages the process of setting up a message broker and provisioning the infrastructure and open-source broker engine software. Once your broker is up and running, HAQM manages ongoing software upgrades, security updates, fault detection, and recovery.
With a few steps, you can create an HAQM MQ multi-AZ deployment broker. HAQM MQ automatically manages the nodes in the deployment, replicates data for high availability, deploys patches regularly, manages integrations with AWS services, makes important metrics visible, and supports broker engine version upgrades so you can take advantage of the latest improvements to the open-source versions.
When would I use HAQM MQ vs. managing ActiveMQ, or RabbitMQ, on HAQM EC2 myself?
With HAQM MQ, you do not have to worry about administration tasks such as broker provisioning, security patching, setup, configuration, broker version upgrades, or recovery. You may want to consider HAQM MQ when you want to offload operational overhead and associated costs. If you want greater control to customize features and configurations or to use custom plugins, you may want to consider installing and running your message broker on HAQM EC2 directly.
In certain use cases, the inter-node data transfer for RabbitMQ can result in high costs on a self-managed cluster. HAQM MQ does not charge for inter-node data transfer for RabbitMQ brokers.
How can I get started with HAQM MQ?
HAQM MQ makes it easy to set up and operate message brokers in the cloud. With HAQM MQ, you can use the AWS Management Console, CLI, or API calls to launch a production-ready message broker in minutes. In most cases, you can simply update the endpoints of your HAQM MQ broker to connect to your existing applications and start sending messages.
Try a short tutorial, Create a Connected Message Broker, to get started today.
What AWS regions offer HAQM MQ?
HAQM MQ region availability is documented here.
Migrating to HAQM MQ
Open allHow do I migrate if I am using a different message broker instead of ActiveMQ or RabbitMQ?
HAQM MQ provides compatibility with the most common messaging APIs, such as Java Message Service (JMS) and .NET Message Service (NMS), and protocols, including AMQP, STOMP, MQTT, and WebSocket. This makes it easy to switch from any standards-based message broker to HAQM MQ without rewriting the messaging code in your applications. In most cases, you can simply update the endpoints of your HAQM MQ broker to connect to your existing applications, and start sending messages.
Apache ActiveMQ
Open allWhat is Apache ActiveMQ?
Apache ActiveMQ is an open source, multi-protocol, Java-based message broker.
Which versions of ActiveMQ does HAQM MQ support?
HAQM MQ supports ActiveMQ Classic version 5.18 by default. Customers can choose older versions such as ActiveMQ 5.17, but HAQM MQ does not recommend them.
How will new versions of the ActiveMQ be supported on HAQM MQ?
HAQM MQ will continually add support for new ActiveMQ versions. The number of new versions supported will vary based on the frequency and content of releases by the open-source maintainers.
How do I specify the supported ActiveMQ version for my broker?
You can specify the ActiveMQ version (e.g. ActiveMQ 5.17.6) when creating a new broker via the AWS Management Console or the CreateBroker API. HAQM MQ will provide the latest version available by default on the AWS Management Console.
How can I upgrade my broker to the latest supported ActiveMQ version?
You can manually upgrade your broker at any time to the next supported major, minor, or patch version. When you turn on automatic minor version upgrades, HAQM MQ will upgrade your broker to the latest supported patch version during the next maintenance window. HAQM MQ will upgrade all brokers to the next supported minor version when the current minor version reaches end of support.
What will happen when a version of ActiveMQ on HAQM MQ reaches end of support?
HAQM MQ supports ActiveMQ versions up to the end of support date indicated in the ActiveMQ version support calendar. HAQM MQ will provide at least 90 days of notice before a version reaches end of support. HAQM MQ will upgrade all brokers to the next supported version when the current minor version reaches end of support.
Why can I not create a ActiveMQ broker on a particular version?
In some cases, HAQM MQ may end support for specific versions without prior notice, such as when a version does not meet our high quality, performance, or security bar. In the unlikely event that such cases occur, HAQM MQ will prevent the creation of new brokers with these versions and upgrade existing brokers to the next supported version that meets our bar. Specific circumstances may dictate different timelines depending on the issue being addressed.
What type of storage is available with HAQM MQ for ActiveMQ?
HAQM MQ for ActiveMQ supports two types of broker storage – durability optimized using HAQM Elastic File System (HAQM EFS) and throughput optimized using HAQM Elastic Block Store (EBS). To take advantage of high durability and replication across multiple Availability Zones, use durability optimized brokers backed by HAQM EFS. To take advantage of high throughput for your high-volume applications, use throughput optimized brokers backed by EBS.
What is an HAQM MQ network of brokers?
HAQM MQ for ActiveMQ uses the “network of brokers” feature that is part of Apache ActiveMQ. A network of brokers consists of multiple brokers connected in a mesh. Brokers in the network share information about the clients and destinations each broker hosts. The brokers use this information to route messages through the network. With HAQM MQ, the brokers in the network can either be active-standby brokers (each active broker in the network has a standby node, with shared storage, that will take over if the active node fails), or single-instance brokers (if the node fails, it will be unavailable until it is restarted). Each broker in the network maintains its own unique message store which is replicated across multiple availability zones (AZs) within a region for active/standby brokers, using durability-optimized storage. The nodes in the network forward messages to each other, so messages are stored by a single broker at any given time. You should use network of brokers if you require high availability with fast reconnection in the case of broker failure, or if you need the ability to scale horizontally.
RabbitMQ
Open allWhat is RabbitMQ?
RabbitMQ is an open source, multi-protocol message broker supporting a wide variety of messaging use cases.
Which versions of RabbitMQ does HAQM MQ support?
HAQM MQ supports RabbitMQ version 3.13 by default. Customers can choose older versions such as RabbitMQ 3.8, 3.9, 3.10, 3.11 or 3.12, but HAQM MQ does not recommend them.
How will new versions of the RabbitMQ be supported on HAQM MQ?
HAQM MQ will continually add support for new RabbitMQ versions. The number of new versions supported will vary based on the frequency and content of releases by the open-source maintainers.
How do I specify the supported RabbitMQ version for my broker?
You can specify the RabbitMQ version (e.g. RabbitMQ 3.13) when creating a new broker via the AWS Management Console or the CreateBroker API. HAQM MQ will provide the latest version available by default on the AWS Management Console.
How can I upgrade my broker to the latest supported RabbitMQ version?
You can manually upgrade your broker at any time to the next supported major or minor version. When you turn on automatic minor version upgrades, HAQM MQ will upgrade your broker to the latest supported patch version during the next maintenance window. HAQM MQ will upgrade all brokers to the next supported minor version when the current minor version reaches end of support. From RabbitMQ version 3.13 onwards, HAQM MQ will manage the patch version for you and ensure all brokers are on the latest patch version of the minor version.
What will happen when a version of RabbitMQ on HAQM MQ reaches end of support?
HAQM MQ supports RabbitMQ versions up to the end of support date indicated in the RabbitMQ version support calendar. HAQM MQ will provide at least 90 days of notice before a version reaches end of support. HAQM MQ will upgrade all brokers on the version to the next supported version after it reaches end of support. All supported RabbitMQ versions today are backward compatible with each other.
Why can I not create a RabbitMQ broker on a particular version?
You can manually upgrade your broker at any time to the next supported major or minor version. When you turn on automatic minor version upgrades, HAQM MQ will upgrade your broker to the latest supported patch version during the next maintenance window. HAQM MQ will upgrade all brokers to the next supported minor version when the current minor version reaches end of support. From RabbitMQ version 3.13 onwards, HAQM MQ will manage the patch version for you and ensure all brokers are on the latest patch version of the minor version.
What plugins are available for RabbitMQ on HAQM MQ?
HAQM MQ for RabbitMQ includes the management, shovel, federation, and consistent hash exchange plugins on all brokers.
Integrations
Open allHow does HAQM MQ work with other AWS services?
Any application that runs on an AWS compute service, such as HAQM EC2, HAQM ECS, or AWS Lambda, can use HAQM MQ. HAQM MQ is also integrated with the following AWS services:
- HAQM CloudWatch - Monitor metrics and generate alarms
- HAQM CloudWatch Logs - Publish logs from your HAQM MQ brokers to HAQM CloudWatch Logs
- AWS CloudTrail - Log, continuously monitor, and retain HAQM MQ API calls
- AWS CloudFormation - Automate the process of creating, updating, and deleting message brokers
- AWS EventBridge Pipes – Use HAQM MQ message brokers as a source
- AWS Lambda - Use HAQM MQ message brokers as a source
- AWS Identity and Access Management (IAM) - Authentication and authorization of the service API
- AWS Key Management Service (KMS) - Create and control keys used to encrypt your data
Availability
Open allHow can I ensure high availability on HAQM MQ?
You can create a multi-AZ broker with a few clicks in the AWS Management Console or using the AWS SDKs. First, in the HAQM MQ console select an AWS region and broker engine type to create an HAQM MQ cluster in. You can choose from a three-node cluster deployment for RabbitMQ, an Active-Standby deployment or a mesh network of brokers for ActiveMQ.
When I create an HAQM MQ cluster, do the underlying resources (e.g. HAQM EC2 instances) show up in my EC2 console?
No, EC2 instances are not visible in your EC2 account as these are managed by the HAQM MQ service. Some networking resources (elastic network interfaces (ENIs), VPC endpoints) are visible in your HAQM EC2 account for you to connect to the broker.
What do I need to provision within an HAQM MQ broker?
You need to provision broker instances and broker storage with every broker you create. You may choose to select an existing VPC, subnet, security group or customer managed keys instead of the ones provided by the HAQM MQ service.
Configurations
Open allCan I change the default broke configurations or upload a new configuration to HAQM MQ?
Yes, HAQM MQ allows you to create custom configurations and apply them to new and existing clusters. For more information on custom configurations, see the configuration documentation.
Encryption
Open allHow do I use my own custom keys to encrypt the data in HAQM MQ?
HAQM MQ supports the AWS Key Management Service (AWS KMS) to create and manage keys for at-rest encryption of your data in HAQM MQ. When you create a broker, you can select the KMS key used to encrypt your data from the following three options: a KMS key in the HAQM MQ service account, a KMS key in your account that HAQM MQ creates and manages, or a KMS key in your account that you create and manage. In addition to encryption at rest, all data transferred between HAQM MQ and client applications is securely transmitted using TLS/SSL.
Pricing
Open allHow am I charged for HAQM MQ?
With HAQM MQ, you pay only for what you use. You are charged for the broker instance usage, storage usage, and standard data transfer fees. You can easily get started with HAQM MQ using the free tier for one year. See HAQM MQ pricing for details.
Do I pay for inter-node data transfer on HAQM MQ for RabbitMQ?
No, all inter-node data transfer is included with the service at no additional charge.
Does HAQM MQ offer Reserved Instance pricing?
No, HAQM MQ does not offer reserved instance pricing.
Do I need to provision and pay for broker boot volumes?
No, each broker you provision includes boot volume storage managed by the HAQM MQ service.
Compliance
Open allWhat compliance programs are in scope for HAQM MQ?
HAQM MQ is compliant or eligible for the following programs:
- HIPAA eligible
- PCI DSS compliant
- SOC 1,2,3 compliant
- ISO 9001, 27001, 27017, and 27018 certified
For a complete list of AWS services and compliance programs, please see AWS Services in Scope by Compliance Program.