Comment puis-je résoudre les problèmes de connectivité à une instance de base de données Amazon RDS qui utilise le sous-réseau public ou privé d'un VPC ?

Date de la dernière mise à jour : 19/08/2020

Je ne parviens pas à me connecter à mon instance de base de données Amazon Relational Database Service (Amazon RDS). Comment résoudre les problèmes de connectivité dans un sous-réseau public ou privé d'un Amazon Virtual Private Cloud (Amazon VPC) ?

Brève description

Les bases de données Amazon RDS peuvent être lancées sur le sous-réseau public ou privé d'un VPC. Des problèmes de connexion peuvent être causés par une configuration de VPC incorrecte ou par des problèmes de configuration ou de connectivité sur le client à partir duquel vous vous connectez.

Pour résoudre ces problèmes, consultez les résolutions suivantes en fonction de votre environnement.

Résolution

Mon instance de base de données se trouve dans un sous-réseau public, mais je ne peux pas m'y connecter via Internet à partir de mon ordinateur local.

Ce problème peut se produire lorsque la propriété Accessible publiquement de l'instance de base de données est définie sur Non. Pour vérifier si une instance de base de données est accessible publiquement, vous pouvez utiliser la console Amazon RDS ou l'interface de ligne de commande AWS.

Pour passer la propriété Accessible publiquement de l'instance Amazon RDS sur Oui :

1.    Vérifiez que votre VPC dispose d'une passerelle Internet attachée et que les règles entrantes du groupe de sécurité autorisent les connexions.

2.    Ouvrez la console Amazon RDS.

3.    Choisissez Bases de données dans le volet de navigation, puis sélectionnez l'instance DB.

4.    Choisissez Modifier.

5.    Sous Réseau et sécurité, choisissez Oui pour Accessibilité publique.

6.    Sélectionnez Continuer.

7.    Choisissez Modifier l'instance de base de données.

Remarque : vous n'avez pas à sélectionner Appliquer immédiatement. Pour plus d'informations sur la façon dont le paramètre Appliquer immédiatement peut affecter les temps d'arrêt, consultez la section Utilisation du paramètre Appliquer immédiatement.

Mon instance de base de données se trouve dans un sous-réseau privé et je ne peux pas m'y connecter depuis mon ordinateur local.

Vous pouvez résoudre ce problème en utilisant un sous-réseau public. Lorsque vous utilisez un sous-réseau public, toutes les ressources sur le sous-réseau sont accessibles à partir d'Internet. Si cette solution ne répond pas à vos exigences de sécurité, utilisez un VPN AWS entre sites. Avec un VPN entre sites, vous configurez une passerelle client qui vous permet de connecter votre VPC à votre réseau distant.

Pour passer à un sous-réseau public :

1.    Ouvrez la console Amazon RDS.

2.    Choisissez Bases de données dans le volet de navigation, puis sélectionnez l'instance DB.

3.    Dans la section Connectivité et sécurité, copiez le point de terminaison de l’instance DB.

4.    Exécutez un nslookup pour le point de terminaison de l'instance DB à partir d'une instance EC2 dans le VPC. Consultez l'exemple de sortie suivant :

nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx#53

Non-authoritative answer:
Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com
Address: 172.31.xx.x

5.    Une fois que vous avez l’adresse IP privée de votre instance de base de données RDS, vous pouvez la lier à un sous-réseau particulier dans VPC en fonction de la plage CIDR du sous-réseau et de ladite adresse IP privée.

6.    Ouvrez la console Amazon VPC, puis sélectionnez Sous-réseaux dans le volet de navigation.

7.    Choisissez le sous-réseau associé à l’instance de base de données que vous avez trouvée à l’étape 5.

8.    Dans le volet Description, sélectionnez Table de routage.

9.    Choisissez Actions, puis sélectionnez Modifier les routes.

10.    Sélectionnez Ajouter une route, puis saisissez ce qui suit :
Pour le trafic IPv4, saisissez 0.0.0.0/0 dans la boîte Destination et sélectionnez l’ID de la passerelle internet dans la liste Target (Cible).
Pour le trafic IPv6, saisissez ::/0 dans la boîte Destination et sélectionnez l'ID passerelle internet dans la liste Cible.

11.    Sélectionnez Enregistrer.

Important : si vous passez un sous-réseau sur public, d'autres instances de base de données dans le sous-réseau seront également accessibles à partir d'Internet si les instances de base de données sont associées à une adresse publique.

Si l'instance de base de données n'est toujours pas accessible après avoir suivi ces étapes, vérifiez que celle-ci est Accessible publiquement en suivant les étapes de la section ci-dessus Mon instance de base de données se trouve dans un sous-réseau privé et je ne peux pas me connecter à mon ordinateur local.

Mon instance de base de données n'est pas accessible par une instance Amazon Elastic Compute Cloud (Amazon EC2) qui se trouve dans un VPC différent.

Créez une connexion d'appairage VPC entre les VPC. Une connexion d'appairage de VPC permet à deux VPC de communiquer entre eux à l'aide d'adresses IP privées.

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

Important : assurez-vous que les blocs CIDR IPv4 ne se chevauchent pas si les VPC se trouvent sur le même compte AWS. Pour plus d'informations, consultez la section Configurations d'appairage de VPC non prises en charge.

2.    Mettez à jour les deux tables de routage.

3.    Mettez à jour vos groupes de sécurité pour référencer des groupes VPC d'appairage.

4.    Activez la prise en charge de la résolution DNS pour votre connexion d'appairage de VPC.

5.    Sur l’instance EC2, testez la connexion d’appairage de VPC à l’aide d’un utilitaire de mise en réseau. Consultez l’exemple suivant :

nc -zv <hostname> <port>

Si la connexion fonctionne, la sortie ressemblera à ce qui suit :

$ nc -zv myexampledb.xxxx.us-east-1.rds.amazonaws.com 5439
found 0 associations
found 1 connections:
     1:    flags=82<CONNECTED,PREFERRED>
    outif en0
    src xx.xxx.xxx.xx port 53396
    dst xx.xxx.xxx.xxx port 5439
    rank info not available
    TCP aux info available

Connection to myexampledb.xxxx.us-east-1.rds.amazonaws.com port 5439 [tcp/*] succeeded!

Cette page vous a-t-elle été utile ?


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