こんにちは、インフラエンジニアのれおです。
- AWSのゲートウェイの違いが知りたい
- AWSのゲートウェイの特徴が知りたい
このような悩みを解決していきます。
AWSゲートウェイの特徴・違いについて整理できなくたっため、出来るだけ分かりやすくまとめてみます。
AWSを学習されている方の参考になればと思います。
なお以下のゲートウェイを比較対象としています。
- インターネットゲートウェイ(Internet Gateway)
- NATゲートウェイ(NAT Gateway)
- カスタマーゲートウェイ(Customer Gateway)
NATとは
NAT(Network Address Translation)とは、IPヘッダ内のIPアドレスを変換する技術です。
LAN内のPCがインターネット上のWEBサイトを閲覧する際などは、送信元IPアドレスがプライベートIPアドレスとなってしまうため、そのままではインターネットに接続できません。
そこで、LANとインターネットの境界に位置しているルータでプライベートIPアドレスをバブリックIPアドレスに変換してインターネット側に転送します。
その変換する仕組みがNATです。
「プライベートIPアドレス」から「バブリックIPアドレス」に変換する技術がNAT
AWSゲートウェイの違い
違いを表にして比較してみました。
- インターネットゲートウェイ:インターネット接続を提供するGW
- NATゲートウェイ:NAT機能を提供するGW
- カスタマーゲートウェイ:オンプレミスとVPCとの接続を提供するGW
(オンプレミス側に設置)
GWの種類 | 接続方式 | 利用ネットワーク | 配置場所 |
インターネットゲートウェイ | VPC⇔インターネット | インターネット (双方向) | VPC |
NATゲートウェイ | サブネット⇒インターネット | インターネット (一方向) | サブネット |
カスタマーゲートウェイ | オンプレミス環境⇔VPC | VPN (双方向) | オンプレミス環境 |
インターネットゲートウェイ
インターネットゲートウェイは、VPCとインターネットとの間の通信を可能にするゲートウェイです。
インターネットゲートウェイは、インターネットルーティング可能なトラフィックの VPC ルートテーブル内のターゲットを提供します。IPv4 を使用した通信の場合、インターネットゲートウェイは、ネットワークアドレス変換 (NAT) も実行します。IPv6 を使用した通信の場合、IPv6 アドレスが公開されているため、NAT は必要ありません。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html
インターネットゲートウェイは、「プライベートIPアドレス」から「パブリックIPアドレス」へ変換するNAT機能も保有しており、IPv4/IPv6どちらでも対応しているようです。
インターネットゲートウェイはインスタンスに代わって 1 対 1 の NAT を論理的に行います。そのため、トラフィックが VPC サブネットから出てインターネットへ向かうとき、返信アドレスフィールドは、インスタンスのプライベート IP アドレスではなくパブリック IPv4 アドレスまたは Elastic IP アドレスに設定されます。逆に、インスタンスのパブリック IPv4 アドレスまたは Elastic IP アドレス宛てのトラフィックは、その送信先アドレスがインスタンスのプライベート IPv4 アドレスに変換されてから、VPC に配信されます。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html
プライベートIPアドレスとバプリックIPアドレスが1対1で変換されるため、双方での通信が可能になります。変換するためには、ルートテーブルに設定する必要があり、設定していると自動で変換されます。
NATゲートウェイ
NATゲートウェイは、プライベートサブネットからインターネットへの接続を可能にするゲートウェイです。
インターネットゲートウェイとの大きな違いは、NATゲートウェイはアウトバウンド通信のみ可能になる点です。
つまり、「インターネットからアクセスされたくないけど、VPCから外にでる通信は行いたい」という場合に使用するゲートウェイです。
- Public (パブリック) – (デフォルト) プライベートサブネットのインスタンスは、パブリック NAT ゲートウェイを介してインターネットに接続できますが、インターネットから未承諾のインバウンド接続を受信することはできません。パブリックサブネット内にパブリック NAT ゲートウェイを作成し、作成時に Elastic IP アドレスを NAT ゲートウェイに関連付ける必要があります。NAT ゲートウェイへのトラフィックは、VPC のインターネットゲートウェイにルーティングします。パブリック NAT ゲートウェイを使用して、他の VPC やオンプレミスのネットワークに接続することもできます。この場合、NAT ゲートウェイからのトラフィックを Transit Gateway または仮想プライベートゲートウェイ経由でルーティングします。
- Private (プライベート) – プライベートサブネットのインスタンスは、プライベート NAT ゲートウェイを介して他の VPC またはオンプレミスのネットワークに接続できます。この場合、NAT ゲートウェイからのトラフィックを Transit Gateway または仮想プライベートゲートウェイ経由でルーティングできます。elastic IP アドレスをプライベート NAT ゲートウェイに関連付けることはできません。プライベート NAT ゲートウェイを使用して VPC にインターネットゲートウェイをアタッチできますが、プライベート NAT ゲートウェイからインターネットゲートウェイにトラフィックをルーティングすると、インターネットゲートウェイによってトラフィックがドロップされます。
- https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-nat-gateway.html
NATゲートウェイ作成する際は、パブリックサブネットかプラベートサブネットに設置場所を選択する必要があります。
パブリックサブネットに設置する場合では、作成時に Elastic IP アドレスを NAT ゲートウェイに関連付ける必要があり、インターネットゲートウェイを経由してルーティングできます。
プラベートサブネットに設置する場合では、 Transit Gateway または仮想プライベートゲートウェイ経由でルーティングできます。また、Elastic IP アドレスをプライベート NAT ゲートウェイに関連付けることはできません。
カスタマーゲートウェイ
カスタマーゲートウェイは、オンプレミスとのSite-to-Site VPN接続を行う際にオンプレ側にアタッチするゲートウェイです。
オンプレミス側におくルーターですね。カスタマーゲートウェイを置くことでオンプレとのVPN通信が可能になります。
まとめ
今回は、AWSゲートウェイの特徴・違いについてまとめました。
- インターネットゲートウェイ:インターネット接続を提供するGW
- NATゲートウェイ:NAT機能を提供するGW
- カスタマーゲートウェイ:オンプレミスとVPCとの接続を提供するGW
(オンプレミス側に設置)
図解すると分かりやすかったので図解して整理すると良いと思いました。