Ce document explique comment suspendre ou réactiver des instances Compute Engine. Pour en savoir plus sur la suspension, l'arrêt ou la réinitialisation des instances, consultez Suspendre, arrêter ou réinitialiser des instances Compute Engine.
Si vous souhaitez conserver votre instance Compute Engine, mais que vous ne voulez pas qu'elle vous soit facturée lorsqu'elle n'est pas utilisée, vous pouvez la suspendre. La suspension d'une instance permet de la conserver et de migrer le contenu de sa mémoire vers le stockage. Une fois l'instance réactivée, Compute Engine migre la mémoire de l'instance de l'espace de stockage vers l'instance, et l'instance recommence à s'exécuter.
La suspension d'une instance Compute Engine est utile dans les cas suivants :
Environnements de développement et de test qui ne sont pas entièrement utilisés pendant les périodes creuses, comme le soir ou le week-end, et que vous souhaitez conserver pour économiser des coûts ou pour une initialisation plus rapide que la création de nouvelles instances.
Pour les applications qui nécessitent une longue période d'initialisation après le démarrage de l'instance, mais avant que l'application soit prête à traiter sa première requête, telles que des postes de travail de développeur virtuel ou des applications Java complexes.
Limites
Lorsque vous suspendez une instance de calcul, les limites suivantes s'appliquent :
Vous ne pouvez suspendre une instance que si l'OS invité le permet. Pour en savoir plus, consultez la page Détails des systèmes d'exploitation.
Vous ne pouvez suspendre une instance qui utilise les images d'OS suivantes que si vous configurez son OS, comme décrit dans ce document :
Debian 8 ou 9
N'importe quel OS Windows
Vous ne pouvez suspendre une instance que pendant 60 jours maximum avant que Compute Engine ne fasse automatiquement passer son état à
TERMINATED.Vous pouvez suspendre des VM Spot ou des instances préemptives. Toutefois, si Compute Engine préempte l'instance avant la fin de l'opération de suspension, il met fin à l'opération de suspension et préempte l'instance.
Vous ne pouvez pas suspendre des instances à l'aide des processus standards intégrés à leur environnement invité. Les commandes telles que
systemctl suspenddans Ubuntu 16.04 ou version ultérieure ne sont pas acceptées. Si elle est appelée, Compute Engine ignore le signal en mode invité.Vous ne pouvez pas suspendre les types d'instances suivants :
Instances Bare Metal
Confidential VMs.
Instances auxquelles des GPU ou des TPU sont associés.
Instances disposant de plus de 208 Go de mémoire.
Instances auxquelles des disques protégés par CSEK (obsolètes) sont associés.
Avant de commencer
- Vérifiez que votre projet dispose d'un quota
Persistent disk standard (GB)suffisant dans la région où se trouve l'instance. Lorsque vous suspendez une instance, Compute Engine stocke la mémoire de l'instance dans un espace de stockage persistant, ce qui consomme le quotaPersistent disk standard (GB). Cette exigence s'applique à toutes les instances, y compris celles qui n'ont que des volumes Google Cloud Hyperdisk associés. Pour en savoir plus, consultez Quotas de disque et Résoudre les problèmes liés à un quota de disque insuffisant. -
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud , vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
- Définissez une région et une zone par défaut.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour utiliser les exemples Node.js de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour utiliser les exemples PHP de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez les Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .
Rôles requis
Pour obtenir les autorisations nécessaires pour suspendre ou reprendre une instance de calcul, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur l'instance.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour suspendre ou reprendre une instance de calcul. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour suspendre ou réactiver une instance de calcul :
-
Pour suspendre une instance :
compute.instances.suspend -
Pour réactiver une instance :
compute.instances.resume
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Activer les opérations de suspension sur un OS invité
Si votre instance de calcul utilise Debian 8 ou 9 comme OS invité, ou un OS Windows, vous devez configurer l'OS avant de pouvoir suspendre et reprendre des instances. Si votre instance utilise un autre OS invité, ignorez cette section.
Activer les opérations de suspension sur Debian 8 ou 9
Avant de pouvoir suspendre ou reprendre des instances de calcul qui utilisent Debian 8 ou 9 comme OS invité, vous devez configurer l'OS invité à l'aide de l'une des méthodes suivantes :
Configurer l'ACPID
Pour activer l'opération de suspension et de reprise dans Debian 8 ou 9, vous pouvez configurer le démon ACPID (Advanced Configuration and Power Interface events Daemon) pour gérer l'événement du bouton de veille. Après avoir activé l'événement du bouton de veille prolongée, vous pouvez ajouter un script shell pour gérer l'événement de mise en veille, comme décrit dans cette section.
Pour configurer ACPID afin de prendre en charge les opérations de suspension et de réactivation, procédez comme suit :
Si ce n'est pas déjà fait, connectez-vous à votre instance Linux.
Créez le dossier
eventsdans le dossieracpi:sudo mkdir -p /etc/acpi/events/Configurez l'ACPID pour gérer l'événement du bouton de mise en veille :
cat <<EOF | sudo tee /etc/acpi/events/sleepbtn-acpi-support event=button[ /]sleep action=/etc/acpi/sleepbtn-acpi-support.sh EOFCréez le script de gestion des événements de mise en veille :
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOFConfigurez les autorisations pour le script :
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.shPour que les modifications soient appliquées, redémarrez ACPID :
sudo systemctl restart acpid.service
Installer D-Bus
Pour activer l'opération de suspension et de réactivation dans Debian 8 ou 9, vous pouvez installer D-Bus.
Pour installer D-Bus dans l'OS invité de votre instance de calcul lorsque l'OS utilise Debian 8 ou 9 :
Si ce n'est pas déjà fait, connectez-vous à votre instance Linux.
Installez D-Bus :
sudo apt-get install dbusPour que les modifications soient appliquées, redémarrez
logind:sudo systemctl restart systemd-logind.service
Activer les opérations de suspension sur Windows
Pour suspendre une instance qui utilise un OS invité Windows, vous devez désactiver la mise en veille prolongée dans l'OS. Si vous avez importé une image Windows, la mise en veille prolongée peut être activée par défaut. Vous devez la désactiver pour suspendre l'instance.
Pour désactiver la mise en veille prolongée sous Windows, procédez comme suit :
Si ce n'est pas déjà fait, connectez-vous à votre instance Windows.
Ouvrez PowerShell en tant qu'administrateur.
Désactiver l'hibernation :
powercfg -h offVérifiez que l'hibernation est désactivée :
powercfg -a
Suspendre une instance
Si l'OS invité de votre instance de calcul utilise Debian 8 ou 9, vous devez configurer l'OS invité pour qu'il prenne en charge les opérations de suspension et de reprise, comme décrit dans ce document, avant de suspendre l'instance.
Pour suspendre une instance, utilisez l'une des méthodes suivantes selon que des disques SSD locaux sont associés ou non à l'instance :
Si votre instance n'est associée à aucun disque SSD local, consultez Suspendre une instance sans disque SSD local.
Si des disques SSD locaux sont associés à votre instance et que vous souhaitez supprimer ou conserver (aperçu) les données des disques SSD locaux, consultez Suspendre une instance avec des disques SSD locaux.
Suspendre une instance sans disques SSD locaux
Vous pouvez suspendre plusieurs instances de calcul simultanément ou des instances individuelles. Pour plusieurs instances, utilisez la console Google Cloud ou, pour les instances situées dans la même zone, Google Cloud CLI. Pour les instances individuelles, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Instances de VM.
Sélectionnez une ou plusieurs instances à suspendre.
Cliquez sur Suspendre, puis sur Suspendre pour confirmer.
gcloud
Pour suspendre une ou plusieurs instances dans une même zone, utilisez la commande gcloud compute instances suspend :
gcloud compute instances suspend INSTANCE_NAMES \
--zone=ZONE
Remplacez les éléments suivants :
INSTANCE_NAMES: liste de noms d'instances séparés par des espaces (par exemple,instance-01 instance-02 instance-03).ZONE: zone où se trouvent les instances.
Go
Java
Node.js
PHP
Python
REST
Pour suspendre une instance, envoyez une requête POST à la méthode instances.suspend :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dans lequel se trouve l'instanceZONE: zone où se trouve l'instanceINSTANCE_NAME: nom de l'instance.
Suspendre une instance avec des disques SSD locaux
En fonction du nombre d'instances de calcul que vous souhaitez suspendre simultanément et de la nécessité de conserver les données de leurs disques SSD locaux associés, procédez comme suit :
Pour conserver les données des disques SSD locaux associés à une instance (à l'exclusion des instances avec des disques SSD Titanium), suspendez l'instance à l'aide de la gcloud CLI ou de l'API REST.
Pour suspendre plusieurs instances simultanément, utilisez la console Google Cloud , ou la gcloud CLI pour les instances situées dans la même zone.
Pour suspendre une ou plusieurs instances auxquelles sont associés des disques SSD locaux, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Instances de VM.
Sélectionnez une ou plusieurs instances à suspendre.
Cliquez sur Suspendre, puis sur Suspendre pour confirmer.
gcloud
Lorsque vous suspendez une ou plusieurs instances dans une même zone auxquelles des disques SSD locaux sont associés, spécifiez si vous souhaitez supprimer ou conserver les données des disques SSD locaux comme suit :
Pour supprimer les données de SSD locaux, utilisez la commande
gcloud compute instances suspendavec l'option--discard-local-ssd=true:gcloud compute instances suspend INSTANCE_NAMES \ --discard-local-ssd=true \ --zone=ZONEPour conserver les données des SSD locaux, utilisez la commande
gcloud beta compute instances suspendavec l'option--discard-local-ssd=false:gcloud beta compute instances suspend INSTANCE_NAMES \ --discard-local-ssd=false \ --zone=ZONE
Remplacez les éléments suivants :
INSTANCE_NAMES: liste de noms d'instances séparés par des espaces (par exemple,instance-01 instance-02 instance-03).ZONE: zone où se trouvent les instances.
REST
Lorsque vous suspendez une instance à laquelle des disques SSD locaux sont associés, spécifiez si vous souhaitez supprimer ou conserver les données des disques SSD locaux comme suit :
Pour supprimer les données des disques SSD locaux, envoyez une requête
POSTà la méthodeinstances.suspend. Dans l'URL de la requête, incluez le paramètre de requêtediscardLocalSsddéfini surtrue:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend?discardLocalSsd=truePour conserver les données des disques SSD locaux, envoyez une requête
POSTà la méthodebeta.instances.suspend. Dans l'URL de la requête, incluez le paramètre de requêtediscardLocalSsddéfini surfalse:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/suspend?discardLocalSsd=false
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dans lequel se trouve l'instanceZONE: zone où se trouve l'instanceINSTANCE_NAME: nom de l'instance.
Réactiver une instance suspendue
Avant de réactiver une instance de calcul suspendue, tenez compte des points suivants :
Vous ne pouvez réactiver une instance que si la capacité est suffisante dans la zone où se trouve l'instance. En général, cela ne pose pas de problème. Si vous rencontrez des difficultés pour reprendre une instance, réessayez plus tard.
Si vous avez associé des disques SSD locaux à l'instance et que vous avez choisi de conserver les données des disques SSD locaux lorsque vous l'avez suspendue, vous devrez peut-être remonter les disques SSD locaux après l'avoir réactivée. Pour en savoir plus, découvrez comment réinstaller des disques non amorçables sur des instances Linux ou des instances Windows.
Vous pouvez réactiver plusieurs instances simultanément ou réactiver des instances individuelles. Pour plusieurs instances, utilisez la console Google Cloud ou, pour les instances situées dans la même zone, la gcloud CLI. Pour les instances individuelles, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Instances de VM.
Sélectionnez une ou plusieurs instances suspendues à réactiver.
Cliquez sur Démarrer / Réactiver, puis sur Démarrer.
gcloud
Pour réactiver une ou plusieurs instances suspendues dans une même zone, utilisez la commande gcloud compute instances resume :
gcloud compute instances resume INSTANCE_NAMES \
--zone=ZONE
Remplacez les éléments suivants :
INSTANCE_NAMES: liste de noms d'instances séparés par des espaces (par exemple,instance-01 instance-02 instance-03).ZONE: zone où se trouvent les instances suspendues.
Go
Java
Node.js
PHP
Python
REST
Pour réactiver une instance suspendue, envoyez une requête POST à la méthode instances.resume :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/resume
Remplacez les éléments suivants :
INSTANCE_NAME: nom de l'instance suspendue à réactiver.PROJECT_ID: ID du projet dans lequel se trouve l'instance suspendue.ZONE: zone où se trouve l'instance suspendue.