À propos de la suspension et de l'arrêt de VM dans un MIG


Ce document décrit les actions de suspension et d'arrêt sur les instances de machine virtuelle (VM) d'un groupe d'instances géré. Il explique également comment la suspension et l'arrêt de VM dans un MIG peuvent vous aider à réduire les coûts et à réduire le temps d'attente lorsque vous avez besoin de plus de VM dans le groupe.

Les MIG vous permettent de suspendre et d'arrêter des VM pour atteindre les objectifs suivants :

  • Suspendez une application ou un service que vous n'utilisez pas pour réduire les coûts en ne payant pas les ressources de calcul.
  • Accélérez le scaling horizontal des MIG en démarrant les VM pré-initialisées à partir du pool de secours de VM arrêtées et suspendues.

Cas d'utilisation

Les sections suivantes décrivent les cas d'utilisation types du pool de secours dans un MIG.

Suspendre une application ou un service

Vous pouvez suspendre ou arrêter des VM dans un MIG pour mettre en pause votre application et la réactiver si nécessaire, en fonction de vos contraintes en termes de calcul, d'heures de travail, de pic d'activité et de budget. Vous pouvez conserver les résultats de vos calculs actuels sur des disques persistants ou, dans le cas de VM suspendues, en mémoire.

Par exemple, vous pouvez suspendre ou arrêter les VM d'un MIG dans les scénarios suivants :

  • Vous avez des charges de travail lourdes pendant les jours de la semaine et vous souhaitez suspendre vos VM les week-ends pour réduire les coûts.
  • Vous disposez d'un environnement de test nécessaire lors des modifications de mise en œuvre et vous souhaitez l'arrêter lorsque vous ne développez pas activement.

Accélérer le scaling horizontal des groupes d'instances gérés

Vous pouvez laisser un pool de secours de VM pré-initialisées prêt à démarrer lorsque le MIG est redimensionné. Au lieu de créer des VM et d'attendre que votre application s'initialise et qu'elle soit prête à être exécutée, le MIG démarre ou reprend les VM du pool de secours. Dans ce cas, l'initialisation de la VM est effectuée à l'avance, et non à un moment critique de l'augmentation de la charge.

Les pools de secours sont utiles pour les applications dont l'initialisation prend beaucoup de temps, par exemple dans les scénarios suivants :

  • les applications qui ont besoin de télécharger du contenu à jour sur des disques persistants.
  • les applications qui doivent mettre en cache du contenu supplémentaire en mémoire, via des téléchargements à partir d'un espace de stockage externe, de calculs locaux ou d'une combinaison des deux.
  • les applications qui doivent installer de nouveaux logiciels lors de l'initialisation, tels que les nœuds Kubernetes.

Ressources conservées

Le tableau suivant présente les ressources conservées lorsque vous suspendez et arrêtez des VM dans un MIG.

Conservés VM suspendue VM arrêtée
Nom de la VM
Adresse IP interne
Adresse IP externe (éphémère)
Adresse IP externe (statique*)
Disques
Métadonnées
Mémoire

*Si vous souhaitez conserver une adresse IP externe lorsque vous arrêtez ou suspendez une VM dans un MIG, utilisez la configuration du MIG avec état pour convertir l'adresse IP externe en adresse IP statique.

Comportement et configuration

Le pool de secours est constitué de pools de VM arrêtés et suspendus. Toutes les VM arrêtées font partie du pool arrêté, et toutes les VM suspendues font partie du pool suspendu. Si vous avez configuré l'autoscaling dans un MIG, après la suspension ou l'arrêt d'une VM, celui-ci crée immédiatement des VM pour maintenir la taille recommandée du MIG.

Tailles cibles des pools suspendus et arrêtés

Comme c'est le cas du MIG, les pools arrêtés et suspendus possèdent eux aussi leur propre taille cible. Vous pouvez contrôler la taille cible du pool de secours de différentes manières :

  • En configurant les valeurs des tailles cibles arrêtées et suspendues.
  • En arrêtant et en suspendant manuellement les VM, ce qui modifie automatiquement les tailles cibles.

