You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按教程部署AWS ECS应用遇503错误,健康检查失败求助

排查AWS ECS + Terraform部署后503错误(健康检查失败)

以下是针对该问题的具体排查步骤:

1. 核对容器与健康检查核心配置

  • 本地应用通过http://localhost:3000/contacts正常访问,需确认Terraform配置中:
    • ECS任务定义里的容器端口是否设为3000,端口映射规则是否正确
    • ECS服务或负载均衡器目标组的健康检查路径是否为/contacts,而非默认的/;同时确认健康检查的协议(HTTP)、端口与容器配置一致
    • 检查健康检查的超时、间隔时间:如果应用启动较慢,默认参数可能导致误判,可适当调大超时时间(比如设为10秒)

2. 验证容器内部与网络可达性

  • 查看CloudWatch容器日志:检查是否有镜像拉取失败、应用启动报错(如依赖缺失、端口占用)的日志信息
  • 用ECS Exec进入容器测试:执行curl localhost:3000/contacts,确认应用在容器内部是否能正常返回响应
  • 检查安全组规则:除开放外部访问端口,还要确保ECS任务所在安全组允许负载均衡器安全组/VPC内部IP访问容器端口3000,健康检查流量属于内部流量,需单独放行

3. 负载均衡器与目标组排查(若使用)

  • 查看目标组状态:确认目标组内的ECS任务是否显示为unhealthy,查看失败原因(如“超时”“返回404”)
  • 核对负载均衡器监听规则:确认监听端口(如80)是否正确转发到目标组的容器端口3000
  • 检查目标组的健康检查配置:若为多AZ部署,确认是否开启跨区域健康检查,确保能覆盖所有AZ的任务

4. Terraform配置与AWS兼容性检查

  • 确认Terraform AWS Provider版本:如果教程使用旧版本Provider,新版本可能存在语法变更(比如ECS任务定义的port_mappings格式、network_mode配置),需对比你的配置与最新Provider文档
  • 检查ECS服务事件日志:在AWS控制台ECS服务页面,查看是否有任务启动失败、IAM权限不足、容量不足的提示(比如Fargate资源不足)

从代码仓库来看,重点排查task-definition.tf中的健康检查配置、security-groups.tf的入站规则,以及ecs-service.tf与负载均衡器的关联逻辑。

内容的提问来源于stack exchange,提问作者RobertFrenette

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:25:17