サービスプロバイダーは、エンドポイントサービスを作成して指定のユーザーと共有できます。これにより、ネットワークアーキテクチャが簡素化され、サービスがパブリックネットワークに公開されるのを防ぎます。
安全なプライベートアクセス:すべてのサービストラフィックはプライベートネットワーク経由で送信されます。これにより、データがインターネットに公開されるのを防ぎ、セキュリティリスクを軽減します。
シンプルなネットワークアーキテクチャ:PrivateLink は、サービス利用者の Virtual Private Cloud (VPC) に Elastic Network Interface (ENI) を作成し、ローカルアクセスエントリポイントとして機能させます。サービス利用者は、VPC 内の他のリソースと同様にサービスにアクセスできます。これにより、VPC ピアリング接続や Cloud Enterprise Network (CEN) インスタンスが不要になり、ネットワークアーキテクチャが大幅に簡素化され、IP アドレスの競合も解決されます。
仕組み
サービスプロバイダー:サービスを提供するリージョンに、Network Load Balancer (NLB)、Application Load Balancer (ALB)、または Classic Load Balancer (CLB) インスタンスなどの Server Load Balancer (SLB) インスタンスをデプロイします。その後、サービスプロバイダーは、利用者が使用するエンドポイントサービスを設定します。
サービス利用者:VPC でインターフェイスエンドポイントを作成し、エンドポイントサービス名を指定して、プライベートネットワーク経で対応するサービスにアクセスします。他の VPC またはデータセンターと利用者の VPC との間にネットワーク接続が確立されると、VPC 内のインターフェイスエンドポイントを介してエンドポイントサービスにアクセスできます。詳細については、「他の VPC」および「データセンター」をご参照ください。
サービスプロバイダーとサービス利用者は Alibaba Cloud ユーザーである必要があります。現在、PrivateLink のエンドポイントとエンドポイントサービスは、同じリージョンにデプロイする必要があります。
サービスの共有
サービスプロバイダーは、SLB インスタンスをデプロイし、サービスのバックエンドサーバーを追加し、サービスリージョンでエンドポイントサービスを設定する必要があります。
サポートされているサービスリソース:パブリックまたはプライベート NLB インスタンス、パブリックまたはプライベート ALB インスタンス、および従量課金のプライベート CLB インスタンス。
サービスリソースが設定され、必要なバックエンドサービスがデプロイされていることを確認してください。
コンソール
サービスプロバイダーとしてエンドポイントサービスを設定
PrivateLink コンソールの [エンドポイントサービスの作成] ページに移動します。
[リージョン]:サービスを提供するリージョンを選択します。
[EPS リソースタイプ]:設定したサービスリソースに基づいてリソースタイプを選択します。高可用性を確保するために、複数のゾーンからサービスリソースを追加してください。
[エンドポイント接続の自動承諾]:ユーザーがサービスにアクセスするためにインターフェイスエンドポイントを作成した際に、接続リクエストを自動的に承諾するかどうかを指定します。作成後にこのオプションを変更しても、既存の接続には影響しません。
[はい]:サービス利用者がサービスに接続するためにインターフェイスエンドポイントを作成すると、接続は自動的に確立されます。
[いいえ]:サービスプロバイダーは、サービス利用者からの接続を許可するかどうかを確認する必要があります。
[ゾーンアフィニティ]:サービス利用者がサービスレイテンシに敏感でない場合は、[いいえ] を選択します。[はい] を選択し、サービス利用者がゾーンアフィニティを有効にすると、インターフェイスエンドポイントと同じゾーンからサービスにアクセスした場合、システムは対応するエンドポイントゾーンの ENI の IP アドレスを優先します。これにより、最も近い場所からのアクセスが可能になります。
[IP バージョン]:[IPv4] と [デュアルスタック] をサポートしています。エンドポイントサービスに追加されたすべてのサービスリソースがデュアルスタックをサポートしている場合は、[デュアルスタック] を選択できます。
CLB はデュアルスタックをサポートしていません。
[支払者]:PrivateLink 接続の支払者を選択します。デフォルトはサービス利用者です。この設定は、一度設定すると変更できません。
エンドポイントサービスが作成された後、サービスプロバイダーはサービスホワイトリストを設定して、他のアカウントのユーザーがエンドポイントサービスへの接続リクエストを開始できるようにする必要があります。
対象のエンドポイントサービスの詳細ページで、[サービスホワイトリスト] タブに移動します。[ホワイトリストに追加] をクリックして、サービスにアクセスできるユーザーの範囲を定義します。
*を設定:すべてのユーザーがエンドポイントサービスへの接続リクエストを開始できます。アカウント UID を設定:指定されたユーザーのみがエンドポイントサービスへの接続リクエストを開始できます。
サービス利用者としてエンドポイントサービスにアクセス
[エンドポイント] - [エンドポイントの作成] ページに移動します。
インターフェイスエンドポイントを設定します:
[リージョン]:インターフェイスエンドポイントを作成するリージョンを選択します。このリージョンは、エンドポイントサービスのリージョンと同じである必要があります。PrivateLink は現在、リージョン内接続のみをサポートしています。
[エンドポイント]:[その他のエンドポイントサービス] を選択し、認証のためにエンドポイントサービス名を入力します。サービス名が検証されると、アクセスが許可されます。
VPC と ゾーン・VSwitch:
エンドポイントサービスが利用可能なゾーンからゾーンを選択します。このゾーンは、サービスリソースが配置されているゾーンに対応している必要があります。高可用性を確保するために、少なくとも 2 つのゾーンで vSwitch を選択してください。
vSwitch 内から特定の IP アドレスをエンドポイントゾーンの ENI に割り当てることができます。IP アドレスを指定しない場合、システムはデフォルトで 1 つ割り当てます。
vSwitch のシステム予約 IP アドレスを ENI に割り当てないでください。
[セキュリティグループ]:セキュリティグループをインターフェイスエンドポイントに関連付けて、すべてのエンドポイントゾーンの ENI へのインバウンドトラフィックを管理します。
[IP バージョン]:エンドポイントサービスがデュアルスタックをサポートしている場合は、[デュアルスタック] を選択できます。これにより、クライアントは IPv4 と IPv6 の両方のアドレスを使用してサービスにアクセスできます。それ以外の場合は、[IPv4] のみ選択できます。
[ゾーンアフィニティ]:エンドポイントサービスがゾーンアフィニティをサポートしている場合、サービス利用者はそれを有効または無効にできます。有効にすると:
サービス利用者がエンドポイントドメイン名を使用してインターフェイスエンドポイントと同じゾーンからサービスにアクセスする場合、システムは対応するエンドポイントゾーンの ENI の IP アドレスを優先します。これにより、最も近い場所からのアクセスが可能になります。
インターフェイスエンドポイントのゾーンとは異なるゾーンからサービスにアクセスする場合、システムはすべてのエンドポイントゾーンから ENI の IP アドレスを返します。トラフィックはランダムなゾーンにルーティングされます。
作成後、同じ VPC 内の ECS インスタンスから次のコマンドを実行して接続をテストします。
ping <IP address of the endpoint ENI in the zone> # ENI のプライベート IP アドレスは、インスタンス詳細ページの [ゾーンと ENI] タブで確認できます。 # HTTP/HTTPS サービスの場合、サービスポートに直接アクセスすることを推奨します。 curl -sI https://<endpoint domain name> # エンドポイントドメイン名は、インスタンスリストページで確認できます。
API
サービスプロバイダー:CreateVpcEndpointService 操作を呼び出して、エンドポイントサービスを作成します。
サービス利用者:CreateVpcEndpoint 操作を呼び出して、エンドポイントを作成します。
サービスのアクセス範囲の設定
サービスホワイトリストとエンドポイント接続の自動承諾設定を組み合わせることで、サービスプロバイダーはどのサービス利用者がエンドポイントサービスにアクセスできるかを正確に制御できます。例:
少数の信頼できるユーザー:ユーザーのアカウント UID をホワイトリストに追加し、エンドポイント接続の自動承諾を有効にします。
より広範なユーザー:ホワイトリストに
*を追加し、エンドポイント接続の自動承諾を無効にします。サービスプロバイダーは、各エンドポイント接続リクエストを承認する必要があります。
サービスホワイトリストの設定
エンドポイントサービスが作成されると、システムは自動的にサービスプロバイダーの Alibaba Cloud アカウントをサービスホワイトリストに追加します。サービスプロバイダーは、他のアカウントのユーザーがエンドポイントサービスへの接続リクエストを開始できるように、サービスホワイトリストを手動で設定する必要があります。
サービスの段階的リリース中は、サービスプロバイダーは対象ユーザーの Alibaba Cloud アカウント UID を 1 つずつ追加して、徐々にアクセス権限を付与できます。段階的リリースが完了した後、必要に応じて
*エントリを追加して、すべてのユーザーにサービスを公開できます。サービスが長期的に特定のユーザーを対象としている場合は、指定されたアカウント UID のみを設定することを選択できます。
コンソール
対象のエンドポイントサービスの詳細ページで、[サービスホワイトリスト] タブに移動します。[ホワイトリストに追加] をクリックして、サービスにアクセスできるユーザーの範囲を定義します。
*を設定:すべてのユーザーがエンドポイントサービスへの接続リクエストを開始できます。アカウント UID を設定:指定されたユーザーのみがエンドポイントサービスへの接続リクエストを開始できます。
API
AddUserToVpcEndpointService 操作を呼び出して、アカウントをサービスホワイトリストに追加します。
RemoveUserFromVpcEndpointService 操作を呼び出して、アカウントをサービスホワイトリストから削除します。
エンドポイント接続の自動承諾
サービス利用者は、サービスプロバイダーがエンドポイント接続を承諾した後にのみ、対応するインターフェイスエンドポイントを使用してプライベートネットワーク経由でエンドポイントサービスにアクセスできます。
コンソール
エンドポイントサービスを作成する際に、[エンドポイント接続の自動承諾] を設定します:
[はい]:接続は自動的に確立されます。
[いいえ]:サービスプロバイダーは、対象のエンドポイントサービスの [エンドポイント接続] タブに移動し、対象のインターフェイスエンドポイントの [操作] 列で [許可] または [拒否] を選択して接続リクエストを管理する必要があります。
作成後、対象のエンドポイントサービスの [基本情報] タブに移動して、エンドポイント接続の自動承諾を [有効化] または [無効化] できます。作成後にこのオプションを変更しても、既存の接続には影響しません。
API
CreateVpcEndpointService および UpdateVpcEndpointServiceAttribute 操作を呼び出す際に、
AutoAcceptEnabledパラメーターを設定して、エンドポイント接続を自動的に承諾するかどうかを指定します。AutoAcceptEnabledをfalseに設定した場合、EnableVpcEndpointConnection または DisableVpcEndpointConnection 操作を呼び出して、エンドポイント接続リクエストを許可または拒否する必要があります。
サービスアクセスの高可用性の確保
サービスプロバイダーは、エンドポイントサービスの複数のゾーンにサービスリソースを設定します。
サービスリソースが NLB または ALB インスタンスの場合、複数のゾーンから NLB または ALB インスタンスを追加します。
サービスリソースが CLB インスタンスの場合、異なるプライマリゾーンを持つ複数の CLB インスタンスを追加します。
サービス利用者は、インターフェイスエンドポイントを作成する際に、少なくとも 2 つのゾーンで vSwitch を選択します。
サービス利用者は、エンドポイントドメイン名を使用してサービスにアクセスします。Alibaba Cloud は、障害発生時に他のゾーンへの迅速なスイッチオーバーを保証するために、完全に管理された可用性プローブを提供します:
異なるエンドポイントゾーンの ENI IP アドレスの可用性がリアルタイムでプローブされます。異常が検出された場合、対応する DNS レコードが削除され、ゾーン障害によるサービス中断やデータ損失を防ぎます。
障害が解決されると、対応する DNS レコードは自動的に復元されます。
コンソール
サービスプロバイダーとしてエンドポイントサービスにマルチゾーンサービスリソースを設定
エンドポイントサービスを作成する際に、複数のゾーンからサービスリソースを選択します。
作成後、対象のエンドポイントサービスの ID をクリックします。[基本情報] タブで、[サービスリソースの追加] をクリックし、追加するリソースインスタンスを選択します。
サービス利用者としてインターフェイスエンドポイントに複数のゾーンを設定
インターフェイスエンドポイントを作成する際に、少なくとも 2 つのゾーンから vSwitch を選択します。
作成後、対象のインターフェイスエンドポイントの ID をクリックします。[ゾーンと ENI] タブで、[ゾーンの追加] をクリックします。
高可用性を確保するには、エンドポイントドメイン名を使用してサービスにアクセスする必要があります。 Interface Endpoints ページで [エンドポイントドメイン名] を確認できます。
API
エンドポイントサービスの構成
AttachResourceToVpcEndpointService を呼び出して、エンドポイントサービスにサービスリソースを追加します。
DetachResourceFromVpcEndpointService を呼び出して、エンドポイントサービスからサービスリソースを削除します。
エンドポイントの構成
AddZoneToVpcEndpoint を呼び出して、エンドポイントにゾーンを追加します。
RemoveZoneFromVpcEndpoint を呼び出して、エンドポイントからゾーンを削除します。
サービスリソースの割り当て
サービスリソースの負荷が高くなり、サービスに影響が及ぶのを防ぐため、エンドポイントサービスの各ゾーンに複数のサービスリソースを追加してください。この設定により、異なるエンドポイント接続が異なるサービスリソースを使用できるようになり、トラフィックが分散されます。サービスリソースに障害が発生した場合、エンドポイント接続は同じゾーン内の別の利用可能なサービスリソースに自動的に切り替わります。
サービスリソースが Classic Load Balancer (CLB) の場合、エンドポイント接続を切断することなく、ゾーンのサービスリソースを直接置き換えることができます。
ゾーンのサービスリソースの置き換え機能とサービスリソースの手動割り当て機能は、デフォルトでは無効になっています。これらの機能を有効にするには、Quota Center コンソールに移動し、privatelink_whitelist/svc_res_mgt_uat クォータを申請してください。
サービスリソースの割り当て方法:自動または手動に設定します。各ゾーンに、自動的に割り当て可能なサービスリソースが少なくとも 1 つあることを確認してください。
エンドポイントゾーン接続へのサービスリソースの割り当て:
サービスプロバイダーがエンドポイント接続を自動的に承諾する場合:
PrivateLink は、サービスリソースの帯域幅とそれらへのエンドポイント接続数に基づいて、同じゾーンからエンドポイントゾーンにサービスリソースを自動的に割り当てます。割り当てられるサービスリソースは、自動割り当て用に設定されている必要があります。
自動的に割り当てられたリソースが接続要件を満たせない場合は、まずエンドポイントゾーン接続を切断し、その後サービスリソースを手動で割り当てます。調整後、再度接続を許可します。
サービスプロバイダーがエンドポイント接続を手動で承諾する場合:
接続を許可する前に、サービスリソースを手動で割り当てます。リソースを手動で割り当てない場合は、エンドポイント接続を許可する際に [接続を許可し、サービスリソースを自動的に割り当てる] を選択できます。
自動的に割り当てられたリソースが接続要件を満たせない場合は、まずエンドポイントゾーン接続を切断し、その後サービスリソースを手動で割り当てます。調整後、再度接続を許可します。
サービスリソースの追加/削除
コンソール
サービスリソースの追加
エンドポイントサービスページに移動し、対象のエンドポイントサービスの ID をクリックして詳細ページに移動します。
[基本情報] タブの [サービスリソース] セクションで、[サービスリソースの追加] をクリックします。ゾーンと特定のサービスリソースを選択します。
サービスリソースの削除
対象のエンドポイントサービスの [基本情報] タブの [サービスリソース] セクションで、対象のサービスリソースを見つけ、[操作] 列の [削除] をクリックします。これにより、リソースはエンドポイントサービスから削除されますが、リソースインスタンス自体は削除されません。
エンドポイントゾーンに関連付けられているサービスリソースを直接削除することはできません。まず、エンドポイント接続を切断してください。
API
AttachResourceToVpcEndpointService を呼び出して、エンドポイントサービスにサービスリソースを追加します。
DetachResourceFromVpcEndpointService を呼び出して、エンドポイントサービスからサービスリソースを削除します。
特定のサービスリソースの割り当て方法の設定
コンソール
対象のエンドポイントサービスの詳細ページで、[基本情報] タブに移動します。[サービスリソース] セクションで、対象のサービスリソースの [自動割り当て] 列のスイッチを切り替えて、エンドポイント接続に自動的に割り当てるかどうかを指定します。
各ゾーンに、自動的に割り当て可能なサービスリソースが少なくとも 1 つ含まれていることを確認してください。
サービスリソースの [自動割り当て] 設定を変更しても、既存のエンドポイント接続には影響しません。
API
UpdateVpcEndpointServiceResourceAttribute を呼び出し、AutoAllocatedEnabled パラメーターを変更して、サービスリソースの割り当て方法を設定します。
エンドポイントゾーン接続へのサービスリソースの割り当て
コンソール
対象のエンドポイントサービスの詳細ページで、[エンドポイント接続] タブに移動し、次のいずれかの方法でエンドポイント接続を切断します:
すべてのゾーンの接続を切断する:対象のエンドポイントを見つけ、[操作] 列の [拒否] をクリックします。この操作によりサービスが利用できなくなります。注意して操作してください。
特定のゾーンの接続を切断する:対象のエンドポイントの横にある
アイコンをクリックし、対象のゾーンを見つけ、[操作] 列の [サービスリソースの切断] をクリックします。この操作はサービストラフィックを中断させる可能性があります。続行する前に影響を評価してください。
サービスリソースの割り当て方法を調整します:
リソースを自動的に割り当てる:対象のエンドポイントの横にある
アイコンをクリックし、対象のゾーンを見つけ、[操作] 列の [サービスリソースの割り当て] をクリックします。[自動割り当て] を選択し、[サービスリソースの接続] をクリックします。エンドポイントゾーンにすでに指定されたサービスリソースがある場合、自動割り当て を選択すると、指定されたサービスリソースがクリアされます。
リソースを手動で割り当てる:対象のエンドポイントの横にある
アイコンをクリックし、対象のゾーンを見つけ、[操作] 列の [サービスリソースの割り当て] をクリックします。[手動割り当て] をクリックし、作成したサービスリソースを選択してから、[サービスリソースの接続] をクリックします。
API
DisableVpcEndpointZoneConnection を呼び出して、エンドポイントゾーン接続を切断します。
UpdateVpcEndpointZoneConnectionResourceAttribute を呼び出して、エンドポイントゾーンにサービスリソースを割り当てます:
ResourceAllocateModeをAutoに設定して、サービスリソースを自動的に割り当てます。ResourceAllocateModeをManualに設定し、ResourceIdを指定してサービスリソースを手動で割り当てます。
EnableVpcEndpointZoneConnection を呼び出して、エンドポイントゾーン接続を許可します。
ゾーンのサービスリソースの置き換え
サービスリソースが CLB の場合、エンドポイント接続を切断することなく、ゾーン内のサービスリソースを直接置き換えることができます。
コンソール
対象のエンドポイントサービスの詳細ページで、[基本情報] タブに移動します。[サービスリソース] セクションで、対象のサービスリソースの [自動割り当て] を無効にします。
次の 2 つの方法のいずれかで、対象のエンドポイント接続のサービスリソースを置き換えます:
エンドポイントサービス詳細ページの [基本情報] タブの [サービスリソース] セクションで、対象のサービスリソースを見つけ、[操作] 列の [リソースの置き換え] をクリックします。新しいサービスリソースと、サービスリソースを置き換えたい対象のエンドポイント接続を選択します。
エンドポイントサービス詳細ページの [エンドポイント接続] タブで、対象のエンドポイントの横にある
アイコンをクリックします。対象のゾーンを見つけ、[操作] 列の [サービスリソースの置き換え] をクリックします。
移行方法を選択します。スムーズな移行を推奨します。強制移行はサービストラフィックを中断させる可能性があります。続行する前に影響を評価してください。
[スムーズな移行]:
システムはまず、エンドポイントゾーン用に新しい Elastic Network Interface (ENI) を作成し、新しい ENI を新しいサービスリソースに接続し、新しい ENI の IP アドレスを DNS レコードに追加します。
システムは、古い ENI の IP アドレスを DNS レコードから自動的に削除します。
既存のすべての接続が終了するタイミングをお客様側で判断する必要があります。その後、対象ゾーンの [操作] 列で [古いサービスリソースの切断] をクリックします。切断後、古い ENI は完全に削除されます。
[強制移行]:移行が完了すると、元のサービスリソースはエンドポイントサービスから直接削除されます。強制移行は、そのリソースに依存するすべてのサービス接続を中断し、サービストラフィックを中断させる可能性があります。続行する前に影響を評価してください。
API
UpdateVpcEndpointZoneConnectionResourceAttribute を呼び出して、エンドポイントゾーン接続のサービスリソースを置き換えます。
エンドポイント接続の帯域幅の変更
エンドポイント接続に帯域幅の速度制限を設定することで、トラフィックを正確に制御できます。これにより、バックエンドサービスリソースの過負荷を防ぎます。各エンドポイントゾーンの Elastic Network Interface (ENI) は、エンドポイント接続の帯域幅制限を自動的に継承します。
デフォルトの帯域幅制限:エンドポイントサービスに接続されているすべてのインターフェースエンドポイントに対して、エンドポイント接続がアクティブな場合、サービスはデフォルトの帯域幅制限を提供します。
サービスリソースが Classic Load Balancer (CLB) の場合:
エンドポイント接続のデフォルト帯域幅は 3072 Mbps です。有効値は 100 Mbps から 10240 Mbps です。
この制限は調整可能です。この変更は、確立済みのエンドポイント接続のトラフィックには影響せず、新規エンドポイント接続にのみ適用されます。
サービスリソースが Network Load Balancer (NLB) および Application Load Balancer (ALB) の場合、デフォルトの帯域幅制限はサポートされていません。
特定のエンドポイント接続の帯域幅制限の設定:適切な帯域幅制限を設定して、サービスリソースの過負荷を防ぎます。この制限を設定すると、対応するエンドポイント接続にはデフォルトの帯域幅制限が適用されなくなります。
帯域幅の速度制限の有効化:
エンドポイントサービスがエンドポイント接続を自動的に承諾する場合、接続が確立された後に帯域幅の速度制限を有効にします。
エンドポイントサービスでエンドポイント接続を手動で承諾する必要がある場合、接続を承諾する際に帯域幅の速度制限を有効にします。
サービスリソースごとの帯域幅制限の範囲:
NLB および ALB:最小制限は 100 Mbps、最大制限は 25 Gbps です。
CLB:最小制限は 100 Mbps、最大制限は 10240 Mbps です。
コンソール
デフォルト制限の変更:対象のエンドポイントサービスの詳細ページで、[基本情報] タブをクリックし、[デフォルトの帯域幅制限] の右側にある [変更] をクリックします。
特定のエンドポイント接続の帯域幅の変更:対象のエンドポイントサービスの詳細ページで、[エンドポイント接続] タブをクリックします。対象のエンドポイントを見つけ、[操作] 列で帯域幅の速度制限を有効化、変更、または無効化します。
API
UpdateVpcEndpointServiceAttribute を呼び出し、
Bandwidthパラメーターを設定して、エンドポイントサービスの帯域幅を変更します。UpdateVpcEndpointConnectionAttribute を呼び出し、
Bandwidthパラメーターを設定して、エンドポイント接続の帯域幅を変更します。
エンドポイントサービスの停止
サービスプロバイダーは、エンドポイントサービスを削除してその提供を停止できます。サービスを削除すると、関連付けられているすべてのエンドポイント接続が恒久的に中断されます。この操作は元に戻すことができないため、注意して実行してください。
コンソール
サービスを削除する前に、接続されているすべてのインターフェイスエンドポイントを拒否または切断し、すべてのサービスリソースを削除します。
対象のエンドポイントサービスの [操作] 列にある [削除] をクリックします。
API
DisableVpcEndpointZoneConnection を呼び出して、エンドポイントゾーン接続を切断します。
DetachResourceFromVpcEndpointService を呼び出して、エンドポイントサービスからサービスリソースを削除します。
DeleteVpcEndpointService を呼び出して、エンドポイントサービスを削除します。
よくある質問
サービス利用者がエンドポイントサービスを見つけられないのはなぜですか?
サービス利用者の Alibaba Cloud アカウント ID がサービスホワイトリストに追加されていることを確認してください。ホワイトリストに登録されているユーザーのみが、サービスを見つけて接続できます。
接続ステータスが常に [切断済み] になるのはなぜですか?
この問題は、エンドポイントサービスの [エンドポイント接続の自動承諾] オプションが無効になっている場合に発生する可能性があります。この場合、 [エンドポイント接続] タブに移動し、手動で接続リクエストを [許可] してください。