Gérer les connexions aux bases de données avec des points de terminaison d'écriture

Pour dissocier vos applications de l'adresse IP ou de l'URI (Uniform Resource Identifier) spécifique de votre instance principale AlloyDB pour PostgreSQL lors des basculements, des basculements interrégionaux, des restaurations de sauvegardes ou des migrations, vous pouvez configurer un point de terminaison d'écriture.

Un point de terminaison est une ressource AlloyDB qui fournit un nom DNS (Domain Name System) stable que vos applications peuvent utiliser pour se connecter à une instance AlloyDB. Cette abstraction simplifie la gestion des connexions lors d'événements opérationnels (par exemple, reprise après sinistre, restauration de sauvegardes ou migrations), car vous pouvez rediriger le nom DNS du point de terminaison vers une autre instance sans modifier la configuration de votre application.

Les points de terminaison AlloyDB sont compatibles avec le type WRITE_ENDPOINT. Un point de terminaison d'écriture dirige le trafic vers une seule instance principale AlloyDB et diffuse le trafic de lecture et d'écriture.

Bien que le nom DNS fonctionne comme une ressource globale, la ressource de point de terminaison elle-même est régionale. Toutefois, chaque point de terminaison peut être associé à des instances dans le monde entier, et son nom DNS est résolu depuis n'importe quel emplacement.

Avantages de l'utilisation de points de terminaison

L'utilisation d'un point de terminaison d'écriture offre les avantages suivants :

  • Reprise après sinistre simplifiée : si vous effectuez une commutation ou un basculement interrégional vers un cluster secondaire, AlloyDB met automatiquement à jour le point de terminaison pour qu'il pointe vers la nouvelle instance principale. Vos applications peuvent ensuite se reconnecter en utilisant le même nom DNS de point de terminaison, ce qui réduit votre objectif de temps de récupération (RTO).
  • Récupération simplifiée des sauvegardes : lorsque vous restaurez une instance à partir d'une sauvegarde, AlloyDB crée une instance avec une nouvelle adresse IP. Vous pouvez mettre à jour votre point de terminaison pour qu'il pointe vers l'instance que vous venez de restaurer. Cette fonctionnalité permet aux applications de reprendre leur fonctionnement sans modification de la configuration.
  • Migrations simplifiées : pendant les migrations, vous pouvez basculer un point de terminaison d'une base de données source vers une instance AlloyDB avec un minimum d'interruption de l'application.

Limites

  • Les points de terminaison ne sont compatibles qu'avec les instances configurées pour utiliser l'accès aux services privés (PSA). Les points de terminaison ne sont pas compatibles avec les instances configurées pour utiliser Private Service Connect (PSC).
  • La compatibilité avec les connecteurs de langage AlloyDB et le proxy d'authentification AlloyDB n'est pas disponible pour les points de terminaison d'écriture.
  • Les opérations de modification simultanées (telles que des mises à jour simultanées, ou une opération de mise à jour et une opération de suppression) sur des points de terminaison pointant vers la même instance cible ne sont pas acceptées et peuvent entraîner un échec.

Avant de commencer

  1. Installez et initialisez la Google Cloud CLI.
  2. Activez l'API Cloud DNS.
  3. Assurez-vous de disposer d'une instance AlloyDB existante qui servira de cible pour le point de terminaison.
  4. Pour obtenir les autorisations nécessaires pour gérer les points de terminaison, demandez à votre administrateur de vous accorder le rôle IAM (Identity and Access Management) Administrateur AlloyDB (roles/alloydb.admin) sur votre projet. Ce rôle prédéfini contient les autorisations requises pour gérer les points de terminaison.

    Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis. Les autorisations spécifiques requises sont les suivantes :

    • alloydb.endpoints.create
    • alloydb.endpoints.update
    • alloydb.endpoints.get
    • alloydb.endpoints.list
    • alloydb.endpoints.delete

Pour en savoir plus, consultez Rôles et autorisations IAM AlloyDB.

Vous pouvez créer et gérer des points de terminaison d'écriture à l'aide de la Google Cloud CLI.

