こんにちは、yassanです。
今回は「【AWS】ルートテーブルとは?」を紹介します。
わりと前にVPCについてまとめた記事を書いたんですが、そこでルートテーブルに関することがあまり書くことができていなかったので、
補足的な意味合いも込めて、解説します。
おさらい
ルートテーブルに関連する用語を簡単におさらいします。
VPC:
仮想ネットワークサービスのことです。
VPCを構築し、そこにEC2やALBなどのサービスをおくことができます。
いわゆるパブリッククラウドと呼ばれるものですね。
IPアドレス:
ネットワークに接続する機器に対してここに割り振られる番号、というのが広義の意味です。
AWSでは、VPCの中でIPアドレス(CIDRブロック)を新たに割り振ることができます。
(なので、すでにあるネットワークと組み合わせるときも、あたかもそのネットワークを拡張したかのように運用が可能です)
VPC内のIPアドレスは、10.0.0.0 ~ 192.168.255.255まで利用できます。
サブネット:
VPC内部で作成するアドレスレンジです。
サブネットを作成して、先ほどのIPアドレスを割り当てて運用するといった感じです。
EC2インスタンスは、このサブネットの中に作成します。
他にも色々書くことはありますが、ここでは割愛します。
ルーティング
ルートテーブルの説明の前に、ルーティングについて説明します。
ルーティングとは何か、それはネットワークと通信をする際に接続先IPアドレスを割り振るものです。
例えば、以下のようなネットワークがあったとします。

ネットワークaやネットワークbにパケットを送信するためには、必ずルーターAを通過することになります。
ルートテーブルには、パケット送信先のネットワーク、あるいは別のルートテーブルへの接続の割り振りが記載されています。
ここで、ネットワークcへのパケットがきた場合、
ルートテーブルAからルートテーブルBへ、ルートテーブルBからネットワークcへと接続します。

このように、接続先を割り振ることをルーティングといいます。
ルートテーブル
ルートテーブルは、ルーティングでの割り振り先が書かれたテーブル(表)になります。
先ほどの図では、ルートテーブルをかなり簡略に書いてしまいましたが、実際には様々な設定が記載されています。
先ほどのルーターAをもうちょっと詳しく書くとこんな感じになります。
宛先IPアドレス | ターゲット |
10.0.0.0/16(ネットワークaのこと) | local |
10.0.0.1/16(ネットワークbのこと) | local |
10.0.1.0/16 | ルーターB |
0.0.0.0/0 | ルーターX |
10.0.0.0/16をネットワークa、10.0.0.1/16をネットワークbとしました。
ターゲットは、AWS用語で次のルーターを指します。
その中で、localは自身のネットワークを指します。
一番下の、0.0.0.0/0はデフォルトルートといいます。
デフォルトルートは、どこにも一致しない場合の経路です。
ルートテーブルは、複数のサブネットが共有することができます。
しかし、複数のルートテーブルから一つのサブネットを適用することはできません。
また、サブネットに1つずつ設定する必要があります。
というわけで、ルートテーブルを正しく設定することで、サブネットの使い分けができるというわけです。
まとめ
いかがでしたでしょうか。
ルーティングはVPCの中でも、少し鬼門かなという感じがします。
特に、サブネットをパブリックとプライベートに分ける構築をする場合は必須となります。
ここまで読んでいただき、ありがとうございました。