Google Cloud ハンズオン教科書|2026-08 版
第 4 章 試験ガイド 1.3 試験ガイド 2.3

Compute Engine — 仮想マシンとインスタンスグループ

マシンタイプ選定から MIG のオートヒーリングまで、IaaS の主戦場を押さえる

この章で学ぶこと

試験ガイド対応: セクション 1.3(ネットワーク、ストレージ、コンピューティング リソースの設計)、2.3(コンピューティング システムの構成)

第 3 章でネットワークという土台を作りました。この章ではその上に載せる計算資源、Compute Engine を扱います。単体の VM を「正しく選んで正しく作る」ところから始め、後半では VM を 1 台ずつ世話するのをやめて群れ(マネージドインスタンスグループ、MIG)として運用する発想へ切り替えます。PCA 試験でも実務でも、Compute Engine の設問はほぼこの「選定」と「群れの自動運用」の 2 テーマに集約されます。

計算資源を選ぶ — マシンファミリー・Spot VM・割引

Compute Engine の VM はマシンタイプ(vCPU とメモリの組)を指定して作ります。マシンタイプ名は e2-standard-4 のように「シリーズ - メモリ構成 - vCPU 数」を表し、シリーズは用途別のマシンファミリーに分類されています。

ファミリー代表シリーズ向くワークロード
汎用E2 / N4・N2 / C4・C3 / Tau T2D・T2A価格性能比を重視する大半の負荷。Web・API・小〜中規模 DB
コンピューティング最適化H4D / H3 / C2HPC・高いコアあたり性能が必要な計算
メモリ最適化X4 / M4 / M3 / M2 / M1SAP HANA・インメモリ DB。最大 32 TB 級のメモリ(X4、2026-08 時点)
アクセラレータ最適化A4 / A3 / A2 / G4 / G2GPU・TPU による ML の学習・推論
ストレージ最適化Z3コンピュートに対するストレージ密度が高い負荷
ネットワーク最適化C4N など高帯域が要る IO 集約型の負荷

事前定義マシンタイプのメモリ構成は 3 系統で覚えられます: highcpu(約 2 GB/vCPU)、standard(約 4 GB/vCPU)、highmem(約 8 GB/vCPU)。この比率に合わない場合は、汎用ファミリーの N 系・E2 系で vCPU とメモリを個別指定するカスタムマシンタイプが使えます(2026-08 時点で事前定義より約 5% 割高)。さらに小さい負荷には、物理コアを共有する共有コアマシンタイプ(e2-micro / e2-small / e2-medium)があり、一時的な CPU バーストで軽い処理を安価にさばけます。本書のハンズオンの主役もこの e2-micro です。

数百 GB 級のメモリが必要? メモリ最適化ファミリー M4 / M3 / X4 — SAP HANA・インメモリ DB はい いいえ GPU / TPU で学習・推論する? アクセラレータ最適化ファミリー A4 / A3 / G2 — GPU・TPU ワークロード はい いいえ HPC・コア性能が最重要? コンピューティング最適化 H4D / H3 / C2 — HPC・科学計算 はい いいえ 汎用ファミリーで何を優先? コスト バランス 一貫した高性能 E2(共有コアあり) 最安。学習・小規模に N4 / N2 バランス型の既定候補 C4 / C3 一貫した高性能・低遅延
図 4-1 マシンファミリー選択のデシジョンツリー。特化要件(巨大メモリ・GPU・HPC)に該当しない大半のワークロードは汎用ファミリーに落ち、そこからコスト・バランス・性能の優先軸でシリーズを選ぶ。

Spot VM — 中断と引き換えに最大 91% 引き

Spot VM は、Google Cloud の余剰キャパシティを割安に使う実行モデルです。標準 VM と同じマシンタイプ・同じディスクを使えますが、Google 側がキャパシティを必要とするといつでもプリエンプト(強制停止)されうるのが根本的な違いです。その代わり多くのマシンタイプ・GPU・Local SSD で最大 91%(2026-08 時点)の割引が適用されます。押さえるべき特性は次のとおりです。

# Spot VM の作成: --provisioning-model=SPOT を付けるだけ
gcloud compute instances create batch-vm \
  --zone=asia-northeast1-b \
  --machine-type=e2-medium \
  --provisioning-model=SPOT \
  --instance-termination-action=DELETE

