31

有谁知道是否可以将现有的 AWS Elastic Beanstalk 环境更改为应用程序负载均衡器(而不是经典的)。

据我所知,AWS WAF 和 DDOS “Shield”只能保护应用程序 ELB,因此任何现有的 EB 应用程序都无法利用这些功能,因为它们具有经典的 ELB。

4

3 回答 3

26

无法更改现有环境的负载均衡器类型,但我使用以下过程创建了一个带有应用程序负载均衡器(而不是经典)的克隆环境。

  1. 在控制台中,保存原始环境的配置。
  2. 在终端中eb config get [save name],您将在.elasticbeanstalk\saved_configs.
  3. 编辑要添加的文件

OptionSettings: aws:elasticbeanstalk:environment: LoadBalancerType: application

并删除(如果有的话):

aws:elb:loadbalancer: CrossZone: true aws:elb:policies: ConnectionDrainingEnabled: true aws:elb:listener:443: [whatever]

您可以利用此机会进行其他更改,例如升级PlatformArn

  1. 将修改后的配置保存为 [新保存名称]。
  2. 在终端中,eb config put [new save name].
  3. 更新您.ebextensions以拥有LoadBalancerType: application并可选择将侦听器添加到 elbv2。您也可以稍后在控制台中手动创建。

aws:elbv2:listener:443: ListenerEnabled: true SSLPolicy: ELBSecurityPolicy-TLS-1-2-2017-01 SSLCertificateArns: [your cert id] DefaultProcess: default Protocol: HTTPS Rules: ''

  1. 创建一个新的环境eb create [new env name] --cfg [new save name]

现在,您将拥有一个具有不同负载均衡器类型的新环境,并与您的旧环境并排。您可以执行测试,进行进一步的配置更改,然后如果一切正常,交换 CNAME 并终止以前的环境。

于 2018-09-08T16:20:50.467 回答
23

您好,根据 AWS 文档:

Elastic Beanstalk 环境管理控制台仅支持使用 Classic Load Balancer 创建和管理 Elastic Beanstalk 环境。有关其他选项,请参阅Application Load BalancerNetwork Load Balancer。

说明 您只能在环境创建过程中设置负载均衡器类型。(请参阅 AWS 文档

因此,当您通过AWS CLI将应用程序部署到 Elastic Beanstalk 时:

尝试

eb create test-env --elb-type network

或者

eb create test-env --elb-type application

于 2017-10-10T12:35:36.860 回答
4

我发现更改现有应用程序以使用应用程序负载均衡器的最简单方法是同时使用控制台和 CLI:

  1. 在控制台中,保存原始 env 的应用程序配置。记下这个名字。我们将其用作<saved-config-name>.
  2. 应用程序版本下,请注意最新的版本标签。我们将其用作<app-version>.
  3. 从 CLI 运行eb create <new-environment-name> --elb-type application --cfg <saved-config-name> --version <app-version>
  4. 如果您在旧应用程序中配置了 HTTP,请在新创建的应用程序中使用正确的证书在负载均衡器-->侦听器下的控制台中重新配置它。
于 2019-08-07T23:55:13.067 回答