View a markdown version of this page

Amazon MQ for RabbitMQ のプライベートネットワーキング - Amazon MQ

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

Amazon MQ for RabbitMQ のプライベートネットワーキング

プライベートネットワーキングにより、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 エンドポイントとクォータ」を参照してください。

プライベートネットワーキングの仕組み

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

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

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

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

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

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

前提条件

プライベートネットワークを設定する前に、以下を確認してください。

  • Amazon MQ for RabbitMQ ブローカーが RUNNING状態にある。

  • 少なくとも 1 つのサブネットを持つ VPC がある。この VPC はリソースゲートウェイをホストするため、ブローカーと同じ VPC である必要はありません。高可用性を実現するには、複数のアベイラビリティーゾーンでサブネットを使用します。

  • VPC Lattice リソースゲートウェイは、ブローカーと少なくとも 1 つのアベイラビリティーゾーンを共有する必要があります。これは単一インスタンスブローカーにのみ関係します。クラスターブローカーは、使用可能なすべてのアベイラビリティーゾーンを使用します。

注記

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

プライベートネットワークの設定

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

ステップ 1: VPC Lattice リソースゲートウェイを作成する

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

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

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

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

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

詳細については、「Amazon VPC Lattice ユーザーガイド」の「リソースゲートウェイ」を参照してください。

ステップ 2: VPC Lattice リソース設定を作成する

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

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

詳細については、「Amazon VPC Lattice ユーザーガイド」の「Resource configurations」を参照してください。

ステップ 3: RAM AWSリソース共有を作成する

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

重要

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

詳細については、「 Resource AWSAccess Manager ユーザーガイド」の「リソース共有の作成」を参照してください。

ステップ 4: リソース共有をブローカーに関連付ける

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

例を使用してリソース共有を関連付ける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」を参照してください。

複数のリソース共有を関連付けるには、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: ブローカーを再起動する

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

例を使用してブローカーを再起動するAWS CLI
aws mq reboot-broker --broker-id b-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

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

詳細については、Amazon MQ RebootBroker」を参照してください。

ステップ 6: セットアップを確認する

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

例を使用して共有リソースを検証するAWS CLI
aws mq describe-shared-resources --broker-id b-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

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

詳細については、Amazon MQ REST API リファレンス」の「DescribeSharedResources」を参照してください。

ユースケース

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

プライベート ID プロバイダーへの接続

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

認証の設定の詳細については、Amazon MQ for RabbitMQ の LDAP 認証と認可「」および「」を参照してくださいAmazon MQ for RabbitMQ に対する OAuth 2.0 の認証と認可

別の Amazon MQ for RabbitMQ ブローカーへの接続

プライベートネットワークを使用して、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 設定」を参照してください。

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

注記

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

セルフホスト RabbitMQ ブローカーへの接続

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

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

共有リソースの変更

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

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

重要

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

クォータ

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

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

リソースの状態

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

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

トラブルシューティング

リソース設定が再起動後に ERROR 状態になる

DescribeSharedResources API オペレーションを使用してエラーの詳細を確認します。一般的な原因には、以下が含まれます。

  • VPC Lattice リソースゲートウェイは、ブローカーとアベイラビリティーゾーンを共有しません。

  • すべてのリソース共有のリソース設定の総数がクォータを超えています。

問題を解決したら、UpdateBroker再度 (同じリソース共有 ARNs であっても) を呼び出してリソースを に戻してからSETUP_IN_PROGRESS、ブローカーを再起動します。

UpdateBroker が検証エラーで失敗する

以下のことを確認してください。

  • リソース共有 ARN は有効であり、 アカウントによって所有されています。

  • リソース共有はブローカーと同じリージョンにあります。

  • リソース共有では、外部プリンシパルが許可されます。

  • ブローカーあたりのリソース共有クォータを超えていません。

ブローカーが再起動後にプライベートリソースに到達できない

以下について確認します。

  • リソースの状態は DescribeSharedResourcesレスポンスAVAILABLEにあります。

  • リソースゲートウェイのセキュリティグループは、必要なポートの送信先へのアウトバウンドトラフィックを許可します。

  • リソース設定の送信先 IP または DNS 名は、リソースゲートウェイがデプロイされている VPC からアクセスできます。

  • ブローカー設定のDescribeSharedResourcesレスポンスから正しい DNS 名を使用しています。