AWS PrivateLink を通じてサービスを共有する
エンドポイントサービスと呼ばれる独自の AWS PrivateLink を利用するサービスをホストし、それを他の AWS のお客様と共有できます。
内容
概要
次の図は、AWS でホストされているサービスを他の AWS お客様と共有する方法と、それらのお客様がサービスに接続する方法を示しています。サービスプロバイダーとして、サービスのフロントエンドとして VPC で Network Load Balancer を作成します。その後、VPC エンドポイントサービスの設定を作成するときに、このロードバランサーを選択します。特定の AWS プリンシパルにアクセス許可を付与して、サービスに接続できるようにします。サービスコンシューマーとして、お客様はインターフェイス VPC エンドポイントを作成します。これにより、VPC から選択したサブネットとエンドポイントサービス間の接続が確立されます。ロードバランサーは、サービスコンシューマーからリクエストを受け取ってサービスをホスティングしているターゲットにルーティングします。
低レイテンシーと高可用性を得るために、少なくとも 2 つのアベイラビリティーゾーンでサービスを使用可能にすることをお勧めします。
DNS ホスト名
サービスプロバイダーが VPC エンドポイントサービスを作成すると、AWS はサービスのためにエンドポイント固有の DNS ホスト名を生成します。これらの名前の構文は次のとおりです。
endpoint_service_id
.region
.vpce.amazonaws.com
us-east-2 リージョンの VPC エンドポイントサービスの DNS ホスト名の例を次に示します。
vpce-svc-071afff70666e61e0.us-east-2.vpce.amazonaws.com
サービスコンシューマーがインターフェイス VPC エンドポイントを作成すると、サービスコンシューマーがエンドポイントサービスと通信するために使用できるリージョンレベルおよびゾーンレベルの DNS 名が作成されます。リージョンレベルの名前の構文は次のとおりです。
endpoint_id
.endpoint_service_id
.region
.vpce.amazonaws.com
ゾーンレベルの名前の構文は次のとおりです。
endpoint_id
-zone
.endpoint_service_id
.region
.vpce.amazonaws.com
プライベート DNS
サービスプロバイダーは、エンドポイントサービスにプライベート DNS 名を関連付けることもできます。これにより、サービスコンシューマーは既存の DNS 名を使用して引き続きサービスにアクセスできます。サービスプロバイダーがプライベート DNS 名をエンドポイントサービスに関連付けた場合、サービスコンシューマーはインターフェイスエンドポイントのプライベート DNS 名を有効にできます。サービスプロバイダーがプライベート DNS を有効にしていない場合、サービスコンシューマーは VPC エンドポイントサービス用にパブリック DNS 名を使用するようにアプリケーションを更新する必要がある場合があります。詳細については、「DNS 名を管理する」を参照してください。
IP アドレスのタイプ
サービスプロバイダーは、バックエンドサーバーが IPv4 のみをサポートしている場合でも、IPv4、IPv6、または IPv4 と IPv6 の両方を介してサービスエンドポイントをサービスコンシューマーが使用できるようにすることができます。dualstack サポートを有効にすると、既存のコンシューマーは引き続き IPv4 を使用してサービスにアクセスでき、新しいコンシューマーは IPv6 を使用してサービスにアクセスできます。
インターフェイス VPC エンドポイントが IPv4 をサポートしている場合、エンドポイントのネットワークインターフェイスは IPv4 アドレスを持ちます。インターフェイス VPC エンドポイントが IPv6 をサポートしている場合、エンドポイントのネットワークインターフェイスは IPv6 アドレスを持ちます。エンドポイントのネットワークインターフェイスの IPv6 アドレスに、インターネットからアクセスすることはできません。エンドポイントのネットワークインターフェイスを IPv6 アドレスで記述する場合は、denyAllIgwTraffic
が有効になっていることに注意してください。
エンドポイントサービス用に IPv6 を有効にするための要件
-
エンドポイントサービスの VPC とサブネットには、IPv6 CIDR ブロックが関連付けられている必要があります。
-
エンドポイントサービスのすべての Network Load Balancers は、dualstack IP アドレスのタイプを使用する必要があります。ターゲットは IPv6 トラフィックをサポートする必要はありません。サービスがプロキシプロトコルバージョン 2 ヘッダーのソース IP アドレスを処理する場合、IPv6 アドレスを処理する必要があります。
インターフェイスエンドポイント用に IPv6 を有効にするための要件
-
エンドポイントサービスは IPv6 リクエストをサポートする必要があります。
-
インターフェイスエンドポイントの IP アドレスのタイプは、次に説明するように、インターフェイスエンドポイントのサブネットと互換性がある必要があります。
-
[IPv4] — IPv4 アドレスをエンドポイントのネットワークインターフェイスに割り当てます。このオプションは、選択したすべてのサブネットに IPv4 アドレス範囲がある場合にのみサポートされます。
-
[IPv6] — IPv6 アドレスをエンドポイントのネットワークインターフェイスに割り当てます。このオプションは、選択したすべてのサブネットが IPv6 のみのサブネットである場合にのみサポートされます。
-
[Dualstack] — IPv4 と IPv6 の両方のアドレスをエンドポイントのネットワークインターフェイスに割り当てます。このオプションは、選択したすべてのサブネットに IPv4 と IPv6 の両方のアドレス範囲がある場合にのみサポートされます。
-
インターフェイスエンドポイントの DNS レコード IP アドレスのタイプ
インターフェイスエンドポイントがサポートする DNS レコードの IP アドレスのタイプによって、作成する DNS レコードが決まります。インターフェイスエンドポイントの DNS レコードの IP アドレスのタイプは、次に説明するように、インターフェイスエンドポイントの IP アドレスのタイプと互換性がある必要があります。
-
[IPv4] — プライベート、リージョンレベル、ゾーンレベルの DNS 名の A レコードを作成します。IP アドレスのタイプは [IPv4] または [Dualstack] である必要があります。
-
[IPv6] — プライベート、リージョンレベル、ゾーンレベルの DNS 名の AAAA レコードを作成します。IP アドレスのタイプは [IPv6] または [Dualstack] である必要があります。
-
[Dualstack] — プライベート、リージョンレベル、ゾーンレベルの DNS 名の A および AAAA レコードを作成します。IP アドレスのタイプは [Dualstack] である必要があります。