クラウドの「交通渋滞」を解消せよ!TGW(Transit Gateway)で叶えるスマートなネットワーク設計
こんにちは!SRE兼クラウドアーキテクトの筆者です。
クラウドインフラの世界に飛び込んで間もない皆さん、AWSやGCPでサーバーを増やしていくうちに、こんな悩みを感じたことはありませんか?
「VPCが増えすぎて、どのネットワークがどこに繋がっているのか、まるでスパゲッティ状態だ……」と。
今日は、そんな複雑なネットワークをスッキリ整理整頓し、まるで「ハブ空港」のようなスマートな通信を実現するTransit Gateway(TGW)について、身近な例えを交えて紐解いていきましょう!
—
そもそも、なぜ「ハブ&スポーク」が必要なの?
皆さんがもし、日本全国の友達全員に手紙を出すと想像してください。
もし友達一人ひとりと「専用の直通郵便局」を契約していたらどうでしょう? 友達が増えるたびに郵便局を建てなければならず、管理もコストもパンクしてしまいますよね。
クラウドのネットワークも全く同じです。
VPC(仮想ネットワーク)同士を個別に繋ぐ「ピアリング」という方法もありますが、VPCの数が5個、10個と増えていくと、接続線(ルートテーブル)の管理はまさに地獄絵図。
そこで登場するのが Transit Gateway(TGW) です。
TGWは、いわば「巨大なハブ空港」。すべてのVPC(各地の飛行場)は、一度ハブ空港であるTGWを経由して通信を行います。これにより、ネットワーク構成がシンプルかつ拡張性の高いものに生まれ変わるのです。
—
TGWの仕組みを紐解く:郵便配達のたとえ
TGWの構成を理解するために、3つのキーワードを「郵便物」になぞらえてみましょう。
1. アタッチメント(Attachment):
VPCとTGWを繋ぐ「専用の搬入用スロープ」です。これがないと、そもそも荷物(パケット)をハブに運び込めません。
2. ルートテーブル(Route Table):
ハブ空港の「仕分け担当者」が持っている住所録です。荷物の宛先を見て、「あ、これはA社のVPC行きだな」「こっちはオンプレミスのデータセンター行きだな」と判断します。
3. ルーティングドメイン:
「一般客用エリア」と「VIP専用エリア」のように、通信経路をグループ分けする仕組みです。セキュリティレベルが違うネットワーク同士を物理的に分けたいときに重宝します。
—
実践!Terraformで構築するTGWネットワーク
では、実際に現場でよく使われるTerraformコードを例に、ネットワークの基盤を作ってみましょう。まずはTGWそのものを作成します。
# Transit Gateway本体の作成
resource "aws_ec2_transit_gateway" "main_tgw" {
description = "全VPCを集約するためのハブ"
# ルートテーブルを自動で伝搬するかどうか(基本はtrueでOK!)
default_route_table_propagation = "enable"
tags = {
Name = "Production-Transit-Gateway"
}
}
次に、VPCをTGWに「アタッチ(接続)」させます。
# VPCとTGWを繋ぐアタッチメント
resource "aws_ec2_transit_gateway_vpc_attachment" "vpc_a_attach" {
subnet_ids = ["subnet-12345678"] # 各VPC内のサブネットを指定
transit_gateway_id = aws_ec2_transit_gateway.main_tgw.id
vpc_id = "vpc-87654321"
# DNSサポートを有効にすると、VPC間での名前解決が楽になります
dns_support = "enable"
}
—
現場のSREが教える「設計の極意」
初めてTGWを触る方が陥りやすい罠がいくつかあります。現場の知見として共有しますね。
- 「ルートテーブル」は分離せよ:
開発環境(Dev)と本番環境(Prod)は、同じTGWに繋いでいても、ルートテーブルを分けて通信できないように設計するのが鉄則です。これを「マルチテナント分離」と呼びます。
- IPアドレスの重複は厳禁:
VPC同士を繋ぐと、お互いのIPアドレスが見えるようになります。もし同じIP範囲(例:10.0.0.0/16)を使っているVPC同士を繋ぐと、パケットは「どっちに行けばいいの!?」と迷子になってしまいます。VPC設計の段階で、IPアドレスはしっかり計画しましょう。
- コストを意識しよう:
TGWは「通ったデータ量」に応じて課金されます。不要な通信がTGWを通らないよう、適切なルートテーブルを設定して「近道」を作ることが、SREとしての腕の見せ所です。
—
まとめ:一歩ずつ、確実に進もう
TGWは一見難しそうですが、「ネットワークを集約して管理を楽にするためのハブ」だと考えると、ぐっと身近に感じられませんか?
最初は図を描いて、どのVPCからどのVPCへ通信させたいのか、整理することから始めてみてください。それができれば、Terraformのコードを当てはめるだけで、あなたのクラウドネットワークは格段に美しく、強固なものになります。
「ネットワークはインフラの血液」です。流れをきれいに整えて、最高のアプリケーション体験を支えていきましょう!
もし構築中に「ルートが伝播しない!」「疎通が取れない!」と悩んだら、それはあなたが成長している証拠です。その時はまた、パケットの気持ちになって、一つひとつのルートテーブルを見直してみてくださいね。
それでは、次回の記事もお楽しみに!
コメント