こんにちは!SREとして日々クラウドの複雑な迷宮を探索している筆者です。
今回は、GCP(Google Cloud)のネットワークにおける「魔法の扉」、VPC Network Peering についてお話しします。
「VPCを分けたけど、お互いに通信させたい…」「でも、わざわざVPNを張るのも大げさだし、コストもかかるよね?」そんな悩みを抱えたとき、最初に手が届くのがこのピアリングです。
難しい専門用語は一旦置いておいて、まずは郵便配達のイメージでこの仕組みを紐解いていきましょう!
—
VPCピアリングは「隣町との私道」
想像してみてください。あなたは「プロジェクトA」という町に住んでいて、隣の「プロジェクトB」という町に荷物を届けたいとします。通常、町と町を行き来するには大きな公道(インターネット)を通る必要がありますが、ここには検問所(ファイアウォール)があったり、渋滞があったりと少し面倒ですよね。
VPCピアリングは、この2つの町の間に「関係者だけが通れる専用の私道」を敷くようなものです。
- プライベートIPで直接通信: インターネットに出ることなく、まるで同じLANの中にいるかのように、相手のIPアドレスへ荷物を届けられます。
- 高速で安全: 公道を通らないので、速度も速く、外部からの攻撃にさらされるリスクもグッと下がります。
設定画面で「相手のVPCネットワークの名前」を指定し、相手側でも「こちらのVPCネットワーク」を指定する。いわば「お互いに握手する」だけで、開通する非常に手軽な仕組みなんです。
—
避けては通れない「推移的ルーティング」の壁
さて、ここで一つ、現場のSREが必ずと言っていいほど直面する「落とし穴」があります。それが「推移的(Transitive)ルーティングはサポートされていない」という仕様です。
これ、初学者には少し難しく聞こえますよね。郵便配達に例えるとこうなります。
1. A町とB町が私道で繋がっている。
2. B町とC町も私道で繋がっている。
3. じゃあ、A町からC町へは、B町を経由して荷物を送れるよね?
…実は、GCPのVPCピアリングでは、これができません。
Aから見て「Bの向こう側にCがある」という情報は、残念ながら共有されないのです。「B町までの道は知っているけれど、その先にあるC町への行き方は教えてあげないよ!」という、少し頑固な仕組みなんですね。
—
どうやってこの壁を乗り越える?(対抗策)
「じゃあ、AからCへ通信したいときはどうすればいいの?」という疑問が湧きますよね。現場でよく使われる解決策をいくつかご紹介します。
1. 「直接繋ぐ」のが王道
シンプルですが、AとCの間に直接ピアリングを張ってしまうのが一番の近道です。構成が複雑にならなければ、これが最も管理しやすく、トラブルも少なくなります。
2. 「VPNハブ」や「Cloud Router」の活用
もっと大規模で複雑なネットワークが必要な場合は、Cloud VPNやCloud Interconnectを使い、ネットワークをハブ&スポーク型に構成します。これらは経路情報を動的に交換してくれるため、推移的な通信が可能になります。
—
実践:GCPでピアリングを構築してみよう
では、実際に gcloud コマンドでピアリングを設定する流れを見てみましょう。今回は vpc-a から vpc-b へ接続する想定です。
# 1. vpc-a から vpc-b への接続を作成
gcloud compute networks peerings create peer-a-to-b \
--network=vpc-a \
--peer-network=vpc-b \
--auto-create-routes # 自動でルートを交換するオプションをONに!
# 2. 相手側の vpc-b からも vpc-a への接続を作成(握手!)
gcloud compute networks peerings create peer-b-to-a \
--network=vpc-b \
--peer-network=vpc-a \
--auto-create-routes
設定のポイント
--auto-create-routes: これを有効にすると、お互いのVPCで使っているIPアドレス範囲(サブネット)を自動的に学習し、ルート表に書き込んでくれます。手作業でルーティングテーブルをいじる必要がないので、非常に便利です。- IPアドレスの重複は厳禁: 接続する2つのVPCで、IPアドレスの範囲(例:
10.0.0.0/16)が被っていると、どちらの町へ行けばいいか分からなくなり通信できません。ネットワーク設計の段階でしっかりIP設計をしておくのが、SREとしての腕の見せ所です。
—
最後に:ネットワークは「地図」を描くこと
VPCピアリングは、クラウドインフラを使いこなすための強力なツールです。最初は「推移的ルーティングができない」という制約に戸惑うかもしれませんが、「ネットワークをシンプルに保つことが、安定運用の第一歩」というGCPの思想が込められていると解釈してみてください。
複雑な経路を作らず、必要な場所をダイレクトに繋ぐ。そうやって丁寧に「ネットワークの地図」を描いていくことで、あなたのシステムはより堅牢で、トラブルに強いものになっていくはずです。
もし構築中に「あれ、通信できないな?」と思ったら、まずは双方のファイアウォール設定を確認しつつ、この「私道」がしっかり繋がっているか、一歩ずつ確認してみてくださいね。
それでは、良いクラウドライフを!
コメント