プライベート接続を介して消費者にサービスを公開する
このチュートリアルでは、費用が発生する場合があります。 コスト見積もりツールを使用して、予測使用量に基づいてコスト見積もりを生成します。
このチュートリアルでは、プロバイダーとコンシューマー・セットの間で Private Path service をセットアップする手順について説明します。 Private Path serviceでは、コンシューマーは、インターネットを経由せずに、 IBM バックボーンを介してプロバイダーによって実装されたアプリケーションまたはサービスにアクセスします。
目標
- Private Path serviceの基本を理解する。
- パブリック・エンドポイントを公開せずに、1 つのアカウントにアプリケーションをデプロイします。
- Private Path serviceを使用してアプリケーションを公開します。
- プライベート接続のみを介してコンシューマー・クライアントからアプリケーションにアクセスします。

- プロバイダーは、複数のゾーンに分散された複数の仮想サーバーによってサポートされる回復力のあるアプリケーションを実装します。
- プロバイダーは、仮想サーバーを指すバックエンド・プールで構成された Private Path network load balancer (NLB) を作成し、ラウンドロビン・アルゴリズムを使用してサーバー間で負荷を分散します。
- Private Path service は Private Path NLB を参照し、コンシューマーが使用するサービス・エンドポイントを指定します。
- コンシューマーは、仮想プライベート・エンドポイント・ゲートウェイを介してプロバイダー・アプリケーションにアクセスします。 すべてのトラフィックは IBM Cloudのプライベートのままです。
開始前に
このチュートリアルでは、以下が必要です。
- プロバイダー・リソースとコンシューマー・リソースの両方をホストするための 1 つの IBM Cloud 請求可能アカウント。
- チュートリアルでプロビジョンされた仮想サーバー・インスタンスに接続するための VPC SSH 鍵。
VPC SSH 鍵の作成
仮想サーバーインスタンスのプロビジョニング時に、SSHキーがインスタンスに注入され、後でサーバーに接続できるようになります。 この SSH 鍵は、チュートリアル・リソースをデプロイする 同じリージョンになければなりません。
- IBM Cloudで SSH 鍵が構成されていない場合は、 この手順 を参照して VPC 用の鍵を作成してください。
- SSH 鍵に使用した名前をメモします。
プロバイダー・リソースおよびアプリケーションの作成
このチュートリアルでは、まずプロバイダーとして行動し、アプリケーションを実装します。 2 番目のフェーズでは、コンシューマーの役割を引き受け、アプリケーションを呼び出します。 このアプリケーションは、単純な nginx
Web サーバーです。
- Schematics に移動して、新規ワークスペースを作成します。
- 「テンプレートの指定」 ステップで、以下のようにします。
- リポジトリのURL を
https://github.com/IBM-Cloud/vpc-tutorials/tree/master/vpc-pps-basics/provider
に設定します。 - 必ず、 「フル・リポジトリーの使用」 にチェック・マークを付けてください。
- 「Terraform のバージョン (Terraform version)」 を
terraform_v1.5
に設定します。 - 次へ をクリックします。
- リポジトリのURL を
- ワークスペースの詳細ステップで
- 「ワークスペース名」 を
pps-provider
に設定します。 - ワークスペースを作成する 「リソース・グループ」 および 「ロケーション」 を選択します。 これは、チュートリアル用に作成されたリソースには影響しません。
- 次へ をクリックします。
- 「ワークスペース名」 を
- 「作成」 をクリックします。
ワークスペースの 「設定」 の 「変数」 で、以下のようにします。
existing_ssh_key_name
変数を見つける。- メニュー (ケーブル) を使用して、その値を 編集 します。
- 値を、前のセクションで作成した SSH 鍵の名前、または既存の SSH 鍵に設定します。
- セーブする。
- オプションで、
region
、basename
などの他の変数の値を調整することもできます。
最後に、以下のようにリソースを作成します。
- **「プランの適用」**をクリックします。
- Schematics がリソースのプロビジョニングを完了するのを待ちます。
プロバイダー・リソースおよびアプリケーションの確認
プロバイダーに対して Schematics を実行すると、以下のリソースが作成されます。
- つの仮想プライベートクラウド(VPC)、
- 3 つのサブネット (ゾーンごとに 1 つ)
- サブネットごとに少なくとも 1 つの仮想サーバー・インスタンス。
- バックエンド・プールで構成された Private Path NLB (すべての仮想サーバー・インスタンスを含む)
- および Private Path service。
{: caption="
- 仮想プライベート・クラウド、 サブネット 、および 仮想サーバー・インスタンス にナビゲートして、プロビジョンされたリソースを確認します。
- 「ロード・バランサー」 で Private Path NLB を見つけます。
- Private Path サービス で、作成された Private Path serviceを選択します。
- Private Path service の詳細で、 「サービス・エンドポイント」 が
vpc-pps.example.com
に設定されていることに注意してください。 ワークスペースの構成時にカスタムbasename
を指定した場合は、異なる可能性があることに注意してください。 これは、コンシューマーがアプリケーションと対話するために使用するエンドポイントです。 - この情報をコンシューマーに渡す必要があるため、 CRN をメモします。 コンシューマーは、CRN を使用して、仮想プライベート・エンドポイント・ゲートウェイの作成時にアプリケーションを識別します。
Private Path service をコンシューマーと共有する準備がほぼできました。 ただし、 Private Path serviceを公開する 前に、予期したとおりに動作していることをテストすることをお勧めします。
コンシューマー・リソースの作成
Private Path service が正しくセットアップされていることを確認するために、 Private Path service のすべてのコンシューマーと同様に、アプリケーションにアクセスするために仮想サーバーをデプロイします。
Private Path service が公開される までは、作成されたのと同じアカウント内でのみアクセスできます。 他のユーザーと共有する前にサービスをテストするための良い機会を提供します。 これが、この段階で、このチュートリアルのコンシューマー側がプロバイダー・アプリケーションと同じアカウントでプロビジョンされる理由です。
- Schematics に移動して、新規ワークスペースを作成します。
- 「テンプレートの指定」 ステップで、以下のようにします。
- リポジトリのURL を
https://github.com/IBM-Cloud/vpc-tutorials/tree/master/vpc-pps-basics/consumer
に設定します。 - 必ず、 「フル・リポジトリーの使用」 にチェック・マークを付けてください。
- 「Terraform のバージョン (Terraform version)」 を
terraform_v1.5
に設定します。 - 次へ をクリックします。
- リポジトリのURL を
- ワークスペースの詳細ステップで
- 「ワークスペース名」 を
pps-consumer
に設定します。 - ワークスペースを作成する 「リソース・グループ」 および 「ロケーション」 を選択します。 これは、チュートリアル用に作成されたリソースには影響しません。
- 次へ をクリックします。
- 「ワークスペース名」 を
- 「作成」 をクリックします。
ワークスペースの 「設定」 の 「変数」 セクションで、以下のようにします。
existing_ssh_key_name
変数を見つける。- メニュー (ケーブル) を使用して、その値を 編集 します。
- このチュートリアルで使用する SSH 鍵の名前に値を設定します。
- セーブする。
provider_crn
変数を見つける- その値を 編集 します。
- 前に取得した Private Path service CRN に値を設定します。
- セーブする。
- オプションで、
region
、basename
などの他の変数の値を調整することもできます。region
は、pps-provider
ワークスペースで設定された値と一致する必要があります。
最後に、以下のようにリソースを作成します。
- **「プランの適用」**をクリックします。
- Schematics がリソースのプロビジョニングを完了するのを待ちます。
コンシューマー・リソースおよびアプリケーションの確認
コンシューマーに対して Schematics を実行すると、以下のリソースが作成されます。
- つの仮想プライベートクラウド(VPC)、
- 2 つのサブネット
- サブネットごとに 1 つの仮想サーバー・インスタンス。
- Private Path service CRN で構成され、各サブネットに 1 つの IP アドレスを持つ 1 つの仮想プライベート・エンドポイント・ゲートウェイ。

- 「仮想サーバー・インスタンス」 にナビゲートして、プロビジョンされたインスタンスを確認します。
- 「仮想プライベート・エンドポイント・ゲートウェイ」 に移動し、エンドポイント・ゲートウェイに 「保留中」 のマークが付けられていることを確認します。
この段階では、コンシューマーはまだプロバイダー・アプリケーションにアクセスできません。 Private Path service への接続要求が確認されて許可されるのを待機しています。
コンシューマー要求の承認
アプリケーションのプロバイダーとしての役割を果たす。
-
Private Path サービス・リスト に移動します。
-
作成した Private Path service には、レビューが必要な保留中の接続要求があることに注意してください。
-
Private Path serviceを選択します。
-
「接続要求」 テーブルで、コンシューマーからの要求を見つけます。
-
メニュー (コネクター) を使用して、接続を 許可 します。
「接続要求の許可 (Permit connection request)」 ダイアログには、 同じアカウント ID からのすべての要求を自動的に許可するポリシー を作成するためのオプションがあります。 ここではチェック・マークを外したままにします。 将来、これにより、このアカウントからの接続を要求するコンシューマーのプロセスが高速化される可能性があります。
-
「許可」 をクリックします。
コンシューマーからプロバイダーへの接続のテスト
再び消費者として振る舞うことで
-
「仮想プライベート・エンドポイント・ゲートウェイ」 に移動し、エンドポイント・ゲートウェイが 「安定」 に移動したことを確認します。
-
サービス・エンドポイントをメモします。 これは、ワークスペースの構成時にカスタム
basename
を指定した場合を除き、vpc-pps.example.com
になります。 -
「仮想サーバー・インスタンス」 にナビゲートし、いずれかのコンシューマー・インスタンスに割り当てられている浮動 IP を見つけます。 インスタンスの名前は、
vpc-pps-consumer-vsi-us-south-1
またはvpc-pps-consumer-vsi-us-south-2
のようになります。 -
いずれかのインスタンスへの SSH 接続を開きます。
ssh root@<floating-ip>
-
サービス・エンドポイントを呼び出して、プロバイダー・アプリケーションにアクセスします。
curl http://vpc-pps.example.com
出力は以下のようになります。
Hello world from vpc-pps-provider-vsi-us-south-2
ドメイン名が仮想サーバー・インスタンスに正しく解決されるまでに数分かかる場合があります。
-
curl
コマンドを数回繰り返します。 Private Path NLBのバックエンド・プールに接続されているすべての仮想サーバー・インスタンスを通過する際に、異なる出力がどのように表示されるかに注意してください。
おめでとうございます。 Private Path service は正常に機能しており、他のユーザーが使用できるように公開する準備ができています。
チュートリアルを発展させる
このチュートリアルでは、 Private Path service の基本に焦点を当てています。1 つの VPC にはプロバイダー・アプリケーションがあり、別の VPC にはコンシューマーがあり、すべて同じアカウント内にあります。
- 次のステップでは、 Private Path serviceを 公開 します。 公開されると、他の IBM Cloud アカウント内のクライアントは、アプリケーションにアクセスするための接続要求を行うことができます。
- コンシューマーへの接続情報の伝達、 接続要求の確認 、および アカウント・ポリシー を使用したプロセスの合理化も、コンシューマーの正常なオンボーディングの一部です。
リソースを削除する
このチュートリアル用に作成したリソースを削除するには、以下のようにします。
-
Schematics に移動します。
pps-consumer
ワークスペースを選択する。- 「アクション ...」 から、 「リソースの破棄」 を選択します。
pps-consumer
と入力し、 「破棄」 をクリックします。- Schematics がジョブを完了するのを待ちます。
- 完了したら、 「アクション ...」 メニューから 「ワークスペースの削除」 を選択します。
pps-consumer
と入力し、 「削除」 をクリックします。
-
pps-provider
ワークスペースでも同じ手順を繰り返します。リソース・グループを削除できなかったためにワークスペースの削除が失敗した場合は、数分後に 「リソースの破棄」 を再試行する必要がある場合があります。
リソースによっては、即時に削除されずに保持される場合があります (デフォルトでは 7 日間)。 リソースを完全に削除して再利用することも、保存期間内に復元することもできます。 リソースの再利用を使用する方法については、この資料を参照してください。