Managing Amazon MQ for RabbitMQ engine versions - Amazon MQ

Managing Amazon MQ for RabbitMQ engine versions

RabbitMQ organizes version numbers according to semantic versioning specification as X.Y.Z. In Amazon MQ for RabbitMQ implementations, X.Y denotes the major version, and Z represents the minor version number. Amazon MQ considers a version change to be major if the major version numbers change. For example, upgrading from version 3.8 to 3.9 is considered a major version upgrade. A version change is considered minor if only the minor version number changes. For example, upgrading from version 3.8.23 to 3.8.26 is considered a minor version upgrade.

When you create a new Amazon MQ for RabbitMQ broker, you can specify any supported RabbitMQ engine version. If you use the AWS Management Console to create a broker, Amazon MQ automatically defaults to the latest engine version number. If you use the AWS CLI or the Amazon MQ API to create a broker, the engine version number is required. If you don't provide a version number, the operation will result in an exception. To learn more, see create-broker in the AWS CLI Command Reference and CreateBroker in the Amazon MQ REST API Reference.

Important

Amazon MQ does not support quorum queues or streams. Enabling these feature flag(s) and creating a quorum queue or stream will result in data loss.

Important
  • Amazon MQ does not support using structured logging in JSON, introduced in RabbitMQ 3.9

  • Amazon MQ for RabbitMQ recommends new brokers to use the latest supported minor version.

  • RabbitMQ only allows incremental version updates (ex: 3.9.x to 3.10.x). You cannot skip major versions when updating (ex: 3.8.x to 3.10.x).

Amazon MQ for RabbitMQ currently supports the following engine versions:

Major versions Minor versions
RabbitMQ 3.11
  • 3.11.28 (recommended)

RabbitMQ 3.10
  • 3.10.25

RabbitMQ 3.9
  • 3.9.27

RabbitMQ 3.8
  • 3.8.34

The following minor versions are still available for existing brokers, but they are not recommended for new brokers.

Major versions Minor versions
RabbitMQ 3.11
  • 3.11.20

  • 3.11.16

RabbitMQ 3.10
  • 3.10.20

  • 3.10.10

RabbitMQ 3.9
  • 3.9.24

  • 3.9.16

  • 3.9.13

RabbitMQ 3.8
  • 3.8.30

  • 3.8.27

  • 3.8.26

  • 3.8.23

  • 3.8.22

  • 3.8.17

  • 3.8.6

Major and minor version upgrades

With Amazon MQ, you control when to upgrade your brokers to new versions. When automatic minor version upgrade is activated, Amazon MQ will automatically upgrade your broker engine to new minor versions as they are released and supported by Amazon MQ.

To perform a major version upgrade, you must manually upgrade your broker's engine version number. Minor and major version upgrades occure at the same time as other broker patching operations, during your scheduled maintenance window. If you opt out of automatic minor version upgrades, you can manually upgrade your broker to a new supported minor version by following the same procedure as a major upgrade.

For more information about updating your broker preferences to activate or deactivate minor version upgrades, and manually upgrading your broker, see Upgrading an Amazon MQ broker engine version.

Single instance brokers will be offline while being rebooted. For cluster brokers, the mirrored queues must be synced during reboot. With longer queues, the queue-sync process can take longer. During the queue-sync process, the queue is unavailable to consumers and producer. When the queue-sync process is complete, the broker becomes available again. To minimize the impact, we recommend upgrading during a low traffic time. For more information on best practices for version upgrades, see Amazon MQ for RabbitMQ best practices.

Listing supported engine versions

You can list all supported minor and major engine versions by using the describe-broker-instance-options AWS CLI command.

aws mq describe-broker-instance-options

To filter the results by engine and instance type use the --engine-type and --host-instance-type options as shown in the following.

aws mq describe-broker-instance-options --engine-type engine-type --host-instance-type instance-type

For example, to filter the results for RabbitMQ, and mq.m5.large instance type, replace engine-type with RABBITMQ and instance-type with mq.m5.large.