Connexion à une instance de base de données exécutant le moteur de base de données PostgreSQL - Amazon Relational Database Service

Connexion à une instance de base de données exécutant le moteur de base de données PostgreSQL

Après qu'Amazon RDS a provisionné votre instance de base de données, vous pouvez utiliser n'importe quelle application cliente SQL standard pour vous connecter à l'instance. Avant de pouvoir vous connecter, l'instance de base de données doit être disponible et accessible. La méthode utilisée pour créer l'instance de base de données Amazon RDS détermine s'il est possible ou non de vous y connecter depuis l'extérieur du VPC :

  • Si vous avez créé votre instance de base de données comme étant publique, les appareils et les instances Amazon EC2 extérieurs au VPC peuvent se connecter à votre base de données.

  • Si vous avez créé votre instance de base de données comme étant privée, seuls les appareils et instances Amazon EC2 à l'intérieur du VPC peuvent se connecter à votre base de données.

Pour vérifier si votre instance de base de données est publique ou privée, utilisez la AWS Management Console pour afficher l'onglet Connectivity & security (Connectivité et sécurité) pour votre instance. Sous Security (Sécurité), vous pouvez trouver la valeur « Publicly accessible (Accessible publiquement) », avec No (Non) pour privé, Yes (Oui) pour public.

Pour en savoir plus sur les différentes configurations Amazon RDS et Amazon VPC, et comment elles affectent l'accessibilité, consultez Scénarios d'accès à une instance de base de données d'un VPC.

Si l'instance de base de données est disponible et accessible, vous pouvez vous connecter en fournissant les informations suivantes à l'application cliente SQL :

  • Point de terminaison de l'instance de base de données servant de nom d'hôte (nom DNS) pour l'instance.

  • Le port au niveau duquel l'instance de base de données écoute. Le port par défaut pour PostgreSQL est 5432.

  • Le nom d'utilisateur et le mot de passe de l'instance de base de données. Le « nom d'utilisateur principal » par défaut pour PostgreSQL est postgres.

  • Nom et mot de passe de la base de données (Nom de base de données).

Vous pouvez obtenir ces informations en utilisant la AWS Management Console, la commande describe-db-instances d'AWS CLI ou l'opération DescribeDBInstances de l'API Amazon RDS.

Pour trouver le point de terminaison, le numéro de port et le nom de la base de données à l'aide de la AWS Management Console

  1. Connectez-vous à la AWS Management Console et ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/.

  2. Ouvrez la console RDS et choisissez Bases de données pour afficher une liste de vos instances de bases de données.

  3. Choisissez le nom de l'instance de base de données PostgreSQL pour afficher ses détails.

  4. Dans l'onglet Connectivity & security (Connectivité et sécurité), copiez le point de terminaison. Notez également le numéro du port. Vous avez besoin du point de terminaison et du numéro de port pour vous connecter à l'instance de base de données.

    
                            Obtenir le point de terminaison à partir de la console RDS
  5. Sous l'onglet Configuration, indiquez le nom de la base de données. Si vous avez créé une base de données lors de la création de l'instance RDS for PostgreSQL, le nom apparaît sous « Nom de base de données ». Si vous n'avez pas créé de base de données, le nom de la base de données est remplacé par un tiret (‐).

    
                            Obtenir le nom de la base de données à partir de la console RDS

Voici deux façons de se connecter à une instance de base de données PostgreSQL. Le premier exemple utilise pgAdmin, célèbre outil open source d'administration et de développement pour PostgreSQL. Le second exemple utilise psql, utilitaire de ligne de commande qui fait partie d'une installation PostgreSQL.

Utilisation de pgAdmin pour se connecter à une instance de base de données RDS for PostgreSQL

Vous pouvez utiliser l'outil open source pgAdmin pour vous connecter à votre instance de base de données RDS for PostgreSQL. Vous pouvez télécharger et utiliser pgAdmin à partir de l'adresse http://www.pgadmin.org/ sans disposer d'une instance locale de PostgreSQL sur votre ordinateur client.

Pour vous connecter à votre instance de base de données RDS for PostgreSQL à l'aide de pgAdmin

  1. Lancez l'application pgAdmin sur votre ordinateur client.

  2. Dans l'onglet Tableau de bord, choisissez Add New Server (Ajouter un nouveau serveur).

  3. Dans la boîte de dialogue Create - Server (Créer - Serveur), entrez un nom sur l'onglet Général pour identifier le serveur dans pgAdmin.

  4. Dans l'onglet Connexion, tapez les informations suivantes depuis votre instance de base de données :

    • Pour Hôte, tapez le point de terminaison, par exemple mypostgresql.c6c8dntfzzhgv0.us-east-2.rds.amazonaws.com.

    • Pour Port, tapez le port attribué.

    • Dans le champ Nom d'utilisateur, saisissez le nom d'utilisateur indiqué lors de la création de l'instance de base de données (si vous avez modifié le « nom d'utilisateur principal » par défaut, postgres).

    • Pour Mot de passe, tapez le mot de passe entré lors de la création de l'instance de base de données.

  5. Choisissez Enregistrer.

    Si vous rencontrez des problèmes de connexion, consultez Résolution des problèmes de connexion à votre instance RDS for PostgreSQL.

  6. Pour accéder à la base de données dans le navigateur pgAdmin, développez Serveurs, l'instance de base de données et Bases de données. Choisissez le nom de la base de données de l'instance de base de données.

  7. Pour ouvrir un panneau dans lequel vous pouvez entrer des commandes SQL, choisissez Outils, Query Tool (Outil de requête).

