

# Uso de acciones programadas para escalar los servicios de Amazon ECS
<a name="service-autoscaling-schedulescaling"></a>

Con el escalado programado, puede configurar el escalado automático para su aplicación en función de cambios de carga predecibles mediante la creación de acciones programadas que aumenten o disminuyan el número de tareas en momentos específicos. Esto le permite escalar su aplicación de forma proactiva para adaptarla a los cambios de carga predecibles.

Estas acciones de escalado programadas le permiten optimizar los costes y el rendimiento. Su aplicación tiene un número de tareas suficiente para gestionar los picos de tráfico a mitad de semana, pero no aprovisiona en exceso el número de tareas en otros momentos. 

Puede combinar el escalado programado y las políticas de escalado para obtener los beneficios de enfoques tanto proactivos como reactivos al escalado. Después de ejecutar una acción de escalado programado, la política de escalado puede seguir tomando decisiones sobre si desea ampliar el número de tareas. Esto ayuda a garantizar que tiene un número de tareas suficiente para gestionar la carga de su aplicación. Mientras la aplicación se escala para adaptarse a la demanda, la capacidad actual debe estar dentro del número de tareas mínimo y máximo que establece la acción programada. 

Puede configurar el escalado de la programación mediante la AWS CLI. Para obtener más información sobre el escalado programado, consulte [Scheduled Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html) en la *Guía del usuario de Application Auto Scaling*.

# Creación de una acción programada para el escalado automático de servicios de Amazon ECS
<a name="scheduled-action-create-policy"></a>

Creación de una acción programada para que Amazon ECS aumento o disminuya el número de tareas que ejecuta el servicio en función de la fecha y la hora. 

## Consola
<a name="scheduled-action-policy-aws-console"></a>

1. Abra la consola en [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

1. En la página **Clusters** (Clústeres), elija el clúster.

1. En la página de detalles del clúster, en la sección **Servicios**, elija el servicio.

   Se abrirá la página de detalles del servicio.

1. Elija **Escalado automático de servicio**.

   Aparece la página de escalado automático del servicio.

1. Si no ha configurado el escalado automático del servicio, elija **Establecer la cantidad de tareas**.

   Aparece la sección **Recuento de tareas del servicio de Amazon ECS**.

   En **Recuento de tareas del servicio de Amazon ECS**, seleccione **Utilizar el escalado automático del servicio para ajustar el recuento de tareas deseado del servicio**.

   Se abrirá la sección **Recuento de tareas**.

   1. En **Cantidad mínima de tareas**, ingrese el límite mínimo del número de tareas que se va a utilizar para el escalado automático del servicio. El recuento deseado no será inferior a este recuento.

   1. En **Máximo**, ingrese el límite máximo del número de tareas que se va a utilizar para el escalado automático del servicio. El recuento deseado no será superior a este recuento.

   1. Elija **Elegir Guardar**.

      Se abrirá la página de políticas.

1. Elija **Acciones programadas** y, a continuación, elija **Crear**.

   Se abrirá la página **Crear acción programada**.

1. En **Nombre de acción**, escriba un nombre único.

1. Para **Zona horaria**, elija una zona horaria.

   Todas las zonas horarias enumeradas provienen de la base de datos de zona horaria de IANA. Para obtener más información, consulte [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).

1. En **Hora de inicio**, introduzca la **fecha** y la **hora** en que comienza la acción.

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

1. En **Recurrence (Recurrencia)**, elija una de las opciones disponibles.
   + Para escalar según una programación recurrente, elija la frecuencia con la que Amazon ECS ejecuta la acción programada.
     + Si elige una opción que comienza por **Frecuencia**, la expresión cron se crea automáticamente.
     + Si elige **Cron**, escriba una expresión cron que especifique cuándo se debe realizar la acción. 
   + Para escalar una sola vez, elija **Una vez**.

1. En **Ajustes de tareas**, haga lo siguiente:
   + En **Mínimo**, introduzca el número mínimo de tareas que debe ejecutar el servicio.
   + En **Máximo**, introduzca el número máximo de tareas que debe ejecutar el servicio.

1. Elija **Crear acción programada**.

## CLI
<a name="scheduled-action-aws-cli"></a>

Use la AWS CLI como se indica a continuación para configurar políticas de escalado programado para el servicio. 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-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html) con la `--start-time "YYYY-MM-DDThh:mm:ssZ"` y una o ambas opciones `--MinCapacity` y `--MaxCapacity`. 

```
aws application-autoscaling put-scheduled-action --service-namespace ecs \
  --resource-id service/my-cluster/my-service \
  --scheduled-action-name my-one-time-schedule \
  --start-time 2021-01-30T12:00:00 \
  --scalable-target-action MinCapacity=3,MaxCapacity=10
```

**Ejemplo: Para programar el escalado de forma periódica**  
Utilice el siguiente comando [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html). Sustituya las *entradas del usuario* por sus valores.

```
aws application-autoscaling put-scheduled-action --service-namespace ecs \
  --resource-id service/my-cluster/my-service \
  --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
```

El programa de recurrencia especificado se ejecuta según la zona horaria UTC. Para especificar una zona horaria diferente, incluya la opción `--time-zone` y el nombre para la zona horaria de IANA, como en el siguiente ejemplo.

```
--time-zone "America/New_York"
```

Para obtener más información, consulte [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).