Elastic Beanstalk更改ELB类型

时间:2017-10-10 11:56:51

标签: amazon-web-services elastic-beanstalk amazon-elb amazon-elastic-beanstalk amazon-waf

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

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

3 个答案:

答案 0 :(得分:15)

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

  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并终止先前的环境。

答案 1 :(得分:12)

Hello for AWS AWS文档:

  

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

另外

  

注意您只能在环境中设置负载均衡器类型   创建。 (Refer AWS Documetnation

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

尝试

eb create test-env --elb-type network

eb create test-env --elb-type application

答案 2 :(得分:1)

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

  1. 在控制台中,保存原始环境的应用程序配置。记下这个名字。我们将其用作<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,请在新创建的应用程序中的控制台中使用正确的证书在 Load Balancer -> Listeners 下对其进行重新配置。< / li>