インターネットゲートウェイとNATゲートウェイ
今回、Webサーバーを公開した例ではインターネットゲートウェイを使用しました。
オンプレミス環境では、インターネットに接続する際に、FirewallでパブリックIPからプライベートIPへ(その逆も)NAT変換をかけていたりしたと思いますが、AWSではその役割をインターネットゲートウェイが担います。
EC2インスタンスにグローバルIPを付与するイメージになるので、このNAT変換の辺りを意識しなくて良くなる訳ですね。
NATゲートウェイという存在
インターネットゲートウェイは理解したのですが、AWSには別に「NATゲートウェイ」があります。これについて調べてみました。
NATゲートウェイの役割
その名の通り、NAT機能を実現するゲートウェイです。わざわざこれが存在するということは、それが必要な使用シーンがあるということですね。
NATゲートウェイにはグローバルIPが割り当てできます(Elastic IP含む)
上記のような構成で、プライベートサブネットのルーティングテーブルで、デフォルトゲートウェイをNATゲートウェイに向けると、そこでNAT変換がされてインターネットとの通信ができるようです。
Firewallやルーターの機能としてのNAT機能は知っていましたが、わざわざNAT機能のためだけのゲートウェイが存在する意味が分かりませんでした。AWSって内部的にはルーターが存在するようですが、コンソール画面では項目も表示されず意識しなくても良くなってますし。
「NATの設定はルーターやFirewallに設定するものである」と思っているオンプレミスの経験が長い方には、この辺に違和感があるかもしれません。
インターネットゲートウェイとの大きな違い
インターネットゲートウェイはグローバルIPとEC2インスタンスを「1対1」変換することに対して、NATゲートウェイ「1対多」で変換することが大きな違いです。プライベートサブネットに複数台EC2インスタンスが存在しても、インターネットに出ていくときには1つのグローバルIPで。ということが実現できます。