Suspensión y reanudación de un proceso para un grupo de Auto Scaling - Amazon EC2 Auto Scaling

Suspensión y reanudación de un proceso para un grupo de Auto Scaling

En este tema, se explica cómo suspender y, a continuación, reanudar uno o varios de los procesos del grupo de Auto Scaling. Puede que desee hacerlo, por ejemplo, para poder investigar un problema de configuración que provoca que el proceso falle o para evitar que Amazon EC2 Auto Scaling marque las instancias en mal estado y las reemplace mientras hace cambios en su grupo de escalado automático.

nota

Además de las suspensiones que inicie, Amazon EC2 Auto Scaling también puede suspender los procesos de los grupos de Auto Scaling que repetidamente no consigan lanzar instancias. Esto es lo que se conoce como una suspensión administrativa. Una suspensión administrativa, en la mayoría de los casos, se aplica a los grupos de Auto Scaling que intentan lanzar instancias durante más de 24 horas, pero no lo logran. Puede reanudar los procesos suspendidos por Amazon EC2 Auto Scaling por razones administrativas.

Tipos de procesos

La función de reanudación-suspensión admite los siguientes procesos:

  • Launch: agrega instancias al grupo de escalado automático cuando el grupo se escala horizontalmente o cuando Amazon EC2 Auto Scaling elige lanzar instancias por otros motivos, como cuando agrega instancias a un grupo de calentamiento.

  • Terminate: elimina instancias del grupo de escalado automático cuando el grupo se reduce horizontalmente o cuando Amazon EC2 Auto Scaling elige finalizar instancias por otros motivos, como cuando una instancia finaliza por exceder su duración máxima de vida útil o no se realiza una comprobación de estado.

  • AddToLoadBalancer: agrega instancias al grupo de destino del balanceador de carga o al Classic Load Balancer asociados cuando se lanzan. Para obtener más información, consulte Utilizar Elastic Load Balancing para distribuir el tráfico entre las instancias de un grupo de Auto Scaling .

  • AlarmNotification: acepta notificaciones de alarmas de CloudWatch que están asociadas a las políticas de escalado dinámico. Para obtener más información, consulte Escalado dinámico para Amazon EC2 Auto Scaling .

  • AZRebalance: equilibra el número de instancias EC2 del grupo de manera uniforme en todas las zonas de disponibilidad especificadas cuando el grupo se desequilibra, por ejemplo, cuando una zona de disponibilidad que anteriormente no estaba disponible vuelve a un estado correcto. Para obtener más información, consulte Actividades de reequilibrio .

  • HealthCheck: verifica el estado de las instancias y marca una instancia como en mal estado si Amazon EC2 o Elastic Load Balancing indica a Amazon EC2 Auto Scaling que la instancia está en mal estado. Este proceso puede invalidar el estado de una instancia que configura manualmente. Para obtener más información, consulte Comprobaciones de estado para instancias de Auto Scaling .

  • InstanceRefresh: termina y reemplaza instancias mediante la característica de actualización de instancias. Para obtener más información, consulte Reemplazo de instancias de Auto Scaling en función de una actualización de instancias .

  • ReplaceUnhealthy: termina las instancias que están marcadas con un estado incorrecto y, a continuación, crea nuevas instancias para reemplazarlas. Para obtener más información, consulte Comprobaciones de estado para instancias de Auto Scaling .

  • ScheduledActions: realiza las acciones de escalado programadas que ha creado o que se han creado automáticamente al crear un plan de escalado de AWS Auto Scaling y activa el escalado predictivo. Para obtener más información, consulte Escalado programado para Amazon EC2 Auto Scaling .

Consideraciones

Tenga en cuenta lo siguiente antes de suspender procesos:

  • Puede suspender y reanudar procesos individuales o todos los procesos.

  • Suspender un proceso afecta a todas las instancias de su grupo de escalado automático. Por ejemplo, puede suspender los procesos HealthCheck y ReplaceUnhealthy para reiniciar instancias sin que Amazon EC2 Auto Scaling termine las instancias en función de sus comprobaciones de estado. Si necesita Amazon EC2 Auto Scaling para realizar comprobaciones de estado de las instancias restantes, utilice la característica de espera en lugar de la característica de suspensión-reanudación. Para obtener más información, consulte Eliminación temporal de las instancias de un grupo de Auto Scaling .

  • La suspensión de AlarmNotification le permite detener temporalmente el seguimiento de objetivos, el paso y las políticas de escalado simple del grupo sin eliminar las políticas de escalado o sus alarmas de CloudWatch asociadas. Para detener temporalmente las políticas de escalado individuales, consulte Desactivación de una política de escalado para un grupo de Auto Scaling.

  • Si suspende los procesos Launch, Terminate o AZRebalance, y después realiza cambios en el grupo de escalado automático, por ejemplo, al desconectar instancias o cambiar las zonas de disponibilidad especificadas, el grupo puede desequilibrarse entre zonas de disponibilidad. Si esto sucede, después de reanudar los procesos suspendidos, Amazon EC2 Auto Scaling redistribuye gradualmente las instancias de manera uniforme entre las zonas de disponibilidad.

