AWS

【図解/AWS】インターネットGWとNAT-GWの違い〜各メリット、パブリックサブネットとは〜

インターネットゲートウェイとNAT ゲートウェイの違い

インターネットゲートウェイNAT ゲートウェイはともに NAT 機能を提供する、インターネット接続時に利用されるオブジェクトです。

今回はインターネット gateway と NAT gateway の違いを比較してみました

インターネットGWNAT GW
主な機能 - NAT
- VPC ⇔ インターネット間の接続
 - NAT
(インターネットとの接続性には
インターネットGWが必要)
NATの種類 - Static NAT - Dynamic NAPT
配置場所 - VPC - (パブリック)サブネット
速度制限 - 無し - 5~45 Gbps

インターネットゲートウェイとは

インターネット GW は Static NAT を行います。つまり、パブリック IP を割り当てられた EC2 インスタンス等は、プライベート IP とパブリック IP が 1 対 1 で変換されます。

Static NAT の場合、NAT テーブルには通信前から「プライベート IP とパブリック IP の変換ルール」が定義されていますので、EC2 から始まる通信であっても、インターネットのクライアントから始まる通信であっても、IP は変換され、通信が可能です。

なのでインターネット GW の使い道は主に「インターネットからのアクセス」と「インターネットへのアクセス」の両方を実現することです。

インターネット GW は VPC に配置します。そしてインターネット GW を使いたい EC2 インスタンスは、「デフォルトルート 0.0.0.0/0 のターゲット」として "インターネットGW" を指定しているルーティングテーブルと関連付けられたサブネット(=パブリックサブネット)上に起動する必要があります。

NAT ゲートウェイとは

一方、NAT-GW はプライベート IP とパブリック IP が多対 1 で変換されます。複数の EC2 インスタンスから発する通信が、各々のプライベート IP で NAT-GW を通過する際、NAT-GW で 1 つのパブリック IP に変換されます。

ただし、複数のプライベート IP を 1 つのパブリック IP に変換してしまうと、戻りの通信においてどの通信がどのプライベート IP に変換すればいいか一意に定まらなくなってしまうので、TCP/UDP ポート番号も変換することでそれを回避しています。このような NAT 方式を「動的 NAPT (ナプト)=Dynamic NAPT」と呼びます

動的 NAPT では NAT テーブルは初期状態では空です。プライベート IP が入ってきたタイミングで変換と同時に動的に NAT エントリが生成されます。NAT エントリには変換前後の IP:TCP/UDP port ( or ICMP) が含まれますので、インターネットからの戻りの通信はそのエントリを使って元の IP:TCP/UDP port (or ICMP) に戻されます。

つまりインターネットから始まる通信は (NAT エントリが無いので) アクセスできません。つまり、セキュリティを高めることができる、というメリットがあります。これは一般的な家庭 NAT ルータと同等の動きです。

NAT-GW の使い道は主に「インターネットからはアクセスされたくないけどインターネットへのアクセスは実施したい」というケースです。

なお、NAT-GW だけではインターネットとの接続性がありませんので、NAT-GW は「パブリックサブネット」に配置します。

「パブリックサブネット」とは、デフォルトルートのターゲットが「インターネットGW」となっているルーティングテーブルに関連付けられたサブネットです。

つまり、NAT-GW を使ってインターネットに出ていくためには、インターネット GW は必須ということです。

コメント

  1. Toshinobu Mabuchi より:

    Public SubnetにあるEC2からInternet Gateway経由でInternetへアクセスする場合、
    Public IPもしくはEIPが必要です。
    以下の公式回答もありますし、実際に上記ケースでは「Public IP」が必要でした。
    https://aws.amazon.com/jp/premiumsupport/knowledge-center/create-attach-igw-vpc/

    よって、本ページの以下のInternet Gatewayの説明は誤りだと思います。

    >インターネット GW は Static NAT を行います。
    >つまり、パブリック IP を割り当てられた EC2 インスタンス等は、
    >プライベート IP とパブリック IP が 1 対 1 で変換されます。

    NAT Gatewayは、Private IPとPublic IPをアドレス変換しています。
    (NAT Gatewayの設定を見ると明らかに。)
    つまり、Internet Gatewayに入る前に「Public IP」になっています。
    よって、Internet Gatewayは「Public IP」同士の「ゲートウェイ(橋渡し)」をしているようです。

    よろしくお願いいたします。

  2. nesuke より:

    コメントありがとうございます。

    EC2インスタンスにパブリックIPを設定しても、OSにログインしてIPを確認すると、プライベートIPしか割り当たっていないことがわかります。

    プライベートIPではインターネットに出たところで当然帰りのルートがなく通信不可となるため、どこかでパブリックIPに変換する必要があります。それがインターネットGWだったりNAT-GWだったりします。

    ここで言っているのは、EC2インスタンスにパブリックIPを設定すると、それがインターネットGWのNAT設定に反映される、ということです。

    >つまり、パブリック IP を割り当てられた EC2 インスタンス等は、
    >プライベート IP とパブリック IP が 1 対 1 で変換されます。

    というのは、パブリックIPの割り当てが必要だという意味ですので、説明としては間違っていないかなと思っています。

    また、NAT-GWを経由する場合は、先にここでプライベートIPからパブリックIPへの変換が為されるので、インターネットGWでは変換しません。(NATルールに引っ掛からないため)

    この説明なら通じますでしょうか?

    誤解の無いよう、ちょっと構成を見直してみたいと思います。

タイトルとURLをコピーしました