GCPのzonal・regional・multi-region・global・cross-regionを整理する

クラウドの可用性設計では、zonalregionaldual-regionmulti-regionglobalcross-region という言葉が何度も出てきます。

本記事では、これらのスコープ用語をGCPではどう読むかに絞って整理します。クラウド全般で似た言葉は出てきますが、実際の意味やリソースの所属範囲はクラウドごとに異なります。

これらはすべて「どこまでまたがるか」に関係しますが、GCPの中でもサービスによって意味の射程が少し違います。Compute、Storage、Load Balancerを同じ感覚で読むと混乱します。

基本の階層

まずは基本の地理スコープです。

スコープ意味・例
zone例: asia-northeast1-a
region例: asia-northeast1
dual-region指定された2つのregion
multi-regionUS / EU / ASIA など、広域内の複数region
globalregionに閉じない

GCPのVPC、subnet、VMの関係は『GCPのVPC・サブネット・リージョン・ゾーンの関係を整理する』で扱っています。

用語ごとの意味

用語意味典型例
zonal1つのzoneに属するVM、zonal disk、zonal MIG
regional1つのregionに属するsubnet、Regional MIG、Cloud VPN gateway、Cloud Router
dual-region指定した2regionにデータを置くCloud Storage
multi-region広域内の複数regionにデータを置くCloud Storage、BigQuery、Firestore、Spanner
globalregionに閉じない入口/リソースVPC、IAM、Global external LB
cross-region複数regionをまたいで機能するcross-region internal LB、cross-region replica

重要なのは、regional複数region ではないことです。多くの場合、1つのregion内の複数zoneにまたがれる、という意味です。

Computeでのregional

Compute系では、zonalregional の違いがよく出ます。

  • Zonal MIG: 1つのzone内のVM群
  • Regional MIG: 1つのregion内の複数zoneに分散したVM群
flowchart TB
  subgraph r1["Region: asia-northeast1"]
    subgraph z1["Zone A"]
      vm1["VM #1"]
    end
    subgraph z2["Zone B"]
      vm2["VM #2"]
    end
    subgraph z3["Zone C"]
      vm3["VM #3"]
    end
  end

Regional MIGはzone障害に強い構成ですが、region障害に耐えるには複数regionにbackendを置く必要があります。Compute可用性の詳細は『Compute可用性設計』で扱います。

Storageでのdual-region / multi-region

Cloud Storageでは、データ配置場所として regiondual-regionmulti-region を選びます。

ロケーション意味
region1つのregionに保存
dual-region指定した2つのregionに保存
multi-regionUS / EU / ASIA のような広域ロケーションに保存

これは、アプリ全体がmulti-regionになるという意味ではありません。あくまで、そのStorageサービスのデータ配置です。

flowchart TB
  app["App"]
  bucket["Cloud Storage bucket<br/>dual-region / multi-region"]

  subgraph r1["Region A"]
    copy1["Object data"]
  end

  subgraph r2["Region B"]
    copy2["Object data"]
  end

  app --> bucket
  bucket -. "managed data placement" .-> copy1
  bucket -. "managed data placement" .-> copy2

この考え方は『GCPのmulti-regionデータサービス: Firestore・Spanner・Cloud Storage・BigQueryの違い』で深掘りします。

Load Balancerでのglobal / regional / cross-region

Load Balancerでは、外部向けか内部向けかで呼び方が変わります。

種類主な意味
Regional LB1region内のbackendに振り分ける
Global external LB外部ユーザー向けのglobal入口。複数region backendを扱える
Cross-region internal LBVPC内部向けに複数region backendを扱える

global external LB は入口がglobalという意味です。backendが1regionだけなら、アプリ本体は単一region依存です。

構成意味
Global LB + backend 1 region入口はglobal、アプリはsingle region
Global LB + backend multiple regions入口もbackendも複数region対応

Load Balancerを使ったトラフィック分散設計は『トラフィック分散設計』で扱います。

VPNやCloud Routerもregional

Cloud VPN gateway、VPN tunnel、Cloud Routerはregional resourceです。VMのようにzoneに置くものではありません。

  • Cloud VPN gateway: regionに作る
  • VPN tunnel: そのregionのgatewayから張る
  • Cloud Router: VPCに紐づくregional resource

そのため、複数regionからオンプレへ直接接続したい場合は、各regionにCloud VPN gatewayを置く構成になります。

まとめ

  • regional は基本的に1regionであり、複数regionではない
  • Computeのregionalは、1region内の複数zoneに効く
  • Storageのdual-region / multi-regionは、データ配置の指定
  • Global LBは入口がglobalであり、backendまで自動で複数regionになるわけではない
  • VPN gatewayやCloud Routerもregional resourceとして扱う

可用性設計では、まず対象サービスのスコープを確認し、そのうえで「どの障害単位に備えるのか」を考えるのが重要です。

参考

タグ: GCP, クラウド設計, 可用性