🎯 最初に結論
Transit Gateway(TGW)の「共有サービスによる分離VPC」パターンは、 複数のVPCを互いに通信させず(分離)、でも共通で使いたいサービス(共有VPC)だけには全VPCからアクセスできるようにする設計です。 これを実現するカギは「2つのルートテーブル」と「AssociationとPropagationの組み合わせ」です。
🏬 ショッピングモールでたとえると?
Transit Gatewayの共有サービスパターンは、セキュリティの厳しいショッピングモールにそっくりです
🏢 たとえ話の全体像
あるショッピングモールには、3つのテナント店舗(VPC A・B・C)が入っています。
各テナントは完全にセキュリティで仕切られていて、隣の店舗には絶対に入れません。
しかし、共用施設(フードコート・トイレ・駐車場=VPC D)には、どのテナントの従業員も自由に行けます。
また、搬入口(VPN接続)から外部の配送トラックが出入りします。
このモール全体の通路を管理する「総合案内所」が、Transit Gatewayです。
📐 全体アーキテクチャ図
Transit Gatewayを中心に、分離VPCと共有VPCがどう接続されるか
🔀 通信フロー:何が通って何がブロックされる?
このパターンでの3つの代表的な通信パターン
分離ルートテーブルにVPC Dへの経路(Propagation)があるため、共有サービスには到達できる
分離ルートテーブルにVPC Bへの経路が存在しないため、TGWで破棄される
共有ルートテーブルに全VPCの経路がPropagateされているため到達可能
🔑 このパターンのカギ:AssociationとPropagation
ルートテーブルの「関連付け」と「経路伝播」の2つの仕組みが分離と共有を実現する
📌 Association(関連付け)
アタッチメント(VPCやVPN)が「どのルートテーブルを見て行き先を決めるか」を設定すること。 1つのアタッチメントは1つのルートテーブルにだけAssociateできる。
テナントに配られる「館内地図」のこと。テナントAに渡す地図は1種類だけ。その地図に載っている場所にしか行けない。
📢 Propagation(経路伝播)
アタッチメントのCIDR(住所)を「どのルートテーブルに登録するか」を設定すること。 1つのアタッチメントは複数のルートテーブルにPropagateできる。
テナントの「住所」を、どの地図に掲載するか。共用施設(VPC D)は両方の地図に住所を載せるので、誰からも見つけてもらえる。
Association = 「自分が見る地図を選ぶ」(どのルートテーブルで行き先判定するか)
Propagation = 「自分の住所をどの地図に載せるか」(他のアタッチメントから自分への経路を作る)
📊 設定マトリクス:誰がどこにAssociate / Propagateする?
分離と共有を実現する具体的な設定の全体像
| アタッチメント | 分離ルートテーブル | 共有ルートテーブル |
|---|---|---|
| VPC A(開発) | ✔ Associate | — |
| VPC B(テスト) | ✔ Associate | — |
| VPC C(本番) | ✔ Associate | — |
| VPC D(共有) | — | ✔ Associate |
| Site-to-Site VPN | — | ✔ Associate |
| アタッチメント | 分離ルートテーブルに伝播 | 共有ルートテーブルに伝播 |
|---|---|---|
| VPC A(開発) | — | ✔ Propagate |
| VPC B(テスト) | — | ✔ Propagate |
| VPC C(本番) | — | ✔ Propagate |
| VPC D(共有) | ✔ Propagate | ✔ Propagate |
| Site-to-Site VPN | ✔ Propagate | — |
🗺️ 2つのルートテーブルの中身
Propagationの結果、各ルートテーブルに実際にどんな経路が入るか
分離VPCが参照するルートテーブル。共有VPCとVPNだけの経路が入り、他の分離VPCへの経路は入らない。
| 宛先 CIDR | ターゲット | タイプ |
|---|---|---|
| 10.4.0.0/16 | VPC D Attachment | propagated |
| 10.99.99.0/24 | VPN Attachment | propagated |
共有VPCとVPNが参照するルートテーブル。全VPCの経路が入り、どこへでもアクセスできる。
| 宛先 CIDR | ターゲット | タイプ |
|---|---|---|
| 10.1.0.0/16 | VPC A Attachment | propagated |
| 10.2.0.0/16 | VPC B Attachment | propagated |
| 10.3.0.0/16 | VPC C Attachment | propagated |
🔧 構築の流れ(4ステップ)
この構成を実際に作る際の手順
Transit Gatewayを作成
リージョンにTGWを1つ作成。デフォルトのルートテーブル自動作成はオフにして、手動で2つのルートテーブルを作るのがおすすめ。
4つのVPCとVPNをAttach
VPC A〜D+VPNをTGWにアタッチ。各VPCのサブネットルートテーブルに 0.0.0.0/0 → TGW のルートを追加。
2つのルートテーブルを設定
「分離RT」と「共有RT」を作成。VPC A〜Cは分離RTにAssociate、VPC DとVPNは共有RTにAssociate。
Propagationを設定
VPC D → 両方のRTにPropagate。VPC A〜C → 共有RTにのみPropagate。VPN → 分離RTにPropagate。これで完成!
💼 実際のユースケース
このパターンが効果的な4つのシナリオ
マルチ環境(開発/テスト/本番)
開発・テスト・本番の環境を分離しつつ、共通のActive DirectoryやDNSサーバーには全環境からアクセス。環境間の事故(本番に開発のトラフィックが混入)を防止。
マルチテナント(部門別分離)
営業部門・開発部門・経理部門のVPCを分離。共有VPCには社内ポータル・メールサーバー・監視ツールを配置。部門間のデータ漏洩リスクを低減。
規制準拠(コンプライアンス)
PCI-DSS対象のカード決済VPCとHIPAA対象の医療データVPCを厳格に分離。共有VPCにはログ集約・セキュリティ監視を配置し、一元管理。
マルチアカウント(AWS Organizations)
AWS RAM(Resource Access Manager)でTGWをクロスアカウント共有。各チームのアカウントVPCを分離しつつ、共有サービスアカウントのVPCに集約。
⚖️ TGWの3つの主要パターン比較
今回のパターンが他の構成とどう違うか
| 項目 | 集中型ルーター | 分離VPC | 共有サービス付き分離VPC ⭐ |
|---|---|---|---|
| VPC間通信 | 全VPC間OK | 全VPC間NG | 分離VPC間NG / 共有VPCとはOK |
| ルートテーブル数 | 1つ(デフォルト) | 2つ | 2つ |
| 共有サービス | 不要(全通信可能) | なし | あり(VPC D) |
| セキュリティ | 低(全開放) | 高(完全分離) | 高(分離+共有の両立) |
| 適用シーン | 小規模/開発用 | 完全独立環境 | エンタープライズの標準構成 |
❓ よくある質問
VPCピアリングは1対1の接続なので、VPCが増えるたびに接続数が爆発的に増えます(N×(N-1)/2)。Transit Gatewayなら中央のハブに各VPCを接続するだけ。さらに、ルートテーブルによる分離/共有の制御はピアリングではできません。
代表的なのは、DNS(Route 53 Resolver)、Active Directory、監視ツール(CloudWatch Agent集約先)、VPCエンドポイント(S3やDynamoDBなど)、NATゲートウェイ(集約型インターネットアクセス)、セキュリティアプライアンスなどです。
その場合は、追加のルートテーブルを作成して特定のVPCだけをグループ化するか、共有VPCにファイアウォールやプロキシを配置して、共有VPC経由で制御された通信を許可する方法があります。TGWのルートテーブルは複数作成できるので柔軟に対応可能です。
TGWは「アタッチメント1つあたりの時間課金」と「TGWを経由したデータ転送量(GB単位)」の2つで課金されます。VPCの数やルートテーブルの数自体には追加料金はかかりません。最新の料金は AWS Transit Gateway 料金ページをご確認ください。
1つのアタッチメントからのトラフィックに対して、ルーティング判定は1つのルートテーブルで一意に行う必要があるためです。もし2つのルートテーブルで判定すると、矛盾する経路がある場合にどちらを使うか決められなくなります。一方、Propagationは「住所の登録」なので複数に登録しても矛盾しません。
🎓 まとめ
Transit Gatewayの「共有サービスによる分離VPC」パターンは、
2つのルートテーブルとAssociation / Propagationの設定だけで
「分離」と「共有」を同時に実現するシンプルかつ強力な構成です。
ショッピングモールのように、テナント同士は分離しつつ共用施設だけはみんなで使う。
この直感的なイメージを持っておけば、TGWのルーティング設計も怖くありません!