

# Amazon MQ for RabbitMQ broker instance types
<a name="rmq-broker-instance-types"></a>

The combined description of the broker instance class (m7g) and size (large, medium) is called the broker instance type (for example, mq.m7g.large).

We recommend using mq.m7g instance types for both cluster and single-instance deployments.

Amazon MQ provides at least a 90 day notice before an instance type reaches end of support. We recommend upgrading your broker to a new instance type before the end-of-support date to prevent any disruptions.

**Important**  
You cannot downgrade a broker from an `mq.m7g` or `mq.m5` instance type to a `mq.t3.micro` instance type.  
The `mq.t3.micro` instance type does not support cluster deployment.

## Instance types for m7g cluster deployment
<a name="instance-types-m7g-cluster"></a>

We recommending using `mq.m7g.x` instance types with cluster deployment. The following table shows the available `mq.m7g.x` instance types for cluster deployment.


| Instance Type | vCPU | Memory (GiB) | Network Baseline / Burst bandwidth (Gbps)  | Recommended use | Storage | Disk volume size per node(GB) | 
| --- | --- | --- | --- | --- | --- | --- | 
| mq.m7g.medium | 1 | 4 | 0.52 / 12.5 |  Evaluation  | EBS | 5 | 
| mq.m7g.large | 2 | 8 | 0.937 / 12.5 |  Production  | EBS | 15 | 
| mq.m7g.xlarge | 4 | 16 | 1.876 / 12.5 |  Production  | EBS | 25 | 
| mq.m7g.2xlarge | 8 | 32 | 3.75 / 15.0 |  Production  | EBS | 45 | 
| mq.m7g.4xlarge | 16 | 64 | 7.5 / 15.0 |  Production  | EBS | 90 | 
| mq.m7g.8xlarge | 32 | 128 | 15 Gigabit |  Production  | EBS | 175 | 
| mq.m7g.12xlarge | 48 | 192 | 22.5 Gigabit |  Production  | EBS | 260 | 
| mq.m7g.16xlarge | 64 | 256 | 30 Gigabit |  Production  | EBS | 345 | 

## Instance types for m7g single instance deployment
<a name="instance-types-m7g-single-instance"></a>

 The following table shows the available `mq.m7g.x` instance types for single instance deployment. 


| Instance Type | vCPU | Memory (GiB) | Network Baseline / Burst bandwidth (Gbps)  | Recommended use | Storage | Disk volume size per node(GB) | 
| --- | --- | --- | --- | --- | --- | --- | 
| mq.m7g.medium | 1 | 4 | 0.52 / 12.5 |  Evaluation  | EBS | 200 | 
| mq.m7g.large | 2 | 8 | 0.937 / 12.5 |  Production  | EBS | 200 | 
| mq.m7g.xlarge | 4 | 16 | 1.876 / 12.5 |  Production  | EBS | 200 | 
| mq.m7g.2xlarge | 8 | 32 | 3.75 / 15.0 |  Production  | EBS | 200 | 
| mq.m7g.4xlarge | 16 | 64 | 7.5 / 15.0 |  Production  | EBS | 200 | 
| mq.m7g.8xlarge | 32 | 128 | 15 Gigabit |  Production  | EBS | 200 | 
| mq.m7g.12xlarge | 48 | 192 | 22.5 Gigabit |  Production  | EBS | 200 | 
| mq.m7g.16xlarge | 64 | 256 | 39 Gigabit |  Production  | EBS | 200 | 

## Instance types for `mq.m5` single instance deployment
<a name="instance-types-m5-single-instance"></a>

 The following tables show the available `mq.m5.x` instance types for single instance deployment 


| Instance Type | vCPU | Memory (GiB) | Network Baseline / Burst bandwidth (Gbps)  | Recommended use | Storage | Disk volume size per node(GB) | 
| --- | --- | --- | --- | --- | --- | --- | 
| mq.t3.micro | 2 | 1 | 0.064 / 5.0 | Evaluation | EBS | 20 | 
| mq.m5.large | 2 | 8 | 0.75 / 10.0 | Production | EBS | 200 | 
| mq.m5.xlarge | 4 | 16 | 1.25 / 10.0 | Production | EBS | 200 | 
| mq.m5.2xlarge | 8 | 32 | 2.5 / 10.0 | Production | EBS | 200 | 
| mq.m5.4xlarge | 16 | 64 | 5.0 / 10.0 | Production | EBS | 200 | 

## Instance types for `mq.m5` cluster deployment
<a name="instance-types-m5-cluster"></a>

 The following tables show the available `mq.m5.x` instance types for cluster deployment 


| Instance Type | vCPU | Memory (GiB) | Network Baseline / Burst bandwidth (Gbps)  | Recommended use | Storage | Disk volume size per node(GB) | 
| --- | --- | --- | --- | --- | --- | --- | 
| mq.m5.large | 2 | 8 | 0.75 / 10.0 | Production | EBS | 200 | 
| mq.m5.xlarge | 4 | 16 | 1.25 / 10.0 | Production | EBS | 200 | 
| mq.m5.2xlarge | 8 | 32 | 2.5 / 10.0 | Production | EBS | 200 | 
| mq.m5.4xlarge | 16 | 64 | 5.0 / 10.0 | Production | EBS | 200 | 

## Memory and disk alarms
<a name="rabbitmq-memory-disk-thresholds"></a>

Amazon MQ configures memory and disk thresholds on each RabbitMQ broker to protect against resource exhaustion. When a threshold is exceeded, RabbitMQ triggers an [alarm](https://www.rabbitmq.com/docs/alarms) and blocks publishers from sending messages. Consumers on separate connections continue to operate normally. However, if a publisher and consumer share the same connection, the consumer is also blocked.

**Important**  
Amazon MQ manages these thresholds and you cannot modify them. When the alarm condition clears, publishers are unblocked automatically. For troubleshooting information, see [Amazon MQ for RabbitMQ: High memory alarm](troubleshooting-action-required-codes-rabbitmq-memory-alarm.md) and [RabbitMQ on Amazon MQ: Disk limit alarm](troubleshooting-action-required-codes-disk-limit-alarm.md).

### Memory alarm
<a name="rabbitmq-memory-high-watermark"></a>

The `vm_memory_high_watermark` parameter defines the maximum amount of memory that a RabbitMQ broker can use before it blocks publishers from sending messages. When memory usage exceeds this threshold, RabbitMQ triggers a memory alarm. For more information, see [Memory Alarms](https://www.rabbitmq.com/docs/memory) on the RabbitMQ website.

For `mq.m7g` instance types, Amazon MQ sets the following absolute memory high watermark values:


| Instance Type | Memory High Watermark (GiB) | 
| --- | --- | 
| mq.m7g.medium | 1.8 | 
| mq.m7g.large | 4.3 | 
| mq.m7g.xlarge | 9.3 | 
| mq.m7g.2xlarge | 19.3 | 
| mq.m7g.4xlarge | 39.4 | 
| mq.m7g.8xlarge | 79.7 | 
| mq.m7g.12xlarge | 119.8 | 
| mq.m7g.16xlarge | 160.1 | 

For `mq.m5` instance types, Amazon MQ sets a relative memory high watermark of 0.4 (40% of the available memory).

The higher memory thresholds on `mq.m7g` instances allow RabbitMQ to use more available memory before triggering an alarm. For more information about performance improvements with `mq.m7g` instances, see [Improve RabbitMQ performance on Amazon MQ with Amazon Graviton3-based M7g instances](https://aws.amazon.com/blogs/big-data/improve-rabbitmq-performance-on-amazon-mq-with-aws-graviton3-based-m7g-instances/) on the Amazon Blog.

### Disk alarm
<a name="rabbitmq-disk-free-limit"></a>

The `disk_free_limit` parameter defines the minimum amount of free disk space that a RabbitMQ node requires. When free disk space on any node drops below this limit, RabbitMQ triggers a disk alarm and blocks publishers from sending messages. For more information, see [Disk Alarms](https://www.rabbitmq.com/docs/disk-alarms) on the RabbitMQ website.

For `mq.m7g` instance types, Amazon MQ sets the following disk free limits. Single-instance brokers have a higher disk free limit to provide additional protection because they do not have other nodes to serve traffic if disk space is exhausted.


| Deployment Mode | Disk Free Limit (GiB) | 
| --- | --- | 
| Single-instance | 10 | 
| Cluster | 2 | 

For `mq.m5` instance types, Amazon MQ sets the following disk free limits. These values apply to both single-instance and cluster deployments.


| Instance Type | Disk Free Limit (GiB) | 
| --- | --- | 
| mq.m5.large | 12 | 
| mq.m5.xlarge | 20 | 
| mq.m5.2xlarge | 36 | 
| mq.m5.4xlarge | 69 | 

Because `mq.m7g` instances have a lower disk free limit, more of the provisioned disk volume is available for message storage compared to equivalent `mq.m5` instances.