Définir la préparation par défaut d'instance d'un groupe Auto Scaling - Amazon EC2 Auto Scaling

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Définir la préparation par défaut d'instance d'un groupe Auto Scaling

CloudWatch collecte et agrège les données d'utilisation, telles que le processeur et les E/S réseau, sur vos instances Auto Scaling. Vous utilisez ces métriques pour créer des politiques de mise à l'échelle qui ajustent le nombre d'instances de votre groupe Auto Scaling lorsque la valeur de la métrique sélectionnée augmente et diminue.

Vous pouvez spécifier le délai après qu'une instance a atteint l'InServiceétat dans lequel elle attend avant de fournir des données d'utilisation aux métriques agrégées. Cette durée spécifiée est appelée préchauffage de l'instance par défaut. Cela permet d'éviter que le dimensionnement dynamique ne soit affecté par les métriques relatives à des instances individuelles qui ne gèrent pas encore le trafic applicatif et qui sont susceptibles de connaître une utilisation temporairement élevée des ressources de calcul.

Pour optimiser les performances de vos politiques de suivi des cibles et de dimensionnement par étapes, nous vous recommandons vivement d'activer et de configurer le préchauffage de l'instance par défaut. Il n'est ni activé ni configuré par défaut.

Lorsque vous activez le préchauffage d'instance par défaut, n'oubliez pas que si votre groupe Auto Scaling est configuré pour utiliser une politique de maintenance des instances, ou si vous utilisez une actualisation d'instance pour remplacer des instances, vous pouvez empêcher que les instances ne soient prises en compte dans le calcul du pourcentage de santé minimum avant la fin de leur initialisation.

Considérations sur les performances de la mise à l’échelle

Il est utile pour la plupart des applications d'avoir un temps de préchauffage d'instance par défaut qui s'applique à toutes les fonctionnalités, plutôt que des temps de préchauffage différents pour les différentes fonctionnalités. Par exemple, si vous ne définissez pas de préchauffage d'instance par défaut, la fonction d'actualisation de l'instance utilise le délai de grâce du bilan de santé comme temps de préchauffage par défaut. Si vous avez des politiques de suivi des cibles et de dimensionnement des étapes, elles utilisent la valeur définie pour le temps de recharge par défaut comme temps de préchauffage par défaut. Si vous avez des politiques de dimensionnement prédictif, elles n'ont pas de temps de préchauffage par défaut.

Pendant le préchauffage des instances, vos politiques de dimensionnement dynamique ne sont redimensionnées que si la valeur métrique des instances qui ne s'échauffent pas est supérieure au seuil d'alarme de la politique (ou à l'utilisation cible d'une politique de dimensionnement de suivi des cibles). Si la demande diminue, le dimensionnement dynamique devient plus prudent afin de protéger la disponibilité de votre application. Cela bloque les activités de mise à l'échelle pour une mise à l'échelle dynamique jusqu'à ce que les nouvelles instances aient fini de s'échauffer.

Lors de la mise à l'échelle, Amazon EC2 Auto Scaling prend en compte les instances en phase d'échauffement dans le cadre de la capacité du groupe lorsqu'il décide du nombre d'instances à ajouter au groupe. Par conséquent, plusieurs violations d'alarme nécessitant l'ajout d'une capacité similaire entraînent une seule activité de mise à l'échelle. L'objectif est de continuer à évoluer, sans le faire de manière excessive.

Si le préchauffage de l'instance par défaut n'est pas activé, le temps qu'une instance attend avant d'envoyer des métriques CloudWatch et de les compter dans la capacité actuelle varie d'une instance à l'autre. Il est donc possible que vos politiques de dimensionnement fonctionnent de manière imprévisible par rapport à la charge de travail réelle qui se produit.

Prenons l'exemple d'une application avec un schéma de on-and-off charge de travail récurrent. Une politique de mise à l’échelle prédictive est utilisée pour prendre des décisions récurrentes quant à l’augmentation du nombre d’instances. Comme il n'existe pas de temps de préchauffage par défaut pour les politiques de dimensionnement prédictif, les instances commencent immédiatement à contribuer aux métriques agrégées. Si ces instances utilisent davantage de ressources au démarrage, l’ajout d’instances peut entraîner une hausse des métriques agrégées. En fonction du temps nécessaire à la stabilisation de l’utilisation, cela peut avoir un impact sur les politiques de mise à l’échelle dynamique utilisant ces métriques. Si le seuil d’alarme supérieur d’une politique de mise à l’échelle dynamique est dépassé, la taille du groupe augmente à nouveau. Pendant la préparation des nouvelles instances, les activités de mise à l’échelle horizontale seront bloquées.

