Что такое spot и reserved instances?
Что такое Spot и Reserved (резервированные) инстансы — подробное объяснение
Spot (preemptible, low-priority) инстансы — это виртуальные машины, которые облачный провайдер предоставляет из избыточной/свободной ёмкости по сильно сниженной цене. Главное свойство — такие инстансы могут быть прерваны (terminated/stopped/evicted) провайдером при возврате ёмкости владельцу; прерывание обычно сопровождается коротким уведомлением. Spot-инстансы дешевле on-demand, но их нельзя считать надёжным долгосрочным ресурсом без дополнительной устойчивости приложения.
Ключевые характеристики Spot:
-
Цена значительно ниже on-demand (часто — кратная экономия).
-
Интеррапты (прерывания) происходят при необходимости провайдера вернуть ёмкость.
-
Подходят для зада́ч, которые терпят прерывание: batch, ETL, рендеринг, ML-обучение с чекпойнтами, CI-пайплайны, масштабируемые воркеры, k8s worker-пулы.
-
Требуют механик обработки прерываний: checkpointing, сохранение состояния вовне (S3/объектное хранилище), автоматический ресpawn, эвакуация задач в очередь.
Reserved (резервированные) инстансы / committed use — это модель скидок за обязательство пользоваться ресурсами в течение длительного срока (обычно 1–3 года) или за покупку гарантированного объёма ресурсов. Вы даёте провайдеру обязательство (или платите авансом) — и получаете более низкую цену по сравнению с on-demand. В обмен — меньшая гибкость и финансовые обязательства.
Ключевые характеристики Reserved:
-
Снижение стоимости для долгосрочных, стабильных нагрузок.
-
Различные варианты: фиксированные резервы с высоким дисконтом, гибкие/convertible варианты с возможностью менять характеристики, и модель «commitment to spend» (оплата за $/час в течение срока).
-
Опции оплаты: upfront (полная предоплата), partial upfront, либо оплата по этапам — разные варианты дают разный уровень скидки.
-
Подходит для базовой, 24/7 нагрузки: базы данных, кластеры приложений, кэш-сервисы, важные сервисы с предсказуемым потреблением.
Сравнение и когда что выбирать
-
Надёжность: Reserved > On-Demand > Spot.
-
Цена: Spot (самая низкая) < Reserved (средняя, но стабильная) < On-Demand (самая высокая).
-
Гибкость: Spot и On-Demand легко создавать/удалять; Reserved даёт скидку за счёт обязательства — меньше гибкости (зависит от типа резерва).
-
Use cases:
-
Spot: массовые, прерываемые задачи; временные среды; масштабирование воркеров; дешёвые воркеры в k8s.
-
Reserved: постоянная базовая загрузка, прод-сервисы, базы данных, long-running сервисы.
-
Практические приемы и рекомендации
-
Комбинируйте: резервируйте «базовую» ёмкость (Reserved) для стабильного уровня, а пик-нагрузку закрывайте on-demand и Spot.
-
Для Spot: используйте checkpointing, очередь задач, распределение по типам инстансов и зонам (diversify), автоматическое пересоздание (spot fleets / mixed instance groups), обработку уведомлений о прерывании.
-
Следите за затратами и эффективностью: регулярно пересматривайте Reserved покупки (покупайте под реальную загрузку), используйте рекомендации облака по RI/Savings Plans.
-
В k8s: node pools из Spot для worker-нод + node termination handler + cluster-autoscaler с mixed instances — стандартная практика для экономии.
-
Для критичных сервисов не ставьте всё на Spot; резервируйте критическую часть на Reserved/On-Demand и используйте Spot только для некритичных задач.
Риски и как их минимизировать
-
Для Spot: потеря работы при прерывании → использовать частые чекпойнты, персистентное хранилище, очереди задач; автоматизировать восстановление.
-
Для Reserved: финансовый риск при смене архитектуры/снижения нагрузки → начинать с анализа использования и рекомендованных объёмов, выбирать гибкие опции, если доступно.