AmazonMQ RabbitMQ Cfhighlander Component
AWS has announced AmazonMQ now supports RabbitMQ. We now have a highlander component to provision a fully managed RabbitMQ broker, either clustered or a single node. No more painful hosting and management of Rabbit on ECS or EKS. Music to our ears!
The component is quite simple, unlike ActiveMQ, RabbitMQ only needs a broker and a security group defined in cloudformation. RabbitMQ can only create one set of credentials on creation, the default master username is administrator
, the default master password is randomly generated by a custom resource. Both of these values are stored in ssm parameter store under /rabbitmq/${EnvironmentName}/")
. This can be over-ridden via config.
Base configuration simply requires a VPCId for the security group and some subnets for the broker to be placed in. This will provision a single node cluster
running on an mq.t3.micro
, ideal for dev or low traffic environments.
Component name: 'rabbitmq', template: 'amazonmq-rabbitmq@0.1.0' do
parameter name: 'VPCId', value: 'vpc.VPCId'
parameter name: 'SubnetIds', value: 'vpc.PersistenceSubnets'
end
Alternatively, with a few extra parameters, we can provision a fully managed three node cluster, ideal for production or heavy workloads. One thing to note is when running a three node cluster, the minimum instance size is an mq.m5.large.
Component name: 'rabbitmq', template: 'amazonmq-rabbitmq@0.1.0' do
parameter name: 'VPCId', value: 'vpc.VPCId'
parameter name: 'SubnetIds', value: 'vpc.PersistenceSubnets'
parameter name: 'HostInstanceType', value: 'mq.m5.large'
parameter name: 'DeploymentMode', value: 'CLUSTER_MULTI_AZ'
end
The AMQPs endpoint is outputted and exported in the template under AmqpEndpoints
and ${EnvironmentName}-rabbitmq-AmqpEndpoints
. The UI endpoint is retrievable through the AWS console
Alerting functionality is now supported within guardian 0.6.3
Source: https://github.com/theonestack/hl-component-amazonmq-rabbitmq