Amazon MQ
Messaging Cloud Practitioner Solutions Architect Associate

Amazon MQ

Amazon MQ

Zarządzany broker wiadomości w chmurze AWS. Uruchom Apache ActiveMQ lub RabbitMQ bez zarządzania infrastrukturą - migruj aplikacje on-premises do chmury bez zmian w kodzie.

Amazon MQ to w pełni zarządzany serwis brokerowania wiadomości, który obsługuje Apache ActiveMQ i RabbitMQ. Jeśli Twoja aplikacja korzysta z protokołów takich jak JMS, AMQP, STOMP, MQTT czy OpenWire, Amazon MQ pozwala przenieść ją do chmury bez przepisywania kodu.

Amazon MQ jest idealnym rozwiązaniem dla firm, które migrują istniejące aplikacje wykorzystujące tradycyjne brokery wiadomości. Jeśli budujesz nową aplikację od zera, AWS rekomenduje Amazon SQS i SNS jako bardziej skalowalne i tańsze alternatywy.

Czy wiesz, ze...

Amazon MQ obsługuje 6 różnych protokołów komunikacji jednocześnie: JMS, AMQP 1.0, STOMP, MQTT, OpenWire i WebSocket. Dzięki temu jeden broker może obsłużyć aplikacje Java (JMS), Python (STOMP), urządzenia IoT (MQTT) i przeglądarki (WebSocket) jednocześnie!

Pro Tip

Jeśli budujesz nową aplikację od zera, użyj Amazon SQS i SNS zamiast MQ - są tańsze, bardziej skalowalne i nie wymagają zarządzania brokerami. Amazon MQ wybieraj tylko wtedy, gdy migrujesz istniejącą aplikację, która już korzysta z ActiveMQ lub RabbitMQ.

Amazon MQ to zarzadzany broker wiadomosci obslugujacy Apache ActiveMQ i RabbitMQ. Zapewnia kompatybilnosc z istniejacymi aplikacjami uzywajacymi standardowych protokolow (AMQP, MQTT, OpenWire, STOMP, WSS). Idealny do migracji on-premise message brokerow do AWS bez zmian w kodzie aplikacji.

1

Wybor silnika: ActiveMQ vs RabbitMQ

ActiveMQ Classic: obsluguje wiele protokolow (AMQP, MQTT, OpenWire, STOMP), virtual destinations, composite destinations. Idealny do migracji z on-premise ActiveMQ. RabbitMQ: zaawansowany routing (exchanges, bindings, routing keys), lepszy throughput, plugin ecosystem. Nowe projekty powinny preferowac RabbitMQ, chyba ze potrzebuja specyficznych funkcji ActiveMQ.

2

Konfiguracja brokera

Wybierasz typ instancji (mq.m5.large, mq.m5.xlarge itp.), deployment mode i storage. ActiveMQ: single-instance (dev/test) lub active/standby (produkcja) z EFS shared storage. RabbitMQ: single-instance lub cluster (3 nody w 3 AZ). Storage: EBS (standard) lub EFS (ActiveMQ active/standby).

3

Deployment mode i wysoka dostepnosc

ActiveMQ active/standby: primary node obsluguje ruch, standby przejmuje w przypadku awarii (failover ~30s). Oba nody wspoldziela EFS storage - wiadomosci nie sa tracone. RabbitMQ cluster: 3 nody z policy mirroring (classic) lub quorum queues - wiadomosci sa replikowane na wiele nodow.

4

Konfiguracja sieci i bezpieczenstwo

Broker jest deployowany w Twoim VPC z ENI w wybranych subnetach. Tryby: public (dostepny z internetu przez NLB) lub private (tylko z VPC). Security groups kontroluja porty (61617 ActiveMQ, 5671 RabbitMQ). Szyfrowanie: TLS in-transit (domyslnie), AES-256 at-rest (KMS). Uzytkownicy i uprawnienia sa zarzadzani w konsoli lub LDAP (ActiveMQ).

5

Laczenie aplikacji z brokerem

