こんにちは!クラウドインフラの世界へようこそ。SREとして日々さまざまなシステムを支えている私ですが、クラウドネットワークの仕組みに初めて触れるとき、誰もが一度は「あれ、これってどういうことだろう?」と立ち止まる壁があります。
その一つが、今回取り上げるGCP(Google Cloud)のVPCネットワークにおける「ルーティングモード(グローバル vs リージョナル)」です。
「パケットがどう飛ぶのか」「Cloud Routerがどう動くのか」といった言葉を聞くだけで、頭がクラクラしてしまう方もいるかもしれません。でも、安心してください!今回は難しい専門用語をいったん脇に置いて、私たちの身近にある「郵便配達の仕組み」に例えながら、一歩ずつ優しく紐解いていきましょう。
—
1. そもそもGCPの「ルーティングモード」ってなに?
GCPのVPC(Virtual Private Cloud)ネットワークを作る際、私たちはこっそりと(あるいは意識せずに)重要な選択を迫られています。それが、ルーティングモードを「グローバル(Global)」にするか、それとも「リージョナル(Regional)」にするかという設定です。
これ、一言でいうと「Google Cloudさんが、世界中(または日本中)にあるあなた専用の道路網の案内図を、どうやって共有・管理するか」のルールなんです。
郵便配達に例えてみましょう
想像してみてください。あなたは「日本全国に支店を持つ巨大な物流企業」の本社にいます。
- リージョナルモード(地域限定の仕分け)
東京支店には東京エリアの地図しかありません。もし東京支店の配達員が「大阪の新しい倉庫に行きたい!」と言い出したとき、東京支店は「うちは東京の地図しか持ってないから、大阪の行き方はわからないよ!」と答えてしまいます。大阪に行くには、一度わざわざ本社(別ネットワークやVPN)を経由して聞き直さないといけません。
- グローバルモード(全国共通のスーパーカーナビ)
東京支店にあるカーナビも、大阪支店にあるカーナビも、常に最新の「日本全国の道路地図」をリアルタイムで共有しています。だから、東京から出発した荷物でも、日本全国どこへでも迷わず最短ルートでスイスイ届けることができます。
GCPのVPCは、実は世界中にまたがる「グローバルなネットワーク」です。東京(asia-northeast1)とアイオワ(us-central1)のリージョンを、1つのVPCで繋ぐことができますよね。このまたがり方に大きく関わってくるのが、ルーティングモードなのです。
—
2. 「グローバル」と「リージョナル」、それぞれの挙動の違い
それでは、Cloud Routerという「道案内役」が動的ルート(BGPなどを使って動的に経路情報を交換する仕組み)を学習したときに、VPC内で何が起きるのかをもう少し詳しく見ていきましょう。
グローバルルーティングモード(デフォルト)
Cloud Routerがどこかのリージョン(例えば東京)で新しいルート情報を手に入れると、その情報はVPC全体(世界中)に瞬間的に共有されます。
- メリット: どのリージョンにあるVMインスタンスからでも、その新しいルート(例えばオンプレミス環境への最短経路など)をすぐに使えます。
- デメリット(注意点): 意図しないリージョンからもその経路が見えてしまうため、マルチリージョンで複雑なネットワーク設計をしている場合、トラフィックが予期せぬ遠回りをすることがあります。
リージョナルルーティングモード
Cloud Routerが手に入れたルート情報は、基本的にそのCloud Routerが存在するリージョン内だけで共有されます。他のリージョンには伝わりません。
- メリット: 各リージョンが独立してネットワークを管理できるため、マルチリージョン構成でトラフィックを厳密にコントロールしたい場合に非常に有利です。
- デメリット: 他のリージョンからもその経路を使いたい場合は、それぞれのリージョンにCloud Routerを立てて個別にルートを設定してあげる必要があります。
—
3. 実践!gcloudコマンドでルーティングモードを確認・変更する
百聞は一見にしかず。実際に私たちがインフラ構築の現場でどのようにこのモードを扱い、設定しているのかを、実用的なコード例を交えて見ていきましょう。
まずは、現在動いているVPCネットワークのルーティングモードを調べるための gcloud コマンドです。
# 現在のVPCネットワーク(例: my-custom-vpc)の詳細情報を取得し、ルーティングモードを確認する
gcloud compute networks describe my-custom-vpc \
--format="get(routingConfig.routingMode)"
もしこのコマンドの出力結果が REGIONAL になっていて、「やっぱり世界中で経路を共有させたい(GLOBALに変更したい)」となった場合は、次のようにサクッと切り替えることができます。
# VPCネットワークのルーティングモードを「グローバル」に変更する
gcloud compute networks update my-custom-vpc \
--routing-mode=GLOBAL
# ※ もし元に戻したくなったら、以下のように `REGIONAL` を指定します
# gcloud compute networks update my-custom-vpc --routing-mode=REGIONAL
非常にシンプルですよね!TerraformなどのInfrastructure as Code(IaC)ツールを使っている場合は、以下のように記述してコード上で管理するのが現場のモダンなスタイルです。
# TerraformでのVPCネットワーク定義例
resource "google_compute_network" "my_vpc" {
name = "my-custom-vpc"
auto_create_subnetworks = false
# ここでルーティングモードを「GLOBAL」または「REGIONAL」に指定します
routing_mode = "GLOBAL"
}
—
4. 現場のSREが教える!どちらを選ぶべきかの判断基準
「じゃあ、結局どっちを選べばいいの?」という疑問が湧いてきますよね。SREとして多くのプロジェクトを見てきた私の結論はこうです。
1. 基本は「グローバル(GLOBAL)」でスタートしてOK
GCPのデフォルトもグローバルです。単一のリージョン中心でシステムを動かしている場合や、マルチリージョンであってもシンプルな構成であれば、グローバルにしておけば「ルートが見つからない!」というトラブルを未然に防げます。
2. 厳密なトラフィック制御やコンプライアンスが必要なら「リージョナル(REGIONAL)」
例えば、金融系や大規模なグローバルサービスなどで、「日本のユーザーからの通信は絶対に日本のリージョン内で完結させたい」「意図しない海外リージョンへの経路迂発を防ぎたい」といった厳しい要件がある場合は、リージョナルモードを選択して各リージョンのネットワークを完全に切り離すのが安全です。
—
まとめ
今回は、GCP VPCネットワークのルーティングモード(グローバル vs リージョナル)について、郵便配達の例えを交えながら解説しました。
- グローバルモード: VPC全体でピカピカの共通カーナビを共有し、どこからでも全経路を使えるようにする。
- リージョナルモード: リージョンごとに独立した地図を持ち、地域密着型で安全にトラフィックをコントロールする。
インフラの世界は、一見難しそうに見える仕組みも、私たちが普段暮らしている現実世界のルールに置き換えてみると、すんなりと頭に入ってくるものです。ぜひ、あなたのプロジェクトの要件に合わせて、最適なルーティングモードを選んでみてくださいね。
それでは、また次回の技術解説でお会いしましょう!快適なクラウドライフを!
コメント