Приложение ELB направляет трафик на новый добавленный экземпляр до льготного периода - PullRequest
0 голосов
/ 24 января 2019

Я установил группу автоматического масштабирования и установил льготный период до 300 (5 минут). Мой новый экземпляр загружается максимум за 2,5 минуты и готов к обработке запросов HTTP. Но я замечаю, что каждый раз, когда добавляется мой новый экземпляр, ELB начинает пересылать трафик новому экземпляру даже раньше, чем льготный период, т. Е. 5 минут. Из-за этого я сталкиваюсь с ошибкой 502 Bad Gateway.

Кто-нибудь может подсказать мне, почему балансировщик нагрузки моего приложения ведет себя так?

Я использую проверки работоспособности типа ELB, и ниже приведены настройки проверки работоспособности моей целевой группы

Протокол: HTTP

Порт: 80

Здоровый порог: 2

Нездоровый порог: 10

Тайм-аут: 10

Интервал: 150

Коды успеха: 200

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Наконец я решил свою проблему.Я пишу свое решение здесь, чтобы помочь кому-то еще здесь, сталкивающемуся с той же проблемой.

В моем случае мое первоначальное ощущение было, что Application Load Balancer маршрутизирует трафик на вновь добавленный экземпляр, прежде чем он будет готов к обслуживанию.Но подробное расследование показало, что это не проблема.В моем случае новый экземпляр мог обслуживать трафик при запуске, и через несколько минут он генерировал эту ошибку ELB level 502 в течение приблизительно 30 секунд, и после этого он начал работать нормально.

Решение: Приложение имеет соединение по умолчанию KeepAlive 60 секунд.Apache2 имеет соединение по умолчанию KeepAlive в течение 5 секунд.По истечении 5 секунд Apache2 закрывает соединение и сбрасывает соединение с ELB.Однако, если запрос поступает точно в нужное время, ELB примет его, решит, на какой хост направить его, и в этот момент Apache закроет соединение.Это приведет к указанному коду ошибки 502.

Я установил таймаут ELB на 60 секунд, а тайм-аут Apache2 на 120 секунд.Это решило мою проблему.

0 голосов
/ 24 января 2019

Это нормальное поведение. Льготный период не существует, чтобы предотвратить проверки здоровья. Это относится и к проверкам работоспособности сервисов ELB и EC2. В течение указанного вами льготного периода служба ELB и EC2 отправит вам проверки работоспособности. Разница здесь в том, что автоматическое масштабирование не повлияет на результаты этих проверок. Это означает, что автоматическое масштабирование не будет автоматически планировать экземпляр для замены.

Только после того, как экземпляр запущен и работает правильно (пройденные проверки работоспособности ELB и EC2), ELB зарегистрирует экземпляр и начнет отправлять на него обычный трафик. Но это может произойти до истечения льготного периода. Если после регистрации экземпляра в ELB вы видите ошибку 502, значит, ваша проблема в другом месте.

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