Google Cloud の土台

リージョン・ゾーンと可用性

ゾーンは障害の区画で、リージョンは複数のゾーンを持つ独立した地域です。ゾーン障害に耐えるにはリージョン内の複数ゾーンに、リージョン障害に耐えるには複数リージョンに置きます。

Google Cloud のリソースは、ゾーン、リージョン、グローバルのどれかの範囲に属します。ゾーンは 1 つの障害で同時に止まりうる区画で、リージョンは複数のゾーンを持つ独立した地域です。VM 1 台はゾーンに属するので、そのゾーンが止まれば一緒に止まります。可用性の設計では、耐える障害の範囲を決め、それより広く配置します。

リソースが属する範囲で、一緒に止まるものが決まる

VPC ネットワーク (グローバル)asia-northeast1 東京asia-northeast2 大阪サブネットサブネット-aゾーン-bゾーン-cゾーン-aゾーン-bゾーン-cゾーン
VPC はグローバル、サブネットはリージョン、VM とディスクはゾーンに属する。日本の 2 つのリージョンは、どちらもゾーンを 3 つ持つ。

ゾーンの名前はリージョン名に 1 文字を付けた形 (asia-northeast1-a) です。GPU を大量に並べる AI ゾーン (us-west4-ai2b など) は、通常のゾーンとは別枠です。リージョンの数は増え続けるので、一覧は暗記せず リージョンとゾーン (公式) で確かめます。

範囲Compute Engine の例止まる条件
ゾーンVM、ゾーン永続ディスク、ゾーン MIG、GPUそのゾーンの障害
リージョンサブネット、リージョン MIG、リージョン永続ディスク、リージョンの静的外部 IPそのリージョン全体の障害
グローバルVPC、ファイアウォールルール、ルート、イメージ、スナップショット、グローバルの静的外部 IP特定の場所の障害では止まらない

VPC がグローバルでサブネットがリージョンに属する点は、AWS の経験者ほど間違えます。1 つの VPC に東京と大阪のサブネットを作れます (VPC の設計)。ゾーン永続ディスクは同じゾーンの VM にしか付けられないので、ゾーン障害のあとはスナップショットかリージョン永続ディスクから作り直します。

参考: グローバル、リージョン、ゾーンのリソース (公式)

ゾーン障害には複数ゾーン、リージョン障害には複数リージョン

試す障害を起こしてサービスが止まるか見る

VM の置き方
止める場所

サービス継続 (稼働中の VM 1 台)

この置き方の SLA: 月間稼働率 99.9% 以上

asia-northeast1 東京ゾーン aVM稼働ゾーン bゾーン casia-northeast2 大阪ゾーン aゾーン bゾーン c

1 ゾーンに VM を 1 台置いています。障害を選ぶと、止まる範囲と VM の置き場所が重なるかで結果が決まります。

Compute Engine の SLA は、複数ゾーンに置いたインスタンスで月間稼働率 99.99% 以上、単一のインスタンス (メモリ最適化以外) で 99.9% 以上です。プレミアム ティアのネットワークの値で、一部のリージョンに例外があります。99.9% は月に約 43 分、99.99% は約 4 分の停止に当たるので、要件が 99.99% なら VM 1 台の構成は外れます。最新の値は Compute Engine の SLA (公式) で確かめます。

ゾーン障害に耐える基本は、リージョン MIG のように複数ゾーンへ自動で分散させる仕組みです。Cloud SQL の高可用性構成は別のゾーンに待機系を置き、GKE のリージョン クラスタはコントロール プレーンとノードを複数のゾーンに置きます (コンピューティングの選び方、ストレージとデータベースの選び方)。リージョン障害まで耐えるには 2 つ以上のリージョンに置くしかなく、データの複製、リージョン間の通信料金、切り替えの手順が増えます。どこまで求めるかは RTO と RPO で決めます (可用性と災害復旧)。

データはデュアルリージョンとマルチリージョンにも置ける

リージョンデュアルリージョンマルチリージョン東京東京大阪アジアの各地場所は選べないASIA-NORTHEAST1ASIA1ASIA、EU、US
デュアルリージョンは 2 つのリージョンを指定して複製し、片方の障害でも読み書きを続ける。マルチリージョンは範囲だけを決め、場所は指定しない。

リージョンは処理する VM と同じ場所に置いてレイテンシと通信料金を抑えたいとき、マルチリージョンは広い地域へ配信したいときに選びます。データを置く国が法律や契約で決まっているなら、範囲を確かめます。ASIA は香港とインドネシアを除くアジアのデータセンターを、EU は EU 加盟国の中のデータセンターを使います (コンプライアンスとデータの所在)。

参考: バケットのロケーション (公式)

リージョンは規制、提供状況、レイテンシ、料金の順に選ぶ

データの所在の規制を満たさないリージョンは候補から外れます。次に、使いたいサービスやマシンタイプ (新しい GPU など) があるか、利用者からのレイテンシが小さいかを見て、残った中から料金で決めます。料金を先に見て遠いリージョンを選ぶと、レイテンシとリージョン間の通信料金で結局高くつきます。

