architecture
A
信頼度ランク
| S | 公式ソース確認済み |
| A | 成功実績多数・失敗例少数 |
| B | 賛否両論 |
| C | 動作未確認・セキュリティリスク高 |
| Z | 個人所感 |
NATゲートウェイ vs NATインスタンス — 可用性・スループット・コスト比較
プライベートサブネットのアウトバウンド通信を実現するNATゲートウェイとNATインスタンスの比較、NATゲートウェイのAZ冗長設計、帯域幅スケーリング、コスト計算を解説。
一言結論
NATゲートウェイはAZをまたいだ冗長性がないため高可用性には各AZに1つずつ配置が必要で、AWSサービスへのトラフィックはVPCエンドポイントに切り替えることがNATコスト削減の最も効果的な手段だ。
NATの役割
プライベートサブネットのEC2インスタンスはインターネットに直接アクセスできない。インターネットへのアウトバウンドアクセス(ソフトウェアアップデート、外部API呼び出し等)にNATが必要だ。
プライベートサブネット → NATゲートウェイ(パブリックサブネット)→ インターネット
NATゲートウェイはEIPを持つ → インターネット側から見ると固定IPでアクセスできる
インターネットからNATゲートウェイへの新規接続は不可(アウトバウンドのみ)
NATゲートウェイ vs NATインスタンスの比較
| 特徴 | NATゲートウェイ | NATインスタンス |
|---|---|---|
| 管理 | マネージド(AWSが管理) | 自己管理(EC2インスタンス) |
| 可用性 | 高可用性(AZ内で冗長) | 単一インスタンス(SPOF) |
| スループット | 最大100Gbps(自動スケール) | インスタンスタイプに依存 |
| セキュリティグループ | 設定不可 | 設定可能 |
| バスティオンホスト | 不可 | 可(SSH踏み台として使える) |
| ポートフォワーディング | 不可 | 可 |
| コスト | $0.062/時間 + $0.062/GB | EC2インスタンス料金 |
| ベストプラクティス | 推奨 | レガシー(非推奨) |
NATゲートウェイの高可用性設計
NATゲートウェイはAZ内でのみ冗長だ。AZ障害が発生するとそのAZのNATゲートウェイは使えなくなる。
❌ 単一AZ構成(SPoF):
プライベートサブネット(AZ-a) ─┐
プライベートサブネット(AZ-c) ─┤→ NATゲートウェイ(AZ-a) → インターネット
プライベートサブネット(AZ-d) ─┘
AZ-aが障害時:全AZからのアウトバウンドが停止
✅ マルチAZ構成(推奨):
プライベートサブネット(AZ-a) → NATゲートウェイ(AZ-a) → インターネット
プライベートサブネット(AZ-c) → NATゲートウェイ(AZ-c) → インターネット
プライベートサブネット(AZ-d) → NATゲートウェイ(AZ-d) → インターネット
各AZに1つのNATゲートウェイを配置し、そのAZのプライベートサブネットのルートテーブルを同じAZのNATゲートウェイに向ける。
# AZ-a用ルートテーブルの設定
aws ec2 create-route \
--route-table-id rtb-private-az-a \
--destination-cidr-block 0.0.0.0/0 \
--nat-gateway-id nat-az-a
# AZ-c用ルートテーブルの設定
aws ec2 create-route \
--route-table-id rtb-private-az-c \
--destination-cidr-block 0.0.0.0/0 \
--nat-gateway-id nat-az-c
コスト計算
NATゲートウェイ(東京リージョン):
時間料金: $0.062/時間 × 3 AZ × 730時間 = $135.78/月
データ処理: $0.062/GB × 転送量
例: 月300GBの外部通信がある場合
固定料金: $135.78
データ料金: 300GB × $0.062 = $18.6
合計: 約$154/月(3AZ構成)
NATインスタンス(t3.small):
インスタンス料金: $0.0272/時間 × 3 = $0.0816/時間
合計: $59.6/月 + データ転送料金
NAT Gateway vs VPCエンドポイントの選択
S3やDynamoDBへのアクセスであればVPCエンドポイント(Gatewayタイプ、無料)が最適だ。
NAT GatewayのコストをAWS側サービスへのトラフィックで削減するには:
1. S3 → Gatewayエンドポイント(無料)
2. DynamoDB → Gatewayエンドポイント(無料)
3. Systems Manager → Interfaceエンドポイント(有料だがNATより安い場合も)
4. その他(外部インターネット) → NAT Gateway
IPv6とEgress-Only Internet Gateway
IPv6の場合、NATゲートウェイではなくEgress-Only Internet Gateway(EIGW)を使う。
IPv4: プライベートサブネット → NAT Gateway → Internet
IPv6: プライベートサブネット → Egress-Only IGW → Internet
(IPv6はNATを使わない設計のため、EIGWが専用デバイスとして存在)
試験頻出ポイント
| シナリオ | 回答 |
|---|---|
| プライベートサブネットからインターネットアクセス(推奨) | NATゲートウェイ |
| NAT GatewayのAZ障害対策 | 各AZにNATを配置、AZ固有のルートテーブル |
| セキュリティグループでNATを制御したい | NATインスタンス(NATゲートウェイは不可) |
| IPv6のアウトバウンドのみ許可 | Egress-Only Internet Gateway |
| NATゲートウェイのコスト削減 | S3/DynamoDBはGatewayエンドポイントに切り替え |
まとめ
NATゲートウェイはマネージドで高可用性だが、AZをまたいだ冗長性はAZ数分のNATゲートウェイが必要だ。コスト削減にはVPCエンドポイントでAWSサービスへのトラフィックをNAT経由から外すことが有効だ。NATインスタンスは今日では特殊用途(ポートフォワーディング等)を除き非推奨。