「VPC同士を繋ぎたいんだけど、ピアリングとTransit Gateway、結局どっちを使えばいいんだろう」——AWSのネットワーク設計で、一度はここで手が止まると思います。私もSAP(Solutions Architect Professional)の学習を始めた初日に、まさにこの3つ(VPCピアリング/Transit Gateway/PrivateLink)の使い分けでつまずきました。本記事は、私がその場で答えられず悔しい思いをした「12VPCで66本に膨らむ罠」を入口に、3つの違いを「共有の単位」という1本の軸で迷わず選べるように整理します。
1. 結論:迷ったら「繋ぐか/晒すか」→「1対1か/多対多か」
細かい機能比較に入る前に、判断の最上位の軸を先に置きます。これさえ持っておけば、設問でも実務でも8割は即決できます。
- 第1の軸:ネットワークを「繋ぐ」のか、サービスを「晒す」のか
VPC同士のネットワークを相互接続したいなら「繋ぐ」(=ピアリング/Transit Gateway)。ネットワークは繋がず、特定のサービス1つだけ相手に見せたいなら「晒す」(=PrivateLink)。 - 第2の軸:「1対1」か「多対多」か
繋ぐと決めた後、接続が2〜数個の単発なら1対1(=ピアリング)、多数のVPCやオンプレを束ねるなら多対多の中央ハブ(=Transit Gateway)。
表にすると、3つはこう住み分けます。「共有の単位」が全部バラバラなのがポイントです。
| 方式 | 本質 | 共有の単位 | 一言での使い分け |
|---|---|---|---|
| VPCピアリング | 2つのVPCを1対1で直結(推移的ルーティング不可) | VPC全体 | 2〜数個の直結・低コスト最優先 |
| Transit Gateway | 多数のVPC/オンプレを束ねる中央ハブ | ネットワーク同士(多対多) | 大規模・マルチアカウント・ハイブリッド集約 |
| PrivateLink | 1つのサービスだけを他者に公開(NWは繋がない) | サービス1個 | CIDR重複・サービス単位の限定公開 |
2. VPCピアリングが12VPCで「66本」に膨らむ理由
正直に書きます。私が学習初日に答えられなかったのが、この定量化でした。「12個のVPCを相互接続したい。ピアリングが不向きな理由は?」という問いに、「1対1だから不向き」と概念では答えられたのに、肝心の本数が口から出てこなかったのです。SAPの本番は、この「数字での足切り」が選択肢を1つに絞る決め手になります。
VPCピアリングは2つのVPCを1対1で結ぶため、N個のVPCを全部繋ぐ(フルメッシュ)には次の本数が必要です。
必要なピアリング接続数 = N × (N − 1) ÷ 2
この式に当てはめると、VPCが増えた瞬間に管理が破綻するのが一目で分かります。一方、Transit Gateway は各VPCをハブに1本ずつ繋ぐだけなので、本数は N 本で済みます。
| VPCの数 | ピアリング(フルメッシュ) | Transit Gateway |
|---|---|---|
| 3 | 3 本 | 3 本 |
| 5 | 10 本 | 5 本 |
| 12 | 66 本 | 12 本 |
| 15 | 105 本 | 15 本 |

