Skip to content

Cloud Functions idle(min-instances 常駐)

ルール ID: gcp.cloudfunctions.function.idleカテゴリ: zombie ・ 必要な読み取り: インベントリ + 利用メトリクス 計画中

min-instances を設定した関数は、一度も呼ばれなくても常駐インスタンスの課金が続きます。このルールは、常駐させたまま呼び出しが途絶えた関数を見つけます。

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

何を無駄とみなすか

min-instances ≥ 1 で常駐課金が発生しているのに、呼び出しが完全に止まっている関数。呼び出しゼロなら、ウォーム維持のための常駐は誰の役にも立っていません。

判定条件

  • min-instances が 1 以上に設定されている
  • 90 日間の呼び出しが 0 件である

min-instances が未設定(0)の関数はアイドル時の課金がほぼ発生しないため、対象にしません。

必須 facts

  • min-instances の設定値
  • 観測窓(90 日)内の実行数
  • 関数の作成からの経過日数(観測窓の完全性の確認)

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

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

  • 障害時・緊急時にだけ呼ばれる関数(呼び出し 0 が正常な待機状態)
  • 90 日を超える周期でしか動かないジョブ(年次処理など)
  • 利用再開が予定されている関数(リリース前の待機・移行中)

実行前の確認

  • 命名・ラベル・トリガー設定(HTTP / イベント)から用途を確認する
  • IaC(Terraform 等)で min-instances を管理している場合は IaC 側を変更する
  • 所有チームに、呼び出しゼロが意図した状態でないかを確認する

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

Safety Tier: medium — 関数自体は削除せず、min-instances を 0 に下げる可逆な設定変更を提案します。

  1. min-instances を 0 に変更する(関数は呼び出し可能なまま残る)
  2. 呼び出しが再開された場合の初回レイテンシ(コールドスタート)が許容範囲かを確認する

ロールバック: min-instances を元の値に戻す。関数の削除は、設定変更後も呼び出しゼロが続くことを確認してから別途判断します。

効果検証

削減の確定は、変更前ベースラインと変更後請求の比較で行います(Verify)。

その他のルールはルールカタログを参照してください。