Création d'une politique de dimensionnement pour le suivi des cibles à l'aide de mathématiques métriques - 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.

Création d'une politique de dimensionnement pour le suivi des cibles à l'aide de mathématiques métriques

À l'aide des mathématiques métriques, vous pouvez interroger plusieurs CloudWatch métriques et utiliser des expressions mathématiques pour créer de nouvelles séries chronologiques basées sur ces métriques. Vous pouvez visualiser les séries chronologiques obtenues dans la CloudWatch console et les ajouter aux tableaux de bord. Pour plus d'informations sur les mathématiques métriques, consultez la section Utilisation des mathématiques métriques dans le guide de CloudWatch l'utilisateur Amazon.

Les considérations suivantes s'appliquent aux expressions mathématiques appliquées aux métriques :

  • Vous pouvez interroger n'importe quelle CloudWatch métrique disponible. Chaque métrique est une combinaison unique du nom de la métrique, de l'espace de noms et de zéro dimension ou plus.

  • Vous pouvez utiliser n'importe quel opérateur arithmétique (+ - */^), fonction statistique (telle que AVG ouSUM) ou toute autre fonction CloudWatch compatible.

  • Vous pouvez utiliser à la fois des métriques et les résultats d'autres expressions mathématiques dans les formules de l'expression mathématique.

  • Toutes les expressions utilisées dans une spécification de métrique doivent finalement retourner une seule séries temporelles.

  • Vous pouvez vérifier qu'une expression mathématique métrique est valide à l'aide de la CloudWatch console ou du CloudWatch GetMetricDataAPI.

Note

Vous pouvez créer une politique de dimensionnement du suivi des cibles à l'aide de mathématiques métriques uniquement si vous utilisez le AWS CLI AWS CloudFormation, ou unSDK. Cette fonctionnalité n’est pas disponible depuis la console.

Exemple : backlog de SQS file d'attente Amazon par instance

Pour calculer le backlog de la SQS file d'attente Amazon par instance, prenez le nombre approximatif de messages disponibles pour être extraits de la file d'attente et divisez ce nombre par la capacité de fonctionnement du groupe Auto Scaling, qui est le nombre d'instances dans l'InServiceétat. Pour de plus amples informations, veuillez consulter Politique de dimensionnement basée sur Amazon SQS.

La logique de l'expression est la suivante :

sum of (number of messages in the queue)/(number of InService instances)

Vos informations CloudWatch métriques sont alors les suivantes.

ID CloudWatch métrique Statistique Période
m1 ApproximateNumberOfMessagesVisible Somme 1 minute
m2 GroupInServiceInstances Moyenne 1 minute

Votre ID de mathématiques appliquées aux métriques et votre expression sont les suivantes :

ID Expression
e1 (m1)/(m2)

Le schéma suivant illustre l'architecture de cette métrique :

Schéma architectural EC2 d'Amazon Auto Scaling utilisant les files d'attente
Pour utiliser cette expression mathématique appliquée à une métrique pour créer une politique de suivi des cibles (AWS CLI)
  1. Stockez l'expression mathématique de la métrique dans le cadre d'une spécification de métrique personnalisée dans un JSON fichier nomméconfig.json.

    Utilisez l'exemple suivant pour vous aider à démarrer. Remplacez chacun user input placeholder avec vos propres informations.

    { "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Get the queue size (the number of messages waiting to be processed)", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "ApproximateNumberOfMessagesVisible", "Namespace": "AWS/SQS", "Dimensions": [ { "Name": "QueueName", "Value": "my-queue" } ] }, "Stat": "Sum" }, "ReturnData": false }, { "Label": "Get the group size (the number of InService instances)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "GroupInServiceInstances", "Namespace": "AWS/AutoScaling", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" } ] }, "Stat": "Average" }, "ReturnData": false }, { "Label": "Calculate the backlog per instance", "Id": "e1", "Expression": "m1 / m2", "ReturnData": true } ] }, "TargetValue": 100 }

    Pour plus d'informations, consultez TargetTrackingConfigurationl'Amazon EC2 Auto Scaling API Reference.

    Note

    Voici quelques ressources supplémentaires qui peuvent vous aider à trouver des noms de métriques, des espaces de noms, des dimensions et des statistiques pour les CloudWatch métriques :

    • Pour plus d'informations sur les métriques disponibles pour les AWS services, consultez les AWS services qui publient CloudWatch des métriques dans le guide de CloudWatch l'utilisateur Amazon.

    • Pour obtenir le nom, l'espace de noms et les dimensions exacts (le cas échéant) d'une CloudWatch métrique avec le AWS CLI, consultez list-metrics.

  2. Pour créer cette politique, exécutez la put-scaling-policycommande en utilisant le JSON fichier comme entrée, comme illustré dans l'exemple suivant.

    aws autoscaling put-scaling-policy --policy-name sqs-backlog-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 le nom de ressource Amazon (ARN) ARNs de la politique et les 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/sqs-backlog-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" } ] }
    Note

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