Explicación de cómo la suspensión de procesos afecta a otros procesos

Las siguientes descripciones explican lo que ocurre cuando se suspenden los distintos tipos de procesos.

Escenario 1: Launch está suspendido

  • AlarmNotification sigue activo, pero el grupo de escalado automático no puede iniciar actividades de escalado horizontal para alarmas infractoras.

  • ScheduledActions está activo, pero el grupo de escalado automático no puede iniciar actividades de escalado horizontal para ninguna acción programada que se produzca.

  • AZRebalance deja de reequilibrar el grupo.

  • ReplaceUnhealthy continúa finalizando instancias en mal estado, pero no lanza reemplazos. Cuando reanude el proceso Launch, Amazon EC2 Auto Scaling reemplaza inmediatamente las instancias que finalizó durante el tiempo en que se suspendió Launch.

  • InstanceRefresh no reemplaza las instancias.

Escenario 2: Terminate está suspendido

  • AlarmNotification sigue activo, pero el grupo de escalado automático no puede iniciar actividades de reducción horizontal para alarmas infractoras.

  • ScheduledActions está activo, pero el grupo de escalado automático no puede iniciar actividades de reducción horizontal para ninguna acción programada que se produzca.

  • AZRebalance sigue activo, pero no funciona correctamente. Puede lanzar nuevas instancias sin terminar las antiguas. Esto puede provocar que su grupo de Auto Scaling aumente hasta un 10 % más que su tamaño máximo, ya que se permite que ocurra esto durante las actividades de reequilibrado. Su grupo de Auto Scaling podría permanecer por encima de su tamaño máximo hasta que se reanude el proceso Terminate.

  • ReplaceUnhealthy está inactivo, pero no HealthCheck. Cuando se reanuda Terminate, el proceso ReplaceUnhealthy empieza a ejecutarse inmediatamente. Si las instancias se marcaron como en mal estado mientras Terminate se encuentra suspendido, se reemplazarán de inmediato.

  • InstanceRefresh no reemplaza las instancias.

Escenario 3: AddToLoadBalancer está suspendido

  • Amazon EC2 Auto Scaling lanza las instancias, pero no las agrega al grupo de destino del balanceador de carga o al Classic Load Balancer. Cuando se reanuda el proceso AddToLoadBalancer, se reanuda la adición de instancias al balanceador de carga cuando se lanzan. Sin embargo, no se añaden las instancias que se lanzaron mientras este proceso estaba suspendido. Debe registrar dichas instancias manualmente.

Escenario 4: AlarmNotification está suspendido

  • Amazon EC2 Auto Scaling no invoca políticas de escalado cuando se interrumpe un umbral de alarma de CloudWatch. Al reanudar AlarmNotification, Amazon EC2 Auto Scaling tiene en cuenta las políticas con umbrales de alarma que se han interrumpido.

Escenario 5: AZRebalance está suspendido

  • Amazon EC2 Auto Scaling no intenta redistribuir instancias tras determinados eventos. Sin embargo, si se produce un evento de escalado ascendente o descendente, el proceso de escalado intenta equilibrar igualmente las zonas de disponibilidad. Por ejemplo, durante el escalado ascendente, se lanza la instancia en la zona de disponibilidad con el menor número de instancias. Si el grupo se desequilibra durante la suspensión de AZRebalance y lo reanuda, Amazon EC2 Auto Scaling intenta reequilibrar el grupo. En primer lugar, llama a Launch y, a continuación, a Terminate.

Escenario 6: HealthCheck está suspendido

  • Amazon EC2 Auto Scaling deja de marcar las instancias con un estado incorrecto como resultado de las comprobaciones de estado de EC2 y Elastic Load Balancing. Las comprobaciones de estado personalizadas siguen funcionando correctamente. Tras suspender HealthCheck, si es necesario, puede configurar manualmente el estado de las instancias del grupo y que ReplaceUnhealthy las sustituya.

