Gérer le dimensionnement du parc à l'aide AWS CLI de for Amazon AppStream 2.0 - Amazon AppStream 2.0

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.

Gérer le dimensionnement du parc à l'aide AWS CLI de for Amazon AppStream 2.0

Vous pouvez configurer et gérer le dimensionnement de votre flotte à l'aide du AWS Command Line Interface (AWS CLI). Pour des fonctionnalités plus avancées, telles que la configuration de plusieurs politiques de dimensionnement ou la définition de temps de recharge d'évolutivité initiale ou descendante, utilisez le. AWS CLI Avant d’exécuter des commandes liées à la stratégie de dimensionnement, vous devez inscrire votre flotte en tant que cible évolutive. Pour ce faire, utilisez la register-scalable-targetcommande suivante :

aws application-autoscaling register-scalable-target --service-namespace appstream \ --resource-id fleet/fleetname \ --scalable-dimension appstream:fleet:DesiredCapacity \ --min-capacity 1 --max-capacity 5

Exemple 1 : Application d'une stratégie de dimensionnement basée sur l'utilisation de la capacité

Cet AWS CLI exemple définit une politique de dimensionnement qui permet de faire évoluer un parc de 25 % si le taux d'utilisation est supérieur ou égal à 75 %.

La put-scaling-policycommande suivante définit une politique de dimensionnement basée sur l'utilisation :

aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-utilization.json

Le contenu du fichier scale-out-utilization.json est le suivant :

{ "PolicyName": "policyname", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 25 } ], "Cooldown": 120 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l’identificateur de la stratégie est e3425d21-16f0-d701-89fb-12f98dac64af.

