Вопрос или проблема
В последнее время я получаю множество окончаний спотовых инстансов с следующим сообщением:
instance-terminated-no-capacity: Ваш спотовый инстанс был завершен, потому что нет доступной спотовой вместимости, соответствующей вашему запросу
При принятии решения о том, использовать ли спотовые инстансы и какой тип инстанса использовать, мне хотелось бы знать, как часто комбинация класса/типа/региона инстанса сталкивается с нехваткой мощности. Есть ли способ получить статистику по этому вопросу в виде временных рядов через API или веб-консоль?
Пытаться объяснить рынок спотовых инстансов – всё равно что пытаться объяснить нефть и бензин на товарном рынке. Аналитики думают, что у них есть объяснение ценовой волатильности, но никто не имеет полного представления о поведении покупателей.
Избежать завершения спотов невозможно, это остатки, которые были доступны в то время. Чтобы поддерживать мощность, используйте спотовые флоты типа поддержания на основе инстансов, которые вам нравятся, в консультанте спотовых инстансов.
Да, вы можете получить историю цен и создать некоторые графики или, возможно, провести анализ с помощью машинного обучения.
Вы можете использовать AWS CLI и команду aws ec2 describe-spot-price-history. Она принимает множество параметров, чтобы уточнить историю цен, которую вы хотите получить для конкретного региона, зоны доступности, типа инстанса и т. д.:
~ $ aws ec2 describe-spot-price-history
[--filters <value>]
[--instance-types <value>]
[--availability-zone <value>]
[--start-time <value>]
[--end-time <value>]
[--product-descriptions <value>]
...
Имейте в виду, что по умолчанию она возвращает много данных – может показаться, что она зависает, так что дайте ей время или уточните запрос с помощью параметров.
Также в зависимости от вашей конфигурации aws-cli она может по умолчанию возвращать JSON. Если вы предпочитаете значения, разделенные табуляцией, используйте aws --output=text ...
.
Надеюсь, это поможет 🙂
Сейчас 2024 год, и AWS всё еще не раскрывает информацию об истории цен на спотовые инстансы. Использование графика на портале этого не показывает. Описание также этого не показывает. Оно показывает только цену. Более того, похоже, что цена на споты не реагирует на спрос на редкие инстансы, такие как c8g, c7a. Возможно, они не предполагают, что клиенты спотовых цен будут запускать SAP HANA (они, вероятно, не должны этого делать). Ваш запрос просто не выполняется.
Вы также не можете (эффективно) ставить ставку выше цены на спрос в шаблоне запуска, но традиционно цены на споты были безумными после середины октября.
Возможно, они даже не знают, что у них нет мощности, пока не будет предпринято попытка запуска, но они должны знать (в обычном ходе своего бизнеса), что такой запуск не удался.
Ответ или решение
Историческая статистика по нехватке мощностей на рынке Spot-инстансов EC2
Недавно многие пользователи Amazon EC2 сталкиваются с проблемой неожиданного завершения работы Spot-инстансов с сообщением о том, что "инстанс завершен из-за отсутствия доступной мощности" (instance-terminated-no-capacity). Эта ситуация подчеркивает важность внимания к возможностям и ограничениям рынка Spot-инстансов, особенно когда речь идет о выборке типов инстансов, классов и регионов.
Понимание нехватки мощностей
Рынок Spot-инстансов функционирует по принципу динамического ценообразования, который представляет собой аналогичный механизм, как и на товарных биржах. В то время как цены Spot-инстансов могут колебаться в зависимости от спроса и предложения, точные данные о наличии мощностей по специфическим комбинациям классов классов инстансов и регионов остаются недостаточно прозрачными.
Важно отметить, что непредсказуемость завершения Spot-инстансов — это неотъемлемая часть использования этой услуги. AWS не всегда фиксирует все случаи нехватки мощностей до момента запуска инстанса, что порой приводит к неожиданным завершениям.
Доступные инструменты и API
Для получения информации о ценах и потенциальной доступности Spot-инстансов можно использовать AWS CLI. Команда aws ec2 describe-spot-price-history
предоставляет возможность получить исторические данные о ценах на Spot-инстансы. Это может помочь в анализе временных изменений и выявлении тенденций в определённых регионах и типах инстансов. Пример команды:
aws ec2 describe-spot-price-history \
--instance-types <тип_инстанса> \
--availability-zone <зона_доступности> \
--start-time <время_начала> \
--end-time <время_конца>
Эти параметры позволяют сузить поиск и получить данные, соответствующие конкретным требованиям. Следует быть внимательным к объему возвращаемых данных, так как они могут быть достаточно массивными.
Анализ данных и прогнозирование
Можно рассмотреть возможность использования собранных данных для создания визуализаций или применения аналитических методов, как, например, машинное обучение, для более глубокого понимания колебаний рынка и предсказания нехватки мощностей.
Однако, стоит учитывать, что доступность инстансов зависит не только от исторических данных по ценам, но и от многих других факторов, таких как сезонность, конкуренция за ресурсы и особенности конкретных типов инстансов.
Заключение
Несмотря на недостаточную доступность информации о нехватках мощностей на рынке Spot-инстансов EC2, вы все равно можете адаптировать свою стратегию использования через комбинирование Spot-флитов и применение аналитических инструментов для мониторинга цен и доступности. Ваша способность учитывать рыночные колебания и подстраиваться под них значительно повлияет на эффективность использования Spot-инстансов.
Чтобы минимизировать количество неожиданностей при использовании Spot-инстансов, следует рассмотреть внимательно возможность использования класса инстансов, который имеет большую вероятность доступности, и ориентироваться на рекомендации, предоставленные в Amazon EC2 Spot Instance Advisor.