跳至内容

如何从位于其他 VPC 中的 Amazon SageMaker Notebook 实例连接到 Amazon RDS 数据库实例?

3 分钟阅读
0

我想将 Amazon SageMaker Notebook 实例连接到位于其他虚拟私有云 (VPC) 中的 Amazon Relational Database Service (Amazon RDS) 数据库实例。

解决方法

要将 SageMaker Notebook 实例连接到位于不同 VPC 中的 Amazon RDS 数据库实例,请完成以下步骤:

  1. 创建或删除 VPC 对等连接

  2. 在 VPC 对等连接处于活动状态后,更新路由表。Amazon RDS 数据库实例子网和 SageMaker Notebook 实例子网必须能够相互路由。

    例如,对于以下 CIDR 数据块:

    **SageMaker VPC CIDR 数据块:**192.168.0.0/16
    **Amazon RDS 数据库实例 VPC CIDR 数据块:**10.0.0.0/24

    Amazon RDS 数据库实例子网路由表如下所示:

    目的地目标
    10.0.0.0/24本地
    192.168.0.0/16从下拉列表中选择 VPC 对等连接

    SageMaker Notebook 实例子网路由表如下所示:

    目的地目标
    10.0.0.0/24从下拉列表中选择 VPC 对等连接
    192.168.0.0/16本地

     

  3. 要允许流量从 Notebook 实例流向 Amazon RDS 数据库实例,请确认两个安全组的配置均正确。
    Notebook 实例安全组上,确认存在允许流向 Amazon RDS 数据库实例的出站规则。
    数据库实例安全组上,确认存在允许 Notebook 实例的安全组、VPC CIDR 数据块或子网 CIDR 数据块的入站规则。

  4. 要测试连接,请在 SageMaker Notebook 实例的终端运行以下命令。
    **注意:**将示例中的 mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com 替换为您的数据库实例端点。将 3306 替换为您的数据库实例端口。

    curl -v mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com:3306

故障排除

如果 Notebook 实例已启用直接互联网访问权限,则测试命令将失败并显示 Connection timed out 错误。如果发生此故障,请运行以下命令在操作系统级别检查 Notebook 实例的路由表:

route -n

启用直接互联网访问权限后,路由表类似于以下内容:

Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0
10.0.32.0       0.0.0.0         255.255.224.0   U     0      0        0 eth1
169.254.0.0     0.0.0.0         255.255.255.0   U     0      0        0 veth\_def\_agent
169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
172.16.0.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5a785eca34a3
192.168.0.0     0.0.0.0         255.255.128.0   U     0      0        0 eth2
192.168.0.0     192.168.0.1     255.255.0.0     UG    0      0        0 eth2

在此示例中,数据库实例的 VPC CIDR 数据块为 10.0.0.0/24。操作系统的路由表没有指向 10.0.0.0/24 的路由。相反,流向 Amazon RDS VPC CIDR 数据块的流量使用处理公共流量的主网络接口 (eth0)。

要解决连接问题,请修改路由表以使用 eth2,即 Notebook 实例的 VPC 弹性网络接口:

  1. 记下 SageMaker VPC 路由器地址。在此示例中,192.168.0.0/16(Notebook 实例的 VPC CIDR 数据块)被路由到 192.168.0.1。这意味着 192.168.0.1 是 VPC 路由器地址。

  2. 在 Notebook 实例终端的路由表中添加路由。
    **注意:**在以下示例中,将 10.0.0.0/24 替换为您的 Amazon RDS 数据库实例的 VPC CIDR 数据块。将 192.168.0.1 替换为您的 SageMaker Notebook 实例的 VPC 路由器地址。

    sudo ip route add 10.0.0.0/24 via 192.168.0.1 dev eth2
  3. 确认新路由位于路由表中:

    Kernel IP routing tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0
    10.0.0.0        192.168.0.1     255.255.255.0   UG    0      0        0 eth2
    10.0.32.0       0.0.0.0         255.255.224.0   U     0      0        0 eth1
    169.254.0.0     0.0.0.0         255.255.255.0   U     0      0        0 veth\_def\_agent
    169.254.169.254 0.0.0.0         255.255.255.255 UH    0      0        0 eth0
    172.16.0.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0
    172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
    172.18.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-5a785eca34a3
    192.168.0.0     0.0.0.0         255.255.128.0   U     0      0        0 eth2
    192.168.0.0     192.168.0.1     255.255.0.0     UG    0      0        0 eth2
  4. 再次测试连接。

**注意:**对操作系统路由表的更改无法在 Notebook 实例会话之间持久保留。这种不持久性意味着每次停止和启动 SageMaker Notebook 实例时,您都会丢失所做更改。要缓解这种情况,请使用生命周期配置在每次启动 Notebook 实例时添加路由。

相关信息

将 VPC 中的 Notebook 实例连接到外部资源

在您的 VPC 中连接到 SageMaker