AWS資格

VPCピアリングとTransit Gatewayの違い|12VPCで66本に膨らむ罠と使い分け

「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ピアリングのフルメッシュ(12VPCで66本)とTransit Gatewayハブ(12本)の接続数比較図
VPCが12個の場合、ピアリング全結合は66本、Transit Gatewayは12本。接続数の式 N(N−1)/2 が破綻ラインを決める。

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合格を目指して続けている学習記録の一部です。挑戦の全体像と他のテーマは、以下のまとめページからどうぞ。

-AWS資格