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

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

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

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


実はVPCエンドポイントには3つタイプがあり、タイプによって繋げられる場所に違いがあります。

ゲートウェイ型とインターフェイス型とGateway Load Balancer型の3つのタイプがあります。

どこからつながるか、表にまとめました。インターフェイス型はここに書いているところ以外にも様々なところから繋がります。

どこからつながるか?ゲートウェイ型インターフェイス型ゲートウェイロードバランサー型
エンドポイントを作成したVPC
エンドポイントを作成したVPCとピアリングしているVPC
エンドポイントを作成したVPCとDirect Connectで接続しているオンプレ拠点
エンドポイントを作成したVPCとTransit Gatewayを介して接続している拠点
VPCエンドポイントにはどこからつながるか?タイプ別表

ゲートウェイ型

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

NATゲートウェイを知っている方であれば、NATゲートウェイの先がS3やDynamoDBになっている版、といえば伝わるでしょうか?

S3やDynamoDBにつながるルーターができて、S3やDynamoDB宛のトラフィックはそのルータに流すようにするイメージです。

DynamoDBの場合の接続イメージ図をかいてみました。

VPCエンドポイントを作成したVPCからはDynamoDBに接続することができます。

VPCエンドポイントを作成したVPCとピアリングをしているVPCからはこのVPCエンドポイントを使ってDynamoDBに接続することはできません。VPCはTransit Gatewayを使わないかぎりトランジットを許可していないからです。

また、ゲートウェイ型の場合ルートテーブルにルートを追加する必要がある。
といっても、ルートテーブルへのルート追加はエンドポイント作成時に自動で行ってくれる。

下記図はS3のルートが追加された例。
pl-61a54008というS3のプレフィックスリストに記載されているIP宛の通信はゲートウェイ型のVPCエンドポイント経由となる。

プレフィックスリストについてはこちらの記事を。

こういった具合手にルートテーブルが必要。pl-61a54008はs3のプレフィックスリスト

ゲートウェイ型のメリット

  • ゲートウェイ型のVPCエンドポイント自体の料金が無料(通信料金は別途かかる)
    • インターフェイス型はAZ毎に約10ドル/月かかる
  • アプリケーションへの改修が不要
    • ネットワークレイヤでS3やDynamoDBへの経路が変わるだけなので、アプリケーション側で接続先FQDNなどを変更する必要がない

ゲートウェイ型のデメリット

  • VPCエンドポイントを作成したVPCからしか接続できない
  • S3やDynamoDBのグローバルIPへの通信がVPCエンドポイントの経路を通って通信されることになるので気持ち悪さが残る(プライベート感がない)
    • 何らかの制約によってグローバルIP向けのパケットが許可されない場合は使えない


インターフェイス型

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

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

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

インターフェイス型VPCエンドポイントへの接続イメージ

これはインターフェイス型のVPCエンドポイントがPrivateLinkを活用していて、AWSサービスから指定のサブネットにENIを出すからです。ENIには当然プライベートIPを割り当てることができ、そのサブネットのEC2と通信するのと同じようにKinesisなどのAWSサービスと通信することができます。

つまりVPCエンドポイントを作成したサブネットに通信できるところからであれば、インターフェイス型のVPCエンドポイントに対しても通信可能です。

VPCエンドポイントを作るとプライベートIPが払い出されます。VPCエンドポイントを作成したVPCからそのサービスのデフォルトDNS(kinesis.ap-northeast-1.amazonaws.comなど)を名前解決するとそのプライベートIPアドレスが返されるようになります。またエンドポイント固有のDNSも発行され、こちらはパブリックで名前解決可能でそのプライベートIPが返されます。

また、インターフェイス型のVPCエンドポイントで払い出されたプライベートIPは固定です。エンドポイントが削除されるまでIPアドレスが変わることはありません。

インターフェイス型のメリット

  • VPCエンドポイントを作成したエンドポイント以外にも様々なところから接続可能
  • VPCエンドポイントに対応する固定プライベートIPが払い出されるので扱いやすい
  • 同じVPC内の複数サブネットにエンドポイント(ENI)を作ることができ、AZ冗長が組める

インターフェイス型のデメリット

  • VPCエンドポイントを作ったサブネット毎に約10ドル/月かかる(別途通信料金もかかる)


Gateway Load Balancer型

Gateway Load Balancer エンドポイントは、トラフィックをインターセプトし、セキュリティ検査などのために Gateway Load Balancer を使用して設定したサービスにルーティングすることを可能にします。

Gateway Load Balancer を使用して、ネットワーク仮想アプライアンスのフリートにトラフィックを分散できます。アプライアンスは、セキュリティ検査、コンプライアンス、ポリシー制御、およびその他のネットワークサービスに使用できます。

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

少し作り方は他とことなるのですが、VPCエンドポイントとしてはインターフェイス型と同じくPrivateLinkを使っているのでどこからつながるかと言われるとインターフェイス型と同じとなります。

まとめ

表を再掲しますが、PrivateLinkを使っているインターフェイス型とゲートウェイロードバランサー型は様々なところから繋がります。

どこからつながるか?ゲートウェイ型インターフェイス型ゲートウェイロードバランサー型
エンドポイントを作成したVPC
エンドポイントを作成したVPCとピアリングしているVPC
エンドポイントを作成したVPCとDirect Connectで接続しているオンプレ拠点
エンドポイントを作成したVPCとTransit Gatewayを介して接続している拠点
VPCエンドポイントにはどこからつながるか?タイプ別表

本で体系的に学ぶ場合はこちら

VPCエンドポイント関連の他の記事も書いているのでよかったらどうぞ。

コメントする

メールアドレスが公開されることはありません。