用途
本技能是一份 AWS ECS(Elastic Container Service)故障排查与调试指南,用于诊断和解决 ECS 常见问题,包括任务失败、服务问题、网络问题以及性能诊断。适用于在排查 ECS 任务无法启动、服务无法部署、容器之间无法通信或资源使用异常等场景时参考。
主要能力
技能内容按问题类型组织,提供诊断命令、Python(boto3)脚本和 Terraform 配置示例:
- 快速诊断命令:检查服务状态、列出已停止任务、描述停止任务、查看日志、进入容器调试。
- 任务失败排查:区分任务状态 STOPPED 与 PENDING,分析停止原因、退出码、容器原因,并列出常见原因与解决方向,如关键容器退出、任务启动失败、CannotPullContainerError、OutOfMemoryError(退出码 137)、应用错误(退出码 1)、容量不足、ENI 配置问题、镜像拉取过慢等。
- 服务问题排查:检查服务事件、部署状态,处理服务无法放置任务、部署卡住、健康检查失败、容量不足等情况。
- 网络问题排查:任务无法访问互联网、任务之间无法通信、负载均衡健康检查失败,涉及 NAT 网关、VPC 端点、安全组规则等。
- IAM 与权限问题:CannotPullContainerError、跨账户 ECR 拉取、Secrets 访问被拒、Execute Command 不可用等,提供任务执行角色与任务角色的策略示例。
- 性能问题:高 CPU/内存使用诊断、任务启动缓慢的原因与解决方向。
- 日志分析:CloudWatch Logs 查询命令与 CloudWatch Insights 查询示例。
使用方式
技能以文档形式提供,用户可按照问题症状查找对应章节,复制其中的 AWS CLI 命令、Python 脚本或 Terraform 配置进行诊断与修复。文档末尾提供快速参考表,按症状列出首要检查项与常见原因。
适用场景
- ECS 任务启动后立即停止或无法启动。
- 任务长时间处于 PENDING 状态。
- 服务部署无法达到 COMPLETED 状态。
- 容器无法拉取镜像或访问外部服务。
- 服务之间通信失败或负载均衡健康检查不通过。
- 权限不足导致镜像拉取、Secrets 读取或 Execute Command 失败。
- CPU/内存使用过高或任务启动缓慢。
限制
本技能为故障排查指南,具体命令与配置需结合用户实际环境调整。文档中未提供收费、价格、平台支持范围或效果保证等信息。相关技能包括 boto3-ecs、terraform-ecs、ecs-fargate、ecs-deployment,但本技能未展开这些技能的详细内容。