Choisissez le temps de préchauffage de l'instance par défaut

Pour définir la préparation d’instance par défaut, il est essentiel de déterminer le temps dont vos instances ont besoin pour terminer leur initialisation et pour que la consommation de ressources se stabilise une fois qu’elles ont atteint l’état InService. Lorsque vous choisissez le temps de préchauffage de l'instance, essayez de maintenir un équilibre optimal entre la collecte de données d'utilisation pour le trafic légitime et la minimisation de la collecte de données associée aux pics d'utilisation temporaires au démarrage.

Supposons qu’un groupe Auto Scaling soit associé à un équilibreur de charge Elastic Load Balancing. Lorsque le lancement des nouvelles instances est terminé, elles sont enregistrées dans l’équilibreur de charge avant d’entrer dans l’état InService. Une fois que les instances passent à l'état InService, la consommation de ressources peut encore connaître des pics temporaires et avoir besoin de temps pour se stabiliser. Par exemple, la consommation de ressources pour un serveur d'applications qui doit télécharger et mettre en cache des ressources volumineuses prend plus de temps à stabiliser qu'un serveur Web léger sans ressources volumineuses à télécharger. La préparation d’instance fournit le délai nécessaire à la stabilisation de la consommation de ressources.

Important

Si vous n'êtes pas sûr du temps dont vous avez besoin pour le préchauffage, vous pouvez commencer par 300 secondes. Puis diminuez-le ou augmentez-le progressivement jusqu'à obtenir les meilleures performances de mise à l'échelle pour votre application. Vous devrez peut-être le faire plusieurs fois pour bien faire les choses. Sinon, si vous avez des politiques de dimensionnement dotées de leur propre temps de préchauffage (EstimatedInstanceWarmup), vous pouvez utiliser cette valeur pour commencer. Pour plus d’informations, consultez Trouvez des politiques de dimensionnement avec un temps de préchauffage de l'instance défini au préalable.

Vous pourriez également envisager d’utiliser des hooks de cycle de vie pour les cas d’utilisation dans lesquels vous avez des tâches de configuration ou des scripts à exécuter au démarrage. Les hooks de cycle de vie peuvent retarder la mise en service des instances jusqu’à ce que leur initialisation soit terminée. Ils sont particulièrement utiles si vous disposez de scripts d'amorçage qui nécessitent un certain temps. Si vous ajoutez un hook de cycle de vie, vous pouvez réduire la valeur de la préparation d’instance par défaut. Pour plus d'informations sur l'utilisation des hooks de cycle de vie, consultez Hooks de cycle de vie Amazon EC2 Auto Scaling.

Activer la préparation d'instance par défaut pour un groupe

Vous pouvez activer la préparation d'instance par défaut au moment de la création d'un groupe Auto Scaling. Vous pouvez également l'activer pour les groupes existants.

En activant la fonction de préchauffage de l'instance par défaut, vous n'avez plus besoin de spécifier des valeurs pour les paramètres de préchauffage pour les fonctionnalités suivantes :

Console
Pour activer la préparation d'instance par défaut pour un nouveau groupe (console)

Lorsque vous créez le groupe Auto Scaling, sur la page Configure advanced options (Configurer des options avancées), sous Additional settings (Paramètres supplémentaires), sélectionnez l'option Enable default instance warmup (Activer la préparation d'instance par défaut). Choisissez le temps de préchauffage dont vous avez besoin pour votre application.

AWS CLI
Pour activer la préparation d'instance par défaut pour un nouveau groupe (AWS CLI)

Pour activer la préparation d'instance par défaut pour un groupe Auto Scaling, ajoutez l'option --default-instance-warmup et spécifiez une valeur, en secondes, comprise entre 0 et 3 600. Une fois qu'elle est activée, une valeur de -1 va désactiver ce réglage.

La create-auto-scaling-groupcommande suivante crée un groupe Auto Scaling nommé my-asg et active le préchauffage de l'instance par défaut avec une valeur de 120 secondes.

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --default-instance-warmup 120 ...
Astuce

Si cette commande génère une erreur, assurez-vous d'avoir mis à jour AWS CLI localement la dernière version.

