Wie stelle 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 her?
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.
Lösung
Gehe wie folgt vor, um eine SageMaker-Notebook-Instance mit einer Amazon-RDS-DB-Instance zu verbinden, die sich in einer anderen VPC befindet:
-
Nachdem die VPC-Peering-Verbindung aktiv ist, aktualisiere die Routing-Tabellen. Das Subnetz der Amazon-RDS-DB-Instance 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 Amazon-RDS-DB-Instance: 10.0.0.0/24Die Subnetz-Routing-Tabelle der Amazon-RDS-DB-Instance sieht wie folgt aus:
Bestimmungsort Ziel 10.0.0.0/24 lokal 192.168.0.0/16 Die VPC-Peering-Verbindung aus der Dropdown-Liste auswählen Die Subnetz-Routing-Tabelle der SageMaker-Notebook-Instance sieht wie folgt aus:
Bestimmungsort Ziel 10.0.0.0/24 Die VPC-Peering-Verbindung aus der Dropdown-Liste auswählen 192.168.0.0/16 lokal -
Um den Datenverkehr von der Notebook-Instance zur Amazon-RDS-DB-Instance zuzulassen, stelle sicher, dass beide Sicherheitsgruppen korrekt konfiguriert sind.
Vergewissere dich in der Notebook-Instance-Sicherheitsgruppe, dass es eine Regel für ausgehenden Datenverkehr gibt, die den Datenverkehr zur Amazon-RDS-DB-Instance zulässt.
Vergewissere dich in der DB-Instance-Sicherheitsgruppe, 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. -
Um die Verbindung zu testen, führe den folgenden Befehl in einem Terminal auf der SageMaker-Notebook-Instance aus.
Hinweis: Ersetze mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com im Beispiel durch deinen DB-Instance-Endpunkt. Ersetze 3306 durch deinen DB-Instance-Port.curl -v mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com:3306
Problembehandlung
Wenn für die Notebook-Instance der direkte Internetzugang aktiviert ist, schlägt der Testbefehl mit einem Connection timed out-Fehler fehl. Wenn dieser Fehler auftritt, führe den folgenden Befehl aus, um die Routing-Tabelle der Notebook-Instance auf Betriebssystemebene zu überprüfen:
route -n
Wenn der direkte Internetzugang aktiviert ist, ähnelt die Routing-Tabelle dem folgenden Inhalt:
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
In diesem Beispiel ist 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 Amazon-RDS-VPC CIDR-Block die primäre Netzwerkschnittstelle (eth0), die den öffentlichen Datenverkehr verarbeitet.
Um das Verbindungsproblem zu beheben, ändere die Routing-Tabelle so, dass eth2, die VPC-Elastic-Network-Schnittstelle für die Notebook-Instance, verwendet wird:
-
Notiere dir die Adresse des SageMaker-VPC-Routers. In diesem Beispiel wird 192.168.0.0/16 (der VPC-CIDR-Block für die Notebook-Instance) an 192.168.0.1 weitergeleitet. Dies bedeutet, dass 192.168.0.1 die VPC-Router-Adresse ist.
-
Füge die Route zur Routing-Tabelle im Notebook-Instance-Terminal hinzu.
Hinweis: Ersetze im folgenden Beispiel 10.0.0.0/24 durch den VPC-CIDR-Block für deine Amazon-RDS-DB-Instance. Ersetze 192.168.0.1 durch die VPC-Router-Adresse für deine SageMaker-Notebook-Instance.sudo ip route add 10.0.0.0/24 via 192.168.0.1 dev eth2 -
Vergewissere dich, dass sich die neue Route in der Routing-Tabelle befindet:
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 -
Teste die Verbindung erneut.
Hinweis: Änderungen an der Routing-Tabelle des Betriebssystems bleiben zwischen den Notebook-Instance-Sitzungen nicht bestehen. Dieser Mangel an Persistenz bedeutet, dass du die Änderungen jedes Mal verlierst, wenn du die SageMaker-Notebook-Instance anhältst und startest. Um diese Situation abzumildern, verwende eine Lebenszykluskonfiguration, um die Route jedes Mal hinzuzufügen, wenn du die Notebook-Instance startest.
Ähnliche Informationen
Eine Notebook-Instance in einer VPC mit externen Ressourcen verbinden
- Tags
- Amazon SageMaker
- Sprache
- Deutsch
Ähnliche Videos

