Как использовать терминацию ELB и AutoScaling для долгоживущих соединений - PullRequest
0 голосов
/ 18 февраля 2020

Я хочу настроить группы автоматического масштабирования, где мы можем запускать и завершать экземпляры в зависимости от загрузки процессора. Но обычно наши связи сохраняются долго, как более 8 часов, а иногда и больше. Когда я использую NLB, задержка отмены регистрации поддерживается только до 3600se c, и после этого NLB принудительно удалит соединение, что приведет к сбою наших долгоживущих соединений, и автоматическое масштабирование также прекратит работу экземпляров.

Как сделать Я проверяю, что все мои соединения с целевой группой обрабатываются через 8-10 часов, а затем прекращение регистрации или автоматическое масштабирование NLB завершают экземпляр?

Я проверил перехватчики жизненного цикла ASG, и он разрешает соединения только до 2 часов.

Можно ли отменить регистрацию экземпляров в целевой группе после того, как все соединения очищены, и завершить работу экземпляра с помощью ASG?

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Нет хорошего / простого способа сделать то, что вы хотите. Какие экземпляры могут длиться до 10 часов?

В зависимости от типа вашей работы, это лучший обходной путь, который я могу придумать, но он, вероятно, потребует некоторой реархитектуры. 1) Разработайте свое приложение так, чтобы все данные сохранялись вне экземпляра некоторого уровня данных (S3, RDS, EFS и т. Д. c). Когда экземпляр будет выполнен, делая то, что он делает, сохраните эту информацию на уровне данных. Таким образом, пользовательский запрос может go к любому экземпляру и получить ту же информацию. 2) ASG решает масштабироваться в 3). У вас настроена ловушка жизненного цикла и настроена функция уведомления об облачном хранилище, которая запускается, когда экземпляр переходит в состояние завершения: ожидание. который уведомляет экземпляр 4) Экземпляр периодически отправляет сердцебиение ловушке жизненного цикла, которая может продлить тайм-аут ловушек до 2 дней 5) Всякий раз, когда экземпляр завершает свою работу, он сохраняет информацию на уровне данных, упомянутом в 1) и клиент может подключиться к новому экземпляру, чтобы получить информацию, которая была обработана на старом

https://docs.aws.amazon.com/cli/latest/reference/autoscaling/record-lifecycle-action-heartbeat.html

https://docs.aws.amazon.com/cli/latest/reference/autoscaling/complete-lifecycle-action.html

0 голосов
/ 26 февраля 2020

Попробуйте использовать, Scaling CoolDown period. По умолчанию период перезарядки масштабирования составляет (300 секунд). Вы можете увеличить количество. что поможет увеличить масштаб во времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...