Ce document explique comment fonctionne le pool de secours d'instances de machine virtuelle (VM) suspendues et arrêtées, et comment vous pouvez l'utiliser pour accélérer le effectuer un scaling horizontalun groupe d'instances géré (MIG).
Avant de commencer
- Consultez la page d'introduction sur les VM suspendues et arrêtées dans un MIG.
-
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification permet de valider votre identité pour accéder aux Google Cloud services et aux API. Pour exécuter
du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de
Compute Engine en sélectionnant l'une des options suivantes :
Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :
Console
Lorsque vous utilisez la Google Cloud console pour accéder aux Google Cloud services et aux API, vous n'avez pas besoin de configurer l'authentification.
gcloud
-
Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisezla en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
- Définissez une région et une zone par défaut.
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Si vous utilisez un shell local, créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Vous n'avez pas besoin de le faire si vous utilisez Cloud Shell.
Si une erreur d'authentification est renvoyée et que vous utilisez un fournisseur d'identité (IdP) externe, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
Terraform
Pour utiliser les exemples Terraform de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application avec vos identifiants utilisateur.
Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l' Google Cloud authentification.
Utiliser l'API MIG pour l'autoscaling
Nous vous recommandons d'utiliser l'autoscaler Compute Engine pour l'autoscaling de votre MIG. 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.
Choisir entre des 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 obtenir les meilleures performances, vous devez tester différents types de pools de secours pour vos scénarios de effectuer un 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 la mémoire longue, car les VM suspendues conservent l'état de la mémoire. Assurez-vous que votre application peut être suspendue et reprise. 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 dans les disques persistants.
Modifier la règle de secours dans un MIG
Cette section explique comment définir le mode du pool de secours pour effectuer un scaling horizontal du pool et le délai initial.
Console
Dans la console Google Cloud , accédez à la page Groupes d'instances.
Cliquez sur le nom du groupe d'instances que vous souhaitez modifier.
Cliquez sur Modifier pour modifier le groupe d'instances géré.
Cliquez sur Options avancées pour développer la section.
Dans la section Pool de secours, sélectionnez Scaling horizontal.
Dans le champ Délai initial, saisissez le nombre de secondes pendant lesquelles le MIG doit attendre avant de suspendre ou d'arrêter une VM. Le délai initial permet au script d'initialisation de préparer votre VM pour un scaling horizontal rapide.
Cliquez sur Enregistrer.
gcloud
Utilisez la
instance-groups managed update commande
et spécifiez le mode de fonctionnement et le délai initial.
gcloud 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 pendant lesquelles le MIG doit attendre avant de suspendre ou d'arrêter une VM. Le délai initial permet au script d'initialisation de préparer votre VM pour effectuer un scaling horizontal 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.
Terraform
L'exemple suivant crée un MIG zonal avec une règle de secours. Utilisez le bloc standby_policy pour définir un délai initial et définir le mode sur SCALE_OUT_POOL.
L'exemple utilise la google_compute_instance_group_manager
ressource.
Pour un MIG régional, utilisez la google_compute_region_instance_group_manager
ressource.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
REST
Utilisez la
instanceGroupManager.patch méthode
et spécifiez le mode de fonctionnement et le délai initial dans le corps de la requête.
Pour les MIG régionaux, utilisez la méthode regionInstanceGroupManager.patch.
PATCH https://compute.googleapis.com/compute/v1/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.ZONE: pour un MIG zonal, zone où se trouve le MIG.- Pour un MIG régional, remplacez
zones/ZONEparregions/REGIONet spécifiez la région de le MIG.
- Pour un MIG régional, remplacez
MIG_NAME: nom du MIG.DELAY: nombre de secondes pendant lesquelles le MIG doit attendre avant de suspendre ou d'arrêter une VM. Le délai initial permet au script d'initialisation de préparer votre VM pour effectuer un scaling horizontal rapide.
Redimensionner le pool de secours dans un MIG
Cette section explique comment redimensionner les pools de secours des VM suspendues et arrêtées dans un MIG.
Console
Dans la console Google Cloud , accédez à la page Groupes d'instances.
Cliquez sur le nom du groupe d'instances que vous souhaitez modifier.
Cliquez sur Modifier pour modifier le groupe d'instances géré.
Cliquez sur Options avancées pour développer la section.
Dans la section Pool de secours, saisissez les nouvelles tailles dans les champs VM suspendues et VM arrêtées.
Cliquez sur Enregistrer.
gcloud
Utilisez la
instance-groups managed update commande
avec les options --suspended-size et --stopped-size.
gcloud compute instance-groups managed update 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.
Terraform
L'exemple suivant crée un MIG zonal avec des tailles cibles pour les VM suspendues et arrêtées. Pour définir les tailles cibles, utilisez les arguments target_suspended_size et target_stopped_size.
L'exemple utilise la google_compute_instance_group_manager
ressource.
Pour un MIG régional, utilisez la google_compute_region_instance_group_manager
ressource.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
REST
Utilisez la
instanceGroupManager.patch méthode
et spécifiez les tailles 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.patch.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}
Remplacez les éléments suivants :
PROJECT_ID: par l'ID du projet.ZONE: pour un MIG zonal, zone où se trouve le MIG.- Pour un MIG régional, remplacez
zones/ZONEparregions/REGIONet spécifiez la région du MIG.
- Pour un MIG régional, remplacez
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é.
Étape suivante
- Découvrez comment suspendre ou arrêter manuellement des VM dans un MIG.
- Obtenez davantage d'informations sur les mises à jour des VM suspendues et arrêtées dans un MIG.