Hanatare's PaPa

Make life a little richer.

Virtual Space of Hanatare's PaPa

人生をほんの少しだけ充実させる

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

f:id:nothing-title:20210224232358j:plain

プライベートサブネット内のEC2は直接インターネットに接続することができません。そのため、パブリックサブネット内にNATゲートウェイを設置し、そこを経由してインターネットに接続していきます。インターネットゲートウェイとNATゲートウェイは名前や用途が似ているせいか難しく感じる方もいるかもしれません。そこで今回は2つのゲートウェイの違いを整理したいと思います。

記事のポイント
  • NATゲートウェイとは
  • NATゲートウェイをハンズオンで作成
  • NATゲートウェイとインターネットゲートウェイの違い

NATゲートウェイとは

NATの仕組みを使ったサービスのことで、NATゲートウェイはプライベートIPとパブリックIPを多対1で変換をしてくれます。プライベートサブネット内の複数のEC2インスタンスからの通信を、それぞれのプライベート IP で NATゲートウェイ を通過する際、 NATゲートウェイ で 1 つのパブリック IP に変換してくれます。

NATとは

では、NATの仕組みとはどういった仕組みなのかを、もう少し詳しく整理したいと思います。

NATを利用すると、送信元のプライベートIPはNATを経由する際に、そのIPアドレスをパブリックIPに変換され、通信が転送されます。変換時、NATはプライベートIPとパブリックIPをマッピングする変換テーブルを用意し、送信先からの送信元への戻りの通信があった際に、正しく送信元に情報を転送します。

ただし、同時に複数のプライベート IP を 1 つのパブリック IP に変換してしまうと、パブリックIPが枯渇することが懸念されます。これは 変換時にポート番号も含めて変換することで回避可能です。このような NAT 方式を「動的 NAPT (ナプト)=Dynamic NAPT」と呼びます。

また変換テーブルは初期状態は空です。プライベート IP が入ってきたタイミングで変換と同時に動的に変換テーブルが作成されます。そのため、インターネットから始まる通信の場合、変換テーブルがないためアクセスができません。これはセキュリティを高めることができるという利点があります。

NATゲートウェイの使い方は「インターネットからはアクセスされたくないけどインターネットへのアクセスは実施したい」というケースが主に想定されます。

例えば以下のようなプライベートサブネット環境のEC2はインターネットの世界にでる道がありません。

VPC構成図

NAT ゲートウェイを作成する

パブリックサブネット上に以下のようにNAT ゲートウェイを設置し、道を作ってあげることで、プライベートサブネットからは、このNAT ゲートウェイを通じてインターネットの世界に出ていくことが可能になります。

構成図

NATゲートウェイ設置後構成図1

NATゲートウェイ利用時の注意点
  • NAT ゲートウェイは有料です

手順

natゲートウェイ作成1

VPCのダッシュボード画面から『NAT ゲートウェイ』を選択肢『NAT ゲートウェイの作成』ボタンをクリックします

natゲートウェイの作成2

NAT ゲートウェイの作成画面に移ります。『サブネット』欄では設置するパブリックサブネットを選択します。NATゲートウェイではElastic IPを使用します。Elastic IPがない場合は『新しいEIPの作成』をクリックし、Elastic IPを発行し、『NAT ゲートウェイの作成』をクリックする。

natゲートウェイ作成完了

上記のように完了画面が表示されたNAT ゲートウェイの作成は完了です。

ルートテーブルを設定する

NATゲートウェイを作成したら、プライベートサブネットからNATゲートウェイへの通信ができるようにします。

手順

ルートテーブル一覧

サブネットの画面でプライベートサブネットを選択し、『ルートテーブル』タブを選択し、『ルートの編集』をクリックする

ルートの編集1

編集するルートテーブルを選択し、『ルート』タブを選択し、『ルートの編集』をクリックする

ルートの編集2

『ルートの追加』をクリックし、送信先とターゲットを選択します。今回は全ての通信をNATゲートウェイに向けたいので『送信先』は『0.0.0.0/0』、『ターゲット』は作成したNat ゲートウェイを選択します

接続を確認

これまでの手順で、プライベートサブネットからインターネットに向けての通信ができるようになっているはずなので、確認をしていきます。

手順

接続確認1

ターミナルを起動し、プライベートサブネット上のEC2にログインしてください。その後以下のコマンドを実行します(今回はセキュリティパッチを適用したいので、このコマンドを使います。)

sudo yum -y update

接続確認2

上記の様に完了しました!と表示されれば、接続ができたことがわかります。

NAT ゲートウェイは有料です

冒頭でも記載しましたが、NAT ゲートウェイは有料です。そのため、常時設置が必要でないならば、削除することをおすすめします。その際、Elastic IPが未割り当ての状態になるため、Elastic IPの開放することを忘れないようにしてください。

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

もう1度以下の図を使ってインターネットゲートウェイとNAT ゲートウェイの違いを確認したいとおもいます。

natゲートウェイ構成図2

配置場所が違う

図を見ると明らかですが、以下の表用に配置場所が異なります。

インターネットゲートウェイ VPCにアタッチ
NATゲートウェイ サブネットに設置

上記の図でいくとNAT ゲートウェイは設置しているサブネットのAZで障害が発生すると、プライベートサブネットからインターネットへの接続ができなくなり可能性があります。

複数のAZでNATゲートウェイを使うような場合はAZ毎にNAT ゲートウェイを設置するなど、可用性を意識しましょう。

NAT ゲートウェイにはインターネットゲートウェイが必要

NATゲートウェイはインターネットの世界へ出ていく時インターネットゲートウェイを使って出ていきます。そのため、NAT ゲートウェイだけではインターネットの世界で接続ができません。

インターネットからの通信を想定するかどうか

インターネットゲートウェイを通じてインターネットの世界出ていく場合、プライベートIPとパブリックIPの変換が行われます。その際、インターネットゲートウェイではパブリックIPとプライベートIPは1:1で変換されます。

つまり上記図のパブリックサブネットのEC2にはパブリックIPが割り当てられ、インターネットの世界からもこのEC2に対してアクセスが可能になります。

NATゲートウェイとインターネットゲートウェイの間では当然IPの交換は1:1行われます。ただし、NATゲートウェイとプライベートサブネットのEC2においてIPの交換は1:多の関係になります。

当然インターネットゲートウェイとプライベートサブネットのEC2においても1:多の関係になります。これはインターネットの世界からEC2に対してのアクセスができないことを指します。

まとめると以下のとおりです。

まとめ
  • NAT ゲートウェイの利用は中から外の世界につなぐときに利用を想定
  • インターネットゲートウェイは外から中、中から外、それぞれで通信するときに利用する

まとめ

今回はNATゲートウェイの利用に際して、設置方法と似たサービスであるインターネットゲートウェイとの違いをまとめました。NAT ゲートウェイは有料サービス(¥500/月)ですので利用する際はその点を意識して利用しましょう。

ネットワークに関する部分は似たような用語も多く難しく感じますが、今回の記事のように絵に表して整理することで頭の中を整理して考えることができるようになります。よければ参考にしてみてください。

最後まで読んでいただきありがとうございます。