--instance-termination-action はプリエンプト時の動作で、STOP(既定。停止状態で残る)か DELETE(VM ごと削除)を選べます。向くのはバッチ処理・レンダリング・CI のような中断されても再実行でリカバリできるワークロードです。

料金の基本 — 3 つの割引を使い分ける

Compute Engine のコスト設計は「オンデマンド価格から、どの割引をどう重ねるか」の設計です。割引は大きく 3 系統あります。

割引適用のされ方割引率の目安(2026-08 時点)向く負荷
継続利用割引(SUD)月内の稼働割合に応じて自動適用。手続き不要N1・M1・M2 で最大 30%、N2・N2D・C2 で最大 20%。対象はこの 6 シリーズのみの限定リストで、E2・N4・C4・C3 系・H3/H4D・M3/M4・アクセラレータ最適化系などは対象外旧世代シリーズを月の大半動かす負荷
確約利用割引(CUD・リソースベース)リージョン単位で vCPU / メモリ量を 1 年 or 3 年確約。購入後のキャンセル不可メモリ最適化で最大 70%、その他シリーズで最大 55%24 時間 365 日動き続けるベースライン
確約利用割引(CUD・フレキシブル)時間あたりの支出額を確約。Compute Engine / GKE / Cloud Run を横断汎用・C2 系コンピューティング最適化で 28%(1 年)/ 46%(3 年)。同じコンピューティング最適化でも H3/H4D は 17%/38% と低めリージョンや構成が変わりうる安定支出
Spot VMプリエンプションを受け入れて割安に使う最大 91%中断可能なバッチ・フォールトトレラントな処理

SUD が CUD 適用済みの使用分には重ねて効かない点、SUD の対象が旧世代シリーズに限られる点は誤解が多いので注意してください。割引戦略の全体像(ライトサイジングや請求データの分析を含む)は第 17 章で扱います。

試験の視点: 選定問題は「特化要件 → 特化ファミリー、なければ汎用」「安定ベースライン → CUD、中断可バッチ → Spot、変動分 → オートスケーリング」という 2 本のデシジョンツリーでほぼ解けます。SAP HANA と聞いたらメモリ最適化、HPC と聞いたらコンピューティング最適化、と要件の言葉をファミリーへ即座に翻訳する練習をしておきましょう。「自動で適用される割引はどれか」(答: SUD)もよく問われます。

ディスクとイメージ — Hyperdisk・スナップショット・イメージファミリー

VM のデータを支えるブロックストレージは 3 系統です。現行世代の第一候補は Hyperdisk で、容量と性能(IOPS / スループット)を独立に設定できるのが最大の特徴です。前世代の Persistent Disk は性能がプロビジョニング容量に比例するため、性能を上げるには容量も増やす必要がありました。また C4 や N4 などの最新マシンシリーズでは Persistent Disk は利用できず、Hyperdisk が前提になります。

系統タイプ性質
Hyperdisk(現行世代)Balanced / Extreme / Throughput / ML / Balanced High Availability容量と性能を独立に設定。Balanced High Availability はゾーン間複製つき
Persistent Disk(前世代)pd-standard / pd-balanced / pd-ssd / pd-extreme性能は容量に比例。最新マシンシリーズでは非対応
Local SSD(マシンタイプに付属)ホスト物理接続の一時領域。VM の再起動・ライブマイグレーションではデータを保持するが、強制停止やプリエンプトでは消失(2026-08 時点、プレビューで停止時のデータ保持を選択可能)。ブートディスク不可

Hyperdisk と Persistent Disk はネットワーク接続型なので VM と独立に存続し、保存時・転送時とも既定で暗号化されます。単一ゾーン障害に備えたい場合は、2 つのゾーンへ同期複製するリージョンディスクを選べます。Local SSD はあくまでスクラッチ・キャッシュ用の使い捨て領域と割り切ってください。

スナップショット — 増分バックアップの仕組み

ディスクのバックアップはスナップショットで取ります。仕組みを理解しておくとコストと復元時間の両方を読めるようになります。初回のスナップショットはディスク全データを含むフルバックアップで、2 回目以降は前回からの変更ブロックだけを保存し、未変更分は過去のスナップショットへの参照で済ませます。どのスナップショットから復元しても完全なディスクが得られるのに、保存コストは変更分しか増えない、という設計です。

ディスク(時点 1) 全データ 10 GB ディスク(時点 2) 2 GB 分を変更 ディスク(時点 3) さらに 1 GB 変更 作成 作成 作成 スナップショット 1 フル(全ブロック) スナップショット 2 増分(変更 2 GB のみ) スナップショット 3 増分(変更 1 GB のみ) 参照 参照 復元 復元されたディスク 完全なデータ(10 GB + 変更)
図 4-2 増分スナップショットのチェーン。保存されるのは初回のフルと各回の変更分だけだが、参照チェーンをたどることでスナップショット 3 単体からでも完全なディスクを復元できる。

スナップショットには用途別に 3 種類があります。

保存先はマルチリージョン(asia など。可用性重視)かリージョン(コストと所在地の統制重視)を選べます。手動で取り続けるのは現実的でないため、スナップショットスケジュールをディスクに紐付けて自動化するのが実務の既定です。

イメージ — VM の雛形を配る

ブートディスクの元になるのがイメージです。Google や OS ベンダーが提供する公開イメージと、自分のプロジェクトだけで使えるカスタムイメージ(既存 VM のブートディスクやスナップショットから作成)があります。ここで重要な仕組みがイメージファミリーで、ファミリー名は常に「非推奨(deprecated)になっていない最新イメージ」を指します。インスタンステンプレートにイメージ名ではなくファミリー名(例: debian-12)を書いておけば、テンプレートを書き換えずに常に最新版で VM が立ち上がり、問題が出たら新しい版を deprecated にするだけでロールバックできます。「ディスク → スナップショット → カスタムイメージ → テンプレート」という流れが、次節の MIG 運用の土台になります。

VM の初期化と SSH — メタデータ・起動スクリプト・OS Login

VM の初期構成をコンソールで手作業すると再現性がありません。Compute Engine ではメタデータ(key-value ペア。プロジェクト共通またはインスタンス個別に設定)に構成情報を持たせ、VM 内のゲストエージェントがそれを読んで動く、という仕組みで初期化を自動化します。代表的なキーが起動スクリプト用の startup-script と、SSH 管理用の enable-oslogin です。

起動スクリプト

OS Login — SSH アクセスを IAM に載せる

既定の SSH はメタデータに公開鍵を配って回る方式で、人数とインスタンスが増えると鍵の棚卸しが破綻します。OS Login は Linux アカウントを Google アカウントに紐付け、SSH 可否を IAM ロールで制御する仕組みです。メタデータ enable-oslogin=TRUE(プロジェクトまたはインスタンス単位)で有効化すると、ゲストエージェントはメタデータ上の SSH 鍵を無視するようになり、以後のアクセス制御は次の 2 つのロールで行います。

IAM を外せば即座に SSH できなくなり、接続の監査ログも残ります。2 段階認証プロセスの強制にも対応しており、多数のユーザー・インスタンス・プロジェクトを抱える組織では OS Login が推奨手段です。第 2 章で学んだ「アクセス制御は IAM に一元化する」原則の、SSH への適用と捉えてください。

インスタンステンプレートと MIG — VM を群れとして運用する

ここからが本章の主戦場です。VM を 1 台ずつ作って世話をする運用は、台数が増えた瞬間に破綻します。Compute Engine の答えは「VM の設計図(インスタンステンプレート)を作り、その設計図からマネージドインスタンスグループ(MIG)に VM の群れを維持させる」ことです。

インスタンステンプレート — 不変の設計図

インスタンステンプレートは、マシンタイプ・ブートディスクイメージ・ラベル・起動スクリプトなど VM 構成一式を保存するリソースです。重要な性質は作成後に変更できない(イミュータブル)こと。構成を変えたければ新しいテンプレートを作ります。この不変性があるからこそ「どのテンプレートで作った VM か」が常に一意に決まり、後述のローリング更新やカナリアが成立します。テンプレートにはグローバルとリージョナルがあり、リージョン障害の影響を分離するため、リージョンをまたいで使い回す必要がなければリージョナルテンプレートが推奨です。テンプレート自体は無料で、作られたリソースにだけ課金されます。

MIG の自動運用 — 修復・オートヒーリング・スケーリング

インスタンスグループには、同一構成の VM を単一の実体として運用する MIG と、既存の異種 VM をロードバランサ配下にまとめるだけの非マネージドインスタンスグループがあります。非マネージド側にはオートスケーリングも自動修復もローリング更新もないため、以降は MIG だけを考えます。MIG の自動運用は 3 層で理解します。

MIG web-mig(目標台数 3) VM 1 healthy VM 2 healthy VM 3 unhealthy → 削除 VM 3'(新規) 再作成済み ヘルスチェック HTTP :80・10 秒間隔 プローブ 連続 3 回失敗 MIG が unhealthy と判定 テンプレートから再作成 再作成
図 4-3 オートヒーリングのループ。ヘルスチェックはプロセスの生死ではなくアプリケーションの応答を検査し、連続失敗した VM を MIG が削除・再作成して目標台数を守る。

オートヒーリングで実務上いちばん重要なパラメータが初期遅延(initial delay)です。VM 起動からアプリが応答可能になるまでの時間より短く設定すると、「起動中なのに unhealthy と判定 → 再作成 → また起動中に判定」という再作成ループに陥ります。またロードバランサ用のヘルスチェックを使い回さず、オートヒーリング専用に、より保守的な(失敗と判定しにくい)ヘルスチェックを別に用意するのがドキュメント推奨のベストプラクティスです。LB は「一時的に外す」判断、オートヒーリングは「作り直す」判断なので、後者は慎重であるべきだからです。

配置の観点では、単一ゾーンに置くゾーン MIG(既定上限 1,000 台。2026-08 時点)と、複数ゾーンへ分散するリージョン MIG(既定上限 2,000 台。ゾーン間の配分は分散シェイプで制御)を選べます。ゾーン障害に耐えたければリージョン MIG が答えです。またディスクや VM 名を維持したいワークロード向けにステートフル MIG もありますが、まずは「MIG はステートレスな群れの道具」と押さえるのが先です。

オートスケーリングのシグナルは 4 種類 — CPU 使用率・ロードバランサの処理能力・Cloud Monitoring 指標・スケジュール(1 グループ最大 128 本。2026-08 時点)。挙動を制御する主なパラメータは次のとおりです。

ローリング更新とカナリア — テンプレートの入れ替え

テンプレートは不変なので、アプリの新バージョンは「新テンプレートを作り、MIG の VM を順次入れ替える」ことで配ります。これが自動ローリング更新です。更新には、グループ全体へ即座に展開する proactive と、再作成やスケールアウトのタイミングでだけ新テンプレートを使う opportunistic の 2 方式があります。展開速度と可用性は 2 つのパラメータで制御します。

① カナリア — 新テンプレートを 1 台だけに適用 v1 旧テンプレート v1 旧テンプレート v2 カナリア 1 台 +1 台の余剰 max-surge=1 カナリアを検証 → OK なら残りを更新 ② 全量ローリング更新 — max-unavailable=0 なら無停止 v2 新テンプレート v2 新テンプレート v2 新テンプレート max-surge=1 で 1 台ずつ入替
図 4-4 カナリアからの二段階ローリング更新。①で新テンプレートを 1 台に限定して本番トラフィックで検証し、②で残りへ展開する。ロールバックは「旧テンプレートへのローリング更新」に過ぎない。

カナリアは --canary-version で「新テンプレートを適用する台数(または割合)」を指定するだけで実現できます。名前を維持したまま入れ替えたい場合は --replacement-method=recreate を指定します。ロールバックに専用機能はなく、旧テンプレートを指定してもう一度ローリング更新するだけです。この対称性が Infrastructure as Code と相性がよく、第 16 章のデプロイ戦略(Blue-Green・カナリア)につながります。

試験の視点: 「ゾーン障害に耐える VM 群」→ リージョン MIG、「アプリのハングを自動復旧」→ オートヒーリング(ヘルスチェック)、「新バージョンを一部ユーザーで検証」→ カナリア付きローリング更新、が定番の対応付けです。MIG はステートレスであることが前提という制約(ステートフルにするなら専用機能が要る)も選択肢の絞り込みによく使われます。
ハンズオン 4-1|起動スクリプト付き VM を作り、OS Login で SSH する

nginx を起動スクリプトで自動インストールした VM を 1 台作り、HTTP 応答を確認してから OS Login で SSH します。所要 20〜30 分。費用: e2-micro 1 台を 30 分 — 数円程度(無料枠の e2-micro は米国 3 リージョン限定のため、東京では課金されます)。Cloud Shell での実行を前提とします(ローカルの gcloud でも同じです)。

  1. HTTP を許可するファイアウォールルールを作り、起動スクリプト付きで VM を作成します(default ネットワークを使用)
gcloud compute firewall-rules create allow-http-handson \
  --allow=tcp:80 --target-tags=http-server

gcloud compute instances create web-vm \
  --zone=asia-northeast1-b \
  --machine-type=e2-micro \
  --image-family=debian-12 \
  --image-project=debian-cloud \
  --tags=http-server \
  --metadata=startup-script='#! /bin/bash
apt-get update
apt-get install -y nginx'
  1. 外部 IP を調べて HTTP 応答を確認し、OS Login を有効化して SSH します
gcloud compute instances list
# EXTERNAL_IP 列の値を控える。起動スクリプト完了まで 1〜2 分待つ

curl http://EXTERNAL_IP
# 期待される出力: <title>Welcome to nginx!</title> を含む HTML

gcloud compute instances add-metadata web-vm \
  --zone=asia-northeast1-b \
  --metadata=enable-oslogin=TRUE

gcloud compute ssh web-vm --zone=asia-northeast1-b
# ログイン後、exit で抜ける

OS Login 有効化後の SSH 可否は IAM で決まります。学習プロジェクトではオーナー権限で接続できますが、他のメンバーに許可するには roles/compute.osLogin(sudo なし)か roles/compute.osAdminLogin(sudo あり)を付与します。

後片付け:

gcloud compute instances delete web-vm --zone=asia-northeast1-b --quiet
gcloud compute firewall-rules delete allow-http-handson --quiet
ハンズオン 4-2|MIG を組んでオートヒーリングを観察する

インスタンステンプレートから 3 台の MIG を作り、ヘルスチェックによるオートヒーリングとオートスケーリング設定まで行います。仕上げに 1 台の nginx を意図的に止め、自動再作成を観察します。所要 30〜40 分。費用: e2-micro 3 台を 30〜40 分 — 十数円程度。

  1. オートヒーリング用のヘルスチェックと、ヘルスチェックプローブを通すファイアウォールルールを作ります。プローブは Google の専用レンジから届くため、この許可がないと全 VM が unhealthy 扱いになります
gcloud compute health-checks create http mig-health-check \
  --port=80 --check-interval=10 --timeout=5 \
  --healthy-threshold=1 --unhealthy-threshold=3

gcloud compute firewall-rules create allow-health-check \
  --allow=tcp:80 \
  --source-ranges=130.211.0.0/22,35.191.0.0/16 \
  --target-tags=allow-health-check
  1. インスタンステンプレートを作り、オートヒーリング付きの MIG を起動します。初期遅延は起動スクリプトの完了を見込んで 300 秒にします
gcloud compute instance-templates create web-template-v1 \
  --machine-type=e2-micro \
  --image-family=debian-12 --image-project=debian-cloud \
  --tags=allow-health-check \
  --metadata=startup-script='#! /bin/bash
apt-get update
apt-get install -y nginx
echo "v1 - $(hostname)" > /var/www/html/index.html'

gcloud compute instance-groups managed create web-mig \
  --zone=asia-northeast1-b \
  --template=web-template-v1 \
  --size=3 \
  --health-check=mig-health-check \
  --initial-delay=300

gcloud compute instance-groups managed list-instances web-mig \
  --zone=asia-northeast1-b
# 期待される出力: web-mig-xxxx が 3 行。STATUS が RUNNING になるまで待つ
  1. CPU 使用率ベースのオートスケーリングを設定します(このハンズオンでは負荷をかけないため台数は変わりませんが、設定の型を確認します)