Aplikacje lacza sie standardowymi bibliotekami klienckimi: JMS (Java), Pika (Python), amqplib (Node.js), Bunny (Ruby). Connection string zawiera endpoint brokera, port i TLS. Failover URI (ActiveMQ): failover:(ssl://primary:61617,ssl://standby:61617) - klient automatycznie przechodzi na standby. Dla RabbitMQ cluster: kazdy node ma wlasny endpoint.

6

Monitoring i metryki

CloudWatch metryki: QueueSize (liczba wiadomosci w kolejce), EnqueueCount, DequeueCount, ProducerCount, ConsumerCount, MemoryUsage, StorePercentUsage. Alarmy na QueueSize rosnace powyzej normy sygnalizuja problem z konsumentami. ActiveMQ Web Console jest dostepna przez HTTPS do zarzadzania queues i topics.

Praktyczne wskazowki do wdrazania Amazon MQ - od migracji z on-premise po optymalizacje wydajnosci i wybor miedzy MQ a SQS/SNS.

Amazon MQ vs SQS/SNS - kiedy co wybrac

Uzywaj Amazon MQ gdy: migrujesz aplikacje z on-premise uzywajaca JMS/AMQP/MQTT, potrzebujesz kompatybilnosci protokolowej, masz zlozony routing wiadomosci. Uzywaj SQS/SNS gdy: budujesz nowa aplikacje cloud-native, potrzebujesz skalowalnosci serverless, nie potrzebujesz konkretnego protokolu. SQS/SNS sa tansze, bardziej skalowalne i bezobslugowe.

Poczatkujacy

Migracja z on-premise ActiveMQ

Krok 1: Stworz brokera Amazon MQ z ta sama konfiguracja co on-premise (activemq.xml). Krok 2: Skonfiguruj network of brokers - polacz on-premise i AWS brokerow przez VPN/DX. Krok 3: Stopniowo przenos konsumentow do brokera AWS. Krok 4: Przenos producentow. Krok 5: Odlacz on-premise broker. Network bridge zapewnia replikacje wiadomosci miedzy brokerami.

Zaawansowany

RabbitMQ quorum queues zamiast classic mirrored

Quorum queues (RabbitMQ 3.8+) uzywaja protokolu Raft do replikacji - sa szybsze i bardziej niezawodne niz classic mirrored queues. Wiadomosc jest potwierdzona producent po zapisie na wiekszosci nodow. Uzywaj quorum queues dla wszystkich krytycznych kolejek produkcyjnych. Classic mirrored queues sa deprecated od RabbitMQ 3.13.

Zaawansowany

Dobor typu instancji i storage

mq.m5.large (2 vCPU, 8 GB RAM) obsluguje do 10,000 msg/s. Dla wiekszego throughput skaluj wertykanie (xlarge, 2xlarge) lub horizontalnie (wiecej brokerow z routing). Monitoruj CpuUtilization i HeapUsage. Storage EBS: start od 200 GB, monitoring StorePercentUsage. Jezeli StorePercentUsage >80% - konsumenci nie nadazaja lub masz zbyt dlugo zywe wiadomosci.

Poczatkujacy

Dead Letter Queue - obsuga blednych wiadomosci

Skonfiguruj DLQ (Dead Letter Queue) dla wiadomosci, ktore nie moga byc przetworzone. ActiveMQ: ustaw maximumRedeliveries na queue policy (np. 5 prob). RabbitMQ: x-dead-letter-exchange i x-dead-letter-routing-key na kolejce. Monitoruj DLQ - rosnaca liczba wiadomosci sygnalizuje bug w konsumencie. Zbuduj pipeline do analizy i reprocessingu DLQ.

Poczatkujacy

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon MQ bezposrednio w konsoli AWS.

Do czego sluzy Amazon MQ?

01

Migracja brokerów on-premises

Przenieś istniejący ActiveMQ lub RabbitMQ do chmury bez zmian w kodzie aplikacji dzięki kompatybilności protokołów.

02

Integracja systemów enterprise

Połącz systemy używające różnych protokołów (JMS, AMQP, STOMP, MQTT) za pomocą jednego brokera wiadomości.

03

Kolejkowanie zadań asynchronicznych

Buforuj zadania między mikroserwisami z gwarantowaną kolejnością dostarczania i potwierdzeniami odbioru.

04

Aplikacje IoT z protokołem MQTT

Obsługuj komunikację urządzeń IoT przy użyciu natywnego wsparcia dla protokołu MQTT w brokerze ActiveMQ.

Co musisz wiedziec?

Broker

Instancja Amazon MQ uruchamiająca silnik ActiveMQ lub RabbitMQ. Może być single-instance (dev) lub active/standby (produkcja).

Active/Standby Deployment

Konfiguracja wysokiej dostępności z dwoma brokerami w różnych Availability Zones. Failover następuje automatycznie.

Network of Brokers

Architektura ActiveMQ łącząca wiele brokerów w sieć dla większej skalowalności i rozdzielenia obciążeń.

Wire-level Protocol

Protokół komunikacji na poziomie sieci (JMS, AMQP, STOMP, MQTT, OpenWire). Amazon MQ obsługuje je natywnie.

Message Durability

Wiadomości są persystowane na dysku EFS (ActiveMQ) lub EBS, dzięki czemu nie giną przy awarii brokera.

Configuration Revision

Wersjonowana konfiguracja brokera (np. limity pamięci, polityki dostarczania). Zmiany wymagają restartu brokera.

Architektura: Migracja message brokera z on-premise do Amazon MQ

Architektura migracji aplikacji enterprise z on-premise ActiveMQ do Amazon MQ. Network of brokers zapewnia replikacje wiadomosci miedzy srodowiskami podczas stopniowej migracji konsumentow i producentow.

Producenci (aplikacje) Wysylaja wiadomosci przez JMS/AMQP, failover URI na oba brokery
OpenWire TLS
Amazon MQ (ActiveMQ)
Amazon MQ (ActiveMQ) Active/standby broker w AWS, docelowy message broker
VPN / Direct Connect
Network Bridge Replikacja wiadomosci miedzy on-premise i AWS brokerami
JMS consume
Konsumenci (AWS) Zmigrowani konsumenci w EC2/ECS czytaja z AWS brokera
Metryki
CloudWatch + Alarmy
CloudWatch + Alarmy Monitoring QueueSize, ProducerCount, ConsumerCount, latency
Network bridge miedzy on-premise a AWS brokerem wymaga stalego polaczenia (VPN/DX) - testuj failover i latency, bo opoznienie mostu wplywa na dostarczanie wiadomosci.
Uzywaj failover URI z randomize=false i priorytetem na AWS broker, aby po migracji producenci domyslnie wysylali do chmury z fallbackiem na on-premise.
Po zakonczeniu migracji usun network bridge i on-premise brokera - utrzymywanie dwoch brokerow zwieksza zlozonosc operacyjna i ryzyko split-brain.

Ile kosztuje Amazon MQ?

Opłata za instancję brokera

Płacisz za godzinę działania brokera. Cena zależy od typu instancji (mq.m5.large, mq.m5.xlarge itp.).

mq.m5.large ActiveMQ: ~$0.288/godz. (~$210/mies.)

Storage brokera

Opłata za przechowywanie wiadomości. ActiveMQ używa EFS (durability), RabbitMQ używa EBS.

ActiveMQ: $0.30/GB/mies., RabbitMQ: $0.10/GB/mies.

Transfer danych

Transfer danych między brokerem a klientami. Ruch przychodzący jest darmowy, wychodzący płatny standardowo.

Transfer wychodzący: od $0.09/GB

Przyklady AWS CLI

Utwórz brokera ActiveMQ

Tworzy single-instance brokera ActiveMQ z publicznym dostępem

aws mq create-broker \
 --broker-name moj-broker \
 --engine-type ACTIVEMQ \
 --engine-version "5.17.6" \
 --host-instance-type mq.m5.large \
 --deployment-mode SINGLE_INSTANCE \
 --publicly-accessible \
 --users '[{"Username":"admin","Password":"MojeHaslo123!","ConsoleAccess":true}]'

Lista brokerów

Wyświetla wszystkie brokery Amazon MQ na Twoim koncie

aws mq list-brokers \
 --query "BrokerSummaries[].{Name:BrokerName,State:BrokerState,Engine:EngineType}" \
 --output table

Szczegóły brokera

Pobiera pełną konfigurację brokera włącznie z endpointami

aws mq describe-broker --broker-id b-1234-5678-9abc

Utwórz brokera RabbitMQ HA

Tworzy brokera RabbitMQ w trybie cluster multi-AZ dla wysokiej dostępności

aws mq create-broker \
 --broker-name rabbit-ha \
 --engine-type RABBITMQ \
 --engine-version "3.13" \
 --host-instance-type mq.m5.large \
 --deployment-mode CLUSTER_MULTI_AZ \
 --users '[{"Username":"admin","Password":"MojeHaslo123!","ConsoleAccess":true}]'

Quiz: Amazon MQ

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 3

1. Które silniki brokerów obsługuje Amazon MQ?

2. Kiedy AWS rekomenduje Amazon MQ zamiast SQS/SNS?

3. Co zapewnia deployment active/standby w Amazon MQ?

Chcesz poznac Amazon MQ w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon MQ krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy