【问题标题】:Is it possible to configure an Application Load Balancer with Elastic Beanstalk ebextensions?是否可以使用 Elastic Beanstalk ebextensions 配置应用程序负载均衡器?
【发布时间】:2018-07-07 14:01:28
【问题描述】:

Elastic Beanstalk documentation 提到可以使用 .ebextensions 文件夹中的配置文件设置负载均衡器类型。但是,当我在新创建的环境中部署我的应用程序时,Elastic Beanstalk 仍然会创建一个经典的负载均衡器。

我正在通过 AWS 控制台创建新环境,并且我的应用程序源包具有 .ebextensions 文件夹,其中包含指定应用程序负载均衡器的设置。如下图:

.ebextensions/application-load-balancer.config

option_settings:
  aws:elasticbeanstalk:environment:
    LoadBalancerType: application

我在创建环境的过程中是否遗漏了一个步骤?其他人遇到过这个问题吗?

【问题讨论】:

  • 除了指定负载均衡器的类型之外,您能否尝试按照here 所述创建默认侦听器?
  • 您如何验证“Elastic Beanstalk 仍然创建经典负载均衡器”?您的设置似乎对我有用,但在 AWS 控制台的 EB 配置屏幕上似乎没有明确确认 LoadBalancerType
  • @DemPilafian 当我检查 EC2 页面时,它显示我的负载均衡器仍然是经典的
  • EB“网络层”部分通常会显示一个“负载平衡”框,但在 LoadBalancerType: application 设置中不存在(但 EC2 页面仍显示 classic...有趣)。

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


【解决方案1】:

我也遇到了这个问题,从测试看来,这些 .ebextensions /application-load-balancer.config 设置只有在创建指定了高可用性的环境时才有效。因此,您不能只选择平台并上传代码并从 .config 设置中配置应用程序负载平衡器和高可用性设置(即使文档看起来应该可行)。相反,您必须选择所需的平台(PHP 等),上传您的初始代码,然后单击更多选项并选择“高可用性”的配置预设。如果您要部署到自定义 VPC 网络,此时您可能还需要选择您的 VPC。您不需要设置任何其他设置,因为这些设置将从您的 application-load-balancer.config 文件(和其他 .config 文件)中应用。似乎环境创建和环境配置之间存在区别,其中一些值只能在“创建”步骤中设置。

【讨论】:

    【解决方案2】:

    我想知道为什么这个问题的文档记录如此之少,而且很难找到答案或示例,即使 .ebextensions 文件夹下的扩展似乎是在 CI/CD 中使用环境的便捷方式过程。

    如何在 Elastic Beansltalk 环境中创建“应用程序”负载均衡器的正确方法是在您的 .config 文件中使用 AWS::ElasticLoadBalancingV2::LoadBalancer 来指定资源。
    示例:

    Resources:
      AWSEBV2LoadBalancer:
        Type: AWS::ElasticLoadBalancingV2::LoadBalancer
        Properties:
          Scheme: internet-facing
    

    AWS::ElasticLoadBalancingV2::LoadBalancer 规范:
    https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-loadbalancer.html
    规范说可以将“网络”或“网关”负载均衡器设置为“类型”属性,而另一个文档 (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-alb.html) 说这是不可能的,您应该使用 aws:选项文件配置中的 elasticbeanstalk:environment 选项。 不管是真的,上面的示例对于“应用程序”负载均衡器来说工作得非常好,因为“应用程序”是 V2 的默认类型。

    请注意,如果您使用 ElasticLoadBalancingV2 负载均衡器,那么您还必须在选项配置文件中使用 V2 侦听器、目标组等,以及 V2 选项(例如 aws:elbv2:loadbalancer)

    V2 监听器示例:https://github.com/awsdocs/elastic-beanstalk-samples/blob/b5e8eaea6a0acca6b80281d4f1afe408a50e1afb/configuration-files/aws-provided/resource-configuration/alb-http-to-https-redirection-full.config

    【讨论】:

      猜你喜欢
      • 2017-04-19
      • 2021-01-01
      • 2018-09-06
      • 2018-01-30
      • 2019-04-21
      • 2016-02-17
      • 2017-02-14
      • 2016-10-08
      • 2018-01-24
      相关资源
      最近更新 更多