ネット上には「VPCエンドポイント vs NAT Gateway」に関する記事が多数存在しています。「NAT Gatewayは古い技術、VPCエンドポイントは新しい技術で安全性が高い」といった意見も見受けられます。
本記事では、eコマースプラットフォームを想定した具体的な構成例をもとに、コスト・セキュリティ・運用の観点から両者を徹底比較します。
1. アプリケーション概要
今回想定するのは、以下のような機能を持つ大規模eコマースプラットフォームです。
- 商品カタログ:S3(画像)
- 商品情報: DynamoDB
- ログ管理・分析:CloudWatch
- システム監視・メンテナンス:Systems Manager
- 注文処理:SQS
- プッシュ通知:SNS
- ユーザー認証・管理:Secrets Manager
2. VPCエンドポイント方式
概要
- Private SubnetのEC2 → VPCエンドポイント(Gateway型/Interface型) → AWSサービス
- S3/DynamoDBはGateway型(無料)
- その他はInterface型(有料)
- 通信は完全にAWS内部ネットワークで完結、パブリックIP不要
必要なVPCエンドポイント数(例)
- S3(Gateway):1
- DynamoDB(Gateway):1
- CloudWatch(logs, monitoring):2
- Systems Manager(ssm, ssmmessages, ec2messages):3
- SQS:1
- SNS:1
- Secrets Manager:1
- 合計:10個(うち2つはGateway型)
コスト(東京リージョン例)
- Interfaceエンドポイント:8 × $0.014/時 × 730時間 ≒ $81.76/月
- データ処理料金:$0.01/GB
- Gateway型(S3/DynamoDB):無料
メリット
- 通信がAWS内部で完結し、セキュリティが高い
- IAMリソースポリシーやエンドポイントポリシーで細かなアクセス制御が可能
- セキュリティグループ適用可(Interface型)
デメリット
- サービスごとにエンドポイントを作成する必要があり、数が増えるとコスト増
- PrivateLink未対応サービスには利用不可
3. NAT Gateway方式
概要
- Private SubnetのEC2 → NAT Gateway(パブリックサブネット/EIP付き) → AWSサービスのパブリックエンドポイント
- NAT GatewayはElastic IP(EIP)が必須
- 通信はAWSグローバルネットワーク内で完結(インターネット経由ではないが、NAT GatewayのパブリックIPを利用)
コスト(東京リージョン例)
- 利用料金:$0.062/時 × 730時間 ≒ $45.26/月
- データ処理料金:$0.062/GB
- EIP料金:通常はNAT Gatewayに割り当てている間は無料
メリット
- 初期構築がシンプル
- どんなAWSサービスや外部SaaSにもアクセス可能
デメリット
- データ転送量が増えるとコスト高
- セキュリティグループやNACLによる制御のみ
- IAMやリソースポリシーによる細粒度制御不可
コスト比較まとめ
方式 | 時間料金/月 | データ転送料金 | 主な特徴 |
---|---|---|---|
NAT Gateway | $45.26 | $0.062/GB | 初期費用安、転送量多で高額化 |
VPCエンドポイント | $81.76 | $0.01/GB | セキュリティ高、細粒度制御可 |
4. セキュリティ比較
NAT Gateway
- パブリックIP(EIP)経由だが、通信はAWS内部ネットワークで完結
- IAMやエンドポイントポリシーによる細粒度制御不可
- セキュリティグループ/NACLでの制御のみ
VPCエンドポイント
- パブリックIP不要、完全プライベート通信
- IAMポリシーやエンドポイントポリシーでサービス単位のアクセス制御
- 監査証跡やゼロトラスト設計にも有利
5. どちらを選ぶべきか?
選択基準の例:
- コスト優先・小規模・外部SaaS利用あり:NAT Gateway
- セキュリティ重視・監査要件・大規模/高トラフィック:VPCエンドポイント
- 段階的移行:初期はNAT Gateway、成長に合わせてVPCエンドポイントへ
6. まとめ
NAT GatewayもVPCエンドポイントも、AWS内部ネットワークでセキュアに通信できますが、「どちらが最適か」はユースケース・セキュリティ要件・コスト見積もりによって変わります。
セキュリティや運用要件が厳しい場合はVPCエンドポイント、柔軟性やコスト重視ならNAT Gatewayという使い分けが現実的です。
2 つのインスタンスがパブリック IP アドレスを使用して通信する場合、またはインスタンスがパブリックな AWS のサービスエンドポイントと通信する場合、トラフィックはインターネットを経由しますか?
→いいえ。パブリック IP アドレスを使用する場合、AWS でホストされているインスタンスとサービス間のすべての通信は AWS のプライベートネットワークを使用します。AWS ネットワークから発信され、AWS ネットワーク上の送信先を持つパケットは、AWS 中国リージョンとの間のトラフィックを除いて、AWS グローバルネットワークにとどまります。
さらに、データセンターとリージョンを相互接続する AWS グローバルネットワークを流れるすべてのデータは、安全性が保証された施設を離れる前に、物理レイヤーで自動的に暗号化されます。すべての VPC クロスリージョンピアリングトラフィックや、カスタマーまたはサービス間のトランスポート層セキュリティ (TLS) 接続などといった追加の暗号化レイヤーもあります。