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

SageMaker Pipeline连接RDS超时但EC2可连接的调试与排查

SageMaker Pipeline无法连接RDS但同VPC/安全组EC2可连接的诊断方案

诊断步骤

  • 验证Pipeline实际网络配置

    1. 登录SageMaker控制台,找到对应Pipeline的执行记录,进入预处理步骤详情页,查看「Network」标签下的子网、安全组信息,确认是否与代码中network_config配置完全一致(避免ID拼写错误、ARN配置错误等问题)
    2. 查看CloudWatch日志中的网络初始化相关内容,确认Pipeline实例是否成功加入指定VPC和安全组
  • 排查DNS解析问题

    1. 在预处理步骤中添加调试代码,输出RDS域名的解析结果:
      import socket
      print("RDS解析结果:", socket.gethostbyname("your-rds-endpoint"))
      
      或执行Shell命令:
      nslookup your-rds-endpoint
      
      对比EC2上的解析结果,确认是否解析到RDS的私有IP(而非公网IP)
    2. 检查ML VPC的DHCP选项集,确认是否配置了能解析Prod VPC私有DNS的服务器;若RDS在对等VPC中,需确保ML VPC可访问Prod VPC的私有DNS服务
  • 检查路由与网络隔离配置

    1. 确认ML VPC私有子网的路由表是否包含指向Prod VPC CIDR的VPC对等连接路由
    2. 重点关注Pipeline启用的外部网络隔离(EnableNetworkIsolation=True):该配置会阻断Pipeline的公网访问,如果RDS域名解析到公网IP,即使安全组允许,连接也会被拦截,此时必须使用RDS私有IP进行连接
  • 验证执行角色权限

    1. 确认Pipeline执行角色是否包含以下VPC相关权限:
      • ec2:CreateNetworkInterface
      • ec2:DescribeNetworkInterfaces
      • ec2:DeleteNetworkInterface
    2. 查看CloudTrail日志,搜索该角色的操作记录,确认是否存在VPC资源访问的报错信息
  • 启用网络流量日志

    1. 为ML VPC的目标子网或Pipeline安全组启用VPC Flow Logs,捕获出站到RDS端口(默认5432/3306)的流量,查看是否有REJECT状态的记录
    2. 为RDS所在的Prod VPC安全组也启用Flow Logs,确认是否接收到来自Pipeline实例的连接请求,以及是否返回响应

可能的根因

  1. 外部网络隔离阻断公网访问:Pipeline启用EnableNetworkIsolation=True后无法访问公网,若RDS域名解析到公网IP,即使安全组允许,连接也会超时。此时需改用RDS私有IP,或配置私有DNS解析指向私有IP
  2. DNS解析不一致:EC2使用自定义DNS配置,而SageMaker Pipeline使用VPC默认DNS,导致解析结果不同(EC2解析到私有IP,Pipeline解析到公网IP)
  3. 网络接口创建失败:Pipeline执行角色权限不足,无法创建绑定指定安全组的网络接口,导致实例无法正常接入VPC网络
  4. 网络ACL限制:ML VPC或Prod VPC的网络ACL存在未注意到的拒绝规则,阻断了Pipeline与RDS之间的流量(安全组允许但ACL拒绝)

快速测试建议

  • 在预处理步骤中直接使用RDS的私有IP尝试连接,排除DNS解析的影响
  • 临时关闭Pipeline的外部网络隔离(仅用于测试),确认是否能连接RDS,验证是否为公网访问被阻断导致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 22:23:15