Comment puis-je me connecter à une instance de base de données Amazon RDS à partir d'une instance de bloc-notes Amazon SageMaker qui se trouve dans un autre VPC ?

Date de la dernière mise à jour : 16/12/2020

Comment puis-je connecter une instance de bloc-notes Amazon SageMaker à une instance de base de données Amazon Relational Database Service (Amazon RDS) qui se trouve dans un autre Virtual Private Cloud (VPC) ?

Résolution

1.    Créez une connexion d'appairage de VPC.

2.    Une fois la connexion d'appairage de VPC active, mettez à jour les tables de routage. Le sous-réseau de l'instance de base de données RDS et le sous-réseau de l'instance de bloc-notes SageMaker doivent avoir une route vers l'autre. Par exemple, pour les blocs CIDR suivants :

Bloc CIDR VPC SageMaker : 192.168.0.0/16

Bloc CIDR VPC d'instance de base de données RDS : 10.0.0.0/24

La table de routage de sous-réseau de l'instance de base de données Amazon RDS ressemble à ceci :

Destination Cible
10.0.0.0/24 local
192.168.0.0/16 Sélectionnez la connexion d'appairage de VPC dans la liste déroulante

La table de routage de sous-réseau de l'instance de bloc-notes SageMaker ressemble à ceci :

Destination Cible
10.0.0.0/24

Sélectionnez la connexion d'appairage de VPC dans la liste déroulante

192.168.0.0/16 local

3.    Vérifiez que les deux groupes de sécurité sont correctement configurés. Pour autoriser le trafic de l'instance de bloc-notes vers l'instance de base de données RDS :

Sur le groupe de sécurité de l'instance de bloc-notes : assurez-vous qu'il existe une règle sortante qui autorise le trafic vers l'instance de base de données RDS.

Sur le groupe de sécurité de l'instance de base de données : assurez-vous qu'il existe une règle entrante qui autorise le groupe de sécurité, le bloc CIDR VPC ou le bloc CIDR de sous-réseau de l'instance de bloc-notes.

4.    Pour tester la connexion, exécutez la commande suivante dans un terminal de l'instance de bloc-notes SageMaker. Remplacez ces valeurs dans l'exemple :

test.ab12cde3fg4.us-east-1.rds.amazonaws.com : le point de terminaison de l'instance de base de données

3306 : le port de l'instance de base de données

nc test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306 -zv

Dépannage

Si l'accès direct à Internet est activé sur l'instance de bloc-notes, la commande test peut échouer (par exemple, « Connexion expirée »). Si cela se produit, exécutez la commande suivante pour vérifier la table de routage de l'instance de bloc-notes au niveau du système d'exploitation :

route -n

Lorsque l'accès direct à Internet est activé, la table de routage ressemble à ceci :

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

Dans cet exemple, le bloc CIDR VPC de l'instance de base de données est 10.0.0.0/24. La table de routage du système d'exploitation n'a pas de route vers 10.0.0.0/24. Au lieu de cela, le trafic vers le bloc CIDR VPC RDS utilise l'interface réseau principale (eth0), qui gère le trafic public. Pour résoudre le problème de connexion, modifiez la table de routage pour utiliser eth2, qui est l'interface réseau Elastic de VPC de l'instance de bloc-notes :

1.    Notez l'adresse du routeur VPC SageMaker. Dans cet exemple, 192.168.0.0/16 (le bloc CIDR VPC de l'instance de bloc-notes) est routé vers 192.168.0.1. Cela signifie que 192.168.0.1 est l'adresse du routeur VPC.

2.    Ajoutez la route à la table de routage dans le terminal de l'instance de bloc-notes. Remplacez ces valeurs dans l'exemple :

10.0.0.0/24 : le bloc CIDR VPC de l'instance de base de données RDS

192.168.0.1 : l'adresse du routeur VPC de l'instance de bloc-notes SageMaker

sudo ip route add 10.0.0.0/24 via 192.168.0.1 dev eth2

3.    Vérifiez que la nouvelle route se trouve dans la table de routage :

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.    Testez à nouveau la connexion :

sh-4.2$ nc test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306 -zv
Connection to test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306 port [tcp/mysql] succeeded!

Remarque : les modifications apportées à la table de routage du système d'exploitation ne persistent pas entre les sessions de l'instance de bloc-notes. Cela signifie que vous perdez les modifications lorsque vous arrêtez et démarrez l'instance de bloc-notes SageMaker. Pour atténuer ce problème, utilisez une configuration de cycle de vie pour ajouter la route chaque fois que vous démarrez l'instance de bloc-notes.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?