是否有人知道是否可以将现有的AWS Elastic Beanstalk环境更改为应用程序负载均衡器(而不是经典的)。
据我所知,只有应用程序ELB可以使用AWS WAF和DDOS" Shield"因此,任何现有的EB应用程序都无法利用这些功能,因为它们具有经典的ELB。
答案 0 :(得分:15)
无法更改现有环境的负载平衡器类型,但是我使用以下过程使用应用程序负载平衡器(而不是经典的)来创建克隆环境。
eb config get [save name]
中,您将在.elasticbeanstalk\saved_configs
中得到一个文件。 OptionSettings:
aws:elasticbeanstalk:environment:
LoadBalancerType: application
并删除(如果有的话):
aws:elb:loadbalancer:
CrossZone: true
aws:elb:policies:
ConnectionDrainingEnabled: true
aws:elb:listener:443:
[whatever]
您可以利用此机会进行其他更改,例如升级PlatformArn
eb config put [new save name]
中。.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: ''
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:
<saved-config-name>
。<app-version>
。eb create <new-environment-name> --elb-type application --cfg <saved-config-name> --version <app-version>