Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Gestión del escalado de AWS CLI flotas con Amazon AppStream 2.0
Puede configurar y gestionar el escalado de la flota mediante AWS Command Line Interface (AWS CLI). Para funciones más avanzadas, como configurar varias políticas de escalado o establecer tiempos de enfriamiento de escalado interno y escalable, usa el. AWS CLI Antes de ejecutar los comandos de las políticas de escalado, debe registrar la flota como objetivo escalable. Para ello, utilice el siguiente 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
Ejemplos
- Ejemplo 1: Aplicación de una política de escalado basada en la métrica Capacity Utilization
- Ejemplo 2: Aplicación de una política de escalado basada en la métrica Insufficient Capacity Errors
- Ejemplo 3: Aplicar una política de escalado basada en la métrica Low Capacity Utilization
- Ejemplo 4: Cambiar la capacidad de la flota en función de una programación
- Ejemplo 5: aplicación de una política de escalado de seguimiento de destino
Ejemplo 1: Aplicación de una política de escalado basada en la métrica Capacity Utilization
En este AWS CLI ejemplo, se establece una política de escalado que amplía la flota en un 25% si la utilización es superior al 75%.
El siguiente put-scaling-policycomando define una política de escalado basada en la utilización:
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-utilization.json
El contenido del archivo scale-out-utilization.json
es el siguiente:
{ "PolicyName": "
policyname
", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname
", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 25 } ], "Cooldown": 120 } }
Si el comando es correcto, el resultado es similar al siguiente, aunque algunos datos son exclusivos de cada cuenta y región. En este ejemplo, el identificador de la política es 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"}
Ahora, configure una CloudWatch alarma para esta política. Utilice los nombres, la región, el número de cuenta y el identificador de la política que se le apliquen a usted. Puede usar la política ARN devuelta por el comando anterior para el --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
"
Ejemplo 2: Aplicación de una política de escalado basada en la métrica Insufficient Capacity Errors
En este AWS CLI ejemplo, se establece una política de escalado que amplía la flota en 1 si la flota arroja un InsufficientCapacityError
error.
El comando siguiente define una política de escalado basada en la capacidad insuficiente:
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-out-capacity.json
El contenido del archivo scale-out-capacity.json
es el siguiente:
{ "PolicyName": "
policyname
", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname
", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "ChangeInCapacity", "StepAdjustments": [ { "MetricIntervalLowerBound": 0, "ScalingAdjustment": 1 } ], "Cooldown": 120 } }
Si el comando es correcto, el resultado es similar al siguiente, aunque algunos datos son exclusivos de cada cuenta y región. En este ejemplo, el identificador de la política es 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"}
Ahora, configura una CloudWatch alarma para esta política. Utilice los nombres, la región, el número de cuenta y el identificador de la política que se le apliquen a usted. Puede usar la política ARN devuelta por el comando anterior para el --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
"
Ejemplo 3: Aplicar una política de escalado basada en la métrica Low Capacity Utilization
En este AWS CLI ejemplo, se establece una política de escalado que se amplía en la flota para reducir la capacidad real cuando ésta CapacityUtilization
es baja.
El comando siguiente define una política de escalado basada en la capacidad excesiva:
aws application-autoscaling put-scaling-policy --cli-input-json file://scale-in-capacity.json
El contenido del archivo scale-in-capacity.json
es el siguiente:
{ "PolicyName": "
policyname
", "ServiceNamespace": "appstream", "ResourceId": "fleet/fleetname
", "ScalableDimension": "appstream:fleet:DesiredCapacity", "PolicyType": "StepScaling", "StepScalingPolicyConfiguration": { "AdjustmentType": "PercentChangeInCapacity", "StepAdjustments": [ { "MetricIntervalUpperBound": 0, "ScalingAdjustment": -25 } ], "Cooldown": 360 } }
Si el comando es correcto, el resultado es similar al siguiente, aunque algunos datos son exclusivos de cada cuenta y región. En este ejemplo, el identificador de la política es 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"}
Ahora, configure una CloudWatch alarma para esta política. Utilice los nombres, la región, el número de cuenta y el identificador de la política que se le apliquen a usted. Puede usar la política ARN devuelta por el comando anterior para el --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
"
Ejemplo 4: Cambiar la capacidad de la flota en función de una programación
El cambio de la capacidad de la flota en función de una programación le permite escalar la capacidad de su flota como respuesta a los cambios previstos en la demanda. Por ejemplo, al inicio de un día laborable, es posible que espere que un determinado número de usuarios solicite conexiones de streaming al mismo tiempo. Para cambiar la capacidad de su flota según un cronograma, puede usar la PutScheduledActionAPIacción Application Auto Scaling o el put-scheduled-action AWS CLIcomando.
Antes de cambiar la capacidad de la flota, puede hacer una lista de la capacidad de la flota actual mediante el comando AppStream 2.0 describe-fleets AWS CLI.
aws appstream describe-fleets --name
fleetname
La capacidad actual de la flota aparecerá de forma similar a la siguiente salida (que se muestra en formato): JSON
{
{
"ComputeCapacityStatus": {
"Available": 1,
"Desired": 1,
"Running": 1,
"InUse": 0
},
}
A continuación, utilice el comando put-scheduled-action
para crear una acción programada para cambiar la capacidad de su flota. Por ejemplo, el siguiente comando cambia la capacidad mínima a 3 y la capacidad máxima a 5 todos los días a las 9:00 a.mUTC.
nota
En el caso de las expresiones cron, especifique en UTC qué momento se realizará la acción. Para obtener más información, consulte Expresiones 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 la acción programada para cambiar la capacidad de la flota se creó correctamente, ejecute el describe-scheduled-actionscomando.
aws application-autoscaling describe-scheduled-actions --service-namespace appstream --resource-id fleet/
fleetname
Si la acción programada se ha creado correctamente, el resultado tiene un aspecto similar al siguiente.
{
"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 obtener más información, consulte Escalado programado en la Guía del usuario de Auto Scaling de aplicaciones.
Ejemplo 5: aplicación de una política de escalado de seguimiento de destino
Con el escalado de seguimiento de destino puede especificar un nivel de uso de capacidad para la flota.
Al crear una política de escalado de seguimiento de objetivos, Application Auto Scaling crea y gestiona automáticamente CloudWatch las alarmas que activan la política de escalado. La política de escalado amplía o reduce la capacidad en función de las necesidades para mantener el uso de la capacidad en el valor objetivo especificado o en un valor próximo. Para garantizar la disponibilidad de la aplicación, su flota se escala de forma ascendente de un modo proporcional a la métrica tan rápido como puede, pero se escala de forma descendente de un modo más gradual.
El siguiente put-scaling-policycomando define una política de escalado y seguimiento de objetivos que intenta mantener una utilización de la capacidad del 75% en una flota AppStream 2.0.
aws application-autoscaling put-scaling-policy --cli-input-json file://config.json
El contenido del archivo config.json
es el siguiente:
{ "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 el comando es correcto, el resultado es similar al siguiente, aunque algunos datos son exclusivos de cada cuenta y región. En este ejemplo, el identificador de la política es 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 obtener más información, consulte Políticas de escalado de seguimiento de destino en la Guía del usuario de Auto Scaling de aplicaciones.