

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

# Amazon MQ for RabbitMQ のプライベートネットワーキング
<a name="private-networking"></a>

プライベートネットワーキングにより、Amazon MQ for RabbitMQ ブローカーは VPC 内のプライベートリソースに接続できます。これらのリソースには、プライベート ID プロバイダー (LDAP または OAuth2)、他の Amazon MQ for RabbitMQ ブローカー、またはセルフホスト RabbitMQ ブローカーが含まれます。パブリックインターネットを経由することなく、リソースにプライベートに接続できます。

**可用性**  
プライベートネットワーキングは、Amazon MQ for RabbitMQ ブローカーでのみ使用できます。ActiveMQ ブローカーはサポートされていません。
プライベートネットワーキングは、AWSGovCloud (米国) リージョンでは使用できません。
プライベートネットワーキングは、Amazon VPC Lattice が利用可能なAWSリージョンでのみ使用できます。VPC Lattice が利用可能なリージョンの詳細については、 *AWS全般のリファレンス*の[「Amazon VPC Lattice エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/vpc-lattice-service.html)」を参照してください。

**Topics**
+ [プライベートネットワーキングの仕組み](#private-networking-how-it-works)
+ [前提条件](#private-networking-prerequisites)
+ [プライベートネットワークの設定](#private-networking-setup)
+ [ユースケース](#private-networking-use-cases)
+ [共有リソースの変更](#private-networking-modifying)
+ [クォータ](#private-networking-quotas)
+ [リソースの状態](#private-networking-resource-states)
+ [トラブルシューティング](#private-networking-troubleshooting)

## プライベートネットワーキングの仕組み
<a name="private-networking-how-it-works"></a>

プライベートネットワーキングは、Amazon VPC Lattice、AWSResource Access Manager (AWSRAM)、および AWSPrivateLink を使用して、ブローカーを VPC 内のプライベート送信先に接続します。

セットアップには、次のコンポーネントが含まれます。

1. **VPC 内の VPC Lattice リソースゲートウェイ**は、ブローカーからプライベートリソースへのトラフィックのエントリポイントとして機能します。

1. 1 つ以上の **VPC Lattice リソース設定**は、リソースゲートウェイを介して到達可能なプライベート送信先 (IP アドレスまたは DNS 名) を定義します。

1. **AWSRAM リソース共有**はリソース設定をパッケージ化し、`UpdateBroker`API オペレーションを通じてブローカーに関連付けられます。

1. ブローカーの再起動中、Amazon MQ はブローカーの VPC にリソース VPC エンドポイントを作成します。これらのエンドポイントは、リソースゲートウェイから設定された宛先へのネットワークパスを確立します。

## 前提条件
<a name="private-networking-prerequisites"></a>

プライベートネットワークを設定する前に、以下を確認してください。
+ Amazon MQ for RabbitMQ ブローカーが `RUNNING`状態にある。
+ 少なくとも 1 つのサブネットを持つ VPC がある。この VPC はリソースゲートウェイをホストするため、ブローカーと同じ VPC である必要はありません。高可用性を実現するには、複数のアベイラビリティーゾーンでサブネットを使用します。
+ VPC Lattice リソースゲートウェイは、ブローカーと少なくとも 1 つのアベイラビリティーゾーンを共有する必要があります。これは単一インスタンスブローカーにのみ関係します。クラスターブローカーは、使用可能なすべてのアベイラビリティーゾーンを使用します。

**注記**  
ブローカーはプライベートである必要はありません。パブリックにアクセス可能なブローカーは、プライベートネットワークを使用することもできます。

## プライベートネットワークの設定
<a name="private-networking-setup"></a>

Amazon MQ for RabbitMQ ブローカーのプライベートネットワークを設定するには、次の手順に従います。

### ステップ 1: VPC Lattice リソースゲートウェイを作成する
<a name="private-networking-setup-resource-gateway"></a>

プライベートリソースに到達できる VPC に VPC Lattice リソースゲートウェイを作成します。リソースゲートウェイは、透過的なプロキシとして機能します。ブローカーから設定された宛先にトラフィックをルーティングします。

1. [Amazon VPC コンソール](https://console.aws.amazon.com/vpc/home#ResourceGateways:) を開きます。

1. ナビゲーションペインの **VPC Lattice **で、**リソースゲートウェイ**を選択します。

1. **[リソースゲートウェイを作成]** を選択します。

1. VPC、サブネット、セキュリティグループを使用してリソースゲートウェイを設定します。少なくとも 1 つのサブネットがブローカーと共有されているアベイラビリティーゾーンにあることを確認します。

詳細については、[「Amazon VPC Lattice ユーザーガイド」の「リソースゲートウェイ](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-gateways.html)」を参照してください。 **

### ステップ 2: VPC Lattice リソース設定を作成する
<a name="private-networking-setup-resource-config"></a>

ブローカーが到達する必要があるプライベート送信先を定義する 1 つ以上のリソース設定を作成します。各リソース設定は、リソースゲートウェイをセットアップする VPC 内から解決可能な IP アドレスまたは DNS 名を指定します。

オプションで、リソース設定にカスタムドメイン名を追加できます。ブローカーからの DNS 解決に使用できるのは、検証済みドメイン名のみです。リソース設定に使用可能なドメイン名がない場合、Amazon MQ は `DescribeSharedResources` API オペレーションを通じて DNS 名を提供します。この DNS 名はブローカー設定で使用できます。

詳細については、「*Amazon VPC Lattice ユーザーガイド*」の「[Resource configurations](https://docs.aws.amazon.com/vpc-lattice/latest/ug/resource-configurations.html)」を参照してください。

### ステップ 3: RAM AWSリソース共有を作成する
<a name="private-networking-setup-ram-share"></a>

AWSRAM リソース共有を作成し、VPC Lattice リソース設定を追加します。リソース共有は、Amazon MQ ブローカーに関連付けるものです。

**重要**  
リソース共有では、外部プリンシパルを許可する必要があります。組織 (`allowExternalPrincipals=false`) に制限されたリソース共有は、Amazon MQ では使用できません。

詳細については、「 Resource *AWSAccess Manager ユーザーガイド*[」の「リソース共有](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html)の作成」を参照してください。

### ステップ 4: リソース共有をブローカーに関連付ける
<a name="private-networking-setup-associate"></a>

`UpdateBroker` API オペレーションを使用して、RAM AWSリソース共有をブローカーに関連付けます。リソース共有 ARNs のリストを指定することで、複数のリソース共有を関連付けることができます。

**Example を使用してリソース共有を関連付けるAWS CLI**  

```
aws mq update-broker \
    --broker-id {{b-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}} \
    --resource-share-arns {{arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222}}
```

プレースホルダーを独自の値に置き換えます。
+ `--broker-id` – ブローカーの一意の ID ({{b-a1b2c3d4-...}} 値）。
+ `--resource-share-arns` – RAM リソース共有の Amazon AWSリソースネーム (ARN) ({{arn:aws:ram:...}} 値）。

詳細については、*Amazon MQ REST API リファレンス*の[UpdateBroker](https://docs.aws.amazon.com//amazon-mq/latest/api-reference/brokers-broker-id.html)」を参照してください。

複数のリソース共有を関連付けるには、ARNsで区切ります。

```
aws mq update-broker \
    --broker-id {{b-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}} \
    --resource-share-arns {{arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222}} {{arn:aws:ram:us-east-1:123456789012:resource-share/a1b2c3d4-5678-90ab-cdef-EXAMPLE33333}}
```

**注記**  
再起動`UpdateBroker`前に複数回 を呼び出すと、最後の呼び出しのみが有効になります。`resourceShareArns` パラメータは完全な置換 (入力) であり、加算オペレーションではありません。を呼び出すたびに、ブローカーに関連付けるリソース共有 ARNs の完全なリストを指定する必要があります`UpdateBroker`。

**注記**  
リソース共有の関連付けを変更するには、ブローカーを再起動する必要があります。を呼び出す`UpdateBroker`と、リソース共有がブローカーに関連付けられますが、ネットワークパスはすぐに確立されません。

### ステップ 5: ブローカーを再起動する
<a name="private-networking-setup-reboot"></a>

ブローカーを再起動して、保留中のリソース共有の変更を適用します。再起動中、Amazon MQ はブローカーの VPC にリソース VPC エンドポイントを作成します。次に、プライベートリソースへのネットワークパスを確立します。

**Example を使用してブローカーを再起動するAWS CLI**  

```
aws mq reboot-broker --broker-id {{b-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}
```

再起動すると、単一インスタンスブローカーのダウンタイムと、クラスターブローカーの短い利用不能 (フェイルオーバー) が発生します。ブローカーが `RUNNING`状態に戻るのを待ってから次に進みます。これには通常 10～20 分かかります。

詳細については、*Amazon MQ * [RebootBroker](https://docs.aws.amazon.com//amazon-mq/latest/api-reference/brokers-broker-id-reboot.html)」を参照してください。

### ステップ 6: セットアップを確認する
<a name="private-networking-setup-verify"></a>

`DescribeSharedResources` API オペレーションを使用して、リソースが使用可能であることを確認します。これを使用して、ブローカー設定で使用する DNS 名を取得することもできます。

**Example を使用して共有リソースを検証するAWS CLI**  

```
aws mq describe-shared-resources --broker-id {{b-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}
```

セットアップが完了すると、リソース共有は `AVAILABLE`状態になります。各リソース設定には、関連付けられた DNS 名が表示されます。

詳細については、*Amazon MQ REST API リファレンス*」の「[DescribeSharedResources](https://docs.aws.amazon.com//amazon-mq/latest/api-reference/brokers-broker-id-shared-resources.html)」を参照してください。

## ユースケース
<a name="private-networking-use-cases"></a>

以下のセクションでは、プライベートネットワーキングの一般的なユースケースについて説明します。

### プライベート ID プロバイダーへの接続
<a name="private-networking-private-idp"></a>

プライベートネットワークを使用して、ブローカーをパブリックインターネットに公開することなく、プライベート LDAP または OAuth2 ID プロバイダーに接続できます。プライベートネットワークを設定したら、ブローカーの認証設定で `DescribeSharedResources` API レスポンスの DNS 名を使用します。

認証の設定の詳細については、[Amazon MQ for RabbitMQ の LDAP 認証と認可](ldap-for-amq-for-rabbitmq.md)「」および「」を参照してください[Amazon MQ for RabbitMQ に対する OAuth 2.0 の認証と認可](oauth-for-amq-for-rabbitmq.md)。

### 別の Amazon MQ for RabbitMQ ブローカーへの接続
<a name="private-networking-broker-to-broker"></a>

プライベートネットワークを使用して、Shovel または Federation プラグインを使用してブローカーを別の Amazon MQ for RabbitMQ ブローカーに接続できます。これにより、いずれのブローカーもパブリックインターネットに公開することなく、プライベートbroker-to-broker通信が可能になります。

別の Amazon MQ ブローカーのリソース設定を作成するときは、カスタムドメイン名としてブローカーエンドポイント ( など`b-xxxx.mq.us-east-1.on.aws`) を指定します。これにより、TLS 証明書の検証が成功します。RabbitMQ 4 以降では、Shovel 接続とフェデレーション接続に対してこの検証がデフォルトで適用されます。詳細については、「[AMQP クライアント SSL 設定](rabbitmq-amqp-client-ssl-configuration.md)」を参照してください。

API `DescribeSharedResources`レスポンスの DNS 名を Shovel またはフェデレーション設定の送信先として使用します。

**注記**  
RabbitMQ バージョン 4 より前の場合、TLS 証明書ピア検証は Shovel および Federation ではデフォルトで適用されません。ブローカーエンドポイントをカスタムドメイン名として指定するか、設定を通じてピア検証をオフにすることができます。詳細については、「[AMQP クライアント SSL 設定](rabbitmq-amqp-client-ssl-configuration.md)」を参照してください。

### セルフホスト RabbitMQ ブローカーへの接続
<a name="private-networking-self-hosted"></a>

プライベートネットワークを使用して、Shovel または Federation プラグインを使用して、Amazon MQ ブローカーを VPC 内のセルフホスト RabbitMQ ブローカーに接続できます。セルフホスト型ブローカーの IP アドレスまたは DNS 名を指すリソース設定を作成します。Shovel またはフェデレーション設定で `DescribeSharedResources` API レスポンスの DNS 名を使用します。

RabbitMQ 4 以降では、デフォルトで TLS 証明書ピア検証が適用されます。検証済みドメイン名を使用するか、設定を通じてピア検証をオフにする必要があります。詳細については、「[AMQP クライアント SSL 設定](rabbitmq-amqp-client-ssl-configuration.md)」を参照してください。

## 共有リソースの変更
<a name="private-networking-modifying"></a>

ブローカーに関連付けられたリソース共有はいつでも変更できます。更新されたリソース共有 ARN のリストを使用して `UpdateBroker` API オペレーションを呼び出します。 ARNs 変更は、次のブローカーの再起動後に有効になります。

ブローカーからすべてのリソース共有の関連付けを解除するには、リソース共有 ARNs の空のリスト`UpdateBroker`で を呼び出し、ブローカーを再起動します。

**重要**  
RAM AWSリソース共有はいつでも変更できます。リソース共有から VPC Lattice リソース設定を追加または削除できます。Amazon MQ は、ブローカーを呼び出し`UpdateBroker`て再起動するまで、これらの変更を検出しません。ただし、ブローカーに以前に適用されたリソース設定を削除すると、そのリソースへのブローカーのアクセスは直ちに取り消されます。この取り消しでは、 を呼び出し`UpdateBroker`たり再起動したりする必要はありませんが、 のリソースステータス`DescribeSharedResources`は、 を呼び出し`UpdateBroker`て再起動するまで更新されません。

## クォータ
<a name="private-networking-quotas"></a>

プライベートネットワークには、次のクォータが適用されます。


| リソース | デフォルトの制限 | 説明 | 
| --- | --- | --- | 
| AWSブローカーあたりの RAM リソース共有 | 10 | この制限を超えると、UpdateBrokerAPI コールは失敗します。 | 
| ブローカーあたりの VPC Lattice リソース設定 | 100 | 関連付けられたすべてのリソース共有の合計。過剰なリソース設定は、DescribeSharedResourcesレスポンスERRORで としてマークされます。 | 

## リソースの状態
<a name="private-networking-resource-states"></a>

`DescribeSharedResources` API オペレーションを使用して、共有リソースの状態を確認します。次の表に、考えられる状態を示します。


| State | 説明 | 
| --- | --- | 
| SETUP\_IN\_PROGRESS | リソースは設定中です。この状態は、 を呼び出した後UpdateBrokerに表示され、ブローカーの再起動が完了するまで保持されます。 | 
| AVAILABLE | リソースはアクティブであり、ブローカーは設定された宛先に到達できます。 | 
| DELETION\_IN\_PROGRESS | リソースはブローカーから削除されています。 | 
| PENDING\_CREATE | リソースは VPC エンドポイント作成のためにキューに入れられます。この状態は短く、ブローカーの再起動ワークフロー中に表示されます。 | 
| PENDING\_DELETE | リソースは VPC エンドポイントの削除のためにキューに入れられます。この状態は短く、ブローカーの再起動ワークフロー中に表示されます。 | 
| ERROR | リソースの設定に失敗しました。エラーの詳細については、 DescribeSharedResources を呼び出します。UpdateBroker を再度呼び出すと、リソースは に戻りますSETUP\_IN\_PROGRESS。 | 

## トラブルシューティング
<a name="private-networking-troubleshooting"></a>

リソース設定が再起動後に ERROR 状態になる  
`DescribeSharedResources` API オペレーションを使用してエラーの詳細を確認します。一般的な原因には、以下が含まれます。  
+ VPC Lattice リソースゲートウェイは、ブローカーとアベイラビリティーゾーンを共有しません。
+ すべてのリソース共有のリソース設定の総数がクォータを超えています。
問題を解決したら、`UpdateBroker`再度 (同じリソース共有 ARNs であっても) を呼び出してリソースを に戻してから`SETUP_IN_PROGRESS`、ブローカーを再起動します。

UpdateBroker が検証エラーで失敗する  
以下のことを確認してください。  
+ リソース共有 ARN は有効であり、 アカウントによって所有されています。
+ リソース共有はブローカーと同じリージョンにあります。
+ リソース共有では、外部プリンシパルが許可されます。
+ ブローカーあたりのリソース共有クォータを超えていません。

ブローカーが再起動後にプライベートリソースに到達できない  
以下について確認します。  
+ リソースの状態は `DescribeSharedResources`レスポンス`AVAILABLE`にあります。
+ リソースゲートウェイのセキュリティグループは、必要なポートの送信先へのアウトバウンドトラフィックを許可します。
+ リソース設定の送信先 IP または DNS 名は、リソースゲートウェイがデプロイされている VPC からアクセスできます。
+ ブローカー設定の`DescribeSharedResources`レスポンスから正しい DNS 名を使用しています。