VPCエンドポイントとNAT Gatewayの使い分けを整理する
プライベートサブネットから外部やAWSサービスへ接続する際に、NAT Gatewayを経由する方法とVPCエンドポイントを使う方法の違いを整理する
今日やったこと
- NAT GatewayとVPCエンドポイントの役割を整理した
- NAT Gatewayは、外部サービスを含む汎用的な外向き通信に利用できることを確認した
- VPCエンドポイントを使うと、Internet GatewayやNAT Gatewayを経由せずに対応サービスへ接続できることを確認した
- Gateway型とInterface型のVPCエンドポイントの違いを整理した
学んだこと
NAT Gatewayを使う場合
NAT Gatewayは、プライベートサブネット内のリソースからVPC外部へ接続するために利用する。
- OSやパッケージの更新
- 外部APIへのアクセス
- VPCエンドポイントを用意していないAWSサービスへのアクセス
通信経路は次のようになる。
プライベートEC2
↓
NAT Gateway
↓
Internet Gateway
↓
外部サービスやAWSサービスのパブリックエンドポイント
NAT Gatewayは幅広い宛先へ接続できる一方、利用時間と処理したデータ量に応じて料金が発生する。
VPCエンドポイントを使う場合
VPCエンドポイントは、VPC内のリソースから対応サービスへプライベートに接続する仕組み。
Internet GatewayやNAT Gatewayを経由せず、プライベートIPのまま通信できる。
flowchart LR
EC2[プライベートサブネットのEC2]
subgraph NAT経由
NAT[NAT Gateway]
IGW[Internet Gateway]
External[外部サービス]
EC2 --> NAT --> IGW --> External
end
subgraph VPCエンドポイント経由
Endpoint[VPCエンドポイント]
AWSService[対応するAWSサービス]
EC2 --> Endpoint --> AWSService
end
VPCエンドポイントは対応するサービスにだけ接続するため、外部Webサイトや任意のAPIへの汎用的な接続には利用できない。
Gateway型VPCエンドポイント
Gateway型は、主に次のサービスへ接続するために使用する。
- Amazon S3
- Amazon DynamoDB
対象サービスへの通信をVPCエンドポイントへ送るルートが、関連付けたルートテーブルに追加される。
プライベートEC2
↓
Gateway型VPCエンドポイント
↓
S3またはDynamoDB
Gateway型には追加料金がかからない。
プライベートサブネットからS3やDynamoDBへアクセスするだけなら、NAT GatewayではなくGateway型VPCエンドポイントを使う構成が有力になる。
Interface型VPCエンドポイント
Interface型はAWS PrivateLinkを利用し、多くのAWSサービスなどへプライベートに接続する。
指定したサブネットに、プライベートIPを持つENIが作成される。
プライベートEC2
↓
VPC内に作成されたENI
↓
対応するAWSサービス
Interface型では、エンドポイントへセキュリティグループを設定できる。
一方で、エンドポイントの利用時間と処理したデータ量に応じた料金が発生する。
違いを整理する
| 項目 | NAT Gateway | Gateway型エンドポイント | Interface型エンドポイント |
|---|---|---|---|
| 接続先 | 外部を含む幅広い宛先 | S3、DynamoDB | PrivateLink対応サービス |
| Internet Gateway | 外部接続時に必要 | 不要 | 不要 |
| NAT Gateway | 自身を利用 | 不要 | 不要 |
| 主な仕組み | 送信元アドレス変換 | ルートテーブル | ENIとプライベートIP |
| 料金 | 時間・データ処理料金 | 追加料金なし | 時間・データ処理料金 |
| セキュリティグループ | 設定しない | 設定しない | ENIに設定する |
使い分け
外部APIやパッケージリポジトリへ接続したい
→ NAT Gateway
S3やDynamoDBへプライベートに接続したい
→ Gateway型VPCエンドポイント
PrivateLink対応サービスへプライベートに接続したい
→ Interface型VPCエンドポイント
NAT GatewayとVPCエンドポイントは、どちらか一方だけを選ぶものではない。
AWSサービスへの通信:
VPCエンドポイント
それ以外の外向き通信:
NAT Gateway
のように、同じVPC内で併用できる。
SAAでは、セキュリティの向上やNAT Gatewayの通信量削減が求められる場合、VPCエンドポイントが選択肢になりそう。
次にやること
- Gateway型とInterface型VPCエンドポイントの違いを詳しく整理する
- VPCエンドポイントポリシーの役割を整理する
- NAT GatewayをAvailability Zoneごとに配置する理由を整理する
- S3への通信でGateway型VPCエンドポイントを使う構成を整理する