Поиск по сайту:

Вы можете сэкономить 50 % на счете за AWS EC2, используя спотовые инстансы


Спотовые инстансы предназначены для меняющихся рабочих нагрузок с гибким временем начала и окончания. Но при использовании с автоматическим масштабированием он может стать заменой инстансов по требованию за небольшую часть стоимости.

Спотовые инстансы экономят около 50-70%

Спотовые инстансы — это особый вид инстансов EC2, которые позволяют AWS продавать свободные вычислительные мощности, часто с большими скидками. Они могут быть прекращены AWS в любое время с уведомлением за две минуты, но показатели прекращения довольно низкие (менее 5% в месяц в большинстве случаев), и они в любом случае предназначены для использования в группе автоматического масштабирования.

Раньше цены на спотовые инстансы колебались в течение дня, как на фондовом рынке, что затрудняло оценку общих ежемесячных затрат на эксплуатацию парка постоянно доступных спотовых инстансов и приводило к довольно частому прекращению работы инстансов.

Однако AWS исправила эту проблему в начале 2018 года, и теперь спотовые инстансы работают совсем по-другому. Вместо того, чтобы делать ставки на свободные вычислительные мощности и позволять сообществу определять цену, AWS устанавливает цену на самое низкое значение, по которому они готовы продавать свои свободные вычислительные мощности.

Это приводит к тому, что цены на спотовые инстансы довольно постоянны, а также действуют гораздо дольше. Большинство колебаний происходит в течение месяца, а не беспорядочных ежедневных всплесков. Большинство экземпляров, таких как серия c5 , остаются довольно плоскими:

В некоторых экземплярах колебания практически отсутствуют, например в серии t2/t3. Текущие цены на спотовые инстансы можно просмотреть в консоли EC2 в разделе «Спотовые запросы» > «История цен»:

Однако в среднем вы, вероятно, можете сэкономить не менее 50%, а для большинства последних экземпляров — до 70%. AWS утверждает, что спотовые инстансы могут сэкономить вам «до» 90 %, но это в основном просто маркетинг, поскольку единственная экономия 90 % приходится на более старые типы инстансов, которые AWS больше редко продает.

Это помещает точечные экземпляры в очень полезное место. Они стоят примерно столько же, сколько 3-летний контракт на зарезервированный инстанс, без очевидного недостатка, связанного с 3-летним контрактом.

Автоматическое масштабирование устраняет недостатки спотовых инстансов

Вы могли бы подумать, что значительная экономия средств будет компенсирована другим недостатком, но на самом деле это не так. Основная проблема со спотовыми инстансами заключается в том, что они могут быть остановлены AWS в любое время с уведомлением всего за две минуты. Это звучит как проблема, но с автоматическим масштабированием эта проблема сведена к минимуму.

Auto Scaling — это функция AWS, которая масштабирует архитектуру вашего сервера в соответствии с потребностями. Если ваш веб-сервер становится перегруженным, автоматически создается новый, чтобы сбалансировать нагрузку. Это требует, чтобы вы автоматизировали жизненный цикл вашего сервера, от установки пакетов до запуска и запуска вашего кода, но в противном случае настроить довольно просто.

Auto Scaling пытается поддерживать целевое количество серверов, и в случае сбоя одного из ваших серверов можно запустить новый сервер на замену. Это также работает для спотовых инстансов — в случае, если AWS вернет вычислительные мощности, на их месте можно будет создать новый спотовый инстанс. Если у вас есть несколько экземпляров в группе Auto Scaling, у вас не будет простоев. Время, необходимое для настройки автоматического масштабирования, является единственным недостатком спотовых инстансов, но вам нужно сделать это только один раз, чтобы ежемесячно экономить кучу денег на вычислительных затратах.

Учитывая, насколько хороши спотовые инстансы, по сравнению с ними стоимость On-Demand выглядит странно завышенной. Спотовые инстансы, похоже, представляют собой реальную цену, по которой AWS готова продавать свои инстансы — они хотят, чтобы вы адаптировались к их схеме масштабируемых сервисов, использующих парки серверов, так как это лучше как для роста вашего бизнеса, так и для прибыли AWS, и они используют более низкие цены, чтобы побудить вас настроить автоматическое масштабирование. Автоматическое масштабирование само по себе также экономит деньги, а в сочетании со спотовыми инстансами оно делает запуск масштабируемых рабочих нагрузок, таких как веб-серверы, намного дешевле, чем зарезервированные инстансы.

Конечно, если все, что вам нужно, — это один веб-сервер, и вы хотите, чтобы он был доступен 100% времени, может иметь смысл использовать зарезервированный экземпляр (что сэкономит вам аналогичную сумму денег), а не настраивать группа автоматического масштабирования. Спотовые инстансы имеют смысл только в том случае, если у вас более одного инстанса, в противном случае вы можете столкнуться с коротким временем простоя, если AWS вернет инстанс.

Как работать с автоматическим масштабированием

Вы можете прочитать наше полное руководство по настройке автоматического масштабирования, но суть его довольно проста.

Во-первых, вам нужно найти способ автоматизировать жизненный цикл вашего сервера. Вы должны создать скрипт построения, который может обрабатывать все настройки, которые вы обычно делаете, если бы вы вручную создавали новый сервер. Хотя это может занять некоторое время, это гарантирует, что масштабирование может происходить автоматически. Чтобы ускорить создание новых экземпляров, создайте собственный образ AMI, который включает в себя все предустановленное программное обеспечение (и даже ваш собственный код, если вы выберете).

Затем создайте новую конфигурацию запуска на вкладке Auto Scaling в консоли EC2. Эта конфигурация содержит всю информацию о том, как серверы запускаются в группу Auto Scaling, такую как тип экземпляра, образы и сценарии запуска. На вкладке «Настройка сведений» установите флажок «Запросить спотовые инстансы».

Использование спотовых инстансов в группе автоматического масштабирования не имеет большого недостатка, если только ваше приложение не может справиться с прерываниями на уровне сервера. Хорошее эмпирическое правило заключается в том, что если ваше приложение может быть легко сбалансировано по нагрузке, оно, скорее всего, не будет иметь проблем с использованием спотовых инстансов.