Uso de acciones programadas para anular los valores de previsión de Amazon ECS
A veces, es posible que tenga información adicional sobre los requisitos futuros de la aplicación que el cálculo del pronóstico no pueda tener en cuenta. Por ejemplo, los cálculos de previsiones podrían subestimar las tareas necesarias para un próximo evento de marketing. Puede utilizar acciones programadas para anular temporalmente el pronóstico durante periodos futuros. Las acciones programadas se pueden ejecutar de forma periódica, o en una fecha y hora específicas cuando hay fluctuaciones de demanda únicas.
Por ejemplo, puede crear una acción programada con una cantidad de tareas superior a la pronosticada. En el tiempo de ejecución, Amazon ECS actualiza el número mínimo de tareas del servicio. Dado que el escalado predictivo optimiza en función de la cantidad de tareas, se cumple una acción programada con una cantidad mínima de tareas superior a los valores pronosticados. De este modo se evita que la cantidad de tareas sea inferior a la prevista. Para dejar de anular la previsión, utilice una segunda acción programada para devolver la cantidad mínima de tareas a su configuración original.
En el siguiente procedimiento se describen los pasos para anular el pronóstico durante periodos futuros.
importante
En este tema, se supone que está intentando anular la previsión para escalar a una capacidad superior a la prevista. Si necesita reducir temporalmente la cantidad de tareas sin que interfiera una política de escalado predictivo, utilice en su lugar el modo de solo previsión. Mientras esté en el modo de solo previsión, el escalado predictivo seguirá generando previsiones, pero no aumentará automáticamente la cantidad de tareas. De esta manera, puede supervisar la utilización de los recursos y reducir manualmente el número de tareas según sea necesario.
Paso 1: (opcional) Analizar los datos de serie temporal
Para comenzar, analice los datos de serie temporal del pronóstico. Este es un paso opcional, pero resulta útil si desea comprender los detalles del pronóstico.
-
Recuperar el pronóstico
Una vez creado el pronóstico, puede consultar un periodo específico en el pronóstico. El objetivo de la consulta es obtener una vista completa de los datos de serie temporal para un periodo específico.
La consulta puede incluir hasta dos días de datos de pronósticos futuros. Si hace tiempo utiliza el escalado predictivo, también puede acceder a los datos de pronóstico anteriores. Sin embargo, la duración máxima entre la hora de inicio y la hora de finalización es de 30 días.
Para obtener el pronóstico mediante el comando get-predictive-scaling-forecast de la AWS CLI, proporcione los siguientes parámetros en el comando:
-
Indique el nombre del clúster en el parámetro
resource-id
. -
Ingrese el nombre de la política en el parámetro
--policy-name
. -
Indique la hora de inicio en el parámetro
--start-time
para devolver solo los datos pronosticados para la hora especificada o con posterioridad. -
Indique la hora de finalización en el parámetro
--end-time
para devolver solo los datos pronosticados para antes de la hora especificada.
aws application-autoscaling get-predictive-scaling-forecast \ --service-namespace ecs \ --resource-id service/MyCluster/test \ --policy-name
cpu40-predictive-scaling-policy
\ --scalable-dimension ecs:service:DesiredCount \ --start-time "2021-05-19T17:00:00Z
" \ --end-time "2021-05-19T23:00:00Z
"Si se ejecuta correctamente, el comando devuelve datos similares al ejemplo siguiente.
{ "LoadForecast": [ { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 153.0655799339254, 128.8288551285919, 107.1179447150675, 197.3601844551528, 626.4039934516954, 596.9441277518481, 677.9675713779869 ], "MetricSpecification": { "TargetValue": 40.0, "PredefinedMetricPairSpecification": { "PredefinedMetricType": "ASGCPUUtilization" } } } ], "CapacityForecast": { "Timestamps": [ "2021-05-19T17:00:00+00:00", "2021-05-19T18:00:00+00:00", "2021-05-19T19:00:00+00:00", "2021-05-19T20:00:00+00:00", "2021-05-19T21:00:00+00:00", "2021-05-19T22:00:00+00:00", "2021-05-19T23:00:00+00:00" ], "Values": [ 2.0, 2.0, 2.0, 2.0, 4.0, 4.0, 4.0 ] }, "UpdateTime": "2021-05-19T01:52:50.118000+00:00" }
La respuesta incluye dos pronósticos:
LoadForecast
yCapacityForecast
.LoadForecast
muestra el pronóstico de carga por hora.CapacityForecast
muestra los valores pronosticados para la capacidad que se necesita cada hora para gestionar la carga pronosticada mientras se mantiene unTargetValue
de 40,0 (una utilización media de la CPU del 40 %). -
-
Identifique el periodo de destino
Identifique la o las horas en las que debe tener lugar la fluctuación de la demanda única. Recuerde que las fechas y horas que aparecen en el pronóstico están en UTC.
Paso 2: Crear dos acciones programadas
A continuación, cree dos acciones programadas para un periodo específico en el que la aplicación tendrá una carga superior a la pronosticada. Por ejemplo, si tiene un evento de marketing que incrementará el tráfico hacia su sitio durante un periodo de tiempo limitado, puede programar una acción única para actualizar la capacidad mínima cuando comience. A continuación, programe otra acción para devolver la capacidad mínima a la configuración original cuando el evento finalice.
Abra la consola en https://console.aws.amazon.com/ecs/v2
. -
En la página Clusters (Clústeres), elija el clúster.
-
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.
-
Elija Escalado automático de servicio.
Se abrirá la página de políticas.
-
Elija Acciones programadas y, a continuación, elija Crear.
Se abrirá la página Crear acción de programación.
-
En Nombre de acción, escriba un nombre único.
-
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
. -
En Hora de inicio, introduzca la fecha y la hora en que comienza la acción.
-
En Recurrencia, elija Una vez.
-
En Ajustes de tareas, en Mínimo, introduzca un valor inferior o igual a la cantidad máxima de tareas.
-
Elija Crear acción programada.
Se abrirá la página de políticas.
-
Configure una segunda acción programada para devolver la cantidad mínima de tareas a la configuración original al final del evento. El escalado predictivo puede escalar la cantidad de tareas únicamente cuando el valor establecido para Mínimo es menor que los valores de la previsión.
Para crear dos acciones programadas para eventos únicos (AWS CLI)
Para utilizar la AWS CLI para crear las acciones programadas, utilice el comando put-scheduled-update-group-action.
Por ejemplo, definamos una programación que mantenga una capacidad mínima de tres instancias el 19 de mayo a las 17:00 durante ocho horas. En los siguientes comandos se muestra cómo implementar este escenario.
El primer comando put-scheduled-update-group-action indica a Amazon EC2 Auto Scaling que actualice la capacidad mínima del grupo de escalado automático especificado a las 17:00 (UTC) del 19 de mayo de 2021.
aws autoscaling put-scheduled-update-group-action --scheduled-action-name
my-event-start
\ --auto-scaling-group-namemy-asg
--start-time "2021-05-19T17:00:00Z
" --minimum-capacity3
El segundo comando indica a Amazon EC2 Auto Scaling que establezca la capacidad mínima del grupo en uno a la 1:00 (UTC) del 20 de mayo de 2021.
aws autoscaling put-scheduled-update-group-action --scheduled-action-name
my-event-end
\ --auto-scaling-group-namemy-asg
--start-time "2021-05-20T01:00:00Z
" --minimum-capacity1
Después de agregar estas acciones programadas al grupo de escalado automático, Amazon EC2 Auto Scaling realiza lo siguiente:
-
A las 17:00 (UTC) del 19 de mayo de 2021, se ejecuta la primera acción programada. Si el grupo tiene actualmente menos de tres instancias, el grupo se escala horizontalmente hasta tres instancias. Durante este tiempo y durante las siguientes ocho horas, Amazon EC2 Auto Scaling puede seguir escalando horizontalmente si la capacidad prevista es superior a la capacidad real o si existe una política de escalado dinámico en vigor.
-
A la 1:00 (UTC) del 20 de mayo de 2021, se ejecuta la segunda acción programada. Esto devuelve la capacidad mínima a la configuración original al final del evento.
Escalado basado en programaciones recurrentes
Para anular el pronóstico para el mismo periodo cada semana, cree dos acciones programadas y proporcione la lógica de fecha y hora utilizando una expresión cron.
El formato de una expresión cron consta de cinco campos separados por espacios: [minuto] [hora] [día_del_mes] [mes_del_año] [día_de_la_semana]. Los campos pueden contener cualquier valor permitido, incluidos caracteres especiales.
Por ejemplo, la siguiente expresión cron ejecuta una acción todos los martes a las 6:30. El asterisco se utiliza como comodín para coincidir con todos los valores de un campo.
30 6 * * 2
Véase también
Para obtener más información sobre cómo administrar las acciones programadas, consulte Uso de acciones programadas para escalar los servicios de Amazon ECS.