こんにちは、かじです。
今回はAWSのインターネットゲートウェイとNATゲートウェイに関して解説していきます。
AWSで、VPCとサブネット、EC2を作成して、WEBサーバをインターネットに公開だ、と思ってもこれではAWSリソースはインターネットに繋がりません。作成したのはローカルネットワークとネットワークを分割するサブネット、そして、仮想マシンだけです。
そこで作成する必要があるのが、インターネットゲートウェイです。
インターネットゲートウェイ
先ほども述べたようにVPCやサブネットを構築しただけではクラウド上にローカルネットワークを作成しただけです。そのため、インターネットに繋ぐための出入り口となるものが必要です。それがVPCになります。インターネットに公開するサブネットであるパブリックサブネットの場合は、ルートテーブルにインターネットに繋ぐ際のターゲットとして、設置したインターネットゲートウェイを指定することで、パブリックサブネットをインターネットに繋ぐことができます。
NATゲートウェイ
しかし、パブリックサブネットであればインターネットに公開されて問題ないものの、プライベートサブネットではインターネットに繋ぎたいけど、外部からのアクセスはされたくないという場合があります(例えばプライベートサブネット内にあるEC2のOSを更新するような場合)。プライベートサブネットをインターネットゲートウェイに繋いでしまうと、プライベートサブネットもインターネットからアクセスされてしまいます。
そういう場合はNATゲートウェイをパブリックサブネットに設置し、プライベートサブネットがインターネットに繋ぐ通信はNATを通じて行うようにします。
NATとは、ルーターがプライベートアドレスをグローバルアドレスに変換することで、ルーター内の機器が個別にグローバルアドレスを持たなくともインターネットに接続することができる仕組みです。NATを使用することで外部からプライベートアドレスは秘匿化されます。
NATゲートウェイをパブリックサブネットに設置し、プライベートサブネットからインターネットへ接続する通信をパブリックサブネットのNATゲートウェイに繋ぐようにルートテーブルを設定することで、プライベートサブネットもインターネットに接続することができます。