AWS ECS集群提示无容器实例无法运行任务,EC2可查实例如何解决
ECS集群无法识别EC2容器实例问题分步排查解决方法
第一步:检查EC2实例关联的IAM角色权限
- 进入EC2控制台,找到对应ECS实例,查看【安全】标签下的IAM角色名称
- 进入IAM控制台检查该角色是否附加了
AmazonEC2ContainerServiceforEC2Role权限策略 - 若未附加,直接附加该策略后,重启ECS实例等待2分钟再查看集群的容器实例列表
第二步:验证EC2实例的ECS集群注册配置
- 连接对应EC2实例(Session Manager/SSH均可)
- 执行命令查看ECS agent配置文件:
cat /etc/ecs/ecs.config - 检查
ECS_CLUSTER参数的值是否和你创建的ECS集群名称完全一致(大小写敏感,配置错误则无法注册到对应集群) - 如果配置错误,修改该参数为正确集群名,执行命令重启ECS agent:
sudo systemctl restart ecs,等待1分钟后刷新ECS集群页面
第三步:排查网络连通性问题
- 查看EC2实例关联的安全组出站规则,确认允许TCP 443端口的出站访问(ECS agent需要和ECS服务端点通信)
- 如果EC2实例部署在私有子网,确认子网已配置NAT网关,或者已经添加了ECS、ECR、CloudWatch相关的VPC端点
- 可在EC2实例内执行命令测试连通性:
curl https://ecs.<你的区域>.amazonaws.com,正常会返回403错误(说明连通正常,仅未鉴权),如果超时则为网络不通
第四步:确认ECS Agent运行正常
- 在EC2实例内执行命令:
sudo systemctl status ecs - 若显示非active(running)状态,执行命令重装启动agent:
sudo yum install -y ecs-init sudo systemctl start ecs
- 执行命令查看agent日志定位错误:
cat /var/log/ecs/ecs-agent.log,可直接搜索error关键词定位注册失败的具体原因
第五步:确认任务启动类型匹配集群配置
- 打开你的任务定义,检查启动类型是否设置为
EC2,如果错误设置为Fargate,需要重新修订任务定义切换为EC2模式 - 运行任务时,启动类型选项要和任务定义保持一致,选择
EC2而不是Fargate
内容的提问来源于stack exchange,提问作者Santeau
相关产品推荐
相关产品推荐

