Skip to content

Compute Engine インスタンス zombie

ルール ID: gcp.compute.instance.zombieカテゴリ: zombie ・ 必要な読み取り: インベントリ(長期停止)+ 利用メトリクス(稼働中の低利用 — 権限が付くまで locked) 計画中

止めたまま忘れられた VM と、動いているのにほとんど仕事をしていない VM を見つけます。停止中でもディスクや予約 IP の課金は続き、稼働中ならインスタンス本体の課金がまるごと無駄になっている可能性があります。

このページは判定規範に従う予定仕様です。閾値・観測窓の根拠(出典)は実装時に付記します。

何を無駄とみなすか

長期間停止したまま放置されているインスタンス、または稼働しているのに CPU もネットワークもほぼ使われていないインスタンス。どちらも「存在しているだけで課金される」状態です。

判定条件

次のいずれかを満たすインスタンスを候補にします。

  • 長期停止: 停止からの経過が 15 日以上
  • 稼働中の低利用: 14 日間の CPU 最大値が 5% 以下、かつネットワーク送受信が 1 KiB/s 以下(利用メトリクスの読み取り権限が付くまでこの判定は locked 表示になります)

GKE クラスタや Managed Instance Group(MIG)の管理下にある VM は、個別に止めても再作成されるだけなので個別提案から除外し、グループ側のルールへ誘導します。

必須 facts

  • インスタンスの状態(稼働 / 停止)と停止からの経過日数
  • 14 日間の CPU 最大値・ネットワーク送受信レート(稼働中の判定に使用)
  • GKE / MIG 管理下かどうか(除外判定)
  • マシンタイプ・アタッチされたディスク・外部 IP の構成

取得できない facts がある場合は「観測不能」と表示し、候補にしません(候補を捏造しない)。

誤検知・危険になり得る条件

  • 月次バッチや年次処理のためだけに起動される、普段は停止中のインスタンス
  • 障害時に切り替えるコールドスタンバイ(待機系)のインスタンス
  • CPU・ネットワークが低くても常時待ち受けが必要な踏み台・監視・ライセンスサーバ

実行前の確認

  • 命名・ラベルから用途を確認する(dr-standbybatch 等の語に注意)
  • 最終起動・最終停止の時期と、それを行った人・自動化を確認する
  • IaC(Terraform 等)での参照有無と、削除がプラン差分を生まないか確認する
  • 所有チームに用途と削除可否を確認する

非破壊テストとロールバック

Safety Tier: high(削除の場合。停止のみなら可逆な操作です)

  1. 稼働中のインスタンスは、削除ではなくまず停止する(この時点ではいつでも起動で戻せます)
  2. 削除する場合は、事前にマシンイメージまたは全ディスクのスナップショットを取得する
  3. 停止状態のまま 2 週間観察し、影響の申告がないことを確認してから削除する

ロールバック: 停止のみなら起動で復帰。削除後はマシンイメージ / スナップショットからの再作成。

効果検証

削減の確定は、変更前ベースラインと変更後請求の比較で行います(Verify)。他のルールはルールカタログを参照してください。