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

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

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

После автоматического обновления сервера AWS я получал страницу 503 Service Tempoporary 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 автоматически регистрируется в целевой группе для балансировщика нагрузки приложений?

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

Так что перейдите в консоль EC2, а затем в самом низу левого меню (в настоящее время для меня в любом случае) есть группы автоматического масштабирования. Щелкните группу автоматического масштабирования в списке и на вкладке «Сведения» щелкните «Изменить», а затем добавьте соответствующую целевую группу.

Таким образом, кажется, что они синхронизируются даже при изменении экземпляров.

Так должно получиться так: Скриншот

Я столкнулся с той же проблемой. После дня поисков в Google и различных подходов я закончил тем, что добавил скрипт в свой каталог .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