Pour maintenir la disponibilité entre les régions et faire évoluer les charges de travail de lecture à l'échelle mondiale, vous pouvez créer et gérer des clusters secondaires AlloyDB pour PostgreSQL, ajouter des instances de pool de lecture et effectuer des opérations de basculement ou de promotion.
Pour une présentation conceptuelle de la réplication interrégionale, consultez Présentation de la réplication interrégionale.
Avant de commencer
- Le projet Google Cloud que vous utilisez doit avoir été activé pour accéder à AlloyDB.
- Vous devez disposer de l'un de ces rôles IAM dans le projet Google Cloud que vous utilisez :
roles/alloydb.admin(rôle IAM prédéfini d'administrateur AlloyDB)roles/owner(rôle IAM de base "Propriétaire")roles/editor(rôle IAM de base Éditeur)
Si vous ne disposez d'aucun de ces rôles, contactez l'administrateur de votre organisation pour demander l'accès.
Créer un cluster secondaire
Lorsque vous créez un cluster secondaire, AlloyDB copie et applique une partie de la configuration du cluster principal, y compris la récupération à un moment précis (PITR) et la configuration de sauvegarde, au cluster secondaire. AlloyDB n'ajoute aucune instance de pool de lecture au cluster secondaire après sa création, quel que soit le nombre d'instances de pool de lecture existant sur le cluster principal.
Si vous mettez à jour la configuration du cluster principal après avoir créé le cluster secondaire, les modifications ne sont pas disponibles sur le cluster secondaire. Toutefois, vous pouvez mettre à jour manuellement le cluster secondaire pour qu'il dispose de la dernière configuration disponible dans le cluster principal.
Vous pouvez créer jusqu'à cinq clusters secondaires pour un cluster principal. Tous les clusters secondaires sont répliqués à partir d'une seule instance principale. Si vous promouvez un cluster secondaire, il devient un cluster principal indépendant.
Le schéma suivant illustre comment promouvoir le cluster secondaire appelé cluster-2 dans us-east4 :

Figure 1 : Exemple de promotion d'un cluster secondaire.
Pour créer un cluster secondaire et une instance secondaire AlloyDB, procédez comme suit :
Par défaut, AlloyDB crée des instances secondaires avec la même configuration de machine que l'instance principale au moment de la création. Toutefois, si vous effectuez un scaling à la hausse de l'instance principale après avoir créé l'instance secondaire, AlloyDB n'effectue pas automatiquement de scaling à la hausse de l'instance secondaire. Vous devez le faire manuellement.
Console
Dans la console Google Cloud , accédez à la page Clusters.
Cliquez sur un cluster dans la colonne Nom de la ressource.
Sur la page Vue d'ensemble, cliquez sur Créer un cluster secondaire.
Configurez votre cluster secondaire :
- Dans le champ ID du cluster, saisissez un ID de ressource pour votre cluster secondaire.
- Sélectionnez une région pour votre cluster secondaire qui est différente de celle du cluster principal.
- Sélectionnez le chiffrement par défaut géré par Google ou une clé gérée par le client (CMEK) comme méthode de chiffrement pour chiffrer votre cluster secondaire.
Si vous souhaitez chiffrer ce cluster à l'aide d'une clé CMEK, procédez comme suit :
- Cliquez sur Options de chiffrement avancées.
- Sélectionnez Clé de chiffrement gérée par le client (CMEK).
Sélectionnez une clé gérée par le client dans le menu qui s'affiche.
La console Google Cloud limite cette liste aux clés situées dans le même projet et la même régionGoogle Cloud que le nouveau cluster.
Pour utiliser une clé qui ne figure pas dans cette liste, procédez comme suit :
- Cliquez sur Vous ne trouvez pas votre clé ? Saisissez le nom de ressource de la clé.
- Saisissez le nom de la ressource dans le champ Nom de ressource de la clé.
- Cliquez sur Enregistrer.
- Cliquez sur Continuer.
L'utilisation d'une clé CMEK avec AlloyDB nécessite une configuration supplémentaire. Pour en savoir plus, consultez Utiliser des CMEK.
Si l'instance principale associée est chiffrée avec une clé CMEK, vous devez également chiffrer son cluster secondaire avec une clé CMEK.
Configurez votre instance secondaire. Dans le champ ID d'instance, saisissez un ID de ressource pour votre instance secondaire. L'ID de ressource doit être unique dans un cluster.
Cliquez sur Créer un cluster.
gcloud
Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.
Exécutez la commande gcloud alloydb clusters create-secondary.
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/PRIMARY_CLUSTER_IDgcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID
Remplacez les éléments suivants :
SECONDARY_CLUSTER_ID: ID du cluster secondaire que vous souhaitez créer et auquel vous souhaitez associer l'instance secondaire.SECONDARY_INSTANCE_ID: ID de l'instance secondaire que vous souhaitez créer.REGION_ID: ID de la région du cluster secondaire, par exempleus-central1.PROJECT_ID: ID du projet du cluster principal.LOCATION_ID: emplacement de votre cluster principal (par exemple,us-central1).PRIMARY_CLUSTER_ID: ID du cluster principal auquel le cluster secondaire est associé.
Pour désactiver la création de sauvegardes automatiques sur le cluster secondaire, transmettez l'option --no-enable-automated-backup à la commande gcloud alloydb clusters create-secondary.
Pour créer une instance secondaire compatible avec Private Service Connect, ajoutez l'option --allowed-psc-projects pour définir une liste d'ID de projet ou de numéros de projet séparés par une virgule auxquels vous souhaitez autoriser l'accès à l'instance (par exemple, my-project-1, 12345 et my-project-n).
gcloud alloydb clusters create-secondary SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --primary-cluster=projects/PROJECT_ID/locations/LOCATION_ID/clusters/PRIMARY_CLUSTER_IDgcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \ --cluster=SECONDARY_CLUSTER_ID \ --region=REGION_ID \ --allowed-psc-projects=ALLOWED_PSC_PROJECTS
Remplacez les éléments suivants :
ALLOWED_PSC_PROJECTS(facultatif) : liste d'ID ou de numéros de projet séparés par une virgule que vous souhaitez autoriser à accéder à l'instance (par exemple,my-project-1,12345etmy-project-n). Si votre cluster utilise Private Service Connect comme méthode de connexion à l'instance, vous devez définir une liste de projets ou de numéros autorisés.
Pour créer une instance secondaire pour un cluster avec adresse IP publique activée, ajoutez le paramètre --assign-inbound-public-ip=ASSIGN_IPV4.
gcloud alloydb instances create-secondary SECONDARY_INSTANCE_ID \
--cluster=SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--assign-inbound-public-ip=ASSIGN_IPV4Vous pouvez éventuellement transmettre la liste de blocs CIDR séparés par une virgule, par exemple 64.233.160.0/16, au paramètre --authorized-external-networks pour définir des réseaux externes autorisés sur votre instance.
Afficher un cluster secondaire
Pour afficher des informations détaillées sur un cluster secondaire AlloyDB, procédez comme suit :
Dans la console Google Cloud , accédez à la page Clusters.
Cliquez sur un cluster secondaire dans la colonne Nom de la ressource.
Sur la page Vue d'ensemble, affichez tous les détails de votre cluster secondaire.
Mettre à jour une instance secondaire
Vous pouvez mettre à jour une instance secondaire pour ajouter, modifier ou supprimer des indicateurs de base de données. Vous pouvez également faire évoluer le type de machine de votre instance secondaire.
Configurer des indicateurs de base de données sur une instance secondaire
Pour ajouter, modifier ou supprimer des indicateurs de base de données, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Clusters.
Dans la colonne Nom de la ressource, cliquez sur un cluster secondaire que vous souhaitez modifier.
Sur la page Présentation, accédez à Instances dans votre cluster, sélectionnez l'instance secondaire, puis cliquez sur Modifier l'instance secondaire.
Ajoutez, modifiez ou supprimez un indicateur de base de données de votre instance :
Ajouter un indicateur
- Pour ajouter un indicateur de base de données à votre instance, cliquez sur Ajouter un indicateur.
- Sélectionnez un indicateur dans la liste Nouvel indicateur de base de données.
- Indiquez une valeur pour l'option.
- Cliquez sur OK.
Modifier un flag
- Pour modifier un indicateur de base de données présent dans votre instance, développez l'indicateur de base de données et modifiez la valeur de l'indicateur existant dans la section Modifier l'indicateur de base de données.
- Cliquez sur OK.
Supprimer un indicateur
- Pour supprimer un indicateur de base de données de votre instance, sélectionnez un indicateur, puis cliquez sur l'icône de suppression.
- Cliquez sur OK.
Cliquez sur Mettre à jour le secondaire.
gcloud
Utilisez la commande gcloud alloydb instances update pour modifier les indicateurs de base de données d'une instance secondaire.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--database-flags FLAGS_LIST \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDRemplacez les éléments suivants :
SECONDARY_INSTANCE_ID: ID de l'instance secondaire.FLAGS_LIST: liste d'une ou de plusieurs spécifications d'indicateurs de base de données, séparées par une virgule. Chaque spécification se compose du nom de l'option, d'un signe égal (=) et de la valeur à attribuer aux options. Pour les indicateurs de base de données qui n'acceptent pas de valeurs, indiquez le nom de l'indicateur suivi d'un signe égal (=).REGION_ID: région où se trouve l'instance secondaire, par exempleus-central1.CLUSTER_ID: ID du cluster dans lequel l'instance secondaire est placée.PROJECT_ID: ID du projet dans lequel se trouve le cluster secondaire.
Mettre à l'échelle le type de machine de votre instance secondaire
Pour faire évoluer le type de machine de votre instance secondaire, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Clusters.
Dans la colonne Nom de la ressource, cliquez sur un cluster secondaire que vous souhaitez modifier.
Sur la page Vue d'ensemble, accédez à la section Instances dans votre cluster, puis cliquez sur Modifier l'instance secondaire.
Notez que cette action n'est pas disponible si la page indique l'état Maintenance pour le cluster. L'action redevient disponible une fois que l'état passe à Prêt.
Sélectionnez un type de machine.
Cliquez sur Mettre à jour le secondaire.
gcloud
Utilisez la commande gcloud alloydb instances
update pour modifier le type de machine de l'instance secondaire.
gcloud alloydb instances update SECONDARY_INSTANCE_ID \
--cpu-count=CPU_COUNT \
--region=REGION_ID \
--cluster=CLUSTER_ID \
--project=PROJECT_IDRemplacez les éléments suivants :
SECONDARY_INSTANCE_ID: ID de l'instance secondaire que vous mettez à jour.CPU_COUNT: nombre de processeurs virtuels que vous souhaitez pour l'instance. Les valeurs valides sont les suivantes :2(2 vCPU, 16 Go de RAM)4(4 vCPU, 32 Go de RAM)8(8 vCPU, 64 Go de RAM)16(16 vCPU, 128 Go de RAM)32(32 vCPU, 256 Go de RAM)64(64 vCPU, 512 Go de RAM)96(96 vCPU, 768 Go de RAM)128(128 vCPU, 864 Go de RAM)
REGION_ID : région où se trouve l'instance.
CLUSTER_ID : ID du cluster où l'instance est placée.
PROJECT_ID : ID du projet dans lequel le cluster est placé.
Si la commande renvoie un message d'erreur incluant l'expression invalid cluster state MAINTENANCE, cela signifie que le cluster fait l'objet d'une maintenance de routine. Cela empêche temporairement la reconfiguration de l'instance. Exécutez à nouveau la commande une fois que le cluster est revenu à l'état READY.
Pour vérifier l'état du cluster, consultez Afficher les détails du cluster.
Ajouter des instances de pool de lecture à un cluster secondaire
Pour ajouter une instance de pool de lecture à un cluster secondaire, procédez comme suit :
Dans la console Google Cloud , accédez à la page Clusters.
Dans la colonne Nom de la ressource, cliquez sur un cluster secondaire auquel vous souhaitez ajouter une instance de pool de lecture.
Sur la page Présentation, accédez à la section Instances dans votre cluster, puis cliquez sur Ajouter un pool de lecture.
Configurez votre instance de pool de lecture :
- Dans le champ ID de l'instance de pool de lecture, saisissez un ID pour l'instance de pool de lecture.
- Dans le champ Nombre de nœuds, saisissez un nombre de nœuds. Le nombre de nœuds d'une instance de pool de lecture détermine la capacité de calcul globale de l'instance. Vous pouvez avoir un maximum de 20 nœuds sur toutes les instances de pool de lecture d'un cluster.
- Sélectionnez un type de machine.
Facultatif : définissez des options personnalisées pour votre instance. Pour chaque flag, procédez comme suit :
- Cliquez sur Ajouter une option.
- Sélectionnez un indicateur dans la liste Nouvel indicateur de base de données.
- Indiquez une valeur pour l'option.
- Cliquez sur OK.
Cliquez sur Ajouter un pool de lecture.
Reprise après sinistre avancée
Pour les scénarios de reprise après sinistre avancés, AlloyDB est compatible avec la commutation et le basculement interrégional :
Effectuer une commutation
La commutation vous permet d'inverser les rôles de vos clusters principal et secondaire sans aucune perte de données. Utilisez cette opération pour les migrations planifiées, la maintenance de routine ou les exercices de reprise après sinistre. Une fois la commutation terminée, la direction de la réplication est inversée.
Si vous effectuez une commutation alors que vous disposez de plusieurs clusters secondaires, les modifications suivantes se produisent :
- Le cluster secondaire qui reçoit la commande de permutation devient un cluster principal.
- L'ancien cluster principal devient un cluster secondaire, qui réplique le nouveau cluster principal.
- Tous les autres clusters secondaires passent à la réplication à partir du nouveau cluster principal.
Le schéma suivant illustre une commutation de cluster-1 dans us-central1 vers cluster-2 dans us-east4 :

Figure 2. Exemple de basculement vers l'un des deux clusters secondaires.
Avant d'effectuer une commutation, vérifiez que toutes les régions auxquelles appartiennent les instances principale et secondaire sont en ligne et que les instances sont en bon état. Pour en savoir plus, consultez Surveiller une instance à l'aide du tableau de bord des insights système d'AlloyDB.
Pour effectuer une commutation, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Clusters.
Dans la colonne Nom de la ressource, cliquez sur un cluster secondaire que vous souhaitez basculer en tant que cluster principal.
Sur la page Présentation, cliquez sur Commutation.
Dans la boîte de dialogue qui s'affiche, saisissez l'ID de votre cluster secondaire pour confirmer que vous souhaitez basculer le cluster.
Cliquez sur Commutation.
Une fois le cluster basculé, le Type : cluster secondaire sur la page Présentation est mis à jour vers
Type de cluster : cluster principal et Type de cluster : cluster secondaire.
gcloud
Exécutez la commande gcloud alloydb clusters switchover :
gcloud alloydb clusters switchover SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_IDRemplacez les éléments suivants :
SECONDARY_CLUSTER_ID: ID du cluster secondaire que vous souhaitez basculer.REGION_ID: ID de la région du cluster secondaire, par exempleus-central1.PROJECT_ID: ID du projet du cluster secondaire.
Facultatif : Vérifier l'état de la réplication
Pour vous assurer que la commutation s'effectue rapidement et sans perte de données, vérifiez que le cluster secondaire a appliqué toutes les transactions reçues du cluster principal :
- Arrêtez toutes les écritures dans le cluster principal.
Vérifiez l'état de réplication du cluster secondaire en procédant comme suit :
Dans la console Google Cloud , accédez à la page Clusters.
Dans la liste des clusters, cliquez sur le nom du cluster secondaire que vous souhaitez basculer.
Sur la page d'informations du cluster, cliquez sur Surveillance.
Dans la liste Surveillance, sélectionnez l'instance secondaire. Il apparaît dans la liste sous la forme Secondaire : INSTANCE_NAME.
Dans la liste des métriques, recherchez le graphique Délai de réplication à partir de l'instance principale.
Vérifiez que le graphique affiche un décalage minimal.
Une valeur de décalage de
0est optimale. Si le décalage est supérieur à0, l'opération de permutation peut prendre plus de temps, car elle applique les transactions restantes.Dans la liste des métriques, recherchez le graphique État de la réplication.
Vérifiez que tous les nœuds représentés dans le graphique ont la valeur
streaming.
Promouvoir un cluster secondaire
La promotion d'un cluster secondaire en fait un cluster principal autonome avec accès complet en lecture et en écriture. Utilisez cette opération principalement pour la reprise après sinistre lorsque la région hébergeant votre cluster principal devient indisponible.
Par défaut, la promotion fait du cluster secondaire un cluster principal autonome. Toutefois, vous pouvez activer le basculement interrégional (preview) pour automatiser la recréation de l'instance principale d'origine. Le basculement interrégional n'est possible que pour les topologies comportant un seul cluster principal et un seul cluster secondaire.
Pour promouvoir un cluster secondaire en cluster principal ou pour ajouter éventuellement une orchestration de basculement, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Clusters.
Dans la colonne Nom de la ressource, cliquez sur un cluster secondaire que vous souhaitez promouvoir en tant que cluster principal.
Sur la page Vue d'ensemble, cliquez sur Promouvoir le cluster.
Dans la boîte de dialogue qui s'affiche, saisissez l'ID de votre cluster secondaire pour confirmer que vous souhaitez le promouvoir.
Cliquez sur Promouvoir.
Une fois le cluster promu, le champ Type : cluster secondaire (disponibilité élevée) de la page Vue d'ensemble est remplacé par Type : disponibilité élevée avec pools de lecture.
gcloud
Pour promouvoir un cluster secondaire en cluster principal autonome, utilisez la commande gcloud alloydb clusters promote :
gcloud alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_IDPour effectuer une promotion avec orchestration de basculement (preview), ajoutez l'option facultative --failover. Cela recrée automatiquement l'instance principale d'origine en tant qu'instance secondaire et met à jour les points de terminaison associés pour acheminer le trafic vers le nouveau cluster principal.
gcloud beta alloydb clusters promote SECONDARY_CLUSTER_ID \
--region=REGION_ID \
--project=PROJECT_ID \
--failoverRemplacez les éléments suivants :
SECONDARY_CLUSTER_ID: ID du cluster secondaire que vous souhaitez promouvoir.REGION_ID: ID de la région du cluster secondaire,par exempleus-central1.PROJECT_ID: ID du projet du cluster secondaire.
Utiliser des points de terminaison d'écriture pour éviter le split-brain
Pour simplifier davantage votre workflow de reprise après sinistre lors d'un basculement interrégional, Google vous recommande de gérer les connexions de base de données avec des points de terminaison d'écriture pour vous connecter à votre cluster.
Lorsque vous effectuez un basculement interrégional, AlloyDB met automatiquement à jour l'enregistrement DNS de votre point de terminaison d'écriture pour qu'il pointe vers le nouveau cluster principal. Cela permet de s'assurer que le nouveau trafic d'écriture est dirigé vers la nouvelle instance principale, et non vers l'instance principale d'origine.
Avant d'utiliser des points de terminaison d'écriture lors d'un basculement interrégional, tenez compte des points suivants :
- Mise à jour DNS immédiate : l'enregistrement DNS du point de terminaison d'écriture est mis à jour immédiatement après la promotion.
- Mise à jour différée des métadonnées : les métadonnées du point de terminaison d'écriture peuvent toujours afficher l'adresse de l'instance principale d'origine jusqu'à ce que la région du cluster principal d'origine soit restaurée.
Récupération de données lors d'un basculement interrégional
Lorsque vous effectuez un basculement interrégional, AlloyDB sauvegarde automatiquement le cluster principal d'origine avant de le recréer en tant que cluster secondaire. Un scénario de split-brain se produit lorsque le cluster principal d'origine et le nouveau cluster principal acceptent simultanément des écritures. Pour éviter de tels scénarios, les écritures sur l'instance principale d'origine sont arrêtées avant la création de cette sauvegarde. Utilisez cette sauvegarde pour récupérer les transactions qui n'ont pas été répliquées sur le cluster secondaire en raison d'un délai lors du basculement.
Cette sauvegarde est créée automatiquement dans le cadre de l'orchestration du basculement. Elle est distincte de vos sauvegardes automatiques et à la demande planifiées régulièrement. Vous pouvez l'utiliser pour créer un cluster temporaire et rapprocher manuellement les données manquantes.
Cette sauvegarde capture les écritures acceptées par l'instance principale d'origine avant son arrêt, mais elle ne fusionne pas automatiquement les écritures dans le nouveau cluster principal.