Elastic Beanstalk 更改 ELB 类型
Elastic Beanstalk Change ELB Type
有谁知道是否可以将现有的 AWS Elastic Beanstalk 环境更改为 Application Load Balancer(而不是经典环境)。
据我所知,只有应用程序 ELB 可以使用 AWS WAF 和 DDOS "Shield" 进行保护,因此任何现有的 EB 应用程序都无法利用这些功能,因为它们具有经典的 ELB。
您好,根据 AWS 文档:
The Elastic Beanstalk Environment Management Console only supports
creating and managing an Elastic Beanstalk environment with a Classic
Load Balancer. For other options, see Application Load Balancer and
Network Load Balancer.
还有
Note You can only set the load balancer type during environment
creation. (Refer AWS Documetnation)
因此,当您通过 AWS CLI 将应用程序部署到 Elastic Beanstalk 时:
尝试
eb create test-env --elb-type network
或
eb create test-env --elb-type application
无法更改现有环境的负载均衡器类型,但我使用以下过程创建了一个带有应用程序负载均衡器(而不是经典负载均衡器)的克隆环境。
- 在控制台中,保存原环境的配置。
- 在终端
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 并终止之前的环境。
我发现更改现有应用程序以使用应用程序负载均衡器的最简单方法是同时使用控制台和 CLI:
- 在控制台中,保存原环境的应用配置。记下这个名字。我们将其用作
<saved-config-name>
.
- 在应用程序版本下记下最新的版本标签。我们将其用作
<app-version>
.
- 来自 CLI 运行
eb create <new-environment-name> --elb-type application --cfg <saved-config-name> --version <app-version>
- 如果您在旧应用程序中配置了 HTTPs,请在新创建的应用程序中在 Load Balancer-->Listeners[=25 下的控制台中重新配置它=] 具有适当的证书。
有谁知道是否可以将现有的 AWS Elastic Beanstalk 环境更改为 Application Load Balancer(而不是经典环境)。
据我所知,只有应用程序 ELB 可以使用 AWS WAF 和 DDOS "Shield" 进行保护,因此任何现有的 EB 应用程序都无法利用这些功能,因为它们具有经典的 ELB。
您好,根据 AWS 文档:
The Elastic Beanstalk Environment Management Console only supports creating and managing an Elastic Beanstalk environment with a Classic Load Balancer. For other options, see Application Load Balancer and Network Load Balancer.
还有
Note You can only set the load balancer type during environment creation. (Refer AWS Documetnation)
因此,当您通过 AWS CLI 将应用程序部署到 Elastic Beanstalk 时:
尝试
eb create test-env --elb-type network
或
eb create test-env --elb-type application
无法更改现有环境的负载均衡器类型,但我使用以下过程创建了一个带有应用程序负载均衡器(而不是经典负载均衡器)的克隆环境。
- 在控制台中,保存原环境的配置。
- 在终端
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 并终止之前的环境。
我发现更改现有应用程序以使用应用程序负载均衡器的最简单方法是同时使用控制台和 CLI:
- 在控制台中,保存原环境的应用配置。记下这个名字。我们将其用作
<saved-config-name>
. - 在应用程序版本下记下最新的版本标签。我们将其用作
<app-version>
. - 来自 CLI 运行
eb create <new-environment-name> --elb-type application --cfg <saved-config-name> --version <app-version>
- 如果您在旧应用程序中配置了 HTTPs,请在新创建的应用程序中在 Load Balancer-->Listeners[=25 下的控制台中重新配置它=] 具有适当的证书。