
【VPC内リージョンサービス】
MQ は、マネージドな Message Broker(メッセージブローカー) サービスであり、ActiveMQ および RabbitMQ に互換性を持っています。
JMS, AMQP, MQTT, STOMP, OpenWire などの標準プロトコルをそのまま利用できるため、オンプレミス環境からクラウドへの移行を最小限の変更で実現できます。
運用面では、ブローカー管理、パッチ適用、障害復旧、および モニタリング自動化 がマネージド化されており、高可用構成で安定したメッセージ配信を行うことができます。メッセージは キュー や トピック を介してやり取りされ、永続メッセージ や 非同期通信 に対応しているため、分散システム間の高信頼なデータ伝達を実現します。
永続化ストレージ によってメッセージを安全に保持し、障害時には DLQ(デッドレターキュー) や 再送制御 により確実なメッセージ処理を行えます。
セキュリティ面では暗号化通信に対応しており、データの完全性を維持します。
Lambda, SQS, SNS, EventBridge, ECS, EKS などのAWSサービスと連携することで、イベント駆動型アーキテクチャやマイクロサービス間通信を柔軟に構築できます。
重要用語
ブローカー管理
DLQ
再送制御
ユースケース
| 既存オンプレアプリとのメッセージ連携 | JMSやAMQPなどの標準プロトコルに対応したマネージドメッセージブローカーとして利用し、オンプレミスアプリとクラウドアプリをキューやトピックでつなぐ。 |
| レガシーシステムの段階的クラウド移行 | 既存のメッセージブローカー(ActiveMQ等)をAmazon MQに置き換え、アプリケーション側の改修を最小限にしながらクラウドへの移行を進める。 |
| 複雑なルーティングを持つメッセージ基盤 | トピックやキューを組み合わせた柔軟なルーティングルールを使い、多数のコンシューマーに対して異なる配信パターンでメッセージを届ける。 |
ベストプラクティス
| マルチAZブローカー配置 | 冗長構成でメッセージングの可用性を確保する。 |
| クライアント接続の再試行設計 | アプリ側で接続切断時のリトライロジックを実装する。 |
| 監視とアラート | キュー深さや接続数を監視し、異常を早期検知する。 |
高可用性・バックアップ・リトライ
| 高可用性・バックアップ・リトライ設計のポイント |
|---|
| 【アクティブ/スタンバイブローカー】(デフォルトはシングルインスタンスブローカー) ・異なる2つのAZに自動的にブローカーインスタンスが配置 ・ストレージ(EFSを使用してメッセージデータを保存し複数AZ間で自動レプリケーション) ・フェイルオーバーの自動実施 ・メタデータ(ブローカー設定、ユーザー情報などのメタデータがEFSを通じて自動的に冗長化) ・ネットワークエンドポイント(フェイルオーバー時に同じエンドポイントURLが維持) |
| MQ for ActiveMQ 【自動バックアップ 】/ デフォルトでオン(PITRなし:日次スナップショット) |
| MQ for ActiveMQ 【ブローカーの再配信機能】(Redelivery Policy) / デフォルトオン(6回再配信) |
| MQ for RabbitMQ 【自動バックアップ】なし(バックアップの考慮が必要) |
| MQ for RabbitMQ 【ブローカーの再配信機能】(Manual Ack + Nack/Requeue) / デフォルト(クライアントに依存) |
セキュリティ
| 関連サービス | 設定内容 |
|---|---|
| CloudTrail(操作履歴の記録・監査・追跡) | 【自動記録】 作成・更新・削除・設定変更は自動記録される。(コントロールプレーンAPI) データ操作は追跡できない(データプレーンAPI) |
| Config(リソースの構成状態・設定変更を記録) | 【Configが有効な場合】 ブローカー設定変更履歴・暗号化/パブリックアクセスの準拠評価 |
| GuardDuty(脅威を自動検出) | 【GuardDutyが有効な場合】 ブローカー操作のAPI異常検知- |
ログ・監視
標準メトリクス
| メトリクス名 | 説明 |
|---|---|
制限値(固定値/ハードリミット/ソフトリミット)
| 固定値 | 制限値 |
|---|---|
| ブローカーあたりの接続数(ActiveMQ) | 1,000 |
| ブローカーあたりの接続数(RabbitMQ) | 1,000 |
| キュー数/ブローカー | 1,000 |
| トピック数/ブローカー | 1,000 |
| ソフトリミット | 制限値 |
|---|---|
| ブローカー数/リージョン | 50 |
AWS CLIのサンプルコード
CloudFormationのサンプルコード
Terraformのサンプルコード
料金計算
| 課金項目 | 説明 |
|---|---|
| ブローカーインスタンス | ブローカーインスタンスの時間課金 |
| ストレージ | ブローカーストレージの容量 |
| データ転送 | インターネットへのデータ転送 |