Políticas de escalado de seguimiento de destino para Amazon EC2 Auto Scaling
Una política de escalado de seguimiento de objetivo escala automáticamente la capacidad del grupo de escalado automático en función de un valor de métrica de destino. Se adapta automáticamente a los patrones de uso únicos de sus aplicaciones individuales. Esto permite que su aplicación mantenga un rendimiento óptimo y una elevada utilización de las instancias de EC2 para una mejor rentabilidad sin intervención manual.
Con el seguimiento de objetivo, seleccione una métrica y un valor objetivo para representar el nivel ideal de utilización promedio o rendimiento para su aplicación. Amazon EC2 Auto Scaling crea y administra las alarmas de CloudWatch que invocan eventos de escalado cuando la métrica se desvía del destino. Para ejemplificar, esto es similar a cómo un termostato mantiene una temperatura objetivo.
Por ejemplo, supongamos que tiene una aplicación web que actualmente se pone en marcha en dos instancias y desea que la utilización de CPU del grupo de escalado automático permanezca en torno al 50 % cuando cambie la carga en la aplicación. De este modo dispone de capacidad adicional para gestionar picos de tráfico sin mantener una cantidad excesiva de recursos inactivos.
Puede satisfacer esta necesidad mediante la creación de una política de escalado de seguimiento de destino que tenga como destino una utilización media de CPU del 50 por ciento. Luego, el grupo de escalado automático se escalará horizontalmente, o aumentará su capacidad, cuando la CPU supere el 50 por ciento para gestionar el aumento de carga. Se reducirá horizontalmente, o reducirá su capacidad, cuando la CPU caiga por debajo del 50 por ciento para optimizar los costos durante los periodos de baja utilización.
Temas
Políticas de escalado de seguimiento de destino
Puede tener varias políticas de escalado de seguimiento de destino juntas que le ayuden a optimizar su rendimiento, siempre que cada una de ellas use una métrica diferente. Por ejemplo, la utilización y el rendimiento pueden influir mutuamente. Cada vez que una de estas métricas cambia, normalmente implica que otras métricas también se verán afectadas. Por lo tanto, el uso de varias métricas proporciona información adicional sobre la carga a la que se encuentra el grupo de escalado automático. Esto puede ayudar a Amazon EC2 Auto Scaling a tomar decisiones mejor informadas a la hora de determinar cuánta capacidad añadir a su grupo.
La intención de Amazon EC2 Auto Scaling es priorizar siempre la disponibilidad. Escalará horizontalmente el grupo de escalado automático si cualquiera de las políticas de seguimiento de objetivo está lista para el escalado horizontal. Solo realizará una reducción horizontal si todas las políticas de seguimiento de objetivo (que tienen habilitada la reducción horizontal) estén listas para la reducción horizontal.
Elección de métricas
Puede crear políticas de escalado de seguimiento de destino con métricas predefinidas o personalizadas. Las métricas predefinidas facilitan el acceso a las métricas más utilizadas para escalar Las métricas personalizadas permiten escalar según otras métricas de CloudWatch disponibles, como las métricas de alta resolución que se publican en intervalos de solo unos segundos. Puede publicar sus propias métricas de alta resolución o las que publiquen otros servicios de AWS.
Para obtener más información sobre la creación de políticas de seguimiento de objetivo mediante métricas de alta resolución, consulte Cree una política de seguimiento de destino con métricas de alta resolución para obtener una respuesta más rápida.
El seguimiento de objetivo es compatible con las siguientes métricas predefinidas:
-
ASGAverageCPUUtilization: promedio de utilización de la CPU del grupo de Auto Scaling. -
ASGAverageNetworkIn: número promedio de bytes recibidos en todas las interfaces de red por el grupo de Auto Scaling. -
ASGAverageNetworkOut: número promedio de bytes enviados en todas las interfaces de red por el grupo de Auto Scaling. -
ALBRequestCountPerTarget: recuento medio de solicitudes de Application Load Balancer por destino para su grupo de Auto Scaling.
importante
Puede encontrar información valiosa sobre las métricas de utilización de CPU, E/S de red y recuento de solicitudes del equilibrador de carga de aplicación por destino en el tema Mostrar las métricas de CloudWatch disponibles para las instancias en la Guía del usuario de Amazon EC2 y en el tema Métricas de CloudWatch para el equilibrador de carga de aplicación en la Guía del usuario para equilibrador de carga de aplicación respectivamente.
Puede elegir otras métricas de CloudWatch disponibles o sus propias métricas en CloudWatch al especificar una métrica personalizada. Para ver un ejemplo con una especificación de métrica personalizada para una política de escalado de seguimiento de objetivo mediante la AWS CLI, consulte Políticas de escalado de ejemplo de la AWS CLI.
Tenga en cuenta las siguientes consideraciones al elegir una métrica:
-
Recomendamos que solo utilice métricas que estén disponibles en intervalos de un minuto o menos para permitir escalar más rápido en respuesta a los cambios de uso. Las métricas que se publican a intervalos más bajos permiten que la política de seguimiento de objetivos detecte y responda más rápido a los cambios en la utilización del grupo de escalado automático.
-
Si elige métricas predefinidas publicadas por Amazon EC2, como el uso de la CPU, le recomendamos que habilite el monitoreo detallado. Por defecto, todas las métricas de Amazon EC2 se publican en intervalos de cinco minutos, pero se pueden configurar a un intervalo más bajo al habilitar el monitoreo detallado. Para obtener información acerca de cómo habilitar el monitoreo detallado, consulte Configuración de la supervisión para instancias de Auto Scaling.
-
No todas las métricas personalizadas funcionan para el seguimiento de destino. La métrica debe ser una métrica de utilización válida y describir el nivel de actividad de una instancia. El valor de la métrica debe aumentar o disminuir proporcionalmente al número de instancias del grupo de escalado automático. De esta forma, los datos de las métricas se pueden utilizar para ampliar o reducir proporcionalmente el número de instancias. Por ejemplo, la utilización de la CPU de un grupo de escalado automático (es decir, la métrica
CPUUtilizationde Amazon EC2 con la dimensión de métricaAutoScalingGroupName) funciona si la carga del grupo de escalado automático se distribuye entre las instancias. -
Las siguientes métricas no sirven para hacer un seguimiento de destino:
-
El número de solicitudes recibidas por el balanceador de carga frente al grupo de escalado automático (es decir, la métrica Elastic Load Balancing de
RequestCount). El número de solicitudes recibidas por el balanceador de carga no cambia en función de la utilización del grupo de escalado automático. -
La latencia de las solicitudes del balanceador de carga (es decir, la métrica de Elastic Load Balancing
Latency). La latencia de las solicitudes puede aumentar si lo hace la utilización, pero el cambio no tiene que ser necesariamente proporcional. -
La métrica de la cola de Amazon SQS de CloudWatch
ApproximateNumberOfMessagesVisible. El número de mensajes de una cola no tiene por qué cambiar en proporción al tamaño del grupo de escalado automático que procesa los mensajes de la cola. Sin embargo, puede que funcione una métrica personalizada que mida el número de mensajes de la cola por instancia de EC2 en el grupo de escalado automático. Para obtener más información, consulte Política de escalado basada en Amazon SQS.
-
-
Para utilizar la métrica
ALBRequestCountPerTarget, debe especificar el parámetroResourceLabelpara identificar el grupo de destino del balanceador de carga asociado a la métrica. Para ver un ejemplo que especifique el parámetroResourceLabelpara una política de escalado de seguimiento de objetivo mediante la AWS CLI, consulte Políticas de escalado de ejemplo de la AWS CLI. -
Cuando una métrica emite valores reales 0 a CloudWatch (por ejemplo,
ALBRequestCountPerTarget), el grupo de escalado automático puede reducir horizontalmente a 0 cuando no hay tráfico a su aplicación por un periodo de tiempo prolongado. Para que el grupo de escalado automático se reduzca horizontalmente a 0 cuando no se envíen solicitudes, la capacidad mínima del grupo debe ser de 0. -
En lugar de publicar métricas nuevas para utilizarlas en su política de escalado, puede utilizar la matemáticas métricas para combinar las métricas existentes. Para obtener más información, consulte Creación de una política de escalado de seguimiento de destino con cálculos métricos.
Definición del valor de destino
Al crear una política de escalado de seguimiento de destino, debe especificar un valor de destino. El valor objetivo representa la utilización o el rendimiento promedio óptimo para el grupo de escalado automático. Para usar los recursos de manera rentable, establezca el valor objetivo lo más alto posible con un búfer razonable para aumentos inesperados de tráfico. Cuando la aplicación se escala horizontalmente de manera óptima para un flujo de tráfico normal, el valor de la métrica real debe ser igual al valor de destino, o estar justo por debajo de él.
Cuando una política de escalado se basa en el rendimiento, como el recuento de solicitudes por objetivo para un equilibrador de carga de aplicación, E/S de red u otras métricas de recuento, el valor objetivo representa el rendimiento promedio óptimo de una sola instancia, para un periodo de un minuto.
Definición del tiempo de preparación de la instancia
Puede especificar el número de segundos que se tarda en preparar una instancia recién lanzada. Hasta que finaliza el tiempo de preparación especificado, la instancia no se tiene en cuenta para las métricas agregadas de la instancia de EC2 del grupo de escalado automático.
Mientras las instancias se encuentran en el periodo de preparación, las políticas de escalado solo escalan horizontalmente si el valor de la métrica de las instancias que no están en preparación es mayor que la utilización objetivo de la política.
Si el grupo se vuelve a escalar horizontalmente, las instancias que aún estén en preparación se considerarán parte de la capacidad deseada para la siguiente actividad de escalado horizontal. La intención es realizar continuamente (pero no excesivamente) un escalado ascendente.
Mientras la actividad de escalado horizontal está en curso, todas las actividades de reducción horizontal iniciadas por las políticas de escalado se bloquean hasta que las instancias terminen de prepararse. Cuando las instancias terminen de prepararse, si se produce un evento de reducción horizontal, cualquier instancia que se encuentre actualmente en proceso de terminación se tendrá en cuenta para la capacidad actual del grupo al calcular la nueva capacidad deseada. Por lo tanto, no se eliminan más instancias del grupo de Auto Scaling que las necesarias.
Valor predeterminado
Si no se establece ningún valor, la política de escalado utilizará el valor predeterminado, que es el valor de la preparación de instancias por defecto definido para el grupo. Si la preparación predeterminada de instancias es nula, se revertirá al valor de recuperación predeterminado. Recomendamos usar la preparación de instancias predeterminada para facilitar la actualización de todas las políticas de escalado cuando cambie el tiempo de preparación.
Consideraciones
Las siguientes consideraciones se aplican al trabajar con las políticas de escalado de seguimiento de destino:
-
No cree, modifique ni elimine las alarmas de CloudWatch que se usan con la política de escalado de seguimiento de destino. Amazon EC2 Auto Scaling crea y administra las alarmas de CloudWatch asociadas a las políticas de escalado de seguimiento de destino y se pueden editar, reemplazar o eliminar automáticamente cuando sea necesario para personalizar la experiencia de escalado de las aplicaciones y de sus patrones de uso cambiantes.
-
Una política de escalado de seguimiento de objetivos prioriza la disponibilidad durante los períodos de niveles de tráfico fluctuantes al reducir horizontalmente de forma más gradual cuando el tráfico disminuye. Si desea tener un mayor control, una política de escalado por pasos podría ser la mejor opción. Puede deshabilitar la reducción horizontal de una política de seguimiento de objetivo. Esto permite mantener una cantidad mínima de instancias para que las implementaciones se realicen correctamente.
-
Si faltan puntos de datos en la métrica, el estado de alarma de CloudWatch cambia a
INSUFFICIENT_DATA. Cuando esto ocurre, Amazon EC2 Auto Scaling no puede escalar su grupo hasta que se encuentren nuevos puntos de datos. -
Si la métrica se presenta de forma dispersa por diseño, las matemáticas métricas pueden resultar útiles. Por ejemplo, para usar los valores más recientes, utilice la función
FILL(m1,REPEAT), dondem1es la métrica. -
Es posible que haya diferencias entre el valor objetivo y los puntos de datos de la métrica real. Esto se debe a que actuamos de forma conservadora redondeando hacia arriba o hacia abajo a la hora de determinar el número de instancias que se deben agregar o quitar. Esto impide que agreguemos un número insuficiente de instancias o eliminemos demasiadas. Sin embargo, en el caso de los grupos de Auto Scaling que son más pequeños y tienen menos instancias, la utilización del grupo puede parecer que está muy lejos del valor de destino.
Por ejemplo, supongamos que se establece un valor de destino del 50 por ciento de utilización de la CPU y el grupo de escalado automático lo supera. Es posible determinar que la adición de 1,5 instancias disminuirá la utilización de la CPU hasta aproximadamente el 50 por ciento. Como no es posible agregar 1,5 instancias, redondeamos hacia arriba y añadimos dos instancias. Esto podría reducir la utilización de la CPU a un valor inferior al 50 por ciento, pero garantizaría que la aplicación cuenta con los recursos suficientes. Del mismo modo, si determinamos que la eliminación de 0,5 instancias aumenta la utilización de la CPU por encima del 50 por ciento, decidiremos no reducir horizontalmente hasta que la métrica baje lo suficiente como para considerar que reducir la capacidad no provocará oscilaciones.
En el caso de grupos de Auto Scaling más grandes con más instancias, la utilización se distribuye entre un número de instancias mayor, en cuyo caso, si se agregan o quitan instancias, la diferencia entre el valor de destino y los puntos de datos de la métrica real es menor.
-
En las políticas de escalado de seguimiento de destino, se presupone que el grupo de escalado automático debe escalarse horizontalmente cuando la métrica especificada está por encima del valor de destino. Las políticas de escalado de seguimiento de destino no pueden utilizarse para escalar horizontalmente el grupo de escalado automático si la métrica está por debajo del valor de destino.