VPCが12個で66本、15個になると105本です。ピアリングは推移的ルーティングができない(AとB、BとCを繋いでもAとCは通信できない)ため、「全部を繋ぐ」には必ずこのフルメッシュ本数が要ります。だから「多数のVPCを相互接続」と来たら、本数で破綻するピアリングではなくTransit Gateway、と即断できるわけです。
ちなみに私はこの穴を、翌日のウォームアップで「15VPC=105本」を反射で出せるまで潰しました。概念を理解していても、数字が出ない=本番では落とす。ここは暗記でなく式を1本持っておくのが正解でした。
3. 3つの違いを「共有の単位」で斬る
VPCピアリング=VPC全体を1対1で繋ぐ(非推移的)
ピアリングは2つのVPCを直結し、VPC全体を相互に見えるようにします。時間課金がなく、データ転送のみの低コストが最大の利点。ただし前述のとおり推移的ルーティングができず、数が増えると本数で破綻します。「2〜数個を安く直結したい」が唯一にして明確な適所です。
Transit Gateway=多対多を中央ハブで束ねる
Transit Gateway(TGW)は、多数のVPC・VPN・Direct Connectを1つのハブに集約します。共有の単位はネットワーク同士(多対多)。マルチアカウントなら AWS RAM で他アカウントから同じTGWへ接続でき、ハイブリッド構成の集約点にもなります。「大規模」「マルチアカウント」「オンプレ集約」のどれかが文中に出たら、ほぼTGWで確定です。
PrivateLink=サービス1個だけ晒す(CIDR重複OKの理由)
PrivateLinkだけ毛色が違います。ネットワークを繋がず、サービス1個だけを相手のVPCに見せる仕組みです。ここが多くの人(私を含む)が腹落ちしないポイントなのですが、PrivateLinkがCIDRが重複していても使える理由は、相手VPCの中にENI(ネットワークインターフェース)を1つ注入するだけで、IPアドレス空間そのものを統合しないからです。ピアリングやTGWは「ネットワークを繋ぐ」のでCIDRが重複したらルーティングが破綻しますが、PrivateLinkは「サービスへの入り口を1個置く」だけなので、お互いのCIDRが何だろうと関係ありません。
だから判断はこうなります。「相手のネットワーク全部と通信したい」のか、「特定のサービス1個にだけアクセスさせたい(または公開したい)」のか。後者で、しかもCIDRが重複しているなら、答えは考えるまでもなくPrivateLinkです。
4. 実務とSAP試験での使い分け早見
設問や設計で「何が文中に出たら、どれを選ぶか」を一覧にしておきます。私が学習で蓄積した「足切りワード」です。
| 状況・要件のキーワード | 選ぶべき方式 | 決め手 |
|---|---|---|
| 2〜数個のVPCを安く直結 | VPCピアリング | 時間課金なし・低コスト最優先 |
| 多数VPCを相互接続/運用負荷最小 | Transit Gateway | フルメッシュ N(N−1)/2 本で破綻するから |
| マルチアカウント・オンプレを集約 | Transit Gateway(+RAM/DX Gateway) | 中央ハブで束ねる |
| 特定サービス1個だけ公開 | PrivateLink | ネットワークは繋がない |
| CIDRが重複している | PrivateLink | ENI注入でIP空間を統合しないから |
5. 私がつまずいたポイント(実体験)
ここまで整理しておいて言うのも何ですが、私はこの3つを最初から綺麗に切り分けられたわけではありません。つまずきは大きく2つでした。
- 定量化の反射が出なかった:概念は分かっていたのに「66本」が口から出ず、選択肢を絞れなかった。式(N(N−1)/2)を1本持つだけで解消。
- 「非推移的」の主語を取り違えた:統合問題で「ピアリングが不向きな理由」を答える際、主語が逆になって減点。ピアリングは非推移的だからフルメッシュが必要、という因果を正しい向きで言い切れるかが本番の分かれ目でした。
そして、ここから一段深い沼が待っています。Transit Gatewayを選んだあと、今度は「アソシエーション」と「プロパゲーション」の混同という、SAP最頻出の引っかけにハマります。これは記事を分けて、私が実際に間違えた例とともに解説します(公開次第このページからリンクします)。
まとめ
3つは「共有の単位」で考えれば迷わない。ネットワークを繋ぐVPC全体(ピアリング)か、ネットワーク同士の多対多ハブ(Transit Gateway)か、サービス1個だけ晒す(PrivateLink)か。まず「繋ぐ/晒す」、次に「1対1/多対多」。この順で問えば、12VPCで66本に膨らむような罠は踏みません。
このVPC接続の整理は、私がAWS SAP合格を目指して続けている学習記録の一部です。挑戦の全体像と他のテーマは、以下のまとめページからどうぞ。