【入門編】 AWS Transit GatewayとVPCアタッチメントのルートテーブル分離設計 – クラウドインフラと仮想化ネットワーク実践ガイド

AWS Transit Gatewayの「ルートテーブル分離」を完全攻略!郵便局の仕分けシステムで理解するネットワーク設計

こんにちは!クラウドの世界へようこそ。インフラエンジニアとして日々AWSの設計図を引いていると、必ずと言っていいほどぶつかる壁があります。それが「VPCが増えすぎて、ネットワークがスパゲッティ状態になる問題」です。

今日は、そんな悩みを一発で解決する救世主、AWS Transit Gateway (TGW) を使った「ルートテーブルの分離」について、郵便局の仕組みを例に、誰でもわかるように解説していきます。

—

1. なぜTransit Gatewayが必要なの?

VPCが2〜3個のうちは、VPC同士を直接つなぐ「VPCピアリング」で十分です。でも、VPCが10個、20個と増えていくとどうなるでしょう?

すべてのVPCを1対1でつなぐと、回線数はネズミ算式に増えて、管理はまさに地獄絵図になります。「AとBはつなぐけど、CとDは隔離したい」なんて要件が出てきた日には、もうお手上げですよね。

そこで登場するのが、Transit Gateway (TGW) です。TGWは、ネットワークの「中央ハブ(郵便局)」のような存在。すべてのVPCを一度この郵便局に接続することで、複雑なルート管理を中央で一元管理できるようになるんです。

—

2. 「関連付け」と「伝播」—郵便局の仕分けルール

TGWの核心は、「ルートテーブル」にあります。TGWには複数のルートテーブルを作ることができ、それぞれのテーブルで「どこに届けるか」というルールを書き込めます。

ここで重要なのが、以下の2つの概念です。

  • 関連付け (Association): 「このVPCは、どのルートテーブルを使って郵便物を配送するか」を決めるもの。
  • 伝播 (Propagation): 「このVPCの住所(ネットワーク範囲)を、どのルートテーブルのリストに自動で載せるか」を決めるもの。

これを郵便局に例えてみましょう。

  • 関連付け = 「あなたの家の集荷担当は、A地区のルート便ですよ」と指定すること。
  • 伝播 = 「A地区の配送リストに、あなたの家の住所を載せておきますね」と登録すること。

これらを使い分けることで、「本番環境のVPC同士は話せるけど、開発環境とは遮断する」といった高度な交通整理が可能になります。

—

3. 実践!ルートテーブルを分けて隔離してみよう

例えば、「本番用(Prod)」と「開発用(Dev)」を完全に分けたい場合、以下のような設計が一般的です。

1. Prod用ルートテーブル: Prod VPCを「関連付け」し、Prod VPCの住所を「伝播」させる。
2. Dev用ルートテーブル: Dev VPCを「関連付け」し、Dev VPCの住所を「伝播」させる。

こうすれば、ProdのルートテーブルにはDevの住所が載っていないため、物理的にパケットが届くことはありません。まさに魔法のような分離ですね!

AWS CLIでの設定イメージ

実際に、TGWでルートテーブルを作成し、関連付けを行うコマンドは以下のようになります。

# 1. 新しいルートテーブルを作成(本番用)
aws ec2 create-transit-gateway-route-table \
    --transit-gateway-id tgw-0123456789abcdef0 \
    --tag-specifications 'ResourceType=transit-gateway-route-table,Tags=[{Key=Name,Value=Prod-Route-Table}]'

# 2. VPCアタッチメントをルートテーブルに関連付ける
aws ec2 associate-transit-gateway-route-table \
    --transit-gateway-route-table-id tgw-rtb-0a1b2c3d4e5f6g7h8 \
    --transit-gateway-attachment-id tgw-attach-99887766554433221

# 3. 特定のVPCの住所を自動的に伝播させる設定
aws ec2 enable-transit-gateway-route-table-propagation \
    --transit-gateway-route-table-id tgw-rtb-0a1b2c3d4e5f6g7h8 \
    --transit-gateway-attachment-id tgw-attach-99887766554433221

—

4. 現場で役立つ「お作法」

最後に、現場で設計する際に気をつけている「コツ」を共有します。

  • デフォルトルートテーブルを過信しない: AWSはデフォルトでTGWルートテーブルを1つ作りますが、実務では「用途別(Prod/Dev/Sharedなど)」に必ず専用のテーブルを作りましょう。
  • 共通サービスは全伝播: ログサーバーや踏み台サーバーなど、「どこからでもアクセスさせたい」というVPCがある場合は、それらの住所をすべてのルートテーブルに伝播させると効率的です。
  • トラブルシューティングはフローログ: 「なぜか繋がらない!」という時は、TGWのフローログを確認しましょう。パケットがどこでドロップされたのか、宛先不明(ルートなし)なのか、一目瞭然です。

まとめ

TGWのルートテーブル設計は、最初は難しく感じるかもしれません。でも、「郵便物の宛先リスト(ルートテーブル)を、誰に見せるか(関連付け/伝播)」をコントロールしているだけだと考えると、少し親近感が湧きませんか?

この仕掛けをマスターすれば、どんなに大規模なクラウドネットワークでも、安全かつスッキリと管理できるようになります。一歩ずつ、パケットの旅路を想像しながら設計を楽しんでいきましょう!

何か不明な点や、「こんな構成は作れるの?」といった疑問があれば、ぜひコメントで教えてくださいね。応援しています!

コメント

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