Amazon MQ ブローカーに RabbitMQ Shovel プラグインを設定するにはどうすればよいですか?

所要時間2分
0

RabbitMQ Shovel プラグインを使用して、オンプレミスブローカーから Amazon MQ for RabbitMQ ブローカーにメッセージを移動したいと考えています。

簡単な説明

Amazon MQ for RabbitMQ ブローカーで RabbitMQ Shovel プラグインを設定するには、(RabbitMQ のウェブサイトで) 動的シャベルを作成します。Amazon MQ for RabbitMQ ブローカー用の動的シャベルを作成するには、以下のいずれかの方法を使用できます。

以下の解決方法には、アップストリームブローカーとダウンストリームブローカーの 2 つのブローカーが必要です。オンプレミスまたはクラウドベースのアップストリームブローカーを使用できます。この場合、ダウンストリームブローカーは Amazon MQ for RabbitMQ ブローカーです。動的シャベルは、ダウンストリームブローカーまたはアップストリームブローカーのどちらにも設定できます。以下の手順の例は、ダウンストリームブローカーで動的シャベルを作成する方法を示しています。

注: Amazon MQ では、プライベート Amazon MQ ブローカーをシャベルの宛先または静的シャベルにすることはサポートされていません。詳細については、「Shovel plugin」を参照してください。

解決方法

RabbitMQ ウェブコンソールを使用してダウンストリームのブローカーで動的シャベルを作成する

重要: シャベルを作成するブローカーに存在しないキューには、必ず Uniform Resource Identifier (URI) を指定してください。

1.    Amazon MQ コンソールを開きます。

2.    ナビゲーションペインで、[ブローカー] を選択します。

3.    [名前] 列で、ダウンストリームブローカーの名前を選択します。

4.    [接続] ペインで、[RabbitMQ ウェブコンソール] の下に表示されている URL を選択します。ダウンストリームブローカーの RabbitMQ ウェブコンソールログインページが開きます。

5.    ブローカーのユーザー名パスワードを入力します。次に、[Login] を選択して RabbitMQ ウェブコンソールにログインします。

6.    RabbitMQ ウェブコンソールで、[Admin] タブを選択します。次に、右側のナビゲーションペインで [Shovel Management] を選択します。

7.    [Add a new shovel] を選択します。

8.    [Name] に、ポリシーの名前を入力します。

9.    [Source] で、ドロップダウンリストから [AMQP 0.9.1] を選択します。次の手順を実行します:
[URI] の右側にあるドロップダウンリストで、[Queue] を選択します。
[Queue] の下のテキストボックスに、アップストリームブローカーのソースキューの名前を入力します。
[URI] で、デフォルトのテキスト amqp:// を削除して、アップストリームブローカーの URI を次の形式で入力します:

amqps://$UPSTREAM_BROKER_USER:$UPSTREAM_BROKER_PASSWORD@$UPSTREAM_BROKER_ENDPOINT:5671

10.    [Destination] で、ドロップダウンリストから [AMQP 0.9.1] を選択します。次の手順を実行します:
[URI] の右側にあるドロップダウンリストで、[Queue] を選択します。
[Queue] の下のテキストボックスに、ダウンストリームブローカーの宛先キューの名前を入力します。
[URI] をデフォルトのテキスト amqp:// のままにして、ダウンストリームブローカーの URI を次の形式で入力します:

amqp://$DOWNSTREAM_BROKER_USER:$DOWNSTREAM_BROKER_PASSWORD@$DOWNSTREAM_BROKER_ENDPOINT:5671

11.    [Add shovel] を選択します。
注: ソースキューと宛先キューがまだ存在しない場合、RabbitMQ によって自動的に作成されます。

RabbitMQ Management コマンドラインツールでダウンストリームのブローカーに動的シャベルを作成する

重要: シャベルを作成するブローカーに存在しないキューには、必ず Uniform Resource Identifier (URI) を指定してください。

次の curl コマンドを実行します。

curl -u $SHOVEL_BROKER_USER:$SHOVEL_BROKER_PASSWORD \
-X PUT https://$SHOVEL_BROKER_ENDPOINT/api/parameters/shovel/%2f/rmq-lab-shovel \
-H "content-type: application/json" \
-d '{"value": {"src-protocol": "amqp091","src-uri": "amqps://$UPSTREAM_BROKER_USER:$UPSTREAM_BROKER_PASSWORD@$UPSTREAM_BROKER_ENDPOINT:5671","src-queue": "shovel-demo-src-queue","dest-protocol": "amqp091","dest-uri": "amqps://$DOWNSTREAM_BROKER_USER:$DOWNSTREAM_BROKER_PASSWORD@$DOWNSTREAM_BROKER_ENDPOINT:5671","dest-queue": "shovel-demo-dest-queue"}}'

重要:

  • $SHOVEL_BROKER_USER$SHOVEL_BROKER_PASSWORDダウンストリームブローカーの認証情報に置き換えます。
  • $SHOVEL_BROKER_ENDPOINTダウンストリームブローカーのエンドポイントに置き換えます。
  • $UPSTREAM_BROKER_USER$UPSTREAM_BROKER_PASSWORDアップストリームブローカーの認証情報に置き換えます。
  • $UPSTREAM_BROKER_ENDPOINTアップストリームブローカーのエンドポイントに置き換えます。
  • $DOWNTREAM\ _BROKER\ _USER$DOWNTREAM\ _BROKER\ _PASSWORDダウンストリームブローカーの認証情報に置き換えます。
  • $DOWNTREAM\ _BROKER\ _ENDPOINTダウンストリームブローカーのエンドポイントに置き換えます。
  • $SOURCE\ _QUEUE\ _NAMEアップストリームブローカーのソースキューの名前に置き換えます。
  • $DESTINATION\ _QUEUE\ _NAMEダウンストリームブローカーの宛先キューの名前に置き換えます。

設定をテストする

アップストリームブローカーのソースキューにテストメッセージを送信する

1.    アップストリームブローカーの RabbitMQ ウェブコンソールを開きます。
注: RabbitMQ ウェブコンソールにアクセスする方法の詳細については、RabbitMQ ドキュメントの「Management plugin」を参照してください。

2.    [Queues] タブを選択します。次に、ソースキューの名前を選択します。

3.    ナビゲーションペインで、[Publish message] を選択します。[Publish message] セクションが開きます。

4.    [Payload] テキストボックスに、テストメッセージを入力します。
注: [Headers][Properties] のテキストボックスは空白のままにすることができます。

5.    [Publish message] ボタンを選択します。これにより、テストメッセージがソースキューに送信されます。動的シャベルが正しく設定されていれば、シャベルはメッセージを消費してダウンストリームブローカーの宛先キューに送信します。

テストメッセージがダウンストリームブローカーの宛先キューで受信されていることを確認する

1.    ダウンストリームブローカーの RabbitMQ ウェブコンソールを開きます。手順については、「RabbitMQ ウェブコンソールを使用してダウンストリームのブローカーで動的シャベルを作成する」セクションの手順 1~5 を参照してください。

2.    [Queues] タブを選択します。次に、宛先キューの名前を選択します。

3.    ナビゲーションペインで、[Get messages] を選択します。[Get messages] セクションが開きます。

4.    [Get messages] ボタンを選択します。動的シャベルが正しく設定されていれば、ソースキューに送信したテストメッセージが [Payload] の値として表示されます。

関連情報

メッセージ駆動型アプリケーションを Amazon MQ for RabbitMQ に移行する

Amazon MQ ブローカーで RabbitMQ Federation プラグインをセットアップするにはどうすればよいですか?

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