Console
Pour activer la préparation d'instance par défaut pour un groupe existant (console)
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/ et choisissez Groupes Auto Scaling dans le panneau de navigation.

  2. Dans la barre de navigation située en haut de l'écran, choisissez l' Région AWS dans laquelle vous avez créé votre groupe Auto Scaling.

  3. Cochez la case située en regard du groupe Auto Scaling.

    Un volet fractionné s’ouvre en bas de la page.

  4. Sous l’onglet Détails, choisissez Configurations avancées, Modifier.

  5. Pour le préchauffage de l'instance par défaut, choisissez le temps de préchauffage dont vous avez besoin pour votre application.

  6. Choisissez Mettre à jour.

AWS CLI
Pour activer la préparation d'instance par défaut pour un groupe existant (AWS CLI)

L'exemple suivant utilise la update-auto-scaling-groupcommande pour activer le préchauffage de l'instance par défaut avec une valeur de 120 secondes pour un groupe Auto Scaling existant nommé my-asg.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg --default-instance-warmup 120
Astuce

Si cette commande génère une erreur, assurez-vous d'avoir mis à jour AWS CLI localement la dernière version.

Vérifier la préparation d'instance par défaut pour un groupe

Pour vérifier la préparation d'instance par défaut d'un groupe Auto Scaling (AWS CLI)

Utilisez la commande describe-auto-scaling-groups suivante. Remplacez my-asg par le nom de votre groupe Auto Scaling.

aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

Voici un exemple de réponse.

{ "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg", "AutoScalingGroupARN": "arn", ... "DefaultInstanceWarmup": 120 } ] }

Trouvez des politiques de dimensionnement avec un temps de préchauffage de l'instance défini au préalable

Pour déterminer si vos politiques ont leur propre temps de préchauffage pourEstimatedInstanceWarmup, exécutez la commande describe-policies suivante à l'aide de. AWS CLI Remplacez my-asg par le nom de votre groupe Auto Scaling.

aws autoscaling describe-policies --auto-scaling-group-name my-asg --query 'ScalingPolicies[?EstimatedInstanceWarmup!=`null`]'

Voici un exemple de sortie.

[ { "AutoScalingGroupName":"my-asg", "PolicyName":"cpu50-target-tracking-scaling-policy", "PolicyARN":"arn", "PolicyType":"TargetTrackingScaling", "StepAdjustments":[], "EstimatedInstanceWarmup":120, "Alarms":[{ "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e", "AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2", "AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2" }], "TargetTrackingConfiguration":{ "PredefinedMetricSpecification":{ "PredefinedMetricType":"ASGAverageCPUUtilization" }, "TargetValue":50.0, "DisableScaleIn":false }, "Enabled":true }, ... additional policies ... ]

Effacer la préparation de l’instance définie précédemment pour une politique de mise à l’échelle

Après avoir activé le préchauffage de l'instance par défaut, mettez à jour toutes les politiques de dimensionnement qui ont encore leur propre temps de préchauffage pour effacer la valeur précédemment définie. Dans le cas contraire, elle remplacera la préparation de l’instance par défaut.

Vous pouvez mettre à jour les politiques de dimensionnement à l'aide de AWS CLI la console ou AWS des SDK. Cette section décrit les étapes relatives à la console. Si vous utilisez les AWS SDK AWS CLI ou, assurez-vous de conserver la configuration de politique existante, mais supprimez la EstimatedInstanceWarmup propriété. Lorsque vous mettez à jour une politique de dimensionnement existante, celle-ci est remplacée par celle que vous spécifiez lorsque vous appelez par programmation. PutScalingPolicy Les valeurs d’origine ne sont pas conservées.

Pour effacer la préparation de l’instance précédemment définie pour une politique de mise à l’échelle (console)
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/ et choisissez Groupes Auto Scaling dans le panneau de navigation.

  2. Cochez la case située en regard du groupe Auto Scaling.

    Un volet fractionné s’ouvre en bas de la page.

  3. Dans l’onglet Mise à l’échelle automatique, dans Politiques de mise à l’échelle dynamiques, choisissez la politique qui vous intéresse, puis choisissez Actions, Modifier.

  4. Pour Instance warmup, effacez la valeur de préchauffage de l'instance pour utiliser plutôt la valeur de préchauffage de l'instance par défaut.

  5. Choisissez Mettre à jour.