Lorsque vous modifiez les tailles cibles des pools arrêtés ou suspendus, le MIG se comporte comme suit :

  • Lorsque vous augmentez la taille des pools suspendus ou arrêtés, le MIG crée des VM, attend que les VM soient initialisées, puis les suspend ou les arrête en conséquence. Pour les MIG régionaux, les VM sont créées conformément à la forme de distribution cible configurée.
  • Lorsque vous réduisez la taille des pools suspendus ou arrêtés, le MIG sélectionne de manière arbitraire les VM suspendues ou arrêtées à supprimer.
  • Lorsque vous modifiez la taille cible du MIG et la taille du pool suspendu ou arrêté simultanément, le MIG tente de réduire le nombre d'opérations requises pour appliquer vos modifications. Cela signifie que le MIG peut réactiver ou démarrer les VM du pool de secours, ou suspendre ou arrêter certaines VM en cours d'exécution.

Règle de secours

La règle de secours définit le comportement du pool de secours en fonction des paramètres suivants que vous spécifiez :

  • Mode : mode dans lequel le MIG utilise des VM suspendues et arrêtées. Il peut s'agir du mode manual ou scale-out-pool.
  • Délai initial : durée pendant laquelle le MIG exécute une VM nouvellement créée avant de la suspendre ou de l'arrêter. Configurez le délai initial pour laisser suffisamment de temps à votre application pour se préinitialiser et être prête à s'exécuter au démarrage ou à la reprise de la VM.

Mode

Vous pouvez choisir comment gérer les pools de secours en définissant le mode d'opération. Il existe deux options : le mode manual et le mode scale-out-pool.

Mode manuel (par défaut)

En mode manuel, vous contrôlez entièrement les VM arrêtées et suspendues dans le MIG. Le mode manuel est le mode par défaut du pool de secours.

Le mode manuel est utile dans les cas suivants :

  • Pour suspendre votre charge de travail et réduire les coûts des VM en cours d'exécution.
  • Pour intégrer le MIG à des autoscalers tiers nécessitant une gestion avancée de VM individuelles.
  • Pour arrêter les VM sélectionnées à des fins de débogage.

En mode manuel, le MIG n'applique aucune automatisation au pool de secours :

  • Lorsque vous ou l'autoscaler augmentez la taille cible du MIG, celui-ci ne démarre pas ou ne redémarre pas automatiquement les VM, mais en crée de nouvelles.
  • Lorsque vous ou l'autoscaler diminuez la taille cible du MIG, celui-ci n'arrête pas et ne suspend pas automatiquement les VM en cours d'exécution, mais les supprime.

Mode "pool de scaling horizontal"

En mode "pool de scaling horizontal", le MIG utilise les VM des pools de secours pour accélérer le scaling en les rétablissant ou en les démarrant. Ensuite, le MIG réapprovisionne automatiquement le pool de secours avec de nouvelles VM afin de conserver les tailles cibles.

Le mode "pool de scaling horizontal" est utile pour accélérer le scaling horizontal du groupe d'instances géré dans les cas suivants :

  • Vous utilisez l'autoscaler Compute Engine.
  • Vous utilisez des autoscalers tiers et souhaitez conserver l'intégration existante.
  • Vous augmentez manuellement la taille cible des VM en cours d'exécution.

En mode "pool de scaling horizontal", le MIG se comporte comme suit :

  • Lorsque vous ou l'autoscaler augmentez la taille cible des VM en cours d'exécution dans le MIG, le MIG prend les mesures suivantes dans l'ordre suivant :

    1. Le MIG reprend les VM suspendues en cas de disponibilité dans les zones où le MIG effectue un scaling horizontal.
    2. Après la réactivation des VM suspendues, si la taille cible du MIG n'est pas encore atteinte, celui-ci démarre les VM arrêtées, si elles sont disponibles dans les zones où le scaling horizontal du MIG est effectué.
    3. Après avoir démarré les VM, si la taille cible du MIG n'est toujours pas atteinte, elle crée de nouvelles VM à partir de zéro.

    Une fois que le pool de secours est utilisé pour accélérer le scaling horizontal, le MIG effectue les opérations suivantes :

    1. Il crée de nouvelles VM pour réinitialiser les pools suspendus et arrêtés en fonction de leur taille cible et conformément à la forme de distribution cible dans le cas d'un MIG régional.
    2. Les nouvelles VM sont alors en cours d'exécution.
    3. Il suspend ou arrête les nouvelles VM après le délai initial.
  • Lorsque vous ou l'autoscaler diminuez la taille cible du MIG, celui-ci n'arrête pas ou ne suspend pas automatiquement les VM en cours d'exécution, mais les supprime.

