インターネットゲートウェイとNAT ゲートウェイの違い
インターネットゲートウェイと NAT ゲートウェイはともに NAT 機能を提供する、インターネット接続時に利用されるオブジェクトです。
今回はインターネット gateway と NAT gateway の違いを比較してみました
インターネットGW | NAT 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 は必須ということです。
コメント
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」同士の「ゲートウェイ(橋渡し)」をしているようです。
よろしくお願いいたします。
コメントありがとうございます。
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ルールに引っ掛からないため)
この説明なら通じますでしょうか?
誤解の無いよう、ちょっと構成を見直してみたいと思います。
この上なく非常に分かりやすい説明で理解が深まりました。ありがとうございます!
hogeさん、コメント頂きありがたいです。
とても励みになります。
これからもどうぞ本サイトを宜しくお願いします。