NATゲートウェイ構成時の注意事項

AWS,VPC,システム設計

初心者がハマるNATゲートウェイの落とし穴

概要

  • NAT(Network Address Translation)はIPアドレスを変換する技術であり、インターネットにアクセスする際、プライベートからパブリックのIPアドレス変換に使われ、知らぬ間に恩恵を受けていますね。
  • 今回は多くの方が利用するAWSのNATゲートウェイについて、意外と知られていないハマるポイントを(自分の失敗談含めて)ご紹介します。
 

NATゲートウェイの構築

EIPの作成

  • Elastic IP を作成し、NATゲートウェイが使用するパブリックIPアドレスを準備します。
 

NATゲートウェイの作成

  • NATゲートウェイを作成する際は、インターネットゲートウェイと異なり、NATゲートウェイを配置するサブネットを指定します。ここでは、必ずパブリックのSubnetを指定します。NATゲートウェイの役割を理解していれば当然ですが、選択肢にプライベートのSubnetも表示されるため、誤って選択しないように注意が必要です。

NATゲートウェイの冗長構成

  • 次に、NATゲートウェイをMulti-AZ構成とするため、異なるAZのSubnet側にもNATゲートウェイを配置します。ここも知らないとハマる注意事項となります。
  • 以下は、Amazon Virtual Private Cloudユーザーガイドからの抜粋となります。
複数のアベイラビリティーゾーンにリソースがあって、リソース間で 1 つの NAT ゲートウェイを共有している場合、その NAT ゲートウェイが属するアベイラビリティーゾーンがダウンすると、その他のアベイラビリティーゾーンのリソースはインターネットにアクセスできなくなります。アベイラビリティーゾーンに依存しないアーキテクチャを作成するには、アベイラビリティーゾーン別に NAT ゲートウェイを作成し、同じアベイラビリティーゾーンに属する NAT ゲートウェイをリソースで使用するようにルーティングを設定します。
 

ルートテーブルの編集

  • 最後に、プライベートSubnetのルートテーブルを編集し、デフォルトルート(0.0.0.0/0)のターゲットをNATゲートウェイとして登録します。異なるAZのSubnet側も忘れずにルートテーブルを編集します。
 

NATゲートウェイの制約

帯域幅の制限

  • NAT ゲートウェイの帯域幅は、5 Gbps までのサポートです。また、ドキュメントには45 Gbps まで自動的に拡張するとの記載あり。
  • これ以上必要な場合は、リソースを分割して複数のサブネットに配置し、サブネットごとに NAT ゲートウェイを作成することで、ワークロードを分散できます。

NATゲートウェイとセキュリティグループ

  • NATゲートウェイにセキュリティグループは割り当てられません。NATゲートウェイを利用するプライベートのインスタンス側に割り当てます。
  • NATゲートウェイの出入り口でコントロールが必要な場合は、ネットワーク ACLを利用する必要があります。
 

NATゲートウェイとIPv6使用環境

  • NATゲートウェイは、IPv6には対応していません。IPv6使用環境でVPC からインターネットへの送信が必要な場合は、Egress-Only インターネットゲートウェイを使用します。
  • Egress-Only インターネットゲートウェイの作成は、下記ドキュメントを参照ください。