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
- 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 (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.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.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
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 Écriture.
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 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 exempleus-central1.ENDPOINT_TYPE: type de la ressource de 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 à 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
Dans la console Google Cloud , accédez à la page Points de terminaison.
Recherchez le point de terminaison auquel vous souhaitez vous connecter, puis 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 terminaison.PROJECT_ID: ID de votre projet Google CloudREGION_ID: ID de la région où 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 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 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 mettre à jour, 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 à jour.PROJECT_ID: ID de votre projet Google CloudREGION_ID: ID de la région où 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 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écrirePROJECT_ID: ID de votre projet Google CloudREGION_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
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 à supprimer.PROJECT_ID: ID de votre projet Google CloudREGION_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
- En savoir plus sur la connexion à une instance AlloyDB