【入門編】 パブリックサブネットの定義とインターネット接続の要件 – クラウドインフラと仮想化ネットワーク実践ガイド

AWSの「パブリックサブネット」って結局なに?郵便配達の仕組みで紐解くクラウドネットワークの基礎

こんにちは!クラウドインフラの現場でSREをしていると、「パブリックサブネットにインスタンスを置いたのに、なぜか外と繋がらない!」という悲鳴のような相談をよく耳にします。

AWSのネットワークは非常に強力ですが、最初は「サブネット」「ゲートウェイ」「ルートテーブル」といった言葉の壁にぶつかりがちですよね。今日は、AWSのVPC(仮想ネットワーク)における「パブリックサブネット」の正体を、もっとも身近な「郵便配達」の例えを使って、じっくり紐解いていきましょう。

—

1. VPCは「巨大なマンション」、サブネットは「各階の廊下」

まず、VPCを「AWSという巨大なマンション」だと想像してください。このマンション内には部屋(リソース)がたくさんありますが、そのままでは外の世界と手紙のやり取りはできません。

ここで登場するのがサブネットです。サブネットはマンションの「各階の廊下」のようなもの。同じ階(サブネット)にいる住人同士は直接手紙を渡せますが、マンションの外へ手紙を出すには、「管理室」を通る必要があります。

パブリックサブネットの条件

AWSで「パブリックサブネット」と呼ぶためには、以下の2つの条件が揃っている必要があります。

1. インターネットゲートウェイ(IGW)への道があること
2. そこにいる住人(インスタンス)が「外に出られる切符(パブリックIPアドレス)」を持っていること

このどちらか片方が欠けても、そのサブネットは「パブリック」の皮を被った「プライベート(隔離された場所)」になってしまいます。

—

2. インターネットゲートウェイは「マンションの出口」

インターネットゲートウェイ(IGW)は、いわば「インターネットという広大な外の世界へ繋がる唯一の門」です。

しかし、門があるだけではダメなんです。廊下(サブネット)にいる住人が「外に行くにはどの門を通ればいいの?」という地図を持っていないといけません。これがAWSでいうルートテーブルです。

ルートテーブルには、こんな指示が書かれています。

  • 「マンション内の隣の部屋に行くなら、そのまま廊下を歩け」
  • 「外の世界(0.0.0.0/0)に行くなら、あの門(IGW)をくぐれ!」

この指示がないと、リソースは迷子になってしまいます。

—

3. 実践:Terraformで「パブリックサブネット」を定義する

では、実際にインフラコード(Terraform)で見てみましょう。教科書的な設定ですが、これが「パブリック」を作る最小単位です。

# 1. 巨大マンション(VPC)を作る
resource "aws_vpc" "main" {
  cidr_block = "10.0.0.0/16"
}

# 2. 外への門(インターネットゲートウェイ)を作る
resource "aws_internet_gateway" "gw" {
  vpc_id = aws_vpc.main.id
}

# 3. 廊下(サブネット)を作る
resource "aws_subnet" "public_subnet" {
  vpc_id                  = aws_vpc.main.id
  cidr_block              = "10.0.1.0/24"
  # ここが重要!「住人に外に出る切符を自動で渡す」設定です
  map_public_ip_on_launch = true 
}

# 4. 地図(ルートテーブル)を作って、門へのルートを教える
resource "aws_route_table" "public_rt" {
  vpc_id = aws_vpc.main.id

  route {
    cidr_block = "0.0.0.0/0" # 「すべての宛先は…」
    gateway_id = aws_internet_gateway.gw.id # 「この門から出ろ!」
  }
}

# 5. 廊下と地図を紐付ける
resource "aws_route_table_association" "a" {
  subnet_id      = aws_subnet.public_subnet.id
  route_table_id = aws_route_table.public_rt.id
}

ポイントは、map_public_ip_on_launch = true です。これがないと、インスタンスを作成したときに外の世界で通用する「パブリックIP」が付与されず、どれだけ門を通ろうとしても、外の世界から「あんた誰?」と拒否されてしまいます。

—

4. トラブルシューティングの極意:なぜ繋がらないのか?

現場で「設定したはずなのに繋がらない!」という時は、だいたいこの3つのどれかです。

1. ルートテーブルが設定されていない(または間違ったサブネットに紐付いている)

  • 地図を見ずに門まで歩いている状態です。ルートテーブルの 0.0.0.0/0 のターゲットが igw-xxxx になっているか確認しましょう。

2. パブリックIPアドレスが付与されていない

  • たとえ門が開いていても、住所(IPアドレス)がマンション専用(プライベートIP)だと、インターネットの郵便配達員は届けることができません。

3. セキュリティグループの遮断

  • マンションの玄関に「厳重なセキュリティゲート」がある状態です。インバウンドルールで 80 や 443 ポートなどが許可されているか確認してください。

—

最後に:一歩ずつ進めば怖くない

いかがでしたか?「パブリックサブネット」といっても、要は「外への門と地図があり、外で使える住所を持っている」というシンプルなルールの上に成り立っています。

まずは、コンソール画面やコードで「ルートテーブルに 0.0.0.0/0 があるか?」という視点を持つだけで、ネットワークトラブルの解決速度は劇的に上がります。

もし皆さんの環境で「繋がらない!」と悩んだときは、ぜひこの記事の「郵便配達」を思い出してみてくださいね。それでは、素敵なクラウドライフを!

コメント

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