Возможно ли с помощью AWS AutoScaling никогда не завершать экземпляры до границы оплачиваемого часа?
поскольку экземпляры AWS оплачиваются по часам, никогда не имеет смысла завершать экземпляр, который работает менее часа, если есть шанс, что он может понадобиться вам снова.
Я хотел бы избежать ситуации автоматического масштабирования, когда я добавляю экземпляр, затем завершаю его, а затем добавляю другой экземпляр в течение того же часа. Это приведет к двум оплачиваемым часам.
Я написал свой собственный autoscaler, который пропускает завершение любого экземпляра, имеющего менее 55 минуты выполнения и для быстро меняющихся нагрузок это сэкономило нам много расходов. Просто интересно, есть ли у AWS сама возможность.
1 ответов
автоматическое масштабирование не может "ждать" до конца часа, чтобы завершить экземпляр. Тем не менее, есть несколько вариантов для изучения!
при запуске политики масштабирования, которая предписывает автоматическое масштабирование для масштабирования (удаление экземпляра Amazon EC2), сначала выбирается зона доступности с большинством экземпляров, а затем определяется, какой экземпляр должен завершиться в этой зоне доступности. Этот выбор сделан Прекращение Политики, который может иметь значения:
- OldestInstance: автоматическое масштабирование завершает самый старый экземпляр в группе. Этот параметр полезен при обновлении экземпляров в группе автоматического масштабирования до нового типа экземпляра EC2 и при необходимости замены старых экземпляров новыми.
- NewestInstance: автоматическое масштабирование завершает самый новый экземпляр в группе. Эта политика полезна при тестировании нового запуска конфигурация, но не хотите держать ее в производстве.
- OldestLaunchConfiguration: автоматическое масштабирование завершает экземпляры с самой старой конфигурацией запуска. Эта политика полезна при обновлении группы и поэтапном удалении экземпляров из предыдущей конфигурации.
- ClosestToNextInstanceHour: автоматическое масштабирование завершает экземпляры, ближайшие к следующему часу выставления счетов. Эта политика помогает максимально использовать экземпляры и управление затратами.
последний параметр, ClosestToNextInstanceHour, это почти то, что вы ищете, в том, что он завершит экземпляр, который затем вызовет почасовую оплату. Однако это не будет "ждать" до конца часа.
один из вариантов-написать собственное приложение, которое определяет, когда данные-в экземпляре, ожидая, пока экземпляр не обеспечил его полную стоимость. Затем приложение может вызвать TerminateInstanceInAutoScalingGroup
для удаления и завершения экземпляра.
другой вариант, если экземпляр используется в качестве "back-end" (не напрямую обрабатывая веб-запросы), - использовать Автоматическое Масштабирование Жизненного Цикла Крюк это отправляет сигнал, когда экземпляр удаляется из группы автоматического масштабирования, но до его завершения. Обычно это используется, чтобы дать экземпляру возможность "завершить" работу, например копирование файлов журнала и завершение задачи. Если экземпляр используется для обработки длительных фоновых задач, крюк жизненного цикла может использоваться для ожидания завершения работы или до тех пор, пока час выставления счетов не будет почти завершен, прежде чем позволить экземпляру быть завершенным.
все это, однако, требует некоторых пользовательских сценариев. Конфигурация автоматического масштабирования out-of-the-box завершит экземпляр немедленно в ответ на политику масштабирования (если Подключение Слива в действительности).