ネットワークの「表玄関」はどう作る?パブリックサブネットとインターネットゲートウェイの仕組みを解き明かす
こんにちは!クラウドの海を渡り歩くSREとして、日々インフラのトラブルシューティングや設計に明け暮れている私です。
クラウドを触り始めると必ずぶつかるのが「サブネット」や「ゲートウェイ」という言葉。特に「パブリックサブネットって結局何なの?」「なぜルーティングの設定一つでインターネットに出られるようになるの?」という疑問は、避けては通れない関門ですよね。
今回は、郵便配達の仕組みを例えに、パブリックサブネットの正体とインターネットゲートウェイ(IGW)との絆について、一緒に深掘りしていきましょう!
—
1. そもそも「パブリックサブネット」って何者?
クラウド上のネットワーク(VPC)は、例えるなら「巨大な社屋」のようなものです。その中に「部屋(サブネット)」がいくつか分かれていて、それぞれセキュリティレベルが異なります。
パブリックサブネットを一言で言えば、「社屋の正面玄関に直結した部屋」です。
通常、社内の部屋はプライバシーを守るために外からは見えないようになっていますが、パブリックサブネットは「ここからなら外の世界(インターネット)と直接手紙のやり取りができるよ!」という特権を持った場所なのです。
なぜパブリックと呼ぶのか?
それは、その部屋から外へ出るための「正規の出口」が存在するからです。クラウド界隈では、この出口をインターネットゲートウェイ(IGW)と呼びます。
—
2. インターネットゲートウェイ(IGW)は「最強の郵便局」
皆さんが書いた手紙(パケット)をインターネットという広大な世界に届けるとき、そのままでは宛先に届きません。そこで登場するのがIGWです。
- パケット(手紙): 私たちが送りたいデータ。
- ルーティングテーブル(宛先リスト): 「外の世界への荷物は、すべてこの郵便局(IGW)に持って行くこと!」という指示書。
- IGW: 世界中のあらゆる住所を知っている、超優秀な国際郵便局。
サブネットがパブリックであるためには、ルーティングテーブルに「すべての宛先(0.0.0.0/0)は、このIGWを経由せよ」というルールが書かれている必要があるのです。これがなければ、どれだけ頑張ってパケットを投げても、部屋の中で迷子になってしまいます。
—
3. 実践!ルーティングテーブルの設定を見てみよう
TerraformなどのIaC(Infrastructure as Code)でこの設定を定義すると、驚くほどシンプルです。実際の現場でよく使われる設定例を覗いてみましょう。
# パブリックサブネット用のルーティングテーブル作成
resource "aws_route_table" "public_rt" {
vpc_id = aws_vpc.main.id
# 「0.0.0.0/0(すべての宛先)」を「igw-xxxxxxxx(インターネットゲートウェイ)」へ向ける
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_aws_internet_gateway.main.id
}
tags = {
Name = "public-route-table"
}
}
# サブネットをこのルーティングテーブルに関連付ける
resource "aws_route_table_association" "public_assoc" {
subnet_id = aws_subnet.public_subnet.id
route_table_id = aws_route_table.public_rt.id
}
この設定のポイントは、0.0.0.0/0 という「インターネット上のどこへでも」という魔法の数字です。これがあることで、パケットは迷わずIGWへと吸い込まれていくわけですね。
—
4. 現場でハマりやすい「エッジケース」
初心者の頃、よくあるトラブルが「パブリックサブネットに置いたのに、なぜか繋がらない!」という悲鳴です。ここにはいくつか落とし穴があります。
落とし穴1:パブリックIPアドレスを忘れている
玄関(IGW)があっても、自分の住所(IPアドレス)が「私書箱専用(プライベートIP)」だったら、外の世界から返事が届きません。
- 対策: インスタンスを起動する際に「パブリックIPを自動割り当て」にするか、固定の「Elastic IP」を付与しましょう。
落とし穴2:セキュリティグループ(門番)の存在
玄関までは行けても、部屋の入り口に「強面の門番(セキュリティグループ)」が立っていて、外部からのアクセスを全て拒否しているケースです。
- 対策: インバウンドルールを確認し、
80(HTTP)や443(HTTPS)といった必要なポートが開いているかチェックしましょう。
—
最後に:一歩ずつ、確実に理解していこう!
ネットワークは、目に見えないパケットの流れを想像する「パズル」のようなものです。最初は難しく感じるかもしれませんが、「パケットという手紙を、どの門(IGW)から外の世界へ流すか」という視点を持つだけで、全体像がスッキリ見えてくるはずです。
今回の内容をマスターすれば、皆さんのクラウド構築の第一歩は完璧です!次はNATゲートウェイを使って、プライベートサブネットから安全に外へ出る方法を学んでいくと、さらに世界が広がりますよ。
インフラエンジニアの道は、こうした小さな「なるほど!」の積み重ねです。これからも一緒に、楽しく学んでいきましょうね!
コメント