Зачем замораживать серверы и как это поможет экономить на инфраструктуре
Иногда вычислительные ресурсы нужны лишь на время, но с гарантией. Есть ли способ сэкономить? Делимся всеми подробностями, сравниваем заморозку с альтернативой — прерываемыми виртуальными машинами.

Введение
Выгоднее арендовать, а не купить
Все больше компаний приходят к пониманию, что нанять команду для работы с инфраструктурой дешевле, чем полагаться на собственные ресурсы. Облака любят не только за быстроту развертывания мощностей, но и за безальтернативное сочетание экономичности и надежности.
Бизнес рад вместо капитальных затрат (CAPEX, Capital Expenditures) перейти к операционным (OPEX, Operating Expenditures). Такая оптимизация позволяет избежать крупных инвестиций. Не приходится отвлекать ресурсы на постороннюю деятельность. Все становится проще: появилась задача — и сразу же находятся все технические средства для ее решения.
Неиспользуемые ресурсы крадут бюджет
Самостоятельно покупать дорогостоящее оборудование и заботиться о его безотказной работе — не единственная расходная статья. Через непродолжительное время выясняется, что закупленных мощностей или не хватает, или бо́льшую часть времени они безнадежно простаивают.
Для мелких фирм и индивидуальных предпринимателей, у которых вся инфраструктура умещается в углу кабинета, недоутилизация вычислительных мощностей неактуальна. Однако с ростом инфраструктуры неполная загруженность ресурсов заставляет бухгалтера морщиться все сильнее. «Железо» продолжает потреблять электроэнергию, требовать расходов на обслуживание и амортизацию.
Новый уровень оптимизации
Существуют задачи, которым дополнительные мощности требуются ограниченное время. Для таких проектов возможно уменьшение стоимости аренды облачных ресурсов — достаточно отказаться от простаивающего сервера. Есть два способа это сделать: использовать прерываемые виртуальные машины или заморозить обычные.
Вопросами подобной оптимизации расходов занимается FinOps — направление IT-рынка на стыке финансов (Finance) и DevOps (Development & Operations).
О прерываемых машинах мы подробно писали в нашей недавней статье. Они позволяют сэкономить до 75% расходов на инфраструктуру. Однако у такого решения есть и два существенных недостатка: очень короткое время работы и риск неожиданной остановки. Такая особенность сильно сужает круг задач. Здесь как нельзя кстати оказывается еще одно новое решение на рынке — заморозка.
Что такое заморозка и разморозка
Заморозка
Когда виртуальная машина замораживается, часть ресурсов — процессор, оперативная память, графическая карта — отдается в распоряжение облака. Теперь ими сможет воспользоваться кто-то еще. Вернувшиеся вычислительные мощности не тарифицируются. Ни за процессоры, ни за память, ни за видеокарты плата со следующего часа не взимается.
При этом ВМ у клиента не забирается: она по-прежнему доступна в панели, диски остаются, IP-адрес все также находится во вре́менном владении.
Сетевые диски, публичные IP-адреса и другие неотчуждаемые ресурсы временно вернуть невозможно — их аренда продолжает оплачиваться. Такие сущности нельзя заморозить, так как они не могут быть использованы провайдером или переданы во временное распоряжение другому клиенту.
Разморозка
Продолжительность нахождения виртуальных машин в замороженном состоянии никак не ограничивается. Когда вычислительные мощности понадобятся, клиент самостоятельно размораживает ВМ в панели управления. Если в облаке есть необходимые свободные ресурсы, то машина стартует. На ней вновь можно работать неограниченное время без опасения, что вычислительные мощности будут отозваны.
Особенности заморозки
Заморозить можно только облачные серверы с сетевым загрузочным диском. Все компоненты виртуальной машины — процессоры, память видеокарты, накопители — должны находиться в одном вычислительном пуле.
Гипотетически могут возникать моменты, когда какие‑то специфичные ресурсы заняты. На практике мы с подобными случаями сталкиваемся крайне редко. Однако надо иметь в виду, что выход из заморозки происходит при наличии достаточного количества свободных мощностей — по‑другому она работать не может. Клиент самостоятельно кому‑то отдает свои ресурсы во временное пользование и существенно экономит на этом, но при этом получает некоторый риск задержки при их возвращении.
Ограничения
Инфраструктура сложная, организация пулов зависит от многих факторов. Не в каждом из них есть возможность предложить подобную услугу. Если в панели управления элемент интерфейса для заморозки отсутствует — значит, данный пул, к сожалению, такой вид сервиса пока предоставить не может.
Применимость
Заморозка полезна в самых разных ситуациях — все даже не перечислить. Можно заморозить уже работающую тестовую инфраструктуру или виртуальные машины с GPU в рамках проекта. В каких‑то случаях удобно наоборот — заранее подготовить несколько ВМ, которые легко поднять в случае наплыва пользователей или скачка нагрузки.
Как и у любой технологии, у заморозки своя область применения. Решение не подойдет:
- владельцам сервисов с круглосуточной доступностью, которые не испытывают ощутимые пиковые нагрузки и хостят обычные сайты, онлайн-магазины или новостные порталы;
- тем, кому нужна стопроцентная уверенность в размораживании по первому требованию.
Сравнение двух моделей
Итак, отдавать в облако вычислительные ресурсы можно двумя способами: используя прерываемые виртуальные машины или же включая заморозку. Многие путаются: «Это одно и то же? Если нет, то в чем разница? Что предпочесть в том или ином случае?»
Если кратко, то:
- прерываемые ВМ — это до 75% экономии на инфраструктуре, но при этом период функционирования непредсказуем и ограничен;
- заморозка — неограниченная продолжительность работы без риска вытеснения ресурсов, однако экономия возможна только лишь за счет периодов неиспользования.
Рассмотрим обе модели ограниченного использования ресурсов подробнее и сравним их особенности.
Предсказуемость и управляемость
Прерываемые виртуальные машины (ПВМ) могут быть приостановлены провайдером в любой момент для высвобождения занимаемых на железном хосте ресурсов, а срок жизни инстанса не превышает 24 часов. Сутки — это максимальная продолжительность их работы, при этом безотказность не гарантируется: вытеснение может произойти и раньше, если возникнет спрос на резервные мощности.
Заморозка может быть инициирована только пользователем. Именно он выбирает время, когда вычислительные ресурсы больше не нужны и их можно временно вернуть провайдеру. Ни продолжительность работы сервера, ни длительность его нахождения в замороженном состоянии никак не ограничиваются.
Стоимость
Тарификация тоже разная. Прерываемые ВМ дешевле сами по себе — это логично, раз нет гарантии срока их работы. Машина, до того, как отправится на заморозку, тарифицируется без скидок — ведь в этот период нет никакого отличия с «обычным» сервером. Не исключено, что пользователь ее вообще никогда не заморозит — соответственно, никакой разницы в стоимости часа не будет.
Важно! Если облачный сервер выключен или приостановлен — все его ресурсы без исключения продолжают оплачиваться. Чтобы прервать расход средств и списание их со счета, сервер должен быть именно заморожен. Только тогда vCPU, RAM и GPU возвращаются в облако и больше не тарифицируются.
Примеры
Высоконагруженные приложения
Юрий — ведущий архитектор высоконагруженного веб-проекта. В его ответственности находится взаимодействие экземпляров приложения за балансировщиком нагрузки.
Особенность проекта в том, что количество поступающих запросов неравномерно. Более того, не всегда удается кешировать результаты. Временами случается, когда увеличивается и количество запросов, и объем обрабатываемых данных.
Получалось так, что некоторые виртуальные машины не всегда были заняты. Случалось и наоборот: нагрузка подскакивала, и мы приближались к своим предельным возможностям. В такие моменты боялись, что наши пользователи вот-вот начнут получать отказ в обслуживании. При этом рентабельность проекта не так высока, чтобы руководство решилось на постоянную аренду дополнительных серверов.
Заморозка оказалась возможностью для быстрого и дешевого масштабирования. Теперь не боимся проводить рекламные кампании. Заранее размораживаем дополнительные серверы, после чего готовы выдержать любую нагрузку.
— Юрий, ведущий архитектор
Стартапы
Ангелина — основатель стартапа, который разрабатывает приложение для управления финансами. Раньше команда иногда сталкивалась с проблемами перерасхода бюджета на облачные вычисления, особенно во время праздников, когда работа замедлялась.
Сегодня наш стартап живет за счет грантовых средств, которые ограничены. Поэтому каждый перерасход — довольно большая проблема, за которой тянутся дополнительные согласования и бюрократия. Заморозка однозначно помогла нам восстановить баланс и вернуться в колею.
— Ангелина, руководитель стартапа
Ангелина смогла снизить затраты на облачные услуги, что позволило ее стартапу сосредоточиться на развитии без финансового стресса.
Маленькие проекты
Виктор — энтузиаст, создающий собственный игровой сервер. Работа пока ведется для небольшого сообщества игроков, которое активно только по вечерам и в выходные дни.
Раньше мне приходилось либо платить за постоянно работающий сервер, либо удалять его, а потом развертывать снова. Заморозка ВМ позволила мне поддерживать сервер в рабочем состоянии, оплачивая только время, когда на нем играют.
Фриланс
Анна — независимый веб-разработчик, который создает сложные веб-приложения для малого бизнеса и часто работает над несколькими проектами одновременно. Она любит заниматься программированием вечером и по выходным.
Раньше мне приходилось платить за постоянную работу виртуальных машин, даже когда я не писала код. Это съедало значительную часть моего бюджета. Теперь я замораживаю ВМ, когда не работаю. Сэкономленные средства могу инвестировать в новые инструменты и обучение.
— Анна, разработчик
Приостановка ВМ позволяет экономить средства, оплачивая вычислительные ресурсы только во время активной работы над проектом. Это особенно выгодно для фрилансеров и небольших команд.
Инструкция
Сервер можно заморозить как из браузера, так и в интерфейсе командной строки. Рассмотрим два способа.
Панель управления
Сначала необходимо выбрать сервер. Для этого в панели управления перейдите в раздел Облачная платформа → Серверы. Откроется страница со всеми вашими серверами. В нашем примере сервер только один — с произвольным названием Serenity.
Кликните по серверу, который хотите заморозить — вы попадете на его страницу.. Все дальнейшее управление осуществляется с помощью кнопок верхней правой части интерфейса.
Для заморозки сервера необходимо нажать на «снежинку». При наведении появится всплывающее окно с подсказкой. Операцию необходимо подтвердить — нажать Заморозить в модальном окне.
Через несколько секунд статус сервера ACTIVE
сменится на FROZEN
.
Для разморозки сервера необходимо нажать на кнопку с тремя вертикальными точками и во всплывающем меню выбрать пункт Возобновить.
Появится небольшая подсказка об оценке свободных ресурсов.
Через несколько секунд статус сервера снова станет ACTIVE
.
В панели управления можно посмотреть графики расходов. Для этого в разделе Облачная платформа требуется перейти на страницу Потребление платформы, далее — выбрать График расходов и вкладки Потреблено и Оплачено.
Можно увидеть расходы на конкретные проекты, объекты, ресурсы, регионы и пулы. Графики потребления и оплаты можно посмотреть за произвольный период времени и отсортировать.
Чтобы выгрузить детализацию потребления и оплаты в формате .csv, нажмите Скачать CSV и выберите, как будут сгруппированы строки в выгрузке (по часам, дням, неделям, месяцам, годам).
Интерфейс командной строки
В Selectel для управления облачной инфраструктурой из командной строки используется OpenStack. Инструкцию по его установке и настройке авторизации можно прочитать в нашей документации.
Получить список серверов, а также убедиться в готовности OpenStack, можно командой:
openstack server list
Чтобы заморозить сервер, достаточно передать его идентификатор или имя в команду:
openstack server shelve <server>
Как только заморозка произойдет, сервер получит статус SHELVED_OFFLOADED
.
Аналогично работает команда для разморозки:
openstack server unshelve <server>
После того как процесс разморозки будет завершен, статус сервера станет ACTIVE
.
Выводы
Заморозка позволяет существенно экономить средства и всегда держать под рукой готовые к работе вычислительные мощности. На период заморозки не оплачиваются ни ядра процессоров, ни память, ни графические карты. Тарификация продолжится только после разморозки инстанса.
Неотчуждаемые ресурсы, которые невозможно вернуть в распоряжение облака — IP‑адреса, сетевые диски и другие — заморозке не поддаются, оплата за их использование продолжится в любом случае.
Заморозка полностью контролируется пользователям. Сам процесс очень прост, а управление доступно как в браузере, так и в интерфейсе командной строки.
Вместо того чтобы непрерывно оплачивать облачные ресурсы, которые используются нерегулярно, можно отдать эти мощности тем, кто в них нуждается, и тем самым сэкономить.