Acciones programadas de ejemplo para Auto Scaling de aplicaciones - Application Auto Scaling

Acciones programadas de ejemplo para Auto Scaling de aplicaciones

Los siguientes ejemplos muestran cómo crear acciones programadas con el comando AWS CLI put-scheduled-action. Cuando especifique la nueva capacidad, puede indicar la capacidad mínima, la capacidad máxima o ambas.

nota

Para mayor brevedad, los ejemplos de este tema ilustran los comandos de la CLI para algunos de los servicios que se integran a Application Auto Scaling. Para especificar un destino escalable diferente, especifique su espacio de nombres en --service-namespace, su dimensión escalable en --scalable-dimension y su ID de recurso en --resource-id.

Creación de una acción programada que se produce solo una vez

Para escalar automáticamente el objetivo escalable una sola vez, en una fecha y hora especificadas, utilice la opción --schedule "at(yyyy-mm-ddThh:mm:ss)".

ejemplo Ejemplo: escalado descendente una sola vez

A continuación se muestra un ejemplo de creación de una acción programada para escalar horizontalmente la capacidad en una fecha y hora específicas.

En la fecha y la hora se especifica para --schedule (22:00 horas UTC del 31 de marzo de 2021), si el valor especificado para MinCapacity es superior a la capacidad actual, Auto Scaling de aplicaciones escala horizontalmente a MinCapacity.

Linux, macOS o Unix

aws application-autoscaling put-scheduled-action --service-namespace custom-resource \ --scalable-dimension custom-resource:ResourceType:Property \ --resource-id file://~/custom-resource-id.txt \ --scheduled-action-name scale-out \ --schedule "at(2021-03-31T22:00:00)" \ --scalable-target-action MinCapacity=3

Windows

aws application-autoscaling put-scheduled-action --service-namespace custom-resource --scalable-dimension custom-resource:ResourceType:Property --resource-id file://~/custom-resource-id.txt --scheduled-action-name scale-out --schedule "at(2021-03-31T22:00:00)" --scalable-target-action MinCapacity=3
nota

Cuando se ejecuta esta acción programada, si la capacidad máxima es menor que el valor especificado para la capacidad mínima, debe especificar una nueva capacidad mínima y máxima, y no sólo la capacidad mínima.

ejemplo Ejemplo: escalado ascendente una sola vez

A continuación se muestra un ejemplo de creación de una acción programada para reducir horizontalmente la capacidad en una fecha y hora específicas.

En la fecha y la hora se especifica para las --schedule (22:30 horas UTC del 31 de marzo de 2021), si el valor especificado en MaxCapacity es inferior a la capacidad actual, Auto Scaling de aplicaciones reduce horizontalmente a MaxCapacity.

Linux, macOS o Unix

aws application-autoscaling put-scheduled-action --service-namespace custom-resource \ --scalable-dimension custom-resource:ResourceType:Property \ --resource-id file://~/custom-resource-id.txt \ --scheduled-action-name scale-in \ --schedule "at(2021-03-31T22:30:00)" \ --scalable-target-action MinCapacity=0,MaxCapacity=0

Windows

aws application-autoscaling put-scheduled-action --service-namespace custom-resource --scalable-dimension custom-resource:ResourceType:Property --resource-id file://~/custom-resource-id.txt --scheduled-action-name scale-in --schedule "at(2021-03-31T22:30:00)" --scalable-target-action MinCapacity=0,MaxCapacity=0

Crear de una acción programada que se ejecuta en un intervalo recurrente

Para programar el escalado en un intervalo recurrente, utilice la opción --schedule "rate(value unit)". El valor debe ser un número entero positivo. La unidad puede ser minute, minutes, hour, hours, day o days. Para obtener más información, consulte Expresiones de tasa en la Guía del usuario de Amazon CloudWatch Events.

A continuación se muestra un ejemplo de una acción programada que utiliza una expresión de tasa.

Según el horario especificado (cada 5 horas comenzando el 30 de enero de 2021 a las 24:00 horas UTC y terminando el 31 de enero de 2021 a las 22:00 horas UTC), si el valor especificado para MinCapacity es superior a la capacidad actual, Auto Scaling de aplicaciones escala horizontalmente a MinCapacity. Si el valor especificado en MaxCapacity es inferior a la capacidad actual, Auto Scaling de aplicaciones reduce horizontalmente a MaxCapacity.

Linux, macOS o Unix

aws application-autoscaling put-scheduled-action --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/default/web-app \ --scheduled-action-name my-recurring-action \ --schedule "rate(5 hours)" \ --start-time 2021-01-30T12:00:00 \ --end-time 2021-01-31T22:00:00 \ --scalable-target-action MinCapacity=3,MaxCapacity=10

Windows

aws application-autoscaling put-scheduled-action --service-namespace ecs --scalable-dimension ecs:service:DesiredCount --resource-id service/default/web-app --scheduled-action-name my-recurring-action --schedule "rate(5 hours)" --start-time 2021-01-30T12:00:00 --end-time 2021-01-31T22:00:00 --scalable-target-action MinCapacity=3,MaxCapacity=10

