Wie kann ich von einer Notebook-Instance für Amazon SageMaker aus, die sich in einer anderen VPC befindet, eine Verbindung zu einer Amazon RDS-DB-Instance herstellen?

Lesedauer: 4 Minute
0

Ich möchte eine Notebook-Instance für Amazon SageMaker mit einer Amazon Relational Database Service (Amazon RDS)-DB-Instance verbinden, die sich in einer anderen Virtual Private Cloud (VPC) befindet.

Behebung

1.Erstellen Sie eine VPC-Peering-Verbindung.

2.Nachdem die VPC-Peering-Verbindung active ist, aktualisieren Sie die Routing-Tabellen. Das RDS-DB-Instance-Subnetz und das Subnetz der SageMaker-Notebook-Instance müssen über eine Route zueinander verfügen. Zum Beispiel für die folgenden CIDR-Blöcke:

**SageMaker VPC CIDR-Block:**192.168.0.0/16

**VPC CIDR-Block der RDS-DB-Instance:**10.0.0.0/24

Die Subnetz-Routing-Tabelle der Amazon RDS DB-Instance sieht wie folgt aus:

ZielZiel
10.0.0.0/24local
192.168.0.0/16Wählen Sie die VPC-Peering-Verbindung aus der Dropdown-Liste aus

Die Subnetz-Routing-Tabelle der SageMaker-Notebook-Instance sieht wie folgt aus:

ZielZiel
10.0.0.0/24Wählen Sie die VPC-Peering-Verbindung aus der Dropdown-Liste aus
192.168.0.0/16local

3.Vergewissern Sie sich, dass beide Sicherheitsgruppen korrekt konfiguriert sind. Um Datenverkehr von der Notebook-Instance zur RDS-DB-Instance zuzulassen, gehen Sie wie folgt vor:

**In der Sicherheitsgruppe der Notebook-Instance:**Stellen Sie sicher, dass es eine ausgehende Regel gibt, die den Datenverkehr zur RDS-DB-Instance zulässt.

**In der DB-Instance-Sicherheitsgruppe:**Stellen Sie sicher, dass es eine Regel für eingehenden Datenverkehr gibt, die die Sicherheitsgruppe, den VPC-CIDR-Block oder den Subnetz-CIDR-Block der Notebook-Instance zulässt.

4.Um die Verbindung zu testen, führen Sie den folgenden Befehl in einem Terminal auf der SageMaker-Notebook-Instance aus. Ersetzen Sie im Beispiel die folgenden Werte:

mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com: der DB-Instance-Endpunkt

3306: der DB-Instance-Port

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

Problembehebung

Wenn für die Notebook-Instance der direkte Internetzugang aktiviert ist, schlägt der Testbefehl möglicherweise fehl (z. B. „Connection timed out"). Führen Sie in diesem Fall den folgenden Befehl aus, um die Routing-Tabelle der Notebook-Instance auf Betriebssystemebene zu überprüfen:

route -n

Wenn der direkte Internetzugang aktiviert ist, sieht die Routing-Tabelle wie folgt aus:

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

In diesem Beispiel lautet der VPC-CIDR-Block der DB-Instance 10.0.0.0/24. Die Routing-Tabelle des Betriebssystems hat keine Route zu 10.0.0.0/24. Stattdessen verwendet der Datenverkehr zum RDS-VPC CIDR-Block die primäre Netzwerkschnittstelle (eth0), die den öffentlichen Verkehr verarbeitet. Um das Verbindungsproblem zu lösen, ändern Sie die Routing-Tabelle so, dass sie eth2 verwendet, also zu der elastischen VPC-Netzwerkschnittstelle der Notebook-Instance:

1.Notieren Sie sich die Adresse des SageMaker VPC-Routers. In diesem Beispiel wird 192.168.0.0/16 (der VPC-CIDR-Block der Notebook-Instance) an 192.168.0.1 weitergeleitet. Dies bedeutet, dass 192.168.0.1 die VPC-Router-Adresse ist.

2.Fügen Sie die Route zur Routing-Tabelle im Notebook-Instance-Terminal hinzu. Ersetzen Sie diese Werte im Beispiel:

10.0.0.0/24: Der VPC CIDR-Block der RDS-DB-Instance

192.168.0.1: Die VPC-Router-Adresse der SageMaker-Notebook-Instance

sudo ip route add 10.0.0.0/24 via 192.168.0.1 dev eth2

3.Vergewissern Sie sich, dass sich die neue Route in der Routing-Tabelle befindet:

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.Testen Sie die Verbindung erneut.

**Hinweis:**Änderungen an der Routing-Tabelle des Betriebssystems bleiben zwischen den Notebook-Instance-Sitzungen nicht bestehen. Das bedeutet, dass Sie die Änderungen verlieren, wenn Sie die SageMaker-Notebook-Instance beenden und starten. Um dies zu verhindern, verwenden Sie eine Lebenszykluskonfiguration, um die Route jedes Mal hinzuzufügen, wenn Sie die Notebook-Instance starten.


Verwandte Informationen

Eine Notebook-Instance mit Ressourcen in einer VPC verbinden

Stellen Sie über einen VPC-Schnittstellenendpunkt eine Verbindung zu SageMaker her

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren