Привет, 1FPK. Хочу поделиться историей, которая началась с обычного письма от финансового отдела и закончилась экономией в шестьдесят процентов от месячного счёта за облако. Сразу оговорюсь: я не волшебник и не переписывал архитектуру с нуля. Всё, что я делал, укладывается в несколько вечеров работы и пару неприятных разговоров с командой. Но результат оказался настолько ощутимым, что теперь я советую этот чек-лист каждому, кто платит за инфраструктуру больше, чем за кофе для всего отдела.
Шаг первый — детальная разбивка счёта. Пока смотришь на одну общую сумму, кажется, что виноват трафик или база данных. Как только я включил разбивку по сервисам, проектам и меткам, картина стала неприятно ясной: почти половину счёта съедали тестовые и демонстрационные стенды, которые кто-то поднял пару лет назад и благополучно забыл. Они крутились круглосуточно, никто в них не заходил, но за каждую ночь и каждый выходной мы платили как за боевую нагрузку.
Дальше я занялся расписаниями и метками. Мы договорились, что каждое нерабочее окружение живёт только в рабочие часы, а на ночь и выходные уходит в сон или полностью останавливается. Метки с именем владельца и датой создания сделали магию: теперь у каждого стенда есть хозяин, и раз в неделю бот напоминает ему, что ресурс всё ещё живой и стоит денег. Один только этот шаг дал около четверти всей экономии, а главное — навёл порядок в голове у команды.
Второй большой блок — размеры машин. Мы годами брали инстансы с запасом на случай внезапного успеха, а по метрикам процессор редко поднимался выше пятнадцати процентов. Я снял статистику за месяц, взял девяносто пятый процентиль нагрузки и спокойно уменьшил конфигурацию большинства сервисов на одну ступень. Там, где нагрузка действительно рваная, перешли на гибкие инстансы с накопительными кредитами, а тяжёлые пакетные задачи перенесли на прерываемые машины — они дешевле в разы, а падение им совсем не страшно.
Третий блок — данные, о которых все забывают, а они копятся годами. Снимки дисков, старые резервные копии, логи, которые никто никогда не читал, и архивы, нужные раз в пятилетку. Я настроил жизненные циклы: горячие данные остаются на быстрых дисках, тёплые уезжают в дешёвый класс хранения, а безнадёжно устаревшее либо удаляется, либо уходит в архив. Отдельно прошёлся по логам и выяснил, что мы хранили три года отладочной информации, которая была нужна ровно неделю.
Четвёртый блок — обязательства и контроль. Стабильную часть нагрузки мы накрыли долгосрочными обязательствами и получили скидку просто за предсказуемость, а рваные задачи оставили на оплату по факту. И, пожалуй, самое важное: я поставил бюджетные оповещения на каждый проект. Теперь, если кто-то случайно поднимет кластер из десяти больших машин, я узнаю об этом в тот же день, а не в конце месяца из письма от бухгалтерии.
Суммарно за месяц вышло сокращение примерно на шестьдесят процентов при той же производительности и том же количестве сервисов. Ни один продукт не пострадал, ни один срок не сдвинулся. Более того, приложение стало быстрее стартовать, потому что мелкие инстансы поднимаются шустрее, а лишние ночные процессы больше не отъедали ресурсы. Оглядываясь назад, понимаю простую вещь: мы никогда не задавали себе вопрос, за что именно платим.
Если хотите повторить этот путь, начните с трёх простых действий: получите детализацию счёта по проектам, назначьте владельца каждому ресурсу и выключите всё, что не работает по ночам. Дальше подтянутся и размеры машин, и хранение, и обязательства, но именно эти шаги обычно дают первые и самые приятные проценты. А теперь вопрос к вам: какой самый неожиданный способ экономии на инфраструктуре нашёлся в вашем проекте? Расскажите в комментариях — уверен, вместе мы соберём копилку идей, которая сэкономит кому-то не одну месячную зарплату.
Шаг первый — детальная разбивка счёта. Пока смотришь на одну общую сумму, кажется, что виноват трафик или база данных. Как только я включил разбивку по сервисам, проектам и меткам, картина стала неприятно ясной: почти половину счёта съедали тестовые и демонстрационные стенды, которые кто-то поднял пару лет назад и благополучно забыл. Они крутились круглосуточно, никто в них не заходил, но за каждую ночь и каждый выходной мы платили как за боевую нагрузку.
Дальше я занялся расписаниями и метками. Мы договорились, что каждое нерабочее окружение живёт только в рабочие часы, а на ночь и выходные уходит в сон или полностью останавливается. Метки с именем владельца и датой создания сделали магию: теперь у каждого стенда есть хозяин, и раз в неделю бот напоминает ему, что ресурс всё ещё живой и стоит денег. Один только этот шаг дал около четверти всей экономии, а главное — навёл порядок в голове у команды.
Второй большой блок — размеры машин. Мы годами брали инстансы с запасом на случай внезапного успеха, а по метрикам процессор редко поднимался выше пятнадцати процентов. Я снял статистику за месяц, взял девяносто пятый процентиль нагрузки и спокойно уменьшил конфигурацию большинства сервисов на одну ступень. Там, где нагрузка действительно рваная, перешли на гибкие инстансы с накопительными кредитами, а тяжёлые пакетные задачи перенесли на прерываемые машины — они дешевле в разы, а падение им совсем не страшно.
Третий блок — данные, о которых все забывают, а они копятся годами. Снимки дисков, старые резервные копии, логи, которые никто никогда не читал, и архивы, нужные раз в пятилетку. Я настроил жизненные циклы: горячие данные остаются на быстрых дисках, тёплые уезжают в дешёвый класс хранения, а безнадёжно устаревшее либо удаляется, либо уходит в архив. Отдельно прошёлся по логам и выяснил, что мы хранили три года отладочной информации, которая была нужна ровно неделю.
Четвёртый блок — обязательства и контроль. Стабильную часть нагрузки мы накрыли долгосрочными обязательствами и получили скидку просто за предсказуемость, а рваные задачи оставили на оплату по факту. И, пожалуй, самое важное: я поставил бюджетные оповещения на каждый проект. Теперь, если кто-то случайно поднимет кластер из десяти больших машин, я узнаю об этом в тот же день, а не в конце месяца из письма от бухгалтерии.
Суммарно за месяц вышло сокращение примерно на шестьдесят процентов при той же производительности и том же количестве сервисов. Ни один продукт не пострадал, ни один срок не сдвинулся. Более того, приложение стало быстрее стартовать, потому что мелкие инстансы поднимаются шустрее, а лишние ночные процессы больше не отъедали ресурсы. Оглядываясь назад, понимаю простую вещь: мы никогда не задавали себе вопрос, за что именно платим.
Если хотите повторить этот путь, начните с трёх простых действий: получите детализацию счёта по проектам, назначьте владельца каждому ресурсу и выключите всё, что не работает по ночам. Дальше подтянутся и размеры машин, и хранение, и обязательства, но именно эти шаги обычно дают первые и самые приятные проценты. А теперь вопрос к вам: какой самый неожиданный способ экономии на инфраструктуре нашёлся в вашем проекте? Расскажите в комментариях — уверен, вместе мы соберём копилку идей, которая сэкономит кому-то не одну месячную зарплату.