Arrêter et démarrer une instance

Cette page explique comment arrêter et démarrer une instance de machine virtuelle (VM). Pour en savoir plus sur l'arrêt d'une instance, consultez la page Cycle de vie des instances.

Vous pouvez arrêter temporairement une instance si vous n'en avez plus besoin, puis la redémarrer ultérieurement. Une instance arrêtée conserve ses disques persistants, ses adresses IP internes et ses adresses MAC. Cependant, elle arrête le système d'exploitation invité et perd l'état de l'application. En fait, une instance arrêtée revient à son état de mise sous tension et aucune donnée n'est enregistrée. Arrêtez une instance si vous souhaitez modifier le type de machine, ajouter ou supprimer des disques associés, modifier la configuration minimale de la plate-forme du processeur, ajouter ou supprimer des GPU, ou appliquer des recommandations de dimensionnement.

Lorsque vous arrêtez une instance, Compute Engine lui envoie le signal ACPI de mise hors tension. Les systèmes d'exploitation invités modernes sont configurés de manière à effectuer un arrêt normal avant de s'éteindre en réponse au signal de mise hors tension. Compute Engine attend donc un court instant jusqu'à l'arrêt complet de l'invité, puis transpose l'instance à l'état TERMINATED.

Une instance arrêtée n'entraîne pas de frais, mais toutes les ressources associées à l'instance continueront d'être facturées. Par exemple, vous serez toujours facturé pour les disques persistants et les adresses IP externes conformément à la grille tarifaire, même si une instance est arrêtée. Pour ne plus être facturé pour les ressources associées, vous pouvez reconfigurer une instance arrêtée pour qu'elle ne les utilise plus, puis les supprimer.

Avant de commencer

Restrictions

Vous ne pouvez pas arrêter une instance à laquelle un disque SSD local est associé. Compute Engine ne vous empêchera pas d'arrêter une instance depuis le système d'exploitation invité si cette instance est associée à un disque SSD local. Redoublez donc de vigilance.

Disques SSD locaux

Vous ne pouvez pas arrêter une instance associée à un disque SSD local. Vous devez migrer vos données critiques du disque SSD local vers un disque persistant ou vers une autre instance avant de supprimer complètement l'instance. Compute Engine ne vous empêchera pas d'arrêter le système d'exploitation invité sur une instance associée à un disque SSD local. Redoublez donc de vigilance si vous fermez les systèmes d'exploitation invités de vos instances.

Facturation

Google ne facture pas les ressources de VM une fois que leur état VM est TERMINATED.

Plus précisément, quand une VM est à l'état RUNNING et qu'elle est en cours d'arrêt (mais qu'elle n'est pas encore à l'état TERMINATED), Google facture l'utilisation des disques SSD locaux, des GPU, de la mémoire et des processeurs virtuels. Une fois qu'une VM est passée de l'état STOPPING à l'état TERMINATED, Google arrête de facturer les ressources susmentionnées.

Notez bien que toutes les autres ressources encore associées à une VM à l'état TERMINATED entraîneront des frais, telles que des disques persistants, des adresses IP externes statiques, etc.

Pour en savoir plus sur les états des instances, lisez la documentation relative au cycle de vie des instances.

Arrêter une instance

Pour arrêter une instance, utilisez la console Google Cloud Platform, l'outil gcloud ou l'API.

Console

  1. Accédez à la page "Instances de VM" de la console GCP.

    Accéder à la page "Instances de VM"

  2. Sélectionnez une ou plusieurs instances que vous souhaitez arrêter.
  3. En haut de la page Instances de VM, cliquez sur Arrêter.

gcloud

Utilisez la commande instances stop et spécifiez une ou plusieurs instances que vous souhaitez arrêter.

gcloud compute instances stop example-instance-1 example-instance-2

API

Dans l'API, créez une requête POST pour arrêter une instance.

POST https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/stop

Une instance à l'état TERMINATED existe toujours avec ses paramètres de configuration et ses métadonnées d'instance, mais elle perd ses données en mémoire et son état de machine virtuelle. Toutes les ressources encore associées à l'instance terminée le resteront jusqu'à ce que vous dissociiez manuellement ces ressources ou supprimiez l'instance.

