Control de las instancias de Auto Scaling que se terminan durante una reducción horizontal - Amazon EC2 Auto Scaling

Control de las instancias de Auto Scaling que se terminan durante una reducción horizontal

Amazon EC2 Auto Scaling utiliza políticas de terminación para determinar qué instancias termina primero durante los eventos de reducción horizontal. Las políticas de terminación definen los criterios de terminación que Amazon EC2 Auto Scaling utiliza al elegir las instancias que se deben terminar.

El grupo de Auto Scaling utiliza una política de terminación predeterminada, pero, opcionalmente, puede elegir o crear sus propias políticas de terminación con sus propios criterios de terminación. Esto le permite asegurarse de que las instancias se terminan en función de las necesidades específicas de la aplicación.

Amazon EC2 Auto Scaling también ofrece protección frente a la reducción horizontal de instancias. Cuando habilita esta característica, evita que las instancias terminen durante los eventos de reducción horizontal. Puede habilitar la protección frente a la reducción horizontal de instancias cuando cree un grupo de Auto Scaling, y también puede cambiar la configuración de las instancias en ejecución. Si habilita la protección frente a la reducción horizontal de instancias en un grupo de Auto Scaling existente, todas las instancias nuevas que se lancen después, tendrán habilitada la protección frente a la reducción horizontal de instancias.

nota

La protección frente a la reducción horizontal de instancias no garantiza que las instancias no se terminen en caso de error humano; por ejemplo, si alguien termina manualmente una instancia mediante la consola de Amazon EC2 o AWS CLI. Para proteger la instancia de una terminación accidental, puede utilizar la protección frente a la terminación de Amazon EC2. Sin embargo, incluso con la protección frente a la terminación y la protección frente a la reducción horizontal de instancias habilitadas, los datos guardados en el almacenamiento de instancias pueden perderse si una comprobación de estado determina que una instancia no está en buen estado o si el grupo se elimina accidentalmente. Al igual que en cualquier entorno, una práctica recomendada es realizar copias de seguridad de sus datos con frecuencia o cuando sea apropiado para los requisitos de continuidad de la empresa.

Escenarios de uso de políticas de terminación

En las siguientes secciones se describen los escenarios en los que Amazon EC2 Auto Scaling utiliza políticas de terminación.

Eventos de reducción horizontal

Un evento de reducción horizontal se produce cuando hay un nuevo valor para la capacidad deseada de un grupo de Auto Scaling que es inferior a la capacidad actual del grupo.

Los eventos de reducción horizontal ocurren en los siguientes escenarios:

  • Cuando se utilizan políticas de escalado dinámico y el tamaño del grupo disminuye como resultado de cambios en el valor de una métrica

  • Cuando se utiliza el escalado programado y el tamaño del grupo disminuye como resultado de una acción programada

  • Cuando reduce manualmente el tamaño del grupo

En el ejemplo siguiente se muestra cómo funcionan las políticas de terminación cuando hay un evento de reducción horizontal.

  1. El grupo de Auto Scaling de este ejemplo tiene un tipo de instancia, dos zonas de disponibilidad y una capacidad deseada de dos instancias. También tiene una política de escalado dinámico que agrega y elimina instancias cuando la utilización de recursos aumenta o disminuye. Las dos instancias de este grupo se distribuyen entre las dos zonas de disponibilidad, como se muestra en el siguiente diagrama.

    
                                Un grupo básico de Auto Scaling.
  2. Cuando se reduce horizontalmente el grupo de Auto Scaling, Amazon EC2 Auto Scaling lanza una nueva instancia. El grupo de Auto Scaling ahora tiene tres instancias, distribuidas entre las dos zonas de disponibilidad, como se muestra en el siguiente diagrama.

    
                                Un grupo de Auto Scaling después de una acción de escalado.
  3. Cuando se escala el grupo Auto Scaling, Amazon EC2 Auto Scaling termina una de las instancias.

  4. Si no ha asignado una política de terminación específica al grupo, Amazon EC2 Auto Scaling utiliza la política de terminación predeterminada. Selecciona la zona de disponibilidad con dos instancias y termina la instancia lanzada desde la plantilla de lanzamiento o la configuración de lanzamiento más antigua. Si las instancias se lanzaron desde la misma plantilla o configuración de lanzamiento, Amazon EC2 Auto Scaling selecciona la instancia más próxima a la siguiente hora de facturación y la termina.

