重新部署后如何使用 Elastic Beanstalk 处理经典负载均衡器

Posted

技术标签:

【中文标题】重新部署后如何使用 Elastic Beanstalk 处理经典负载均衡器【英文标题】:How to handle classic load balancer with Elastic Beanstalk after redeploy 【发布时间】:2021-12-22 21:19:13 【问题描述】:

我们有一个 ELB,它可以从 1 个实例扩展到 4 个实例。当我们部署新版本的服务器时,它会启动一个新实例。 因为我们在 HTTPS 上需要 256 位加密,我们不得不使用经典的负载均衡器(我们可以强制客户端的唯一一种,在我们的例子中是 android 和 iphone 应用程序)。我们注意到负载均衡器与特定实例严格关联。因此,当重新部署服务器时,负载均衡器将停止工作,因为与之关联的实例不再存在。

有什么办法可以解决这个问题吗?或者有没有一种方法可以让我们使用应用负载均衡器并仍然获得 256 位加密?

【问题讨论】:

【参考方案1】:

您可以将rolling updates 与 Elastic Beanstalk 一起使用。在更新期间,将首先添加一个新实例。新实例应与负载均衡器相关联。当新实例启动并运行时,旧实例将停止并从负载均衡器中删除。新实例应自动与负载均衡器关联。如果这没有发生,那么您的 Elastic Beanstalk 环境一定有问题。

您绝对可以使用带有Network Load Balancer 的 256 加密。您必须在 EC2 实例上终止 SSL。

【讨论】:

您好,感谢您的回复。我正在考虑将终止添加到实例中。我们有一个非常基本的 eb 部署设置,其中有我们的 config.yml 和一个 bin 目录,我们在其中除了应用程序二进制文件。当我阅读 .ebextensions 时,它们应该进入源包。如何设置 eb 配置来部署源包,然后能够使用这些 eb 扩展。 关于滚动更新,经典的负载均衡器似乎与某个实例严格关联。因此,当新实例启动并运行时,这就是负载均衡器不知道的新实例.. 1) 您可以使用 .ebextensions 文件夹和您的源代码创建一个 zip 文件并部署它。您还需要一个 Procfile。详细信息取决于您的环境。 2) 我非常有信心 EB 可以处理机器的扩展和扩展,并且 Classic Load Balancer 将得到更新。尝试添加一个实例(修改最小容量)看看会发生什么。如果负载均衡器无法处理此类更新,它将毫无用处。 是的,我同意。但它是他们希望您迁移的经典负载均衡器,所以也许它没用?当你配置它时,你将它指向一个特定的实例,我们现在运行的实例是在我们上次部署服务器时创建的,所以 CLB 没有指向它.. 所以我意识到我之前是手动将所需的实例添加到 CLB。但是现在我改为转到自动伸缩组并将CLB添加到自动伸缩组,然后自动添加实例。希望这将使它适用于我的所有实例。

以上是关于重新部署后如何使用 Elastic Beanstalk 处理经典负载均衡器的主要内容,如果未能解决你的问题,请参考以下文章

在 Elastic Beanstalk 部署后自动重启 SolR

超时后无法部署到 AWS Elastic Beanstalk

如何在部署到 Elastic Beanstalk 后运行 Python 脚本

如何调试失败的NetCore AWS Elastic Beanstalk部署?

AWS Elastic Beanstalk:重新加载配置文件而不重新部署整个应用程序?

如何在部署应用程序 Elastic beanstalk 上修改 NGINX 配置