Direkt zum Inhalt

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?

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.

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:

  1. Erstelle oder lösche eine VPC-Peering-Verbindung.

  2. 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/24

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

    BestimmungsortZiel
    10.0.0.0/24lokal
    192.168.0.0/16Die VPC-Peering-Verbindung aus der Dropdown-Liste auswählen

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

    BestimmungsortZiel
    10.0.0.0/24Die VPC-Peering-Verbindung aus der Dropdown-Liste auswählen
    192.168.0.0/16lokal

     

  3. 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.

  4. 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:

  1. 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.

  2. 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
  3. 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
  4. 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

Innerhalb der VPC eine Verbindung zu SageMaker herstellen