- マシンファミリー(汎用 / コンピューティング最適化 / メモリ最適化 / アクセラレータ最適化など)からワークロードに合うマシンタイプを選べる
- Spot VM の中断特性を理解し、継続利用割引・確約利用割引と合わせてコストを設計できる
- Hyperdisk / Persistent Disk・スナップショット・イメージファミリーの関係を説明できる
- 起動スクリプトとメタデータで VM を初期化し、OS Login で SSH アクセスを IAM 管理に載せられる
- インスタンステンプレートと MIG でオートヒーリング・オートスケーリング・ローリング更新を構成できる
試験ガイド対応: セクション 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 / C2 | HPC・高いコアあたり性能が必要な計算 |
| メモリ最適化 | X4 / M4 / M3 / M2 / M1 | SAP HANA・インメモリ DB。最大 32 TB 級のメモリ(X4、2026-08 時点) |
| アクセラレータ最適化 | A4 / A3 / A2 / G4 / G2 | GPU・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 です。
Spot VM — 中断と引き換えに最大 91% 引き
Spot VM は、Google Cloud の余剰キャパシティを割安に使う実行モデルです。標準 VM と同じマシンタイプ・同じディスクを使えますが、Google 側がキャパシティを必要とするといつでもプリエンプト(強制停止)されうるのが根本的な違いです。その代わり多くのマシンタイプ・GPU・Local SSD で最大 91%(2026-08 時点)の割引が適用されます。押さえるべき特性は次のとおりです。
- プリエンプト時は ACPI シャットダウン信号が送られ、猶予はベストエフォートで約 30 秒。この間にチェックポイント保存などの後始末を行います
- 旧称のプリエンプティブル VM にあった最大 24 時間の実行時間制限は、Spot VM にはありません
- ライブマイグレーションされず、Compute Engine の SLA 対象外。無料枠(Free Tier)の対象にもなりません
- プリエンプト後に単体では自動再起動しません。復帰させたい場合は後述の MIG に入れます(MIG がプリエンプトされた VM を再作成します)
# 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 章で扱います。
ディスクとイメージ — 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 回目以降は前回からの変更ブロックだけを保存し、未変更分は過去のスナップショットへの参照で済ませます。どのスナップショットから復元しても完全なディスクが得られるのに、保存コストは変更分しか増えない、という設計です。
スナップショットには用途別に 3 種類があります。
- 標準スナップショット — 地理的に冗長なバックアップ。ゾーン・リージョン障害からの復旧(DR)の基本手段
- アーカイブスナップショット — 機能は標準と同じで、数か月〜数年保持するコンプライアンス・長期保存向けに最適化
- インスタントスナップショット — ソースディスクと同じゾーン / リージョンに置かれ、復元が最速。ただしソースディスクを削除すると消えるため、DR ではなく直前状態への巻き戻し用
保存先はマルチリージョン(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 です。
起動スクリプト
startup-scriptキーにスクリプト本体を入れる(上限 256 KB)。それを超える場合は Cloud Storage に置いてstartup-script-urlで参照する(VM のサービスアカウントにオブジェクトの読み取り権限、storage.objectViewerが必要)- スクリプトはブートのたびに root ユーザーとして実行される。初回だけ実行したい処理は、スクリプト側で完了マーカーを確認するなど冪等に書く
- ネットワークが利用可能になってから実行されるため、パッケージ取得などの外部通信を前提にできる
OS Login — SSH アクセスを IAM に載せる
既定の SSH はメタデータに公開鍵を配って回る方式で、人数とインスタンスが増えると鍵の棚卸しが破綻します。OS Login は Linux アカウントを Google アカウントに紐付け、SSH 可否を IAM ロールで制御する仕組みです。メタデータ enable-oslogin=TRUE(プロジェクトまたはインスタンス単位)で有効化すると、ゲストエージェントはメタデータ上の SSH 鍵を無視するようになり、以後のアクセス制御は次の 2 つのロールで行います。
roles/compute.osLogin— ログイン可(sudo なし)roles/compute.osAdminLogin— ログイン可(sudo あり)
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 層で理解します。
- 自動修復(repair) — MIG 配下の VM が停止・クラッシュ・プリエンプトされたり、MIG 以外の操作で削除されたりすると、MIG がテンプレートから自動再作成して目標台数を維持する。既定で有効
- オートヒーリング — ヘルスチェックでアプリケーションの応答まで検査し、プロセスは生きているが応答しない VM を検知して再作成する。VM は無事でもアプリが死んでいる障害はこれでしか拾えない
- オートスケーリング — 負荷に応じて台数そのものを増減する
オートヒーリングで実務上いちばん重要なパラメータが初期遅延(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 時点)。挙動を制御する主なパラメータは次のとおりです。
- 初期化期間(旧称クールダウン。既定 60 秒) — 起動直後の VM の指標をスケールアウト判断から除外する猶予
- 安定化期間(既定 10 分) — スケールインは直近ピークを基準に判断し、急な縮小での取りこぼしを防ぐ
- スケールイン制御 — 一定時間内に減らせる台数を制限する
- 予測オートスケーリング — 日次・週次の周期性がある負荷を学習し、初期化に時間がかかる(目安 2 分超)アプリでも需要の先回りでスケールアウトする
ローリング更新とカナリア — テンプレートの入れ替え
テンプレートは不変なので、アプリの新バージョンは「新テンプレートを作り、MIG の VM を順次入れ替える」ことで配ります。これが自動ローリング更新です。更新には、グループ全体へ即座に展開する proactive と、再作成やスケールアウトのタイミングでだけ新テンプレートを使う opportunistic の 2 方式があります。展開速度と可用性は 2 つのパラメータで制御します。
max-surge— 更新中に目標台数を何台超過してよいか(既定はゾーン MIG で 1、リージョン MIG で 3)。大きいほど速いが一時コスト増max-unavailable— 更新中に何台まで同時停止を許すか。max-unavailable=0かつmax-surge1 以上で無停止デプロイになる
カナリアは --canary-version で「新テンプレートを適用する台数(または割合)」を指定するだけで実現できます。名前を維持したまま入れ替えたい場合は --replacement-method=recreate を指定します。ロールバックに専用機能はなく、旧テンプレートを指定してもう一度ローリング更新するだけです。この対称性が Infrastructure as Code と相性がよく、第 16 章のデプロイ戦略(Blue-Green・カナリア)につながります。
nginx を起動スクリプトで自動インストールした VM を 1 台作り、HTTP 応答を確認してから OS Login で SSH します。所要 20〜30 分。費用: e2-micro 1 台を 30 分 — 数円程度(無料枠の e2-micro は米国 3 リージョン限定のため、東京では課金されます)。Cloud Shell での実行を前提とします(ローカルの gcloud でも同じです)。
- 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'
- 外部 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
インスタンステンプレートから 3 台の MIG を作り、ヘルスチェックによるオートヒーリングとオートスケーリング設定まで行います。仕上げに 1 台の nginx を意図的に止め、自動再作成を観察します。所要 30〜40 分。費用: e2-micro 3 台を 30〜40 分 — 十数円程度。
- オートヒーリング用のヘルスチェックと、ヘルスチェックプローブを通すファイアウォールルールを作ります。プローブは 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
- インスタンステンプレートを作り、オートヒーリング付きの 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 になるまで待つ
- 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 台の 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-2 の MIG をそのまま使い、v2 テンプレートをまずカナリア 1 台に適用し、検証後に全量へ展開します。所要 20〜30 分。費用: e2-micro 3〜4 台(サージ分含む)を 30 分 — 十数円程度。
- 応答内容を変えた 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
- バージョンの混在を確認してから、全量を 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.(何も残っていないことを確認)
つまずきポイント
gcloud compute instances delete で MIG の VM を消すと、自動修復が働いて目標台数まで再作成されます(それが MIG の仕様です)。台数を減らしたいなら MIG のサイズ変更、全部やめたいなら MIG ごと削除してください。「消しても復活する謎の VM」で課金が続くのは典型的な事故です。--initial-delay)がアプリの起動時間より短いと、起動しきる前に unhealthy 判定されて再作成が無限に繰り返されます。またヘルスチェックのプローブ元レンジ(130.211.0.0/22 と 35.191.0.0/16)をファイアウォールで許可し忘れると、アプリが正常でも全台 unhealthy になります。ループに気づいたら、まず初期遅延とファイアウォールを疑ってください。理解度チェック
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 より高くなります。
まとめと次章へ
- マシンタイプ選定は「特化要件(巨大メモリ / GPU / HPC)→ 特化ファミリー、なければ汎用」の 2 段構え。小さく始めるなら共有コアの e2-micro
- Spot VM は最大 91% 引き(2026-08 時点)だがプリエンプト前提。SLA 対象外で、単体では自動復帰しない
- ブロックストレージの現行第一候補は Hyperdisk。バックアップは増分スナップショット + スケジュール、雛形はイメージファミリーで配る
- 起動スクリプトはメタデータ経由で root として毎ブート実行。SSH は OS Login で IAM 管理に載せるのが推奨
- MIG は自動修復・オートヒーリング・オートスケーリング・ローリング更新で「群れ」を維持する。ゾーン障害に耐えるならリージョン MIG
- コストは CUD(安定分)・Spot(中断可)・オートスケーリング(変動分)の組み合わせで設計する
MIG は単体では外部にサービスを公開できません。第 5 章では Cloud Load Balancing を前段に置き、この章で作った MIG をバックエンドとして世界中からのトラフィックを受ける構成を組み立てます。ヘルスチェックとオートスケーリングが LB とどう連携するかにも注目してください。
参考リンク(公式ドキュメント):