Overview
SQS and SNS are cloud-native services with proprietary protocols and their own APIs. Traditional on-premises applications often use open protocols such as MQTT, AMQP, STOMP, Openwire and WSS. When migrating to the cloud you may not want to re-engineer the application to use the SQS or SNS APIs. Use Amazon MQ instead.
Amazon MQ is a managed message broker service for RabbitMQ and ActiveMQ, so you get managed versions of these on-premises brokers in the cloud.
Migrating an application that uses MQTT, AMQP, STOMP, Openwire or WSS, without re-engineering it, points to Amazon MQ.
Characteristics
- Does not scale as much as SQS or SNS, which have effectively infinite scaling.
- Runs on servers, so you may have server issues. Run a Multi-AZ setup with failover for high availability.
- Has both queue features (like SQS) and topic features (like SNS) in a single broker.
High Availability
Example: region us-east-1 with us-east-1a and us-east-1b. An Amazon MQ broker runs in both AZs, one active and one standby. For ActiveMQ both mount Amazon EFS as backend storage, a network file system mountable across AZs. On failover the standby already sees the same data, so the data is kept safe for clients talking to the broker.
EFS-backed active/standby is ActiveMQ (EBS is an alternative). RabbitMQ uses EBS, and its HA is a 3-node cluster across 3 AZs behind an NLB. The course described EFS for both brokers. The exam may still use the course figure. AWS source
Amazon MQ multi-AZ failover
Questions & Answers
Q1: When do you choose Amazon MQ over SQS/SNS?
Answer:
When migrating applications that use open protocols (MQTT, AMQP, STOMP, Openwire, WSS) and you do not want to change them.
Q2: Which brokers does Amazon MQ manage?
Answer:
RabbitMQ and ActiveMQ.
Q3: How is Amazon MQ made highly available?
Answer:
Multi-AZ active/standby brokers with Amazon EFS as shared storage (ActiveMQ; RabbitMQ uses EBS in a 3-node cluster).
Q4: Does Amazon MQ scale like SQS/SNS?
Answer:
No. It runs on servers and scales less.
Check yourself
Quiz
Flashcards
Click the card (or focus it), then use ← → to move and Space to flip.