翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon MQ のブローカーのネットワーク
Amazon MQ は ActiveMQ のブローカーのネットワーク機能をサポートしています。
ブローカーのネットワークは、同時にアクティブな複数の単一インスタンスブローカー、またはアクティブ/スタンバイブローカーで構成されています。ブローカーのネットワークは、高可用性やスケーラビリティなどのアプリケーションのニーズに応じて、さまざまなトポロジ (コンセントレータ、ハブアンドスポーク、ツリー、またはメッシュなど) で設定できます。例えば、ブローカーのハブアンドスポークネットワークは耐障害性を高めることができ、1 つのブローカーが到達不能な場合にはメッセージを保存します。コンセントレータトポロジを使用するブローカーのネットワークは、多数の着信メッセージの負荷をより良く処理するために、着信メッセージを受け入れる多数のブローカーからメッセージを収集し、それらをより中核的なブローカーに集中させます。
チュートリアルおよび詳細な設定情報については、以下を参照してください。
ブローカーのネットワークを使用すると、以下のような利点があります。
-
ブローカーのネットワークを作成すると、ブローカーインスタンスを追加することで、総スループットと最大プロデューサーおよびコンシューマー接続数を増やすことができます。
-
プロデューサーとコンシューマーが複数のアクティブなブローカーインスタンスを認識できるようにすることで、可用性を向上させることができます。これにより、現在接続しているインスタンスが使用できなくなった場合に、新しいインスタンスに再接続できます。
-
プロデューサーとコンシューマーはブローカーネットワーク内の別のノードにすぐに再接続できるため、また、スタンバイブローカーインスタンスが昇格するのを待つ必要がないため、ブローカーのネットワーク内でのクライアントの再接続は、高可用性のためのアクティブ/スタンバイブローカーよりも高速です。
トピック
ブローカーのネットワークの仕組み
Amazon MQ は、ActiveMQ のブローカーのネットワーク機能をさまざまな方法でサポートします。まず、ネイティブ ActiveMQ と同じように、各ブローカーの設定内のパラメータを編集してブローカーのネットワークを作成できます。次に、Amazon MQ には、AWS CloudFormation を使用してブローカーのネットワークの作成を自動化するサンプル設計図があります。Amazon MQ コンソールからこれらのサンプル設計図を直接デプロイする、または関連する AWS CloudFormation テンプレートを編集して独自のトポロジと設定を作成することが可能です。
ブローカーのネットワークは、ネットワークコネクターを使用してブローカー同士を接続することによって確立されます。接続されると、これらのブローカーはメッセージ転送を提供します。例えば、Broker1 が Broker2 へのネットワークコネクターを確立する場合、ブローカーにキューまたはトピックのコンシューマーが存在すると、Broker1 のメッセージは Broker2 に転送されます。ネットワークコネクターが duplex
として設定されている場合も、メッセージは Broker2 から Broker1 に転送されます。ネットワークコネクターはブローカーの設定で設定されます。「Amazon MQ Broker Configuration Parameters」を参照してください。例えば、ブローカー設定の networkConnector
エントリの例は以下のようになります。
<networkConnectors>
<networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
ブローカーのネットワークは、メッセージがあるブローカーインスタンスから別のブローカーインスタンスに確実に流れ、対応するコンシューマーを持つブローカーインスタンスにのみメッセージを転送するようにします。ネットワーク内でブローカーインスタンスが互いに隣接しているという利点のために、ActiveMQ は、ネットワークに接続したり切断したりするプロデューサーとコンシューマーに関するメッセージをアドバイザリトピックに送信します。ブローカーインスタンスが特定の送信先から消費するコンシューマーに関する情報を受信すると、ブローカーインスタンスはメッセージの転送を開始します。詳細については、ActiveMQ ドキュメントの「アドバイザリトピック
ブローカーのネットワークはどのように認証情報を処理しますか?
ブローカー A がネットワーク内でブローカー B に接続するには、ブローカー A が他のプロデューサーまたはコンシューマーと同様に有効な認証情報を使用する必要があります。ブローカー A の <networkConnector>
設定でパスワードを提供する代わりに、ブローカー B の別のユーザーと同じ値を持つブローカー A のユーザーを最初に作成する必要があります (これらは同じユーザー名を共有する別の、一意のユーザーです)。<networkConnector>
設定で userName
属性を指定すると、Amazon MQ は実行時にパスワードを自動的に追加します。
重要
<networkConnector>
には password
属性を指定しないでください。パスワードが Amazon MQ コンソールに表示されてしまうため、プレーンテキストのパスワードをブローカー設定ファイルに保存することは推奨されません。詳細については、「Configure Network Connectors for Your Broker」を参照してください。
ブローカーは、同じ VPC またはピア接続された VPC に属している必要があります。詳細については、Creating and Configuring a Network of Brokersチュートリアルの「前提条件」を参照してください。
サンプル設計図
Amazon MQ では、ブローカーのネットワークの使用を開始するためのサンプル設計図が提供されています。これらのサンプルの設計図は、ブローカーのネットワーク展開、および AWS CloudFormation を使用したすべての関連リソースを作成します。利用可能な 2 つのサンプル設計図は次のとおりです。
-
シングルインスタンスブローカーのメッシュネットワーク
-
アクティブ/スタンバイブローカーのメッシュネットワーク