Creación de una acción programada que se ejecute en una programación recurrente

Para programar el escalado con una programación recurrente, utilice la opción --schedule "cron(fields)". Para obtener más información, consulte Programar acciones de escalado recurrentes mediante expresiones cron .

A continuación se muestra un ejemplo de una acción programada que utiliza una expresión cron.

Cuando llega la programación especificada (todos los días a las 9:00 horas UTC), si el valor especificado en MinCapacity es superior a la capacidad actual, Auto Scaling de aplicaciones escala horizontalmente a MinCapacity. Si el valor especificado en MaxCapacity es inferior a la capacidad actual, Auto Scaling de aplicaciones reduce horizontalmente a MaxCapacity.

Linux, macOS o Unix

aws application-autoscaling put-scheduled-action --service-namespace appstream \ --scalable-dimension appstream:fleet:DesiredCapacity \ --resource-id fleet/sample-fleet \ --scheduled-action-name my-recurring-action \ --schedule "cron(0 9 * * ? *)" \ --scalable-target-action MinCapacity=10,MaxCapacity=50

Windows

aws application-autoscaling put-scheduled-action --service-namespace appstream --scalable-dimension appstream:fleet:DesiredCapacity --resource-id fleet/sample-fleet --scheduled-action-name my-recurring-action --schedule "cron(0 9 * * ? *)" --scalable-target-action MinCapacity=10,MaxCapacity=50

Crear una acción programada puntual que especifica una zona horaria

De forma predeterminada, las acciones programadas se establecen en la zona horaria UTC. Para especificar una zona horaria diferente, incluya la opción --timezone y especifique el nombre canónico para la zona horaria (America/New_York, por ejemplo). Para obtener más información, consulte https://www.joda.org/joda-time/timezones.html, que proporciona información sobre las zonas horarias de IANA que se admiten al llamar a put-scheduled-action.

A continuación, se muestra un ejemplo que utiliza la opción --timezone al crear una acción programada para escalar la capacidad en una fecha y hora específicas.

En la fecha y la hora se especifica para --schedule (17:00 horas hora local del 31 de enero de 2021), si el valor especificado para MinCapacity es superior a la capacidad actual, Auto Scaling de aplicaciones escala horizontalmente a MinCapacity. Si el valor especificado en MaxCapacity es inferior a la capacidad actual, Auto Scaling de aplicaciones reduce horizontalmente a MaxCapacity.

Linux, macOS o Unix

aws application-autoscaling put-scheduled-action --service-namespace comprehend \ --scalable-dimension comprehend:document-classifier-endpoint:DesiredInferenceUnits \ --resource-id arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE \ --scheduled-action-name my-one-time-action \ --schedule "at(2021-01-31T17:00:00)" --timezone "America/New_York" \ --scalable-target-action MinCapacity=1,MaxCapacity=3

Windows

aws application-autoscaling put-scheduled-action --service-namespace comprehend --scalable-dimension comprehend:document-classifier-endpoint:DesiredInferenceUnits --resource-id arn:aws:comprehend:us-west-2:123456789012:document-classifier-endpoint/EXAMPLE --scheduled-action-name my-one-time-action --schedule "at(2021-01-31T17:00:00)" --timezone "America/New_York" --scalable-target-action MinCapacity=1,MaxCapacity=3

Creación de una acción programada recurrente que especifique una zona horaria

A continuación, se muestra un ejemplo que utiliza la opción --timezone al crear una acción programada recurrente para escalar la capacidad. Para obtener más información, consulte Programar acciones de escalado recurrentes mediante expresiones cron .

Cuando llega la programación especificada (todos los días de lunes a viernes a las 18:00 horas hora local), si el valor especificado en MinCapacity es superior a la capacidad actual, Auto Scaling de aplicaciones escala horizontalmente a MinCapacity. Si el valor especificado en MaxCapacity es inferior a la capacidad actual, Auto Scaling de aplicaciones reduce horizontalmente a MaxCapacity.

Linux, macOS o Unix

aws application-autoscaling put-scheduled-action --service-namespace lambda \ --scalable-dimension lambda:function:ProvisionedConcurrency \ --resource-id function:my-function:BLUE \ --scheduled-action-name my-recurring-action \ --schedule "cron(0 18 ? * MON-FRI *)" --timezone "Etc/GMT+9" \ --scalable-target-action MinCapacity=10,MaxCapacity=50

Windows

aws application-autoscaling put-scheduled-action --service-namespace lambda --scalable-dimension lambda:function:ProvisionedConcurrency --resource-id function:my-function:BLUE --scheduled-action-name my-recurring-action --schedule "cron(0 18 ? * MON-FRI *)" --timezone "Etc/GMT+9" --scalable-target-action MinCapacity=10,MaxCapacity=50