{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:e3425d21-16f0-d701-89fb-12f98dac64af:resource/appstream/fleet/SampleFleetName:policyName/scale-out-utilization-policy"}

Maintenant, configurez une CloudWatch alarme pour cette politique. Utilisez les noms, la région, le numéro de compte et l’identificateur de stratégie qui s’appliquent à votre cas. Vous pouvez utiliser la politique ARN renvoyée par la commande précédente pour le --alarm-actions paramètre.

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when Capacity Utilization exceeds 75 percent" \ --metric-name CapacityUtilization \ --namespace AWS/AppStream \ --statistic Average \ --period 300 \ --threshold 75 \ --comparison-operator GreaterThanOrEqualToThreshold \ --dimensions "Name=Fleet,Value=fleetname" \ --evaluation-periods 1 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"

Exemple 2 : Application d'une stratégie de dimensionnement basée sur des erreurs de capacité insuffisante

Cet AWS CLI exemple définit une politique de dimensionnement qui augmente la flotte de 1 si la flotte renvoie une InsufficientCapacityError erreur.

La commande suivante définit une stratégie de dimensionnement basée sur une capacité insuffisante :

aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-capacity.json

Le contenu du fichier scale-out-capacity.json est le suivant :

{ "PolicyName": "policyname", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "ChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ], "Cooldown": 120 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l’identificateur de la stratégie est f4495f21-0650-470c-88e6-0f393adb64fc.

{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:f4495f21-0650-470c-88e6-0f393adb64fc:resource/appstream/fleet/SampleFleetName:policyName/scale-out-insufficient-capacity-policy"}

Maintenant, configurez une CloudWatch alarme pour cette politique. Utilisez les noms, la région, le numéro de compte et l’identificateur de stratégie qui s’appliquent à votre cas. Vous pouvez utiliser la politique ARN renvoyée par la commande précédente pour le --alarm-actions paramètre.

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when out of capacity is > 0" \ --metric-name InsufficientCapacityError \ --namespace AWS/AppStream \ --statistic Maximum \ --period 300 \ --threshold 0 \ --comparison-operator GreaterThanThreshold \ --dimensions "Name=Fleet,Value=fleetname" \ --evaluation-periods 1 --unit Count \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"

Exemple 3 : Application d'une stratégie de dimensionnement basée sur l'utilisation de la capacité

Cet AWS CLI exemple définit une politique de dimensionnement qui adapte le parc afin de réduire la capacité réelle en cas CapacityUtilization de faible capacité.

La commande suivante définit une stratégie de dimensionnement basée sur une capacité en excès :

aws application-autoscaling put-scaling-policy --cli-input-json file://scale-in-capacity.json

Le contenu du fichier scale-in-capacity.json est le suivant :

{ "PolicyName": "policyname", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalUpperBound": 0, "ScalingAdjustment": -25 } ], "Cooldown": 360 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l’identificateur de la stratégie est 12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90.

{"PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90:resource/appstream/fleet/SampleFleetName:policyName/scale-in-utilization-policy"}

Maintenant, configurez une CloudWatch alarme pour cette politique. Utilisez les noms, la région, le numéro de compte et l’identificateur de stratégie qui s’appliquent à votre cas. Vous pouvez utiliser la politique ARN renvoyée par la commande précédente pour le --alarm-actions paramètre.

aws cloudwatch put-metric-alarm --alarm-name alarmname \ --alarm-description "Alarm when Capacity Utilization is less than or equal to 25 percent" \ --metric-name CapacityUtilization \ --namespace AWS/AppStream \ --statistic Average \ --period 120 \ --threshold 25 \ --comparison-operator LessThanOrEqualToThreshold \ --dimensions "Name=Fleet,Value=fleetname" \ --evaluation-periods 10 --unit Percent \ --alarm-actions "arn:aws:autoscaling:your-region-code:account-number-without-hyphens:scalingPolicy:policyid:resource/appstream/fleet/fleetname:policyName/policyname"

Exemple 4 : Modification de la capacité de la flotte selon un calendrier

Modifier la capacité de la flotte selon un calendrier vous permet de mettre à l’échelle la capacité de votre flotte en fonction de modifications prévisibles de la demande. Par exemple, au début d'une journée, vous pouvez prévoir qu'un certain nombre d'utilisateurs vont demander simultanément des connexions de streaming. Pour modifier la capacité de votre flotte en fonction d'un calendrier, vous pouvez utiliser l'PutScheduledActionAPIaction Application Auto Scaling ou la put-scheduled-action AWS CLIcommande.

Avant de modifier la capacité de votre flotte, vous pouvez répertorier la capacité actuelle de votre flotte à l'aide de la commande describe-fleets AppStream AWS CLI 2.0.

aws appstream describe-fleets --name fleetname

La capacité actuelle de la flotte apparaîtra de la même manière que le résultat suivant (présenté dans le JSON format) :

{ { "ComputeCapacityStatus": { "Available": 1, "Desired": 1, "Running": 1, "InUse": 0 }, }

Ensuite, utilisez la commande put-scheduled-action pour créer une action planifiée afin de modifier la capacité de votre flotte. Par exemple, la commande suivante modifie la capacité minimale à 3 et la capacité maximale à 5 chaque jour à 9h00UTC.

Note

Pour les expressions cron, spécifiez quand effectuer l'action dansUTC. Pour plus d'informations consultez Expressions Cron.

aws application-autoscaling put-scheduled-action --service-namespace appstream \ --resource-id fleet/fleetname \ --schedule="cron(0 9 * * ? *)" \ --scalable-target-action MinCapacity=3,MaxCapacity=5 \ --scheduled-action-name ExampleScheduledAction \ --scalable-dimension appstream:fleet:DesiredCapacity

Pour vérifier que l'action planifiée visant à modifier la capacité de votre flotte a bien été créée, exécutez la describe-scheduled-actionscommande.

aws application-autoscaling describe-scheduled-actions --service-namespace appstream --resource-id fleet/fleetname

Si l'action planifiée a été créée avec succès, la sortie apparaît comme suit.

{ "ScheduledActions": [ { "ScalableDimension": "appstream:fleet:DesiredCapacity", "Schedule": "cron(0 9 * * ? *)", "ResourceId": "fleet/ExampleFleet", "CreationTime": 1518651232.886, "ScheduledActionARN": "<arn>", "ScalableTargetAction": { "MinCapacity": 3, "MaxCapacity": 5 }, "ScheduledActionName": "ExampleScheduledAction", "ServiceNamespace": "appstream" } ] }

Pour plus d’informations, consultez Mise à l’échelle planifiée dans le Guide de l’utilisateur Application Auto Scaling..

Exemple 5 : Application d'une stratégie de dimensionnement Suivi de la cible

Avec le dimensionnement Suivi de la cible, vous pouvez spécifier un niveau d’utilisation de la capacité pour votre flotte.

Lorsque vous créez une politique de dimensionnement pour le suivi des cibles, Application Auto Scaling crée et gère automatiquement les CloudWatch alarmes qui déclenchent la politique de dimensionnement. La stratégie de dimensionnement ajoute ou supprime de la capacité si nécessaire pour maintenir l'utilisation de la capacité à la valeur cible spécifiée ou proche de celle-ci. Pour garantir la disponibilité de l’application, votre flotte augmente proportionnellement aux métriques aussi rapidement que possible, mais diminue plus progressivement.

La put-scaling-policycommande suivante définit une politique de dimensionnement du suivi des cibles qui tente de maintenir une utilisation de capacité de 75 % pour un parc AppStream 2.0.

aws application-autoscaling put-scaling-policy --cli-input-json file://config.json

Le contenu du fichier config.json est le suivant :

{ "PolicyName":"target-tracking-scaling-policy", "ServiceNamespace":"appstream", "ResourceId":"fleet/fleetname", "ScalableDimension":"appstream:fleet:DesiredCapacity", "PolicyType":"TargetTrackingScaling", "TargetTrackingScalingPolicyConfiguration":{ "TargetValue":75.0, "PredefinedMetricSpecification":{ "PredefinedMetricType":"AppStreamAverageCapacityUtilization" }, "ScaleOutCooldown":300, "ScaleInCooldown":300 } }

Si la commande est réussie, la sortie est similaire à ce qui suit, bien que certains détails soient uniques pour votre compte et votre région. Dans cet exemple, l'identificateur de stratégie est 6d8972f3-efc8-437c-92d1-6270f29a66e7.

{ "PolicyARN": "arn:aws:autoscaling:us-west-2:123456789012:scalingPolicy:6d8972f3-efc8-437c-92d1-6270f29a66e7:resource/appstream/fleet/fleetname:policyName/target-tracking-scaling-policy", "Alarms": [ { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca", "AlarmName": "TargetTracking-fleet/fleetname-AlarmHigh-d4f0770c-b46e-434a-a60f-3b36d653feca" }, { "AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d", "AlarmName": "TargetTracking-fleet/fleetname-AlarmLow-1b437334-d19b-4a63-a812-6c67aaf2910d" } ] }

Pour plus d’informations, consultez Stratégies de dimensionnement Suivi de cible dans le Guide de l’utilisateur Application Auto Scaling.