Créer un point de terminaison

Pour créer un point de terminaison d'écriture, utilisez la Google Cloud CLI. Le type de point de terminaison doit être WRITE_ENDPOINT et doit cibler une seule instance principale.

Console

  1. Dans la console Google Cloud , accédez à la page Points de terminaison.

    Accéder à Endpoints

  2. Cliquez sur Créer un point de terminaison.

  3. Dans le champ Nom du point de terminaison, saisissez un ID pour votre point de terminaison. Il doit être composé de lettres minuscules (a-z), de chiffres et de traits d'union. Il doit commencer par une lettre minuscule, et se terminer par une lettre minuscule ou un chiffre.

  4. Sélectionnez une Région.

  5. Pour Type de point de terminaison, sélectionnez Écriture.

  6. Dans le champ Instance cible, sélectionnez l'instance principale vers laquelle ce point de terminaison doit pointer.

  7. Cliquez sur Créer.

gcloud

gcloud beta alloydb endpoints create ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --endpoint-type=ENDPOINT_TYPE \
    --target-instances=TARGET_INSTANCE_NAME

Remplacez les éléments suivants :

  • ENDPOINT_ID : identifiant unique du point de terminaison. Cet ID doit être unique dans le projet et l'emplacement spécifiés.
  • PROJECT_ID : ID de votre projet Google Cloud .
  • REGION_ID : ID de la région dans laquelle vous souhaitez créer le point de terminaison, par exemple us-central1.
  • ENDPOINT_TYPE : type de la ressource de point de terminaison. Seule la région WRITE_ENDPOINT est compatible.
  • TARGET_INSTANCE_NAME : nom complet de la ressource de l'instance AlloyDB pour PostgreSQL vers laquelle pointe le point de terminaison. Le chemin d'accès complet à la ressource d'une instance est au format suivant : projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE.

Se connecter à une instance à l'aide d'un point de terminaison

Pour vous connecter à votre instance AlloyDB à l'aide d'un point de terminaison, vous devez d'abord obtenir le nom DNS généré automatiquement associé au point de terminaison.

Obtenir le nom DNS

Vous pouvez afficher le nom DNS d'un point de terminaison à l'aide de Google Cloud CLI.

Console

  1. Dans la console Google Cloud , accédez à la page Points de terminaison.

    Accéder à Endpoints

  2. Recherchez le point de terminaison auquel vous souhaitez vous connecter, puis copiez la valeur dans la colonne Nom DNS.

gcloud

  1. Exécutez la commande gcloud beta alloydb endpoints describe :

    gcloud beta alloydb endpoints describe ENDPOINT_ID \
        --project=PROJECT_ID \
        --region=REGION_ID
    

    Remplacez les éléments suivants :

    • ENDPOINT_ID : ID du point de terminaison.
    • PROJECT_ID : ID de votre projet Google Cloud
    • REGION_ID : ID de la région où se trouve le point de terminaison
  2. Dans le résultat de la commande, recherchez le champ dnsName et copiez sa valeur.

Se connecter à l'aide de psql

Une fois que vous disposez du nom DNS, vous pouvez l'utiliser comme hôte dans votre chaîne de connexion ou votre outil client. Par exemple, pour vous connecter à l'aide du client psql, exécutez la commande suivante :

psql -h DNS_NAME -U USERNAME -d DATABASE_NAME

Remplacez les éléments suivants :

  • DNS_NAME : nom DNS du point de terminaison.
  • USERNAME : utilisateur de la base de données auquel se connecter
  • DATABASE_NAME : nom de la base de données à laquelle se connecter

Pour en savoir plus sur l'utilisation de psql, consultez Se connecter à l'aide du client psql.

Mettre à jour un point de terminaison

Pour modifier l'instance vers laquelle pointe un point de terminaison, par exemple après une opération de restauration, utilisez les commandes suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Points de terminaison.

    Accéder à Endpoints

  2. Sur la ligne du point de terminaison que vous souhaitez mettre à jour, cliquez sur Actions, puis sélectionnez Modifier.

  3. Dans le champ Instance cible, sélectionnez la nouvelle instance principale vers laquelle ce point de terminaison doit pointer.

  4. Cliquez sur Mettre à jour.

