VPCピアリングにおける推移的ピアリングとは?
2024/08/05
masyus
業務でGoogle Cloud内に複数のVPCを構築する機会がありまして、その際VPC間通信をどのように構築するか調査中に推移的ピアリングという言葉を知りました。今回は推移的ピアリングについて、「そもそもVPCピアリングとは何か?」から紹介いたします。
VPCピアリングとは?
2つのVPCを1対1でネットワーク的に繋ぎ、データを転送できるようにする機能のことです。インターネットを介さず互いのVPC内リソースへ内部IPで通信できるため、
- 通信速度がインターネット接続よりも速い
- 高いセキュリティを担保できる
という点が特徴です。
Google CloudにおけるVPCピアリング構成例
互いのVPCは、それぞれのサブネットの内部IPを互いにエクスポート & インポートすることが可能です(同一Project・別VPC同士でピアリングを構成することもできます)。これにより、例えばサブネット内に配置されたVMからピアリング先のVMへの通信を内部IPでできるようになります。
例)SSHによる内部IP通信例
「推移的」とは何かをおさらいする
数学的な話で
A = B 且つ B = C
である時、
A = C である
といえます。これを推移的関係と呼びます。つまりA = Cが暗黙的に自明であることを意味します。
VPCピアリングにおいては、推移的ピアリングがサポートされていない
これはGoogle Cloudに限らずAWSでも同様ですが、それぞれのパブリッククラウドが提供するVPCピアリングでは推移的ピアリングがサポートされていません。これはVPCピアリングが1対1で構成されているためです。
例えば下記のようなVPCピアリング構成があるとします。
上記において、Compute VM A → Compute VM Cへ直接SSHすることは可能でしょうか?正解は… 不可能です。Compute VM AとCompute VM Cは互いのVPCが推移的ピアリングに当たります。直接通信できるようにするにはVPC A ~ VPC C間にVPCピアリングを作ることが必要です。
ちなみに、直接ではなく間接的にSSHしたい場合は代替案があります。Compute VM AからCompute VM Bを踏み台としてSSHし、Compute VM BからCompute VM CへさらにSSHすることは可能です。