[ブローカーの作成] ページから、サンプルの設計図を 1 つ選択し、[次へ] を選択します。リソースが作成されたら、Amazon MQ コンソールで生成されたブローカーとその設定を確認します。
ブローカーを作成し、ブローカー設定でさまざまな networkConnector
要素を設定することで、さまざまなトポロジでブローカーのネットワークを作成できます。ブローカーのネットワーク設定の詳細については、ActiveMQ ドキュメントの「ブローカーのネットワーク
ブローカーのネットワークのトポロジ
ブローカーをデプロイし、その設定で networkConnector
エントリを設定することで、さまざまなネットワークトポロジを使用してブローカーのネットワークを構築できます。ネットワークコネクターは、接続されているブローカー間でオンデマンドメッセージ転送を提供します。接続は、メッセージがブローカー間で双方向に転送される二重、または転送が一方のブローカーから他方のブローカーにのみ伝達される二重ではないように構成できます。たとえば、Broker1 と Broker2 の間に二重接続があり、コンシューマーが存在する場合は、メッセージはお互いに転送されます。

二重ネットワークコネクターでは、メッセージは各ブローカーから他のブローカーに転送されます。これらはオンデマンドで転送されます。Broker1 のメッセージに対するコンシューマーが Broker2 にある場合は、メッセージが転送されます。同様に、Broker2 のメッセージに対するコンシューマーが Broker1 にある場合も、メッセージが転送されます。
非二重接続の場合、メッセージは一方のブローカーから他方のブローカーにのみ転送されます。この例では、Broker1 のメッセージに対するコンシューマーが Broker2 にある場合に、メッセージが転送されます。しかし、メッセージは Broker2 から Broker1 に転送されません。

二重と非二重の両方のネットワークコネクターを使用して、任意の数のネットワークトポロジでブローカーのネットワークを構築できます。
注記
各ネットワークトポロジの例で、networkConnector
要素は、接続先ブローカーのエンドポイントを参照しています。uri
属性のブローカーエンドポイントエントリをブローカーのエンドポイントに置き換えます。「Listing brokers and viewing broker details」を参照してください。
メッシュトポロジ
メッシュトポロジは、すべて互いに接続されている複数のブローカーを提供します。この簡単な例では、3 つのシングルインスタンスブローカーを接続していますが、より多くのブローカーをメッシュとして設定できます。

このトポロジ、およびブローカーのアクティブ/スタンバイペアのメッシュが含まれるトポロジは、Amazon MQ コンソールのサンプル設計図を使用して作成できます。これらのサンプル設計図デプロイを作成して、機能しているブローカーのネットワークを確認し、それらがどのように設定されているかを確認できます。
Broker2 と Broker3 の両方に二重接続を確立し、Broker2 と Broker3 の間に単一の二重接続を確立するネットワークコネクターを Broker1 に追加することで、このように 3 ブローカーメッシュネットワークを設定できます。
Broker1 のネットワークコネクター:
<networkConnectors>
<networkConnector name="connector_1_to_2" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="connector_1_to_3" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
Broker2 のネットワークコネクター:
<networkConnectors>
<networkConnector name="connector_2_to_3" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
Broker1 と Broker2 の設定に上記のコネクターを追加することで、これら 3 つのブローカー間に、オンデマンドですべてのブローカー間でメッセージを転送するメッシュを作成できます。詳細については、「Amazon MQ Broker Configuration Parameters」を参照してください。
ハブアンドスポークトポロジ
ハブアンドスポークトポロジでは、スポークのブローカーが中断してもメッセージは保存されます。メッセージは一斉に転送され、中心的な Broker1 だけがネットワークのオペレーションに不可欠です。

