VPCエンドポイントはどこから通信できる?

今回はVPCエンドポイントでつなげたサービスにどこからまで接続することができるか確認します。

なお、VPCエンドポイント自体については以下の公式ドキュメントを確認していただければと思います。

https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/vpc-endpoints.html

VPCエンドポイントには3つタイプがあります。

ゲートウェイ型とインターフェイス型とGateway Load Balancerです。

ゲートウェイ型

ゲートウェイ型は昔からあるもので、S3とDynamoDBにプライベートIPで接続したい声が多かった為用意されたものだと認識しています。

こちらはざっくりいうとS3とDynamoDBにだけ接続可能なNATゲートウェイができる、といった挙動になっています。なのでプライベートIPを使って接続はできますが、インターフェイス型にくらべて柔軟性はありません。

今回はこちらについてはこのくらいで。

Gateway Load Balancer型

こちらについてはあまり把握していないので後日勉強して加筆します。

https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/vpce-gateway-load-balancer.html

インターフェイス型

インターフェイス型はゲートウェイ型よりも新しく、VPCエンドポイントといえばこちらのほうが主流です。

https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/vpce-interface.html#vpce-private-dns

50以上のAWSサービスがこのインターフェイス型のVPCエンドポイントをサポートしています。

またサードパーティのAWS上で提供されているサービスを使う際にも利用されます。

PrivateLinkを活用していて、ざっくりいうとAWSのサービス(たとえばSES等)にVPCエンドポイントを作成したサブネットのENIをもたせるイメージです。そのENIにはサブネットからプライベートIPを持つことができます。

なので、そのサブネットの他のインスタンスに接続できるところからであればVPCエンドポイントにも同様に接続可能です。

VPCピアリング先、Direct Connectで接続しているオンプレ拠点、Transit Gatewayで接続している拠点…様々なところから到達可能です。

実際使う際には名前解決も考慮に入れる必要があります。基本的にエンドポイント固有のプライベートDNSを使うと思いますが、エンドポイントがあるVPC内からしか名前解決できません。

なのでRoute53 ResolverのInboundEndpointを使用するか、面倒ですが利用サーバ等のhostsやDNSサーバに登録する必要があります。


			インターフェイスエンドポイントを使用して AWS サービスにアクセスする
公式ドキュメントから抜粋。VPCエンドポイントの基本的なアーキテクチャ

					インターフェイスエンドポイントを使用して Kinesis にアクセスする
公式ドキュメントから抜粋3

                インターフェイスエンドポイントを使用してエンドポイントサービスにアクセスする
公式ドキュメントから抜2