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

ECS容量提供商实例未注册,服务启动失败求助

问题分析与解决步骤

核心原因

ASG容量提供商启动的EC2实例未成功注册到ECS集群,导致容量提供商无可用容器实例,进而服务无法调度任务。

排查与修复步骤

1. 验证EC2实例用户数据配置

虽你已尝试添加用户数据,但需确保配置完全正确,ECS优化AMI的用户数据必须包含以下内容(替换your-cluster-name为你的集群名称):

#!/bin/bash
echo ECS_CLUSTER=your-cluster-name >> /etc/ecs/ecs.config
  • 若使用自定义AMI,需确认ECS代理已正确安装且配置文件路径无误。
  • 查看实例系统日志(EC2控制台→实例→监控→获取系统日志),搜索ECS_CLUSTER确认集群名称配置正确,且ECS代理启动成功。

2. 检查实例IAM角色权限

EC2实例必须附加AmazonEC2ContainerServiceforEC2Role(或自定义角色包含以下权限):

  • ecs:RegisterContainerInstance
  • ecs:DeregisterContainerInstance
  • ecs:SubmitContainerStateChange
  • ecs:SubmitTaskStateChange
  • ecr:GetAuthorizationToken(拉取ECR镜像时需)
  • logs:CreateLogStream、logs:PutLogEvents(使用awslogs日志驱动时需)
  • 验证方式:查看实例的IAM角色,确认权限策略包含上述必要权限。

3. 检查网络连通性

EC2实例需能访问ECS服务端点:

  • 实例所在安全组需允许**出站HTTPS(443端口)**到对应区域的ECS服务端点(如ecs.ap-south-1.amazonaws.com)。
  • 检查实例的NACL是否允许出站443流量。
  • 在实例上执行测试:curl https://ecs.ap-south-1.amazonaws.com,返回403说明网络连通但权限可能有问题,超时则为网络不通。

4. 检查容量提供商与集群关联配置

  • 确认容量提供商已正确关联到目标ECS集群(ECS控制台→集群→目标集群→容量提供商)。
  • 检查容量提供商的目标追踪配置:确保ASG的最小/最大/期望容量设置合理,且实例已处于InService状态。
  • 确认服务部署配置中已指定该容量提供商(ECS控制台→服务→目标服务→部署配置)。

5. 验证任务定义与实例兼容性

从你的任务定义来看:

  • 任务要求EC2兼容性,实例为t2.micro(X86_64架构),架构匹配。
  • CPU和内存配置(205CPU单位/205内存单位)在t2.micro资源范围内(1024CPU单位、1GB内存),资源足够。
  • 实例ECS优化AMI默认支持ecs.capability.task-eni(对应awsvpc网络模式),无需额外调整任务定义。

6. 手动触发实例注册测试

若以上配置均正确,可在EC2实例上重启ECS代理:

sudo systemctl restart ecs

实时查看ECS代理日志,确认是否有注册成功信息:

journalctl -u ecs.service -f

日志中出现Successfully registered container instance则说明注册成功。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:37:05