Spot Instances
Spot Instances (также известные как спотовые инстансы) — это модель ценообразования и предоставления вычислительных ресурсов в облачных платформах, при которой пользователь арендует неиспользуемые мощности облачного провайдера по значительно сниженной цене, но с риском внезапного прерывания работы (termination) в момент, когда эти ресурсы требуются самому провайдеру для обслуживания клиентов с гарантированным (on-demand) доступом.
История и предпосылки появления
Концепция спотовых инстансов была впервые представлена компанией Amazon Web Services (AWS) в декабре 2009 года. Основной целью было повышение утилизации дата-центров: в пиковые нагрузки значительная часть серверов простаивает, но отключить их полностью нельзя из-за необходимости обеспечивать мгновенное масштабирование для платящих клиентов. Продавая этот «излишек» по сниженной цене, провайдер получает дополнительный доход, а пользователи — доступ к дешёвым вычислительным мощностям.
Впоследствии аналогичные модели внедрили другие крупные облачные платформы: Google Cloud (Preemptible VMs, с 2014 года), Microsoft Azure (Low-Priority VMs, впоследствии Azure Spot VMs), а также Alibaba Cloud и Oracle Cloud.
Принцип работы
Ценообразование
Цена на Spot Instances не фиксирована. Она динамически меняется в зависимости от текущего спроса и предложения на свободные ресурсы в конкретном регионе и зоне доступности. Обычно она составляет от 10% до 70% от цены аналогичного инстанса по модели on-demand. Провайдер публикует текущую спотовую цену, и пользователь может либо согласиться на неё (принимая все риски), либо установить максимальную цену, которую он готов платить (bid price). Если спотовая цена превышает установленный лимит, инстанс автоматически останавливается.
Прерывание (Termination)
Ключевая особенность Spot Instances — возможность внезапного прерывания работы. Провайдер может отозвать ресурс в любой момент, когда ему требуется больше мощностей для обслуживания клиентов с гарантированным доступом. Время уведомления о прерывании варьируется: AWS предоставляет двухминутное предупреждение, Google Cloud — 30 секунд, Azure — 30 секунд. За это время приложение должно корректно завершить работу, сохранить промежуточные данные и освободить ресурсы.
Зоны доступности
Спотовые цены и вероятность прерывания сильно различаются между разными зонами доступности (availability zones) даже внутри одного региона. Пользователь может указать несколько зон, чтобы повысить шансы на успешное выделение ресурсов и снизить риск одновременного прерывания всех инстансов.
Преимущества
- Низкая стоимость: основное преимущество — экономия до 90% по сравнению с on-demand инстансами. Это делает Spot Instances привлекательными для задач, не требующих непрерывной работы.
- Доступ к большим объёмам ресурсов: в периоды низкой загрузки дата-центров можно арендовать тысячи ядер и гигабайт памяти за небольшую плату.
- Гибкость масштабирования: можно быстро запускать и останавливать большое количество инстансов без долгосрочных обязательств.
- Оптимизация затрат: для компаний с большими вычислительными нагрузками использование Spot Instances может снизить общие расходы на облачную инфраструктуру на 30–50%.
Недостатки и риски
- Внезапное прерывание: самый существенный недостаток. Приложения должны быть спроектированы с учётом возможности потери вычислительного узла в любой момент.
- Нестабильность цены: спотовая цена может резко возрасти в часы пиковой нагрузки, что может привести к превышению бюджета или остановке инстансов.
- Ограниченная доступность: в некоторых регионах или для определённых типов инстансов (например, с большим объёмом GPU) спотовые ресурсы могут быть недоступны или иметь высокую вероятность прерывания.
- Непригодность для критически важных сервисов: базы данных, веб-серверы, системы реального времени и другие сервисы, требующие постоянной доступности, не могут полагаться исключительно на Spot Instances.
Применение
Spot Instances идеально подходят для задач, которые можно прервать и возобновить без потери данных или серьёзных задержек. Основные сценарии использования:
Пакетная обработка данных (Batch Processing)
Обработка больших массивов данных (ETL-процессы, анализ логов, рендеринг видео, научные расчёты) — классический пример. Задачи разбиваются на независимые части, каждая из которых может быть выполнена на отдельном спотовом инстансе. Если инстанс прерывается, задача перезапускается на другом.
Тестирование и разработка (CI/CD)
Среда для непрерывной интеграции и развёртывания (Continuous Integration/Continuous Deployment) может использовать Spot Instances для запуска тестовых сборок, проверки кода и создания временных окружений. Прерывание не критично — тест просто запустится позже.
Высокопроизводительные вычисления (HPC)
Научные симуляции, моделирование, расчёты в области геномики, физики, финансов — все эти задачи часто требуют огромных вычислительных мощностей на короткое время. Spot Instances позволяют получить их по минимальной цене.
Веб-серверы с изменяемой нагрузкой
В сочетании с автомасштабированием (auto-scaling) Spot Instances могут использоваться для обслуживания пиковых нагрузок на веб-сайтах и API. Основная инфраструктура работает на стабильных on-demand инстансах, а при росте трафика подключаются дешёвые спотовые.
Обработка изображений и видео
Транскодирование видео, генерация миниатюр, распознавание образов — эти задачи хорошо параллелятся и устойчивы к прерываниям.
Стратегии управления рисками
Для минимизации последствий внезапного прерывания используются следующие подходы:
- Проектирование отказоустойчивых приложений: использование очередей сообщений (например, Amazon SQS, RabbitMQ), распределённых файловых систем (Amazon EFS, Google Filestore) и механизмов контрольных точек (checkpointing) для сохранения промежуточных результатов.
- Использование нескольких зон доступности: распределение инстансов по разным зонам снижает вероятность одновременного прерывания всех.
- Установка максимальной цены (bid price): пользователь задаёт предел, выше которого не готов платить. Это защищает от резкого роста цены, но может привести к остановке инстансов.
- Миграция при прерывании: автоматический перезапуск задач на других спотовых или on-demand инстансах при получении уведомления о прерывании.
- Гибридные стратегии: комбинирование Spot Instances с on-demand и Reserved Instances (зарезервированными инстансами) для обеспечения базовой производительности и покрытия пиков.
Сравнение с другими моделями ценообразования
| Модель | Цена | Гарантия доступности | Прерывание | Применение |
|---|---|---|---|---|
| On-Demand | Высокая | Полная | Нет | Критически важные сервисы, базы данных |
| Reserved Instances | Низкая (при долгосрочной аренде) | Полная | Нет | Постоянные нагрузки, прогнозируемые затраты |
| Spot Instances | Очень низкая | Нет | Да | Пакетная обработка, тестирование, HPC |
| Savings Plans | Средняя (гибкая скидка) | Полная | Нет | Гибридные нагрузки с фиксированным объёмом |
Интересные факты
- По данным AWS, около 70% всех вычислительных мощностей, продаваемых через Spot Instances, используются для пакетной обработки и аналитики.
- В 2020 году компания Netflix активно использовала Spot Instances для транскодирования видео, что позволило ей сократить расходы на облачную инфраструктуру на 50–70%.
- Google Cloud предлагает Preemptible VMs с фиксированной ценой (без аукциона), но с тем же риском прерывания. В 2021 году Google представила Spot VMs с динамическим ценообразованием, аналогичным AWS.
- Microsoft Azure предоставляет Spot VMs с возможностью «выкупа» (eviction policy), позволяя пользователю выбирать, будет ли виртуальная машина удалена или остановлена при прерывании.
Источники
- Amazon Web Services. «Amazon EC2 Spot Instances». Документация AWS.
- Google Cloud. «Spot VMs». Документация Google Cloud.
- Microsoft Azure. «Azure Spot Virtual Machines». Документация Microsoft.
- Varia, J. (2010). «Cloud Architectures: Designing for Fault Tolerance and High Availability». Amazon Web Services.
- Greenberg, A., et al. (2009). «VL2: A Scalable and Flexible Data Center Network». ACM SIGCOMM.
- Отчёты аналитических компаний Gartner и IDC по рынку облачных вычислений (2019–2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →