【问题标题】:Load balancing across different Elastic Beanstalk applications跨不同 Elastic Beanstalk 应用程序的负载平衡
【发布时间】:2017-06-08 00:59:15
【问题描述】:

在我的 AWS 环境中,有一些负载平衡/自动缩放的 Elastic Beanstalk 应用程序。

我希望在它们前面有一个负载均衡器,因此对http://loadbalancer.com/app1 的任何请求都会被路由到第一个 Elastic Beanstalk 应用程序,http://loadbalancer.com/app2 被路由到第二个应用程序,依此类推。

我尝试设置一个应用程序负载均衡器,将不同的侦听器路由到不同的目标组。 不幸的是,我的解决方案并不理想,因为目标组绑定到一组固定的 EC2 实例,而我希望它们与按需创建或销毁实例的环境相关联

我还没有找到将应用程序负载均衡器的侦听器绑定到 Auto Scaling 组的方法。

有没有办法实现我想要的?

【问题讨论】:

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk elastic-load-balancer


【解决方案1】:

Amazon Elastic Beanstalk 现在支持共享负载均衡器

2020 年 9 月 11 日

https://aws.amazon.com/blogs/containers/amazon-elastic-beanstalk-introduces-support-shared-load-balancers/

【讨论】:

    【解决方案2】:

    我在控制台中为应用程序负载均衡器和弹性 beantalk 实现此目的的方式如下

    1. 创建新的目标组 (TG-App1)
    2. 将 TG-App1 附加到您的 beanstalk 环境自动缩放组。现在,您将拥有 beanstalk 创建的目标组和附加的 TG-App1,现在两者都将随实例更新。
    3. 创建新的应用程序负载平衡器 (ALB-App)
    4. 创建转发到 TG-App1 的 ALB-App 规则(例如:PATH: /app1/* -> FORWARD: TG-App1)
    5. 更新 beanstalk 环境实例安全组以允许来自端口 80 上的 ALB-App 安全组的流量。(您现在将有 2 个端口 80 规则,1 个用于 ALB-App,1 个用于默认 beanstalk 负载均衡器安全组)

    这允许您在 ALB-App(“loadbalancer.com”)上设置 dns,并根据规则将流量转发到具有由不同 beanstalks 管理的实例的不同目标组。只需按照步骤为每个 beanstalk 环境创建一个目标组并将其添加到 ALB-App 上的规则中

    结果:

    “loadbalancer.com/app1” -> ALB-App -> TG-App1 -> Beanstalk 环境 1 实例

    "loadbalancer.com/app2" -> ALB-App -> TG-App2 -> Beanstalk 环境 2 个实例

    【讨论】:

      【解决方案3】:

      我只是按照本文中的说明进行操作 https://aws.amazon.com/blogs/devops/introducing-application-load-balancer-unlocking-and-optimizing-architectures/

      步骤:

      1) 创建一个新的目标群体

          aws elbv2 create-target-group --name <target_group_name> --protocol HTTP --port 80 --vpc-id <vpc_id> 
      

      2) 将您的目标组绑定到与应用关联的自动缩放组

          aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name <id_of_the_autoscaling_group> --target-group-arns "<new_target_group_arns>"
      

      3) 在主应用程序负载均衡器中创建一个新规则,将所需路径路由到正确的应用程序(这可以通过 UI 完成)。

      【讨论】:

      • 太棒了。我几乎放弃了这个,直到我找到你的答案。这在 Google 的 App Engine Flexible 上要容易得多,只需一个简单的 dispatch.yaml 文件。
      • Amazon Elastic Beanstalk 现在引入了对共享负载均衡器的支持aws.amazon.com/blogs/containers/…
      猜你喜欢
      • 2017-04-19
      • 1970-01-01
      • 2019-04-21
      • 2017-01-15
      • 2021-08-13
      • 2010-10-25
      • 2017-02-14
      • 2018-01-30
      • 2020-11-18
      相关资源
      最近更新 更多