Escalado dinámico para Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Escalado dinámico para Amazon EC2 Auto Scaling

El escalado dinámico escala la capacidad del grupo de escalado automático a medida que se producen cambios de tráfico

Amazon EC2 Auto Scaling admite los siguientes tipos de política de escalado dinámico:

  • Target tracking scaling (Escalado de seguimiento de destino): permite aumentar o reducir la capacidad actual del grupo en función de una métrica de Amazon CloudWatch y un valor objetivo. Funciona de forma similar a los termostatos, que mantienen la temperatura del hogar: seleccionamos una temperatura y el termostato hace el resto.

  • Step scaling (Escalado por pasos): permite aumentar o reducir la capacidad actual del grupo en función de una serie de ajustes de escalado, denominados ajustes por pasos, que variarán en función del tamaño de la interrupción de alarma.

  • Simple scaling (Escalado sencillo): permite aumentar o reducir la capacidad actual del grupo en función de un único ajuste de escalado con un periodo de recuperación entre cada actividad.

Si realiza el escalado en función de una métrica que aumenta o disminuye en proporción al número de instancias de un grupo de escalado automático, le recomendamos que utilice políticas de escalado de seguimiento de destino. De lo contrario, le recomendamos que utilice políticas de escalado por pasos.

Con el seguimiento de objetivos, un grupo de escalado automático escala en proporción directa a la carga real de la aplicación. Esto significa que, además de satisfacer la necesidad inmediata de capacidad en respuesta a los cambios de carga, una política de seguimiento de objetivos también puede adaptarse a los cambios de carga que se producen con el tiempo, por ejemplo, debido a las variaciones estacionales.

De forma predeterminada, los nuevos grupos de escalado automático comienzan sin políticas de escalado. Cuando usa un grupo de escalado automático sin ningún tipo de escalado dinámico, este no se escala por sí solo a menos que configure el escalado programado o el escalado predictivo.

Funcionamiento de las políticas de escalado dinámico

Una política de escalado dinámico indica a Amazon EC2 Auto Scaling que debe realizar un seguimiento de una métrica CloudWatch específica y define qué acción debe llevarse a cabo cuando la alarma de CloudWatch asociada está en ALARMA. Las métricas que se utilizan para invocar el estado de alarma son una agregación de métricas procedentes de todas las instancias del grupo de escalado automático. (Por ejemplo, supongamos que tiene un grupo de Auto Scaling con dos instancias, donde una instancia tiene un 60 % de CPU y la otra tiene un 40 % de CPU. Tienen el 50 por ciento de promedio de CPU). Cuando la política está en vigor, Amazon EC2 Auto Scaling ajusta la capacidad deseada del grupo hacia arriba o hacia abajo cuando el umbral de una alarma se interrumpe.

Cuando se invoca una política de escalado, si el cálculo de capacidad produce un número fuera del rango entre el tamaño mínimo y máximo del grupo, Amazon EC2 Auto Scaling garantiza que la nueva capacidad nunca se salga de los límites de tamaño mínimo y máximo. La capacidad se mide de una de estas dos maneras: utilizando las mismas unidades que eligió al definir la capacidad deseada en términos de instancias o utilizando unidades de capacidad (si se aplica la ponderación de instancia).

  • Ejemplo 1: un grupo de Auto Scaling tiene una capacidad máxima de 3, una capacidad actual de 2 y una política de escalado dinámico que agrega 3 instancias. Al invocar esta política, Amazon EC2 Auto Scaling solo agrega 1 instancia al grupo para evitar que este supere su tamaño máximo.

  • Ejemplo 2: un grupo de Auto Scaling tiene una capacidad mínima de 2, una capacidad actual de 3 y una política de escalado dinámico que elimina 2 instancias. Al invocar esta política, Amazon EC2 Auto Scaling solo quita 1 instancia del grupo para evitar que este sea menor que su tamaño mínimo.

Cuando la capacidad deseada alcanza el límite de tamaño máximo, el escalado ascendente se detiene. Si la demanda cae y la capacidad disminuye, Amazon EC2 Auto Scaling puede volver a escalar horizontalmente.

