Comment résoudre les problèmes de connexion à mon instance de base de données Amazon RDS ?

Lecture de 8 minute(s)
0

Je n’arrive pas à me connecter à mon instance de base de données Amazon Relational Database Service (Amazon RDS).

Brève description

L’échec d’une connexion à une instance de base de données Amazon RDS peut-être due à plusieurs causes principales. Voici quelques-unes des raisons les plus courantes :

  • L’instance de base de données RDS est dans un état autre que disponible et ne peut donc pas accepter de connexions.
  • La source à partir de laquelle vous vous connectez à l’instance de base de données ne dispose pas d’un accès autorisé dans votre groupe de sécurité, vos listes de contrôle d’accès (ACL) réseau ou vos pare-feux locaux.
  • Un nom DNS ou un point de terminaison erroné est utilisé pour se connecter à l’instance de base de données.
  • L’instance de base de données Multi-AZ a échoué, et l’instance de base de données secondaire utilise un sous-réseau ou une table de routage qui n’autorise pas les connexions entrantes.
  • L’authentification de l’utilisateur est incorrecte pour l’une des raisons suivante :
    Vous utilisez un nom d’utilisateur ou un mot de passe incorrect au niveau de la base de données pour accéder à l’instance depuis le client de base de données.
    Vous ne disposez pas des autorisations de base de données requises pour accéder à l’instance.
    Le client fonctionne sur une version qui n’est pas compatible avec la version de la base de données.

Conseil : vous pouvez suivre les étapes suivantes pour identifier la source du problème de connectivité. Vous pouvez également utiliser le document AWS Systems Manager Automation AWSSupport-TroubleshootConnectivityToRDS pour diagnostiquer vous-même le problème. Ce document d’automatisation permet de diagnostiquer les ACL réseau en fonction de l’adresse IP principale de l’instance Amazon Elastic Compute Cloud (Amazon EC2). Cependant, les ports éphémères ne sont pas vérifiés. Le document d’automatisation vérifie également les groupes de sécurité en fonction de l’adresse IP principale de l’instance EC2, mais cette automatisation ne vérifie pas de ports spécifiques. Pour en savoir plus, consultez la page Exécution d’une automatisation.

Résolution

Vérifiez que votre instance de base de données présente l’état disponible

Si vous avez récemment lancé ou redémarré votre instance de base de données, vérifiez que celle-ci présente l’état disponible dans la console Amazon RDS. Selon sa taille, votre instance de base de données peut nécessiter jusqu’à 20 minutes pour devenir disponible pour les connexions réseau.

Si votre instance de base de données présente l’état échec, consultez la page Pourquoi mon instance de base de données Amazon RDS présente-t-elle l’état échec ?

Vérifiez que votre instance de base de données autorise les connexions

Vérifiez que le trafic provenant de la source qui se connecte à votre instance de base de données n’est pas limité par certains des éléments suivants :

  • Tout groupe de sécurité Virtual Private Cloud (VPC) Amazon associé à l’instance de base de données. Le cas échéant, vous pouvez ajouter des règles au groupe de sécurité associé au VPC qui autorisent le trafic lié à la source à entrer et à sortir de l’instance de base de données. Vous pouvez spécifier une adresse IP, une plage d’adresses IP ou un autre groupe de sécurité VPC. Pour obtenir des informations générales sur les instances de base de données et le VPC, consultez la page Scénarios d’accès à une instance de base de données dans un VPC.
  • Tout groupe de sécurité de base de données associé à l’instance de base de données. Si l’instance de base de données ne se trouve pas dans un VPC, il se peut qu’elle utilise un groupe de sécurité de base de données pour gérer le trafic. Mettez à jour votre groupe de sécurité de base de données pour autoriser le trafic provenant de la plage d’adresses IP ou du groupe de sécurité Amazon EC2 que vous utilisez pour vous connecter.
  • Connexions extérieures à un VPC. Vérifiez que l’instance de base de données est accessible au public et qu’elle est associée à un sous-réseau public (par exemple, la table de routage autorise l’accès depuis une passerelle Internet). Pour en savoir plus, consultez la page Scénarios d’accès à une instance de base de données dans un VPC.
    Si votre instance de base de données se trouve dans un sous-réseau privé, veillez à utiliser l’appairage de VPC ou AWS Site-to-Site VPN pour vous connecter à votre instance en toute sécurité. Avec Site-to-Site VPN, vous configurez une passerelle client qui vous permet de connecter votre VPC à votre réseau distant. Vous pouvez utiliser l’appairage de VPC en créant une connexion d’appairage entre votre VPC source et le VPC de votre instance pour accéder à l’instance en dehors du VPC associé. Vous pouvez également utiliser une instance Amazon EC2 comme hôte bastion (rebond).
  • ACL réseau. Les ACL réseau agissent comme un pare-feu pour les ressources d’un sous-réseau spécifique dans un VPC. Si vous utilisez des ACL dans votre VPC, assurez-vous qu’elles disposent de règles autorisant le trafic entrant et sortant à destination et en provenance de l’instance de base de données.
  • Pare-feu réseau ou locaux. Vérifiez auprès de votre administrateur réseau que votre réseau autorise bien le trafic à destination et en provenance des ports utilisés par l’instance de base de données pour les communications entrantes et sortantes.
    Remarque : Amazon RDS n’accepte pas le trafic ICMP (Internet Control Message Protocol), y compris le ping.