Escenario 7: InstanceRefresh está suspendido

  • Amazon EC2 Auto Scaling deja de reemplazar instancias debido a una actualización de instancias. Si hay una actualización de instancias en curso, se detiene la operación sin cancelarla.

Escenario 8: ReplaceUnhealthy está suspendido

  • Amazon EC2 Auto Scaling deja de reemplazar las instancias marcadas con un estado incorrecto. Las instancias que no superan las comprobaciones de estado de EC2 o Elastic Load Balancing seguirán estando marcadas con un estado incorrecto. En cuanto se reanuda el proceso ReplaceUnhealthly, Amazon EC2 Auto Scaling reemplaza las instancias marcadas con un estado incorrecto durante la suspensión de este proceso. El proceso ReplaceUnhealthy llama primero a Terminate y después Launch.

Escenario 9: ScheduledActions está suspendido

  • Amazon EC2 Auto Scaling no pone en marcha acciones programadas que están programadas para su activación durante el periodo de suspensión. Cuando se reanuda ScheduledActions, Amazon EC2 Auto Scaling solo considera acciones programadas cuyo tiempo programado aún no ha pasado.

Consideraciones adicionales

Además, cuando Launch o Terminate están suspendidos, es posible que las siguientes funciones no trabajen correctamente:

  • Maximum instance lifetime (Duración máxima de la instancia): cuando Launch o Terminate se suspenden, esta característica no puede reemplazar ninguna instancia.

  • Interrupciones de instancias de spot: si Terminate se suspende y el grupo de Auto Scaling tiene instancias de spot, todavía pueden terminar en caso de que la capacidad de spot ya no esté disponible. Durante la suspensión de Launch, Amazon EC2 Auto Scaling no puede lanzar instancias de reemplazo de otro grupo de instancias de spot o del mismo grupo de instancias de spot cuando vuelve a estar disponible.

  • Capacity Rebalancing (Reequilibrio de la capacidad): si se suspende Terminate y utiliza el reequilibrio de la capacidad para gestionar las interrupciones de instancias de spot, el servicio de spot de Amazon EC2 aún puede terminar instancias en caso de que la capacidad del spot ya no esté disponible. Si se suspende Launch, Amazon EC2 Auto Scaling no puede lanzar instancias de reemplazo de otro grupo de instancias de spot o del mismo grupo de instancias de spot cuando vuelve a estar disponible.

  • Attaching and detaching instances (Asociación y desconexión de instancias): cuando Launch y Terminate se suspenden, puede desconectar las instancias asociadas al grupo de escalado automático, pero mientras Launch está suspendido, no puede asociar nuevas instancias al grupo.

  • Standby instances (Instancias en espera): cuándo Launch y Terminate están suspendidos, puede poner una instancia en el estado Standby, pero mientras Launch está suspendido, no se puede reactivar una instancia con el estado Standby.

Suspensión y reanudación de los procesos de escalado (consola)

Use el procedimiento siguiente para suspender un proceso.

Para suspender un proceso

  1. Abra la consola de Amazon EC2 Auto Scaling en https://console.aws.amazon.com/ec2autoscaling/.

  2. Seleccione la casilla situada junto al grupo de Auto Scaling.

    Se abre un panel dividido en la parte inferior de la página Auto Scaling groups (Grupos de Auto Scaling).

  3. En la pestaña Details (Detalles) elija (Advanced configurations) Configuraciones avanzadas, Edit (Editar).

  4. En Suspended processes (Procesos suspendidos), seleccione el proceso que desea suspender.

  5. Elija Update (Actualizar).

Cuando tenga todo listo, use el siguiente procedimiento para reanudar el proceso suspendido.

Para reanudar un proceso

  1. En la pestaña Details (Detalles) elija (Advanced configurations) Configuraciones avanzadas, Edit (Editar).

  2. Para Suspended processes (Procesos suspendidos), elimine el proceso suspendido.

  3. Elija Update (Actualizar).

Suspensión y reanudación de procesos (AWS CLI)

Use el comando siguiente suspend-processes para suspender procesos individuales.

aws autoscaling suspend-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck ReplaceUnhealthy

Para suspender todos los procesos, omita la opción --scaling-processes de la siguiente manera.

aws autoscaling suspend-processes --auto-scaling-group-name my-asg

Cuando tenga todo listo para reanudar un proceso suspendido, utilice el comando siguiente resume-processes.

aws autoscaling resume-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck

Para reanudar todos los procesos suspendidos, omita la opción --scaling-processes de la siguiente manera.

aws autoscaling resume-processes --auto-scaling-group-name my-asg