Terraform部署ECS Fargate任务失败求助:无法拉取ECR镜像
问题:Fargate任务无法拉取ECR镜像导致初始化失败
使用Terraform模块化部署AWS资源,已完成VPC、RDS数据库等资源创建,Docker镜像也成功上传至ECR,但启动Fargate类型的ECS任务时持续失败,其余环节均正常。
报错信息
ResourceInitializationError: unable to pull secrets or registry auth: The task cannot pull registry auth from Amazon ECR: There is a connection issue between the task and Amazon ECR. Check your task network configuration. RequestError: send request failed caused by: Post "https://api.ecr.us-east-2.amazonaws.com/": dial tcp 3.17.137.51:443: i/o timeout
已知情况
- Docker镜像可正常使用,已测试从AWS拉取并在本地运行容器
- 此前访问分配的DNS记录无响应,当前返回503服务暂时不可用错误
排查与解决建议
- 检查任务网络配置:
- 若任务部署在公有子网,确认任务定义中
assign_public_ip设为true,且子网路由表包含指向互联网网关(IGW)的默认路由。 - 若任务部署在私有子网,需配置NAT网关(确保路由表指向NAT网关)或ECR的VPC端点,保证任务能访问ECR服务。
- 若任务部署在公有子网,确认任务定义中
- 验证安全组规则:
- 确保任务所在安全组允许出站HTTPS(443端口)流量,无针对ECR服务IP的访问限制。
- 检查任务执行角色权限:
- 确认ECS任务执行角色拥有
AmazonEC2ContainerRegistryReadOnly权限,或包含ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:GetAuthorizationToken等拉取镜像所需的具体权限。
- 确认ECS任务执行角色拥有
- VPC端点配置(私有子网场景):
- 若使用私有子网且未部署NAT网关,需创建ECR的两个VPC端点:
com.amazonaws.us-east-2.ecr.api和com.amazonaws.us-east-2.ecr.dkr,并确保端点安全组允许任务安全组的访问,路由表包含端点的路由条目。
- 若使用私有子网且未部署NAT网关,需创建ECR的两个VPC端点:
- VPC DNS设置:
- 确认VPC的
enableDnsHostnames和enableDnsSupport均设为true,保证任务能正确解析ECR的域名。
- 确认VPC的
内容的提问来源于stack exchange,提问作者Seth Brock
相关产品推荐
相关产品推荐

