Je voudrais 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 VPC.
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 les valeurs suivantes dans l'exemple :
mydatabase.c5y9vfc8igjj.ap-southeast-2.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
curl -v mydatabase.c5y9vfc8igjj.ap-southeast-2.rds.amazonaws.com:3306
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 à ce qui suit :
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.
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.
Informations connexes
Connexion d'une instance de bloc-notes aux ressources d'un VPC
Connexion à Amazon SageMaker via un point de terminaison d'interface VPC