Escalado programado para Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

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.

Escalado programado para Amazon EC2 Auto Scaling

Con el escalado programado, puede configurar el escalado automático para su aplicación en función de los cambios de carga predecibles. Puede crear acciones programadas que aumenten o disminuyan la capacidad deseada del grupo en momentos específicos.

Por ejemplo, experimentas un patrón de tráfico semanal regular en el que la carga aumenta a mitad de semana y disminuye hacia el final de la semana. Puede configurar un programa de escalado en Amazon EC2 Auto Scaling que se ajuste a este patrón:

  • El miércoles por la mañana, una acción programada aumentará la capacidad al aumentar la capacidad deseada previamente establecida del grupo Auto Scaling.

  • El viernes por la noche, otra acción programada reduce la capacidad al disminuir la capacidad deseada previamente establecida del grupo Auto Scaling.

Estas acciones de escalado programadas le permiten optimizar los costes y el rendimiento. Su aplicación tiene la capacidad suficiente para gestionar los picos de tráfico entre semana, pero no aprovisiona en exceso la capacidad innecesaria en otros momentos.

Puede combinar políticas de escalado programadas y políticas de escalado para aprovechar las ventajas de ambos enfoques de escalado. Después de ejecutar una acción de escalado programado, la política de escalado puede seguir tomando decisiones sobre si desea ampliar la capacidad. Esto le ayuda a garantizar que tiene capacidad suficiente para controlar la carga de su aplicación. Mientras la aplicación se escala para adaptarse a la demanda, la capacidad actual debe estar dentro de la capacidad mínima y máxima establecida por la acción programada.

Cómo funciona el escalado programado

Para usar el escalado programado, cree acciones programadas que indiquen a Amazon EC2 Auto Scaling que realice actividades de escalado en momentos específicos. Cuando crea una acción programada, especifica el grupo Auto Scaling, cuándo debe producirse la actividad de escalado, la nueva capacidad deseada y, opcionalmente, una nueva capacidad mínima y una nueva capacidad máxima. Puede crear acciones programadas que realizan el escalado de forma puntual o periódica.

En el momento especificado, el Auto Scaling de Amazon EC2 escala en función de los nuevos valores de capacidad, comparando la capacidad actual con la capacidad deseada especificada.

  • Si la capacidad actual es inferior a la capacidad deseada especificada, Amazon EC2 Auto Scaling amplía o agrega instancias a la capacidad deseada especificada.

  • Si la capacidad actual es superior a la capacidad deseada especificada, Amazon EC2 Auto Scaling amplía o elimina las instancias hasta alcanzar la capacidad deseada especificada.

Una acción programada establece la capacidad deseada, mínima y máxima del grupo en la fecha y hora especificadas. Puede crear una acción programada solo para una de estas capacidades a la vez, por ejemplo, la capacidad deseada. Sin embargo, hay algunos casos en los que debe incluir la capacidad mínima y máxima para garantizar que la capacidad deseada que especificó en la acción no supere estos límites.

Programas recurrentes

Para crear una programación periódica mediante el uso del SDK AWS CLI o del SDK, especifique una expresión cron y una zona horaria para describir cuándo se repetirá la acción programada. Opcionalmente, puede especificar una fecha y una hora para la hora de inicio, la hora de finalización o para ambas.

Para crear una programación periódica mediante AWS Management Console, especifique el patrón de recurrencia, la zona horaria, la hora de inicio y la hora de finalización opcional de la acción programada. Todas las opciones de patrón de recurrencia se basan en expresiones cron. Alternativamente, puede escribir su propia expresión cron personalizada.

El formato de expresión cron admitido consta de cinco campos separados por espacios en blanco: [Minuto] [Hora] [Día_del_mes] [Mes_del_año] [Día_de_la_semana]. Por ejemplo, la expresión cron 30 6 * * 2 configura una acción programada que se repite cada martes a las 06:30. El asterisco se utiliza como comodín para coincidir con todos los valores de un campo. Para ver otros ejemplos de expresiones de cron, consulte https://crontab.guru/examples.html. Para obtener información sobre cómo escribir sus propias expresiones cron en este formato, consulte Crontab.

Elija cuidadosamente sus horarios de inicio y fin. Tenga en cuenta lo siguiente:

  • Si especifica una hora de inicio, Amazon EC2 Auto Scaling realiza la acción en ese momento y, a continuación, realiza la acción basada en la recurrencia especificada.

  • Si especifica una hora de finalización, la acción deja de repetirse después de esta hora. Una acción programada no se mantiene en su cuenta una vez que ha alcanzado su hora de finalización.

  • La hora de inicio y la hora de finalización deben estar configuradas en UTC cuando utilices el SDK AWS CLI o un SDK.