gcloud compute instance-groups managed set-autoscaling web-mig \
  --zone=asia-northeast1-b \
  --max-num-replicas=5 \
  --target-cpu-utilization=0.7 \
  --cool-down-period=90
  1. 1 台の nginx を止めて、オートヒーリングを観察します。ヘルスチェックが連続 3 回失敗した後、その VM が自動で再作成されます
# VM 名は list-instances の出力に合わせて置き換える
gcloud compute ssh web-mig-xxxx --zone=asia-northeast1-b \
  --command='sudo systemctl stop nginx'

# 1〜2 分おきに繰り返し実行して観察する
gcloud compute instance-groups managed list-instances web-mig \
  --zone=asia-northeast1-b
# 期待される変化: 該当 VM の currentAction が再作成中の表示になり、
# しばらくすると新しい VM として RUNNING に戻る

後片付け:(続けてハンズオン 4-3 に進む場合は、この後片付けを 4-3 の末尾まで遅らせてください)

gcloud compute instance-groups managed delete web-mig \
  --zone=asia-northeast1-b --quiet
gcloud compute instance-templates delete web-template-v1 --quiet
gcloud compute health-checks delete mig-health-check --quiet
gcloud compute firewall-rules delete allow-health-check --quiet
ハンズオン 4-3|カナリアからのローリング更新を体験する

ハンズオン 4-2 の MIG をそのまま使い、v2 テンプレートをまずカナリア 1 台に適用し、検証後に全量へ展開します。所要 20〜30 分。費用: e2-micro 3〜4 台(サージ分含む)を 30 分 — 十数円程度。

  1. 応答内容を変えた v2 テンプレートを作り、カナリアとして 1 台だけに適用します
gcloud compute instance-templates create web-template-v2 \
  --machine-type=e2-micro \
  --image-family=debian-12 --image-project=debian-cloud \
  --tags=allow-health-check \
  --metadata=startup-script='#! /bin/bash
apt-get update
apt-get install -y nginx
echo "v2 - $(hostname)" > /var/www/html/index.html'

gcloud compute instance-groups managed rolling-action start-update web-mig \
  --zone=asia-northeast1-b \
  --version=template=web-template-v1 \
  --canary-version=template=web-template-v2,target-size=1 \
  --max-surge=1 --max-unavailable=0
  1. バージョンの混在を確認してから、全量を v2 へ展開します
gcloud compute instance-groups managed describe web-mig \
  --zone=asia-northeast1-b
# 期待される出力: versions に web-template-v1 と web-template-v2 が並ぶ

gcloud compute instance-groups managed rolling-action start-update web-mig \
  --zone=asia-northeast1-b \
  --version=template=web-template-v2 \
  --max-surge=1 --max-unavailable=0

gcloud compute instance-groups managed list-instances web-mig \
  --zone=asia-northeast1-b
# 1 台ずつ順に置き換わり、最終的に全台が web-template-v2 になる

問題が起きたときのロールバックは、--version=template=web-template-v1 を指定して同じコマンドを実行するだけです。更新 API は宣言的(あるべき状態の宣言)なので、コマンド成功は「受理」であって「完了」ではありません。list-instances や describe で収束を確認する癖をつけてください。

後片付け:

gcloud compute instance-groups managed delete web-mig \
  --zone=asia-northeast1-b --quiet
gcloud compute instance-templates delete web-template-v1 --quiet
gcloud compute instance-templates delete web-template-v2 --quiet
gcloud compute health-checks delete mig-health-check --quiet
gcloud compute firewall-rules delete allow-health-check --quiet

gcloud compute instances list
# 期待される出力: Listed 0 items.(何も残っていないことを確認)

つまずきポイント

