AWS SAA(Solutions Architect - Associate)対策
PeeringとTransit Gateway
このレッスンでできるようになること。VPC 間をつなぐ要件で、ピアリングと Transit Gateway のどちらが答えかを、つなぐ数と「推移」の一語から判断できるようになります。
要件の文から入る
ある企業が VPC-A と VPC-B をピアリングし、VPC-B と VPC-C もピアリングしています。開発チームから「VPC-A から VPC-C へ通信できない」と報告がありました。ルートテーブルもセキュリティグループも正しく書かれています。原因は何でしょうか。
原因は設定ミスではありません。VPC ピアリングは推移的ルーティングをしないという仕様です。A と B、B と C がつながっていても、B を中継して A から C へは届きません。届かせたければ A と C の間にもピアリングを張るしかありません。この一文が答えの決め手になる問題が繰り返し出ます。
つなぐ数で崩れる
ピアリングは 1 対 1 の接続です。n 個の VPC を全部つなぐには、n × (n - 1) ÷ 2 本が要ります。
| VPC の数 | 必要なピアリング接続 | ルートテーブルの管理 |
|---|---|---|
| 3 | 3 本 | まだ手で追える |
| 5 | 10 本 | 追加のたびに全 VPC を触る |
| 10 | 45 本 | 現実的でない |
| 20 | 190 本 | 破綻する |
「今後 VPC が増えていく」「拠点や部門ごとに VPC を作る」と書かれていたら、この表の右下へ向かう話です。ここで Transit Gateway が答えになります。Transit Gateway は中央のハブで、各 VPC はハブへ 1 本アタッチするだけで済みます。n 個なら n 本です。しかもハブなので推移的にルーティングできます。VPN や Direct Connect のゲートウェイもハブへ寄せられるので、オンプレミスを含む構成でもきれいにまとまります。
線引き
| VPC ピアリング | Transit Gateway | |
|---|---|---|
| 形 | 1 対 1 のフルメッシュ | ハブアンドスポーク |
| 推移的ルーティング | しない | する |
| 接続数 | n × (n - 1) ÷ 2 | n |
| リージョンまたぎ | できる (リージョン間ピアリング) | できる (ピアリングアタッチメント) |
| オンプレミス接続の集約 | できない | VPN と Direct Connect を集約できる |
| 料金 | データ転送料のみ | アタッチメントの時間課金 + データ処理料 |
| CIDR の重複 | 重複していると張れない | 重複していると同様に扱えない |
最終行は両方に共通する制約です。CIDR が重複している VPC 同士は、どちらの方式でもそのままつなげません。「合併した会社の VPC がどちらも 10.0.0.0/16 だった」というシナリオでは、Transit Gateway を出しても解決しません。設計し直すか、PrivateLink のように個別サービスだけを公開する方式へ寄せます。
料金の行も効きます。VPC が 2 つか 3 つしかないのに Transit Gateway を選ぶと、アタッチメントの時間課金が無駄になります。「最も低コストで」と書かれた少数 VPC の問題では、ピアリングが正解です。
要件語から構成への対応表
| 要件文の言い回し | 選ぶもの |
|---|---|
| 2 つの VPC を最も低コストでつなぐ | VPC ピアリング |
| 多数の VPC を相互に、今後も増える | Transit Gateway |
| A から B 経由で C へ届かせたい | Transit Gateway (ピアリングでは不可能) |
| VPN と Direct Connect も 1 か所に集約 | Transit Gateway |
| 特定のサービスだけを他 VPC へ公開する | PrivateLink (VPC 全体をつながない) |
| CIDR が重複している | どちらでも不可。設計変更か PrivateLink |
よくある引っ掛け
1 つめは、中継用の EC2 やルーティング設定でピアリングを推移させようとする選択肢です。ピアリング接続そのものを他 VPC の中継に使うことはできません。仕様として不可能なので、もっともらしく見えても落とします。
2 つめは、VPC が 2 つしかない構成に Transit Gateway を出すものです。動きますし将来にも強いのですが、「最も低コストで」という制約語があると負けます。要件語がコストなのか拡張性なのかを読み分けます。
まとめ
- ピアリングは推移しません。A-B と B-C があっても A-C は届きません
- 全部つなぐには n × (n - 1) ÷ 2 本が要り、数が増えると破綻します
- Transit Gateway はハブで、推移的にルーティングでき、接続は n 本で済みます
- Transit Gateway は VPN と Direct Connect も集約できます
- 少数 VPC でコストが要件ならピアリング。増えていくなら Transit Gateway です
- CIDR が重複していると、どちらの方式でも接続できません
復習ミニクイズ
ある企業が VPC-A と VPC-B、VPC-B と VPC-C をそれぞれ VPC ピアリングで接続しています。新たに「VPC-A のアプリから VPC-C のデータベースへ到達させたい」という要件が出ました。今後 VPC は部門ごとに 10 個以上へ増える予定です。CIDR は重複していません。最も適切な構成はどれですか。