Zona horaria

De forma predeterminada, las programaciones recurrentes se establecen en Hora universal coordinada (UTC). Puede cambiar la zona hora para que se corresponda con la zona horaria local o con una zona horaria de otra parte de la red. Cuando se especifica una zona horaria que observa el horario de verano (DST), la acción se ajusta automáticamente para horario de verano.

Los valores válidos son los nombres canónicos de las zonas horarias de la base de datos de zonas horarias de la Autoridad de Números Asignados en Internet (IANA). Por ejemplo, la hora del este de EE. UU. se identifica canónicamente como. America/New_York Para obtener más información, consulte https://www.iana.org/time-zones.

Las zonas horarias basadas en la ubicación, por ejemplo, se ajustan America/New_York automáticamente al horario de verano. Sin embargo, una zona horaria basada en UTC como Etc/UTC es una hora absoluta y no se ajustará al horario de verano.

Por ejemplo, tiene una programación recurrente cuya zona horaria es America/New_York. La primera acción de escalado tiene lugar en la zona horaria America/New_York antes de que comience el horario de verano. La siguiente acción de escalado ocurre en la zona horaria America/New_York después de que se inicie el horario de verano. La primera acción comienza a las 8:00 UTC-5 en hora local, mientras que la segunda comienza a las 8:00 UTC-4 en hora local.

Si crea una acción programada utilizando AWS Management Console y especifica una zona horaria que respete el horario de verano, tanto la programación periódica como las horas de inicio y finalización se ajustarán automáticamente al horario de verano.

Consideraciones

Cuando cree una acción programada, tenga en cuenta lo siguiente:

  • El orden de ejecución de las acciones programadas se garantiza dentro del mismo grupo, pero no para las acciones programadas en los distintos grupos.

  • Por lo general, una acción programada se ejecuta en cuestión de segundos. Sin embargo, la acción puede retrasarse durante un máximo de dos minutos desde la hora de inicio programada. Como las acciones programadas de un grupo de escalado automático se ejecutan en el orden en el que se especifican, las acciones con horas de inicio programadas cercanas pueden tardar más en ejecutarse.

  • Puede desactivar temporalmente el escalado programado para un grupo de escalado automático suspendiendo el proceso de ScheduledActions. Esto evita que las acciones programadas estén activas sin tener que eliminarlas. Podrá reanudar el escalado programado cuando desee volver a utilizarlo. Para obtener más información, consulte Suspender y reanudar los procesos de Auto Scaling de Amazon EC2.

  • Después de crear una acción programada, puede actualizar cualquiera de sus configuraciones excepto el nombre.

Creación de una acción programada

Para crear una acción programada para su grupo de Auto Scaling, utilice uno de los siguientes métodos:

Console
Para crear una acción programada
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione la casilla situada junto al grupo de escalado automático.

    Se abre un panel dividido en la parte inferior de la página.

  3. En la pestaña Escalado automático, en Acciones programadas, elija Crear acción programada.

  4. Escriba un Name (Nombre), para la acción programada.

  5. Para Capacidad deseada, Mín., Máx., elija la nueva capacidad deseada del grupo y los nuevos límites de tamaños mínimos y máximos. La capacidad deseada debe ser igual o mayor que el tamaño mínimo del grupo e igual o menor al tamaño máximo del grupo.

  6. En Recurrence (Recurrencia), elija una de las opciones disponibles.

    • Si desea escalar según una programación recurrente, elija la frecuencia con la que Amazon EC2 Auto Scaling debe ejecutar la acción programada.

      • Si elige una opción que comienza por Every (Cada), la expresión de cron se crea automáticamente.

      • Si elige Cron, escriba una expresión cron que especifique cuándo se debe realizar la acción.

    • Si desea escalar una sola vez, elija Once (Una vez).

  7. Para Time zone (Zona horaria), elija una zona horaria. El valor predeterminado es Etc/UTC.

    Todas las zonas horarias enumeradas provienen de la base de datos de zona horaria de IANA. Para obtener más información, consulte https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.

  8. Definir una fecha y hora para Specific start time (Hora de inicio específica).

    • Si elige una programación recurrente, la hora de inicio define cuándo se ejecuta la primera acción programada de la serie recurrente.

    • Si eligió Once (Una vez) para la recurrencia, la hora de inicio define la fecha y la hora para que se ejecute la acción de la programación.

  9. (Opcional) Para programaciones recurrentes, puede especificar una hora de finalización seleccionando Set End Time (Configurar hora de finalización) y, a continuación, elegir una fecha y hora para End by (Finalizar el).

  10. Seleccione Crear. La consola muestra las acciones programadas para el grupo de escalado automático.

