Créer un MIG avec l'autoscaling activé


Ce document explique comment créer un groupe d'instances géré (MIG) avec autoscaling qui ajoute et supprime automatiquement des VM en fonction de l'utilisation moyenne du processeur dans le groupe. Par exemple, si l'utilisation du processeur dans le groupe est faible, le groupe supprime automatiquement des VM pour réduire les coûts.

Vous pouvez adapter automatiquement un groupe d'instances géré en fonction de divers types de signaux d'autoscaling. Pour en savoir plus, consultez la présentation de l'autoscaler.

Vous pouvez également découvrir d'autres scénarios de base pour la création d'un MIG.

Avant de commencer

  • Créez un modèle d'instance, qui est nécessaire pour créer un groupe d'instances géré.
  • 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. Install the Google Cloud CLI, then initialize it by running the following command:

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

    Terraform

    Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.

    1. Install the Google Cloud CLI.
    2. To initialize the gcloud CLI, run the following command:

      gcloud init
    3. Create local authentication credentials for your user account:

      gcloud auth application-default login

    Pour en savoir plus, consultez les sections sur Configurer l'authentification pour un environnement de développement local.

    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.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

Limites

Pour afficher la liste complète des limites des MIG, qui varie en fonction de la configuration que vous utilisez, consultez la section Limites des MIG.

Créer un MIG et activer l'autoscaling

Utilisez la console Google Cloud, la gcloud CLI, Terraform ou REST.

Console

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

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

    Les étapes restantes apparaîtront automatiquement dans la console Google Cloud.

  2. Si vous disposez d'un groupe d'instances, sélectionnez-le et cliquez sur Modifier. Si vous n'en avez pas, cliquez sur Créer un groupe d'instances.
  3. Pour créer un nouveau groupe d'instances, attribuez-lui un nom, puis choisissez un modèle d'instance pour le groupe ou créez-en un.
  4. Si aucune configuration d'autoscaling n'existe, cliquez sur Configurer l'autoscaling sous Autoscaling.
  5. Sous Mode autoscaling, sélectionnez Activé : ajouter et supprimer des instances dans le groupe pour activer l'autoscaling.
  6. Spécifiez le nombre minimal et maximal d'instances que l'autoscaler peut créer dans ce groupe.
  7. Si la section Métriques d'autoscaling ne comporte aucune métrique Utilisation du processeur, ajoutez-en une :
    1. Cliquez sur Ajouter une métrique.
    2. Sous Type de métrique, sélectionnez Utilisation du processeur.
    3. Saisissez l'objectif d'utilisation du processeur souhaité. Cette valeur est traitée comme un pourcentage. Par exemple, pour une utilisation du processeur à 75 %, saisissez 75.
    4. Sous Autoscaling prédictif, sélectionnez Désactivé. Pour en savoir plus sur l'autoscaling prédictif et vérifier s'il est adapté à votre charge de travail, consultez la section Effectuer un scaling basé sur des prédictions.
    5. Cliquez sur OK.
  8. Vous pouvez utiliser le champ Période d'initialisation pour définir la période d'initialisation, qui indique à l'autoscaler le temps nécessaire à l'initialisation de votre application. Spécifier une période d'initialisation précise améliore les décisions de l'autoscaler. Par exemple, lors d'un scaling horizontal, l'autoscaler ignore les données des VM qui sont toujours en cours d'initialisation, car il est possible que ces VM ne représentent pas encore une utilisation normale de l'application. La période d'initialisation par défaut est de 60 secondes.
  9. Pour créer le MIG, cliquez sur Créer.

gcloud

Avant de pouvoir activer l'autoscaling, vous devez créer un MIG. Suivez les instructions pour créer un MIG avec des VM limitées à une seule zone ou créer un MIG avec des VM réparties sur plusieurs zones d'une région.

Utilisez ensuite la sous-commande set-autoscaling afin d'activer l'autoscaling pour le groupe. Par exemple, la commande suivante crée un autoscaler dont l'objectif d'utilisation du processeur est de 60 %. Outre le paramètre --target-cpu-utilization, le paramètre --max-num-replicas est également obligatoire lors de la création d'un autoscaler.

Vous pouvez éventuellement définir --min-num-replicas pour indiquer le nombre minimal de VM que vous souhaitez dans le groupe. Si vous ne définissez pas de valeur minimale, le MIG la définit sur 2 par défaut.

Vous pouvez utiliser l'option --cool-down-period pour définir la période d'initialisation, qui indique à l'autoscaler le temps nécessaire à l'initialisation de votre application. Spécifier une période d'initialisation précise améliore les décisions de l'autoscaler. Par exemple, lors d'un scaling horizontal, l'autoscaler ignore les données des VM qui sont toujours en cours d'initialisation, car il est possible que ces VM ne représentent pas encore une utilisation normale de l'application. La période d'initialisation par défaut est de 60 secondes.

gcloud compute instance-groups managed set-autoscaling example-managed-instance-group \
  --max-num-replicas 20 \
  --target-cpu-utilization 0.60 \
  --cool-down-period 90

Si vous le souhaitez, vous pouvez activer l'autoscaling prédictif pour effectuer un scaling horizontal de manière à anticiper la charge prévue. Pour savoir si l'autoscaling prédictif est adapté à votre charge de travail, consultez la section Scaling basé sur les prédictions.

Vous pouvez vérifier que l'autoscaling est activé à l'aide de la commande instance-groups managed describe, qui décrit le MIG correspondant et fournit des informations sur les fonctionnalités d'autoscaling de ce groupe :

gcloud compute instance-groups managed describe example-managed-instance-group

Terraform

Avant de pouvoir activer l'autoscaling, vous devez créer un MIG. Suivez les instructions pour créer un MIG avec des VM limitées à une seule zone ou créer un MIG avec des VM réparties sur plusieurs zones d'une région.

Pour configurer l'autoscaling dans un MIG, vous pouvez utiliser la ressource google_compute_autoscaler.

L'exemple suivant configure l'autoscaling en fonction de l'utilisation du processeur dans un MIG zonal.

resource "google_compute_autoscaler" "default" {
  name   = "example-autoscaler"
  zone   = "us-central1-f"
  target = google_compute_instance_group_manager.default.id

  autoscaling_policy {
    max_replicas    = 20
    min_replicas    = 0
    cooldown_period = 90

    cpu_utilization {
      target = 0.60
    }
  }
}

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page Commandes Terraform de base.

REST

Avant de pouvoir activer l'autoscaling, vous devez créer un MIG avec des VM limitées à une seule zone ou créer un MIG avec des VM réparties sur plusieurs zones d'une région.

Si vous disposez d'un MIG zonal, envoyez une requête POST à la méthode autoscalers.insert. Si vous disposez d'un MIG régional, utilisez la méthode regionAutoscalers.insert.

Exemple :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/

Le corps de votre requête doit contenir les champs name, target et autoscalingPolicy. Le champ autoscalingPolicy doit définir vos valeurs cpuUtilization et maxNumReplicas cibles.

Vous pouvez éventuellement définir minNumReplicas pour indiquer le nombre minimal de VM que vous souhaitez dans le groupe. Si vous ne définissez pas de valeur minimale, le MIG la définit sur 2 par défaut.

Vous pouvez utiliser le champ coolDownPeriodSec pour définir la période d'initialisation, qui indique à l'autoscaler le temps nécessaire à l'initialisation de votre application. Spécifier une période d'initialisation précise améliore les décisions de l'autoscaler. Par exemple, lors d'un scaling horizontal, l'autoscaler ignore les données des VM qui sont toujours en cours d'initialisation, car il est possible que ces VM ne représentent pas encore une utilisation normale de l'application. La période d'initialisation par défaut est de 60 secondes.

{
  "name": "example-autoscaler",
  "target": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-managed-instance-group",
  "autoscalingPolicy": {
    "maxNumReplicas": 10,
    "cpuUtilization": {
      "utilizationTarget": 0.6
    },
    "coolDownPeriodSec": 90
  }
}

Si vous le souhaitez, vous pouvez activer l'autoscaling prédictif pour effectuer un scaling horizontal de manière à anticiper la charge prévue. Pour savoir si l'autoscaling prédictif est adapté à votre charge de travail, consultez la section Scaling basé sur les prédictions.

Pour en savoir plus sur l'activation de l'autoscaling en fonction de l'utilisation du processeur, consultez la page Effectuer un autoscaling basé sur l'utilisation du processeur.

Étape suivante