Cette page décrit comment déplacer une instance dans Spanner.
Vous pouvez déplacer votre instance Spanner depuis n'importe quelle configuration d'instance vers une autre, 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 un réplica 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 nouvelle 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-uns des avantages de déplacer votre instance:
- Augmenter la disponibilité: obtenez une disponibilité de 99,999% sans temps d'arrêt après avoir effectué un transfert de région vers une région duale ou multirégionale.
- Réduire la latence: réduisez la latence et augmentez la couverture géographique grâce à des réplicas en lecture seule supplémentaires en effectuant un transfert de données d'un emplacement régional vers un emplacement birégional ou multirégional, ou d'un emplacement multirégional vers un emplacement multirégional.
- Réduire les coûts: réduisez les coûts horaires en passant d'une configuration bi-régionale ou multirégionale à une configuration régionale.
- Cohéberger la base de données: cohébergez 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 des instances source et de destination sont soumises à des frais de calcul et de stockage horaires. Une fois le transfert terminé, vous êtes facturé pour l'espace de 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 serez peut-être soumis à des frais de transfert de données sortants. Pour en savoir plus, consultez la page Tarifs de 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 comptes Google Cloud .
- Vous ne pouvez pas déplacer une instance qui utilise l'édition standard directement 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.
- Vous ne pouvez pas déplacer une instance Spanner en essai gratuit. Vous pouvez déplacer l'instance après avoir passé à une instance payante.
- 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 affecte toutes les requêtes qui utilisent le point de terminaison régional, car l'application des règles régionales 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 la section Sauvegardes.
- Les API suivantes sont désactivées lors d'un transfert d'instance :
InstanceAdmin.DeleteInstance
InstanceAdmin.UpdateInstance
DatabaseAdmin.CreateDatabase
DatabaseAdmin.UpdateDatabaseDdl
(Désactivé sidefault_leader
est spécifié dans la requête.)DatabaseAdmin.RestoreDatabase
DatabaseAdmin.CreateBackup
DatabaseAdmin.CreateBackupSchedule
DatabaseAdmin.CopyBackup
- Vous ne pouvez pas déplacer d'instances contenant des bases de données compatibles CMEK.
- Si une base de données comporte un leader par défaut modifié, la sélection est conservée si elle nomme une région en lecture/écriture dans la configuration de l'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.
- Déplacer une instance modifie l'attribut de configuration de votre instance. Si vous gérez vos ressources Spanner via l'automatisation, assurez-vous de préparer et de résoudre les incohérences qui peuvent 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-approve
pour synchroniser vos ressources, toutes les instances et ressources enfants sont supprimées lorsque nous déplaçons l'instance. Modifiez la configuration en conséquence pour éviter la suppression et la perte de données. Pour en savoir plus sur la commandeapply
, consultez la section 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 transfert de l'instance, les métriques et graphiques de surveillance Spanner peuvent afficher des données à la fois dans les configurations d'instance source et de destination, ou ne refléter que les performances d'une seule configuration d'instance.
- Si vous avez configuré l'outil Open Source Autoscaler, vous n'avez pas besoin de le désactiver. L'opération é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é 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 réactiver l'autoscaler géré.
De plus, si vous utilisez l'autoscaling, vous devez provisionner suffisamment de nœuds pour la pointe d'utilisation du processeur conformément aux recommandations maximales indiquées, puis désactiver l'autoscaling avant de déplacer l'instance.
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 transfert peut atteindre 100 %, car le transfert d'instance est effectué à l'aide d'un processeur de réserve provisionné par l'utilisateur. Toutefois, le déplacement d'une instance n'entraîne aucun temps d'arrêt. Le temps nécessaire pour déplacer une instance dépend de divers facteurs, y compris la taille des bases de données, le nombre de nœuds et le type de déplacement (par exemple, régional vers multirégional).
Après le déplacement d'une instance, ses performances varient en fonction des détails de sa configuration. Par exemple, les configurations à deux régions et les configurations 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 l'instance source ne sont pas automatiquement déplacées vers la nouvelle configuration de destination. Le transfert d'instance est interrompu si des sauvegardes existent dans la configuration de l'instance source lorsque vous démarrez le transfert d'instance. Avant de déplacer votre instance, vous devez copier vos sauvegardes et réfléchir à votre plan de récupération de données.
Si vous devez conserver des sauvegardes dans votre instance source, nous vous recommandons de copier vos sauvegardes dans la configuration de l'instance de destination et dans une autre instance ayant la même configuration d'instance que l'instance source à déplacer. Voici pourquoi:
- Vous pouvez copier vos sauvegardes dans la configuration de l'instance de destination immédiatement après le déplacement de l'instance.
- Si vous devez annuler le transfert d'instance, vous pouvez également restaurer rapidement vos sauvegardes à partir de l'instance avec la même configuration que celle de l'instance source.
Après avoir copié vos sauvegardes sur une autre instance, vous devez supprimer toutes les sauvegardes existantes de l'instance source avant de pouvoir la déplacer. Ensuite, une fois le transfert d'instance terminé, vous disposez déjà d'une copie de la sauvegarde dans la configuration de destination. Vous pouvez également créer une sauvegarde.
Pour en savoir plus sur la copie de sauvegardes et les coûts associés, consultez Copier une sauvegarde.
Déplacer une instance
Vous pouvez déplacer une instance à l'aide de la console Cloud Shell Google Cloud et de gcloud CLI à l'aide de commandes gcloud
.
Prérequis
Avant de déplacer 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'autorisation IAM
spanner.instances.update
sur l'instance source. - 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 afin d'évaluer et de comprendre l'impact des performances sur les charges de travail lors d'un déplacement d'instance.
- Lorsque vous déplacez une instance Spanner, le processus de déplacement supprime les balises d'instance que vous avez créées dans Data Catalog. Pour conserver vos balises, vous devez les exporter avant le transfert et les importer après le transfert. Pour en savoir plus, consultez la section Exporter et importer des balises.
Suivez également les bonnes pratiques suivantes:
- Testez les charges de travail de performances dans des instances hors production dans la configuration de l'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 qu'il vous faudra pour déplacer votre instance de production.
- Vérifiez qu'il n'y a pas de hotspots 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 de l'instance de destination pour prendre en charge le pic d'utilisation prévu de l'instance. Pour en savoir plus, consultez la page 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 Tio.
- N'apportez aucune modification à l'instance pendant le transfert. 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, et la création ou la suppression de sauvegardes.
Si vous déplacez votre instance conformément à ces recommandations, le transfert est généralement terminé sous 24 heures. Toutefois, en fonction de la charge de travail de l'application, le temps d'exécution peut être plus ou moins long.
Déplacer une instance
Google Cloud console
Cliquez sur Activer Cloud Shell en haut de la console Google Cloud .
Une session Cloud Shell s'ouvre dans un nouveau cadre en bas de la console Google Cloud et affiche une invite de ligne de commande. L'initialisation de la session peut prendre quelques secondes.
Utilisez la commande
gcloud spanner instances move
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, multirégionale ou personnalisée (par exemple,
nam3
,us-central1
oucustom-nam3-us-west2
).
Par exemple, pour déplacer votre instance test-instance
de sa configuration actuelle vers nam3
, exécutez la commande suivante:
gcloud spanner instances move test-instance --target-config=nam3
Facultatif: Si vous souhaitez ajouter un réplica en lecture seule, us-west2
, à la configuration de l'instance de base nam3
, procédez comme suit:
Clonez la configuration de base et ajoutez l'instance répliquée en lecture seule:
gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
Déplacez votre instance
test-instance
de sa configuration actuelle vers cette nouvelle configuration d'instancecustom-nam3-us-west2
:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
CLI gcloud
Utilisez la commande gcloud spanner instances move
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
,us-central1
oucustom-nam3-us-west2
).
Par exemple, pour déplacer votre instance test-instance
de sa configuration actuelle vers nam3
, exécutez la commande suivante:
gcloud spanner instances move test-instance --target-config=nam3
Facultatif: Si vous souhaitez ajouter un réplica en lecture seule, us-west2
, à la configuration de l'instance de base nam3
, procédez comme suit:
Clonez la configuration de base et ajoutez l'instance répliquée en lecture seule:
gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
Déplacez votre instance
test-instance
de sa configuration actuelle vers cette nouvelle configuration d'instancecustom-nam3-us-west2
:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Surveiller l'avancement du transfert 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 d'un transfert d'instance.
Afficher la progression des opérations de déplacement et d'annulation
Pour suivre la progression d'une opération de déplacement ou d'annulation de déplacement d'instance, utilisez la commande gcloud spanner operations describe
. Cette commande nécessite l'ID d'opération de l'opération de déplacement d'instance en cours.
Pour obtenir l'ID de l'opération de déplacement d'instance, exécutez 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.
La sortie affiche une liste d'opérations de longue durée, y compris l'opération de déplacement d'instance.
Exécutez la commande
gcloud spanner operations describe
pour afficher le pourcentage de progression et l'état:gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_ID
Remplacez les éléments suivants :
- OPERATION_ID: ID de l'opération de déplacement d'instance que vous souhaitez vérifier.
- INSTANCE_ID: ID 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 transfert d'instance, une opération de longue durée pouvant avoir des conséquences 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 suivre la progression du transfert. Vous pouvez constater que l'espace de stockage de la configuration source diminue progressivement, tandis que celui de la configuration de destination augmente.
Google Cloud console
- Téléchargez le fichier
move-instance-dashboard.json
. Ce fichier contient les informations nécessaires pour renseigner un tableau de bord personnalisé dans Monitoring. -
Dans la console Google Cloud , 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 volet Éditeur JSON, copiez le contenu du fichier
move-instance-dashboard.json
que vous avez téléchargé, puis 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 "Présentation des tableaux de bord".
- Une fois le tableau de bord créé, cliquez sur Ajouter un filtre. Sélectionnez ensuite
project_id
ouinstance_id
pour surveiller la progression du transfert de votre instance.
CLI gcloud
- Téléchargez le fichier
move-instance-dashboard.json
. Ce fichier contient les informations nécessaires pour renseigner 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.json
Pour en savoir plus, consultez la documentation de référence sur
gcloud monitoring dashboards create
.
Annuler le déplacement d'une instance
Vous ne pouvez annuler le déplacement d'une instance que s'il est toujours en cours. Si vous souhaitez annuler un transfert d'instance déjà terminé, vous devez en lancer un nouveau.
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 le temps écoulé depuis le début du transfert. En effet, les données doivent être renvoyées vers la configuration de l'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 de l'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.
La sortie affiche une liste des opérations de déplacement d'instance en cours.
Exécutez la commande
gcloud spanner operations cancel
pour annuler le déplacement de l'instance:gcloud spanner operations cancel OPERATION_ID
Remplacez les éléments suivants :
- OPERATION_ID: ID 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
- En savoir plus sur les régions et zonesGoogle Cloud