AWS ALB配置生产/故障转移目标组自动切换失败问题咨询
AWS Application Load Balancer 主备目标组自动切换配置解答
功能支持性说明
AWS ALB 原生支持你提到的主备自动切换路由需求,你当前配置不生效的核心原因是:普通加权转发规则中权重为0的目标组默认不会被纳入故障转移候选范围,权重逻辑优先级高于故障转移逻辑,只要备组权重设为0,ALB无论主组是否健康都不会向其分配流量。
正确配置步骤
- 第一步:删除原有固定100/0权重的普通加权转发规则,改为使用ALB高级路由中的加权目标组故障转移专属配置,不要使用普通多目标组加权转发
- 第二步:分别为生产、故障转移目标组配置符合业务逻辑的健康检查规则,建议参数如下(可根据容灾容忍度调整):
- 健康阈值:连续2次检查成功判定为健康
- 不健康阈值:连续2次检查失败判定为不健康
- 检查间隔:30秒
- 第三步:在对应监听器的转发规则中,选择「转发到多个目标组」,然后开启「故障转移」开关
- 第四步:将生产目标组设置为主目标组(Primary),故障转移目标组设置为备用目标组(Secondary),无需手动配置权重,ALB会自动执行以下路由逻辑:
- 主组内存在至少1个健康目标时,100%流量路由至主组
- 主组内所有目标全部不健康时,100%流量自动切换至备组
- 主组只要有1个目标恢复健康,流量自动切回主组
- 第五步:如果你使用的旧版本ALB不支持原生故障转移开关,可使用替代方案实现:
- 两个目标组均设为非0权重,生产组100、故障转移组1
- 配置目标组的注销延迟时间为30秒,开启主组慢启动功能避免恢复时流量突增
注意该方案正常场景下会有约1%的流量进入故障转移组,需确认业务可接受该情况
常见不生效排查点
如果配置完成后仍无法自动切换,优先检查以下项:
- 确认两个目标组的健康检查配置正确,可以准确识别主组的宕机/恢复状态
- 确认当前故障转移规则的优先级高于其他同匹配条件的转发规则,不会被覆盖
- 确认切换触发时主组内所有目标都处于不健康状态,只要主组存在1个健康目标,ALB不会触发切换
内容的提问来源于stack exchange,提问作者Kunal
相关产品推荐
相关产品推荐

