Облачные расходы: дисциплина важнее масштаба
Почему счета за облако начинают удивлять задолго до того, как появляется реальный масштаб - и как это предотвратить.
Облачные провайдеры сделали запуск инфраструктуры невероятно простым. Нажал несколько кнопок - и через несколько минут работает сервер, база данных, хранилище. Это настоящее удобство для разработчиков и операционных команд.
Удобство имеет обратную сторону. Когда инфраструктуру легко создавать, её так же легко забыть - и она продолжает работать и генерировать расходы, даже когда в ней нет необходимости. Я регулярно вижу компании, у которых облачный счёт вырос в два-три раза за год без видимого роста нагрузки.
Почему облачные счета растут неожиданно
Первая причина - невидимые ресурсы. Разработчик поднял тестовое окружение, протестировал, забыл остановить. Прошёл месяц - сервер работает. Умножьте на десяток таких случаев в команде, и картина становится ясной.
Вторая причина - неоптимальный размер ресурсов. При запуске часто выбирают "с запасом" - большой инстанс, чтобы не было проблем. Если нагрузка оказалась ниже ожидаемой, инстанс всё равно оплачивается в полном объёме.
Третья причина - скрытые расходы. Переток данных между регионами, запросы к API, хранение логов и снимков - всё это небольшие статьи, которые незаметно накапливаются.
Четвёртая причина - отсутствие ответственности. Когда любой разработчик может создать ресурс в облаке, и никто конкретно не смотрит на счёт каждой недели - расходы растут без чёткого контроля.
Это управленческая задача, а не техническая
Технически облачные провайдеры предоставляют все инструменты для контроля: лимиты расходов, уведомления, отчёты по тегам и командам. Проблема не в отсутствии инструментов. Проблема в том, что никто не назначен за это ответственным.
Без явно назначенного ответственного за облачные расходы инструменты не используются или используются реактивно - когда счёт уже удивил.
Несколько практических мер
Теги на всё. Каждый ресурс в облаке должен иметь тег с командой или проектом, к которому он относится. Это позволяет понять, кто что создал и зачем, и разбить счёт по подразделениям.
Бюджетные уведомления. Облачные провайдеры позволяют настроить уведомления при превышении порога расходов. Это минимум, который должен быть настроен всегда.
Регулярный обзор ресурсов. Раз в месяц или раз в квартал просматривать список запущенных ресурсов и удалять те, которые больше не нужны. Это не сложно, но требует выделенного времени.
Политика остановки тестовых окружений. Тестовые и разработческие окружения не должны работать постоянно. Автоматическая остановка по расписанию или явный процесс удаления окружений после использования существенно снижает расходы.
Когда начинать об этом думать
Не когда счёт уже удивил. Управление облачными расходами имеет смысл вводить с первых месяцев работы в облаке - привычки и процессы закладываются в начале.
Одно практическое правило: если вы не знаете, сколько стоит каждая из ваших облачных систем по отдельности - и кто конкретно несёт за это ответственность - контроль ещё не выстроен.