Gestione della scalabilità della flotta utilizzando AWS CLI per Amazon 2.0 AppStream - Amazon AppStream 2.0

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Gestione della scalabilità della flotta utilizzando AWS CLI per Amazon 2.0 AppStream

È possibile configurare e gestire la scalabilità della flotta utilizzando AWS Command Line Interface ()AWS CLI. Per funzionalità più avanzate come l'impostazione di più politiche di scalabilità o l'impostazione di tempi di recupero con scalabilità verticale e orizzontale, utilizza il. AWS CLI Prima di eseguire i comandi della policy di dimensionamento, è necessario registrare il parco istanze come destinazione scalabile. A tale scopo, utilizzare il seguente comando: register-scalable-target

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

Esempio 1: Applicazione di una policy di dimensionamento basata sull'utilizzo della capacità

Questo AWS CLI esempio imposta una politica di scalabilità che ridimensiona un parco veicoli del 25% se l'utilizzo è superiore al 75%.

Il put-scaling-policycomando seguente definisce una politica di scalabilità basata sull'utilizzo:

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

Il contenuto del file scale-out-utilization.json è il seguente:

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

Se il comando viene completato correttamente, l'output è simile a quello nell'esempio seguente, anche se alcuni dettagli sono univoci per account e regione. In questo esempio, l'identificativo della policy è 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"}

Ora, imposta un CloudWatch allarme per questa politica. Utilizzare i nomi, la regione, il numero di account e l'identificatore della policy applicabili all'utente. È possibile utilizzare la politica ARN restituita dal comando precedente per il --alarm-actions parametro.

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"

Esempio 2: Applicazione di una policy di dimensionamento basata sugli errori di capacità insufficiente

Questo AWS CLI esempio imposta una politica di scalabilità che ridimensiona il parco veicoli di 1 unità se il parco dati restituisce un InsufficientCapacityError errore.

Il comando seguente definisce una policy di dimensionamento basato su capacità insufficiente:

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

Il contenuto del file scale-out-capacity.json è il seguente:

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

Se il comando viene completato correttamente, l'output è simile a quello nell'esempio seguente, anche se alcuni dettagli sono univoci per account e regione. In questo esempio, l'identificativo della policy è 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"}

Ora, imposta un CloudWatch allarme per questa politica. Utilizzare i nomi, la regione, il numero di account e l'identificatore della policy applicabili all'utente. È possibile utilizzare la politica ARN restituita dal comando precedente per il --alarm-actions parametro.

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"

Esempio 3: Applicazione di una policy di dimensionamento basata sull'utilizzo ridotto della capacità

Questo AWS CLI esempio imposta una politica di scalabilità scalabile all'interno del parco veicoli per ridurre la capacità effettiva quando CapacityUtilization è bassa.

Il comando seguente definisce una policy di dimensionamento basata su capacità in eccesso:

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

Il contenuto del file scale-in-capacity.json è il seguente:

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

Se il comando viene completato correttamente, l'output è simile a quello nell'esempio seguente, anche se alcuni dettagli sono univoci per account e regione. In questo esempio, l'identificativo della policy è 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"}

Ora, imposta un CloudWatch allarme per questa politica. Utilizzare i nomi, la regione, il numero di account e l'identificatore della policy applicabili all'utente. È possibile utilizzare la politica ARN restituita dal comando precedente per il --alarm-actions parametro.

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"

Esempio 4: Modifica della capacità del parco istanze su pianificazione

La modifica della capacità del parco istanze in base a una pianificazione consente di dimensionare la capacità del parco istanze in risposta a modifiche prevedibili della richiesta. Ad esempio, all'inizio di un giorno lavorativo, si può aspettare un certo numero di utenti per richiedere connessioni di streaming simultaneamente. Per modificare la capacità del parco veicoli in base a una pianificazione, è possibile utilizzare l'PutScheduledActionAPIazione Application Auto Scaling o il put-scheduled-action AWS CLIcomando.

Prima di modificare la capacità della flotta, puoi elencare la capacità attuale della flotta utilizzando il comando AppStream 2.0 AWS CLIdescribe-fleets.

aws appstream describe-fleets --name fleetname

La capacità attuale della flotta apparirà simile al seguente output (mostrato nel formato): JSON

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

Quindi, utilizzare il comando put-scheduled-action per creare un'operazione pianificata per modificare la capacità del parco istanze. Ad esempio, il comando seguente modifica la capacità minima a 3 e la capacità massima a 5 ogni giorno alle 9:00. UTC

Nota

Per le espressioni cron, specifica quando eseguire l'azione in. UTC Per ulteriori informazioni consulta Cron Expressions (Espressioni 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

Per confermare che l'azione pianificata per modificare la capacità della flotta è stata creata con successo, esegui il describe-scheduled-actionscomando.

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

Se l'azione pianificata è stata creata correttamente, l'output è simile al seguente.

{ "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" } ] }

Per ulteriori informazioni, consulta Dimensionamento pianificato nella Guida per l'utente di Application Auto Scaling.

Esempio 5: Applicazione di una policy di dimensionamento di monitoraggio del target

Con il dimensionamento del monitoraggio del target, è possibile specificare un livello di utilizzo della capacità per il parco istanze.

Quando si crea una politica di scalabilità di tracciamento degli obiettivi, Application Auto Scaling crea e CloudWatch gestisce automaticamente gli allarmi che attivano la politica di scalabilità. La policy di dimensionamento aggiunge o rimuove la capacità in base alle necessità, per l'utilizzo della capacità al valore di destinazione specificato o vicino a esso. Per garantire la disponibilità delle applicazioni, il parco istanze aumenta in proporzione al parametro il più velocemente possibile, ma si riduce in modo più graduale.

Il put-scaling-policycomando seguente definisce una politica di scalabilità di tracciamento degli obiettivi che tenta di mantenere l'utilizzo della capacità del 75% per un parco veicoli 2.0. AppStream

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

Il contenuto del file config.json è il seguente:

{ "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 } }

Se il comando viene completato correttamente, l'output è simile a quello nell'esempio seguente, anche se alcuni dettagli sono univoci per account e regione. In questo esempio, l'identificatore di policy è 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" } ] }

Per ulteriori informazioni, consulta Policy di dimensionamento del monitoraggio di target nella Guida per l'utente di Application Auto Scaling.