Délai initial

Pour vous assurer que votre VM est initialisée correctement, spécifiez le délai initial dans la règle de secours. Le délai initial correspond au temps d'attente des VM avant leur création ou leur suspension après leur création. Cela donne à votre script d'initialisation le temps de se terminer.

Le délai initial se produit dans les cas suivants :

  • Une VM est créée avec l'état cible SUSPENDED ou TERMINATED.
  • Une instance existante à l'état RUNNING est suspendue ou arrêtée.

Dans les deux cas, l'instance est autorisée à s'initialiser avant d'être suspendue ou arrêtée.

Lorsque vous souhaitez utiliser un pool de secours pour accélérer le scaling horizontal à partir d'un MIG, nous vous recommandons de mesurer le temps nécessaire à votre application pour s'initialiser sur le type de machine sélectionné afin de vous assurer qu'il est suffisant pour permettre à votre application d'être complètement prête avant de la suspendre ou de l'arrêter. Sinon, la réactivation ou le démarrage de VM à partir d'un pool de secours peut prendre plus de temps que la création de VM à partir de zéro.

État cible des VM dans les groupes d'instances gérés

Les MIG possèdent une API déclarative. Cela signifie que vous déclarez l'état cible des VM du MIG et que la requête API aboutit lorsque l'état de la cible est enregistré. Le MIG effectue ensuite les opérations nécessaires pour atteindre l'état cible, et vous pouvez vérifier l'action en cours et l'état actuel de toutes les VM via l'API.

La suspension et l'arrêt de VM dans un MIG fonctionnent de la même manière déclarative. Lorsque vous envoyez une requête de suspension ou d'arrêt de VM, le MIG stocke les informations sur l'état cible de chaque VM et démarre les opérations nécessaires pour l'atteindre.

Lorsque vous répertoriez des VM gérées dans un MIG, vous pouvez voir le champ targetStatus. Il décrit l'état final d'une VM lorsque le MIG est stable. Il peut correspondre à l'une des valeurs suivantes :

  • RUNNING
  • STOPPED
  • SUSPENDED

Les VM d'un MIG peuvent avoir les mêmes états de cycle de vie qu'une seule VM. Voici des exemples d'opérations possibles sur un groupe d'instances géré, ainsi que les valeurs associées du champ targetStatus :

  • Créez la VM et suspendez-la après l'initialisation.
    • État cible de la VM : SUSPENDED.
  • Réactivez une VM précédemment suspendue.
    • État cible de la VM : RUNNING
  • Arrêtez une VM en cours d'exécution.
    • État cible de la VM : STOPPED
  • Démarrez une VM précédemment arrêtée.
    • État cible de la VM : RUNNING

Limites

  • L'arrêt et la suspension de VM dans un MIG présentent les mêmes limites que l'arrêt et la suspension des VM en dehors du MIG.
  • Dans un MIG régional avec la forme de distribution cible EVEN et la redistribution des instances activées, vous ne pouvez pas suspendre, arrêter, reprendre ou démarrer des VM spécifiques dans le groupe. Pour gérer un pool de secours, définissez la taille cible des pools suspendus et arrêtés.
  • En mode "pool de scaling horizontal", vous ne pouvez pas ajouter de deuxième modèle d'instance pour lancer une mise à jour Canary dans le MIG.
  • Vous ne pouvez pas suspendre ou arrêter des VM dans un MIG si vous avez désactivé les réparations dans le MIG.
  • Vous ne pouvez suspendre une instance que pendant une durée maximale de 60 jours avant l'arrêt automatique de la VM.

Tarification

Chaque VM arrêtée et suspendue est facturée pour les éléments suivants :

  • Toute utilisation de disque persistant pour le disque de démarrage, et tous les disques supplémentaires associés à la VM. Pour en savoir plus, consultez la section Tarifs des disques persistants.
  • Toutes les adresses IP statiques associées à la VM. Pour en savoir plus, consultez la page Tarifs des adresses IP.
  • Dans le cas de VM suspendues, la mémoire de la VM et l'état de l'appareil. Pour en savoir plus, consultez la page Tarifs des instances de VM.

Étapes suivantes