Une fois que l'instance est à l'état TERMINATED, vous pouvez redémarrer l'instance ou la supprimer. Vous pouvez également laisser une instance à l'état TERMINATED indéfiniment. Toutefois, si vous ne prévoyez pas de redémarrer l'instance, envisagez plutôt de la supprimer.

Arrêter une instance via le système d'exploitation

Vous pouvez éventuellement arrêter une instance via le système d'exploitation invité.

Linux

Utilisez les commandes sudo shutdown -h now ou sudo poweroff. Pour cela, exécutez l'une des commandes suivantes lorsque vous êtes connecté à la machine virtuelle :

me@example-instance:~$ sudo shutdown -h now
me@example-instance:~$ sudo poweroff

Windows

Vous pouvez redémarrer une instance Windows d'une manière semblable à la méthode sudo reboot ci-dessus, à l'aide du menu Démarrer. Dans le menu Démarrer, cliquez sur la flèche située à côté du bouton Déconnexion, puis sur Redémarrer.

Démarrer une instance arrêtée

Pour démarrer une instance arrêtée, utilisez la méthode instances().start. Celle-ci démarre une instance de machine virtuelle arrêtée dont l'état actuel est TERMINATED.

La méthode start redémarre une instance ayant l'état TERMINATED, alors que des méthodes telles que reset() et sudo reboot ne fonctionnent que sur les instances en cours d'exécution. La plupart des instances peuvent être redémarrées, tant qu'elles sont à l'état TERMINATED. Les instances auxquelles des disques SSD locaux sont associés font toutefois exception à la règle.

Console

  1. Accédez à la page "Instances de VM" de la console Google Cloud Platform.

    Accéder à la page "Instances de VM"

  2. Sélectionnez les instances que vous souhaitez redémarrer.
  3. Dans l'angle supérieur droit de la page, cliquez sur le bouton Démarrer pour redémarrer les instances.

gcloud

Pour réinitialiser votre instance à l'aide de gcloud compute :

gcloud compute instances start example-instance

API

Dans l'API, effectuez une requête POST sur l'URI suivant, en remplaçant le nom du projet, de la zone et de l'instance selon vos besoins :

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/start

Pour redémarrer votre instance à l'aide des bibliothèques clientes, créez une requête dans la méthode instances().start :

def restartInstance(auth_http, gce_service):
  request = gce_service.instances().start(project="myproject", zone="us-central1-a", instance="example-instance")
  response = request.execute(auth_http)

  print response

Pour en savoir plus sur cette méthode, consultez la documentation de référence de instances().start.

Redémarrer une instance associée à des disques chiffrés

Si l'instance que vous souhaitez redémarrer utilise des clés de chiffrement fournies par le client, vous devez les indiquer lorsque vous essayez de redémarrer cette instance.

Console

  1. Accédez à la page "Instances de VM".

    Accéder à la page Instances de VM

  2. Cliquez sur le nom de l'instance que vous souhaitez démarrer. La page "Détails de l'instance" s'ouvre.
  3. Cliquez sur le bouton Démarrer. Une fenêtre s'ouvre dans laquelle vous pouvez spécifier des clés de chiffrement pour les périphériques associés à cette instance.
  4. Spécifiez la clé de chiffrement de chaque disque chiffré associé à cette instance.
  5. Cliquez sur Démarrer pour démarrer l'instance.

gcloud

Au démarrage de l'instance, saisissez le nom du disque et la clé à l'aide de l'indicateur --csek-key-file. Si vous utilisez une clé encapsulée en RSA, utilisez le composant gcloud beta :

gcloud compute instances start [INSTANCE_NAME] \
  --csek-key-file [ENCRYPTION_KEY]

où :

  • [INSTANCE_NAME] est le nom de l'instance.
  • [ENCRYPTION_KEY] est la clé de chiffrement que vous utilisez pour chiffrer les disques persistants associés à l'instance.

API

Dans l'API, créez une requête POST pour démarrer l'instance à l'aide d'une clé de chiffrement. Si vous utilisez une clé encapsulée en RSA, envoyez la requête à l'API bêta, et non à l'API v1.

POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/startWithEncryptionKey
{
  "instanceEncryptionKey": {
    "rsaEncryptedKey": "[ENCRYPTION_KEY]"
  },
  "disk": [
    {
       "source": "[DISK_NAME]",
       "diskEncryptionKey": {
         "rsaEncryptedKey": "[ENCRYPTION_KEY]"
       }
    }
  ]
}

où :

  • [INSTANCE_NAME] est le nom de l'instance.
  • [PROJECT_ID] est l'ID de votre projet.
  • [ZONE] est la zone de cette instance.
  • [MACHINE_TYPE] est le type de machine de l'instance.
  • [DISK_NAME] est le disque associé qui est chiffré avec une clé de chiffrement fournie par le client.
  • [ENCRYPTION_KEY] est la clé de chiffrement que vous utilisez pour chiffrer les disques persistants associés à l'instance.

Réinitialiser une instance

La réinitialisation de votre instance revient à effectuer une réinitialisation matérielle sur votre ordinateur, en appuyant sur un bouton de réinitialisation ou en maintenant enfoncé le bouton Marche/Arrêt. La réinitialisation forcée d'une instance efface le contenu de la mémoire de la machine et rétablit l'état initial de la machine virtuelle. L'instance ne procède pas à un arrêt normal du système d'exploitation invité. Tout au long de ce processus, l'instance reste à l'état RUNNING.

Lorsque vous réinitialisez une instance, aucune de ses propriétés ne change. L'instance conserve son adresse IP éphémère, son disque persistant, son type de machine, etc. Cependant, toutes les données stockées en mémoire seront réinitialisées sauf si vous les sauvegardez.

Pour effectuer une réinitialisation sur une instance en cours d'exécution, appuyez sur le bouton Réinitialiser de la console GCP, exécutez la commande instances reset dans gcloud ou effectuez une requête POST dans l'API.

Console

  1. Accédez à la page "Instances de VM" de la console Google Cloud Platform.

    Accéder à la page "Instances de VM"

  2. Cochez les cases correspondant à une ou plusieurs instances que vous souhaitez réinitialiser.
  3. Dans l'angle supérieur droit de la page, cliquez sur le bouton Réinitialiser pour réinitialiser les instances.

gcloud

Pour réinitialiser votre instance à l'aide de gcloud compute :

gcloud compute instances reset example-instance

API

Dans l'API, effectuez une requête POST sur l'URI suivant, en remplaçant le nom du projet, de la zone et de l'instance selon vos besoins :

https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/reset

Pour réinitialiser votre instance à l'aide des bibliothèques clientes, créez une demande dans la méthode instances().reset :

def resetInstance(auth_http, gce_service):
  request = gce_service.instances().reset(project="myproject", zone="us-central1-a", instance="example-instance")
  response = request.execute(auth_http)

  print response

Pour en savoir plus sur cette méthode, consultez la documentation de référence de instances().reset.

Après l'exécution de la commande reset, l'opération de zone suivante sera renvoyée avec l'état DONE une fois que l'instance aura été complètement arrêtée et que son redémarrage aura débuté.

Utiliser d'autres méthodes de redémarrage

Vous pouvez également réinitialiser votre instance à l'aide des méthodes suivantes :

  • sudo reboot (Linux uniquement) - Appelée à partir de l'instance. Cette méthode efface la mémoire et réinitialise l'instance avec les métadonnées, l'image et les disques persistants d'origine. Elle ne récupère pas les versions mises à jour de l'image, et l'instance conserve la même adresse IP éphémère. Cette méthode revient à redémarrer votre ordinateur.
  • gcloud compute instances delete suivie de gcloud compute instances create. Il s'agit d'un redémarrage totalement destructif qui initialise l'instance avec toutes les informations transmises dans gcloud compute instances create. Vous pouvez ensuite sélectionner de nouvelles images ou d'autres ressources que vous souhaitez utiliser. Il se peut que l'instance redémarrée ait une adresse IP différente. Cette méthode peut échanger la machine physique hébergeant l'instance.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine