はじめに

2023年11月8日に Network Connectivity Center を利用して 複数 VPC で VPC スポーク構成 がとれるようになりました。

概要

今までは VPC 間で通信をさせたい場合、それぞれのネットワークと VPC ネットワークピアリングにて接続する必要がありました。
今回の Network Connectivity Center のアップデートにより、従来からある機能のハブに、それぞれの VPC をスポークとして接続することが可能になります。以下イメージ図です。
※図にもある通り他プロジェクトも可能ですし、他組織のプロジェクトとも VPC スポーク構成が可能となります。

VPC ピアリングとの比較及び相違点は 公式ドキュメント に纏められており、こちらをみると、今後のアーキテクチャ選定の助けになるかと思うので、よろしければご覧ください。

制限事項

IP アドレスが被るような場合、エクスポートフィルタ を利用し、対象 CIDR の通信は流さないように、設定を考慮する必要があります。
また、上記したエクスポートフィルタはスポークの作成時にしか設定できないため、作成時に注意が必要です。
大きいのは上記の内容だと思いますが、その他でも、エクスポートフィルタの上限があったり、スポーク先でピアリングしている VPC へのアクセスはできない、など注意が必要な点があります。
その他細かい制限については、VPCスポークの制限事項 を参照ください。
また VPC スポークを削除した後のクールダウン期間の要件 というものがありますが、こちら設定が誤っていて、同じ VPC をスポークとして再作成しようとすると、クールダウン期間により作成が失敗する可能性もあります。焦らずに時間経過後に再実行しましょう(私は検証時に焦りました)。なお、3点目は長時間、、、としか書かれていないので、急ぎの場合やスケジュールに影響がでそうな場合、サポートに問い合わせるなど考えたほうが良さそうです。

補足

まだプレビューですが、IP 重複する場合、Private NAT で回避することが可能になりますので、こちらが GA されると幅が広がりそうです。
その他の IP 重複時の回避方法だと、利用目的が明確な場合などは、Private Service Connect を利用して回避する方法もありそうだな、と思います。

実際に触ってみた

手順としては容易で、作成するプロジェクトで、Network Connectivity Center を開き、ハブの作成をクリックします。

ハブの作成

ハブの作成情報を入力します

そのままスポークの作成も可能です。
スポークを作成する場合は、注意事項に記載したエクスポートフィルタはこのタイミングで設定しておく必要があります。

スポーク作成

作成後にハブの画面をみると以下の通り、ハブとスポークが表示され、ルート情報も表示されます。

ハブアンドスポーク一覧

ありきたりな方法ですが、双方の VPC に GCE を構築して Ping したところ、応答がありました。
※なお、ファイアウォールルールの設定は必要となります

作成時の参照手順

ハブの作成手順
VPC スポークを作成する

所感

ネットワーク間のつながりを意識するサービスは多くは無いですが、今後 VPC 間の接続を多く行なう必要がある場合、とても有用な機能だと思いました。
Cloud SQL や Memorystore を プライベートで利用しようとすると、新たにマネージドサービス用 VPC を払い出し、ピアリングが必要になるため、今回のハブアンドスポーク構成だと A VPC のインスタンスが、B VPC とピアリングしている Cloud SQL への接続はできません。その点まで行なえるとありがたいサービスだと思いました。
(もしかしたら Private Service Connect で回避しよう、という意味かもしれませんが、それで作成した Cloud SQL はインスタンスタイプが変えられないなど制約もあるため、回避できない部分もありそうだなというイメージです)。
細かい経路制御は少し難しそうではあるものの、Private NAT が GA されるとまた使いやすくなるサービスだと思いましたので、今後のアップデートにも期待したいです。