Cette page explique comment utiliser les points de terminaison d'écriture AlloyDB pour PostgreSQL afin de simplifier la gestion des connexions à la base de données pour vos applications.
Un point de terminaison est une ressource AlloyDB qui fournit un nom de service de nom de domaine (DNS) stable que vos applications peuvent utiliser pour se connecter à une instance AlloyDB. En utilisant un point de terminaison, vous dissociez votre application de l'adresse IP ou de l'URI (Uniform Resource Identifier) spécifiques d'une instance. Cette abstraction simplifie la gestion des connexions lors d'événements opérationnels (par exemple, la reprise après sinistre, la restauration de sauvegardes ou les 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 traite 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 à l'échelle mondiale, 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 un basculement 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 à l'aide du même nom DNS de point de terminaison, ce qui réduit votre objectif de temps de récupération (RTO).
- Récupération de sauvegarde fluide : 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 qui vient d'être restaurée. Cela permet aux applications de reprendre leur fonctionnement sans modifier la configuration.
- Migrations plus faciles : lors des migrations, vous pouvez passer d'une base de données source à 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. Les points de terminaison ne sont pas compatibles avec les instances configurées pour utiliser Private Service Connect (PSC).
- Les connecteurs de langage AlloyDB et le proxy d'authentification AlloyDB ne sont pas compatibles avec le point de terminaison d'écriture.
- Les opérations de modification simultanées (telles que les mises à jour simultanées, ou une mise à jour et une opération de suppression) sur les points de terminaison pointant vers la même instance cible ne sont pas prises en charge et peuvent échouer.
Avant de commencer
- Installez et initialisez la Google Cloud CLI.
- Activez l'API Cloud DNS.
- Assurez-vous de disposer d'une instance AlloyDB existante qui servira de cible pour le point de terminaison.
Pour obtenir les autorisations nécessaires pour gérer les points de terminaison, demandez à votre administrateur de vous accorder le rôle IAM 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.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.endpoints.delete
Pour en savoir plus, consultez Rôles et autorisations AlloyDB IAM.
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 Google Cloud CLI. Le type de point de terminaison doit être WRITE_ENDPOINT et cibler une seule instance principale.
Console
Dans la console Google Cloud , accédez à la page Points de terminaison.
Cliquez sur Créer un point de terminaison.
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.
Sélectionnez une Région.
Pour Type de point de terminaison, sélectionnez Écrire.
Dans le champ Instance cible, sélectionnez l'instance principale vers laquelle ce point de terminaison doit pointer.
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 au sein du projet et de 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 ressource du point de terminaison. Seule la régionWRITE_ENDPOINTest 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 à 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 la Google Cloud CLI.
Console
Dans la console Google Cloud , accédez à la page Points de terminaison.
Recherchez le point de terminaison auquel vous souhaitez vous connecter et copiez la valeur dans la colonne Nom DNS.
gcloud
Exécutez la commande
gcloud beta alloydb endpoints describe:gcloud beta alloydb endpoints describe ENDPOINT_ID \ --project=PROJECT_ID \ --region=REGION_IDRemplacez les éléments suivants :
ENDPOINT_ID: ID du point de terminaisonPROJECT_ID: ID de votre projet Google CloudREGION_ID: ID de la région dans laquelle se trouve le point de terminaison
Dans le résultat de la commande, recherchez le champ
dnsNameet copiez sa valeur.
Se connecter à l'aide de psql
Une fois que vous avez le 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 terminaisonUSERNAME: utilisateur de la base de données auquel se connecterDATABASE_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
Dans la console Google Cloud , accédez à la page Points de terminaison.
Sur la ligne du point de terminaison que vous souhaitez modifier, cliquez sur Actions, puis sélectionnez Modifier.
Dans le champ Instance cible, sélectionnez la nouvelle instance principale vers laquelle ce point de terminaison doit pointer.
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 à jourPROJECT_ID: ID de votre projet Google CloudREGION_ID: ID de la région dans laquelle se trouve le point de terminaisonNEW_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
Dans la console Google Cloud , accédez à la page Points de terminaison.
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 CloudREGION_ID: ID de la région dans laquelle se trouve 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écrirePROJECT_ID: ID de votre projet Google CloudREGION_ID: ID de la région dans laquelle 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
Dans la console Google Cloud , accédez à la page Points de terminaison.
Sur la ligne du point de terminaison que vous souhaitez supprimer, cliquez sur Actions, puis sélectionnez Supprimer.
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 à supprimerPROJECT_ID: ID de votre projet Google CloudREGION_ID: ID de la région dans laquelle se trouve le point de terminaison
Comportement du point de terminaison d'écriture lors d'une commutation ou d'un basculement interrégionaux
Bien que le nom DNS d'un point de terminaison pointe vers 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 (aperçu), les points de terminaison d'écriture AlloyDB assurent 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 des applications, 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 en utilisant le même nom DNS de point de terminaison.
Éviter les écritures en conflit lors du basculement
L'utilisation d'un point de terminaison d'écriture lors d'un basculement multirégional permet d'éviter les écritures conflictuelles en redirigeant automatiquement le nouveau trafic d'écriture du cluster principal d'origine vers le nouveau. Pour en savoir plus sur le comportement des points de terminaison d'écriture lors d'un basculement, consultez Utiliser des points de terminaison d'écriture pour éviter le split-brain.
Étapes suivantes
- En savoir plus sur la connexion à une instance AlloyDB