ある企業がオンプレミスの IBM MQ メッセージングインフラ(エンタープライズメッセージブローカー)を AWS に移行しようとしています。既存のアプリケーションは JMS(Java Message Service)プロトコルを使って IBM MQ と通信しており、アプリケーションコードの変更を最小限に抑えたいと考えています。最も適切な移行先はどれですか?
- A. Amazon EventBridge に移行し、イベント駆動アーキテクチャに移行する
- B. Amazon Kinesis Data Streams に移行し、ストリーミングアーキテクチャに刷新する
- C. Amazon SQS に移行し、既存の JMS クライアントを AWS SDK に書き直す
- D. Amazon MQ(ActiveMQ または RabbitMQ ブローカー)に移行する。Amazon MQ はマネージドのメッセージブローカーサービスで、JMS、AMQP、STOMP、MQTT、OpenWire などの標準プロトコルをサポートする。既存の JMS クライアントコードをほぼ変更せずに接続先エンドポイントの変更のみで移行できる
解答と解説を見る
正解: D
Amazon MQ はマネージドのメッセージブローカーサービスで、ActiveMQ と RabbitMQ をサポートします。JMS プロトコルに完全対応しているため、既存の JMS クライアントコードを最小限の変更(接続先エンドポイントのみ変更)で Amazon MQ に接続できます。IBM MQ から JMS 互換のブローカーへの移行として最も自然なパスです。 C: SQS は AWS 独自の API で、JMS のような標準プロトコルをネイティブサポートしておらず、アプリケーションコードの書き直しが必要です。 B: Kinesis はストリーミングデータの高スループット取り込みに特化しており、JMS のリクエスト-レスポンスパターンや双方向メッセージングには設計されていません。 A: EventBridge はイベント駆動アーキテクチャのルーティングに有効ですが、既存の JMS インターフェースとは互換性がなく、アプリケーションの大幅な書き直しが必要です。