如何在 AWS 中为 Elastic Beanstalk 设置应用程序负载均衡器
Posted
技术标签:
【中文标题】如何在 AWS 中为 Elastic Beanstalk 设置应用程序负载均衡器【英文标题】:How to setup Application Load Balancer for Elastic Beanstalk in AWS 【发布时间】:2018-01-30 03:24:38 【问题描述】:我正在尝试使用 Application Load Balancer 创建一个新的 ElasticBeanstalk 应用程序。我正在调用以下命令:
$ mkdir HelloWorld
$ cd HelloWorld
$ eb init
$ echo "Hello World" > index.html
$ eb create dev-env --elb-type application
最后一条命令的输出导致此错误:
正在创建应用程序版本存档“app-170821_175709”。
将 HelloWorld/app-170821_175709.zip 上传到 S3。这可能需要一段时间。
上传完成。
错误:配置验证异常:无效选项值:“null”(命名空间:“aws:ec2:vpc”,选项名称:“ELBSubnets”):为负载均衡器类型应用程序指定 VPC 的子网。
知道我的 VPC 有什么问题吗?我正在使用该区域的默认 VPC。
更新:
我取得了进一步的进展,但仍然无法正确设置 ALB。我在eb create
命令中添加了一些参数:
eb create staging-env --elb-type application --vpc.id vpc-1234604b --vpc.publicip --vpc.ec2subnets subnet-12340aa2 --vpc.elbsubnets subnet-12340aa3,subnet-12341966 --vpc.securitygroup sg-1234ac01 --vpc.elbpublic
但我仍然收到以下错误:
错误:名为“awseb-e-ifnuqgmbah-stack”的堆栈已中止操作。当前状态:“CREATE_FAILED”原因:未能创建以下资源:[AWSEBV2LoadBalancer]。
错误:创建名为:arn:aws:elasticloadbalancing:us-west-2:123456785170:loadbalancer/app/awseb-AWSEB-Y1OVPGRIAZMD/cc5ce6193af39c0b 的负载均衡器失败原因:S3Bucket:staging-bucket 不在同一区域使用 ELB:app/awseb-AWSEB-Y1OVPGRIAZMD/cc5ce6193af39c0b ```
【问题讨论】:
Whelp,这对于应该只是一个复选框的东西来说太复杂了! 【参考方案1】:我可以通过使用正确的 vpc 和子网设置运行上面的 eb create
命令来完成这项工作。
【讨论】:
为我工作。 ELB + ALB 目前是一个无证的混乱,所以谢谢你。我认为这还不是控制台选项,因为并非所有 ELB 参数都连接到它们的对应参数。例如,需要在 Target Group 上明确设置健康检查 URL。【参考方案2】:我能够与eb create dev-env --elb-type classic
合作。
Classic Load Balancer 是 Elastic Load Balancing 上一代负载均衡器。它支持将 HTTP、HTTPS 或 TCP 请求流量路由到环境实例上的不同端口。
【讨论】:
以上是关于如何在 AWS 中为 Elastic Beanstalk 设置应用程序负载均衡器的主要内容,如果未能解决你的问题,请参考以下文章
在 Docker 中为 AWS Elastic Beanstalk 构建期间访问 .env 变量
如何在 CloudFormation 模板中为 Elastic Beanstalk 启动配置指定安全组?
直接从 Bitbucket 部署到 AWS Elastic Beanstalk
在 ACM 中为 Elastic Beanstalk 后端请求证书