導入
プライベートサブネットのEC2からS3やDynamoDBにアクセスしたいだけなのに、わざわざNATゲートウェイ経由でインターネットを通す必要があるのでしょうか。答えは「不要」で、その答えが VPCエンドポイント です。
説明
VPCエンドポイント は、VPC内からAWSサービスへ、インターネットやNATゲートウェイを経由せずプライベートに接続する仕組みです。2種類あります。
| 種別 | 対象サービス | 仕組み | 課金 |
|---|---|---|---|
| Gateway型 | S3、DynamoDBのみ | ルートテーブルにエンドポイント宛のルートを追加 | 無料 |
| Interface型(PrivateLink) | 上記以外の大半のAWSサービス・一部SaaS | サブネットにENI(プライベートIP)を作成 | 時間課金+データ処理料 |
flowchart LR
subgraph VPC["VPC (プライベートサブネット)"]
EC2["EC2"]
end
EC2 -->|"Gatewayエンドポイント<br/>(ルートテーブル経由)"| S3["Amazon S3"]
EC2 -->|"Interfaceエンドポイント<br/>(PrivateLink・ENI経由)"| Other["その他AWSサービス<br/>(SNS/SQS/KMS等)"]
VPCエンドポイントを使うメリットは2つです。
- セキュリティの向上:通信がAWSネットワーク内で完結し、インターネットに一切晒されない
- コストの削減:NATゲートウェイのデータ処理料金がかからない(Gateway型は無料)
読んでみよう
「プライベートサブネットからS3にアクセスしたいが、NATゲートウェイのコストを削減したい/インターネットを経由させたくない」という設問は、ほぼ確実にS3向けGatewayエンドポイントが正解です。「S3/DynamoDBはGateway型、それ以外はInterface型(PrivateLink)」という対応をそのまま覚えてください。