インターフェイスエンドポイントの VPC エンドポイントサービス - Amazon Virtual Private Cloud

インターフェイスエンドポイントの VPC エンドポイントサービス

インターフェイスエンドポイント用のエンドポイントサービスの一般的な作成手順は次のとおりです。

  1. VPC でアプリケーションの Network Load Balancer を作成し、これを、サービスを使用可能にするサブネット (アベイラビリティーゾーン) ごとに設定します。ロードバランサーは、サービスコンシューマーからリクエストを受け取ってサービスにルーティングします。または、Application Load Balancer を Network Load Balancer のターゲットとして設定し、Application Load Balancer がリクエストをサービスにルーティングするようにできます。詳細については、「Network Load Balancer のユーザーガイド」を参照してください。

    サービスは、リージョン内のすべてのアベイラビリティーゾーンに設定することをお勧めします。

  2. VPC エンドポイントのサービス設定を作成し、Network Load Balancer を指定します。

サービスコンシューマーからサービスに接続するための一般的な手順は以下のとおりです。

  1. 特定のサービスコンシューマー (AWS アカウント、IAM ユーザー、および IAM ロール) に対して、エンドポイントサービスへの接続を作成するためのアクセス許可を付与します。

  2. アクセス権限を付与されたサービスコンシューマーは、サービスへのインターフェイスエンドポイントを (必要に応じて) サービスが設定されている各アベイラビリティーゾーンで作成します。

  3. 接続を有効にするには、インターフェイスエンドポイント接続リクエストを承諾します。デフォルトでは、接続リクエストは手動で承諾する必要があります。ただし、接続リクエストが自動的に承諾されるように、エンドポイントサービスの承諾設定を指定できます。

アクセス許可と承諾設定を組み合わせると、サービスにアクセスできるサービスコンシューマー (AWS プリンシパル) を管理するうえで役立ちます。たとえば、信頼している選択されたプリンシパルにアクセス許可を付与して自動的にすべての接続リクエストを承諾するか、プリンシパルのより広範なグループにアクセス許可を付与して、信頼している特定の接続リクエストを手動で承諾できます。

次の図で、VPC B のアカウント所有者はサービスプロバイダーで、サブネット B のインスタンスでサービスを実行しています。VPC B の所有者は、サブネット B のインスタンスをターゲットとして指す Network Load Balancer が関連付けられたサービスエンドポイント (vpce-svc-1234) を使用します。VPC A のサブネット A のインスタンスは、インターフェイスエンドポイントを使用してサブネット B のサービスにアクセスします。


                インターフェイスエンドポイントを使用してエンドポイントサービスにアクセスする

低レイテンシーと耐障害性を確保するため、Network Load Balancer を使用して AWS リージョンの各アベイラビリティーゾーンにターゲットを置くことをお勧めします。ゾーン DNS ホスト名を使用するサービスコンシューマーがサービスにアクセスするための高可用性を実現するために、クロスゾーン負荷分散を使用できます。クロスゾーン負荷分散を使用すると、ロードバランサーを使用して有効なすべてのアベイラビリティーゾーンの登録済みターゲットにトラフィックを分散できます。詳細については、Network Load Balancer ユーザーガイドの「クロスゾーン負荷分散」を参照してください。クロスゾーン負荷分散を有効にすると、リージョン内データ転送料金がアカウントに適用されることがあります。

以下の図では、VPC B の所有者はサービスプロバイダーであり、2 つの異なるアベイラビリティーゾーンにターゲットを置く Network Load Balancer を設定しています。サービスコンシューマー (VPC A) は、自分の VPC で同じ 2 つのアベイラビリティーゾーンにインターフェイスエンドポイントを作成しました。VPC A のインスタンスからサービスへのリクエストには、いずれかのインターフェイスエンドポイントが使用されます。


                インターフェイスエンドポイントを使用してエンドポイントサービスにアクセスする

サービスを設定し、サービスコンシューマーが VPC ピア接続経由でサービスにアクセスできるようにする例については、Amazon VPC ユーザーガイド例: AWS PrivateLink と VPC ピアリングを使用するサービスを参照してください。

エンドポイントサービスのアベイラビリティーゾーンに関する考慮事項

エンドポイントサービスを作成する場合、サービスはアカウントにマッピングされたアベイラビリティーゾーンに作成され、他のアカウントからは独立したものになります。サービスプロバイダーとコンシューマーが別のアカウントにある場合、アベイラビリティーゾーン ID を使用してエンドポイントサービスのアベイラビリティーゾーンを一意に一貫して識別します。例えば、use1-az1 は、us-east-1 リージョンの AZ ID で、すべての AWS アカウントで同じ場所にマッピングされます。アベイラビリティーゾーン ID の詳細については、AWS RAM ユーザーガイドリソースの AZ ID を参照するか、describe-availability-zones を使用してください。

サービスプロバイダーとコンシューマーが異なるアカウントを持ち、複数のアベイラビリティーゾーンを使用する場合に、コンシューマーが VPC エンドポイントサービス情報を表示すると、レスポンスには共通のアベイラビリティーゾーンのみが含まれます。たとえば、サービスプロバイダーアカウントが us-east-1aus-east-1c を使用し、コンシューマーが us-east-1aus-east-1b を使用する場合、レスポンスには共通のアベイラビリティーゾーン us-east-1a にある VPC エンドポイントサービスが含まれます。

