我想为我的 AWS Elastic Beanstalk 应用程序创建一个可扩展、负载均衡的环境。我还想为我的负载均衡器指定自己的安全组。
简短描述
Elastic Beanstalk 会为您的负载均衡器创建默认安全组。要将现有安全组(ManagedSecurityGroup)附加到您的负载均衡器,请覆盖默认行为。将更多的配置文件添加到 .ebextensions/ 目录中,这样 Elastic Beanstalk 就不会创建默认安全组。该目录位于您的应用程序部署包中。
**重要事项:**以下步骤仅适用于应用程序负载均衡器和经典负载均衡器。网络负载均衡器没有关联的安全组。
解决方法
使用 .ebextensions 指示 Elastions Beanstalk 服务将现有安全组附加到您的负载均衡器。然后,移除 Elastic Beanstalk 为您创建的默认安全组。
1. 确认有现有安全组可供 Elastic Beanstalk 使用。或者,在您的 Elastic Beanstalk 环境中为负载均衡器创建一个新的安全组。
2. 记下您的安全组的 ID。例如:sg-123456。
3. 在您的本地应用程序代码目录中创建一个 .ebextensions/ 目录。
4. 在 .ebextensions/ 目录中,创建一个名为 elbsg.config 的文件。例如:
~/workspace/my-app/├── .ebextensions
│ ├── elbsg.config
├── helloworld
**注意:**有关前两个步骤的更多信息,请参阅使用配置文件(.ebextensions)进行高级环境自定义。
5. 根据您的 Elastic Beanstalk 环境的负载均衡器类型更新 elbsg.config 文件。
要使用经典负载均衡器创建新环境或更新现有环境,请使用 SecurityGroups 设置覆盖默认安全组。例如:
option\_settings: aws:elb:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
要使用应用程序负载均衡器创建新环境或更新现有环境,请使用 SecurityGroups 设置覆盖默认安全组。例如:
option\_settings: aws:elbv2:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
**注意:**在前面的示例中,将 sg-123456 替换为您的安全组和托管安全组 ID。前面的 .ebextensions 采用 YAML 格式。验证 YAML 格式。
6. 将您的代码和新的 .ebextensions/ 目录作为新的应用程序版本一起部署到您的 Elastic Beanstalk 环境中。
相关信息
配置 Elastic Beanstalk 环境
aws:elb:loadbalancer
aws:elbv2:loadbalancer