

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon MQ のブローカーのネットワーク
<a name="network-of-brokers"></a>

Amazon MQ は ActiveMQ のブローカーのネットワーク機能をサポートしています。

 ブローカーのネットワークは、同時にアクティブな複数の単一インスタンスブローカー、またはアクティブ/スタンバイブローカーで構成されています。ブローカーのネットワークを作成すると、複数のブローカーインスタンスで可用性、耐障害性、ロードバランシングを向上させることができます。

## ブローカーのネットワークの仕組み
<a name="how-does-it-work"></a>

 ブローカーのネットワークは、*ネットワークコネクター*を使用してあるブローカーを別のブローカーに接続することによって確立されます。ネットワークコネクターは、あるブローカーから別のブローカーへのオンデマンドメッセージを提供します。ネットワークコネクターは、ブローカー設定で*非二重*接続または*二重*接続として設定されます。非二重接続の場合、メッセージは一方のブローカーから他方のブローカーにのみ転送されます。二重接続の場合、メッセージは両方のブローカー間で双方向に転送されます。

 ネットワークコネクターが二重として設定されている場合も、メッセージは *Broker2* から *Broker1* に転送されます。

 ブローカーのネットワークでは、非二重接続と二重接続の両方を使用できます。トラフィックを改善したり、制限の引き上げを回避したりするために、別のブローカーに二重接続を導入することもできます。二重接続は、オンプレミスから Amazon MQ マネージドブローカーへの部分的な移行にも役立ちます。

## ブローカーのネットワークはどのように認証情報を処理しますか?
<a name="how-does-it-handle-credentials"></a>

ブローカー A がネットワーク内でブローカー B に接続するには、ブローカー A が他のプロデューサーまたはコンシューマーと同様に有効な認証情報を使用する必要があります。ブローカー A の `<networkConnector>` 設定でパスワードを提供する代わりに、ブローカー B の別のユーザーと同じ値を持つブローカー A のユーザーを最初に作成する必要があります (これらは同じユーザー名を共有する*別の、一意の*ユーザーです)。`<networkConnector>` 設定で `userName` 属性を指定すると、Amazon MQ は実行時にパスワードを自動的に追加します。

**重要**  
`<networkConnector>` には `password` 属性を指定しないでください。パスワードが Amazon MQ コンソールに表示されてしまうため、プレーンテキストのパスワードをブローカー設定ファイルに保存することは推奨されません。詳細については、「[ステップ 2: ブローカー用のネットワークコネクターを設定する](amazon-mq-creating-configuring-network-of-brokers.md#creating-configuring-network-of-brokers-configure-network-connectors)」を参照してください。

## クロスリージョン
<a name="how-to-configure-cross-region"></a>

 AWS リージョンにまたがるブローカーのネットワークを設定するには、それらのリージョンにブローカーをデプロイし、それらのブローカーのエンドポイントへのネットワークコネクタを設定します。

![クロスリージョンメッシュトポロジ](http://docs.aws.amazon.com/ja_jp/amazon-mq/latest/developer-guide/images/amazon-mq-nob-cross-region.png)


この例のようなブローカーのネットワークを設定するには、これらのブローカーのワイヤレベルのエンドポイントを参照する *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-west-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-west-2.amazonaws.com:61617)"/>      
</networkConnectors>
```

## トランスポートコネクタを使用した動的なフェイルオーバー
<a name="transport-connectors"></a>

`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](http://activemq.apache.org/failover-transport-reference.html#FailoverTransportReference-Broker-sideOptionsforFailover)」を参照してください。