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?
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:
Ziel | Ziel |
10.0.0.0/24 | local |
192.168.0.0/16 | Wählen Sie die VPC-Peering-Verbindung aus der Dropdown-Liste aus |
Die Subnetz-Routing-Tabelle der SageMaker-Notebook-Instance sieht wie folgt aus:
Ziel | Ziel |
10.0.0.0/24 | Wählen Sie die VPC-Peering-Verbindung aus der Dropdown-Liste aus |
192.168.0.0/16 | local |
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
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren