クラウドの「外」とつながる第一歩:パブリックサブネットとインターネットゲートウェイの仕組みを紐解く
クラウドの世界へようこそ!AWSやGCPでインフラを触り始めると、必ずと言っていいほど最初に出会う難所が「ネットワーク」ですよね。「VPC?サブネット?IGW?何それ、美味しいの?」と頭を抱えた経験、誰にでもあるはずです。
今回は、そんなネットワークの入り口である「パブリックサブネット」と「インターネットゲートウェイ(IGW)」について、専門用語の壁を崩して、身近な例え話でじっくり解説していきます。
—
1. VPCは「巨大なマンション」、サブネットは「各部屋」
まず、VPC(Virtual Private Cloud)を、広大な敷地に建つ「巨大なITマンション」だと想像してみてください。このマンションにはたくさんの部屋(サブネット)があります。
- パブリックサブネット: 誰でも訪問できる「ロビーや受付がある部屋」
- プライベートサブネット: セキュリティが厳重で、住人以外は入れない「居住区」
パブリックサブネットは、インターネット(マンションの外の世界)に対してドアを開けている場所です。ここにあるサーバーは、外から直接「こんにちは!」とアクセスを受け取ることができます。
—
2. インターネットゲートウェイ(IGW)は「唯一の通用門」
では、外の世界と通信するにはどうすればいいのでしょうか? そこで登場するのが「インターネットゲートウェイ(IGW)」です。
これは、マンションの敷地を囲む塀に作られた、唯一の大きな通用門です。パブリックサブネットにあるサーバーが外のWebサイトを見に行ったり、逆に外から皆さんがそのサーバーにアクセスしたりするとき、パケット(手紙)はこのゲートウェイを必ず通ります。
ルーティングという「配達指示書」
ただ門があるだけでは意味がありません。サーバーには「外へ行くときは、この門を使ってね!」という指示書(ルーティングテーブル)が必要です。
- 宛先(Destination):
0.0.0.0/0(「世界中のどこへ行く場合でも」という意味の魔法の言葉) - ターゲット(Target):
igw-xxxxxxxx(インターネットゲートウェイのID)
この設定をサブネットに紐付けることで、初めてパケットが外の世界へ旅立てるようになるのです。
—
3. 「パブリック」であるための条件:IPアドレスの魔法
パブリックサブネットに置いただけで、自動的にインターネットから見えるわけではありません。ここで重要なのが「パブリックIPアドレス」です。
インターネットの世界には、世界中で重複してはいけない「住所(グローバルIP)」が必要です。しかし、社内や家の中だけで使う「内線番号(プライベートIP)」は、外からは直接見えません。
そこで行われるのが NAT(ネットワーク・アドレス・変換) です。
- SNAT(送信元変換): サーバーから外へ行くとき、「内線番号」を「外向きの顔(パブリックIP)」に書き換えて門をくぐらせる。
- DNAT(宛先変換): 外から門を叩かれたとき、「外向きの顔」を「サーバーの内線番号」に書き換えて部屋へ案内する。
クラウドプラットフォームは、この複雑な書き換えをIGWと連携して自動的にやってくれています。便利ですよね!
—
4. 実践!AWSでパブリックサブネットを構築する構成例
では、実際にインフラ構築の現場でよく使う「Terraform」のコードを例に、パブリックサブネットの定義を見てみましょう。
# インターネットゲートウェイの作成
resource "aws_internet_gateway" "main_igw" {
vpc_id = aws_vpc.main.id # このVPCの門番として作成
}
# パブリックサブネット用のルーティングテーブル
resource "aws_route_table" "public_rt" {
vpc_id = aws_vpc.main.id
# 「外に行くなら全部IGWへ投げる」という指示
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.main_igw.id
}
}
# サブネットとルートテーブルの紐付け
resource "aws_route_table_association" "public_assoc" {
subnet_id = aws_subnet.public_subnet.id
route_table_id = aws_route_table.public_rt.id
}
この設定を行うことで、そのサブネットは晴れて「インターネットと対話できる場所」になるわけです。
—
最後に:一歩ずつ理解を深めよう
「パブリックサブネットに置く=外から丸見えで危ないのでは?」と感じたあなたは、すでに素晴らしいエンジニアの資質を持っています。その通り、公開する必要がないデータベースなどは、絶対にプライベートサブネットに置くべきです。
ネットワークは一度にすべてを理解しようとするとパンクしてしまいます。まずは「手紙(パケット)がどこから出て、どの門(IGW)を通り、宛先に届くのか」、その流れをイメージすることから始めてみてください。
これからも一緒に、クラウドの深淵を楽しく学んでいきましょう!何か分からないことがあれば、いつでもまた聞きに来てくださいね。
コメント