Cloud Service
Amazon MQ
ActiveMQとRabbitMQ互換のマネージドメッセージブローカ。既存の業界標準プロトコル資産をほぼ無改修でクラウドへ移行できる。
中級SAA-C03信頼性
最終更新: 2026-06-13公式ドキュメント ↗
TL;DR要点だけ先に
- 1.ActiveMQ/RabbitMQをマネージド運用。標準プロトコル対応で既存資産を活かせる。
- 2.オンプレのメッセージング基盤をコード改修最小で移行する用途が中心。
- 3.新規でクラウドネイティブに作るなら原則SQS/SNS、移行ならMQ。
解決する課題
- オンプレのActiveMQ/RabbitMQをクラウドへほぼ無改修で移行したい
- ブローカのパッチ適用・冗長化・バックアップといった運用負荷を減らしたい
- JMSやAMQP、MQTT、STOMPなど業界標準プロトコルを使い続けたい
主要概念と用語
- メッセージブローカ: 送信側と受信側の間でメッセージを中継するソフトウェア
- ActiveMQ エンジン: JMSやAMQP、MQTT、STOMP、OpenWireなど多様なプロトコルに対応
- RabbitMQ エンジン: AMQP中心。柔軟なルーティングを得意とする
- キュー: 1対1配信。1つのメッセージを1つの受信側が処理
- トピック: Pub/Subによる1対多配信
- ブローカ: AWSが管理する稼働単位。シングルインスタンス構成と冗長構成を選べる
- アクティブ/スタンバイ: 複数アベイラビリティゾーンにまたがる高可用構成
仕様・制限・クォータ
- 対応エンジンはActiveMQとRabbitMQの2系統
- ブローカは特定のエンジンバージョンを指定して起動し、AWSがマイナーパッチ適用を支援する
- 標準プロトコル(JMS、AMQP、MQTT、STOMP、OpenWireなど)でクライアントが接続
- シングルブローカ構成と、複数アベイラビリティゾーンを使う高可用構成を選択できる
- メッセージはブローカに永続化でき、保持期間や容量はインスタンスサイズに依存する
内部の仕組み
Amazon MQはオープンソースのActiveMQまたはRabbitMQをそのままマネージド化したサービスです。クライアントはエンドポイント経由でブローカに接続し、キューやトピックを通じてメッセージを送受信します。SQSのような独自APIではなく標準プロトコルを話すため、既存アプリのメッセージング部分を書き換えずに済むのが本質的な価値です。
高可用構成では、ブローカが複数のアベイラビリティゾーンに配置され、アクティブ側に障害が起きるとスタンバイ側へフェイルオーバします。ストレージは冗長化され、メッセージの耐久性を確保します。
移行か新規かで使い分ける
既存のActiveMQ/RabbitMQ資産を活かす移行ならAmazon MQが第一候補。ゼロから作るクラウドネイティブ構成では、運用がさらに軽いSQS/SNSを原則とし、標準プロトコル要件があるときだけMQを選ぶのが定石です。
設計パターン / ベストプラクティス
- オンプレのブローカをリフトアンドシフトで移行し、まずは稼働を優先する
- 本番ではシングル構成を避け、複数アベイラビリティゾーンの高可用構成にする
- クライアントはフェイルオーバ対応の接続文字列を使い、再接続を実装する
- 移行が落ち着いたら、適した部分から段階的にSQS/SNSへ寄せることも検討する
- 大量メッセージや極端なスループットが要る場合はインスタンスサイズと構成を見直す
運用・監視
- CloudWatchでキューの深さや接続数、CPU・メモリなどのメトリクスを監視する
- 滞留が増えたらコンシューマ不足やダウンストリーム障害を疑う
- ブローカのメンテナンスウィンドウを設定し、計画的にパッチを適用する
- ログをCloudWatch Logsへ出力し、接続や監査の追跡に使う
コスト
- ブローカの稼働時間(インスタンスサイズと台数)とストレージで課金される
- 高可用構成は複数ブローカ分の費用がかかるため、本番要件と照らして構成を選ぶ
- 常時稼働コストがかかる点で、リクエスト課金中心のSQS/SNSとは費用構造が異なる
セキュリティ
- IAMでブローカ自体の管理操作を制御し、ブローカ内の認証はエンジン側のユーザ管理で行う
- VPC内にデプロイし、セキュリティグループで接続元を絞る
- 保存時暗号化(KMS)と転送時の暗号化(TLS)を有効にする
- 認証情報はSecrets Managerなどで安全に管理する
Well-Architected の観点
- 信頼性: 複数アベイラビリティゾーンの高可用構成とストレージ冗長でフェイルオーバに備える
- 運用上の優秀性: パッチ・冗長化・バックアップをマネージドに任せ運用負荷を下げる
- セキュリティ: VPC隔離とTLS、保存時暗号化で標準プロトコル接続を保護する
試験で問われるポイント
頻出
- ActiveMQ/RabbitMQの移行ニーズが出たらAmazon MQを選ぶ
- JMS・AMQP・MQTT・STOMPなど標準プロトコル要件のキーワードに反応する
- 新規のクラウドネイティブ疎結合は原則SQS/SNS、互換性重視の移行はMQ
- 本番はマルチAZの高可用構成が推奨という観点
関連サービス・比較
| 観点 | Amazon MQ | Amazon SQS |
|---|---|---|
| 位置づけ | 互換ブローカの移行向け | クラウドネイティブな新規向け |
| プロトコル | JMSやAMQPなど業界標準 | 独自API |
| 運用モデル | ブローカ常時稼働 | フルマネージドでサーバ意識なし |
| 課金 | 稼働時間とストレージ | リクエスト数 |
| 主用途 | 既存資産の移行 | 疎結合・スパイク吸収 |
ハンズオン / CLI例
# ActiveMQブローカを作成(本番はマルチAZの高可用構成を選ぶ)
aws mq create-broker \
--broker-name my-broker \
--engine-type ACTIVEMQ \
--deployment-mode ACTIVE_STANDBY_MULTI_AZ \
--host-instance-type mq.m5.large \
--users Username=admin,Password=ChangeMe12345 \
--publicly-accessible false
# ブローカの状態とエンドポイントを確認
aws mq describe-broker --broker-id "$BROKER_ID"
AWS Service
Amazon MQを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
アプリ統合
比較で見る軸
クラウド: AWS / カテゴリ: アプリ統合 / 難易度: intermediate
導入後に効く点
オンプレのメッセージング基盤をコード改修最小で移行する用途が中心。
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
数字・仕様の読み方
- クラウド
- AWS
- カテゴリ
- アプリ統合
- 難易度
- intermediate
- 関連資格
- SAA-C03
- 設計柱
- reliability
判断チェックリスト
- 自社の用途が「アプリ統合 / reliability」に近いか確認する。
- 強みである「ActiveMQ/RabbitMQをマネージド運用。標準プロトコル対応で既存資産を活かせる。」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。