AWSネットワークの「住所」と「地図」:サブネットとルートテーブルの切っても切れない関係
こんにちは!クラウドの世界へようこそ。AWSを触り始めると、必ずと言っていいほどぶつかるのが「VPC(Virtual Private Cloud)」という概念です。
「サブネットとかルートテーブルとか、名前が難しすぎて頭が痛い…」
そう思っていませんか?大丈夫です。今日は、皆さんが毎日手に取る「郵便」に例えて、このネットワークの仕組みを紐解いていきましょう。一歩ずつ、丁寧に解説していきますね。
—
1. 郵便配達で例える「サブネット」と「ルートテーブル」
まず、VPCを「広大な新しい街」だと想像してみてください。
- サブネット:街の中の「エリア(番地)」です。「ここは住宅街(プライベートサブネット)」「ここは誰でも入れる公園(パブリックサブネット)」といった区画分けですね。
- ルートテーブル:これは、配達員さんが持っている「地図(目的地への行き方案内)」です。
「この荷物はどこへ届ければいいの?」という問いに対して、ルートテーブルという地図が「あっちのゲートから外に出るんだよ」とか「このエリアの中だけで配送するんだよ」と教えてくれるのです。
なぜ「1つのサブネットにつき、1つのルートテーブル」なのか?
AWSの仕様では、1つのサブネットに対して、関連付けられるルートテーブルは必ず1つだけと決まっています。
これ、なぜだと思いますか?もし、1つのエリアに対して「地図A」と「地図B」という2枚の地図を持っていたら、配達員さんは混乱してしまいますよね。「どっちを信じればいいの!?」となってしまうからです。
AWSは、ネットワークの事故を防ぐために、「このエリア(サブネット)には、この地図(ルートテーブル)を1つだけ適用する」というルールを徹底しているんです。シンプルで安全な仕組みですよね。
—
2. 複数のサブネットを「同じ地図」で管理するメリット
逆に、複数のサブネットを「1つのルートテーブル」に紐付けることは可能です。
これは非常に便利な仕組みです。例えば、Webサーバーを3つの異なるエリア(AZ:アベイラビリティーゾーン)に分散させて配置する場合を考えてみましょう。
- サブネットA(Webサーバー1)
- サブネットB(Webサーバー2)
- サブネットC(Webサーバー3)
これら全てをインターネットに公開したい場合、3つのサブネット全てに「インターネットゲートウェイ(街の外に出るための大きな門)」を指し示す「同じルートテーブル」を適用すればいいのです。
こうすることで、管理が劇的に楽になります。「全部パブリックにしたい!」と思ったときに、地図を1枚書き換えるだけで、紐付いている全てのエリアを一括で制御できるからです。
—
3. 実践!AWS CLIで設定を見てみよう
理屈がわかったところで、実際の現場でどう設定を確認するかを見てみましょう。AWSの操作は、マネジメントコンソールだけでなく、コマンドライン(AWS CLI)を使うことも多いですよ。
例えば、現在のルートテーブルの関連付けを確認するコマンドは以下の通りです。
# 特定のVPC内のルートテーブル一覧と、その関連付けを確認するコマンド
aws ec2 describe-route-tables --filters Name=vpc-id,Values=vpc-xxxxxx
もし、あなたがこれから「Webサーバー用のサブネット」を作るなら、以下のようなイメージで関連付けを行います(※設定の概念図です)。
# ルートテーブルとサブネットの関連付け(イメージ)
# 1. まずルートテーブルを作成
# 2. そのルートテーブルに「0.0.0.0/0(外の世界)」へのルートを追加
# 3. 最後に、サブネットとルートテーブルを「関連付け(Association)」する
# 実際のCLI操作の流れ
aws ec2 associate-route-table \
--route-table-id rtb-12345678 \ # 共通の地図を指定
--subnet-id subnet-87654321 # 紐付けるエリアを指定
—
4. 今日のまとめと、次のステップ
いかがでしたか?今日押さえておきたいポイントは以下の2つだけです!
1. サブネットは「エリア」、ルートテーブルは「地図」。
2. エリア(サブネット)は1つの地図しか持てないけれど、地図(ルートテーブル)は複数のエリアに使い回せる。
このルールさえ頭に入っていれば、ネットワーク構築の設計図を見るときに「あ、ここは同じ地図を使っているから、同じポリシーで守られているんだな」と直感的に理解できるようになります。
インフラの世界は、一見難しそうに見えますが、実は現実世界の仕組みと非常によく似ています。「なぜこの仕様なのか?」を考えながら触ってみると、どんどん面白くなってきますよ!
次回は、今回少し触れた「インターネットゲートウェイ」について、もう少し深掘りしていきましょう。それでは、また次の記事でお会いしましょう!
コメント