Перейти к содержимому
Экосистема AI Vibe

Разборы

Хвосты в Google Cloud после быстрых экспериментов: CLI, агент и счёт по каталогу

Редакция 24 сентября 2026 г.

Хвосты в Google Cloud после быстрых экспериментов: CLI, агент и счёт по каталогу

Когда вы гоняете прототипы в GCP с агентом в терминале, облако не «забывает» остановленные ВМ, отцепленные диски и статические IP: они капают в биллинге по часам, пока их не назовут по имени. В разборе связка local-first CLI zombiescan и плагина Claude Code на одном движке: соло-разработчик может пройтись по всем видимым проектам, получить долларовую оценку из Cloud Billing Catalog и черновик очистки, не отдавая учётные данные стороннему SaaS.

Три режима работы с одним продуктом (только терминал, агент через MCP и осознанный clean с правами шире read-only) имеет смысл держать в голове до следующего спринта с ИИ.

Почему ускорение с агентом бьёт по кошельку не в день релиза

Модель и плагины быстро поднимают сеть, кластер или бакет «на один тест». Остановить инстанс проще, чем вспомнить про диск, снапшот или IP, которые продолжают тарифицироваться. «Zombie»-ресурсы здесь не взлом и не утечка, а инвентарь того, что никто не использует, но что всё ещё в строке счёта.

Для соло-workflow важен другой ритм: не раз в квартал открывать консоль, а встроить проверку в тот же цикл, где вы уже вызываете Claude Code или обычный CLI. Гайд строится «с нуля»: Python 3.11+, менеджер uv, репозиторий zombiescan-gcp под лицензией MIT; в примере установки фигурирует версия 0.1.0.

Движок сканера: двадцать проверок и read-only по умолчанию

Под капотом плагина Claude Code тот же zombiescan, что вы запускаете вручную; разница только в транспорте (терминал или MCP tools). zombiescan обходит проекты, доступные вашим учётным данным (типичный вход — gcloud auth application-default login), и для каждой находки тянет цену из вшитой таблицы, сгенерированной из Cloud Billing Catalog API командой python -m zombiescan.pricing.refresh. Сам скан Billing API не вызывает: каждый вызов — list или get, без пути на delete или modify.

Проверок 20, в двух паках: core (19) и gke (1). В summary названы домены: Compute Engine, Cloud SQL, Storage, DNS, KMS, Secret Manager, Artifact Registry, Filestore, Logging, Monitoring, GKE. Среди имён checks, которые автор выводит в статье: unattached-disk, unused-static-ip, stopped-instance, gke-idle-cluster (кластер без нод, но с почасовой платой за control plane), stale-secret (секреты без обновления 90 дней), unbounded-log-bucket и другие; полный список в первоисточнике.

Архитектурный акцент: один check на проект, а не отдельный обход по каждому региону. Для Compute используется aggregatedList, для многих API — wildcard locations/-. Отчёт можно смотреть в CLI, выгрузить --json (в примере schema_version 3), --html или получить --script cleanup.sh как план shell-команд, который сам по себе не выполняется.

Цены в JSON помечены как on-demand USD list prices; скидки, committed use и кредиты в оценку не входят. Это не «ваш реальный счёт», а именованная стоимость ресурса для решения.

Claude Code: MCP поверх того же CLI, без арифметики в голове модели

ИИ-слой у автора — только Claude Code, не другие IDE. Marketplace подключается одной строкой:

/plugin marketplace add xbill9/zombiescan-gcp

Плагин даёт slash-команды, skill и MCP server «over the same engine», что и терминальный zombiescan. Инструменты MCP (пять имён в разборе): scan_project, estimate_savings, explain_finding, list_checks, plan_cleanup. Все они read-only; plan_cleanup строит шаги и не отправляет изменения в GCP. Тесты в репозитории фиксируют, что из MCP недоступны прочие clean.* кроме задуманного preview. Totals и breakdown агент получает уже посчитанными; модель не должна складывать тарифы в уме. Транспорт — JSON-RPC over stdio, без тяжёлой зависимости на MCP SDK в описании автора.

Для разработчика с агентом в ежедневном цикле это практичный паттерн: спросить «сколько стоят отцепленные диски в dev-проекте» и получить ответ с тем же движком, что и в CI или cron на ноутбуке. Отдельные имена slash-команд и текст skill в публикации не раскрыты; опираться можно на перечень MCP tools.

Очистка, альтернативы и линия, которую агент не пересекает

Сканер по роли zombiescan-scanner — 16 permissions, только list/get. Команда zombiescan clean по умолчанию в dry run; --apply уже требует расширенных прав и реально шлёт шаги в облако. Через MCP агент видит preview плана, но не получает кнопку «удалить всё»: инвентаризация и оценка в агентском слое, разрушительные действия остаются за человеком с нужной ролью.

В иллюстративном прогоне автора по --all-projects (это его кейс, не норма для любого аккаунта): 75 проектов, 20 checks, 713 findings, оценка $387.74/month и $4,652.87/year при list prices; время прогона 79 секунд, 1500 пар project/check, часть пар пропущена из‑за выключенных API или denied на четырёх проектах. Крупнейшие строки в его таблице: например unattached-disk (36 находок, $153.53/month) и unused-static-ip (12, $89.06/month). Для одного проекта glitnir-dev в примере всего 2 findings и порядка $0.01/month. Автор честно отмечает: 527 из 713 findings в том прогоне без денежной нагрузки, но они всё равно попадают в отчёт; стоимость Artifact Registry может быть upper bound.

Тарифные цифры в bundled table для us-central1 (pd-standard $0.04/GB/month, idle static IP $0.010/hour, GKE cluster $0.10/hour и др.) автор помечает как verified rates: удобный ориентир, если вы сравниваете находки с каталогом.

В таблице сравнения zombiescan противопоставляют официальным Recommender / Active Assist, отчётам Billing и кросс-проектным SaaS. Тезисы автора: доллар на конкретный ресурс; credentials не покидают машину; удаление только opt-in с dry run; цены из каталога с датой; offline после установки; 20 checks против более широкого, но менее «поименованного» набора у альтернатив. Независимой проверки сторонних продуктов автор не делает; это его рамка, не вердикт редакции.

Если вы уже живёте в Claude Code, имеет смысл начать с list_checks и одного scan_project на sandbox, прежде чем тянуть --apply в прод. Если работаете только в терминале, тот же сценарий без MCP. Агентский слой и CLI делят один движок и одну таблицу цен; тихий перерасход после быстрых экспериментов лечится именованной ценой и черновиком cleanup, а не надеждой, что «мы же всё остановили».

Источники

  • What Nobody Is Using in Your Google Cloud Projects, and What It Costs — основной разбор (доступ: 2026-09-24 UTC).
  • Репозиторий zombiescan-gcp — CLI, роли, плагин (доступ: 2026-09-24 UTC).
  • Схема findings (JSON) (доступ: 2026-09-24 UTC).
  • Cloud Billing Catalog API — services.skus.list (доступ: 2026-09-24 UTC).