AWS Glue作业执行SparkSQL时因连接超时失败,求助配置Glue VPC终端节点
解决AWS Glue作业连接超时:配置VPC接口终端节点
我来帮你理清这个问题——你遇到的Connect to glue.us-east-1.amazonaws.com:443 failed: connect timed out错误,核心原因是你的Glue作业运行在VPC内,但无法通过公网访问Glue服务的控制平面(包括Data Catalog),这时候就需要配置Glue的VPC接口终端节点,下面给你一步步讲清楚:
一、先明确终端节点类型
你需要创建的是接口终端节点(Interface Endpoint),而不是网关终端节点。因为glue.us-east-1.amazonaws.com是AWS的管理服务端点,接口终端节点会在你的VPC子网中分配私有IP,让Glue作业可以在VPC内部直接访问Glue服务,不需要走公网。
二、详细配置步骤
- 登录AWS控制台,进入「VPC」服务
- 在左侧导航栏选择「终端节点」,点击「创建终端节点」
- 选择服务:
- 服务类别选「AWS服务」
- 在搜索框输入
com.amazonaws.us-east-1.glue,找到对应的Glue服务(注意要选和你作业区域一致的,这里是us-east-1)
- 配置VPC和子网:
- 选择你的Glue作业所在的VPC(必须和Redshift所在VPC一致,或者确保VPC间网络连通)
- 选择作业运行的子网(可以选多个子网提高可用性)
- 安全组设置:
- 选择一个允许HTTPS(443端口)入站的安全组——你可以直接用Redshift的安全组,或者新建一个:
- 入站规则:允许来自Glue作业所在VPC私有IP段的HTTPS(443)流量
- 出站规则:允许HTTPS(443)流量到Glue服务(默认全出站的话也可以)
- 选择一个允许HTTPS(443端口)入站的安全组——你可以直接用Redshift的安全组,或者新建一个:
- 启用私有DNS:
- 一定要勾选「启用私有DNS名称」,这样你的Glue作业就能直接用
glue.us-east-1.amazonaws.com这个域名解析到VPC内部的私有IP,完全不需要修改你的PySpark脚本
- 一定要勾选「启用私有DNS名称」,这样你的Glue作业就能直接用
- 点击「创建终端节点」,等待终端节点状态变为「可用」即可
三、额外检查项
为了确保作业完全正常运行,你还需要确认:
- 你的Glue作业已经配置为在VPC内运行:在作业配置的「网络」部分,已经选择了对应的VPC、子网和安全组
- Redshift的安全组已经允许Glue作业所在子网的IP访问Redshift的JDBC端口(通常是5439)
- 如果你的
TempDir是S3路径,需要确保VPC有S3的网关终端节点,否则Glue上传临时文件也会出现超时问题
内容的提问来源于stack exchange,提问作者Semant1ka
相关产品推荐
相关产品推荐

