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

最終更新日: 2022 年 4 月 19 日

RabbitMQ Shovel プラグインを使用して、オンプレミスブローカーから Amazon MQ for RabbitMQ ブローカーにメッセージを移動したいと考えています。RabbitMQ Shovel プラグインと連動するように Amazon MQ for RabbitMQ ブローカーを設定するにはどうすればよいですか?

簡単な説明

Amazon MQ for RabbitMQ ブローカーで RabbitMQ Shovel プラグインを設定するには、動的ショベルを作成する必要があります。

Amazon MQ for RabbitMQ ブローカーの動的ショベルを作成するには、次のいずれかを使用できます。

解決方法

注意: この手順には、アップストリームブローカー (オンプレミスまたはクラウドベース) とダウンストリームブローカー (Amazon MQ for RabbitMQ ブローカー) の 2 つのブローカーが必要です。動的ショベルは、ダウンストリームブローカーまたはアップストリームブローカーのいずれかに設定できます。この手順例では、ダウンストリームブローカーで動的ショベルを作成する方法を示します。

RabbitMQ Web コンソールを使用してダウンストリームブローカーに動的ショベルを作成するには

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

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

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

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

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

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

6.    RabbitMQ Web コンソールで、[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 Command Line Tool を使用してダウンストリームブローカーに動的ショベルを作成するには

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

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

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 Web コンソールを使用してダウンストリームブローカーに動的ショベルを作成するには」のステップ 1 ~ 5 を参照してください。

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

3.    左のナビゲーションペインで、[Get messages] (メッセージの取得) をクリックします。[Get messages] (メッセージの取得) セクションが開きます。

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


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?