Привет!
Продолжая тему об экономии денег в облаках, сегодня я расскажу о Spot Instances. Напомню, что в AWS есть как минимум 3 основных вида оптимизации расходов:
- автомасштабирование
- резервирование
- использование спот инстансов
Что такое Spot инстанс?
Это обычный EC2 или VPC инстанс, но есть некоторые нюансы работы:
- Как было сказано ранее, это обычный инстанс. Вычислительные и сетевые ресурсы, дисковые скорости и всё остальное у машин такое же, как и обычных EC2 инстансов.
- Вы сами устанавливаете цену, которую будете платить за час использования инстанса. Больше вы платить не будете.
- Инстанс может быть выключен в любое время, если, например, кто-то предложил цену больше за слот, который вы занимаете, а других нет.
- Оплата производится за полный час работы инстанса. Часть часа отбрасывается в пользу клиента — в меньшую сторону до полного часа.
Спот инстансы используют незанятые слоты EC2, чтоб те не простаивали.
Зачем использовать машины, которые могут отключиться в любую минуту?
Всё очень просто. Это дёшево. Если не важна критичность аптайма, то это идеальный вариант работы.
Вот поротой юзкейс использования Spot инстансов. Каждую ночь ваше приложение собирает картинки, которые пользователи загрузили за день и создаёт из них иконки. Всё до нелепости просто: поднимается 50 Medium High-CPU инстансов, смотрят в SQS и по очереди процессят всё в папке uploaded в вашем бакете S3. Ну и складывают в папку processed.
Они обычно справляются за 2 часа. Нет смысла их резервировать на такое количество времени, даже Light Utilization Reservation не покроет расходов. За эти 2 часа за инстансы вы заплатите
2 * 50 * $0.165 = $16.5 в день и ~$511 в месяц.
На этом можно сэкономить. Нужно всего-навсего начать использовать Spot Instances. На момент написания статьи стоимость Spot Medium High-CPU инстанса $0.018. Ощутим разницу между $0.018 и $0.165. Итак, в заявку ставим в среднем в 2 раза больше стоимости спот инстанса за час, чтоб наверняка не перебили наши ставки. И получим следующие расчёты:
2 * 50 * $0.036 = $3.6 в день и ~$111 в месяц.
При таком раскладе получим ~80% экономии. Единственное, о чем нам нужно помнить — это то, что инстанс могут потушить. Правильные обработки фейлов — вот что должно быть заложено в вашем софте.
Как заказать спот инстанс?
В меню Instances в консоли находим Spot Requests и создаём новый запрос. Выбираем подготовленный AMI с нашим софтом. Далее вбиваем параметры спот запроса:
Ну и дальше как обычный инстанс.
Больше о спот инстансах можно почитать на официальной страничке. Там есть много картинок и разного рода объяснений почему это всё круто.
Напоследок небольшой опросничек по теме.
Автор: korjik