同じ Alibaba Cloud アカウント内の別の仮想プライベートクラウド (VPC) にサービスを提供するために、ある VPC 内の Application Load Balancer (ALB) インスタンスを許可する場合、ALB インスタンスがデプロイされている VPC で ALB インスタンスをサービスリソースとして指定し、PrivateLink を使用して 2 つの VPC 間にネットワーク接続を確立できます。
背景情報
VPC は、クラウド内で互いに分離されたプライベートネットワークです。PrivateLink を使用すると、VPC と Alibaba Cloud サービス間に安全で安定したプライベート接続を確立できます。これにより、ネットワークアーキテクチャが簡素化され、インターネット経由のセキュリティリスクが防止されます。
PrivateLink 接続を確立するには、エンドポイントサービスとエンドポイントを作成する必要があります。
エンドポイントサービス
エンドポイントサービスは、PrivateLink 接続を介して別の VPC のエンドポイントを使用してアクセスできます。エンドポイントサービスは、サービスプロバイダーによって作成および管理されます。
エンドポイント
エンドポイントは、エンドポイントサービスに関連付けて、VPC が外部サービスにアクセスできるようにする PrivateLink 接続を確立できます。エンドポイントは、サービスコンシューマーによって作成および管理されます。
エンティティ | 説明 |
サービスプロバイダー | エンドポイントサービスを作成および管理します。 |
サービスコンシューマー | エンドポイントを作成および管理します。 |
ALB インスタンスは、複数ゾーンにわたるサービスリソースとして機能できます。ALB は、アプリケーション層で大量のトラフィックを処理できる、スケーラビリティの高いサービスです。さらに、ALB は高度なコンテンツベースのルーティング機能をサポートしています。エンドポイントサービスのサービスリソースとして ALB インスタンスを指定すると、ALB インスタンスは複数ゾーンにわたってサービスを提供できます。ゾーンごとに ALB インスタンスを設定する必要はありません。詳細については、ALB とは を参照してください。
シナリオ
次のシナリオを例として使用します。企業 A は、Alibaba Cloud アカウント A を使用して、中国 (杭州) リージョンに 2 つの VPC を作成します。VPC は VPC 1 と VPC 2 と呼ばれます。さらに、企業は各 VPC に 2 つの Elastic Compute Service (ECS) インスタンスを作成します。VPC 1 の ECS インスタンスは ECS 01 と ECS 02 と呼ばれます。VPC 2 の ECS インスタンスは ECS 03 と ECS 04 と呼ばれます。VPC 2 の ECS インスタンスには、異なる NGINX サービスがデプロイされています。ビジネスの成長により、VPC 1 の ECS インスタンスは、プライベートネットワーク経由で VPC 2 の ECS インスタンスにデプロイされているサービスにアクセスする必要があります。
このシナリオでは、VPC 2 に PrivateLink をサポートする ALB インスタンスを作成する必要があります。インスタンスが杭州ゾーン H と杭州ゾーン I にデプロイされていることを確認します。次に、インスタンスのバックエンドサーバーグループ (RS 1) を作成し、ALB インスタンスのバックエンドサーバーグループに ECS 03 と ECS 04 を追加します。エンドポイントサービスを作成し、エンドポイントサービスのサービスリソースとして ALB インスタンスを指定します。VPC 1 にエンドポイントを作成し、エンドポイントをエンドポイントサービスに接続します。接続の状態が正常であれば、VPC 1 の ECS インスタンスは VPC 2 の ECS インスタンスにデプロイされているサービスにアクセスできます。
制限事項
PrivateLink をサポートする ALB インスタンスを作成する場合、ALB インスタンスのネットワークタイプを内部向けに設定し、IP アドレスタイプを静的に設定する必要があります。
エンドポイントサービスを作成する場合は、PrivateLink と ALB インスタンスの両方をサポートするリージョンを選択します。PrivateLink をサポートするリージョンと ALB インスタンスをサポートするリージョンの詳細については、PrivateLink をサポートするリージョンとゾーン および ALB が利用可能なリージョンとゾーン を参照してください。
エンドポイントとエンドポイントサービスは、同じゾーンにデプロイする必要があります。さらに、ゾーンは、ALB インスタンスがデプロイされているゾーンのいずれかである必要があります。
前提条件
VPC 1 と VPC 2 は、中国 (杭州) リージョンに作成されています。VPC 1 には 2 つの vSwitch が作成されています。1 つはゾーン H に、もう 1 つはゾーン I にあります。VPC 2 にも 2 つの vSwitch が作成されています。1 つはゾーン H に、もう 1 つはゾーン I にあります。詳細については、「IPv4 CIDR ブロックを持つ VPC を作成する」トピックの 手順 1: VPC と vSwitch を作成する セクションを参照してください。
接続リクエストを送信するために、VPC 1 に 2 つの ECS インスタンス (ECS 01 と ECS 02) が作成されています。ECS 01 はゾーン H にデプロイされ、ECS 02 はゾーン I にデプロイされています。リクエストを受信して処理するために、VPC 2 に 2 つの ECS インスタンス (ECS 03 と ECS 04) が作成されています。ECS 03 はゾーン H にデプロイされ、ECS 04 はゾーン I にデプロイされています。ECS 03 と ECS 04 には、異なる NGINX サービスがデプロイされています。
ECS インスタンスの作成方法の詳細については、カスタム起動タブでインスタンスを作成する を参照してください。
次の例は、ECS 03 と ECS 04 にサービスをデプロイしてテストする方法を示しています。
VPC 1 にセキュリティグループが作成されています。ビジネスとセキュリティの要件に基づいてセキュリティグループルールを設定できます。
詳細については、セキュリティグループを作成する を参照してください。
説明VPC 2 の ECS 03 と ECS 04 は、ECS インスタンスの作成時にシステムによって作成されるデフォルトのセキュリティグループを使用します。
次の表は、この例での VPC のネットワークの計画方法を示しています。VPC の CIDR ブロックが互いに重複していても、サービスに悪影響はありません。
項目 | VPC 1 | VPC 2 |
リージョン | 中国 (杭州) | 中国 (杭州) |
CIDR ブロック |
|
|
vSwitch ゾーン |
|
|
ECS インスタンス IP アドレス |
|
|
手順
手順 1: PrivateLink をサポートする ALB インスタンスを作成する
ALB コンソール にログインします。
インスタンス ページで、ALB の作成 をクリックします。
Application Load Balancer 購入ページで、ALB インスタンスについて次の表に示すパラメーターを設定し、今すぐ購入 をクリックします。
パラメーター
説明
リージョン
ALB インスタンスを作成するリージョンを選択します。この例では、中国 (杭州) が選択されています。
ネットワークタイプ
ALB インスタンスのネットワークタイプを選択します。この例では、イントラネット が選択されています。
VPC
ALB インスタンスをデプロイする VPC を選択します。この例では、VPC 2 が選択されています。
ゾーン
ALB インスタンスをデプロイするゾーンを選択します。少なくとも 2 つのゾーンを選択する必要があります。この例では、杭州ゾーン H、杭州ゾーン I、および各ゾーンの vSwitch が選択されています。
IP モード
ALB インスタンスが使用する IP アドレスタイプを選択します。この例では、静的 IP が選択されています。
IP バージョン
ALB インスタンスの IP バージョンを選択します。この例では、IPv4 が選択されています。
IPv4: このオプションを選択した場合、ALB インスタンスには IPv4 クライアントからのみアクセスできます。
デュアルスタック: このオプションを選択すると、ALB インスタンスに IPv4 クライアントと IPv6 クライアントの両方からアクセスできるようになります。
エディション
ALBインスタンスのエディションを選択します。この例では、ベーシックが選択されています。
インスタンス名
ALB インスタンスの名前を入力します。
リソースグループ
ALB インスタンスが属するリソースグループを選択します。この例では、デフォルトリソースグループが選択されています。
ステップ 2: ALB インスタンスのバックエンドサーバーグループを作成する
左側のナビゲーションペインで、 を選択します。
サーバーグループ ページで、サーバーグループの作成 をクリックします。
サーバーグループの作成 ダイアログボックスで、次の表に示すパラメーターを設定し、作成 をクリックします。
次の表では、このトピックに関連するパラメーターのみを説明しています。その他のパラメーターの設定方法の詳細については、サーバーグループの作成と管理 を参照してください。
パラメーター
説明
サーバーグループの種類
作成するサーバーグループの種類を選択します。この例では、サーバー が選択されています。
サーバーグループ名
サーバーグループの名前を入力します。この例では、RS 1 と入力されています。
VPC
バックエンドサーバーグループが属する VPC を選択します。この例では、VPC 2 が選択されています。
バックエンドサーバープロトコル
バックエンドプロトコルを選択します。この例では、HTTP が選択されています。
スケジューリングアルゴリズム
スケジューリングアルゴリズムを選択します。この例では、重み付けラウンドロビン が選択されています。
リソースグループ
ALB インスタンスが属するリソースグループを選択します。
サーバーグループを作成した後、サーバーグループページで RS 1 を見つけ、その ID をクリックします。
バックエンドサーバー タブをクリックし、バックエンドサーバーの追加 をクリックします。
バックエンドサーバーの追加 パネルで、ECS 03 と ECS 04 を選択し、次へ をクリックします。
ECS 03 と ECS 04 のポートと重みを設定します。この例では、インスタンスにポート 80 とデフォルトの重み 100 が設定されています。次に、OK をクリックします。
ステップ 3: リスナーを構成する
左側のナビゲーションペインで、 を選択します。表示されるページで、管理する ALB インスタンスを見つけ、その ID をクリックします。
リスナー タブをクリックし、リスナーの作成 をクリックします。
リスナーの構成 ウィザードページで、次の表に記載されているパラメーターを設定し、次へ をクリックします。
次の表では、このトピックに関連するパラメーターのみを説明しています。その他のパラメーターの設定方法の詳細については、HTTP リスナーを追加する を参照してください。
パラメーター
説明
リスナープロトコル
リスニングプロトコルを選択します。この例では、HTTP が選択されています。
リスナーポート
リクエストを受信して処理するために使用されるリスニングポートを指定します。この例では、80 と入力されています。
リスナー名
リスナーの名前を入力します。
詳細設定
変更 をクリックして詳細設定を変更できます。この例では、デフォルトの詳細設定が使用されています。
サーバーグループの選択 ウィザードページで、ステップ 2 で作成した RS 1 を選択し、次へ をクリックします。
構成の確認 ウィザードページで、構成を確認し、送信 をクリックします。
ALB 構成ウィザード メッセージで、OK をクリックして インスタンス ページに戻ります。
リスナーのヘルスチェックステータスが 正常 の場合、ECS 03 と ECS 04 は ALB インスタンスによって転送されたリクエストを処理できます。
手順 2: ALB インスタンスのバックエンドサーバーグループを作成する
エンドポイントサービスコンソールにログオンします。
上部のナビゲーションバーで、エンドポイントサービスを作成するリージョンを選択します。この例では、中国 (杭州) が選択されています。
エンドポイントサービス ページで、エンドポイントサービスの作成 をクリックします。
エンドポイントサービスの作成 ページで、次の表に示すパラメーターを設定し、OK をクリックします。
次の表は、このトピックに関連するパラメーターのみを示しています。その他のパラメーターの設定方法については、「エンドポイントサービスの作成と管理」トピックのエンドポイントサービスの作成セクションを参照してください。
パラメーター
説明
サービスリソースの種類
エンドポイントサービスに追加するサービスリソースの種類を選択します。この例では、ALB が選択されています。
サービスリソースの選択
サービスリソースがデプロイされているゾーンを選択し、サービスリソースを選択します。
この例では、杭州ゾーンH と 杭州ゾーンI が選択されており、手順1 で作成した ALB インスタンスがサービスリソースとして選択されています。
エンドポイント接続を自動的に承諾
エンドポイントサービスがエンドポイントからの接続要求を自動的に承諾するかどうかを指定します。この例では、いいえ が選択されています。
ゾーンアフィニティの有効化
この例では、いいえ が選択されています。これは、エンドポイントサービスに関連付けられているすべてのエンドポイントの中で、最も近いエンドポイントのドメイン名が最初に解決されないことを示します。
リソースグループ
エンドポイントサービスが属するリソースグループを選択します。
エンドポイントサービスを作成した後、サービスリソースの種類 が ALB であるエンドポイントサービスを表示できます。
ステップ 5: エンドポイントを作成する
エンドポイントコンソールにログオンします。
上部のナビゲーションバーで、エンドポイントを作成するリージョンを選択します。この例では、中国 (杭州) が選択されています。
エンドポイントページで、インターフェースエンドポイントタブをクリックし、エンドポイントの作成をクリックします。
エンドポイントの作成ページで、次の表に記載されているパラメーターを設定し、OK をクリックします。
次の表では、このトピックに関連するパラメーターのみについて説明します。その他のパラメーターの設定方法の詳細については、「エンドポイントの作成と管理」トピックのエンドポイントの作成セクションを参照してください。
パラメーター
説明
エンドポイント名
エンドポイントの名前を入力します。
エンドポイントタイプ
エンドポイントのタイプを選択します。この例では、インターフェースエンドポイントが選択されています。
エンドポイントサービス
関連付けるエンドポイントサービスを選択します。
この例では、サービスの選択をクリックし、ステップ 4で作成したエンドポイントサービスを選択します。
VPC
エンドポイントが属する VPC を選択します。この例では、VPC 1 が選択されています。
セキュリティグループ
エンドポイントの弾性ネットワークインターフェース (ENI) に関連付けるセキュリティグループを選択します。セキュリティグループは、VPC 1 からエンドポイント ENI へのデータ転送を制御するために使用されます。
説明セキュリティグループのルールで、クライアントがエンドポイント ENI にアクセスできるようにしてください。
デフォルトでは、最大 5 つのセキュリティグループにエンドポイントを追加できます。
ゾーンと Vswitch
エンドポイントサービスがデプロイされているゾーンを選択し、各ゾーンで vSwitch を選択します。システムは、vSwitch ごとにエンドポイント ENI を自動的に作成し、エンドポイント ENI を vSwitch に接続します。
この例では、杭州ゾーン H、杭州ゾーン I、および各ゾーンの vSwitch が選択されています。
リソースグループ
エンドポイントが属するリソースグループを選択します。
エンドポイントを作成した後、ゾーンのドメイン名と IP アドレスを表示できます。
ステップ 6: 接続リクエストを承認する
VPC 1 でエンドポイントを作成した後、エンドポイントからの接続リクエストを承認するようにエンドポイントサービスを構成する必要があります。その後、VPC 1 はエンドポイントを使用してエンドポイントサービスにアクセスできます。
ステップ 4 で [エンドポイント接続を自動的に承認] パラメーターを [はい] に設定した場合は、このステップをスキップします。
左側のナビゲーションペインで、エンドポイントサービス をクリックします。
上部のナビゲーションバーで、エンドポイントサービスがデプロイされているリージョンを選択します。この例では、中国 (杭州) が選択されています。
エンドポイントサービス ページで、ステップ 4 で作成したエンドポイントサービスを見つけ、その ID をクリックします。
エンドポイントサービスの詳細ページで、エンドポイント接続 タブをクリックし、管理するエンドポイントを見つけて、許可アクション 列の をクリックします。
接続の許可 ダイアログボックスで、OK をクリックします。
接続リクエストが承認されると、エンドポイント接続の状態が 切断済み から 接続済み に変わります。その後、エンドポイントサービスはエンドポイントからのリクエストを処理できます。ステップ 5 で生成されたゾーンのドメイン名と IP アドレスを使用して、エンドポイントサービスにアクセスできます。
ステップ 7: ネットワーク接続をテストする
上記の手順を完了すると、VPC 1 はプライベート接続を介して VPC 2 にアクセスできるようになります。次のセクションでは、ネットワーク接続をテストする方法について説明します。
この例では、ECS インスタンスは Alibaba Cloud Linux オペレーティングシステムを実行しています。VPC 1 と VPC 2 間のネットワーク接続を他のオペレーティングシステムでテストする方法の詳細については、使用しているオペレーティングシステムのユーザーガイドを参照してください。
この例では、高可用性をサポートするために、エンドポイントサービス用に 2 つのゾーンとエンドポイント用に 2 つのゾーンが作成されています。エンドポイントサービスのドメイン名を使用して、エンドポイントサービスにアクセスできます。
VPC 1 の ECS 01 と ECS 02 にログオンします。詳細については、ECS インスタンスへの接続方法を参照してください。
VPC 1 の ECS インスタンスにログオンした後、次のいずれかの方法を使用して VPC 間の接続をテストできます。
エンドポイントサービスのドメイン名を使用して、VPC 2 にデプロイされたサービスにアクセスします。このドメイン名は、ゾーン間の自動トラフィック切り替えをサポートし、高可用性を確保します。ゾーンに障害が発生した場合、トラフィックは別のゾーンを介して転送できます。
エンドポイントの詳細ページで、生成されたエンドポイントサービスのドメイン名を確認します。
curl
コマンドを実行して、ネットワーク接続をテストします。
ゾーンのドメイン名または IP アドレスを使用して、VPC 2 にデプロイされたサービスにアクセスします。
エンドポイントの詳細ページで、ゾーンと ENI タブをクリックして、生成されたゾーンのドメイン名と IP アドレスを表示します。
curl
コマンドを実行して、ネットワーク接続をテストします。
参照
CreateVpcEndpoint: エンドポイントを作成します。
CreateVpcEndpointService: エンドポイントサービスを作成します。
AttachResourceToVpcEndpointService: サービスリソースをエンドポイントサービスに追加します。
EnableVpcEndpointConnection: エンドポイント接続要求を受け入れます。