Auto Scaling负载均衡EC2实例:核心组件关联配置详解
AWS ALB+ASG 负载均衡Web服务的组件协同逻辑
核心流量路径总览
先梳理从公网用户到EC2业务服务的完整数据流向,所有组件的配置都围绕这条路径展开:
公网用户 → DNS/公网路由 → ALB(流量入口) → ALB Listener(匹配端口/协议/路径规则) → ALB Target Group(后端资源池+健康检查) → 分发到池内健康节点(ASG自动创建的EC2、手动部署的独立EC2) → 逐层安全组校验通过后到达EC2上的Web服务
三个高频困惑的直接解答
1. 安全组要配在哪层?EC2需要绑定安全组吗?
安全组是分层做访问控制的,不存在二选一,两层必须分别配置,规则完全不同:
- ALB层绑定的安全组:作为公网流量入口,入方向放开公网访问权限,比如允许
0.0.0.0/0访问80、443端口,出方向默认全放行即可 - EC2层绑定的安全组(包括ASG创建的实例、独立部署的实例):绝对不要放开公网网段的业务端口访问权限,入方向仅允许来源为「ALB绑定的安全组ID」访问Web服务监听端口(比如80、8080),额外可以加规则允许你的办公固定IP访问22/3389做运维,出方向按需放开外网访问权限(比如拉取安装包、连接数据库)
- 注意:ASG本身不需要绑定安全组,安全组配置在ASG的启动模板/启动配置中即可,ASG拉起新EC2时会自动把对应安全组绑定到实例上。
2. 已经把ALB关联到ASG了,为什么还要配置Target Group?
你在控制台看到的「ASG关联ALB」是AWS封装的简化操作,底层逻辑里ASG从来不会直接和ALB交互:
- Target Group是ALB的统一后端资源池,它不关心后端节点的来源:不管是ASG自动扩缩容出来的EC2,还是你手动挂载的独立EC2,只要在池内、通过健康检查,ALB就会向其转发流量
- ASG和Target Group绑定后,只会做两件管控层面的事:新实例拉起时自动注册到Target Group,实例缩容销毁前自动从Target Group注销、排空存量连接
- 你手动部署的独立EC2不需要加入ASG,直接注册到同一个Target Group,就能和ASG管理的实例共同承接流量。
核心本质:ALB只认Target Group,ASG只负责给Target Group自动增删实例,两者没有直接绑定关系
3. 80端口的路由应该指向ALB还是ASG?
永远指向ALB。ASG是管控平面组件,只负责EC2的扩缩容、故障替换、可用区分布,本身没有IP、没有流量转发能力,完全不参与数据平面的流量转发,80/443这类业务端口的公网路由、DNS解析,全部要指向ALB。
手动配置顺序参考(对应后续CloudFormation编写逻辑)
按这个顺序配置不会出现组件依赖报错:
- 先创建两个安全组:
- ALB专属安全组:入方向放行
0.0.0.0/0的80、443端口,出方向全放行 - EC2专属安全组:入方向放行源为ALB安全组ID的业务端口访问,放行办公IP的运维端口访问,出方向按需配置
- ALB专属安全组:入方向放行
- 创建ALB:选择公网/私网部署模式,绑定ALB专属安全组,配置ALB部署的可用区子网
- 创建Target Group:目标类型选「实例」,配置和Web服务一致的监听端口、健康检查路径(比如
/health),手动把独立EC2注册到Target Group中,给这台独立EC2绑定EC2专属安全组 - 创建ALB Listener:比如添加80端口的HTTP Listener,默认转发规则指向刚才创建的Target Group,后续HTTPS配置、路径路由、域名转发规则都在Listener层添加
- 创建ASG:
- 编写启动模板/启动配置,指定EC2镜像、实例类型、用户数据脚本,网络配置中绑定EC2专属安全组
- 在ASG的负载均衡配置栏,选择关联之前创建的Target Group(控制台如果显示「关联ALB」选项,选中后依然会要求你选择对应的Target Group)
- 配置ASG的最小/最大/期望实例数、扩缩容策略、可用区分布,ASG启动后会自动拉起EC2实例,自动注册到Target Group,通过健康检查后即可承接流量
常见配置踩坑提醒
- 不要给EC2安全组配置
0.0.0.0/0的业务端口入站规则,否则公网流量可以绕过ALB直接访问EC2,既不安全也会导致流量统计、WAF防护等ALB能力失效。安全组规则中源端填写另一安全组ID,比填写固定CIDR网段更灵活,ALB更换IP时不需要手动调整规则 - Target Group的健康检查端口、路径必须和Web服务实际配置一致,否则实例会被判定为不健康,ALB不会向其转发流量
- 不要给ASG配置公网IP,所有公网入口统一收敛到ALB即可
内容的提问来源于stack exchange,提问作者hotmeatballsoup
相关产品推荐
相关产品推荐

