Uso de patrones históricos para escalar los servicios de Amazon ECS con escalado predictivo
El escalado predictivo analiza los datos de cargas anteriores de los flujos de tráfico para analizar los patrones diarios o semanales. Luego, utiliza este análisis para anticipar las necesidades futuras y aumentar proactivamente las tareas de su servicio según sea necesario.
El escalado automático predictivo es más útil en las siguientes situaciones.
-
Tráfico cíclico: uso elevado de recursos durante el horario laborable normal y un uso reducido de recursos por la noche o los fines de semana.
-
Patrones recurrentes de carga de trabajo de activación y desactivación, como el procesamiento por lotes, pruebas o análisis periódicos de datos.
-
Aplicaciones que tardan mucho tiempo en inicializarse: esto puede repercutir en el rendimiento de las aplicaciones durante eventos de escalado horizontal, lo que provoca una latencia notable.
En general, si sus aplicaciones tardan mucho tiempo en inicializarse y el tráfico aumenta en un patrón regular, debe considerar el uso del escalado predictivo. Esto ayuda a escalar más rápido, ya que aumenta de forma proactiva el número de tareas para las cargas previstas en lugar de utilizar políticas de escalado dinámicas, como de seguimiento de destino o de escalado por pasos únicamente. Al ayudar a evitar la posibilidad de aprovisionar en exceso el número de tareas, con el escalado predictivo también puede ahorrar dinero.
Por ejemplo, piense en una aplicación que tiene un uso elevado durante el horario laborable y un uso bajo durante la noche. Al comienzo de cada día laborable, el escalado predictivo puede escalar horizontalmente tareas antes de la primera afluencia de tráfico. Esto ayuda a la aplicación a mantener una alta disponibilidad y rendimiento al pasar de un periodo de menor utilización a uno de mayor utilización. No tiene que esperar a que el escalado dinámico reaccione a los cambios en el tráfico. Tampoco tiene que dedicar tiempo a revisar los patrones de carga de la aplicación e intentar programar la cantidad correcta de tareas mediante el escalado programado.
El escalado predictivo es una capacidad de nivel de servicio que escala la tarea del servicio independientemente del escalado de la capacidad de computación subyacente (por ejemplo, EC2 o Fargate). Para Fargate, AWS administra y escala de forma automática la capacidad subyacente en función de los requisitos de la tarea. Para la capacidad de EC2, puede utilizar los proveedores de capacidad de grupo de escalado automático para escalar automáticamente las instancias de EC2 subyacentes en función de los requisitos de escalado de las tareas.
Contenido
Cómo funciona el escalado predictivo en Amazon ECS
Aquí puede obtener información sobre las consideraciones relacionadas con el uso del escalado predictivo, cómo funciona y cuáles son los límites.
Consideraciones sobre el uso del escalado predictivo
-
Desea asegurarse de que el escalado predictivo sea adecuado para la carga de trabajo. Para comprobarlo, configure las políticas de escalado en el modo de solo previsión y consulte las recomendaciones de la consola. Debe evaluar la previsión y las recomendaciones antes de empezar a utilizar el escalado predictivo.
-
Antes de que el escalado predictivo pueda iniciar el pronóstico, este necesita al menos 24 horas de datos históricos. Cuantos más datos históricos estén disponibles, más eficaz será la previsión. Lo ideal es dos semanas. También tendrá que esperar 24 horas para que el escalado predictivo pueda generar nuevas previsiones cuando elimine un servicio de Amazon ECS y cree uno nuevo. Una forma de acelerar este proceso es usar métricas personalizadas para agregar métricas de servicios de Amazon ECS nuevos y antiguos.
-
Elija una métrica de carga que represente con precisión la carga total de la aplicación y que sea el aspecto de la aplicación que más le interese escalar.
-
El escalado dinámico con el escalado predictivo ayuda a seguir de cerca la demanda de la aplicación, de modo que puede reducir horizontalmente durante los periodos de menor demanda y escalar horizontalmente durante aumentos inesperados de tráfico. Cuando hay activas varias políticas de escalado, cada política determina el número de tareas deseado de forma independiente, y el número de tareas deseado se establece en el máximo de las políticas.
-
Puede utilizar el escalado predictivo junto con sus políticas de escalado dinámico, como el seguimiento de destino o el escalado gradual, para que las aplicaciones se escalen en función de patrones históricos y en tiempo real. Por sí solo, el escalado predictivo no reduce horizontalmente las tareas.
-
Si utiliza un rol personalizado al llamar a la API
register-scalable-target
, es posible que aparezca un error que indique que la política de escalado predictivo solo funciona con el SLR habilitado. En este caso, debe volver a llamar aregister-scalable-target
, pero sin role-arn. Utilice el SLR al registrar el objetivo escalable y llame a la APIput-scaling-policy
.
Funcionamiento del escalado predictivo
Utiliza el escalado predictivo al crear una política de escalado predictivo que especifique la métrica de CloudWatch que se va a supervisar y analizar. El escalado predictivo debe tener datos de, por lo menos, las últimas 24 horas, para comenzar a pronosticar los valores futuros.
Tras crear la política, el escalado predictivo comienza a analizar los datos de las métricas de los últimos 14 días para identificar patrones. Este análisis se utiliza para generar previsiones por hora de requisitos de las próximas 48 horas. Los datos más recientes de CloudWatch se utilizan para actualizar la previsión cada 6 horas. A medida que llegan nuevos datos, el escalado predictivo puede mejorar continuamente la precisión de las previsiones futuras.
La primera vez que se habilita el escalado predictivo, se ejecuta en modo de solo previsión. Genera pronósticos en este modo, pero no escala el servicio de Amazon ECS en función de esos pronósticos. Esto significa que puede evaluar la precisión e idoneidad del pronóstico. Ve los datos del pronóstico mediante la operación de la API GetPredictiveScalingForecast
o la AWS Management Console.
Cuando decida empezar a utilizar el escalado predictivo, cambie la política de escalado al modo de pronóstico y escalado. En este modo, ocurre lo siguiente.
De forma predeterminada, su servicio de Amazon ECS se escala al principio de cada hora en función del pronóstico de esa hora. Puede optar por empezar antes mediante el uso de la propiedad SchedulingBufferTime
de la operación de la API PutScalingPolicy
. Esto permite que las nuevas tareas se inicien antes de la demanda pronosticada y les da tiempo para arrancar y prepararse para gestionar el tráfico.
Límite máximo de tareas
Cuando registra los servicios de Amazon ECS para el escalado, define un número máximo de tareas que se pueden lanzar por servicio. De manera predeterminada, cuando se establecen políticas de escalado, estas no pueden aumentar el número de tareas por encima del límite máximo.
Como alternativa, puede permitir que el número máximo de tareas del servicio se incremente automáticamente si la previsión se acerca al número máximo de tareas del servicio de Amazon ECS o lo supera.
aviso
Tenga cuidado al permitir que el número máximo de tareas aumente automáticamente. Esto puede provocar que se lancen más tareas de las previstas si no se supervisa ni gestiona el aumento del número máximo de tareas. El aumento del número máximo de tareas se convierte en el nuevo número máximo normal de tareas del servicio de Amazon ECS hasta que lo actualice manualmente. El número máximo de tareas no disminuye automáticamente hasta el máximo original.
Regiones de admitidas
-
Este de EE. UU. (Norte de Virginia)
-
Este de EE. UU. (Ohio)
-
Oeste de EE. UU. (Norte de California)
-
Oeste de EE. UU. (Oregón)
-
África (Ciudad del Cabo)
-
Asia-Pacífico (Hong Kong)
-
Asia-Pacífico (Yakarta)
-
Asia-Pacífico (Bombay)
-
Asia-Pacífico (Osaka)
-
Asia-Pacífico (Seúl)
-
Asia-Pacífico (Singapur)
-
Asia-Pacífico (Sídney)
-
Asia-Pacífico (Tokio)
-
Canadá (centro)
-
China (Pekín)
-
China (Ningxia)
-
Europa (Fráncfort)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Milán)
-
Europa (París)
-
Europa (Estocolmo)
-
Medio Oriente (Baréin)
-
América del Sur (São Paulo)
-
AWS GovCloud (Este de EE. UU.)
-
AWS GovCloud (Oeste de EE. UU.)