具有多个负载均衡器的AWS Elastic Beanstalk环境

raf*_*ame 13 ssl load-balancing amazon-ec2 amazon-web-services amazon-elastic-beanstalk

我有以下情况:我有1个Rails应用程序,有2个域,这些域中的每一个都有多个/动态子域.此应用程序在AWS中使用负载平衡的Elastic Beanstalk.

我需要的是那些指向我的单个Rails应用程序的2个域在端口443中的SSL下工作.

但由于Elastic Beanstalk只有一个负载均衡器,我只能在端口433上使用一个SSL证书:(使用UCC SSL证书将不是解决方案,因为我需要每个域证书都是通配符,因此动态子域也将工作.

有关如何让多个Load Balancers与Elastic Beanstalk环境很好地配合的任何想法?

最好.

mad*_*fin 24

要将多个Elastic Load Balancers(ELB)添加到Elastic Beanstalk(EB)应用程序,您需要将其他ELB添加到EB应用程序的自动缩放组.

在命令行上

实现此目的的最简单方法是通过AWS CLI(https://aws.amazon.com/cli/):

aws autoscaling attach-load-balancers --auto-scaling-group-name <SG_NAME> --load-balancer-names <ELB_NAME>

在AWS控制台中

当然,这也可以在AWS控制台中完成:

  1. 转到EC2 > Auto Scaling > Auto Scaling Groups
  2. 选择要添加elb的组
  3. 选择详细信息选项卡
  4. 右上角的编辑按钮
  5. 使用Load Balancers字段中的Autocompletion添加负载均衡器
  6. 保存

为方便起见,您可以看到所有5个步骤需要点击的位置(不要忘记保存!) clickpath_image

对我来说,这也适用于eb生成的自动缩放组(Region:eu-central-1).

这可能在提出问题时尚未提供,但现在已经存在.

  • 在将弹性beantalk环境配置为使用蓝色/绿色部署的情况下,这在每种情况下都将很好地起作用。蓝色/绿色部署会更改应用程序使用的自动扩展组,因此,在部署新版本时,此方法将破坏第二个负载平衡器。但是在所有其他情况下,这是可以使用的解决方案。 (2认同)

Ric*_*ico 6

对于Elastic Beanstalk来说,这是一个艰难的选择,因为他们有一个cookie切割方式来部署你的应用程序,如果它不在他们的选项中,那么你要么"破解它",要么只使用完全不同的解决方案使用EC2或普通的云服务器.

您可以尝试的一件事是使用第二个域(和子域)的证书创建另一个ELB,并将其指向您的Elastic Beanstalk实例.如果你去ELB控制台,你应该能够看到第一个域的ELB.然后,您可以基于第一个域创建第二个域.

希望能帮助到你.

  • 为此,您将不得不手动创建另一个自动缩放组,然后将两个ELB添加到该自动缩放组.您可以使用与Elastic Beanstalk应用程序使用的配置相同的启动配置.它不漂亮,但应该做的伎俩.你必须创建另一个自动缩放组的原因是因为现有组不允许你添加第二个ELB. (4认同)
  • @Rico感谢您的解决方案!有趣的是,我能够将第二个ELB添加到现有的自动缩放组中. (4认同)
  • 嘿@Rico,谢谢你的建议.但是,我已经尝试手动创建另一个ELB并将其他域指向它.它有效,但EB的自动缩放不会将新实例添加到这个新的ELB,只是由Elastic Beanstalk自动生成的那个:( (2认同)