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 ブローカーはサポートされていません。

  • プライベートネットワークは、 AWS GovCloud (米国) リージョンでは使用できません。

  • プライベートネットワークは、Amazon VPC Lattice が利用可能な AWS リージョンでのみ使用できます。VPC Lattice が利用可能なリージョンの詳細については、 AWS 全般のリファレンス「Amazon VPC Lattice エンドポイントとクォータ」を参照してください。

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

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

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

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

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

  3. AWS RAM リソース共有はリソース設定をパッケージ化し、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 リソース共有を作成する

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

重要

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

詳細については、「 Resource AWS Access 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 設定」を参照してください。

DescribeSharedResources API レスポンスの 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 名を使用しています。