Actualizaciones de instancias

Las actualizaciones de instancias se inician para actualizar las instancias del grupo de Auto Scaling. Durante una actualización de instancias, Amazon EC2 Auto Scaling termina las instancias del grupo y, a continuación, lanza reemplazos de las instancias terminadas. La política de terminación del grupo de Auto Scaling controla qué instancias se reemplazan primero.

Reequilibrio de la zona de disponibilidad

Amazon EC2 Auto Scaling equilibra la capacidad de manera uniforme en las zonas de disponibilidad habilitadas para el grupo de Auto Scaling. Esto ayuda a reducir el impacto de una interrupción en la zona de disponibilidad. Si la distribución de la capacidad entre las zonas de disponibilidad se desequilibra, Amazon EC2 Auto Scaling reequilibra el grupo de Auto Scaling lanzando instancias en las zonas de disponibilidad habilitadas con menos instancias y terminando instancias en otros lugares. La política de terminación controla qué instancias tienen prioridad para terminarlas primero.

Existen varias razones por las que la distribución de instancias entre las zonas de disponibilidad puede desequilibrarse.

Eliminación de instancias

Si desconecta instancias del grupo de Auto Scaling, pone instancias en espera o termina explícitamente instancias y disminuye la capacidad deseada, lo que impide que se lancen instancias de reemplazo, el grupo podría quedar desequilibrado. Si esto ocurre, Amazon EC2 Auto Scaling lo compensa reequilibrando las zonas de disponibilidad.

Uso de zonas de disponibilidad diferentes de las especificadas originalmente

Si expande el grupo de Auto Scaling para incluir zonas de disponibilidad adicionales, o cambia las zonas de disponibilidad que se utilizan, Amazon EC2 Auto Scaling lanzará instancias en las nuevas zonas de disponibilidad y las terminará en las otras zonas para garantizar que el grupo de Auto Scaling abarca de manera uniforme las zonas de disponibilidad.

Interrupción de disponibilidad

Las interrupciones de disponibilidad son raras. Sin embargo, si una zona de disponibilidad deja de estar disponible y se recupera posteriormente, el grupo de Auto Scaling puede quedar desequilibrado entre las zonas de disponibilidad. Amazon EC2 Auto Scaling intenta reequilibrar gradualmente el grupo y el reequilibrio puede terminar instancias en otras zonas.

Por ejemplo, imagine que hay un grupo de Auto Scaling que tiene un tipo de instancia, dos zonas de disponibilidad y una capacidad deseada de dos instancias. En una situación en la que se produce un error en una zona de disponibilidad, Amazon EC2 Auto Scaling lanza automáticamente una nueva instancia en la zona de disponibilidad en buen estado para reemplazar la de la zona de disponibilidad en mal estado. Cuando la zona de disponibilidad en mal estado vuelve a estar en buen estado, Amazon EC2 Auto Scaling lanza automáticamente una nueva instancia en esta zona, que a su vez termina una instancia en la zona no afectada.

nota

Durante el reequilibrio, Amazon EC2 Auto Scaling lanza nuevas instancias antes de terminar las antiguas, por lo que no se pone en peligro el rendimiento ni la disponibilidad de su aplicación.

Como Amazon EC2 Auto Scaling intenta lanzar nuevas instancias antes de terminar las antiguas, cuando se está en la capacidad máxima especificada o cerca de ella puede impedir o detener completamente las actividades de reequilibrio. Para evitar este problema, el sistema puede superar temporalmente la capacidad máxima especificada de un grupo con un margen del 10 % (o con un margen de una instancia, lo que sea mayor) durante una actividad de reequilibrio. El margen solo se amplía si el grupo tiene o se aproxima a la capacidad máxima y necesita reequilibrarse, ya sea por una distribución de zonas solicitada por el usuario o para compensar los problemas de disponibilidad de zona. La extensión se dura solamente mientras sea necesaria para reequilibrar el grupo, normalmente unos minutos.