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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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
-
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.
-
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 . - 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.
- Si aucune configuration d'autoscaling n'existe, cliquez sur Configurer l'autoscaling sous Autoscaling.
-
Sous
Mode autoscaling , sélectionnez Activé : ajouter et supprimer des instances dans le groupe pour activer l'autoscaling. - Spécifiez le nombre minimal et maximal d'instances que l'autoscaler peut créer dans ce groupe.
-
Si la section Métriques d'autoscaling ne comporte aucune métrique Utilisation du processeur, ajoutez-en une :
-
Cliquez sur
Ajouter une métrique . -
Sous
Type de métrique , sélectionnez Utilisation du processeur. -
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
. -
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. - Cliquez sur OK.
-
Cliquez sur
- 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.
- 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.
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
- Apprenez-en plus sur l'autoscaling et les différents types de signaux de scaling que vous pouvez ajouter à une règle d'autoscaling.
- Découvrez comment gérer les autoscalers.
- Configurez l'autoréparation basée sur l'application, qui vérifie périodiquement que votre application répond comme prévu sur chacune des VM du MIG et recrée automatiquement les VM qui ne répondent pas.
- Découvrez comment appliquer une nouvelle configuration à un sous-ensemble ou à l'ensemble des VM d'un MIG en définissant et en appliquant un nouveau modèle d'instance, une configuration sur toutes les instances, ou une configuration par instance.
- Découvrez comment ajouter une interface d'équilibreur de charge HTTP(S) externe à votre groupe d'instances. Consultez la page Présentation de l'équilibrage de charge pour obtenir des informations sur les autres types d'équilibreurs de charge.