Créez une politique de dimensionnement du suivi des cibles pour Application Auto Scaling à l'aide du AWS CLI - Application 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éez une politique de dimensionnement du suivi des cibles pour Application Auto Scaling à l'aide du AWS CLI

Cet exemple utilise des AWS CLI commandes pour créer une politique de rayonnage cible pour un parc Amazon EC2 Spot. Pour une autre cible évolutive, spécifiez son espace de noms dans--service-namespace, sa dimension évolutive dans --scalable-dimension et son ID de ressource dans--resource-id.

Lorsque vous utilisez le AWS CLI, n'oubliez pas que vos commandes s'exécutent dans la Région AWS configuration adaptée à votre profil. Si vous souhaitez exécuter les commandes dans une autre région, modifiez la région par défaut pour votre profil, ou utilisez le paramètre --region avec la commande.

Étape 1 : enregistrer une cible évolutive

Si vous ne l'avez pas encore fait, enregistrez la cible évolutive. Utilisez la register-scalable-targetcommande pour enregistrer une ressource spécifique dans le service cible en tant que cible évolutive. L'exemple suivant enregistre une demande de parc d'instances Spot avec Application Auto Scaling. Application Auto Scaling peut mettre à l'échelle le nombre d'instances dans le parc d'instances Spot à un minimum de 2 instances et un maximum de 10. Remplacez chaque espace réservé à la saisie de l'utilisateur par vos propres informations.

Linux, macOS ou Unix

aws application-autoscaling register-scalable-target --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --min-capacity 2 --max-capacity 10

Windows

aws application-autoscaling register-scalable-target --service-namespace ec2 ^ --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^ --min-capacity 2 --max-capacity 10
Sortie

En cas de réussite, cette commande renvoie l'ARN de la cible évolutive. Voici un exemple de sortie.

{ "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

Étape 2 : créer une politique de suivi des objectifs et d’échelonnement

Pour créer une politique de dimensionnement du suivi des cibles, vous pouvez utiliser les exemples suivants pour vous aider à démarrer.

Pour créer une politique de suivi des objectifs et d'échelonnement
  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": "EC2SpotFleetRequestAverageCPUUtilization" } }

    Pour plus d'informations, reportez-vous PredefinedMetricSpecificationà la section Application Auto Scaling API Reference.

    Vous pouvez également utiliser une métrique personnalisée pour la mise à l'échelle en créant une spécification de métrique personnalisée et en ajoutant des valeurs pour chaque paramètre à partir de CloudWatch. Voici un exemple de configuration de suivi des cibles qui maintient l'utilisation moyenne de la métrique spécifiée à 100.

    $ cat ~/config.json { "TargetValue": 100.0, "CustomizedMetricSpecification":{ "MetricName": "MyUtilizationMetric", "Namespace": "MyNamespace", "Dimensions": [ { "Name": "MyOptionalMetricDimensionName", "Value": "MyOptionalMetricDimensionValue" } ], "Statistic": "Average", "Unit": "Percent" } }

    Pour plus d'informations, reportez-vous CustomizedMetricSpecificationà la section Application Auto Scaling API Reference.

  2. Utilisez la put-scaling-policycommande suivante, ainsi que le config.json fichier que vous avez créé, pour créer une politique de dimensionnement nomméecpu50-target-tracking-scaling-policy.

    Linux, macOS ou Unix

    aws application-autoscaling put-scaling-policy --service-namespace ec2 \ --scalable-dimension ec2:spot-fleet-request:TargetCapacity \ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration file://config.json

    Windows

    aws application-autoscaling put-scaling-policy --service-namespace ec2 ^ --scalable-dimension ec2:spot-fleet-request:TargetCapacity ^ --resource-id spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE ^ --policy-name cpu50-target-tracking-scaling-policy --policy-type TargetTrackingScaling ^ --target-tracking-scaling-policy-configuration file://config.json
    Sortie

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

    { "PolicyARN": "arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id:resource/ec2/spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE:policyName/cpu50-target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }

Étape 3 : Décrire les politiques de dimensionnement du suivi des cibles

Vous pouvez décrire toutes les politiques de dimensionnement pour l'espace de noms de service spécifié à l'aide de la describe-scaling-policiescommande suivante.

aws application-autoscaling describe-scaling-policies --service-namespace ec2

Vous pouvez filtrer les résultats pour découvrir uniquement les stratégies de dimensionnement Suivi de la cible à l'aide du paramètre --query. Pour plus d'informations sur la syntaxe de query, consultez Contrôle de la sortie de commande de AWS CLI dans le Guide de l'utilisateur de la AWS Command Line Interface .

Linux, macOS ou Unix

aws application-autoscaling describe-scaling-policies --service-namespace ec2 \ --query 'ScalingPolicies[?PolicyType==`TargetTrackingScaling`]'

Windows

aws application-autoscaling describe-scaling-policies --service-namespace ec2 ^ --query "ScalingPolicies[?PolicyType==`TargetTrackingScaling`]"
Sortie

Voici un exemple de sortie.

[ { "PolicyARN": "PolicyARN", "TargetTrackingScalingPolicyConfiguration": { "PredefinedMetricSpecification": { "PredefinedMetricType": "EC2SpotFleetRequestAverageCPUUtilization" }, "TargetValue": 50.0 }, "PolicyName": "cpu50-target-tracking-scaling-policy", "ScalableDimension": "ec2:spot-fleet-request:TargetCapacity", "ServiceNamespace": "ec2", "PolicyType": "TargetTrackingScaling", "ResourceId": "spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:region:account-id:alarm:TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ], "CreationTime": 1515021724.807 } ]