AWS Glue连接禁用公网访问的Redshift时出现连接超时错误怎么办?
解决Redshift私有集群访问Glue超时的问题
你遇到的连接超时本质是禁用公网访问的Redshift集群无法连接到Glue服务的公网端点,以下是针对性解决步骤:
核心错误信息
AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to glue.eu-west-1.amazonaws.com:443 [glue.eu-west-1.amazonaws.com/24.75.06.85, glue.eu-west-1.amazonaws.com/22.210.001.155, glue.eu-west-1.amazonaws.com/23.33.08.206, glue.eu-west-1.amazonaws.com/24.194.008.134, glue.eu-west-1.amazonaws.com/24.75.007.228, glue.eu-west-1.amazonaws.com/24.229.003.246, glue.eu-west-1.amazonaws.com/24.195.005.154, glue.eu-west-1.amazonaws.com/23.248.001.228] failed: connect timed out
解决步骤
1. 配置Glue的VPC接口端点
在Redshift集群所在的VPC中创建Glue服务的接口类型VPC端点,注意:
- 开启端点的
私有DNS解析选项,让集群能通过默认Glue域名访问端点 - 确保端点安全组允许Redshift集群的安全组发起443端口的入站流量
- 将端点关联到Redshift集群所在子网的路由表
2. 检查网络访问控制
- 安全组:Redshift集群的安全组需允许出站到443端口(用VPC端点则访问端点IP,用NAT网关则允许到Glue的IP段)
- 网络ACL:对应子网的网络ACL需同时开放443端口的入站和出站规则,保证流量双向通行
3. 验证IAM角色权限
确保Redshift执行ETL任务的IAM角色拥有Glue Data Catalog的必要权限,至少包含:
glue:GetDatabaseglue:GetTableglue:GetPartition
缺失这些权限可能导致连接逻辑异常。
4. 优化ETL方案(可选)
若无需依赖Glue元数据,可改用Redshift原生工具完成转换:
- 使用
COPY/UNLOAD命令在集群间迁移数据 - 编写Redshift存储过程执行转换逻辑,避免外部Hive/Spark环境对Glue的依赖
内容的提问来源于stack exchange,提问作者Suraj Shejal
相关产品推荐
相关产品推荐

