気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

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

インターネットゲートウェイとNATゲートウェイは、AWSでセキュリティを担保したいAPIサーバーなどを立てる際に使うオブジェクトです。それぞれの大雑把な違いと使い方について参考URLの内容を引用しつつ、説明します。

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

インターネットゲートウェイ NATゲートウェイ
用途 インターネットへの相互アクセスの窓口 外部アクセス禁止としたいサーバーの踏み台
配置場所 VPC(サブネットには紐付かない?) public サブネット
NATの種類 static NAT(1対1変換) Dynamic NAT(多対1変換)

f:id:tamata78:20220209175452p:plain

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

インターネットゲートウェイは、static NAT(1対1変換)を行います。
具体的に言うと、VPC内に配置されたEC2インスタンスに割り当てられたprivate IPを public IPへ1対1変換することを指します。

またその変換を伴う通信は、EC2からでもインターネット外からでも可能となります。
通信がなくてもインターネットゲーなくてもにNATエントリが存在し、このエントリに登録されたIPを元に変換が行われます。

インターネットゲートウェイを使う際の設定

  • インターネットゲートウェイVPCに配置
  • public サブネット上にEC2を配置
  • public サブネットにルーティングテーブルを紐付ける(「デフォルトルート 0.0.0.0/0 」のターゲットをインターネットゲートウェイとする)

この場合のEC2は、外部から自由にアクセスされてしまうため、セキュリティを担保したい場合は、この構成は不適切。 外部からのアクセスを點せたくない場合、NATゲートウェイを用います。

NATゲートウェイ

NATゲートウェイは、dynamic NAT(多対1変換)を行います。
具体的に言うと、VPC内のprivateサブネットが紐付けられた複数のEC2インスタンスに割り当てられたprivate IPを NATゲートウェイにおいてpublic IPへ多対1変換することを指します。

またその変換を伴う通信は、EC2からのみで可能となります。
インターネット経由のアクセスにおいては、public IPからどの private IPに変換すべきか判別できないため、アクセス不可とすることができ、これによってprivateサブネットに紐付けられたEC2インスタンスのセキュリティを担保することが可能となります。

f:id:tamata78:20220209183600p:plain

EC2からインターネットへのアクセス

EC2からインターネットへのアクセスにおけるレスポンスは、どうやって各EC2インスタンスに戻すのでしょうか。 EC2インスタンスがNATゲートウェイを通る際に「NATエントリ」を生成します。このエントリには、EC2インスタンスTCP/UDPポート番号が登録されており、このポート番号を用いて、レスポンスを指定のEC2インスタンスに返却することができます。

NATゲートウェイを使う際の設定

  • インターネットゲートウェイVPCに配置
  • NATゲートウェイをpublic サブネットに紐付けて配置
  • public サブネットにルーティングテーブルを紐付ける(「デフォルトルート 0.0.0.0/0 」のターゲットをインターネットゲートウェイとする)
  • EC2インスタンスをprivateサブネットに紐付けて配置
  • privateサブネットにルーティングテーブルを紐付ける(「デフォルトルート 0.0.0.0/0 」のターゲットをNATゲートウェイとする)

参考URL