【入門編】 パブリックサブネットの定義とインターネットゲートウェイ(IGW)の接続 – クラウド&コンテナネットワーク実践ガイド

クラウドの「外」とつながる第一歩:パブリックサブネットとインターネットゲートウェイの仕組みを紐解く

クラウドの世界へようこそ!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)を通り、宛先に届くのか」、その流れをイメージすることから始めてみてください。

これからも一緒に、クラウドの深淵を楽しく学んでいきましょう!何か分からないことがあれば、いつでもまた聞きに来てくださいね。

コメント

タイトルとURLをコピーしました