同一の Alibaba Cloud アカウント配下で、ある VPC にデプロイされているサービスを、その VPC から別の VPC と共有するには、NLB インスタンスをサービスリソースとして追加できます。次に、PrivateLink を使用して 2 つの VPC 間にネットワーク接続を確立します。これにより、VPC 間で NLB リソースへの非公開アクセスが可能になります。
シナリオ例
このトピックでは、次のシナリオを例に説明します。ある企業が Alibaba Cloud アカウント A を使用して、中国 (杭州) リージョンに VPC1 と VPC2 を作成します。この企業は、VPC1 に Elastic Compute Service (ECS) インスタンスである ECS01 と ECS02 を作成し、VPC2 に ECS インスタンスである ECS03 と ECS04 を作成します。ECS03 と ECS04 には、それぞれ異なる Nginx サービスがデプロイされています。ビジネス要件は、VPC1 内の ECS インスタンスから、VPC2 内の ECS インスタンスにデプロイされたサービスへプライベートアクセスすることです。
VPC2 に NLB インスタンスを作成します。このインスタンスは、中国 (杭州) リージョンのゾーン G とゾーン K で利用可能である必要があります。次に、RS1 という名前のバックエンドサーバーグループを作成し、ECS03 と ECS04 インスタンスを NLB バックエンドサーバーグループに追加します。エンドポイントサービスを作成し、NLB インスタンスをサービスリソースとして追加します。VPC1 にエンドポイントを作成します。エンドポイントが作成され、エンドポイントサービスに接続されると、VPC1 内の ECS インスタンスは VPC2 内の ECS インスタンスにデプロイされたサービスにプライベートアクセスできます。
制限事項
エンドポイントサービスを作成する際は、PrivateLink と NLB の両方をサポートするリージョンを選択する必要があります。
エンドポイントがデプロイされるゾーンは、関連付けられたエンドポイントサービスがデプロイされるゾーンのサブセットである必要があります。このため、リージョン内の可能な限り多くのゾーンにサービスリソースをデプロイすることを推奨します。これにより、異なるゾーンのエンドポイントがサービスにアクセスできるようになります。
事前準備
中国 (杭州) リージョンに VPC1 と VPC2 を作成済みであること。各 VPC について、ゾーン G に 1 つ、ゾーン K に 1 つの vSwitch を作成済みであること。詳細については、「VPC と vSwitch の作成」をご参照ください。
リクエストを送信するために VPC1 内のゾーン G に ECS01 を、ゾーン K に ECS02 を作成済みであること。また、リクエストを受信して処理するために VPC2 内のゾーン G に ECS03 を、ゾーン K に ECS04 を作成済みであること。ECS03 と ECS04 には Nginx サービスがデプロイされています。
ECS インスタンスの作成方法の詳細については、「[カスタム起動] タブでのインスタンスの作成」をご参照ください。
次のサンプルコマンドは、ECS03 と ECS04 にテストアプリケーションをデプロイする方法を示しています。
VPC1 にセキュリティグループを作成し、必要なセキュリティグループルールを追加済みであること。詳細については、「セキュリティグループの作成」をご参照ください。
VPC2 で使用されるセキュリティグループは、ECS03 と ECS04 の作成時に作成されるデフォルトのセキュリティグループです。
次の表に、2 つの VPC のネットワークプランを示します。VPC1 と VPC2 の CIDR ブロックは重複可能です。
プロパティ | VPC1 | VPC2 |
リージョン | 中国 (杭州) | 中国 (杭州) |
CIDR ブロック |
|
|
vSwitch のゾーン |
|
|
サーバー IP アドレス |
|
|
ステップ 1:プライベート NLB インスタンスの作成
まず、サービスリソースとして機能する内部向け NLB インスタンスを作成します。
NLB コンソールにログインします。上部のナビゲーションバーで、中国 (杭州) リージョンを選択します。次に、NLB の作成をクリックします。
[Network Load Balancer の作成] ページで、VPC2 に内部向け NLB インスタンスを作成します。

ステップ 2:NLB インスタンスのサーバーグループの作成とバックエンドサーバーの追加
NLB インスタンスによって転送されるクライアントリクエストを受信するために、サーバーグループを作成し、バックエンドサーバーを追加します。
クライアントリクエストをバックエンドサーバーにルーティングするために、RS1 という名前のサーバーグループを作成します。
NLB コンソールにログインします。左側のナビゲーションウィンドウで、サーバーグループをクリックします。[サーバーグループ] ページで、サーバーグループの作成をクリックします。
サーバーグループの作成ダイアログボックスで、パラメーターを設定します。
パラメーター設定の詳細については、「NLB サーバーグループ」をご参照ください。