Utilisation de psql pour connecter votre RDS à votre instance de base de données PostgreSQL

Vous pouvez utiliser une instance locale de l'utilitaire de ligne de commande psql pour vous connecter à une instance de base de données RDS for PostgreSQL. Vous devez avoir installé PostgreSQL ou le client psql sur votre ordinateur client.

Pour vous connecter à votre instance de base de données RDS for PostgreSQL, vous devez fournir les informations sur l'hôte (DNS), les informations d'identification de l'accès et le nom de la base de données.

Utilisez l'un des formats suivants pour vous connecter à votre instance de base de données RDS for PostgreSQL. Lorsque vous vous connectez, vous êtes invité à entrer un mot de passe. Pour les tâches de traitement par lots ou les scripts, utilisez l'option --no-password. Cette option est définie pour l'ensemble de la session.

Note

Une tentative de connexion avec --no-password échoue lorsque le serveur exige une authentification par mot de passe et qu'aucun mot de passe n'est disponible auprès d'autres sources. Pour plus d'informations, consultez la documentation de psql.

Si vous vous connectez à cette instance de base de données pour la première fois ou si vous n'avez pas encore créé de base de données pour cette instance RDS for PostgreSQL, vous pouvez vous connecter à la base de données postgres à l'aide du « nom d'utilisateur principal » et du mot de passe.

Pour Unix, utilisez le format suivant.

psql \ --host=<DB instance endpoint> \ --port=<port> \ --username=<master username> \ --password \ --dbname=<database name>

Pour Windows, utilisez le format suivant.

psql ^ --host=<DB instance endpoint> ^ --port=<port> ^ --username=<master username> ^ --password ^ --dbname=<database name>

Par exemple, la commande suivante se connecte à une base de données appelée mypgdb sur une instance de base de données PostgreSQL appelée mypostgresql à l'aide d'informations d'identification fictives.

psql --host=mypostgresql.c6c8mwvfdgv0.us-west-2.rds.amazonaws.com --port=5432 --username=awsuser --password --dbname=mypgdb

Résolution des problèmes de connexion à votre instance RDS for PostgreSQL

Erreur – IRRÉCUPÉRABLE : le nom de la base de données n'existe pas

Si vous recevez une erreur telle que FATAL: database name does not exist lorsque vous tentez de vous connecter, essayez d'utiliser le nom par défaut de la base de données postgres pour l'option --dbname.

Erreur – Impossible de se connecter au serveur : la connexion a expiré

Si vous ne parvenez pas à vous connecter à l'instance de base de données, l'erreur la plus courante est Could not connect to server: Connection timed out. Si vous recevez cette erreur, procédez comme suit :

  • Vérifiez que le nom d'hôte utilisé est le point de terminaison de l'instance de base de données et que le numéro de port utilisé est correct.

  • Assurez-vous que l'accessibilité publique de l'instance de base de données est définie sur Oui pour autoriser les connexions externes. Pour modifier le paramètre Accès public, consultez Modification d'une instance de base de données Amazon RDS.

  • Vérifiez que le groupe de sécurité affecté à l'instance de base de données possède les règles pour autoriser l'accès via tout pare-feu que votre connexion peut traverser. Par exemple, si l'instance de base de données a été créée à l'aide du port par défaut 5432, votre entreprise peut disposer de règles de pare-feu bloquant les connexions à ce port depuis les appareils externes à l'entreprise.

    Pour résoudre ce problème, modifiez l'instance de base de données afin qu'elle utilise un autre port. De plus, assurez-vous que les groupes de sécurité appliqués à l'instance de base de données autorisent les connexions au nouveau port. Pour modifier le paramètre Port de la base de données, consultez Modification d'une instance de base de données Amazon RDS.

  • Voir aussi Erreurs liées aux règles d'accès du groupe de sécurité.

Erreurs liées aux règles d'accès du groupe de sécurité

Le problème de connexion qui intervient le plus fréquemment concerne les règles d'accès du groupe de sécurité assigné à l'instance de base de données. Si vous avez utilisé le groupe de sécurité de bases de données par défaut lorsque vous avez créé l'instance de base de données, ce groupe de sécurité ne dispose vraisemblablement pas de règles d'accès vous autorisant à accéder à l'instance.

Pour que la connexion s'établisse, le groupe de sécurité que vous avez assigné à l'instance de base de données à sa création doit autoriser l'accès à l'instance de base de données. Par exemple, si l'instance de base de données a été créée à l'intérieur d'un VPC, elle doit avoir un groupe de sécurité VPC qui autorise les connexions. Déterminez si l'instance de base de données a été créée à l'aide d'un groupe de sécurité qui interdit les connexions depuis l'appareil ou l'instance Amazon EC2 où l'application s'exécute.

Vous pouvez ajouter ou modifier une règle entrante dans le groupe de sécurité. La sélection de Mon IP comme Source permet d'accéder à l'instance de base de données à partir de l'adresse IP détectée dans votre navigateur. Pour plus d'informations, consultez Créer un groupe de sécurité qui autorise l'accès à votre instance de base de données dans votre VPC.

Sinon, si l'instance de base de données a été créée à l'extérieur d'un VPC, elle doit avoir un groupe de sécurité de bases de données qui autorise ces connexions.

Pour de plus amples informations sur les groupes de sécurité Amazon RDS, veuillez consulter Contrôle d'accès par groupe de sécurité.