Arrêter et démarrer une instance

Cette page explique comment arrêter et démarrer une instance de machine virtuelle (VM). Pour accéder au tableau comparant les différences entre l'arrêt, la réinitialisation et la suppression 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, ses adresses IP externes statiques 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 transitionne 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 la VM est à l'état 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 associées à une VM à l'état TERMINATED, telles que les disques persistants et les adresses IP externes statiques, continuent d'entraîner des frais.

Pour en savoir plus sur les états des instances, consultez la documentation Cycle de vie des instances.

Arrêter une instance

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

Console

  1. Accédez à la page Instances de VM dans Google Cloud Console.

    Accéder à la page Instances de VM

  2. Sélectionnez une ou plusieurs instances que vous souhaitez arrêter.
  3. 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://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/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 :

sudo shutdown -h now
sudo poweroff

Windows

Pour arrêter une instance de VM basée sur le système d'exploitation Windows, ouvrez le menu Démarrer, cliquez sur la flèche située à côté du bouton Déconnexion, puis cliquez sur Arrêter.

Démarrer une instance arrêtée

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

La méthode start redémarre une instance dont l'état est TERMINATED, alors que les 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 à cette règle.

Console

  1. Accédez à la page Instances de VM dans Google Cloud Console.

    Accéder à la page Instances de VM

  2. Sélectionnez les instances que vous souhaitez redémarrer.
  3. Cliquez sur le bouton Démarrer.

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 par les valeurs correspondantes :

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/instances/example-instance/start

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

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

      print response

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

Démarrer une instance arrêtée contenant 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 dans Google Cloud Console.

    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 Démarrer. Une fenêtre s'ouvre pour vous permettre de 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

Remplacez l'élément suivant :

  • instance-name : nom de l'instance.
  • encryption-key : clé de chiffrement que vous utilisez pour chiffrer les disques persistants associés à l'instance.

API

Dans l'API, envoyez 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://compute.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"
       }
    }
  ]
}

Remplacez l'élément suivant :

  • project-id : ID de votre projet.
  • zone : zone de l'instance.
  • instance-name : nom de l'instance.
  • encryption-key : clé de chiffrement que vous utilisez pour chiffrer les disques persistants associés à l'instance.
  • disk-name : disque associé qui est chiffré avec une clé de chiffrement fournie par le client.

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 les propriétés telles que son adresse IP éphémère, son adresse IP externe statique, son disque persistant et son type de machine. Cependant, toutes les données stockées en mémoire sont réinitialisées. Pour conserver les données stockées en mémoire, vous devez les sauvegarder.

Pour effectuer une réinitialisation sur une instance en cours d'exécution, sélectionnez le bouton Réinitialiser dans Cloud Console, 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 dans Google Cloud Console.

    Accéder à la page Instances de VM

  2. Cochez les cases correspondant à une ou plusieurs instances que vous souhaitez réinitialiser.
  3. 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 par les valeurs correspondantes :

POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/zone/instances/example-instance/reset

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

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

  print response

Pour plus d'informations 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 est renvoyée avec l'état DONE une fois que l'instance a été complètement arrêtée et que son redémarrage a débuté.

Utiliser d'autres méthodes de redémarrage

Vous pouvez également réinitialiser votre instance à l'aide des commandes 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. La commande sudo reboot 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