Periodos de recuperación de escalado para Amazon EC2 Auto Scaling - Auto Scaling de Amazon EC2

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Periodos de recuperación de escalado para Amazon EC2 Auto Scaling

Una recuperación de escalado contribuye a evitar que su grupo de Auto Scaling lance o termine instancias adicionales antes de que los efectos de las actividades anteriores sean visibles.

Cuando se utiliza el escalado sencillo, después de que el Auto Scaling grupo de se escale mediante una política de escalado sencillo, se espera a que finalice un periodo de recuperación antes de que puedan comenzar otras actividades de escalado iniciadas por políticas de escalado sencillo. Un periodo de recuperación adecuado ayuda a prevenir el inicio de una actividad de escalado adicional basada en métricas obsoletas. De forma predeterminada, todas las políticas de escalado sencillo utilizan el período de recuperación predeterminado asociado al grupo de Auto Scaling, pero puede configurar un período de recuperación diferente para determinadas políticas, como se describe en las secciones siguientes. Para obtener más información acerca del escalado simple, consulte Políticas de escalado por pasos y sencillas.

importante

En la mayoría de los casos, una política de escalado de seguimiento de destino o una política de escalado por pasos es mejor para escalar el rendimiento que esperar a que transcurra un período de tiempo fijo después de una actividad de escalado. Para una política de escalado que cambie el tamaño del grupo de Auto Scaling proporcionalmente a medida que el valor de la métrica de escalado disminuya o aumente, recomendamos el método de seguimiento de destino en lugar del escalado sencillo o el escalado por pasos.

Durante un período de recuperación, cuando una acción programada comienza a la hora programada o cuando se inician las actividades de escalado debido al seguimiento de destino o las políticas de escalado de pasos, pueden desencadenar una actividad de escalado inmediatamente sin esperar a que finalice el período de recuperación. Si una instancia adopta un estado incorrecto, Amazon EC2 Auto Scaling tampoco espera a que se complete el periodo de recuperación antes de reemplazar la instancia en mal estado.

Cuando escala manualmente el grupo de Auto Scaling, la opción predeterminada no es esperar a que finalice el periodo de recuperación, pero puede invalidar este comportamiento y respetar el periodo de recuperación cuando hace una llamada a la API.

Periodo de recuperación predeterminado

Un periodo de recuperación predeterminado se aplica automáticamente a todas las actividades de escalado para las políticas de escalado sencillo y puede solicitar, si lo desea, que se aplique a las actividades de escalado manual. Puede configurar el periodo de tiempo en función del periodo de preparación de las instancias u otras necesidades de la aplicación.


                    Un diagrama de flujo que muestra cómo un periodo de recuperación afecta a las acciones de escalado.

Si utiliza la Consola de administración de AWS para actualizar un Auto Scaling grupo de o si utiliza la AWS CLI o un SDK de para crear o actualizar un Auto Scaling grupo de , puede establecer el parámetro de recuperación predeterminado opcional. Si no se proporciona un valor para el periodo de recuperación predeterminado, su valor predeterminado es de 300 segundos.

Para modificar un periodo de recuperación predeterminado (consola)

Cree el grupo de Auto Scaling de la manera habitual. Después de crear el grupo de Auto Scaling, edite el grupo para especificar el periodo de recuperación predeterminado.

Para modificar un periodo de recuperación predeterminado (AWS CLI)

Utilice uno de los siguientes comandos:

Periodo de recuperación específico del escalado

Además de especificar el periodo de recuperación predeterminado para su grupo de Auto Scaling, puede crear periodos de recuperación que se apliquen a una política de escalado sencillo. Un período de recuperación específico del escalado invalida el periodo de recuperación predeterminado.

Un uso común para un periodo de recuperación específico del escalado es con una política de escalado descendente. Como esta política termina instancias, Amazon EC2 Auto Scaling necesita menos tiempo para determinar si debe terminar instancias adicionales. La terminación de instancias debe ser una operación mucho más rápida que el lanzamiento de instancias. Por lo tanto, el periodo de recuperación predeterminado de 300 segundos es demasiado largo. En este caso, un periodo de recuperación específico del escalado con un valor inferior de 180 segundos para su política de escalado descendente puede ayudarle a reducir los costos al permitir que el grupo se escale más rápido.

Para especificar un periodo de recuperación específico del escalado, utilice el parámetro de recuperación opcional al crear o actualizar una política de escalado sencillo. Para obtener más información, consulte Políticas de escalado por pasos y sencillas.

Ejemplo de escenario de recuperación de escalado sencillo

Considere la siguiente situación: dispone de una aplicación web que se ejecuta en AWS. Esta aplicación web se compone de tres niveles básicos: web, aplicación y base de datos. Si desea asegurarse de que la aplicación siempre tiene recursos para satisfacer la demanda de tráfico, debe crear dos grupos de Auto Scaling: uno para la capa web y otro para la capa de aplicación.


                    Una arquitectura de red básica con una capa web y una capa de aplicación.

Para garantizar que el grupo del nivel de aplicación tenga el número adecuado de instancias EC2, cree una política de escalado sencillo que realice un escalado ascendente cada vez que el valor de la métrica de CloudWatch asociada a la política de escalado supere un umbral especificado durante periodos consecutivos especificados. Cuando la alarma de CloudWatch activa la política de escalado, el grupo de Auto Scaling se lanza y configura otra instancia.

Estas instancias utilizan un script de configuración para instalar y configurar el software antes de que la instancia se ponga en servicio. Por tanto, transcurren alrededor de dos o tres minutos desde el momento en que se lanza la instancia hasta que está completamente en servicio. El tiempo real depende de varios factores, como el tamaño de la instancia y si hay scripts de inicio que deben completarse.

Ahora se produce un pico de tráfico, que hace que se active la alarma de CloudWatch. Cuando esto sucede, el grupo de Auto Scaling lanza una instancia para ayudar con el aumento de la demanda. Sin embargo, hay un problema: la instancia tarda un par de minutos en lanzarse. Durante ese tiempo, la alarma de CloudWatch podría continuar activándose cada minuto para cualquier alarma de resolución estándar, lo que haría que el grupo de Auto Scaling lanzase otra instancia cada vez que se active la alarma.


                    Un ejemplo de cómo funciona una alarma de CloudWatch con una política de escalado

Sin embargo, si se dispone de un periodo de recuperación, el grupo de Auto Scaling lanza una instancia y, a continuación, bloquea las actividades de escalado debido a las políticas de escalado sencillo hasta que transcurre el tiempo especificado. (El valor predeterminado es de 300 segundos). De este modo, se da tiempo a las instancias recién lanzadas para que empiecen a controlar el tráfico de la aplicación. Una vez que finalice el período de recuperación, las actividades de escalado que se activan después del período de recuperación pueden reanudarse. Si la alarma de CloudWatch se vuelve a activar, el grupo de Auto Scaling lanza otra instancia y vuelve a aplicarse el periodo de recuperación. Sin embargo, si la instancia adicional fue suficiente para reducir la métrica, el grupo permanecerá con su tamaño actual.

Periodos de recuperación y varias instancias

En las secciones anteriores se han proporcionado ejemplos que ilustran cómo afectan los periodos de recuperación a los grupos de Auto Scaling cuando se lanza o se termina una sola instancia. Sin embargo, es habitual que los grupos de Auto Scaling lancen más de una instancia al mismo tiempo. Por ejemplo, puede elegir que el grupo de Auto Scaling lance tres instancias cuando se alcance el umbral de una métrica específica.

Con varias instancias, el periodo de recuperación (tanto el predeterminado como el específico del escalado) surte efecto a partir del momento en que finaliza el lanzamiento o la terminación de la última instancia.

Periodos de recuperación y enlaces de ciclo de vida

Tiene la opción de agregar enlaces de ciclo de vida a sus grupos de Auto Scaling. Estos enlaces le permiten controlar la forma en que las instancias se lanzan y terminan dentro de un grupo de Auto Scaling para que pueda realizar acciones personalizadas en una instancia antes de que entre en servicio o antes de que termine. Cuando se produce una acción del ciclo de vida y una instancia entra en estado de espera, se detienen las actividades de escalado a causa de las políticas de escalado sencillo. Para obtener más información, consulte Amazon EC2 Auto Scaling Enlaces de ciclo de vida de.

Los enlaces de ciclo de vida pueden afectar al tiempo de inicio de los periodos de recuperación configurados para el grupo de Auto Scaling. Por ejemplo,suponga que tiene un grupo de Auto Scaling con un enlace de ciclo de vida que admite una acción personalizada cuando se lanza una instancia. Cuando la aplicación experimenta un aumento de la demanda debido a una política de escalado sencillo, el grupo lanza una instancia para agregar capacidad. Como hay un enlace de ciclo de vida, la instancia se pone en estado Pending:Wait, lo que significa que aún no está disponible para controlar el tráfico. Cuando la instancia entra en el estado de espera, se detienen las actividades de escalado debido a las políticas de escalado sencillo. Cuando la instancia pasa a tener el estado InService, se inicia el periodo de recuperación. Cuando finaliza el periodo de recuperación, las actividades de escalado que se activan después del periodo de recuperación pueden reanudarse.

No todos los tiempos de reutilización se aplican después de la ejecución de los enlaces del ciclo de vida

Normalmente, cuando una instancia está finalizando, el período de recuperación no comienza hasta después de que la instancia salga del estado Terminating:Wait (una vez finalizada la ejecución del enlace del ciclo de vida).

Sin embargo, con Elastic Load Balancing, el grupo de Auto Scaling inicia el período de recuperación cuando la instancia de terminación finaliza la connection draining (demora por anulación de registro) por el balanceador de carga y no espera el enlace del ciclo de vida. Esto es útil para grupos que tienen políticas de escalado simples tanto para escalar como para desescalar. La intención de un período de recuperación es permitir que la siguiente actividad de escalado ocurra tan pronto como los efectos de las actividades anteriores sean visibles. Si una instancia está finalizando y, a continuación, la demanda de la aplicación aumenta repentinamente, cualquier actividad de escalado debido a políticas de escalado simples que estén en pausa puede reanudarse una vez que se haya agotado el connection draining y finalice el período de recuperación. De lo contrario, a la espera de completar las tres actividades —draining de conexión, un enlace de ciclo de vida y un periodo— de recuperación aumentan significativamente la cantidad de tiempo que el Auto Scaling grupo de necesita para poner en pausa el escalado.