带有 AWS Elastic Beanstalk 的应用程序负载均衡器 - 目标组

带有 AWS Elastic Beanstalk 的应用程序负载均衡器 - 目标组

我正在使用应用程序负载均衡器AWS Elastic Beanstalk

在 AWS 自动服务器更新后,我收到了 503 服务暂时不可用页面。(仅限此,服务器负载接近为零 - 单实例)

[PHP 7.3 在 64 位 Amazon Linux/2.9.2 上运行(从 2.9.1 自动升级)]

环境本身表现健康。

我正在使用应用程序负载均衡器实现 HTTPS 以及未来的扩展。

事实证明,AWS EB 创建了一个新的 EC2 实例并终止了之前的实例,因此在应用程序负载均衡器指向的目标组中没有注册实例。

如何配置 AWS 以使用替代 Elastic Beanstalk EC2 实例自动注册到目标组适用于应用程序负载均衡器?

答案1

这是前段时间的事了,对我来说似乎效果很好的是在自动缩放组下的目标组部分下添加适用的目标组。

因此,转到 EC2 控制台,然后在左侧菜单的最底部(对我来说目前是这样)有 Auto Scaling 组。单击列表中的 Auto Scaling 组,在“详细信息”选项卡上,单击“编辑”,然后添加适用的目标组。

即使实例发生变化,这似乎也能使它们保持同步。

所以它看起来应该是这样的:截屏

答案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

相关内容