MIG 配下の VM は直接消しても消えない。 gcloud compute instances delete で MIG の VM を消すと、自動修復が働いて目標台数まで再作成されます(それが MIG の仕様です)。台数を減らしたいなら MIG のサイズ変更、全部やめたいなら MIG ごと削除してください。「消しても復活する謎の VM」で課金が続くのは典型的な事故です。
オートヒーリングの再作成ループ。 初期遅延(--initial-delay)がアプリの起動時間より短いと、起動しきる前に unhealthy 判定されて再作成が無限に繰り返されます。またヘルスチェックのプローブ元レンジ(130.211.0.0/22 と 35.191.0.0/16)をファイアウォールで許可し忘れると、アプリが正常でも全台 unhealthy になります。ループに気づいたら、まず初期遅延とファイアウォールを疑ってください。
Spot VM を本番サービスに使ってしまう。 Spot VM は SLA 対象外で、プリエンプト後に単体では自動復帰しません。ユーザー向けサービスの唯一の実行基盤にするのは設計ミスです。使うなら「Spot の MIG + 標準 VM の MIG の併用」のように、中断されても成立する構成に限ります。試験でも「コスト最小化」だけに引きずられて Spot を選ばせる引っかけが出ます。
「自動で安くなる」への過信。 継続利用割引(SUD)が効くのは N1・N2 など旧世代シリーズだけで、本書で多用する E2 や現行世代の N4・C4 は対象外です(2026-08 時点)。また無料枠の e2-micro は us-west1 / us-central1 / us-east1 限定で、東京リージョンでは最小構成でも課金されます。学習後はリソースを消すことだけが確実な節約です。各ハンズオンの後片付けを必ず実行してください。

理解度チェック

Q1. Hyperdisk が Persistent Disk と比べて根本的に異なる点は?

性能(IOPS・スループット)を容量と独立に設定できる点です。Persistent Disk はプロビジョニング容量に性能が比例するため、性能目的の容量増が必要でした。また C4 / N4 など最新マシンシリーズは Hyperdisk のみをサポートします。

Q2. 標準・アーカイブ・インスタントの 3 種類のスナップショットはどう使い分ける?

標準はゾーン・リージョン障害に備える地理冗長バックアップ(DR の基本)、アーカイブは数か月〜数年保持する長期保存向け、インスタントは同一ロケーションで最速復元できる巻き戻し用です。インスタントはソースディスクを削除すると消えるため、DR 用途には使えません。

Q3. 稼働中の MIG のアプリ設定を変えたい。インスタンステンプレートを編集すればよい?

できません。テンプレートは作成後変更不可(イミュータブル)です。新しいテンプレートを作成し、MIG に対してローリング更新(rolling-action start-update)で入れ替えます。この不変性がカナリアや確実なロールバックを可能にしています。

Q4.(試験形式)EC サイトのステートレスな Web 層を Compute Engine で運用する。単一ゾーンの障害でもサービスを継続し、夜間と日中のトラフィック差にも自動で追従したい。最適な構成は?
A. ゾーン MIG + オートヒーリング B. リージョン MIG + オートスケーリング C. 非マネージドインスタンスグループ + ロードバランサ D. Spot VM のリージョン MIG + オートスケーリング

B。ゾーン障害への耐性は複数ゾーンに VM を分散するリージョン MIG で、トラフィック追従はオートスケーリングで満たせます。A はゾーン障害で全台が失われます。C の非マネージドグループにはオートスケーリングも自動修復もありません。D は Spot VM が SLA 対象外かつ常時プリエンプトされうるため、ユーザー向け Web 層の要件を満たしません。

Q5.(試験形式)分析基盤の VM 群は、24 時間 365 日稼働するベースライン 20 台と、毎晩 2 時間だけ動く中断可能な集計バッチ 50 台で構成される。総コストを最小化する割引戦略は?
A. 全台を Spot VM にする B. ベースラインに確約利用割引、バッチは Spot VM C. 全台オンデマンドで継続利用割引に任せる D. ベースラインに確約利用割引、バッチもオンデマンドの標準 VM

B。常時稼働のベースラインは 1〜3 年の確約利用割引(最大 55〜70%)が最も効き、中断可能なバッチは最大 91% 引きの Spot VM が最安です。A はベースラインがプリエンプトされ可用性要件を満たしません。C の継続利用割引は対象シリーズが旧世代に限られ、割引率も最大 30% にとどまります。D はバッチに割引が一切効かず B より高くなります。

まとめと次章へ

MIG は単体では外部にサービスを公開できません。第 5 章では Cloud Load Balancing を前段に置き、この章で作った MIG をバックエンドとして世界中からのトラフィックを受ける構成を組み立てます。ヘルスチェックとオートスケーリングが LB とどう連携するかにも注目してください。

参考リンク(公式ドキュメント):