Назад | Перейти на главную страницу

Что произойдет после отмены регистрации экземпляра EC2 в Elastic Load Balancer?

Предположим, у меня есть пара веб-серверов за экземпляром ELB. Я хочу снять половину из них, чтобы обновить ПО. Предположим, у моего приложения есть несколько потенциально более длинных запросов (скажем, до 30 секунд, потому что база данных медленная). Я не хочу просто выключать серверы и оставлять пользователей с ошибкой. Могу ли я отменить регистрацию экземпляра в ELB, чтобы предотвратить попадание в него дальнейших запросов, но подождать некоторое время, чтобы экземпляр завершил свои текущие запросы перед его выключением? Будет ли ELB пересылать ответы от недавно снятого с регистрации экземпляра?

https://forums.aws.amazon.com/message.jspa?messageID=231571

Мы только что запустили тест ELB как с проверкой работоспособности, так и с ручным удалением экземпляра из ELB, и все существующие соединения были грубо разорваны почти сразу (в течение примерно секунды).

Ответ Amazon:

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

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

Потому что я недавно сам использовал эту функцию, и есть решение проблемы, заданной / описанной (не описанной в существующих комментариях / ответах):

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

Вот сообщение в блоге, объясняющее, как настроить слив соединения в вашем ELB: https://aws.amazon.com/de/blogs/aws/elb-connection-draining-remove-instances-from-service-with-care/

И документация AWS: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-conn-drain.html

Хм, я не могу разместить больше двух ссылок, потому что мне не хватает репутации ... Если вы зайдете на github.com и поищете в аккаунте awslabs aws-codedeploy-samples, вы найдете сценарии оболочки, которые отменяют регистрацию экземпляров из ELB.