我想为我的 AWS Elastic Beanstalk 应用程序创建负载均衡的自动扩展环境类型。我还想为我的负载均衡器指定我自己的安全组。
简短描述
Elastic Beanstalk 会为您的负载均衡器创建默认安全组。如果您有想要挂载到自己的负载均衡器的现有安全组(又称为 ManagedSecurityGroup),您可以覆盖此默认行为。为了阻止 Elastic Beanstalk 创建默认安全组,您必须将一个或多个配置文件添加到 .ebextensions 目录。该目录位于应用程序部署包中。
**重要提示:**以下步骤仅适用于 Application Load Balancer 和 Classic Load Balancer。Network Load Balancer 没有关联的安全组。
解决方法
使用 .ebextensions 指示 Elastic Beanstalk 服务将预先存在的安全组附加到您的负载均衡器。然后,删除 Elastic Beanstalk 为您创建的默认安全组。
1. 确认您已将现有安全组提供给 Elastic Beanstalk 使用。或者,在您的 Elastic Beanstalk 环境中为负载均衡器创建新安全组。
2. 记下您的安全组的 ID。例如,sg-123456
3. 在本地应用程序代码目录中创建一个 .ebextensions/ 目录。
**注意:**有关更多信息,请参阅使用配置文件 (.ebextensions) 进行高级环境自定义。
4. 在 .ebextensions/ 目录中,创建一个名为 elbsg.config 的文件。例如:
~/workspace/my-app/
├── .ebextensions
│ ├── elbsg.config
├── helloworld
**注意:**有关更多信息,请参阅使用配置文件 (.ebextensions) 进行高级环境自定义。
5. 基于您的 Elastic Beanstalk 环境的负载均衡器类型更新 elbsg.config 文件。
要使用 Classic Load Balancer 创建新环境或更新现有环境,请使用 SecurityGroups 设置覆盖默认安全组。例如:
option_settings:
aws:elb:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
要使用 Application Load Balancer 创建新环境或更新现有环境,请使用 SecurityGroups 设置覆盖默认安全组。例如:
option_settings:
aws:elbv2:loadbalancer:
ManagedSecurityGroup: "sg-123456"
SecurityGroups: "sg-123456"
**注意:**在前面的示例中,将 sg-123456 替换为您的安全组和托管安全组。前面的 .ebextensions 采用 YAML 格式。确保验证 YAML 格式。
6. 将您的代码和新的 .ebextensions/ 目录作为新应用程序版本一起部署到您的 Elastic Beanstalk 环境。
部署之后,您的安全组将会挂载到该负载均衡器。您的环境和负载均衡器现在使用您现有安全组,而非默认负载均衡器安全组。
相关信息
配置 Elastic Beanstalk 环境
aws:elb:loadbalancer
aws:elbv2:loadbalancer