Comment 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 ?

Dernière mise à jour : 30/10/2020

Je ne peux 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

Remarque : si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d’AWS CLI.

Mon instance de base de données se trouve dans un sous-réseau public et je ne peux pas me 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 AWS CLI.

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

1.    Vérifiez que votre VPC est associé à une passerelle Internet. Assurez-vous 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 Connectivité, développez la section Configuration supplémentaire puis choisissez Accessible publiquement.

6.    Sélectionnez Continuer.

7.    Choisissez « Modify DB Instance » (Modifier l'instance de base de données).

Remarque : vous n'avez pas besoin de 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 VPN AWS entre sites. Avec 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 associer l'adresse IP privée à un sous-réseau particulier dans le VPC. Ceci est basé sur la plage CIDR du sous-réseau et l'adresse IP privée.

6.    Ouvrez la console VPC Amazon, 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 choisissez « Edit routes » (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.    Choisissez Enregistrer.

Important : si vous modifiez un sous-réseau en public, les autres instances de base de données du sous-réseau sont également accessibles à partir d'Internet. Cela se produit si les instances de base de données ont une adresse publique associée.

Si l'instance de base de données n'est toujours pas accessible après avoir suivi ces étapes, vérifiez si l'instance de base de données est Accessible publiquement. Pour ce faire, suivez les étapes décrites dans Mon instance de base de données se trouve dans un sous-réseau privé et je ne peux pas me connecter à partir de mon ordinateur local.

Mon instance de base de données n'est pas accessible par une instance Amazon Elastic Compute Cloud (Amazon EC2) à partir d'un VPC différent

Créez une connexion d'appairage de 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 : si les VPC sont dans le même compte AWS, assurez-vous que les blocs d'adresse CIDR IPv4 ne se chevauchent pas. 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 d'appairage de VPC.

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, le résultat ressemble à 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!

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


Besoin d'une facturation ou du support technique ?