AWS Glue同步S3到Redshift配置正常仍报连接超时如何解决?
错误含义
你遇到的报错内容如下:
调用o71.getDynamicFrame时发生错误,com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to .s3.amazonaws.com [.s3.amazonaws.com/***] failed: connect timed out
该错误核心是Glue作业在读取S3数据生成DynamicFrame的阶段,无法和目标S3存储桶建立TCP连接,超过连接等待阈值后触发超时。该报错属于网络连通性问题,和你已经配置的IAM权限无关。
解决方案
- 校验S3网关端点配置
确认你创建的S3网关端点已经关联Glue作业所在VPC的全部子网,且对应子网的路由表中已自动/手动添加了S3服务前缀列表的路由条目,路由目标为该S3网关端点。同时检查S3端点的访问策略,确认没有限制Glue作业所用IAM角色对目标S3桶的读写权限。 - 核对Glue作业VPC配置
由于你的作业需要访问VPC内的Redshift集群,因此Glue作业会配置为运行在你指定的VPC下:如果该VPC的子网没有配置公网访问能力,必须通过S3网关端点访问S3;如果子网配置了公网路由,需要确认绑定了NAT网关,允许Glue的弹性网卡访问公网S3端点。 - 检查安全组出站规则
你已经配置了安全组自引用的入站规则,额外需要确认Glue关联的安全组开放了443端口的出站访问权限,允许目标为S3服务CIDR或S3前缀列表的HTTPS请求,限制出站的规则会直接拦截S3访问请求。 - 确认S3桶配置与名称正确性
首先校验作业代码中填写的S3桶名称没有拼写错误,避免域名解析到不存在的地址。其次如果目标S3桶和Glue作业不在同一个AWS区域,需要确认你的网络配置支持跨区域S3访问,跨区域场景下S3网关端点不生效,需要配置公网访问能力。 - 验证Glue网络连接性
可以在Glue作业同VPC同子网的EC2实例上,运行telnet <桶名>.s3.amazonaws.com 443命令测试连通性,如果也出现超时可以直接定位是子网路由或安全组配置问题。
内容的提问来源于stack exchange,提问作者Gerald Mouton
相关产品推荐
相关产品推荐

