インターネットゲートウェイ
Internet Gateway
概要(サマリー)
インターネットゲートウェイは、AWS(Amazon Web Services)などのクラウド上に構築された仮想的なプライベートネットワーク(VPC)と、インターネット(外部の世界)との間でネットワーク通信を行えるようにする接続窓口(ゲートウェイ)である。例えるなら、プライベートな敷地(VPC)と、外の一般公道(インターネット)を繋ぐ「検問所」や「連絡通路のドア」のような役割を担っており、これがないとクラウド上の仮想サーバーは外の世界と一切データのやり取りができなくなる。
詳細解説
インターネットゲートウェイとは何か
クラウド上に構築したVPC(Virtual Private Cloud)は、初期状態では外のインターネットから完全に孤立した安全なネットワーク空間である。
このVPCの中に配置した仮想サーバーが、Webサイトの情報を外のユーザーに配信したり、外部のAPIからデータを取得したりできるようにするには、VPCに「インターネットゲートウェイ」をアタッチ(接続)し、通信の通り道を確保しなければならない。
どのように通信を中継しているか(NAT機能)
インターネットゲートウェイは、単なる通信の通り道だけでなく、「宛先」と「送信元」の交通整理(アドレス変換)を行っている。
VPC内のサーバーは通常、外部からは見えない「プライベートIPアドレス」を持っている。AWSでは、サーバーにパブリックIPアドレスまたはElastic IPアドレスが割り当てられている場合、インターネットゲートウェイがその公開アドレスとプライベートIPアドレスの対応を使って、IPv4通信を1対1で中継する。
これにより、インターネット上の相手は「パブリックIPアドレス」宛てに返信を送り、インターネットゲートウェイがそれをVPC内の正しいサーバーへ届けるという仕組みが成立する。パブリックIPアドレスを持たないプライベートサブネット内のサーバーが外部へ通信したい場合は、通常はNATゲートウェイを使う。
ルートテーブル(ルーティング)との関係
インターネットゲートウェイをVPCに接続しただけでは、まだサーバーはインターネットに繋がらない。
VPC内のネットワーク案内板である「ルートテーブル(ルーター)」に対して、「外のインターネット(0.0.0.0/0 すべての宛先)へ行きたいパケットは、インターネットゲートウェイを通りなさい」という道案内のルールを追加登録することで、初めて通信が流れるようになる。この設定を行った子ネットワーク(サブネット)のことを「パブリックサブネット」と呼ぶ。
NATゲートウェイとの違い
インターネットゲートウェイと混同されやすい技術に「NAT(ナット)ゲートウェイ」がある。
- インターネットゲートウェイ:双方向の通信が可能。外のインターネットからVPC内のサーバーへ直接アクセスすることも、サーバーから外へアクセスすることも両方許容する。
- NATゲートウェイ:一方向の通信のみ可能。VPC内のサーバーから外のインターネットへデータを送り出せる(プログラムのアップデートファイルをダウンロードするなど)が、外のインターネットからVPC内のサーバーへ直接接続することは完全にブロックする。
セキュリティの観点から、データベース(RDSなど)はインターネットゲートウェイのないプライベートサブネットに配置し、インターネットと接するWebサーバー(EC2など)のみをインターネットゲートウェイと繋ぐように設計するのがインフラ構築の基本である。
AIコーディングとの関係
AIコーディングにおいて、インターネットゲートウェイはインフラの自動構築コード(TerraformやAWS CloudFormationなど)を書かせる際に頻繁に登場する。
AIへの効果的な指示の出し方
AWSなどのインフラをコードで定義する(IaC: Infrastructure as Code)際、AIにインフラ構成を生成してもらう場合は、インターネットゲートウェイの設定だけでなく、付随するルートテーブルの作成や関連付けまで含めるよう指示すると完璧な構成を出力させやすい。
AWSに新しくVPCを作成し、そこにインターネットゲートウェイを配置して、特定のパブリックサブネットからインターネットに通信が繋がるようにするための「Terraform」のコードを書いてください。ルートテーブルの作成とサブネットへの関連付け(Route Table Association)も含めてください。
AIは、VPC(aws_vpc)、インターネットゲートウェイ(aws_internet_gateway)、ルート(aws_route)などを関連付ける、文法エラーのないインフラ定義コードを自動出力してくれる。
AIとインターネットゲートウェイを扱う際の注意点
AIが生成したネットワーク構築スクリプトをそのまま実行した際、よく初心者が「サーバーに繋がらない」というトラブルに直面する。
その場合は、「サーバーにパブリックIPアドレスが付与されているか」「インターネットゲートウェイへのルートが設定されているか」「セキュリティグループで通信ポートが開放されているか」をAIに箇条書きで伝えて、デバッグのチェックリストを出してもらうと、迅速に原因を特定できる。
よくある勘違い
インターネットゲートウェイをアタッチすると通信が遅くなる?
「すべての通信が1つのゲートウェイに集中するのだから、アクセスが増えたらここがボトルネックになって通信速度が落ちたり、サーバーがダウンしたりするのでは」という不安が生じることがある。
しかし、AWSなどの大手クラウドのインターネットゲートウェイは、物理的な1台のルーター装置ではなく、クラウドの巨大なインフラ上で論理的に提供される仮想機能である。冗長性と可用性を備え、自動的にスケールするように設計されているため、利用者が個別の機器として容量管理する必要はない。
インターネットゲートウェイがあればファイアウォールは不要?
「検問所の役割をするなら、ここでハッカーからの不正な攻撃を防いでくれるのではないか」というのは誤りである。
インターネットゲートウェイはあくまで「通信の通路」を確立するものであり、どのアクセスを許可してどのアクセスを拒否するかという具体的なセキュリティフィルター(ファイアウォール機能)は持っていない。これらは、「セキュリティグループ」や「ネットワークACL」という別の設定で行う必要がある。
インターネットゲートウェイは家庭のブロードバンドルーターと同じ?
「家に置いてあるWi-Fiルーターと同じ役割だから、自分で何かを購入して初期設定する必要があるのでは」と勘違いされることがある。
クラウドにおけるインターネットゲートウェイは、AWSなどの管理画面からソフトウェア的に「作成」ボタンを押すだけで、料金も無料で瞬時に稼働するクラウド特有の機能である。家庭用の物理機器のような配線やプロバイダ契約といった物理的作業は一切必要ない。
まとめ
- インターネットゲートウェイは、クラウド上の仮想ネットワーク(VPC)とインターネットを繋ぐ接続窓口である。
- 外との双方向通信を可能にし、アドレスの翻訳(パブリック/プライベートIPの変換)を自動で行う。
- 実際に通信を届かせるためには、ルートテーブル(ルーティング)の設定が必須である。
- 双方向で繋がるインターネットゲートウェイと、外へ出ていくだけのNATゲートウェイは用途に応じて使い分ける。
- クラウドが自動的にトラフィック負荷を分散・管理するため、通信速度低下の心配はない。
情報ソース
より詳しくAIに聞いてみよう
- AWSでVPCを作成した際、デフォルトで最初から用意されているインターネットゲートウェイの設定内容を教えてください。
- インターネットゲートウェイとNATゲートウェイを組み合わせた、最も安全なWebシステムの3層アーキテクチャの構成図と言葉による説明を作成してください。
- インターネットゲートウェイを通る通信が、セキュリティグループとネットワークACL(アクセス制御リスト)でどのように選別されるか説明してください。
- インターネットゲートウェイに費用はかかりますか?データ転送料金が発生する具体的な仕組みについて教えてください。
- AIを使って、AWS CloudFormationテンプレート内にインターネットゲートウェイとVPCの紐付けを記述する手順を教えてください。