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