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

AWS Batch Fargate连接ECR出现i/o timeout超时问题咨询

问题背景

运行AWS Batch Fargate模式作业时抛出如下报错:

ResourceInitializationError: unable to pull secrets or registry auth: execution resource retrieval failed: unable to retrieve ecr registry auth: service call has been retried 3 time(s): RequestError: send request failed caused by: Post https://api.ecr.us-east-1.amazonaws.com/: dial tcp 54.239.19.155:443: i/o timeout

已确认的配置与已做的排障操作:

  • 计算环境关联的VPC子网已开启「自动分配公有IPv4地址」
  • VPC已部署互联网网关,已配置对应公网路由
  • 同VPC内启动的EC2实例可正常通过curl访问ECR公网端点,排除VPC整体公网连通性故障
可能诱因(按出现概率从高到低排序)
  • Fargate任务公网IP分配配置被覆盖:子网层面开启「自动分配公有IPv4地址」仅为子网级默认配置,创建AWS Batch Fargate计算环境时,控制台默认会把「分配公网IP」选项设为禁用,该配置优先级高于子网默认设置,会导致任务启动时拿不到公网IP,根本无法通过互联网网关访问公网ECR端点。这是该场景下最高发的问题——测试用EC2默认继承子网的公网分配配置,和Fargate任务的配置逻辑完全独立,所以EC2能通不代表Fargate任务能拿到公网IP。
  • 测试EC2与Batch任务不在同一子网/路由表不匹配:VPC内每个子网可独立关联路由表,很多人排障时随手在同VPC的公有子网开EC2测试,但Batch计算环境选中的子网没配指向互联网网关的0.0.0.0/0默认路由,公网流量直接被丢弃。
  • 任务绑定的安全组出站规则受限:测试EC2通常会绑定默认全放出站的安全组,但Batch任务如果绑定了自定义安全组,且未放通443端口的公网出站访问,会直接阻断到ECR的HTTPS连接。
  • 子网网络ACL规则拦截流量:网络ACL是子网级无状态防火墙,若Batch任务所在子网的ACL未放通443端口出站,或是未放通1024-65535临时端口范围的入站回包流量,会触发连接超时。同VPC不同子网可绑定独立ACL,EC2所在子网的ACL规则宽松不代表任务子网规则正常。
  • VPC端点路由/策略冲突:如果VPC内创建过ECR、S3的网关/接口端点,路由表中端点路由优先级高于公网互联网网关路由,一旦端点关联的安全组、访问策略未放通Fargate任务的访问权限,请求会被转发到端点后被丢弃,触发超时。EC2实例的网段/角色如果在端点允许范围内,就不会受该问题影响。
快速排障步骤
  1. 打开AWS Batch控制台,进入对应计算环境详情页,找到Fargate启动配置栏,确认「分配公网IP」选项是否为启用状态,90%以上的该类报错都是这个配置没开导致的
  2. 在ECS控制台找到失败的Fargate任务详情,确认任务实际启动所在的子网ID,和测试用EC2的子网ID做比对,同时核对该子网关联的路由表是否存在指向互联网网关的0.0.0.0/0路由
  3. 查看任务绑定的安全组出站规则,确认允许443端口的公网访问
  4. 核对任务所在子网的网络ACL规则,确认出站放通443端口、入站放通1024-65535端口的TCP流量
  5. 排查VPC内是否存在ECR、S3相关的VPC端点,若存在则核对端点关联的安全组、访问策略是否允许任务网段访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:24:12