SJ blog
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/GBEC2インスタンス料金
ベストプラクティス推奨レガシー(非推奨)

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インスタンスは今日では特殊用途(ポートフォワーディング等)を除き非推奨。