試してみる

Cloud Shell で東京リージョンのゾーンを調べ、東京と大阪のデュアルリージョンにバケットを作ります。数バイトのファイルだけなので、費用はクレジットの範囲でごくわずかです。

PROJECT_ID=$(gcloud config get-value project)
gcloud services enable compute.googleapis.com

# 東京リージョンのゾーンと、その状態を一覧する
gcloud compute zones list --filter="region:asia-northeast1"
gcloud compute regions describe asia-northeast1 --format="value(zones)"

# 東京と大阪のデュアルリージョンにバケットを作り、場所を確かめる
BUCKET="gs://${PROJECT_ID}-dual"
gcloud storage buckets create "$BUCKET" --location=ASIA1
gcloud storage buckets describe "$BUCKET" --format="value(location,location_type)"

echo "hello" > hello.txt
gcloud storage cp hello.txt "$BUCKET/"

最後にバケットを中身ごと削除します。

gcloud storage rm --recursive "$BUCKET"
rm hello.txt

試験で問われる判断

自作の例です。実際の試験問題ではありません。

  • 「1 つのゾーンが止まっても続けたい。費用は抑えたい」なら、リージョン MIG で複数ゾーンに分散し、ロードバランサの後ろに置きます。2 リージョンに分けるのは過剰です。
  • 「東京リージョン全体が使えなくなっても、1 時間以内に大阪で再開したい」なら、データを大阪へ複製し、切り替え先を用意します。東京の複数ゾーンだけでは耐えられません。
  • 「VM のディスクを、ゾーン障害のときに別のゾーンからすぐ使いたい」なら、リージョン永続ディスクを選びます。
  • 「日本国内にデータを置く規制がある」と書かれ、Cloud Storage の選択肢に ASIA と ASIA1 があれば ASIA1 を選びます。ASIA は国外を含みます。

理解度チェック

答えを開く前に、自分で考えてください。結果はこのブラウザにだけ残り、間違えた問題は復習のページでまとめて解き直せます。

思い出す

VPC、サブネット、VM は、それぞれグローバル、リージョン、ゾーンのどの範囲に属しますか。そのため、東京と大阪の両方に VM を置くとき VPC はいくつ要りますか。

状況で選ぶ

社内の受発注システムを東京リージョンの Compute Engine で動かします。要件は月間稼働率 99.99% で、ゾーン 1 つの障害では止めたくありません。リージョン全体の障害による停止は許容し、費用は抑えたいと言われています。どの構成を選びますか。

説明する

法律で日本国内にデータを置く必要があり、しかも東京リージョン全体が止まっても読み書きを続けたいデータを Cloud Storage に置きます。ロケーションに何を選ぶかと、ほかの候補が外れる理由を説明してください。

章末の確認

「Google Cloud の土台」の章と、1 つ前の章の問題を混ぜています。分野が入れ替わっても選べるかを確かめます。

状況で選ぶ

無料トライアル中の学習用プロジェクトに、1,000 円の予算アラートを既定の設定のまま作りました。2 週間で VM と BigQuery をかなり使ったのに、通知が 1 通も届きません。原因として最も考えられるのはどれですか。

出典: 学習用の環境を作る
状況で選ぶ

社内で開発した Web アプリのコードがあり、これを公開したいと考えています。社内に運用の担当者はおらず、OS のセキュリティパッチを当てる作業はしたくありません。どの形を選びますか。

出典: クラウドとは何か
状況で選ぶ

ある会社は、営業と物流の部門ごとにフォルダを作り、それぞれの下に本番と開発のプロジェクトを置いています。セキュリティ部門は、全社の本番環境でだけ外部 IP を持つ VM を禁止し、これから増える本番プロジェクトにも漏れなく効かせたいと考えています。どうしますか。

出典: リソース階層と請求
状況で選ぶ

来週の土曜に、Web サーバーを新しい IP アドレスへ移します。www の A レコードの TTL は今 86400 秒 (1 日) です。切り替えたあと古いサーバーへ届く利用者を、できるだけ早く減らしたいと考えています。どうしますか。

出典: DNS
状況で選ぶ

VM で動くアプリが、Cloud Storage のバケット 1 つにファイルを書き込みます。開発者は VM を既定の設定で作り、アプリは問題なく動いています。セキュリティ監査で、最小権限にするよう指摘されました。どう直しますか。

出典: IAM の基本
状況で選ぶ

ある会社は Linux で動く Web アプリを 10 個と、Windows Server でしか動かない古い業務アプリを 1 つ持っています。Web アプリは Cloud Run のコンテナに移すことにしました。Windows Server でしか動かない業務アプリは、どこで動かしますか。

出典: 仮想化とコンテナ
状況で選ぶ

社内の受発注システムを東京リージョンの Compute Engine で動かします。要件は月間稼働率 99.99% で、ゾーン 1 つの障害では止めたくありません。リージョン全体の障害による停止は許容し、費用は抑えたいと言われています。どの構成を選びますか。

出典: リージョン・ゾーンと可用性