Балансировщик нагрузки приложений с AWS Elastic Beanstalk — целевая группа

Балансировщик нагрузки приложений с AWS Elastic Beanstalk — целевая группа

Я используюБалансировщик нагрузки приложенийсAWS Эластичный бобовый стебель

После автоматического обновления сервера AWS я получил страницу 503 Service Temporarily Unavailable (только эта страница, при почти нулевой нагрузке на сервер — единственный экземпляр)

[PHP 7.3 работает на 64-битной версии Amazon Linux/2.9.2 (обновляется с 2.9.1 автоматически)]

Сама окружающая среда показала себя здоровой.

Я использую Application Load Balancer для HTTPS и будущего масштабирования.

Оказывается, AWS EB создал новый экземпляр EC2 и завершил работу предыдущего экземпляра, и, таким образом, в целевой группе, на которую ориентировался Application Load Balancer, не было зарегистрировано ни одного экземпляра.

Как настроить AWS для замены экземпляра Elastic Beanstalk EC2?автоматически зарегистрирован в целевой группедля балансировщика нагрузки приложений?

решение1

Это было некоторое время назад, и, похоже, мне помогло добавление соответствующей целевой группы в раздел «Целевая группа» в разделе «Группы автоматического масштабирования».

Итак, зайдите в EC2 Console, затем в самом низу левого меню (по крайней мере, для меня) есть Auto Scaling Groups. Щелкните по группе автоматического масштабирования из списка, и на вкладке Details щелкните Edit, а затем добавьте соответствующую Target Group.

Это, по-видимому, позволяет им оставаться синхронизированными даже при изменении экземпляров.

Итак, это должно выглядеть так:Скриншот

решение2

Я столкнулся с точно такой же проблемой. После дня гугления и попыток разных подходов я в итоге добавил скрипт в свой каталог .ebextensions с этими директивами:

container_commands:
   01_register_ALB_target:
    command: "aws elbv2 register-targets --region us-east-1 --target-group-arn arn:aws:elasticloadbalancing:us-east-1:xxxxxxxx:targetgroup/xxxxx/xxxxx
--targets Id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)"

Честно говоря, я не уверен на 100%, что это будет работать идеально в реальной ситуации сбоя и перезагрузки. Например, я не прилагаю никаких усилий для удаления предыдущего instanceId из целевой группы (я предполагаю, что он удаляется автоматически, по крайней мере, через некоторое время). Но команда определенно запускается во время развертывания и, похоже, не причиняет вреда, если экземпляр уже был зарегистрирован в целевой группе.

Видеть:https://docs.aws.amazon.com/cli/latest/reference/elbv2/register-targets.html

Связанный контент