Gerenciando a escalabilidade da frota usando o AWS CLI for Amazon 2.0 AppStream - Amazon AppStream 2.0

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciando a escalabilidade da frota usando o AWS CLI for Amazon 2.0 AppStream

Você pode configurar e gerenciar o escalonamento da frota usando o AWS Command Line Interface (AWS CLI). Para recursos mais avançados, como configurar várias políticas de escalabilidade ou definir tempos de recarga de expansão e redução, use o. AWS CLI Para executar comandos de política de escalabilidade, você deve primeiro registrar sua frota como um destino escalável. Para fazer isso, use o seguinte register-scalable-targetcomando:

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

Exemplo 1: aplicação de uma política de escalabilidade com base na utilização de capacidade

Este AWS CLI exemplo configura uma política de escalabilidade que expande uma frota em 25% se a utilização for >= 75%.

O put-scaling-policycomando a seguir define uma política de escalabilidade baseada na utilização:

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

Os conteúdos do arquivo scale-out-utilization.json são os seguintes:

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

Se o comando tiver êxito, o resultado será semelhante ao seguinte, embora alguns detalhes sejam exclusivos à sua conta e região. Neste exemplo, o identificador de políticas é 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"}

Agora, configure um CloudWatch alarme para essa política. Use os nomes, a região, o número da conta e o identificador de política que se aplicam a você. Você pode usar a política ARN retornada pelo comando anterior para o --alarm-actions parâmetro.

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"

Exemplo 2: aplicação de uma política de escalabilidade com base em erros de capacidade insuficiente

Este AWS CLI exemplo configura uma política de escalabilidade que aumenta a frota em 1 se a frota retornar um InsufficientCapacityError erro.

O seguinte comando define uma política de escalabilidade com base na capacidade insuficiente:

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

Os conteúdos do arquivo scale-out-capacity.json são os seguintes:

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

Se o comando tiver êxito, o resultado será semelhante ao seguinte, embora alguns detalhes sejam exclusivos à sua conta e região. Neste exemplo, o identificador de políticas é 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"}

Agora, configure um CloudWatch alarme para essa política. Use os nomes, a região, o número da conta e o identificador de política que se aplicam a você. Você pode usar a política ARN retornada pelo comando anterior para o --alarm-actions parâmetro.

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"

Exemplo 3: aplicação de uma política de escalabilidade com base na utilização de capacidade

Este AWS CLI exemplo configura uma política de escalabilidade que se expande na frota para reduzir a capacidade real quando CapacityUtilization está baixa.

O seguinte comando define uma política de escalabilidade com base na capacidade excessiva:

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

Os conteúdos do arquivo scale-in-capacity.json são os seguintes:

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

Se o comando tiver êxito, o resultado será semelhante ao seguinte, embora alguns detalhes sejam exclusivos à sua conta e região. Neste exemplo, o identificador de políticas é 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"}

Agora, configure um CloudWatch alarme para essa política. Use os nomes, a região, o número da conta e o identificador de política que se aplicam a você. Você pode usar a política ARN retornada pelo comando anterior para o --alarm-actions parâmetro.

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"

Exemplo 4: alterar a capacidade de frota com base em uma programação

A alteração da capacidade de frota com base em uma programação permite escalar a capacidade de frota em resposta a alterações previsíveis na demanda. Por exemplo, no início de um dia útil, você pode esperar que um determinado número de usuários solicite conexões de streaming de uma só vez. Para alterar a capacidade da sua frota com base em um cronograma, você pode usar a PutScheduledActionAPIação Application Auto Scaling ou o put-scheduled-action AWS CLIcomando.

Antes de alterar a capacidade da sua frota, você pode listar a capacidade atual da sua frota usando o comando AppStream 2.0 describe-fleets AWS CLI.

aws appstream describe-fleets --name fleetname

A capacidade atual da frota será semelhante à seguinte saída (mostrada no JSON formato):

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

Em seguida, use o comando put-scheduled-action para criar uma ação programada para alterar a capacidade de frota. Por exemplo, o comando a seguir altera a capacidade mínima para 3 e a capacidade máxima para 5 todos os dias às 9hUTC.

nota

Para expressões cron, especifique quando realizar a ação emUTC. Para obter mais informações, consulte Expressões 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

Para confirmar que a ação programada para alterar a capacidade da sua frota foi criada com sucesso, execute o describe-scheduled-actionscomando.

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

Se a ação programada for criada com êxito, a saída será semelhante ao seguinte.

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

Para obter mais informações, consulte Escalabilidade programada no Guia do usuário do Application Auto Scaling.

Exemplo 5: Aplicar uma política de escalabilidade de rastreamento de destino

Com a escalabilidade de rastreamento de destino, é possível especificar um nível de utilização de capacidade para a frota.

Quando você cria uma política de escalabilidade de rastreamento de metas, o Application Auto Scaling cria e CloudWatch gerencia automaticamente os alarmes que acionam a política de escalabilidade. A política de escalabilidade adiciona ou remove capacidade conforme necessário para manter a utilização da capacidade no valor de destino especificado ou próxima a ele. Para garantir a disponibilidade do aplicativo, a frota é expandida proporcionalmente à métrica o mais rápido possível, mas é reduzida gradualmente.

O put-scaling-policycomando a seguir define uma política de escalabilidade de rastreamento de metas que tenta manter 75% de utilização da capacidade para uma frota AppStream 2.0.

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

Os conteúdos do arquivo config.json são os seguintes:

{ "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 o comando tiver êxito, o resultado será semelhante ao seguinte, embora alguns detalhes sejam exclusivos à sua conta e região. Neste exemplo, o identificador da política é 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" } ] }

Para obter mais informações, consulte Políticas de escalabilidade de rastreamento de destino no Guia do usuário do Application Auto Scaling.