Accélérer le scaling horizontal avec des VM suspendues et arrêtées


Ce document explique le fonctionnement du pool de secours des instances de machines virtuelles (VM) suspendues et arrêtées, et comment vous pouvez utiliser le pool de secours pour accélérer le scaling horizontal d'un groupe d'instances géré (MIG).

Avant de commencer

  • Consultez la page d'introduction concernant les VM suspendues et arrêtées dans un MIG.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant 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 comme suit :

    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

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Utiliser l'API du MIG pour l'autoscaling

Nous vous recommandons d'utiliser l'autoscaler Compute Engine pour l'autoscaling de votre groupe d'instances géré. Toutefois, si pour une raison quelconque vous préférez utiliser un autre autoscaler, utilisez les points de terminaison de l'API MIG pour gérer les VM suspendues et arrêtées.

L'API du MIG vous permet de connecter votre autoscaler, par exemple l'autoscaler GKE, et d'exploiter le pool de secours des VM pour accélérer le scaling horizontal.

Choisir entre pools suspendus et arrêtés

Le choix entre des pools suspendus et arrêtés dépend de votre cas d'utilisation spécifique. Pour des performances optimales, vous devez tester différents types de pools de secours pour vos scénarios de scaling horizontal afin de déterminer celui qui répond le mieux à vos besoins. Différentes charges de travail peuvent afficher un délai de diffusion plus court avec différentes options. Dans certains cas, le processus de copie de l'état de la mémoire de l'espace de stockage vers la VM peut prendre plus de temps que le redémarrage de la VM ou la création d'une VM.

Pour trouver la meilleure approche, commencez par suivre ces consignes:

  • Utilisez des VM suspendues si vos VM nécessitent une initialisation de mémoire chronophage, car les VM suspendues conservent l'état de la mémoire. Assurez-vous que votre application peut être suspendue et réactivée. Conserver l'état de la mémoire nécessite un espace de stockage supplémentaire et peut entraîner des coûts supplémentaires.
  • Utilisez des VM arrêtées si l'initialisation de votre VM se concentre principalement sur l'initialisation des données stockées sur les disques persistants.

Modifier la règle de secours dans un MIG

Cette section explique comment définir le délai initial et définir le mode du pool de secours pour le scaling horizontal du pool.

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances dont vous souhaitez modifier la stratégie de secours.

  3. Cliquez sur Modifier pour modifier le groupe d'instances géré.

  4. Cliquez sur Afficher la configuration avancée.

  5. Dans la section Pool de secours, sous Mode, sélectionnez Scaling horizontal.

  6. Dans le champ Délai initial, saisissez le nombre de secondes que le MIG doit attendre avant de suspendre ou d'arrêter une VM. Le délai initial donne au script d'initialisation le temps de préparer votre VM pour un scaling rapide.

  7. Cliquez sur Enregistrer.

gcloud

Exécutez la commande beta instance-groups managed update et spécifiez le mode d'opération et le délai initial.

gcloud beta compute instance-groups managed update MIG_NAME \
  --standby-policy-mode=scale-out-pool \
  --standby-policy-initial-delay=DELAY \
  [--region=REGION | --zone=ZONE]

Remplacez les éléments suivants :

  • MIG_NAME : nom du MIG.
  • DELAY: nombre de secondes que le MIG doit attendre avant de suspendre ou d'arrêter une VM. Le délai initial donne au script d'initialisation le temps de préparer votre VM pour un scaling rapide.
  • REGION: pour un MIG régional, région où se trouve le MIG.
  • ZONE: pour un MIG zonal, zone où se trouve le MIG.

API

Utilisez la méthode instanceGroupManager.update et spécifiez le mode d'opération et le délai initial dans le corps de la requête. Pour les MIG régionaux, utilisez la méthode regionInstanceGroupManager.update.

PUT https://www.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"standbyPolicy": {
  "mode": "SCALE_OUT_POOL",
  "initialDelaySec": DELAY
}
// ...
}

Remplacez les éléments suivants :

  • PROJECT_ID : par l'ID du projet.
  • MIG_NAME : nom du MIG.
  • DELAY: nombre de secondes que le MIG doit attendre avant de suspendre ou d'arrêter une VM. Le délai initial donne au script d'initialisation le temps de préparer votre VM pour un scaling rapide.
  • REGION: pour un MIG régional, région où se trouve le MIG.
  • ZONE: pour un MIG zonal, zone où se trouve le MIG.

Redimensionner le pool de secours dans un MIG

Cette section explique comment redimensionner des pools de VM suspendues et arrêtées dans un MIG.

Console

  1. Dans la console Google Cloud, accédez à la page Groupes d'instances.

    Accéder à la page "Groupes d'instances"

  2. Dans la colonne Nom de la liste, cliquez sur le nom du groupe d'instances dont vous souhaitez modifier la taille des pools de secours.

  3. Cliquez sur Modifier pour modifier le groupe d'instances géré.

  4. Cliquez sur Afficher la configuration avancée.

  5. Dans la section Pool de secours, saisissez les nouvelles tailles dans les champs VM suspendues et VM arrêtées.

  6. Cliquez sur Enregistrer.

gcloud

Exécutez la commande bêta instance-groups managed resize avec les options --suspended-size et --stopped-size.

gcloud beta compute instance-groups managed resize MIG_NAME \
--suspended-size=SUSPENDED_SIZE \
--stopped-size=STOPPED_SIZE \
[--region=REGION | --zone=ZONE]

Remplacez les éléments suivants :

  • MIG_NAME: nom du MIG dans lequel suspendre une instance.
  • SUSPENDED_SIZE: nombre de VM suspendues que le MIG doit maintenir à un moment donné.
  • STOPPED_SIZE: nombre de VM arrêtées que le MIG doit maintenir à un moment donné.
  • REGION: pour un MIG régional, région où se trouve le MIG.
  • ZONE: pour un MIG zonal, zone où se trouve le MIG.

API

Utilisez la méthode instanceGroupManager.update et spécifiez la taille des pools de VM suspendues et arrêtées dans le corps de la requête. Pour les MIG régionaux, utilisez la méthode regionInstanceGroupManager.update.

PUT https://www.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME

{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour la requête.
  • ZONE: pour un MIG zonal, zone où se trouve le MIG
      .
    • Pour un MIG régional, remplacez zones/ZONE par regions/REGION et spécifiez la région du MIG.
  • MIG_NAME: nom du MIG dans lequel arrêter une instance..
  • SUSPENDED_SIZE: nombre de VM suspendues que le MIG doit maintenir à un moment donné.
  • STOPPED_SIZE: nombre de VM arrêtées que le MIG doit maintenir à un moment donné.

Étapes suivantes