Politiques de suivi des objectifs et d'échelonnement pour Amazon EC2 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.

Politiques de suivi des objectifs et d'échelonnement pour Amazon EC2 Auto Scaling

Une politique de dimensionnement pour le suivi des cibles permet d'ajuster automatiquement la capacité de votre groupe Auto Scaling en fonction d'une valeur métrique cible. Cela permet à votre application de maintenir des performances et une rentabilité optimales sans intervention manuelle.

Avec le suivi des cibles, vous sélectionnez une métrique et une valeur cible pour représenter le niveau d’utilisation ou de débit moyen idéal pour votre application. Amazon EC2 Auto Scaling crée et gère les CloudWatch alarmes qui déclenchent des événements de dimensionnement lorsque la métrique s'écarte de la cible. Par exemple, cela est similaire à la façon dont un thermostat maintient une température cible.

Supposons par exemple que vous avez une application Web qui s'exécute actuellement sur deux instances et vous souhaitez que l'utilisation de l'UC du groupe Auto Scaling reste à environ 50 % lorsque la charge sur l'application change. Vous disposez ainsi d'une plus grande capacité pour gérer les pics de trafic sans avoir à maintenir une quantité excessive des ressources inutilisées.

Vous pouvez répondre à ce besoin en créant une stratégie de suivi des objectifs et d'échelonnement qui cible une utilisation moyenne du CPU de 50 pour cent. Ensuite, votre groupe Auto Scaling augmentera, ou augmentera sa capacité, lorsque le processeur dépasse 50 % pour faire face à une charge accrue. Il augmentera ou diminuera la capacité lorsque le processeur tombe en dessous de 50 % afin d'optimiser les coûts pendant les périodes de faible utilisation.

Politiques multiple de suivi des objectifs de la mise à l'échelle

Pour vous permettre d'optimiser la performance de mise en échelle, vous pouvez disposer de plusieurs politiques de suivi des objectifs de la mise à l'échelle à la fois, dans la mesure où chacune d'entre elles utilise une métrique différente. Par exemple, l'utilisation et le débit peuvent s'influencer mutuellement. Chaque fois que l'une de ces métriques change, cela implique généralement que d'autres métriques seront également affectées. L'utilisation de plusieurs métriques fournit donc des informations supplémentaires sur la charge que subit votre groupe Auto Scaling. Cela peut aider Amazon EC2 Auto Scaling à prendre des décisions plus éclairées lorsqu'il s'agit de déterminer la capacité à ajouter à votre groupe.

L'objectif d'Amazon EC2 Auto Scaling est de toujours donner la priorité à la disponibilité. Il élargira le groupe Auto Scaling si l'une des politiques de suivi des cibles est prête à être étendue. Il ne sera étendu que si toutes les politiques de suivi des cibles (avec la partie scale-in activée) sont prêtes à être étendues.

Choisissez métriques

Vous pouvez créer des stratégies de suivi des objectifs de la mise à l'échelle avec des métriques prédéfinies ou des métriques personnalisées.

Lorsque vous créez une stratégie de suivi des objectifs de la mise à l’échelle avec une métrique prédéfinie, vous choisissez une métrique dans la liste suivante de métriques prédéfinies :

  • ASGAverageCPUUtilization - Utilisation moyenne de l'UC du groupe Auto Scaling.

  • ASGAverageNetworkIn - Nombre moyen d'octets reçus par une seule instance sur toutes les interfaces réseau.

  • ASGAverageNetworkOut - Nombre moyen d'octets envoyé depuis une seule instance sur toutes les interfaces réseau.

  • ALBRequestCountPerTarget - Nombre de demandes Application Load Balancer par cible.

Important

Vous trouverez d'autres informations utiles sur les mesures relatives à l'utilisation du processeur, aux E/S réseau et au nombre de demandes d'Application Load Balancer par cible dans la rubrique Lister les métriques CloudWatch disponibles pour vos instances dans le guide de l'utilisateur Amazon EC2 et dans la rubrique relative aux métriques relatives à votre Application Load Balancer dans CloudWatch le guide de l'utilisateur pour les équilibreurs de charge d'application, respectivement.