エンドポイントサービスの DNS 名

VPC エンドポイントサービスを作成すると、サービスとの通信に使用できるエンドポイント固有の DNS ホスト名が AWS によって生成されます。これらの名前には、VPC エンドポイント ID、アベイラビリティーゾーン名、およびリージョン名が含まれます。例えば、vpce-1234-abcdev-us-east-1.vpce-svc-123345.us-east-1.vpce.amazonaws.com です。デフォルトでは、コンシューマーはその DNS 名でサービスにアクセスし、通常はアプリケーション設定を変更する必要があります。

エンドポイントサービスが AWS サービス用の場合、または AWS Marketplace で利用可能なサービスの場合は、デフォルトの DNS 名があります。その他のサービスの場合、サービスプロバイダはプライベート DNS 名を設定して、ユーザーがアプリケーションを変更せずに既存の DNS 名を使用してサービスにアクセスできるようにします。詳細については、「」を参照してくださいエンドポイントサービスのプライベート DNS 名

サービスプロバイダは、IAM ポリシーステートメントで ec2: VpceServicePrivateDnsName 条件コンテキストキーを使用して、作成できるプライベート DNS 名を制御できます。詳細については、IAM ユーザーガイドの「Amazon EC2 で定義されるアクション」を参照してください。

プライベート DNS 名の要件

サービスプロバイダは、新しいエンドポイントサービスまたは既存のエンドポイントサービスのプライベート DNS 名を指定できます。プライベート DNS 名を使用するには、この機能を有効にしてからプライベート DNS 名を指定します。コンシューマーがプライベート DNS 名を使用できるようにするには、ドメイン/サブドメインの管理権があることを検証する必要があります。ドメインの所有権の検証は、Amazon VPC コンソールまたは API を使用して開始できます。ドメインの所有権の検証が完了すると、コンシューマーはプライベート DNS 名を使用してエンドポイントにアクセスします。

オンプレミスのデータセンターへ接続する

インターフェイスエンドポイントとオンプレミスのデータセンター間の接続には、次のタイプの接続を使用できます。

  • AWS Direct Connect

  • AWS Site-to-Site VPN

VPC ピア接続を介してサービスへアクセスする

VPC エンドポイントとの VPC ピア接続を使用すると、VPC ピア接続全体でコンシューマーにプライベートアクセスを許可できます。詳細については、Amazon VPC ユーザーガイド例: AWS PrivateLink と VPC ピアリングを使用するサービスを参照してください。

接続情報のプロキシプロトコルを使用する

Network Load Balancer は、ソース IP アドレスをアプリケーション (サービス) に提供します。サービスコンシューマーがインターフェイスエンドポイントを介してトラフィックをサービスに送信する場合、アプリケーションに提供されるソース IP アドレスは、サービスコンシューマーの IP アドレスではなく、Network Load Balancer ノードのプライベート IP アドレスです。

サービスコンシューマーの IP アドレスおよび対応するインターフェイスエンドポイント ID が必要な場合は、ロードバランサーでプロキシプロトコルを有効化し、プロキシプロトコルヘッダーからクライアント IP アドレスを取得します。詳細については、Network Load Balancer ユーザーガイドの「Proxy Protocol」を参照してください。

ルールと制限

エンドポイントサービスを使用するには、現在のルールおよび制限に注意する必要があります。

  • エンドポイントサービスは、TCP 経由の IPv4 トラフィックのみをサポートします。

  • サービスコンシューマーは、エンドポイント固有の DNS ホスト名を使用して、エンドポイントサービスまたはプライベート DNS 名にアクセスできます。

  • エンドポイントサービスが複数の Network Load Balancer に関連付けられている場合、特定のアベイラビリティーゾーンでは、インターフェイスエンドポイントは 1 つのロードバランサーとのみ接続を確立します。

  • エンドポイントサービスでは、関連付けられたネットワークロードバランサーは一意の各ターゲット (IP アドレスとポート) に対して 55,000 の同時接続または 1 分あたり約 55,000 の接続をサポートできます。これらの接続数を超えた場合、ポート割り当てエラーが発生する可能性が高くなります。ポート割り当てエラーを修正するには、ターゲットグループにさらに多くのターゲットを追加します。Network Load Balancer のターゲットグループの詳細については、Network Load Balancer のユーザーガイドの「Network Load Balancer のターゲットグループ」および「ターゲットグループへのターゲットの登録」を参照してください。

  • アカウントのアベイラビリティーゾーンは、別のアカウントのアベイラビリティーゾーンと同じ場所にマッピングされない可能性があります。たとえば、あるアカウントのアベイラビリティーゾーン us-east-1a は別のアカウントのアベイラビリティーゾーン us-east-1a と同じ場所にはない可能性があります。詳細については、「リージョンとゾーン」を参照してください。エンドポイントサービスを設定すると、アカウントにマッピングされるようにアベイラビリティーゾーンで設定されます。

  • エンドポイントサービスは、そのサービスを作成したリージョンでのみ使用できます。

  • エンドポイントサービスのサービス固有の制限を確認します。

  • エンドポイントサービスのセキュリティのベストプラクティスと例を確認します。詳細については、「ポリシーのベストプラクティス」と「VPC エンドポイントでサービスへのアクセスを制御する」を参照してください。