Cette page décrit le déplacement d'une instance dans Spanner.
Vous pouvez déplacer votre instance Spanner depuis n'importe quelle configuration d'instance vers une autre configuration d'instance, y compris entre des configurations régionales, birégionales et multirégionales. Le déplacement de votre instance n'entraîne pas de temps d'arrêt, et Spanner continue de fournir les garanties de transaction habituelles, y compris une cohérence forte, pendant le déplacement.
Vous pouvez également déplacer votre instance de sa configuration d'instance source vers une configuration d'instance personnalisée (par exemple, une configuration de base nam3 avec une instance répliquée en lecture seule us-west2). Étant donné que vous ne pouvez pas mettre à jour la topologie des configurations d'instance existantes, vous devez d'abord créer une configuration d'instance personnalisée avec la topologie souhaitée. Après avoir créé la configuration d'instance personnalisée, vous pouvez déplacer votre instance de la configuration d'instance source vers la nouvelle configuration d'instance personnalisée.
Pourquoi déplacer votre instance Spanner ?
Voici quelques avantages du déplacement de votre instance :
- Augmenter la disponibilité : obtenez une disponibilité de 99,999% sans temps d'arrêt après avoir effectué un déplacement d'une région vers une configuration birégionale ou multirégionale.
- Réduire la latence : réduisez la latence et augmentez la couverture géographique avec des instances répliquées en lecture seule supplémentaires en passant d'une configuration régionale à une configuration birégionale ou multirégionale, ou d'une configuration multirégionale à une autre.
- Réduire les coûts : réduisez les coûts horaires en passant d'une configuration birégionale ou multirégionale à une configuration régionale.
- Colocaliser la base de données : colocalisez la base de données Spanner avec l' application cliente en déplaçant l'instance vers un emplacement plus optimisé.
Tarifs
Lorsque vous déplacez une instance, les configurations d'instance source et de destination sont soumises à des frais horaires de calcul et de stockage. Une fois le déplacement terminé, vous êtes facturé pour le stockage de l'instance dans la configuration de destination.
Si vous déplacez votre instance vers une nouvelle configuration d'instance régionale, birégionale ou multirégionale, vous pouvez être soumis à des frais de transfert de données sortantes. Pour en savoir plus, consultez Tarifs Spanner.
Limites
- Pour déplacer votre instance, elle doit comporter au moins un nœud (1 000 unités de traitement).
- Vous ne pouvez pas déplacer votre instance entre des projets et des Google Cloud comptes.
- Vous ne pouvez pas déplacer directement une instance qui utilise l'édition Standard d'une configuration d'instance régionale vers une configuration d'instance birégionale ou multirégionale. Vous devez d'abord mettre à niveau l'édition de votre instance vers l'édition Enterprise Plus, puis déplacer l'instance.
- Si vous avez des requêtes actives qui utilisent un point de terminaison de service régional sur l'une des ressources d'instance, le déplacement de l'instance a un impact sur toutes les requêtes qui utilisent le point de terminaison régional, car l'application régionale bloque l'accès aux instances interrégionales. Les requêtes qui utilisent un point de terminaison global ne sont pas affectées.
- Les sauvegardes Spanner sont spécifiques à une configuration d'instance et ne sont pas incluses lors du déplacement d'une instance. Pour en savoir plus, consultez Sauvegardes.
- Les API suivantes sont désactivées lors du déplacement d'une instance :
InstanceAdmin.DeleteInstanceInstanceAdmin.UpdateInstanceDatabaseAdmin.CreateDatabaseDatabaseAdmin.UpdateDatabaseDdl(désactivée sidefault_leaderest spécifié dans la requête)DatabaseAdmin.RestoreDatabaseDatabaseAdmin.CreateBackupDatabaseAdmin.CreateBackupScheduleDatabaseAdmin.CopyBackup
- Si une base de données a un leader par défaut modifié, la sélection est conservée si elle nomme une région de lecture/écriture dans la configuration d'instance de destination et que cette configuration est multirégionale. Si la configuration de destination est régionale ou n'inclut pas la région de lecture/écriture nommée, la sélection du leader par défaut est effacée.
- Le déplacement d'une instance modifie l'attribut de configuration d'instance de votre instance. Si vous gérez vos ressources Spanner par automatisation, veillez à préparer et à résoudre les incohérences qui pourraient survenir.
- Par exemple, si vous utilisez Terraform pour
gérer vos instances et bases de données Spanner, et que vous
activez
terraform apply --auto-approvepour synchroniser vos ressources, toutes les instances et ressources enfants sont supprimées lorsque nous déplaçons l'instance. Mettez à jour la configuration en conséquence pour éviter la suppression et la perte de données. Pour en savoir plus sur la commandeapply, consultez Options d'application Terraform.
- Par exemple, si vous utilisez Terraform pour
gérer vos instances et bases de données Spanner, et que vous
activez
- Pendant le déplacement de l'instance, les métriques et graphiques de surveillance Spanner peuvent afficher des données dans les configurations d'instance source et de destination, ou ne refléter les performances que dans une seule configuration d'instance.
- Si vous avez configuré l'outil Autoscaler Open Source, vous n'avez pas besoin de le désactiver. Il échoue, car
InstanceAdmin.UpdateInstance(utilisé pour les modifications de nœud et d'unité de traitement) est désactivé. - Vous ne pouvez pas déplacer une instance si la
fonctionnalité d'autoscaler géré Spanner
est activée. Pour déplacer l'instance, vous devez désactiver l'autoscaler géré, déplacer l'instance, puis le réactiver.
- De plus, si vous utilisez l'autoscaling, vous devez provisionner suffisamment de nœuds pour l'utilisation maximale du processeur, conformément aux recommandations maximales indiquées, puis désactiver l'autoscaling avant de déplacer l'instance.
- Vous ne pouvez pas déplacer une instance d'essai sans frais Spanner. Vous pouvez déplacer l'instance après avoir effectué une mise à niveau vers une instance payante.
Considérations sur les performances
Lorsqu'une instance est déplacée, elle présente des latences de lecture/écriture plus élevées et un taux d'abandon des transactions plus élevé aussi. L'utilisation du processeur pendant le déplacement peut atteindre 100 %, car le déplacement de l'instance est effectué à l'aide du processeur de secours provisionné par l'utilisateur. Toutefois, le déplacement d'une instance n'entraîne aucun temps d'arrêt. Le temps nécessaire au déplacement d'une instance dépend de plusieurs facteurs, y compris la taille des bases de données, le nombre de nœuds et le type de déplacement (par exemple, d'une configuration régionale à une configuration multirégionale).
Après la migration, les performances de l'instance varient en fonction des détails de sa configuration. Par exemple, les configurations birégionales et multirégionales présentent généralement une latence en écriture plus élevée et une latence en lecture plus faible que les configurations régionales.
Sauvegardes
Lorsque vous déplacez une instance, les sauvegardes de la configuration d'origine de l'instance ne sont pas automatiquement déplacées vers la nouvelle configuration de destination. Le déplacement de l'instance est abandonné si des sauvegardes existent dans la configuration d'origine de l'instance lorsque vous démarrez le déplacement de l'instance. Il est important de copier vos sauvegardes et de tenir compte de votre plan de récupération des données avant de déplacer votre instance.
Si des sauvegardes se trouvent dans la configuration d'origine de l'instance et que vous devez les
conserver, nous vous recommandons de les copier
dans deux petites instances temporaires (100 unités de traitement), placeholder-source et
placeholder-dest :
placeholder-source: instance ayant la même configuration d'instance que la configuration d'origine de l'instance en cours de déplacement. Cela vous permet de restaurer vos sauvegardes dans la configuration d'origine si vous devez annuler le déplacement.placeholder-dest: instance ayant la même configuration d'instance que la configuration d'instance de destination. Cela garantit qu'une sauvegarde est disponible dans la nouvelle configuration immédiatement après la fin du déplacement.
La fonctionnalité de restauration ne prend pas en charge les restaurations interconfigurations. Ces instances d'espace réservé sont donc essentielles pour une restauration rapide dans la nouvelle configuration si nécessaire, ce qui offre un filet de sécurité en cas de problème avec l'instance déplacée.
Une fois que vous avez copié vos sauvegardes dans placeholder-source et placeholder-dest, vous devez supprimer toutes les sauvegardes existantes dans la configuration d'origine de l'instance avant de pouvoir déplacer l'instance. Ensuite, une fois le déplacement de l'instance terminé, vous disposez déjà d'une copie de la sauvegarde dans la configuration de destination. Vous pouvez également
créer une sauvegarde.
En suivant cette approche, vous assurez la continuité de l'activité et minimisez les temps d'arrêt ou la perte de données potentiels pendant le processus de déplacement de l'instance.
Déplacer une instance
Vous pouvez déplacer une instance avec la Google Cloud console Cloud Shell et
la gcloud CLI à l'aide des gcloud commandes.
Prérequis
Avant de modifier la configuration de votre instance, assurez-vous d'avoir lu les sections Limites et Considérations sur les performances. Ensuite, procédez comme suit :
- Vérifiez que vous disposez de l'
spanner.instances.updateautorisation IAM sur l'instance en cours de déplacement. - Le cas échéant, déplacez vos instances hors production (telles que les instances de test et de préproduction) avant de déplacer vos instances de production pour évaluer et comprendre l'impact sur les performances des charges de travail lors du déplacement d'une instance.
- Lorsque vous déplacez une instance Spanner, le processus de déplacement supprime les tags d'instance que vous avez créés dans Data Catalog. Pour conserver vos tags, vous devez les exporter avant le déplacement et les importer après le déplacement. Pour en savoir plus, consultez Exporter et importer des tags.
Pour suivre les bonnes pratiques, respectez également les consignes suivantes :
- Testez les charges de travail de performances dans des instances hors production dans la configuration d'instance de destination avant de déplacer votre instance de production. Essayez de déplacer une instance de préproduction semblable à votre instance de production pour avoir une idée du temps nécessaire au déplacement de votre instance de production.
- Vérifiez qu'il n'y a pas de points chauds dans vos bases de données à l'aide de Key Visualizer.
- Vérifiez que vous disposez d'un quota de nœuds suffisant dans la configuration d'instance de destination pour prendre en charge l'utilisation maximale prévue de l'instance. Pour en savoir plus, consultez Quotas et limites Spanner.
- Assurez-vous que l'utilisation maximale du processeur de votre instance est inférieure à 40% pour la configuration d'instance que vous avez déplacée et que la quantité de stockage par nœud est inférieure à 1 tébioctet (Tio).
- N'apportez aucune modification à l'instance pendant le déplacement. Cela inclut la modification du nombre de nœuds de l'instance, la modification des schémas de base de données, la création ou la suppression de bases de données, ainsi que la création ou la suppression de sauvegardes.
Si vous déplacez votre instance conformément à ces recommandations, le déplacement se termine généralement dans les 24 heures. Toutefois, en fonction de la charge de travail de l'application, le délai peut être plus ou moins long.
Déplacer une instance
Google Cloud Console
Accédez à la page Instances de la Google Cloud console.
Sélectionnez l'instance que vous souhaitez déplacer.
Sur la page "Aperçu de l'instance", à côté de Configuration, cliquez sur Déplacer l'instance vers une nouvelle configuration.
Dans le panneau Déplacer la base de données vers une nouvelle configuration, sélectionnez la nouvelle configuration d'instance pour votre instance.
Cliquez sur Enregistrer.
Gcloud CLI
Utilisez la gcloud spanner instances move
commande pour déplacer l'instance.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG
Remplacez les éléments suivants :
- INSTANCE_ID : identifiant permanent de l'instance que vous souhaitez déplacer.
- TARGET_CONFIG : identifiant permanent de la configuration d'instance
vers laquelle vous souhaitez déplacer votre instance. Nouvel emplacement géographique de votre instance. Il peut s'agir d'une configuration d'instance régionale, birégionale ou
multirégionale (par exemple,
nam3,regional-us-central1, oucustom-nam3-us-west2).
Par exemple, pour déplacer votre instance test-instance de sa configuration d'instance actuelle vers nam3, exécutez la commande suivante :
gcloud spanner instances move test-instance --target-config=nam3
Facultatif : Si vous souhaitez ajouter une instance répliquée en lecture seule dans la région us-west2 à la configuration d'instance de base dans nam3, procédez comme suit :
Clonez la configuration de base et ajoutez l'instance répliquée en lecture seule à la nouvelle configuration d'instance personnalisée
custom-nam3-us-west2:gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLYDéplacez votre instance
test-instancede sa configuration d'instance actuelle vers cette nouvelle configuration d'instancecustom-nam3-us-west2:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Facultatif : Déplacer une instance avec des bases de données compatibles avec les CMEK
Utilisez la gcloud spanner instances move
commande pour déplacer une instance avec des bases de données compatibles avec les CMEK.
Vous devez inclure l'indicateur --target-database-move-configs et les valeurs de clé KMS dans la commande, ou configurer un fichier JSON ou YAML avec les clés KMS nécessaires.
Remarques concernant l'utilisation :
- Si vous disposez de plusieurs bases de données compatibles avec les CMEK dans l'instance que vous souhaitez déplacer, vous devez spécifier
--target-database-move-configspour chacune d'elles. Vous pouvez utiliser les mêmes clés pour chaque base de données, mais vous devez spécifier les clés pour chaque base de données compatible avec les CMEK. - Vos clés doivent couvrir toutes les régions de la configuration d'instance de destination. Par exemple, si la configuration d'instance de destination se trouve dans
nam3, vous devez définir des clés dansregional-us-east4,regional-us-east1etregional-us-central1. - Vous ne pouvez pas définir de clés KMS pour les bases de données qui ne sont pas compatibles avec les CMEK lors du déplacement de l'instance.
- Vous ne devez pas désactiver ni détruire les clés CMEK dans la configuration d'instance source ou de destination lors du déplacement de l'instance. La migration ne se poursuit pas si vous essayez.
- Vous ne pouvez pas déplacer une instance comportant des partitions d'instance. Pour en savoir plus sur les limites de la géopartition, consultez les limites de la présentation de la géopartition.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG \
--target-database-move-configs=^:^database-id=DATABASE_ID_1:kms-key-names=KMS_KEY_1[, KMS_KEY_2 ... ] \
[--target-database-move-configs=^:^database-id=DATABASE_ID_2:kms-key-names=KMS_KEY_1 ... ]
ou
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG \
--target-database-move-configs=CONFIG_FILE_PATH
Configurez le fichier CONFIG_FILE_PATH avec vos ID
de base de données et vos clés KMS. L'exemple de fichier de configuration suivant contient les clés KMS pour deux bases de données, database-1 et database-2, avec les mêmes clés dans regional-us-east4, regional-us-east1 et regional-us-central1 pour couvrir toutes les régions de nam3.
[
{
database-id: database-1,
kms-key-names:
"projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
},
{
database-id: database-2,
kms-key-names:
"projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
},
]
Surveiller la progression du déplacement et de l'annulation d'une instance
Vous pouvez utiliser gcloud spanner operations describe ou créer un tableau de bord Cloud Monitoring personnalisé pour surveiller la progression du déplacement d'une instance.
Afficher la progression du déplacement et de l'annulation
Pour suivre la progression d'une opération de déplacement ou d'annulation de déplacement d'instance, utilisez la gcloud spanner operations describe
commande. Cette commande nécessite l'ID d'opération de l'opération de déplacement d'instance en cours.
Obtenez l'ID d'opération de votre opération de déplacement d'instance en exécutant la commande suivante :
gcloud spanner operations list --instance="INSTANCE_ID"Remplacez les éléments suivants :
- INSTANCE_ID : identifiant permanent de l'instance que vous souhaitez déplacer.
Le résultat affiche une liste des opérations de longue durée, y compris l'opération de déplacement de l'instance.
Exécutez la commande
gcloud spanner operations describepour afficher le pourcentage de progression et l'état :gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_IDRemplacez les éléments suivants :
- OPERATION_ID : ID d'opération de l'opération de déplacement d'instance que vous souhaitez vérifier.
- INSTANCE_ID : ID d'instance de l'instance que vous souhaitez vérifier.
Surveiller une opération de déplacement d'instance
Vous pouvez créer un tableau de bord Cloud Monitoring personnalisé pour afficher et surveiller les métriques pendant le déplacement de l'instance, une opération de longue durée avec des implications potentielles sur le service.
Les graphiques Stockage total et Stockage total de la base de données par base de données du tableau de bord sont utiles pour surveiller la progression du déplacement. Vous pouvez voir le stockage dans la configuration source diminuer progressivement tandis que le stockage dans la configuration de destination augmente.
Google Cloud Console
- Téléchargez le
move-instance-dashboard.jsonfichier. Ce fichier contient les informations nécessaires pour remplir un tableau de bord personnalisé dans Monitoring. -
Dans la Google Cloud console, accédez à la page Tableaux de bord :
Accéder à la page Tableaux de bord
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Sur la page Dashboards Overview (Aperçu des tableaux de bord), cliquez sur Create dashboard (Créer un tableau de bord).
- Dans la barre d'outils du tableau de bord, cliquez sur le menu déroulant Paramètres du tableau de bord. Sélectionnez ensuite JSON, puis Éditeur JSON.
- Dans le panneau Éditeur JSON, copiez le contenu du fichier
move-instance-dashboard.jsonque vous avez téléchargé et collez-le dans l'éditeur. - Pour appliquer vos modifications au tableau de bord, cliquez sur Appliquer les modifications. Si vous ne souhaitez pas utiliser ce tableau de bord, revenez à la page "Aperçu des tableaux de bord".
- Une fois le tableau de bord créé, cliquez sur Ajouter un filtre. Sélectionnez ensuite
project_idouinstance_idpour surveiller la progression du déplacement de votre instance.
Gcloud CLI
- Téléchargez le
move-instance-dashboard.jsonfichier. Ce fichier contient les informations nécessaires pour remplir un tableau de bord personnalisé dans Monitoring. Pour créer un tableau de bord dans un projet, utilisez la commande
gcloud monitoring dashboards create:gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.jsonPour en savoir plus, consultez la
gcloud monitoring dashboards createdocumentation de référence.
Annuler le déplacement d'une instance
Vous ne pouvez annuler qu'un déplacement d'instance qui est toujours en cours. Si vous souhaitez annuler un déplacement d'instance déjà terminé, vous devez en démarrer un autre.
Vous pouvez utiliser gcloud spanner operations cancel
pour annuler les opérations de déplacement d'instance. L'annulation n'est pas instantanée et prend à peu près le même temps que celui écoulé depuis le début du déplacement. En effet, les données doivent être déplacées vers la configuration d'instance source.
Cette commande nécessite l'ID d'opération de l'opération de déplacement d'instance en cours.
Obtenez l'ID d'opération en exécutant la commande suivante :
gcloud spanner operations list --type=INSTANCE --instance="INSTANCE_ID" --filter="done:False AND metadata.@type:MoveInstanceMetadata"Remplacez les éléments suivants :
- INSTANCE_ID : identifiant permanent de l'instance que vous souhaitez déplacer.
Le résultat affiche une liste des opérations de déplacement d'instance en cours.
Exécutez la commande
gcloud spanner operations cancelpour annuler le déplacement de l'instance :gcloud spanner operations cancel OPERATION_IDRemplacez les éléments suivants :
- OPERATION_ID : ID d'opération de l'opération de déplacement d'instance que vous souhaitez annuler.
Étape suivante
- En savoir plus sur les configurations régionales, birégionales et multirégionales de Spanner .
- Obtenez plus d'informations sur les Google Cloud régions et les zones.