Vous pouvez choisir d'autres CloudWatch mesures disponibles ou les vôtres en CloudWatch spécifiant une métrique personnalisée. Vous devez utiliser le AWS CLI ou un SDK pour créer une politique de suivi cible avec une spécification de métrique personnalisée. Pour un exemple qui spécifie une spécification de métrique personnalisée pour une politique de dimensionnement du suivi des cibles à l'aide du AWS CLI, voirExemple de politiques de mise à l'échelle pour AWS Command Line Interface (AWS CLI).

Gardez les points suivants à l'esprit lorsque vous choisissez une métrique :

  • Nous vous recommandons d’utiliser uniquement des mesures disponibles à des intervalles d’une minute pour vous aider à évoluer plus rapidement en fonction des changements d’utilisation. Le suivi des cibles évaluera les métriques agrégées avec une granularité d'une minute pour toutes les métriques prédéfinies et les métriques personnalisées, mais la métrique sous-jacente peut publier des données moins fréquemment. Par exemple, toutes les métriques Amazon EC2 sont envoyées toutes les cinq minutes par défaut, mais elles sont configurables à une minute (ce que l'on appelle la surveillance détaillée). Ce choix appartient à chaque service. La plupart essaient d'utiliser le plus petit intervalle possible. Pour obtenir des informations sur l’activation de la surveillance détaillée, consultez Configurer la surveillance pour les instances à scalabilité automatique.

  • Toutes les métriques personnalisées ne fonctionnent pas pour le suivi des cibles. La métrique doit être une métrique d'utilisation valide et décrire le degré d'occupation d'une instance. La valeur de métrique doit augmenter ou diminuer en proportion du nombre d'instances présentes dans le groupe Auto Scaling. C'est pour que les données de la métrique puissent être utilisées afin d'augmenter ou réduire proportionnellement le nombre d'instances. Par exemple, l'utilisation de l'UC d'un groupe Auto Scaling (c'est-à-dire la métrique CPUUtilizationAmazon EC2 avec la dimension de métrique AutoScalingGroupName) fonctionne, si la charge du groupe Auto Scaling est répartie entre les instances.

  • Les métriques suivantes ne fonctionnent pas pour le suivi de la cible :

    • Nombre de demandes reçues par l'équilibreur de charge en amont du groupe Auto Scaling (autrement dit, la métrique Elastic Load Balancing RequestCount). Le nombre de demandes reçues par l'équilibreur de charge ne change pas en fonction de l'utilisation du groupe Auto Scaling.

    • Latence des demandes de l'équilibreur de charge (autrement dit, la métrique Elastic Load Balancing Latency). La latence des demandes peut augmenter en fonction de la croissance de l'utilisation, sans toutefois évoluer proportionnellement à cette croissance.

    • La métrique de file d'attente CloudWatch Amazon SQS. ApproximateNumberOfMessagesVisible Le nombre de messages d'une file d'attente peut ne pas changer proportionnellement à la taille du groupe Auto Scaling qui traite les messages de la file d'attente. Toutefois, une métrique personnalisée qui mesure le nombre de messages dans la file d'attente par instance EC2 dans le groupe Auto Scaling peut fonctionner. Pour plus d’informations, consultez Mise à l'échelle basée sur Amazon SQS.

  • Pour utiliser la métrique ALBRequestCountPerTarget, vous devez spécifier le paramètre ResourceLabel permettant d'identifier le groupe cible de l'équilibreur de charge associé à la métrique. Pour un exemple qui spécifie le ResourceLabel paramètre d'une politique de dimensionnement du suivi des cibles à l'aide du AWS CLI, voirExemple de politiques de mise à l'échelle pour AWS Command Line Interface (AWS CLI).

  • Lorsqu'une métrique émet des valeurs réelles de 0 à CloudWatch (par exemple,ALBRequestCountPerTarget), un groupe Auto Scaling peut passer à 0 s'il n'y a aucun trafic vers votre application pendant une période prolongée. Pour que votre groupe Auto Scaling diminue à 0 lorsque aucune demande n'y est acheminée, la capacité minimale du groupe doit être définie sur 0.

  • Au lieu de publier de nouvelles métriques à utiliser dans votre politique de mise à l'échelle, vous pouvez utiliser les calculs de métriques pour combiner des métriques existantes. Pour plus d’informations, consultez Créer une politique de mise à l’échelle du suivi des cibles pour Amazon EC2 Auto Scaling à l’aide d’une expression mathématique appliquée à une métrique.

Définition de la valeur cible

Lorsque vous créez une politique de suivi de la cible, vous devez spécifier une valeur cible. La valeur cible représente l'utilisation ou le débit moyen optimal pour le groupe Auto Scaling. Afin d'utiliser les ressources de manière efficiente, définissez une valeur cible aussi élevée que possible avec un tampon raisonnable en cas d'augmentation inattendue du trafic. Lorsque votre application est mise à l'échelle de manière optimale pour un flux de trafic normal, la valeur de métrique réelle doit être égale ou sensiblement inférieure à la valeur cible.

Lorsqu’une stratégie de mise à l’échelle est basée sur le débit, tel que le nombre de demandes par cible pour un Application Load Balancer, les I/O réseau ou d’autres métriques de nombre, la valeur cible représente le débit moyen optimal depuis une seule instance, pendant une période d’une minute.

Définir le temps de préchauffage de l'instance

Vous pouvez facultativement spécifier le nombre de secondes nécessaires pour la préparation d'une instance nouvellement lancée. Tant que le temps de préchauffage spécifié n'est pas expiré, une instance n'est pas prise en compte dans les métriques d'instance EC2 agrégées du groupe Auto Scaling.

Lorsque les instances sont en période de préchauffage, vos politiques de dimensionnement ne sont redimensionnées que si la valeur métrique des instances qui ne sont pas en phase de préchauffage est supérieure à l'utilisation cible de la politique.

Si le groupe est à nouveau monté en puissance, les instances qui sont toujours en cours de préparation sont comptées dans le cadre de la capacité souhaitée pour la prochaine activité de montée en puissance. L’objectif est d’effectuer une montée en puissance continue (mais pas excessive).

Pendant que l’activité de mise à l’échelle est en cours, toutes les activités de mise à l’échelle initiées par les politiques de mise à l’échelle sont bloquées jusqu’à ce que les instances aient fini leur préparation. Lorsque les instances ont terminé la préparation, si un événement de mise à l’échelle horizontale se produit, toutes les instances en cours de résiliation seront prises en compte dans la capacité actuelle du groupe lors du calcul de la nouvelle capacité souhaitée. Par conséquent, nous n’enlevons pas plus d’instances du groupe Auto Scaling que nécessaire.

Valeur par défaut

Si aucune valeur n'est définie, la politique de dimensionnement utilisera la valeur par défaut, qui est la valeur du préchauffage d'instance par défaut défini pour le groupe. Si le préchauffage de l'instance par défaut est nul, il revient à la valeur du temps de recharge par défaut. Nous vous recommandons d'utiliser le préchauffage de l'instance par défaut pour faciliter la mise à jour de toutes les politiques de dimensionnement lorsque le temps de préchauffage change.

Considérations

Les points suivants s'appliquent lors de l'utilisation des politiques de suivi des objectifs et d'échelonnement

  • Ne créez pas, ne modifiez ni ne supprimez les CloudWatch alarmes utilisées avec une politique de dimensionnement du suivi des cibles. Amazon EC2 Auto Scaling crée et gère les CloudWatch alarmes associées à vos politiques de dimensionnement du suivi des cibles et les supprime lorsqu'elles ne sont plus nécessaires.

  • Une politique de mise à l'échelle du suivi cible priorise la disponibilité pendant les périodes de fluctuation des niveaux de trafic en augmentant plus progressivement lorsque le trafic diminue. Si vous souhaitez que votre groupe Auto Scaling soit mis à l'échelle immédiatement à la fin d'une charge de travail, vous pouvez désactiver la fonction diminuer de la politique. Cela vous donne la latitude d'utiliser la méthode de mise à l'échelle qui répond le mieux à vos besoins lorsque l'utilisation est faible. Pour garantir que la mise à l'échelle se fasse le plus rapidement possible, nous vous recommandons de ne pas utiliser de politique de mise à l'échelle simple pour empêcher l'ajout d'une période de recharge.

  • S'il manque des points de données à la métrique, l'état de l' CloudWatch alarme passe àINSUFFICIENT_DATA. Dans ce cas, Amazon EC2 Auto Scaling ne peut pas mettre à l'échelle votre groupe tant que de nouveaux points de données ne sont pas trouvés.

  • Si la métrique est rarement rapportée, les calculs de métriques peuvent s'avérer utiles. Par exemple, pour utiliser les valeurs les plus récentes, utilisez la fonction FILL(m1,REPEAT) là où m1 est la métrique.

  • Vous pouvez constater des écarts entre la valeur cible et les points de données de métrique réels. Ceci est dû au fait que nous agissons toujours avec prudence en déterminant un arrondi vers le haut ou vers le bas quand il détermine le nombre d'instances à ajouter ou enlever. Cela empêche nous empêche d'ajouter un nombre insuffisant d'instances ou de supprimer trop d'instances. Cependant, pour les groupes Auto Scaling de petite taille avec moins d'instances, l'utilisation du groupe peut sembler éloignée de la valeur cible. Définissez, par exemple, une valeur cible de 50 % pour l'utilisation de l'UC et le groupe Auto Scaling dépasse alors la cible. Nous pouvons déterminer que l'ajout de 1,5 instance diminuera l'utilisation de l'UC d'environ 50 %. Comme il n'est pas possible d'ajouter 1,5 instance, nous arrondissons à la valeur supérieure et ajoutons deux instances. Cela peut diminuer l'utilisation de la CPU à une valeur inférieure à 50 % mais cela garantit que votre application dispose de suffisamment de ressources pour le prendre en charge. De même, si nous déterminons que la suppression de 1,5 instance diminue l'utilisation de la CPU à une valeur supérieure à 50 %, nous ne retirons qu'une seule instance.

    Pour les groupes Auto Scaling ayant plus d'instances, l'utilisation est répartie sur un plus grand nombre d'instances, auquel cas l'ajout ou la suppression d'instances entraîne moins d'écarts entre la valeur cible et les points de données de métrique réels.

  • Une politique de suivi des objectifs et d'échelonnement suppose qu'elle doit effectuer une montée en puissance de votre groupe Auto Scaling lorsque la métrique spécifiée est au-dessus de la valeur cible. Vous ne pouvez pas utiliser une politique de suivi des objectifs et d'échelonnement pour effectuer une montée en puissance de votre groupe Auto Scaling lorsque la métrique spécifiée est en dessous de la valeur cible.

Création d'une politique de suivi des cibles et d'échelonnement

Pour créer une politique de dimensionnement du suivi des cibles pour votre groupe Auto Scaling, appliquez l'une des méthodes suivantes.

Avant de commencer, vérifiez que votre métrique préférée est disponible à intervalles d’une minute (par rapport à l’intervalle de 5 minutes par défaut pour les métriques Amazon EC2).

Console
Pour créer une politique de suivi des cibles et de mise à l’échelle pour un groupe Auto Scaling existant
  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. Choisissez Créer un groupe Auto Scaling.

  3. Dans les étapes 1, 2 et 3, choisissez les options souhaitées et passez à l'Étape 4 : configurer la taille du groupe et des politiques de mise à l'échelle.

  4. Sous Taille du groupe, spécifiez la plage entre laquelle vous souhaitez mettre à l’échelle en mettant à jour la capacité minimale et la capacité maximale. Ces deux paramètres permettent à votre groupe Auto Scaling d'effectuer une mise à l'échelle dynamique. Pour plus d’informations, consultez Définissez des limites de mise à l’échelle pour votre groupe Auto Scaling.

  5. Sous Mise à l’échelle automatique, choisissez Politique de suivi des cibles et de mise à l’échelle.

  6. Pour définir une politique, procédez comme suit :

    1. Attribuez un nom à la politique.

    2. Pour Metric type (Type de métrique), choisissez une métrique.

      Si vous avez choisi Application Load Balancer request count per target (Nombre de demandes d'Application Load Balancer par cible), choisissez un groupe cible dans Target group (Groupe cible).

    3. Spécifiez une Valeur cible pour la métrique.

    4. (Facultatif) Pour le préchauffage de l'instance, mettez à jour la valeur de préchauffage de l'instance selon les besoins.

    5. (Facultatif) Sélectionnez Désactiver la mise à l’échelle horizontale pour créer uniquement une politique de montée en puissance. Cela vous permet de créer une politique de mise à l'échelle horizontale distincte avec un type différent si vous le souhaitez.

  7. Procédez à la création du groupe Auto Scaling. Votre politique de mise à l'échelle sera créée après la création du groupe Auto Scaling.

Pour créer une politique de suivi des objectifs et d'échelonnement pour un groupe Auto Scaling existant
  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 de votre groupe Auto Scaling.

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

  3. Vérifiez que les limites de mise à l’échelle sont correctement définies. Par exemple, si le groupe est déjà au maximum de sa taille, vous devez spécifier un nouveau maximum pour monter en puissance. Pour plus d’informations, consultez Définissez des limites de mise à l’échelle pour votre groupe Auto Scaling.

  4. Sous l’onglet Scalabilité automatique, dans Politiques de mise à l’échelle dynamique, choisissez Créer une politique de mise à l’échelle dynamique.

  5. Pour définir une politique, procédez comme suit :

    1. Pour le Type de politique, conservez la valeur par défaut de Suivi des cibles et de mise à l’échelle.

    2. Attribuez un nom à la politique.

    3. Pour Metric type (Type de métrique), choisissez une métrique. Vous ne pouvez choisir qu'un seul type de métrique. Pour utiliser plusieurs métriques, créez différentes politiques.

      Si vous avez choisi Application Load Balancer request count per target (Nombre de demandes d'Application Load Balancer par cible), choisissez un groupe cible dans Target group (Groupe cible).

    4. Spécifiez une Valeur cible pour la métrique.

    5. (Facultatif) Pour le préchauffage de l'instance, mettez à jour la valeur de préchauffage de l'instance selon les besoins.

    6. (Facultatif) Sélectionnez Désactiver la mise à l’échelle horizontale pour créer uniquement une politique de montée en puissance. Cela vous permet de créer une politique de mise à l'échelle horizontale distincte avec un type différent si vous le souhaitez.

  6. Choisissez Créer.

AWS CLI

Pour créer une politique de dimensionnement du suivi des cibles, vous pouvez utiliser l'exemple suivant pour vous aider à démarrer. Remplacez chaque espace réservé à la saisie de l'utilisateur par vos propres informations.

Pour créer une politique de suivi des cibles et de mise à l’échelle (AWS CLI)
  1. Utilisez la cat commande suivante pour stocker une valeur cible pour votre politique de dimensionnement et une spécification de métrique prédéfinie dans un fichier JSON nommé config.json dans votre répertoire de base. Voici un exemple de configuration de suivi des cibles qui maintient l'utilisation moyenne du processeur à 50 %.

    $ cat ~/config.json { "TargetValue": 50.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization" } }

    Pour plus d'informations, consultez la section PredefinedMetricSpécification dans le manuel Amazon EC2 Auto Scaling API Reference.

  2. Utilisez la commande put-scaling-policy ainsi que le fichier config.json créé à l'étape précédente pour élaborer la politique de mise à l'échelle.

    aws autoscaling put-scaling-policy --policy-name cpu50-target-tracking-scaling-policy \ --auto-scaling-group-name my-asg --policy-type TargetTrackingScaling \ --target-tracking-configuration file://config.json

    En cas de succès, cette commande renvoie les ARN et les noms des deux CloudWatch alarmes créées en votre nom.

    { "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:228f02c2-c665-4bfd-aaac-8b04080bea3c:autoScalingGroupName/my-asg:policyName/cpu50-target-tracking-scaling-policy", "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" } ] }