前の記事では、 Security GroupとNetwork ACL(NACL)を使って VPC内の通信を制御する仕組みを学びました。
ここまでで、 VPC内のネットワークを構成するための 重要な要素がかなり見えてきました。
では、プライベートサブネットにあるEC2から Amazon S3などのAWSサービスへアクセスするとき、 必ずNAT Gatewayやインターネットゲートウェイを 経由する必要があるのでしょうか。
インターネットを経由せずに接続できない?
そこで登場するのが、 VPC Endpoint(VPCエンドポイント)です。
VPC Endpointの役割を理解し、 Gateway型とInterface型の違いを 説明できるようになることを目指します。
VPC Endpointとは?
VPC Endpointは、 VPCから対応するAWSサービスやリソースなどへ プライベートに接続するための仕組みです。
たとえば、 プライベートサブネットにあるEC2から Amazon S3へアクセスする場合を考えてみましょう。
VPC Endpointを利用すると、 このようなNAT GatewayやIGWを利用する経路とは別に、 AWSサービスへプライベートにアクセスする経路を構成できます。
まずはGateway型とInterface型を覚えよう
VPC Endpointには複数のタイプがありますが、 AWSのネットワークを学ぶうえで特に重要なのが 次の2つです。
主にS3・DynamoDBへの プライベートアクセス
AWS PrivateLinkを利用して 対応サービスへ接続
Gateway Endpointとは?
Gateway Endpointは、 Amazon S3やAmazon DynamoDBへ プライベートにアクセスするために利用できます。
Gateway Endpointでは、 ルートテーブルが重要な役割を持ちます。
Gateway Endpointを作成して 対象のルートテーブルを関連付けると、 AWSサービスのプレフィックスリストを宛先とした エンドポイントへのルートが追加されます。
ここでの pl-xxxxxxxxは、 S3などのAWSサービスが使用するIPアドレス範囲を表す AWS管理のプレフィックスリストです。
Gateway型ではS3とDynamoDBを覚える
AWS学習では、 Gateway Endpointと対応サービスの組み合わせが重要です。
= S3 / DynamoDB
また、Gateway Endpointには 追加料金がありません。
Interface Endpointとは?
Interface Endpointは、 AWS PrivateLinkを利用して、 対応するAWSサービスなどへ プライベートに接続する仕組みです。
Gateway型とは異なり、 Interface Endpointを作成すると、 選択したサブネットに ENI(Elastic Network Interface) が作成されます。
このENIには、 サブネットのIPアドレス範囲から プライベートIPアドレスが割り当てられます。
EC2などのリソースは、 このプライベートIPを持つENIを通して 対応サービスへアクセスします。
なぜInterface型ではENIが作られる?
Interface Endpointを理解するときは、 「VPC内にサービスへの入口を作る」 と考えると分かりやすいでしょう。
VPC内にプライベートIPを持つ ネットワークインターフェイスが作られるため、 VPC内のリソースから見ると、 プライベートな接続先として利用できます。
Interface EndpointにはSecurity Groupを設定できる
Interface EndpointのENIには、 Security Groupを関連付けます。
たとえばHTTPSを利用して AWSサービスへアクセスする場合、 EC2側からInterface EndpointのENIへ TCP/443の通信が許可されるように設定します。
前の記事で学んだSecurity Groupが、 ここでも登場するわけです。
Private DNSとは?
Interface Endpointでは、 Private DNSも重要なポイントです。
通常、AWSサービスへアクセスするときは、 サービスのDNS名を利用します。
Private DNSを有効にすると、 対応サービスの通常のDNS名を利用しながら、 Interface Endpointの プライベートIPへ名前解決できるようになります。
Gateway型とInterface型の違い
ここまでの違いを一覧で整理してみましょう。
図で覚えるGateway型とInterface型
VPC EndpointとNAT Gatewayの違い
VPC Endpointを学ぶと、 NAT Gatewayとの違いが分かりにくくなることがあります。
プライベートサブネットから インターネットなどへ アウトバウンド通信する
対応するAWSサービスなどへ プライベートに接続する
たとえば、 プライベートサブネットのEC2が Amazon S3だけにアクセスするのであれば、 S3用のGateway Endpointを利用することで、 S3通信のためにNAT Gatewayを経由する必要はありません。
Endpoint Policyでアクセス先を制御できる
VPC Endpointでは、 Endpoint Policyを利用して エンドポイント経由で利用できるAWSサービスの操作や リソースなどを制御できます。
たとえば、 VPC Endpointを経由して 特定のS3バケットだけにアクセスさせる、 といったアクセス制御を設計できます。
Endpoint Policyだけですべての権限が決まるわけではありません。 IAMポリシーやS3バケットポリシーなどと組み合わせて 最終的なアクセス可否が決まります。
あなたならどちらを選ぶ?
次の構成を考えてみましょう。
Amazon S3へアクセスしたい
NAT GatewayやIGWを経由せず、 できるだけシンプルに接続したい。
S3とGateway Endpointの関係を思い出してみましょう。
Gateway Endpointの通信経路を追ってみよう
EC2からAmazon S3へアクセスする場合を 順番に追ってみます。
S3へ通信
宛先を確認
S3経路を選択
通信が到達
この通信では、 S3宛ての通信がGateway Endpointへルーティングされるため、 NAT GatewayやIGWを利用する必要がありません。
確認問題:VPC Endpoint
Gateway Endpointの代表的な接続先はどれですか?
Gateway Endpointでは、 Amazon S3とAmazon DynamoDBを 重要な組み合わせとして覚えておきましょう。
Interface Endpointの特徴として正しいものはどれですか?
Interface EndpointはAWS PrivateLinkを利用し、 選択したサブネットに プライベートIPを持つENIが作成されます。
Gateway Endpointの通信経路で重要なものはどれですか?
Gateway Endpointでは、 対象サービスへの経路が ルートテーブルに追加されます。
3問に挑戦してみましょう。
まとめ
VPC Endpointを利用すると、 対応するAWSサービスなどへ プライベートに接続できる
Gateway Endpointでは S3・DynamoDBを覚える
Gateway型では ルートテーブルが重要
Interface Endpointでは AWS PrivateLinkを利用する
Interface型では プライベートIPを持つENIが作成される
Gateway Endpointは 追加料金なし、 Interface Endpointは料金が発生する
Endpoint Policyによって エンドポイント経由のアクセスを制御できる
次はAWSの代表的なサーバー「EC2」へ
ここまでのAWS中級講座では、 VPCを中心としたネットワークについて学んできました。
ここからは、 このVPC内に配置する代表的なAWSリソースについて 学んでいきます。
まず理解しておきたいのが、 AWSの代表的な仮想サーバーサービスである Amazon EC2です。
Amazon EC2の基本を理解する
VPC内のネットワークを理解したら、 次はそのネットワーク上で動作する AWSの代表的なコンピューティングサービスを学びましょう。
次の記事では、 Amazon EC2の基本を 初心者向けに整理していきます。
Amazon EC2の基本を理解する →
