0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

こんばんは。

システム開発では、複数のアプリケーション同士がデータをやり取りするためにメッセージキューを利用することがあります。

AWSには、Amazon SQSというメッセージキューサービスがありますが、それとは別にAmazon MQというサービスも提供されています。

Amazon MQ は、Apache ActiveMQ や RabbitMQ といったオープンソースのメッセージブローカーを、AWS がマネージドサービスとして提供するサービスです。

今回は、Amazon MQについて整理していきます。

Amazon MQとは

Amazon MQ は、Apache ActiveMQ や RabbitMQ をマネージドサービスとして提供するメッセージブローカーサービスです。

通常、ActiveMQ や RabbitMQ を利用する場合は、自分でサーバーを構築し、ソフトウェアのインストールやパッチ適用、障害対応などを行う必要があります。

Amazon MQ を利用すれば、これらの運用を AWS が管理してくれるため、利用者はアプリケーション開発に集中できます。

メッセージブローカーとは

メッセージブローカーとは、アプリケーション同士のメッセージの受け渡しを仲介する仕組みです。

例えば、ECサイトでは注文が入ると、

注文システム
      │
      ▼
 Amazon MQ
 ┌────┼────┐
 ▼         ▼
在庫管理   配送システム
           ▼
      メール送信

注文システムは各システムへ直接通知する必要がなく、Amazon MQ がメッセージを受け取り、それぞれのシステムへ配信します。

このようにシステム同士を疎結合にできるため、システムの拡張や保守がしやすくなります。

Amazon MQ の特徴

  • ActiveMQ・RabbitMQ を利用できる
  • AWS がインフラを管理
  • 高可用性(Multi-AZ)構成に対応
  • 自動バックアップ
  • 保存データや通信の暗号化に対応
  • 認証・認可機能を利用可能
  • JMS、AMQP、MQTT、STOMP、OpenWire など複数のプロトコルに対応(利用するブローカーによって異なる)

既存システムで ActiveMQ や RabbitMQ を利用している場合でも、比較的容易に AWS へ移行できます。

Amazon MQ が選ばれるケース

Amazon MQ は、次のような要件がある場合に適しています。

  • オンプレミスの ActiveMQ を AWS へ移行したい
  • RabbitMQ をそのままクラウドへ移行したい
  • JMS や AMQP を利用した既存システムを移行したい
  • アプリケーションの修正を最小限にしたい

既存システムとの互換性を維持したままクラウドへ移行できることが、Amazon MQ の最大の特徴です。

Amazon SQSとの違い

項目 Amazon MQ Amazon SQS
サービス メッセージブローカー メッセージキュー
対応プロトコル JMS、AMQP、MQTT など AWS 独自 API
既存システムとの互換性 △(実装変更が必要な場合がある)
新規 AWS システム
FIFO ブローカーの機能による FIFO キューを提供
サーバーレスとの相性

Amazon MQ は、既存のメッセージブローカーをクラウドへ移行したい場合に適しています。

一方、AWS 上で新規システムを開発する場合は、Amazon SQS を選択するケースが多くなります。

ActiveMQ と RabbitMQ

Amazon MQ では、次の 2 種類のブローカーを選択できます。

ActiveMQ

特徴

  • Java 系システムで広く利用されている
  • JMS をサポート
  • OpenWire、AMQP、MQTT、STOMP など多くのプロトコルに対応
  • エンタープライズシステムで採用実績が多い

既存の ActiveMQ 環境を AWS へ移行したい場合に適しています。

RabbitMQ

特徴

  • 軽量で高速
  • AMQP を中心としたメッセージング
  • マイクロサービスとの相性が良い
  • クラスター構成にも対応
  • Kubernetes 環境でも広く利用されている

クラウドネイティブなシステムやマイクロサービスアーキテクチャで利用されることが多いブローカーです。

Amazon MQ を利用する場面

例えば、オンプレミスで ActiveMQ を利用している場合、

オンプレミス
アプリケーション
      │
 ActiveMQ

これを AWS へ移行すると、

AWS
アプリケーション
      │
 Amazon MQ

となり、アプリケーションを大きく変更することなくクラウドへ移行できます。

Amazon MQ と Amazon SQS はどちらを選ぶ?

利用シーン 選ぶサービス
新規開発 Amazon SQS
ActiveMQ を移行したい Amazon MQ
RabbitMQ を移行したい Amazon MQ
JMS を利用したい Amazon MQ
AWS ネイティブなシステム Amazon SQS
  • 既存システムの移行 → Amazon MQ
  • AWS 上で新規開発 → Amazon SQS

という考え方をすると選択しやすくなります。

まとめ

Amazon MQ は、Apache ActiveMQ や RabbitMQ を AWS がマネージドサービスとして提供するメッセージブローカーサービスです。

特徴をまとめると、

  • ActiveMQ・RabbitMQ をマネージドで利用できる
  • 既存システムを大きく変更せず AWS へ移行しやすい
  • JMS や AMQP など複数のプロトコルに対応
  • 新規開発では Amazon SQS が選ばれることが多い
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?