弹性 Beanstalk 重用现有负载均衡器

11

使用弹性Beanstalk能否重复使用现有的负载均衡器?


1
嗨,这个有更新了吗?这个问题已经一年了,你是否已经发现现有的ALB是否可以与EB应用程序关联?类似于在ECS中的工作方式。 - Kostanos
3个回答

14

就我所知,唯一让这项工作可行的方法如下:

  1. 将您的环境创建为单个实例而非负载均衡。您会发现EB仍会创建一个自动扩展组。

  2. 在EC2控制台下手动创建EB环境的目标组。

  3. 将刚刚创建的目标组分配给自动扩展组(在EC2控制台中,在目标组下,单击自动扩展组并编辑详细信息)。

  4. 向所需的ALB添加目标组的侦听器即可。

  5. 完成

必须直接在自动扩展组上管理缩放,因为在EB控制台上它仍处于禁用状态。

更改配置和更新应用程序会将其推送到所有实例。

我还没有测试过升级操作系统,但我认为不会出现问题,因为它不太可能重新构建自动扩展组。

重建环境的方式是有效的,但由于自动扩展组得到了重建,您需要手动重置目标组和自动扩展配置。

更新:我已经使用此设置运行多个客户端一个多年,没有出现任何问题。


Marc,你遇到过服务器升级的问题吗?或者你找到了一种方法来“附加”目标组到自动扩展组以避免这种情况吗?请参见:https://serverfault.com/questions/1000783/application-load-balancer-with-aws-elastic-beanstalk-target-group - Ben in CA
嗨,本。不,我完全没有遇到任何问题,实际上我在环境中运行自动升级。我不确定severfault的设置是如何完成的,但在过去的几年中我从未遇到过这个问题。 - Marc G. Smith

10
AWS现在支持在Elastic Beanstalk环境中共享Application Load Balancer。但是,这只能在环境创建期间完成。以下是使用共享负载均衡器的步骤:
  1. 打开Elastic Beanstalk控制台,在区域列表中选择您的AWS区域。

  2. 在导航窗格中,选择环境

  3. 选择创建新环境以开始创建您的环境。

  4. 在向导的主页上,在选择创建环境之前,选择配置更多选项

  5. 选择高可用性配置预设。

    或者,在容量配置类别中,配置负载平衡环境类型。有关详细信息,请参见容量

  6. 负载均衡器配置类别中,选择编辑

  7. 如果尚未选择,则选择应用程序负载均衡器选项,然后选择共享选项。

enter image description here

8. 根据您的环境要求进行任何共享应用程序负载均衡器配置更改。
9. 选择“保存”,然后进行其他环境所需的任何配置更改。
10. 选择“创建环境”。
完成以上步骤后,Elastic Beanstalk会在共享负载均衡器内创建规则。这些规则基于“Host”标头转发请求。最终,您的共享负载均衡器将如下所示:

enter image description here

如果您想要修改当前的EB环境以使用共享ALB,我建议按照以下步骤操作:
1. 使用eb config get <saved_configuration_name>下载当前环境的配置文件。 2. 在本地计算机上修改配置文件。 3. 运行eb config put <modified_configuration_name>将修改后的配置文件上传到Elastic Beanstalk。 4. 使用修改后的保存配置文件启动新环境来替换旧环境。

更新已保存的配置并不能帮助将现有环境更新到共享ELB。我成功地管理更新现有环境的方法如下:
  1. 创建一个ALB和目标组 1.a 创建一个临时的Elasticbeanstalk环境
  2. 使用共享负载均衡器将流量路由到临时Elasticbeanstalk环境
  3. 删除原始的Elasticbeanstalk环境
  4. 使用共享负载均衡器创建原始的Elasticbeanstalk环境
  5. 将来自步骤4的流量路由到原始的Elasticbeanstalk环境
  6. 删除临时环境
- varun7447

0
我认为这是不可能的。Elastic Beanstalk使用其自己的资源集,如ASG、安全组和LB等。与其他组件共享它们可能会导致对组件的不必要更改,这可能会使系统崩溃。 然而,在我看来,您应该能够在创建了EB负载平衡器后添加机器,但当您终止/重新创建应用程序时,您可能会遇到麻烦。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接