Appearance
ECR 放置リポジトリ
ルール ID: aws.ecr.repo.stale ・ カテゴリ: zombie ・ 必要な読み取り: インベントリ + pull 履歴 計画中
長いあいだ誰にも pull されていないコンテナリポジトリを見つけます。使われなくなったプロジェクトのイメージ置き場は、ストレージ課金だけが静かに続きます。
このページは判定規範に従う予定仕様です。閾値・観測窓の根拠(出典)は実装時に付記します。
何を無駄とみなすか
イメージが蓄積したまま、長期間 pull が観測されない、あるいは pull された履歴が一度もない ECR リポジトリ。保管しているイメージの容量分だけ課金が続きます。
判定条件
次のいずれかを満たす場合に候補とします:
- 長期間、イメージの pull が観測されない
- pull 履歴が一度もない(push されたきり使われていない)
単発観測では open にしません。「長期間」の具体的な閾値は実装時に出典付きで確定します。
必須 facts
- リポジトリ内イメージの最終 pull 時刻(pull 履歴)
- イメージ数・リポジトリの合計サイズ
- リポジトリの作成日時
- 取得できない facts がある場合は「観測不能」と表示し、候補にしません(候補を捏造しない)。
誤検知・危険になり得る条件
- 長時間稼働のサービスで、再デプロイ・再スケジュール時にしかイメージを pull しないワークロードのリポジトリ
- 障害復旧・ロールバック用に意図して保管している過去バージョンのイメージ
- キャッシュ済みイメージで動くため通常運用では pull が発生しないノード構成
実行前の確認
- 命名・タグからプロジェクトとオーナーを確認し、利用予定を関係者に確認する
- 稼働中のワークロード(ECS / EKS / Lambda 等)のタスク定義・マニフェストがそのリポジトリのイメージを参照していないか確認する
- CI/CD パイプラインの push 先・pull 元になっていないか確認する
- IaC(Terraform / CloudFormation 等)での参照有無を確認する
非破壊テストとロールバック
Safety Tier: high — リポジトリの削除は復元に手順が要る操作です。バックアップ取得と観察期間を必須とします。
- 削除前に、必要になり得るイメージを別リポジトリまたはアーカイブ先へコピーして退避する
- 2 週間観察し、pull・利用予定の申告がないことを確認してから削除する
ロールバック: 退避先からイメージを push し直してリポジトリを再作成する。退避していないイメージは復元できないため、判断に迷うものは削除しません。
効果検証
削減の確定は、変更前ベースラインと変更後請求の比較で行います(Verify)。