この例にあるブローカーのハブアンドスポークネットワークを設定するには、Broker1 の設定にあるスポーク上の各ブローカーに networkConnector
を追加できます。
<networkConnectors>
<networkConnector name="connector_hub_and_spoke_2" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="connector_hub_and_spoke_3" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="connector_hub_and_spoke_4" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="connector_hub_and_spoke_5" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
コンセントレータトポロジ
このトポロジ例では、一番下の 3 つのブローカーが多数の接続を処理でき、それらのメッセージは Broker1 と Broker2 に集中しています。他の各ブローカーは、より中央のブローカーへの非二重接続を持っています。このトポロジの容量を拡張するために、メッセージを受信してそれらのメッセージを Broker1 と Broker2 に集中させる追加のブローカーを追加することができます。

このトポロジを設定するには、一番下の各ブローカーに、メッセージを集中させている各ブローカーへのネットワークコネクターを含めます。
Broker3 のネットワークコネクター:
<networkConnectors>
<networkConnector name="3_to_1" userName="myCommonUser" duplex="false"
uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="3_to_2" userName="myCommonUser" duplex="false"
uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
Broker4 のネットワークコネクター:
<networkConnectors>
<networkConnector name="4_to_1" userName="myCommonUser" duplex="false"
uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="4_to_2" userName="myCommonUser" duplex="false"
uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
Broker5 のネットワークコネクター:
<networkConnectors>
<networkConnector name="5_to_1" userName="myCommonUser" duplex="false"
uri="static:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="5_to_2" userName="myCommonUser" duplex="false"
uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
クロスリージョン
AWS リージョンにまたがるブローカーのネットワークを設定するには、それらのリージョンにブローカーをデプロイし、それらのブローカーのエンドポイントにネットワークコネクターを設定します。

この例のようなブローカーのネットワークを設定するには、これらのブローカーのワイヤレベルのエンドポイントを参照する Broker1 と Broker4 の設定に networkConnectors
エントリを追加できます。
Broker1 のネットワークコネクター:
<networkConnectors>
<networkConnector name="1_to_2" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="1_to_3" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="1_to_4" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-62a7fb31-d51c-466a-a873-905cd660b553-4.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
Broker2 のネットワークコネクター:
<networkConnectors>
<networkConnector name="2_to_3" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
Broker4 のネットワークコネクター:
<networkConnectors>
<networkConnector name="4_to_3" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-743c885d-2244-4c95-af67-a85017ff234e-3.mq.us-east-2.amazonaws.com:61617)"/>
<networkConnector name="4_to_2" userName="myCommonUser" duplex="true"
uri="static:(ssl://b-9876l5k4-32ji-109h-8gfe-7d65c4b132a1-2.mq.us-east-2.amazonaws.com:61617)"/>
</networkConnectors>
トランスポートコネクタを使用した動的なフェイルオーバー
networkConnector
要素の設定に加えて、ブローカーの transportConnector
オプションを設定して動的なフェイルオーバーを有効にし、ネットワークからブローカーが追加または削除されたときに接続を再分散することができます。
<transportConnectors>
<transportConnector name="openwire" updateClusterClients="true" rebalanceClusterClients="true" updateClusterClientsOnRemove="true"/>
</transportConnectors>
この例では、updateClusterClients
および rebalanceClusterClients
の両方が true
に設定されます。この場合、クライアントにはネットワークのブローカーのリストが提供され、新しいブローカーが参加した場合は再分散がリクエストされます。
利用可能なオプション:
-
updateClusterClients
: ブローカートポロジのネットワークの変化に関する情報をクライアントに渡します。 -
rebalanceClusterClients
: 新しいブローカーがブローカーのネットワークに追加されたときに、クライアントはブローカー間で再分散されます。 -
updateClusterClientsOnRemove
: ブローカーがブローカーのネットワークを離れるときに、トポロジ情報を使用してクライアントを更新します。
updateClusterClients
を true に設定すると、クライアントはブローカーのネットワークの 1 つのブローカーに接続するように設定されます。
failover:(ssl://b-1234a5b6-78cd-901e-2fgh-3i45j6k178l9-1.mq.us-east-2.amazonaws.com:61617)
新しいブローカーが接続すると、そのブローカーはネットワーク内のすべてのブローカーの URI のリストを受け取ります。ブローカーへの接続に失敗した場合、接続時に、提供されたいずれかのブローカーに動的に切り替えることができます。
フェイルオーバーの詳細については、Active MQ ドキュメントの「Broker-side Options for Failover