如何从位于不同 VPC 中的 Amazon SageMaker 笔记本电脑实例连接到 Amazon RDS 数据库实例?

2 分钟阅读
0

我想将 Amazon SageMaker 笔记本电脑实例连接到位于其他虚拟私有云(VPC)中的 Amazon Relational Database Service(Amazon RDS)数据库实例?

解决方法

1.    创建 VPC 对等连接

2.    VPC 对等连接处于活动状态后,更新路由表。RDS 数据库实例子网和 SageMaker 笔记本实例子网必须有相互之间的路由。例如,对于以下 CIDR 数据块:

**SageMaker VPC CIDR 数据块:**192.168.0.0/16

**RDS 数据库实例 VPC CIDR 数据块:**10.0.0.0/24

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

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

SageMaker 笔记本实例子网路由表如下所示:

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

3.    确认两个安全组都配置正确。要允许从笔记本电脑实例到 RDS 数据库实例的流量:

**在笔记本电脑实例安全组上:**确保存在允许流量到 RDS 数据库实例的出站规则。

**在数据库实例安全组上:**确保存在允许笔记本电脑实例的安全组、VPC CIDR 数据块或子网 CIDR 数据块的入站规则。

4.    要测试连接,请在 SageMaker 笔记本电脑实例的终端中运行以下命令。替换示例中的以下值:

**mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com:**数据库实例端点

**3306:**数据库实例端口

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

问题排查

如果笔记本电脑实例激活了直接互联网访问,则测试命令可能会失败(例如,“连接超时”)。如果发生这种情况,请运行以下命令以在操作系统级别检查笔记本电脑实例的路由表:

route -n

激活直接互联网访问后,路由表与以下内容类似:

Kernel IP routing table
Destination     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 的路由。相反,到 RDS VPC CIDR 数据块的流量使用处理公共流量的主网络接口 (eth0)。要解决连接问题,请将路由表修改为使用 eth2,这是笔记本实例的 VPC 弹性网络接口:

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

2.    将路由添加到笔记本实例终端的路由表中。替换示例中的以下值:

10.0.0.0/24:RDS 数据库实例的 VPC CIDR 数据块

192.168.0.1:SageMaker 笔记本实例的 VPC 路由器地址

sudo ip route add 10.0.0.0/24 via 192.168.0.1 dev eth2

3.    确认新路由在路由表中:

Kernel IP routing table
Destination     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.    再次测试连接。

**注意:**对操作系统路由表的更改不会在笔记本电脑实例会话之间保留。这意味着当您停止并启动 SageMaker 笔记本实例时,您将丢失更改。为了缓解这种情况,请使用生命周期配置在每次启动笔记本实例时添加路由。


相关信息

将笔记本电脑实例连接到 VPC 中的资源

通过 VPC 接口端点连接到 SageMaker

AWS 官方
AWS 官方已更新 1 年前