AWS ECS Fargate CloudFormation部署时ECS服务挂起求助
AWS ECS Fargate Service挂起&负载均衡健康检查失败排查方案
1. 先盯紧ALB健康检查配置
- 核对健康检查路径:JBoss 7.4默认根路径可能无有效响应,换用
/health(若应用配置了健康端点)或/index.html(若存在默认页面),路径错误会直接触发不健康判定。 - 端口必须对齐:目标组的端口要和任务定义里的容器端口映射、Service的负载均衡端口完全匹配,别搞混8080/80这类常用端口。
- 协议别搞反:容器用HTTP的话,ALB健康检查就别设为HTTPS,JBoss默认开启的是8080 HTTP端口,这点务必对应。
2. 安全组和网络ACL是重灾区
- ALB安全组要允许出站访问Fargate任务安全组的容器端口;Fargate任务安全组要放通来自ALB安全组的入站流量(专门用于健康检查)。
- 检查子网的网络ACL,别拦截ALB到Fargate的流量,尤其是健康检查端口的入站、响应端口的出站规则。
3. ECS任务和Service配置要对应
- 任务定义中如果配置了容器级健康检查,逻辑要和ALB的一致,避免容器自身判定健康但ALB判定不健康,导致任务反复重启。
- 调整Service部署参数:将
minimumHealthyPercent设为100,maximumPercent设为200,保证实例替换过程中至少有一个正常运行,避免全量挂起。 - 确认Service绑定的目标组和ALB的监听规则已关联,别出现绑定错误目标组的情况。
4. 手动测试连通性
- 启动独立Fargate任务,获取其私网IP,在VPC内的EC2实例或通过SSM Session Manager执行
curl http://[任务私网IP]:[端口]/[健康检查路径],确认是否返回200状态码。 - 如果curl失败,先排查JBoss配置:确认绑定地址是
0.0.0.0而非localhost(否则容器外无法访问),再检查应用是否正确部署到JBoss的deployments目录。
5. 查看ALB日志找线索
- 开启ALB访问日志,查看健康检查请求的状态码:404表示路径错误,5xx表示应用内部问题,无日志则说明安全组/NACL拦截了流量。
6. 排查Fargate网络细节
- 确认任务所在子网有足够的私网IP,避免因IP耗尽导致任务启动异常。
- 检查子网路由表,确保和ALB所在子网的流量可互通,别在路由层面卡壳。
内容的提问来源于stack exchange,提问作者jwh20
相关产品推荐
相关产品推荐

