AWS Glue 2.0绑定Redshift连接后访问Glue Catalog超时如何解决
问题原因
你遇到的超时本质是Glue任务的网络访问限制导致:
- 当你为Glue任务绑定Redshift连接时,Glue会自动将任务调度到Redshift所在的VPC私有子网中运行,此时任务的所有网络请求都在该VPC内流转。如果该VPC私有子网没有配置访问Glue服务的通路,就会在调用
spark.table()读取Glue Catalog表元数据时,无法访问glue.ap-south-1.amazonaws.com接口,触发连接超时。 - 不绑定Redshift连接时,Glue任务运行在AWS托管的公共网络环境中,天然具备Glue服务的访问权限,因此读取元数据的逻辑可以正常执行,但该环境无法访问你VPC内部署的Redshift集群,因此无法完成写入操作。
解决方案
推荐按优先级选择以下方案:
- 方案1:配置Glue服务的VPC接口端点(首选)
无需开通公网访问,操作步骤如下:- 进入AWS VPC控制台,选择「端点」-「创建端点」
- 服务类别选择「AWS服务」,搜索并选中
com.amazonaws.<你的区域>.glue(本例为com.amazonaws.ap-south-1.glue) - 选择Redshift集群所在的VPC,以及Glue任务运行时会用到的所有私有子网
- 关联安全组,确保该安全组允许来自Glue任务安全组的443端口(HTTPS)入站访问
配置完成后,Glue任务在VPC内即可通过内网访问Glue服务接口,不会再触发超时。
- 方案2:为私有子网配置NAT网关
如果你的场景允许Glue任务访问公网,可以给Redshift所在的私有子网配置NAT网关,让子网内的资源可以通过公网访问Glue服务的公有端点。该方案成本更高,且存在公网访问风险,仅作为备选。 - 额外检查项
确认Glue任务关联的安全组出站规则已开放443端口的HTTPS访问权限,Redshift集群的安全组已允许Glue任务安全组访问Redshift默认端口5439。
内容的提问来源于stack exchange,提问作者Rohan Singh Dhaka
相关产品推荐
相关产品推荐