Résolution de problèmes potentiels liés aux noms DNS ou aux points de terminaison

Lorsque vous vous connectez à votre instance de base de données, vous utilisez un nom DNS (point de terminaison) fourni par la console Amazon RDS. Veillez à utiliser le point de terminaison approprié. Vous devez également fournir le point de terminaison dans le format adapté au client que vous utilisez pour vous connecter à l’instance de base de données. Pour en savoir plus sur les connexions au moteur de base de données et sur l’utilisation d’un point de terminaison dans diverses applications clientes, consultez la page Mise en route avec Amazon RDS.

Par exemple, utilisez la commande nslookup pour accéder au point de terminaison de l’instance de base de données à partir d’une instance EC2 au sein du VPC :

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

Voici un exemple de réponse ne faisant pas autorité :

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

Résolution de problèmes au niveau de la base de données

  • Vérifiez que vous utilisez le nom d’utilisateur et le mot de passe appropriés pour accéder à l’instance depuis votre client de base de données.
  • Vérifiez que l’utilisateur dispose des autorisations de base de données nécessaires pour se connecter à l’instance de base de données.
  • Vérifiez qu’il n’y a pas de problème de limitation des ressources dans Amazon RDS, comme un problème de processeur ou de mémoire. Ce conflit peut entraîner des problèmes lors de l’établissement de nouvelles connexions à l’instance.
  • Vérifiez que l’instance n’a pas atteint la limite max_connections.

Vérification des tables de routage associées à l’instance

Lorsque vous créez un déploiement multi-AZ, vous lancez plusieurs instances de base de données de réplication dans différentes zones de disponibilité afin d’améliorer la tolérance aux pannes de votre application. Vérifiez que les sous-réseaux associés à chaque instance de base de données sont associés aux mêmes tables de routage ou à des tables de routage similaires. Si votre instance de base de données principale bascule vers une réplica de secours associée à une autre table de routage, le trafic risque de ne pas être acheminé correctement. Même si ce trafic était précédemment acheminé correctement, il est possible que cela ne soit plus le cas.

Pour en savoir plus sur la configuration des tables de routage, consultez la page Configuration des tables de routage. Pour en savoir plus sur les déploiements multi-AZ, consultez la page Déploiements multi-AZ pour une haute disponibilité.

Remarque : si vous parvenez à vous connecter à votre instance de base de données, mais que vous obtenez des erreurs d’authentification, consultez la page Comment puis-je réinitialiser le mot de passe principal de mon instance de base de données RDS ?

Vérification de la connectivité

Vérifiez votre connexion en exécutant l’une des commandes suivantes :

telnet <RDS endpoint> <port number>
nc -zv <RDS endpoint> <port number>

Si les commandes telnet et nc aboutissent avec succès, cela signifie qu’une connexion réseau est établie. Le problème est donc probablement lié à l’authentification de l’utilisateur dans la base de données, par exemple au niveau du nom d’utilisateur ou du mot de passe.

Informations connexes

Impossible de se connecter à une instance de base de données Amazon RDS

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

Sécurité dans Amazon RDS

Utilisation du protocole SSL/TLS pour chiffrer une connexion à une instance de base de données