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

AWS Glue Scala-Spark任务同时连接PostgreSQL与S3出现连接超时问题

问题根因

你遇到的是Glue作业VPC网络配置与公网S3访问的冲突问题:

  • 你的RDS PostgreSQL部署在私有VPC内,因此你给当前Glue作业配置了VPC访问权限(指定了VPC子网、安全组),才能正常拉取RDS数据
  • 加入VPC的Glue作业节点默认不会分配公网IP,无法通过公网路由访问默认的S3公网端点*.s3.amazonaws.com,因此触发连接超时
  • 你之前能正常访问S3的其他作业,应该是没有配置VPC接入,或者对应VPC已经配置了S3访问通路

解决方案

你可以任选以下两种方案之一解决:

方案1:给Glue作业所在VPC配置S3网关端点(推荐,成本更低、性能更高)

  • 进入AWS VPC控制台,找到Glue作业接入的VPC
  • 在左侧菜单栏选择「端点」,点击「创建端点」
  • 服务类别选择「AWS服务」,搜索s3,选择类型为Gateway的S3服务端点
  • 关联你Glue作业使用的子网所在的路由表,确保路由表中自动添加了S3网段的路由规则
  • 给端点附加权限策略,允许访问目标S3存储桶即可
  • 不需要修改任何Glue作业代码,配置完成后重新运行作业即可

方案2:给Glue作业所在的VPC子网配置公网访问通路

  • 在VPC中创建Internet网关,绑定到Glue作业使用的VPC
  • 修改Glue作业所在子网的路由表,添加默认路由0.0.0.0/0指向Internet网关
  • 确保Glue作业关联的安全组出站规则允许443端口的HTTPS访问
  • 该方案适合作业同时需要访问其他公网服务的场景

额外验证项

  • 检查Glue作业的安全组出站规则,确认没有限制443端口的出站访问
  • 如果你用的是中国区AWS,注意S3端点域名是*.s3.cn-[区域].amazonaws.com.cn,如果代码里硬写了全球区域名也会导致连接失败
  • 不需要创建多个SparkSession,该问题和Spark实例配置无关,属于底层网络问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 19:45:04