AWS CLI

Para crear una acción programada, puede utilizar uno de los siguientes comandos de ejemplo. Reemplace cada marcador de posición de entrada del usuario con información propia.

Ejemplo: Escalar solo una vez

Utilice el siguiente comando put-scheduled-update-group-action con las --desired-capacity opciones --start-time "YYYY-MM-DDThh:mm:ssZ" y.

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-one-time-action \ --auto-scaling-group-name my-asg --start-time "2021-03-31T08:00:00Z" --desired-capacity 3
Ejemplo: para programar el escalado de forma periódica

Utilice el siguiente comando put-scheduled-update-group-action con las --desired-capacity opciones --recurrence "cron expression" y.

aws autoscaling put-scheduled-update-group-action --scheduled-action-name my-recurring-action \ --auto-scaling-group-name my-asg --recurrence "0 9 * * *" --desired-capacity 3

De forma predeterminada, Auto Scaling de Amazon EC2 ejecuta el programa de recurrencia especificado en función de la zona horaria UTC. Para especificar una zona horaria diferente, incluya la --time-zone opción y el nombre de la zona horaria de la IANA, como en el siguiente ejemplo.

--time-zone "America/New_York"

Para obtener más información, consulte https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.

Consulte los detalles de las acciones programadas

Para ver los detalles de las próximas acciones programadas para su grupo de Auto Scaling, utilice uno de los siguientes métodos:

Console
Para ver los detalles de las acciones programadas
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione el grupo de escalado automático.

  3. En la pestaña Escalado automático, en la sección Acciones programadas, puede ver las próximas acciones programadas.

Tenga en cuenta que la consola muestra los valores de la hora de inicio y la hora de finalización en su hora local con el desfase UTC vigente en la fecha y hora especificadas. El desfase UTC es la diferencia, en horas y minutos, entre la hora local y UTC. El valor de Time zone (Zona horaria) muestra la zona horaria solicitada, por ejemplo, America/New_York.

AWS CLI

Use el siguiente comando describe-scheduled-actions.

aws autoscaling describe-scheduled-actions --auto-scaling-group-name my-asg

Si se ejecuta correctamente, este comando proporciona información similar a la siguiente.

{ "ScheduledUpdateGroupActions": [ { "AutoScalingGroupName": "my-asg", "ScheduledActionName": "my-recurring-action", "Recurrence": "30 0 1 1,6,12 *", "ScheduledActionARN": "arn:aws:autoscaling:us-west-2:123456789012:scheduledUpdateGroupAction:8e86b655-b2e6-4410-8f29-b4f094d6871c:autoScalingGroupName/my-asg:scheduledActionName/my-recurring-action", "StartTime": "2020-12-01T00:30:00Z", "Time": "2020-12-01T00:30:00Z", "MinSize": 1, "MaxSize": 6, "DesiredCapacity": 4 } ] }

Verificación de actividades de escalado

Para verificar las actividades de escalado asociadas con el escalado programado, consulte Verificación de una actividad de escalado para un grupo de escalado automático.

Eliminación de una acción programada

Para eliminar una acción programada, utilice uno de los siguientes métodos:

Console
Para eliminar una acción programada
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione el grupo de escalado automático.

  3. En la pestaña Automatic scaling (Escalado automático), en Scheduled actions (Acciones programadas), seleccione una acción programada.

  4. Elija Actions (Acciones), Delete (Eliminar).

  5. Cuando se le indique que confirme, seleccione Yes, Delete (Sí, borrar).

AWS CLI

Use el siguiente comando delete-scheduled-action.

aws autoscaling delete-scheduled-action --auto-scaling-group-name my-asg \ --scheduled-action-name my-recurring-action

Limitaciones

  • Los nombres de las acciones programadas deben ser únicos por grupo de escalado automático.

  • Una acción programada debe tener un valor temporal único. Si trata de programar una actividad para una hora en la que ya se ha programado otra actividad de escalado, se rechaza la llamada y se devuelve un error que indica que ya existe una acción programada con esta hora de inicio programada.

  • Puede crear un máximo de 125 acciones programadas por grupo de escalado automático.