Por qué Auto Scaling escala rápido hacia afuera y es cauteloso al reducir - Intención de diseño de la lógica de decisión asimétrica

Explica la razón del diseño asimétrico de EC2 Auto Scaling que ejecuta el scale-out inmediatamente mientras establece un período de enfriamiento para el scale-in, el mecanismo de prevención de flapping y la lógica interna del Target Tracking Scaling.

Asimetría entre scale-out y scale-in

En la configuración predeterminada de EC2Auto Scaling, el período de enfriamiento del scale-out (adición de instancias) es 0 segundos (ejecución inmediata), mientras que el del scale-in (eliminación de instancias) es 300 segundos (5 minutos). Esta configuración asimétrica tiene una intención de diseño clara. Si el scale-out se retrasa, afecta directamente a los usuarios. Si el tráfico aumenta bruscamente y no se agregan instancias, el tiempo de respuesta se degrada y, en el peor caso, el servicio se cae. Por lo tanto, el scale-out debe ejecutarse lo más rápido posible. Por otro lado, si el scale-in es demasiado rápido, se produce flapping (repetición frecuente de scale-out y scale-in). Se repite un ciclo inútil donde el tráfico disminuye temporalmente, se eliminan instancias, e inmediatamente el tráfico aumenta de nuevo requiriendo agregar instancias. Como el inicio de instancias toma varios minutos, el flapping causa simultáneamente degradación del rendimiento y aumento de costos.

Mecanismo del período de enfriamiento (Cooldown)

El período de enfriamiento es el tiempo durante el cual se suprime la siguiente acción de escalado después de ejecutar una acción. Durante el período de enfriamiento del scale-out, se suprime el scale-out adicional pero se puede ejecutar el scale-in. Inversamente, durante el período de enfriamiento del scale-in, se suprime el scale-in adicional pero se puede ejecutar el scale-out. Este diseño evita la situación de que se necesite scale-out pero no se pueda ejecutar porque está en período de enfriamiento de scale-in. El valor óptimo del período de enfriamiento varía según las características de la carga de trabajo. Si el tiempo desde el inicio de una instancia EC2 hasta pasar el health check del ELB es 3 minutos, el período de enfriamiento del scale-out debe configurarse en 3 minutos o más. Si el período de enfriamiento es demasiado corto, se juzga que aún no es suficiente cuando las nuevas instancias aún no están procesando tráfico, causando un scale-out excesivo. Al usar políticas de Target Tracking Scaling, el período de enfriamiento se gestiona automáticamente, por lo que no es necesaria la configuración manual.

Lógica interna del Target Tracking Scaling

Target Tracking Scaling es la política de escalado más recomendada que ajusta automáticamente el número de instancias para mantener el valor objetivo de una métrica especificada. Por ejemplo, al configurar el objetivo de uso de CPU en 50%, Auto Scaling aumenta o disminuye el número de instancias para mantener el uso de CPU en 50%. Internamente, Target Tracking Scaling opera con un algoritmo similar a un controlador PID (control proporcional-integral-derivativo). Calcula el número de instancias necesarias basándose en la diferencia (desviación) entre el valor actual de la métrica y el valor objetivo. Cuanto mayor es la desviación, más instancias se agregan o eliminan a la vez. Una característica importante del Target Tracking Scaling es que crea internamente alarmas diferentes para scale-out y scale-in. La alarma de scale-out se activa cuando el umbral se supera 3 veces consecutivas en un período de evaluación de 3 minutos, y la alarma de scale-in se activa cuando el umbral se mantiene por debajo 15 veces consecutivas en un período de evaluación de 15 minutos. Este período de evaluación asimétrico es lo que logra el scale-out rápido y el scale-in cauteloso.

Lógica de selección de instancias eliminadas en scale-in

Cuando se ejecuta un scale-in, qué instancia se elimina se determina según la política de terminación predeterminada. La lógica predeterminada tiene 3 etapas. Primero, se selecciona la AZ con más instancias. Esto mantiene el balance del número de instancias entre AZs. Segundo, dentro de esa AZ, se selecciona la instancia que usa la Launch Configuration o Launch Template más antigua. Esto prioriza la eliminación de instancias con configuración antigua, promoviendo la migración a la nueva configuración. Tercero, si hay múltiples instancias con la misma Launch Configuration, se selecciona la instancia más cercana al siguiente período de facturación. Con la introducción de la facturación por segundo de EC2, el significado práctico de este criterio se ha reducido, pero la lógica permanece. También es posible configurar políticas de terminación personalizadas. Se pueden seleccionar políticas como NewestInstance (eliminar la instancia más nueva), OldestInstance (eliminar la instancia más antigua) y ClosestToNextInstanceHour (eliminar la instancia más cercana al siguiente período de facturación).

Predictive Scaling - Predecir el futuro a partir de patrones pasados

Predictive Scaling, introducido en 2021, es una función que analiza los patrones de tráfico de los últimos 14 días con machine learning, predice el tráfico futuro y aprovisiona instancias de antemano. Por ejemplo, si hay un patrón de aumento brusco de tráfico cada mañana a las 9, Predictive Scaling comienza a agregar instancias alrededor de las 8:50 para prepararse para el pico de las 9. Con el escalado reactivo (agregar instancias después de que el tráfico aumenta), el inicio de instancias y el registro en el ELB toman varios minutos, por lo que el rendimiento se degrada al inicio del pico de tráfico. Predictive Scaling llena esta brecha. Se recomienda usar Predictive Scaling en combinación con Target Tracking Scaling. Predictive Scaling aprovisiona de antemano la línea base esperada, y Target Tracking Scaling responde a las variaciones inesperadas, siendo esta la división de roles. La precisión de predicción de Predictive Scaling depende de la regularidad de los patrones de tráfico. Se obtiene alta precisión en cargas de trabajo que repiten el mismo patrón diariamente, pero las predicciones pueden fallar con patrones de tráfico irregulares. Para aprender sistemáticamente los patrones de diseño de escalado, los libros especializados en Amazon son una referencia útil.