▪️目的
AWSでVPCやサブネットについて学んでいると、次に「ルートテーブル(Route Table)」という言葉が出てきます。
ルートテーブルは、AWSのネットワークを理解するうえで非常に重要な仕組みです。
簡単にいうと、
「どの宛先への通信を、どこへ送るのかを決めるための設定」
です。
しかし、
- ルートテーブルって何?
- サブネットとはどういう関係?
localって何?0.0.0.0/0って何?- Internet Gatewayとはどう関係する?
- NAT Gatewayはどこに登場する?
- Public SubnetとPrivate Subnetはどうやって決まる?
など、初めてAWSを学ぶ方には分かりにくい部分も多いと思います。
そこで今回は、AWSのルートテーブルについて初心者向けに解説します。
▪️ルートテーブルとは?
ルートテーブルとは、
ネットワーク通信の経路を定義するための設定
です。
例えば、あるサーバーから別のネットワークへ通信するとき、
この通信はどこへ送ればいい?
という判断が必要になります。
ルートテーブルには、その判断に使うルートが登録されています。
イメージすると、
通信
↓
宛先を確認
↓
ルートテーブルを確認
↓
どこへ送るか決定
という流れです。
▪️ルートテーブルの基本構造
ルートテーブルには、基本的に、
宛先(Destination)
と
ターゲット(Target)
という情報があります。
例えば、
宛先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 igw-xxxxxxxx
というルートがあるとします。
これは、
10.0.0.0/16宛
↓
VPC内部へ
0.0.0.0/0宛
↓
Internet Gatewayへ
という意味になります。
つまり、
「この宛先なら、この経路へ送る」
というルールがルートテーブルに登録されています。
▪️ルートテーブルとサブネットの関係
ここが非常に重要です。
ルートテーブルは、サブネットに関連付けて使用します。
例えば、
VPC
│
├─ Public Subnet
│ │
│ └─ Public用Route Table
│
└─ Private Subnet
│
└─ Private用Route Table
という構成です。
サブネットにどのルートテーブルを関連付けるかによって、そのサブネットから外部ネットワークへ通信するときの経路が変わります。
▪️ルートテーブルの「local」とは?
VPCを作成すると、ルートテーブルには基本的に、
宛先 ターゲット
10.0.0.0/16 local
のようなルートが存在します。
このlocalは、
同じVPC内の通信
を意味します。
例えば、
VPC
10.0.0.0/16
│
├─ Subnet A
│ 10.0.1.0/24
│ └─ EC2
│
└─ Subnet B
10.0.2.0/24
└─ EC2
という構成があるとします。
Subnet AのEC2からSubnet BのEC2へ通信する場合、宛先は、
10.0.2.x
です。
この宛先はVPCのCIDRである、
10.0.0.0/16
に含まれています。
そのため、
EC2
↓
Route Table
↓
10.0.0.0/16 → local
↓
VPC内部
↓
Subnet B
↓
EC2
というように、VPC内部へ通信できます。
0.0.0.0/0とは?
AWSのルートテーブルを見ていると、
0.0.0.0/0
という表記をよく見かけます。
これはIPv4における、
すべての宛先
を表すCIDRです。
つまり、
0.0.0.0/0
は、
「他のルートに該当しない通信」
をまとめて表すルートとして利用されます。
例えば、
宛先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 Internet Gateway
の場合、
10.0.0.0/16宛 → VPC内部- それ以外 → Internet Gateway
という経路になります。
▪️Public Subnetはどうやって決まる?
ここで、前回の記事で説明したPublic Subnetについて考えてみましょう。
Public Subnetとは、一般的に、
Internet Gatewayへのルートを持つルートテーブルが関連付けられたサブネット
です。
例えば、
Public Subnet
│
↓
Route Table
│
├─ 10.0.0.0/16 → local
│
└─ 0.0.0.0/0 → Internet Gateway
という構成です。
このように、インターネットへの通信経路が設定されています。
▪️Internet Gatewayとの関係
Internet Gateway(IGW)は、VPCとインターネットを接続するために利用されます。
ただし、
Internet GatewayをVPCに接続しただけでは、サブネットからインターネットへ通信できるわけではありません。
ルートテーブルに、
0.0.0.0/0 → Internet Gateway
というルートが必要になります。
イメージすると、
EC2
↓
Subnet
↓
Route Table
↓
0.0.0.0/0
↓
Internet Gateway
↓
Internet
となります。
つまり、
ルートテーブルが「どこへ向かうか」を決め、Internet GatewayがVPCとインターネットの間を接続する
という関係です。
▪️Private Subnetではどうなる?
では、Private Subnetではどうでしょうか。
例えば、
Private Subnet
│
↓
Route Table
│
└─ 10.0.0.0/16 → local
という構成にします。
この場合、VPC内部への通信はできますが、
0.0.0.0/0 → Internet Gateway
という直接のルートがありません。
そのため、Public Subnetとは異なる通信経路になります。
▪️Private Subnetからインターネットへアクセスする場合
Private Subnetに配置したEC2でも、外部へアクセスしたいケースがあります。
例えば、
- パッケージをダウンロードする
- OSをアップデートする
- 外部APIを呼び出す
などです。
このような場合には、一般的にNAT Gatewayを利用します。
例えば、
Private Subnet
│
↓
Route Table
│
↓
NAT Gateway
│
↓
Public Subnet
│
↓
Internet Gateway
│
↓
Internet
という経路を作ります。
Private Subnet側のルートテーブルには、
宛先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 NAT Gateway
のようなルートを設定します。
これによって、Private Subnetから外部へ通信できます。
▪️Public SubnetとPrivate Subnetのルートを比較
ここまでを比較すると分かりやすくなります。
♦︎Public Subnet
宛先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 Internet Gateway
イメージ:
Subnet
↓
Route Table
↓
Internet Gateway
↓
Internet
♦︎Private Subnet
宛先 ターゲット
10.0.0.0/16 local
0.0.0.0/0 NAT Gateway
イメージ:
Subnet
↓
Route Table
↓
NAT Gateway
↓
Internet Gateway
↓
Internet
この違いを理解すると、AWSのネットワーク構成図がかなり読みやすくなります。
▪️ルートはどのように選ばれる?
ルートテーブルには複数のルートを登録できます。
例えば、
宛先
10.0.0.0/16
10.0.1.0/24
0.0.0.0/0
のように複数のルートがある場合があります。
AWSでは、宛先に対して一致するルートの中から、**最も具体的なルート(最長プレフィックス一致)**が選択されます。
例えば、
10.0.0.0/16
より、
10.0.1.0/24
のほうが宛先を細かく指定しています。
そのため、
10.0.1.x
宛の通信では、10.0.1.0/24のルートが優先されます。
一方、それ以外の通信は、
0.0.0.0/0
などのより広いルートに該当します。
▪️実際のWebシステムで考えてみる
ここまで学んだ内容を、実際のWebシステムに当てはめてみましょう。
例えば、
Internet
│
↓
Internet Gateway
│
┌────────────┴────────────┐
│ VPC │
│ │
│ Public Subnet │
│ │ │
│ ↓ │
│ ALB │
│ │
│ Private Subnet │
│ │ │
│ ↓ │
│ EC2 │
│ │ │
│ ↓ │
│ RDS │
│ │
└─────────────────────────┘
この構成では、サブネットごとに異なるルートテーブルを関連付けることができます。
例えば、
Public Subnet
10.0.0.0/16 → local
0.0.0.0/0 → Internet Gateway
Private Subnet
10.0.0.0/16 → local
0.0.0.0/0 → NAT Gateway
という構成です。
このように、ルートテーブルによってサブネットから外部へ出ていく通信の経路を変えることができます。
▪️ルートテーブルを理解すると何が分かる?
ルートテーブルを理解すると、
「AWS上の通信がどこを通っているのか」
を追えるようになります。
例えば、
「Private SubnetのEC2からインターネットにアクセスできない」
という障害が発生したとします。
その場合、
EC2
↓
Subnet
↓
Route Table
↓
NAT Gateway
↓
Internet Gateway
↓
Internet
という通信経路を一つずつ確認できます。
例えば、
- ルートテーブルにNAT Gatewayへのルートがあるか
- NAT Gatewayが存在するか
- NAT GatewayがPublic Subnetに配置されているか
- Public SubnetからInternet Gatewayへのルートがあるか
などを確認できます。
このように、ルートテーブルはAWSネットワークのトラブルシューティングでも非常に重要です。
▪️AWS以外のネットワークでも考え方は同じ
ルートテーブルという考え方はAWS独自のものではありません。
ネットワーク機器やLinuxなどでも、
「宛先に応じて、どの経路へパケットを送るか」
というルーティングの考え方があります。
例えばLinuxでも、
ip route
コマンドを利用すると、ルーティング情報を確認できます。
AWSのルートテーブルを学ぶことで、これまでネットワークの勉強で学んできた、
- IPアドレス
- サブネット
- ルーティング
- デフォルトルート
などの知識がAWSの環境とつながってきます。
▪️まとめ
今回はAWSのルートテーブルについて解説しました。
今回のポイントをまとめます。
- ルートテーブルは通信経路を定義する
- 「宛先」と「ターゲット」の組み合わせでルートを設定する
- サブネットにルートテーブルを関連付ける
localはVPC内部への通信に利用される0.0.0.0/0はIPv4のデフォルトルートとして利用される- Public Subnetでは一般的にInternet Gatewayへのルートを設定する
- Private Subnetからインターネットへ出る場合はNAT Gatewayを利用する構成が一般的
- 複数のルートが一致する場合は、より具体的なルートが優先される
- ルートテーブルを理解するとAWSの通信経路を追えるようになる
VPCが「ネットワーク全体」、サブネットが「ネットワークの区画」だとすると、ルートテーブルは、
「その区画から、どの宛先へ、どの経路で通信するのかを決める案内図」
と考えると分かりやすいでしょう。
次の記事では「インターネットゲートウェイ(IGW)」について解説します。
*「インターネットゲートウェイ(IGW)」の記事はこちら
→「https://lovelabengineer.com/2026/10/08/awsのinternet-gatewayとは?vpcとインターネットを接続する仕組/」

No responses yet