Skip to content

Amazon MQ (Managed Message Broker)

Amazon MQ là dịch vụ Managed Message Broker của AWS, giúp các ứng dụng giao tiếp thông qua các message broker chuẩn công nghiệp như ActiveMQRabbitMQ. Khác với SQSSNS (thuần Cloud-Native), Amazon MQ phù hợp cho các hệ thống đã dùng message broker truyền thống và muốn di chuyển (migrate) sang AWS mà không cần viết lại ứng dụng.

Message Broker là gì?

Message Broker là một thành phần trung gian trong hệ thống microservices, giúp các ứng dụng hoặc service giao tiếp với nhau thông qua message. Thay vì gọi trực tiếp lẫn nhau, các service sẽ gửi message đến broker, và broker sẽ chuyển message đến service đích.

Tại sao cần Message Broker?

  • Decoupling: Producer và Consumer không cần biết chi tiết về nhau.
  • Reliability: Message được lưu trữ tạm thời trong broker → không mất dữ liệu nếu Consumer tạm thời ngừng hoạt động.
  • Scalability: Có thể mở rộng số lượng Producer/Consumer độc lập.
  • Protocol Flexibility: Hỗ trợ nhiều giao thức chuẩn (JMS, AMQP, MQTT, STOMP).

Tại sao cần Amazon MQ?

  • Nhiều ứng dụng On-Premises sử dụng message broker như ActiveMQ, RabbitMQ, IBM MQ để giao tiếp giữa các service.
  • Khi migrate lên cloud, nếu chuyển sang SQS/SNS sẽ phải thay đổi code vì khác giao thức.
  • Amazon MQ hỗ trợ các giao thức chuẩn (JMS, AMQP, MQTT, STOMP, WebSocket), nên ứng dụng có thể chạy trên AWS mà không cần refactor.

Các đặc điểm chính

  • Hỗ trợ đa giao thức: JMS, AMQP, MQTT, STOMP, OpenWire.
  • Fully Managed: AWS quản lý hạ tầng broker (cài đặt, patch, monitoring).
  • High Availability: Có thể triển khai theo mô hình Multi-AZ để tăng khả năng chịu lỗi.
  • Monitoring: Tích hợp với Amazon CloudWatch.
  • Security:
    • IAM để phân quyền.
    • Encryption (in-transit với TLS, at-rest với KMS).
    • Hỗ trợ VPC peering, PrivateLink.

Các Engine hỗ trợ

1. ActiveMQ

  • Broker lâu đời, ổn định.
  • Hỗ trợ nhiều giao thức messaging.
  • Thích hợp cho hệ thống cần compatibility cao với JMS.

2. RabbitMQ

  • Broker phổ biến trong microservices và event-driven architecture.
  • Hỗ trợ clustering và plugin ecosystem.
  • Thích hợp cho workload cần low latency messagingrouting linh hoạt.

Kiến trúc minh họa

  • Producer và Consumer có thể chạy trong EC2, ECS, EKS, hoặc on-premises.
  • Các ứng dụng kết nối qua giao thức chuẩn mà không cần thay đổi logic.

Khi nào chọn Amazon MQ thay vì SQS/SNS?

Tiêu chíSQS/SNS (Cloud-native)Amazon MQ (Managed Broker)
Giao thức hỗ trợAWS API (không chuẩn industry)JMS, AMQP, MQTT, STOMP, OpenWire
Độ phức tạp triển khaiĐơn giản, không cần brokerCần broker instance (AWS quản lý)
Độ trễLow latency nhưng asyncVery low latency, sync + async
Use CaseMicroservices cloud-nativeMigration từ hệ thống MQ truyền thống
Tính năng nâng caoBasic queue/pub-subAdvanced messaging: routing, topics, durable subscriptions

Use Cases phổ biến

  • Migration: Di chuyển ứng dụng on-premises (dùng ActiveMQ/RabbitMQ) lên AWS mà không cần refactor code.
  • Hybrid Environment: Kết nối giữa ứng dụng on-premises và ứng dụng cloud qua message broker.
  • IoT & Mobile Messaging: Sử dụng MQTT/WebSocket để giao tiếp real-time.
  • Enterprise Integration: Sử dụng JMS để tích hợp với hệ thống doanh nghiệp (ERP, CRM).

Pricing (tổng quan)

  • Trả phí theo Broker Instance (giờ chạy) và storage.
  • Chi phí phụ thuộc vào loại broker (ActiveMQ hay RabbitMQ), dung lượng lưu trữ, và traffic.