如何從位於不同 VPC 中的 Amazon SageMaker 筆記本執行個體連接到 Amazon RDS 資料庫執行個體?

2 分的閱讀內容
0

我想要將 Amazon SageMaker 筆記本執行個體連接到位於不同虛擬私有雲端 (VPC) 中的 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體。

解決方法

1.    建立 VPC 對等互連

2.    VPC 對等連線啟動後,請更新路由表。RDS 資料庫執行個體子網路和 SageMaker 筆記本執行個體子網路必須具有彼此之間的路由。例如,針對下列 CIDR 區塊:

**SageMaker 虛擬私人雲端 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

在此範例中,資料庫執行個體的虛擬私人雲端 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 年前