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

ECS Fargate任务无法拉取容器镜像问题排查求助

排查ECS Fargate任务拉取镜像超时问题

核心问题定位

错误提示CannotPullContainerError: ... dial tcp XXX.XX.XXX.34:443: i/o timeout,说明私有子网内的Fargate任务无法通过NAT网关访问公网(此处为ghcr.io镜像仓库),需从NAT网关关联配置、网络权限、VPC属性三个维度逐一排查:

具体排查步骤

  • NAT网关与路由表配置校验

    • 确认NAT网关已绑定弹性公网IP(EIP),且NAT网关状态为"可用"
    • 检查私有子网关联的路由表,必须包含0.0.0.0/0指向NAT网关的路由条目,且路由表已正确关联目标私有子网
    • 核对Terraform中aws_nat_gateway的allocation_id是否正确绑定EIP资源,aws_route_table_association是否关联了私有子网和对应路由表
  • 安全组与网络ACL权限检查

    • Fargate任务的安全组需配置出站HTTPS(443端口)允许规则,目标CIDR设为0.0.0.0/0,确保任务能发起公网请求
    • 子网的网络ACL:入站需允许NAT网关返回的临时端口(1024-65535)流量,出站需允许443端口流量到0.0.0.0/0,注意规则优先级(拒绝规则不能覆盖允许规则)
  • VPC与子网属性验证

    • 确认私有子网的map_public_ip_on_launch属性为false,避免任务直接分配公网IP绕开NAT网关配置
    • 检查VPC的enable_dns_support和enable_dns_hostnames是否设为true,确保任务能正常解析域名(即使错误中已解析出IP,DNS配置异常也可能导致连接超时)

快速验证方案

在目标私有子网内临时启动一台EC2实例,执行命令:

curl https://ghcr.io/v2/mlflow/mlflow/manifests/latest

若同样超时,问题出在VPC/子网/NAT网关的基础网络配置;若能正常返回,则需排查Fargate任务的安全组或任务定义配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:07:14