2.2. AWS VPC ピアリングの設定
このサンプルプロセスでは、Red Hat OpenShift Service on AWS クラスターが含まれる Amazon Web Services (AWS) VPC を、別の AWS VPC ネットワークとピア接続するように設定します。AWS VPC ピアリング接続の作成または他の設定に関する詳細は、AWS VPC Peering ガイドを参照してください。
2.2.1. VPC ピアリングの用語
2 つの別々の AWS アカウントで 2 つの VPC 間で VPC ピアリング接続を設定する場合は、以下の用語が使用されます。
Red Hat OpenShift Service on AWS の AWS アカウント | Red Hat OpenShift Service on AWS クラスターが含まれる AWS アカウント。 |
Red Hat OpenShift Service on AWS クラスター VPC | Red Hat OpenShift Service on AWS クラスターが含まれる VPC。 |
Customer AWS アカウント | ピア接続する Red Hat OpenShift Service on AWS 以外の AWS アカウント。 |
Customer VPC | ピア接続する AWS アカウントの VPC。 |
Customer VPC リージョン | お客様の VPC が置かれるリージョン。 |
2018 年 7 月時点で、AWS は、中国を除く すべての商業地域でのリージョン間の VPC ピアリングをサポートします。
2.2.2. VPC ピア要求の開始
VPC ピアリング接続要求を Red Hat OpenShift Service on AWS アカウントから Customer AWS アカウントに送信できます。
前提条件
ピア要求を開始するために必要な Customer VPC に関する以下の情報を収集します。
- Customer AWS アカウント番号
- Customer VPC ID
- Customer VPC リージョン
- Customer VPC CIDR
- Red Hat OpenShift Service on AWS クラスター VPC で使用される CIDR ブロックを確認します。Customer VPC の CIDR ブロックとの重複や一致があると、この 2 つの VPC 間のピアリングは実行できません。詳細は、Amazon VPC の サポートされていない VPC ピアリング設定 を参照してください。CIDR ブロックが重複していない場合は、手順を続行できます。
手順
- AWS の AWS アカウントで Red Hat OpenShift Service の Web コンソールにログインし、クラスターがホストされるリージョンの VPC Dashboard に移動します。
- Peering Connections ページに移動し、Create Peering Connection ボタンをクリックします。
ログインしているアカウントの詳細と、接続しているアカウントおよび VPC の詳細を確認します。
- Peering connection name tag: VPC ピアリング接続を説明する名前を設定します。
- VPC (Requester): ドロップダウン *リストから Red Hat OpenShift Service on AWS クラスター VPC ID を選択します。
- Account: Another account を選択し、Customer AWS アカウント番号 *(ダッシュなし) を指定します。
- Region: Customer VPC リージョンが現在のリージョンと異なる場合は、Another Region を選択し、ドロップダウンリストからお客様の VPC リージョンを選択します。
- VPC (Accepter): Customer VPC ID を設定します。
- Create Peering Connection をクリックします。
- 要求の状態が Pending になっていることを確認します。Failed 状態になった場合は、詳細を確認し、このプロセスを繰り返します。
2.2.3. VPC ピア要求の許可
VPC ピアリング接続を作成したら、Customer AWS アカウントで要求を受け入れる必要があります。
前提条件
- VPC ピア要求を開始します。
手順
- AWS Web Console にログインします。
- VPC Service に移動します。
- Peering Connections に移動します。
- Pending peering connection をクリックします。
- 要求の発信元の AWS アカウントおよび VPC ID を確認します。これは、Red Hat OpenShift Service on AWS の AWS アカウントおよび Red Hat OpenShift Service on AWS クラスター VPC から取得する必要があります。
- Accept Request をクリックします。
2.2.4. ルーティングテーブルの設定
VPC のピアリング要求を受け入れた後に、両方の VPC がピアリング接続間で通信するようにルートを設定する必要があります。
前提条件
- VPC ピア要求を開始して、受け入れている。
手順
- Red Hat OpenShift Service on AWS の AWS アカウントで AWS Web Console にログインします。
- VPC Service に移動してから Route Tables に移動します。
Red Hat OpenShift Service on AWS クラスター VPC の Route Table を選択します。
注記クラスターによっては、特定の VPC に複数のルートテーブルが存在する場合があります。明示的に関連付けられた多数のサブネットを持つプライベートのルートテーブルを選択します。
- Routes タブを選択してから Edit を選択します。
- Destination テキストボックスに Customer VPC CIDR ブロックを入力します。
- Target テキストボックスにピアリング接続 ID を入力します。
- Save をクリックします。
他の VPC の CIDR ブロックで同じプロセスを完了する必要があります。
-
Customer AWS Web Console
VPC Service Route Tables にログインします。 - VPC の Route Table を選択します。
- Routes タブを選択してから Edit を選択します。
- Destination テキストボックスに Red Hat OpenShift Service on AWS クラスター VPC CIDR ブロックを入力します。
- Target テキストボックスにピアリング接続 ID を入力します。
- Save をクリックします。
-
Customer AWS Web Console
VPC ピアリング接続が完了しました。検証手順に従い、ピアリング接続間の接続が機能していることを確認します。
2.2.5. VPC ピアリング設定の確認およびトラブルシューティング
VPC ピアリング接続を設定したら、これが設定されており、正常に機能していることを確認することが推奨されます。
前提条件
- VPC ピア要求を開始して、受け入れている。
- ルーティングテーブルを設定している。
手順
AWS コンソールで、ピア接続されるクラスター VPC のルートテーブルを確認します。ルーティングテーブルの設定手順に従い、ピアリング接続のターゲットに VPC CIDR 範囲の宛先を指定するルートテーブルエントリーがあることを確認します。
正しいルートが Red Hat OpenShift Service on AWS クラスター VPC ルートテーブルおよび Customer VPC ルートテーブルの両方で使用されることが予想される場合は、接続を以下の
netcat
メソッドを使用してテストする必要があります。テスト呼び出しが正常に行われる場合は、VPC ピアリングが正常に機能します。エンドポイントデバイスへのネットワーク接続をテストする場合のトラブルシューティングツールとしては、
nc
(またはnetcat
) が役に立ちます。これはデフォルトのイメージに含まれ、接続を確立できる場合に迅速かつ明確に出力を提供します。busybox
イメージを使用して一時的な Pod を作成します。これは後で自身をクリーンアップします。$ oc run netcat-test \ --image=busybox -i -t \ --restart=Never --rm \ -- /bin/sh
nc
を使用して接続を確認します。正常な接続の結果の例:
/ nc -zvv 192.168.1.1 8080 10.181.3.180 (10.181.3.180:8080) open sent 0, rcvd 0
失敗した接続の結果の例:
/ nc -zvv 192.168.1.2 8080 nc: 10.181.3.180 (10.181.3.180:8081): Connection refused sent 0, rcvd 0
コンテナーを終了します。これにより、Pod が自動的に削除されます。
/ exit