前の記事では、 VPCのルートテーブルについて学びました。
ルートテーブルを見ることで、 「どの宛先への通信を、どこへ転送するのか」 を判断できます。
たとえば、次のようなルートがありました。
では、この igw-xxxxxxxx とは何なのでしょうか。
どのようにインターネットへ接続するのでしょうか?
そこで登場するのが、 インターネットゲートウェイ(Internet Gateway:IGW) です。
インターネットゲートウェイの役割を理解し、 VPC・ルートテーブル・パブリックIPv4アドレス がどのように関係してインターネット通信を実現するのか 説明できるようになることを目指します。
インターネットゲートウェイ(IGW)とは?
インターネットゲートウェイ(IGW)とは、 VPCとインターネットの間で通信するために使用する AWSのコンポーネントです。
VPCはAWS上に作成する 論理的に分離されたネットワークです。
VPC内部のリソースがインターネットと通信するためには、 その通信をVPCの外へ出すための仕組みが必要になります。
その出入口として利用されるのが インターネットゲートウェイです。
IGWはVPCにアタッチして使用する
インターネットゲートウェイは、 作成しただけではVPCから利用できません。
使用するためには、 IGWをVPCにアタッチします。
これによって、 VPCからインターネットゲートウェイを 利用できる状態になります。
インターネットゲートウェイ単体ではなく、 VPCと関連付けることで利用できるようになります。
IGWをアタッチするだけでは通信できない
ここはAWSのVPCを理解するうえで 非常に重要なポイントです。
VPCにインターネットゲートウェイを アタッチしただけでは、 EC2が自動的にインターネットへ接続できるわけではありません。
EC2からインターネットへ通信するには、 複数の条件を満たす必要があります。
VPCにIGWがアタッチされている
ルートテーブルにIGWへのルートがある
EC2がパブリックIPv4アドレスなどを持つ
セキュリティ設定で通信が許可されている
ここから、それぞれの関係を確認していきましょう。
ルートテーブルでIGWへの経路を設定する
前の記事で学んだ ルートテーブルがここで登場します。
インターネット向けのIPv4通信を IGWへ転送する場合、 代表的には次のようなルートを設定します。
0.0.0.0/0は、 すべてのIPv4アドレスに一致する範囲です。
そのため、VPC内部などの より具体的なルートに一致しない通信を IGWへ送るための デフォルトルートとして利用できます。
EC2からインターネットへ通信する流れ
では、EC2からインターネットへ通信するときの 流れを確認してみましょう。
EC2がインターネット上のサーバへ通信すると、 サブネットに関連付けられたルートテーブルが 宛先を確認します。
インターネット向け通信が 0.0.0.0/0 → IGW に一致すれば、 通信はIGWへ転送されます。
そしてIGWを経由して、 インターネットとの通信が行われます。
パブリックIPv4アドレスも必要
ここで、もう1つ重要なポイントがあります。
EC2がIPv4でインターネットと直接通信するには、 通常、 パブリックIPv4アドレスまたは Elastic IPアドレスが必要です。
VPC内部で利用
インターネット通信で利用
EC2にはVPC内部で利用する プライベートIPv4アドレスがあります。
一方、インターネットから プライベートIPv4アドレスへ そのまま通信することはできません。
IGWは、EC2のネットワークインターフェイスに 関連付けられたパブリックIPv4アドレスと プライベートIPv4アドレスの対応を利用して、 インターネットとの通信を成立させます。
IPv4でEC2がインターネットと直接通信するには、 パブリックIPv4アドレスなどの条件も必要です。
セキュリティグループやNACLも通信に関係する
ネットワーク経路が正しく設定されていても、 セキュリティ設定によって通信が許可されていなければ、 通信できません。
AWSでは、 セキュリティグループ(SG)や ネットワークACL(NACL) によって通信を制御できます。
そのため、 「インターネットに接続できない」という場合は、 IGWだけでなく、 ルート・IPアドレス・セキュリティ設定 を確認する必要があります。
IGWは「通信を許可する装置」ではない
初心者のうちは、 IGWを 「インターネット通信を許可する装置」 のように考えてしまうことがあります。
しかし、IGWそのものが 通信の許可・拒否を判断するわけではありません。
VPCとインターネットの 通信経路を提供する
条件に応じて 通信を許可・拒否する
構成を見てインターネット通信を判断してみよう
次のような構成があるとします。
この構成では、 EC2にパブリックIPv4アドレスがあり、 ルートテーブルにも 0.0.0.0/0 → IGW が設定されています。
さらに必要なセキュリティ設定が 許可されていれば、 EC2はIGWを経由して インターネットと通信できます。
理解度チェック:何が足りない?
次のEC2がインターネットへ 接続できないとします。
IGWが存在するだけで通信できるか考えてみましょう。
では「パブリックサブネット」とは何?
ここまでの内容で、 EC2がインターネットと通信する仕組みが 少しずつ見えてきました。
実はAWSでは、 IGWへのルートを持つサブネットを パブリックサブネットと呼びます。
一方で、 IGWへの直接のルートを持たないサブネットは プライベートサブネットとして設計できます。
確認問題:インターネットゲートウェイ
インターネットゲートウェイ(IGW)の主な役割はどれですか?
IGWはVPCとインターネット間の 通信を可能にするためのコンポーネントです。
IPv4でインターネット向け通信をIGWへ転送する 代表的なルートはどれですか?
0.0.0.0/0はすべてのIPv4アドレスに一致するため、 インターネット向けのデフォルトルートとして IGWを指定できます。
VPCにIGWをアタッチすれば、 EC2は必ずインターネット通信できるでしょうか?
IGWだけでなく、 ルートテーブル、パブリックIPv4アドレス、 セキュリティ設定なども確認する必要があります。
3問に挑戦してみましょう。
まとめ
IGWは VPCとインターネット間の通信を可能にするコンポーネント
IGWは VPCにアタッチして利用する
IGWをアタッチしただけでは EC2はインターネット通信できない
インターネット向けIPv4通信では 0.0.0.0/0 → IGW というルートが代表的
EC2から直接IPv4インターネット通信するには、 パブリックIPv4アドレスなども必要
SGやNACLなどの セキュリティ設定も通信可否に関係する
パブリック・プライベートサブネットを理解する
インターネットゲートウェイによって、 VPCとインターネットを接続する仕組みを学びました。
次は、 サブネットを「パブリック」と「プライベート」に 分ける考え方を学びます。
これまで学習したVPC・ルートテーブル・IGWが どのようにつながるのか確認していきましょう。
パブリック・プライベートサブネットを理解する →
