Amazon Web Services ブログ

Amazon MQ アップデート — 新しい RabbitMQ メッセージブローカーサービス

2017 年には、 Apache Active MQ 用のマネージドメッセージブローカーサービス Amazon MQ開始 しました。これは、高速で機能豊富な人気のオープンソースのメッセージブローカーです。キューとトピック、耐久性と非耐久性のサブスクリプション、プッシュベースとポーリングベースのメッセージング、フィルタリングを提供します。Amazon MQ では、お客様からのフィードバックを基に多くの新機能を強化し、高いスケーラビリティと可用性が向上しました。たとえば、垂直スケーリング 99.9% のサービスレベルアグリーメント (SLA)が適用された、スループットを改善したメッセージブローカー LDAP 認証と承認をサポートし、米国の商用リージョンで HIPAAISO/PCI DSSSOCFIPS 140-2 検証済みエンドポイントなどの準拠アプリケーションを構築します。

ActiveMQ だけでなく、RabbitMQ も、最も人気のあるオープンソースのメッセージブローカーの 1 つであり、コモディティ取引や注文処理ソフトウェアのような分散アプリケーションが重要なコンポーネントです。機能の豊富さ、活発なコミュニティサポート、幅広いサポートされているクライアントとフレームワークのために RabbitMQ を選択しているお客様もいます。しかし、RabbitMQ メッセージブローカーでは、複雑なクラスター構成のデプロイの作成やパッチ適用に必要な専門知識に多大な投資が必要です。別のブローカーに変更し、マネージドサービスに移行する企業は、アプリケーションの変更に何週間も投資する必要がありました。

本日、Amazon MQ for RabbitMQ を公開しました。これは、RabbitMQ メッセージブローカーを管理する企業の運用オーバーヘッドを軽減するマネージドメッセージングサービスです。何千社ものお客様がすでに Amazon MQ を使用して、メッセージングインフラストラクチャの運用オーバーヘッドを軽減しています。RabbitMQ の追加により Amazon MQ アプリケーションの互換性が拡張したことで、より多くの企業がメッセージブローカーのデプロイ、スケーリング、操作の複雑さから解放されます。

優先するブローカーを引き続き使用し、運用オーバーヘッドを軽減しながら、コスト効率に優れたスケーラブルなメッセージング性能を確保できます。Amazon MQ は、インフラストラクチャキャパシティのプロビジョニングからメッセージングソフトウェアのインストールまで、個々のメッセージブローカーとクラスタ化されたメッセージブローカーのセットアップに関わる作業を管理します。Amazon MQ が起動されると、オペレーティングシステムやメッセージングソフトウェアのパッチ適用などの管理タスクを処理します。

Amazon MQ の RabbitMQ の開始方法
新しい RabbitMQ メッセージブローカーを作成するには、 Amazon MQ コンソール で [開始] ボタンをクリックし、ブローカーエンジン (ActiveMQ または RabbitMQ) を選択します。このエンジンは、Ruby、Python、Node.js、.NET などを含むさまざまなプラットフォーム用のクライアントライブラリを備え、AMQP 0.9.1 プロトコルをネイティブにサポートします。

次のステップでは、RabbitMQ のデプロイモードを選択します。シングルブローカーデプロイには、1 つのアベイラビリティーゾーンに 1 つのブローカーインスタンスがあり、クラスターデプロイでは 3 つのノードの論理グループがあり、それぞれのノードが分散状態、ユーザー、およびキューを共有します。クラスターデプロイメントでは、複数のアベイラビリティーゾーンを跨いでデータが冗長的に格納され、メッセージの耐久性が提供されます。

RabbitMQ クラスターは、高可用性を必要とするユースケースで従来のキューミラーリングをサポートします。ミラーリングされたキューは、複数のノード間でメッセージをレプリケートします。キューをホストするメインノードに障害が発生すると、ミラーノードがメインノードに昇格されるため、可用性は中断されることはありません。

次のステップで、ブローカー名を入力し、インスタンスタイプを選択します。単一インスタンスブローカーデプロイで 無料利用枠の対象となる基本評価用に mq.t3.micro を選択できます。 RabbitMQ Web コンソールにアクセスするには、ユーザー名パスワードを入力します。

追加の設定では、ブローカーエンジンのバージョンを選択し、ブローカーのログを Amazon CloudWatch に公開するために CloudWatch ログを有効にし、アクセスタイプを Virtual Private Cloud (VPC) の外側または VPC 限定に設定できます。[プライベートアクセス] を選択した場合は、ブローカーインスタンスへのアクセスを必要とするすべての EC2 インスタンスおよびデバイスからの接続を許可するルールを定義するために、VPC/サブネットを割り当てて EC2 インスタンスおよびセキュリティグループをアタッチできます。

[次へ] をクリックし、設定を確認し、[ブローカーの作成] ボタンをクリックします。ブローカーが作成され、5~10分後に使用できるようになります。

クラスターデプロイ用の AWS コマンドラインインターフェイス(CLI) の簡単なコマンドを使用して、RabbitMQ ブローカーを作成できます。

$ aws mq create-broker --broker-name myRabbitCluster \
        --deployment-mode CLUSTER_MULTI_AZ \
        --engine-type rabbitmq \
        --engine-version 3.8.6 \
        --host-instance-type mq.m5.large \ 
        --publicly-accessible \
        --users ConsoleAccess=true,Username=admin,Password=str0nGpass@#,Groups=admin

新しいブローカーが作成されると、ブローカーへのアクセスに使用するウェブコンソール URL とエンドポイントはすべてワンクリックで利用できるようになります。

RabbitMQ ウェブコンソールには、提供されたリンクからアクセスできます。私は Pika Pythonクライアントを使った簡単な方法で、このブローカーをテストしました。

ブローカーは、インスタンス、トピック、およびキューのメトリックスを CloudWatch に発行します。詳細については、What is Amazon MQ? (Amazon MQ for Rabbit MQ デベロッパーガイド)をご覧ください。

今すぐご利用いただけます
RabbitMQ for Amazon MQ は現在利用可能で、Amazon MQ が利用可能なすべてのリージョンで使用を開始できます。詳細については、 製品ページ料金移行ガイドを参照してください。ご意見、ご感想があれば、Amazon MQ の AWS フォーラム、AWS サポート、またはアカウントチームにお送りください。

Channy