Recuperaciones de escalado para Amazon EC2 Auto Scaling - Amazon EC2 Auto Scaling

Recuperaciones de escalado para Amazon EC2 Auto Scaling

Una vez que el grupo de Auto Scaling lanza o finaliza las instancias, espera a que finalice el periodo de recuperación antes de que otras actividades de escalado iniciadas por políticas de escalado sencillo puedan iniciarse. La intención del periodo de recuperación es evitar que un grupo de Auto Scaling lance o termine instancias adicionales antes de que los efectos de las actividades anteriores sean visibles.

importante

Como práctica recomendada, no utilice políticas de escalado sencillo ni recuperación de escalado.

En la mayoría de los casos, una política de escalado de seguimiento de objetivo o una política de escalado por pasos son mejores para escalar el rendimiento. Para una política de escalado que cambie el tamaño del grupo proporcionalmente a medida que el valor de la métrica de escalado disminuya o aumente, recomendamos el seguimiento de destino en lugar del escalado sencillo o por pasos.

Por ejemplo, suponga que una política de escalado sencillo para la utilización de la CPU recomienda lanzar dos instancias. Amazon EC2 Auto Scaling lanza dos instancias y, a continuación, pausa las actividades de escalado hasta que finaliza el periodo de recuperación. Una vez finalizado el periodo de recuperación, las actividades de escalado iniciadas por las políticas de escalado sencillo pueden reanudarse. Si la utilización de la CPU vuelve a superar el umbral máximo de alarma, el grupo de Auto Scaling se vuelve a escalar horizontalmente, y vuelve a aplicarse el periodo de recuperación. Sin embargo, si dos instancias fueron suficientes para reducir el valor de la métrica, el grupo mantendrá su tamaño actual.

Consideraciones

Las siguientes consideraciones se aplican cuando se trabaja con políticas de escalado sencillo y tiempos de recuperación de escalado:

  • Las políticas de seguimiento de destino y de escalado por pasos pueden iniciar una actividad de escalado horizontal inmediatamente sin esperar a que finalice el periodo de recuperación. En cambio, cada vez que el grupo de Auto Scaling lanza instancias, las instancias individuales tienen un periodo de preparación. Para obtener más información, consulte Establecer la preparación predeterminada de instancias para un grupo de Auto Scaling .

  • Cuando una acción programada se inicia a la hora programada, puede desencadenar también una actividad de escalado inmediatamente sin esperar a que finalice el periodo de recuperación.

  • Si una instancia adopta un estado incorrecto, Amazon EC2 Auto Scaling no espera a que se complete el periodo de recuperación antes de reemplazar la instancia en estado incorrecto.

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

  • Cuando escala manualmente el grupo de Auto Scaling, el comportamiento predeterminado es no esperar a que finalice el periodo de recuperación. Sin embargo, puede anular este comportamiento y respetar el periodo de recuperación predeterminado cuando utilice la AWS CLI o un SDK para escalar manualmente.

  • De forma predeterminada, Elastic Load Balancing espera 300 segundos para completar el proceso de anulación del registro (drenaje de conexión). Si el grupo está detrás de un equilibrador de carga de Elastic Load Balancing, esperará a que se anule el registro de las instancias que están terminando para poder comenzar el periodo de recuperación.

Los enlaces de ciclo de vida provocan retrasos adicionales

Si se invoca un enlace de ciclo de vida, el periodo de recuperación comienza una vez que completa la acción del ciclo de vida o después de que se agote el periodo de espera. Por ejemplo, suponga que tiene un grupo de Auto Scaling con un enlace de ciclo de vida para el lanzamiento de instancias. Cuando la aplicación experimenta un aumento en la demanda, el grupo lanza una instancia para sumar capacidad. Como hay un enlace de ciclo de vida, la instancia se pone en estado de espera y 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, se reanudan las actividades de las políticas de escalado sencillo.

Cuando Elastic Load Balancing está habilitado, a los efectos de la reducción horizontal, el periodo de recuperación se inicia cuando la instancia que está terminando finaliza el drenaje de conexión (retardo de anulación del registro). No espera la duración del enlace. Esto significa que cualquier actividad de escalado debido a las políticas de escalado sencillo puede reanudarse tan pronto como el resultado del evento de escalado se vea reflejado en la capacidad del grupo. De lo contrario, esperar a que se completen las tres actividades —(drenaje de conexión, un enlace de ciclo de vida y un periodo de recuperación) aumentaría significativamente la cantidad de tiempo que el grupo de Auto Scaling necesitaría para pausar el escalado.

Cambiar el periodo de recuperación predeterminado

No puede establecer el periodo de recuperación predeterminado cuando crea inicialmente un grupo de Auto Scaling en la consola de Amazon EC2 Auto Scaling. De forma predeterminada, este periodo de recuperación se establece en 300 segundos (5 minutos). Si es necesario, puede actualizarlo después de crear el grupo.

Para cambiar el periodo de recuperación predeterminado (consola)

Después de crear el grupo de Auto Scaling, en la pestaña Details (Detalles), elija Advanced configurations (Configuraciones avanzadas), Edit (Editar). En Default cooldown (Recuperación predeterminada), elija el periodo que desea en función de la hora de inicio de las instancias u otras necesidades de la aplicación.

Para cambiar el periodo de recuperación predeterminado (AWS CLI)

Utilice los siguientes comandos para cambiar el periodo de recuperación predeterminado para grupos de Auto Scaling nuevos o existentes. Si no se define un periodo de recuperación predeterminado, se utiliza el valor predeterminado de 300 segundos.

Para confirmar el valor del periodo de recuperación predeterminado, utilice el comando describe-auto-scaling-groups.

Establecer un periodo de recuperación para políticas de escalado sencillo específicas

De forma predeterminada, todas las políticas de escalado sencillo utilizan el periodo de recuperación predeterminado que se ha definido para el grupo de Auto Scaling. Para especificar un periodo de recuperación para políticas de escalado sencillo específicas, utilice el parámetro de recuperación opcional al crear o actualizar la política. Cuando se especifica un periodo de recuperación para una política, este reemplaza el periodo de recuperación predeterminado.

Un uso común de un periodo de recuperación específico de la política de escalado es con una política de reducción horizontal. 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 de la política de escalado con un valor inferior para la política de reducción horizontal puede ayudarle a reducir los costos al permitir que el grupo se reduzca horizontalmente de manera más rápida.

Para crear o actualizar políticas de escalado sencillo en la consola, elija la pestaña Automatic scaling (Escalado automático) después de crear el grupo. Para crear o actualizar las políticas de escalado sencillo mediante la AWS CLI, utilice el comando put-scaling-policy. Para obtener más información, consulte Políticas de escalado sencillo y por pasos .