NLB インスタンスからのリクエストを処理するバックエンドサーバーとして、ECS03 と ECS04 を RS1 サーバーグループに追加します。
[サーバーグループ] ページで、作成したサーバーグループの ID をクリックします。
をクリックします。バックエンドサーバーとして ECS03 と ECS04 を選択します。次に、[次へ] をクリックします。

ECS03 と ECS04 のポートと重みを設定します。この例では、ポートを 80 に設定し、デフォルトの重みである 100 を使用します。

ステップ 3:リスナーの設定
NLB インスタンスのリスナーを設定します。リスナーは接続リクエストをチェックし、指定されたスケジューリングアルゴリズムに基づいてバックエンドサーバーにリクエストを分散し、トラフィック負荷を分散します。
対象の NLB インスタンスを見つけ、操作列の リスナーの作成をクリックします。
リスナーの設定ページで、リスナープロトコルとして TCP を選択し、リスナーポートを 80 に設定して、次へをクリックします。

サーバーグループの選択ページで、作成した RS1 サーバーグループを選択し、次へをクリックします。

設定の確認ウィザードで、リスナーの設定を確認し、送信をクリックします。
ロードバランサービジネス設定ウィザードダイアログボックスで、OK をクリックして インスタンスページに戻ります。
リスナーのヘルスチェックステータスが 正常の場合、バックエンドサーバー ECS03 と ECS04 は NLB インスタンスによって転送されたリクエストを処理できます。
ステップ 4:エンドポイントサービスの作成
プライベート接続を確立するためにエンドポイントサービスを作成します。
エンドポイントサービスコンソールにログオンします。 上部のナビゲーションバーで、[中国 (杭州)] リージョンを選択します。 次に、エンドポイントサービスの作成 をクリックします。
エンドポイントサービスの作成ページで、作成した NLB インスタンスをサービスリソースとして追加します。他のパラメーターはデフォルト値のままにします。

ステップ 5:エンドポイントの作成
VPC1 にエンドポイントを作成し、エンドポイントサービスに関連付けます。
エンドポイントコンソールにログインします。上部のナビゲーションバーで、中国 (杭州) リージョンを選択します。次に、エンドポイントの作成をクリックします。
エンドポイントの作成ページで、エンドポイントを作成したエンドポイントサービスに関連付けます。VPC1、適切なセキュリティグループ、ゾーン、および vSwitch を選択します。他のパラメーターはデフォルト値のままにし、作成をクリックします。

(オプション) ステップ 6:接続リクエストの承認
エンドポイントは、エンドポイントサービスがエンドポイントからの接続リクエストを承認した後にのみ、エンドポイントサービスに接続できます。接続が確立されると、VPC1 内のリソースはエンドポイントを介してエンドポイントサービスにアクセスできます。この例では、エンドポイントサービスは接続リクエストを自動的に承認するように設定されているため、このステップは省略できます。
ステップ 7:結果のテスト
上記の手順を完了すると、VPC1 と VPC2 の間でプライベート通信が有効になります。次の手順では、ネットワーク接続をテストする方法について説明します。
VPC1 内の ECS01 および ECS02 インスタンスにリモートでログインします。
この例では、Alibaba Cloud Linux オペレーティングシステムを使用します。
VPC1 内の ECS インスタンスにログインした後、次のいずれかの方法で VPC 間の接続性をテストできます。
エンドポイントサービスのドメイン名を使用して、VPC2 にデプロイされたサービスにアクセスします。このドメイン名は、ゾーン間の自動スイッチオーバーをサポートし、高可用性を確保します。あるゾーンが利用できなくなった場合、トラフィックは自動的に正常なゾーンにルーティングされます。
エンドポイントの詳細ページで、生成されたエンドポイントサービスのドメイン名を確認します。

curlコマンドを実行して接続性をテストします。
ゾーン固有のドメイン名または IP アドレスを使用して、VPC2 にデプロイされたサービスにアクセスします。
エンドポイントの詳細ページで、ゾーンと ENI タブをクリックして、生成されたゾーンドメイン名と IP アドレスを表示します。

curlコマンドを実行して接続性をテストします。
関連ドキュメント
CreateVpcEndpoint:エンドポイントを作成します。
CreateVpcEndpointService:エンドポイントサービスを作成します。
AttachResourceToVpcEndpointService:サービスリソースをエンドポイントサービスに追加します。
EnableVpcEndpointConnection:エンドポイント接続リクエストを承認します。