2012-06-26 1 views
24

Мы рассматриваем использование автомасштабирования EC2 для обработки всплесков нагрузки. В нашем случае мы хотим масштабировать экземпляры на основе размера очереди SQS, а затем вниз, при этом размер очереди возвращается под контроль. Каждое сообщение SQS определяет потенциально долго выполняющееся задание (иногда до 20 минут для сообщения), которое должно быть завершено до того, как экземпляр может быть прерван.Amazon EC2 автомасштабирование вниз с изящным отключением?

Наше программное обеспечение обрабатывает процесс выключения изящно, поэтому выдача sudo service ourapp stop будет ждать завершения приложения перед возвратом.

Мой вопрос; когда автомасштабирование начинает уменьшаться, происходит прерывание (которое, по-видимому, похоже на нажатие кнопки питания), будет ли оно ждать завершения нашего приложения до того, как экземпляр «отключится»?

https://forums.aws.amazon.com/message.jspa?messageID=180674 < - что и другие вещи, которые я нашел, кажется, предполагают, что это не

ответ

16

В середине 2014 года AWS представила «крючки жизненного цикла», который позволяет полностью контролировать процесс завершения.

Наш высокий уровень вниз процесс Масштаб:

  • Auto Scaling отправляет сообщение в очередь SQS с идентификатором экземпляра
  • контроллер приложение подбирает сообщение
  • Controller приложение выдает экземпляр «остановить 'request
  • Приложение контроллера повторно ставит в очередь сообщение SQS, когда экземпляр останавливается
  • Приложение контроллера снова забирает сообщение, проверяет, прекратил ли экземпляр (или перезаписал m essage попробовать еще раз позже)
  • контроллер приложение уведомляет Auto Scaling на «ПРОДОЛЖИТЬ» с окончанием
  • Controller приложение удаляет сообщение из очереди SQS

Подробнее: http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html

+0

wow это COOL – Nate

+1

wow, cool really - AWS представила крючки жизненного цикла более 1000 лет назад, когда другие все еще были заняты обнаружением америки =) – sebastian

+0

Вот обновленная ссылка: http://docs.aws.amazon.com/ AutoScaling/latest/DeveloperGuide/AutoScalingGroupLifecycle.html – cars

21

На большинстве новее Ами, машины дают эквивалентную «остановке» (или «выключение -h Теперь ', чтобы службы были изящно закрыты. Пока ваша программа хорошо работает со сценариями запуска/выключения, вы должны быть в порядке, но если ваша программа занимает более 20 секунд, чтобы завершить работу, вы можете столкнуться с тем, что Amazon будет полностью уничтожить экземпляр.

documentation Amazon в отношении их автомасштабирования не указывает процесс завершения, но AWS documentation для ec2 в целом содержит сведения о том, что происходит во время процесса завершения, - что машинам предоставляется команда «shutdown», а время выключения по умолчанию для большинства систем составляет 30 секунд.

+0

Спасибо за ответ Ian , Похоже, мы могли бы использовать автомасштабирование, чтобы добавить емкость, но не удалять емкость ... – danw

+2

Теперь можно через «крючки жизненного цикла», см. Мой ответ ... – danw

 Смежные вопросы

  • Нет связанных вопросов^_^