gcloud

gcloud beta alloydb endpoints update ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID \
    --target-instances=NEW_TARGET_INSTANCE_NAME

Remplacez les éléments suivants :

  • ENDPOINT_ID : ID du point de terminaison à mettre à jour.
  • PROJECT_ID : ID de votre projet Google Cloud
  • REGION_ID : ID de la région où se trouve le point de terminaison
  • NEW_TARGET_INSTANCE_NAME : nom complet de la ressource des nouvelles instances cibles

Répertorier les points de terminaison

Pour lister tous les points de terminaison d'un projet et d'une région donnés, utilisez la commande suivante :

Console

  1. Dans la console Google Cloud , accédez à la page Points de terminaison.

    Accéder à Endpoints

    La page liste tous les points de terminaison du projet actuel.

gcloud

gcloud beta alloydb endpoints list --project=PROJECT_ID \
    --region=REGION_ID

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet Google Cloud
  • REGION_ID : ID de la région où réside le point de terminaison

Afficher les détails du point de terminaison

Pour afficher les détails d'un point de terminaison spécifique, utilisez la commande Google Cloud CLI suivante :

gcloud

gcloud beta alloydb endpoints describe ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

Remplacez les éléments suivants :

  • ENDPOINT_ID : ID du point de terminaison à décrire
  • PROJECT_ID : ID de votre projet Google Cloud
  • REGION_ID : ID de la région où se trouve le point de terminaison

Dans la console Google Cloud , vous pouvez afficher les détails du point de terminaison sur la page Points de terminaison.

Supprimer un point de terminaison

Pour supprimer un point de terminaison, utilisez les commandes suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Points de terminaison.

    Accéder à Endpoints

  2. Sur la ligne du point de terminaison que vous souhaitez supprimer, cliquez sur Actions, puis sélectionnez Supprimer.

  3. Pour confirmer, saisissez l'ID du point de terminaison, puis cliquez sur Supprimer.

gcloud

gcloud beta alloydb endpoints delete ENDPOINT_ID \
    --project=PROJECT_ID \
    --region=REGION_ID

Remplacez les éléments suivants :

  • ENDPOINT_ID : ID du point de terminaison à supprimer.
  • PROJECT_ID : ID de votre projet Google Cloud
  • REGION_ID : ID de la région où se trouve le point de terminaison

Comportement du point de terminaison d'écriture lors d'une commutation ou d'un basculement interrégional

Bien que le nom DNS d'un point de terminaison soit résolu en l'adresse IP d'une instance spécifique lors de sa création, ces points de terminaison sont dynamiques. En cas d'activités de réplication interrégionale, telles qu'un basculement ou un basculement interrégional (preview), les points de terminaison d'écriture AlloyDB maintiennent une connectivité continue sans intervention manuelle. Lorsqu'un cluster secondaire est promu pour devenir le nouveau cluster principal, le point de terminaison met automatiquement à jour son enregistrement DNS pour pointer vers la nouvelle instance principale. Ce comportement élimine la reconfiguration manuelle des chaînes de connexion d'application, ce qui réduit considérablement la complexité opérationnelle et minimise les temps d'arrêt pour atteindre un objectif de temps de récupération (RTO).

Une fois l'opération et la propagation DNS terminées, votre application peut se reconnecter à la nouvelle instance principale à l'aide du même nom DNS de point de terminaison.

Éviter les écritures conflictuelles lors du basculement

L'utilisation d'un point de terminaison d'écriture lors d'un basculement interrégional permet d'éviter les conflits d'écriture en redirigeant automatiquement le nouveau trafic d'écriture du cluster principal d'origine vers le nouveau. Pour en savoir plus sur le comportement du point de terminaison d'écriture lors d'un basculement, consultez Utiliser des points de terminaison d'écriture pour éviter le split-brain.

Étapes suivantes