Agregar enlaces de ciclo de vida - Amazon EC2 Auto Scaling

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.

Agregar enlaces de ciclo de vida

Puede agregar enlaces del ciclo de vida al grupo de Auto Scaling para poner las instancias de Auto Scaling en estado de espera y llevar a cabo acciones personalizadas en ellas. Las acciones personalizadas se realizan a medida que se lanzan las instancias o antes de que finalicen. Las instancias permanecen en estado de espera hasta que se completa la acción del ciclo de vida o finaliza el periodo de espera.

Después de crear un grupo de Auto Scaling a partir de AWS Management Console, puede agregarle uno o más enlaces de ciclo de vida, hasta un total de 50 enlaces de ciclo de vida. También puede usar el AWS CLI AWS CloudFormation, o un SDK para agregar enlaces de ciclo de vida a un grupo de Auto Scaling a medida que lo crea.

De forma predeterminada, cuando agrega un enlace de ciclo de vida en la consola, Amazon EC2 Auto Scaling envía notificaciones de eventos del ciclo de vida a Amazon. EventBridge Se recomienda utilizar un script de datos de usuario EventBridge o utilizar un script de datos de usuario. Para crear un enlace de ciclo de vida que envíe notificaciones directamente a Amazon SNS o Amazon SQS, puede utilizar put-lifecycle-hookel comando, como se muestra en los ejemplos de este tema.

Adición de enlaces de ciclo de vida (consola)

Siga estos pasos para agregar enlaces de ciclo de vida a un grupo de escalado automático. Para agregar enlaces de ciclo de vida a fin de escalar horizontalmente (lanzar instancias) y reducir horizontalmente (terminar instancias o regresarlas a un grupo en caliente), debe crear dos enlaces independientes.

Antes de comenzar, confirme que ha configurado una acción personalizada, según sea necesario, como se detalla en Preparación para agregar un enlace de ciclo de vida a un grupo de Auto Scaling.

Para agregar un enlace de ciclo de vida para escalar horizontalmente
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/ y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación.

  2. Seleccione la casilla situada junto al grupo de escalado automático. Se abre un panel dividido en la parte inferior de la página.

  3. En la pestaña Instance management (Administración de instancias), en Lifecycle hooks (Enlaces de ciclo de vida), elija Create lifecycle hook (Crear enlace de ciclo de vida).

  4. Para definir un enlace de ciclo de vida para escalar horizontalmente (lanzamiento de instancias), haga lo siguiente:

    1. En Lifecycle hook name (Nombre del enlace de ciclo de vida), especifique un nombre para el enlace de ciclo de vida.

    2. En Lifecycle transition (Transición del ciclo de vida), elija Instance launch (Lanzamiento de instancia).

    3. En Tiempo de espera del latido, especifique la cantidad de tiempo en segundos que las instancias pueden permanecer en estado de espera al escalar horizontalmente antes de que se agote el tiempo de espera del enlace. El rango va de 30 a 7200 segundos. Establecer un periodo de tiempo de espera prolongado proporciona más tiempo para que se complete la acción personalizada. A continuación, si termina antes de que finalice el período de espera, envíe el complete-lifecycle-actioncomando para permitir que la instancia pase al siguiente estado.

    4. En Default result (Resultado predeterminado), especifique la acción que se debe realizar cuando termine el tiempo de espera del enlace de ciclo de vida o cuando se produzca un error inesperado. Puede seleccionar CONTINUAR o ABANDONAR.

      • Si elige CONTINUAR, el grupo de escalado automático puede continuar con cualquier otro enlace de ciclo de vida y luego poner la instancia en servicio.

      • Si elige ABANDONAR, el grupo de escalado automático detiene las acciones restantes y termina las instancias de inmediato.

    5. (Opcional) En Metadatos de notificación, especifique cualquier otra información que desee incluir cuando Amazon EC2 Auto Scaling envíe un mensaje al destino de notificación.

  5. Seleccione Crear.

Para agregar un enlace de ciclo de vida para reducir horizontalmente
  1. Elija Crear enlace de ciclo de vida para continuar donde lo dejó después de crear un enlace de ciclo de vida para escalar horizontalmente.

  2. Para definir un enlace de ciclo de vida para reducir horizontalmente (instancias que finalizan o regresan a un grupo de calentamiento), haga lo siguiente:

    1. En Lifecycle hook name (Nombre del enlace de ciclo de vida), especifique un nombre para el enlace de ciclo de vida.

    2. En Lifecycle transition (Transición del ciclo de vida), elija Instance terminate (Terminación de instancia).

    3. En Tiempo de espera del latido, especifique la cantidad de tiempo en segundos que las instancias pueden permanecer en estado de espera al escalar horizontalmente antes de que se agote el tiempo de espera del enlace. Recomendamos un período de espera breve, de 30 120 unos segundos, en función del tiempo que necesite para realizar cualquier tarea final, como extraer los registros de EC2. CloudWatch

    4. En Default result (Resultado predeterminado), especifique la acción que el grupo de escalado automático va a realizar cuando transcurra el tiempo de espera o si se produce un error inesperado. Tanto ABANDON (Abandonar) como CONTINUE (Continuar) permiten que la instancia se termine.

      • Si elige CONTINUE (Continuar), el grupo de escalado automático puede continuar con todas las acciones restantes, como otros enlaces de ciclo de vida, antes de la terminación.

      • Si elige ABANDONAR, el grupo de escalado automático termina la instancia de inmediato.

    5. (Opcional) En Metadatos de notificación, especifique cualquier otra información que desee incluir cuando Amazon EC2 Auto Scaling envíe un mensaje al destino de notificación.

  3. Elija Create (Crear).

Adición de enlaces de ciclo de vida (AWS CLI)

Cree y actualice los enlaces del ciclo de vida mediante el comando put-lifecycle-hook.

Para realizar una acción de escalado ascendente, utilice el siguiente comando.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-launch-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING

Para realizar una acción de reducción horizontal, utilice el siguiente comando.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING

Para recibir notificaciones mediante Amazon SNS o Amazon SQS, agregue las opciones --notification-target-arn y --role-arn.

En el siguiente ejemplo, se crea un enlace de ciclo de vida que especifica un tema de SNS denominado my-sns-topic como destino de notificación.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg \ --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \ --notification-target-arn arn:aws:sns:region:123456789012:my-sns-topic \ --role-arn arn:aws:iam::123456789012:role/my-notification-role

El tema recibe una notificación de prueba con el siguiente par de clave-valor.

"Event": "autoscaling:TEST_NOTIFICATION"

De forma predeterminada, el put-lifecycle-hookcomando crea un enlace de ciclo de vida con un tiempo de espera de 3600 segundos (una hora).

Para cambiar el tiempo de espera de latido de un enlace de ciclo de vida existente, agregue la opción --heartbeat-timeout, como se muestra en el siguiente ejemplo.

aws autoscaling put-lifecycle-hook --lifecycle-hook-name my-termination-hook \ --auto-scaling-group-name my-asg --heartbeat-timeout 120

Si una instancia ya está en estado de espera, puedes evitar que se agote el tiempo de espera del enlace del ciclo de vida grabando un latido mediante el comando record-lifecycle-action-heartbeatCLI. De esta forma, se incrementa el tiempo de espera en el valor especificado cuando creó el enlace de ciclo de vida. Si terminas antes de que finalice el período de espera, puedes enviar el comando complete-lifecycle-actionCLI para permitir que la instancia pase al siguiente estado. Para obtener más información y ejemplos, consulte Completar una acción del ciclo de vida.