La excepción es cuando se utiliza la ponderación de instancias. En este caso, Amazon EC2 Auto Scaling puede escalar horizontalmente por encima del límite de tamaño máximo, pero solo por hasta la ponderación máxima de instancia. Su intención es acercarse lo más posible a la nueva capacidad deseada, pero aun así respetar las estrategias de asignación que se han especificado para el grupo. Las estrategias de asignación determinan los tipos de instancia que se van a lanzar. Los pesos determinan cuántas unidades de capacidad aporta cada instancia a la capacidad deseada del grupo en función de su tipo de instancia.

  • Ejemplo 3: un grupo de Auto Scaling tiene una capacidad máxima de 12, una capacidad actual de 10 y una política de escalado dinámico que agrega 5 unidades de capacidad. Los tipos de instancia tienen una de las tres ponderaciones asignadas: 1, 4 o 6. Al invocar la política, Amazon EC2 Auto Scaling elige lanzar un tipo de instancias con una ponderación de 6 en función de la estrategia de asignación. El resultado de este evento de escalado ascendente es un grupo con una capacidad deseada de 12 y una capacidad actual de 16.

Varias políticas de escalado dinámico

En la mayoría de los casos, una política de escalado de seguimiento de destino es suficiente para configurar el grupo de Auto Scaling para que se escale y reduzca horizontalmente de forma automática. Una política de escalado de seguimiento de destino le permite seleccionar un resultado deseado y hacer que el grupo de Auto Scaling agregue y quite instancias según sea necesario para lograr ese resultado.

Para una configuración de escalado avanzada, el grupo de Auto Scaling puede tener más de una política de escalado. Por ejemplo, puede definir una o más políticas de escalado de seguimiento de destino, una o más políticas de escalado por pasos o ambos tipos. Esto proporciona una mayor flexibilidad para abordar diferentes situaciones.

Para ilustrar cómo se combinan varias políticas de escalado dinámico, considere una aplicación que utiliza un grupo de Auto Scaling y una cola de Amazon SQS para enviar solicitudes a una sola instancia EC2. Para garantizar que la aplicación funciona en niveles óptimos, existen dos políticas que controlan cuándo debe escalarse horizontalmente el grupo de Auto Scaling. Una es una política de seguimiento de destino que utiliza una métrica personalizada para añadir y eliminar capacidad en función del número de mensajes SQS en la cola. La otra es una política de escalado por pasos que utiliza la métrica CPUUtilization de Amazon CloudWatch para agregar capacidad cuando la instancia supera el 90 % de utilización durante un periodo de tiempo específico.

Cuando hay varias políticas en vigor a la vez, existe la posibilidad de que cada una de ellas pueda indicar al grupo de Auto Scaling que escale (o reduzca) horizontalmente al mismo tiempo. Por ejemplo, es posible que la métrica CPUUtilization presente un pico e interrumpa el umbral de la alarma de CloudWatch al mismo tiempo que la métrica personalizada de SQS presente otro pico e interrumpa el umbral de la alarma de la métrica personalizada.

Cuando se producen estas situaciones, Amazon EC2 Auto Scaling elige la política que proporciona la mayor capacidad tanto para el escalado como para la reducción horizontal. Por ejemplo, suponga que la política CPUUtilization lanza una instancia, mientras que la política de la cola de SQS lanza dos instancias. Si se cumple el criterio de escalado horizontal de ambas políticas al mismo tiempo, Amazon EC2 Auto Scaling da prioridad a la política de la cola de SQS. Por consiguiente, el grupo de Auto Scaling lanzará dos instancias.

El enfoque de dar prioridad a la política que proporciona la mayor capacidad se aplica incluso cuando las políticas utilizan criterios diferentes para el escalado descendente. Por ejemplo, si una política termina tres instancias, otra política disminuye el número de instancias en un 25 % y el grupo tiene ocho instancias en el momento de reducir horizontalmente, Amazon EC2 Auto Scaling prioriza la política que proporciona el mayor número de instancias para el grupo. Esto da lugar a que el grupo de Auto Scaling termine dos instancias (25 por ciento de 8 = 2). La intención es evitar que Amazon EC2 Auto Scaling elimine demasiadas instancias.

Sin embargo, recomendamos precaución al utilizar políticas de escalado de seguimiento de destino con políticas de escalado por pasos, ya que los conflictos entre estas políticas pueden provocar un comportamiento no deseado. Por ejemplo, si la política de escalado por pasos inicia una actividad de escalado antes de que la política de seguimiento de destino esté lista para escalar, la actividad de escalado no se bloqueará. Una vez completada la actividad de escalado, la política de seguimiento de destino podría indicar al grupo que vuelva a escalar.