

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.

# Controle la retención de instancias con políticas de ciclo de vida de las instancias
<a name="instance-lifecycle-policy"></a>

 Las políticas del ciclo de vida de las instancias brindan protección contra las terminaciones de Amazon EC2 Auto Scaling cuando se abandona una acción del ciclo de vida de la terminación. A diferencia de los enlaces del ciclo de vida por sí solos, las políticas del ciclo de vida de las instancias están diseñadas para garantizar que las instancias pasen a un estado retenido cuando los procedimientos de cierre correctos no se completen correctamente. 

## Cuándo usar las políticas del ciclo de vida de las instancias
<a name="when-to-use-instance-lifecycle-policies"></a>

 Utilice políticas de ciclo de vida de las instancias cuando el cierre correcto de la aplicación no sea opcional, sino obligatorio, y los cierres fallidos requieran una intervención manual. Los casos de uso comunes incluyen: 
+  Aplicaciones con buen estado que deben completar la persistencia de los datos antes de su finalización. 
+  Aplicaciones que requieren períodos de carga prolongados que pueden superar el tiempo de espera máximo de 48 horas durante el ciclo de vida. 
+  Las cargas de trabajo que gestionan datos confidenciales y cuya limpieza es incompleta o no se realiza correctamente pueden provocar la pérdida o la corrupción de los datos. 
+  Servicios de misión crítica en los que el cierre brusco afecta a la disponibilidad. 

 Para obtener más información sobre cómo gestionar correctamente la terminación de instancias, consulte. [Diseño de aplicaciones para gestionar sin problemas la terminación de instancias](gracefully-handle-instance-termination.md) 

## Cómo funcionan las políticas del ciclo de vida de las instancias con los ganchos del ciclo de vida
<a name="how-instance-lifecycle-policies-work"></a>

 Las políticas del ciclo de vida de las instancias funcionan en combinación con los ganchos del ciclo de vida de las terminaciones, no como sustitutos. El proceso sigue varias etapas: 

1.  **Se ejecutan las acciones del ciclo de vida de terminación.** Cuando Amazon EC2 Auto Scaling selecciona una instancia para su terminación, se invocan los enlaces del ciclo de vida de la terminación y la instancia entra en el estado para comenzar a ejecutar `Terminating:Wait` las acciones del ciclo de vida de la terminación. 

1.  **Comienza un intento de cierre correcto.** La aplicación, ya sea que se ejecute en la instancia o a través de un plano de control, recibirá la notificación de una acción relacionada con el ciclo de vida de finalización e iniciará procedimientos de cierre sin contratiempos, como agotar las conexiones, completar el trabajo en curso o transferir datos. 

1.  **Se han completado las acciones del ciclo de vida de terminación** Una acción del ciclo de vida de la rescisión puede completarse `CONTINUE` o `ABANDON` resultar en ella. 

1.  **La política del ciclo de vida de la instancia evalúa la situación.** Sin una política de ciclo de vida de la instancia configurada, la instancia finaliza inmediatamente, incluso si la acción del ciclo de vida de la instancia se completó con el `ABANDON` resultado. Con una política de ciclo de vida de la instancia configurada para conservar las instancias `TerminateHookAbandon` activas, la instancia pasa a un estado retenido si la acción del ciclo de vida de la instancia se completó con el `ABANDON` resultado. 

1.  **Las instancias retenidas están pendientes de una acción manual.** Las instancias en los estados retenidos siguen incurriendo en los cargos estándar de Amazon EC2. Estas instancias no cuentan para la capacidad deseada de su grupo de Auto Scaling, por lo que Auto Scaling lanza instancias de reemplazo para mantener el tamaño deseado. Las funciones de Auto Scaling, como la actualización de instancias y la vida útil máxima de las instancias, también ignorarán las instancias retenidas. Esto le permite completar los procedimientos de limpieza de forma manual, recuperar datos o investigar por qué se produjo un error en el cierre automático antes de finalizar la instancia de forma manual. 

1.  **Se produce la terminación manual.** Después de completar las acciones necesarias en la instancia retenida, debes llamar a la `TerminateInstanceInAutoScalingGroup` API para finalizar la instancia. 

# Configura la retención de instancias
<a name="configure-instance-retention"></a>

Configure su grupo Amazon EC2 Auto Scaling para conservar las instancias cuando las acciones del ciclo de vida de terminación fallen.

 Para usar políticas de ciclo de vida de la instancia en su grupo de Auto Scaling, también debe configurar un enlace de ciclo de vida de terminación. Si configuras una política de ciclo de vida de la instancia pero no tienes ningún enlace de ciclo de vida de terminación, la política no surtirá efecto. Las políticas del ciclo de vida de las instancias solo se aplicarán cuando se abandonen las acciones del ciclo de vida de la terminación, no cuando se completen correctamente con el `CONTINUE` resultado. 

 Las políticas del ciclo de vida de las instancias utilizan activadores de retención para determinar cuándo conservar una instancia. El `TerminateHookAbandon` desencadenante provoca la retención en varios escenarios: 
+  Cuando llamas explícitamente a la [ CompleteLifecycleAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html)API con el `ABANDON` resultado. 
+  Cuando se agota el `ABANDON` tiempo de espera de una acción del ciclo de vida de terminación con un resultado predeterminado porque se ha agotado el tiempo de espera sin recibir ningún latido. 
+  Cuando se agota el tiempo de espera global de una acción relacionada con el ciclo de vida de una rescisión cuyo resultado `ABANDON` predeterminado es de 48 horas o 100 veces el tiempo de espera del latido, lo que sea menor 

------
#### [ Console ]

**Para configurar la retención de instancias**

1. Abra la consola Amazon EC2 Auto Scaling

1. Cree su grupo de Auto Scaling (la política de ciclo de vida de la instancia tiene el valor predeterminado de Terminate)

1. Ve a la página de detalles de tu grupo de Auto Scaling y selecciona la pestaña **Administración de instancias**

1. En **Política de ciclo de vida de las instancias para los enlaces del ciclo** de vida, elija **Retain**

1. Cree sus enlaces durante el ciclo de vida de las terminaciones con:
   + La transición del ciclo de vida está configurada para **terminar la instancia**
   + El resultado predeterminado está establecido en **Abandon**

------
#### [ AWS CLI ]

**Para configurar la retención de instancias**  
 Usa el [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)comando con una política de ciclo de vida de la instancia: 

```
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name my-asg \
--launch-template LaunchTemplateName=my-template,Version='$Latest' \
--min-size 1 \
--max-size 3 \
--desired-capacity 2 \
--vpc-zone-identifier subnet-12345678 \
--instance-lifecycle-policy file://lifecycle-policy.json
```

Contenido de lifecycle-policy.json:

```
{
    "RetentionTriggers": {
        "TerminateHookAbandon": "retain"
    }
}
```

**Para agregar un enlace de ciclo de vida de terminación**  
Utilice el comando [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html):

```
aws autoscaling put-lifecycle-hook \
--lifecycle-hook-name my-termination-hook \
--auto-scaling-group-name my-asg \
--lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \
--default-result ABANDON \
--heartbeat-timeout 300
```

------

# Administre las instancias retenidas
<a name="manage-retained-instances"></a>

 Supervise y controle las instancias de Amazon EC2 que se han trasladado a un estado retenido. Utilice CloudWatch las métricas para realizar un seguimiento de las instancias retenidas y, a continuación, cancele manualmente las instancias retenidas tras completar sus acciones personalizadas. 

 Las instancias retenidas no se tienen en cuenta para la capacidad deseada de su grupo de Amazon EC2 Auto Scaling. Cuando una instancia entra en un estado retenido, Auto Scaling lanza una instancia de reemplazo para mantener la capacidad deseada. Por ejemplo, supongamos que su grupo de Auto Scaling tiene una capacidad deseada de 10. Cuando una instancia entra en ese `Terminating:Retained` estado, Auto Scaling lanza una instancia de reemplazo para mantener la capacidad deseada de 10. Ahora tiene 11 instancias en ejecución en total: 10 en su grupo activo más 1 instancia retenida. Se aplicarán los cargos estándar de Amazon EC2 para las 11 instancias hasta que cancele manualmente la instancia retenida. 

## Estados del ciclo de vida de las instancias retenidas
<a name="instance-lifecyle-states-of-retained-instances"></a>

 Comprenda cómo las instancias pasan por los estados del ciclo de vida cuando se utilizan las políticas del ciclo de vida de las instancias. Las instancias siguen un camino específico desde la terminación normal, pasando por la retención, hasta la terminación definitiva. 

*Cuando se activa la retención, las instancias pasan por los siguientes estados:*

1. `Terminating`- Comienza la terminación normal

1. `Terminating:Wait`- Se ejecuta el enlace del ciclo de vida

1. `Terminating:Proceed`- Conclusión de las acciones del ciclo de vida (independientemente de si se realizaron correctamente o no)

1. `Terminating:Retained`- El enlace falla y la instancia se conserva para una intervención manual

Las instancias de Warm Pool adoptan diferentes rutas de estado de ciclo de vida según el escenario:

*Instancias que vuelven a caer en la piscina caliente:*

1. `Warmed:Pending`- Comienza la transición normal a una piscina caliente

1. `Warmed:Pending:Wait`- Se ejecuta el enlace del ciclo de vida

1. `Warmed:Pending:Proceed`- Conclusión de las acciones del ciclo de vida (independientemente de si se realizaron correctamente o no)

1. `Warmed:Pending:Retained`- El enlace falla y la instancia se conserva para una intervención manual

*Casos en los que se termina en una piscina caliente:*

1. `Warmed:Terminating`- Comienza la terminación normal

1. `Warmed:Terminating:Wait`- Se ejecuta el enlace del ciclo de vida

1. `Warmed:Terminating:Proceed`- Conclusión de las acciones del ciclo de vida (independientemente de si se realizaron correctamente o no)

1. `Warmed:Terminating:Retained`- El enlace falla y la instancia se conserva para una intervención manual

## Supervise las instancias retenidas
<a name="monitor-retained-instances"></a>

 Dado que las instancias Amazon EC2 retenidas conllevan costes y requieren una intervención manual, es fundamental supervisarlas. Amazon EC2 Auto Scaling proporciona CloudWatch varias métricas para realizar un seguimiento de las instancias retenidas. 

Habilite las métricas grupales para realizar un seguimiento de las instancias retenidas:

```
aws autoscaling enable-metrics-collection \
--auto-scaling-group-name my-asg \
--metrics GroupTerminatingRetainedInstances
```

Las métricas disponibles son:
+  `GroupTerminatingRetainedInstances`muestra el número de instancias en el `Terminating:Retained` estado. 
+  `GroupTerminatingRetainedCapacity`muestra las unidades de capacidad representadas por las instancias en el `Terminating:Retained` estado. 
+  `WarmPoolTerminatingRetainedCapacity`rastrea las instancias retenidas que terminan en la piscina caliente. 
+  `WarmPoolPendingRetainedCapacity`rastrea las instancias retenidas que regresaban a la piscina caliente. 

 También puede consultar las actividades de escalado de su grupo de Amazon EC2 Auto Scaling para saber por qué se retuvieron las instancias. Busque las actividades de terminación `StatusCode: Cancelled` y los mensajes con el motivo de su estado que indiquen fallas en los enlaces del ciclo de vida: 

```
aws autoscaling describe-scaling-activities \
--auto-scaling-group-name my-asg
```

 Te recomendamos crear CloudWatch alarmas en estas métricas para que te avisen cuando las instancias pasen a un estado retenido. Esto le ayuda a realizar un seguimiento de las implicaciones en materia de costes y garantiza que no se olvide de limpiar las instancias que requieren una intervención manual. 

## Termine las instancias retenidas
<a name="terminate-retained-instances"></a>

Tras completar las acciones personalizadas, cancela las instancias retenidas llamando a la [ TerminateInstanceInAutoScalingGroup](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_TerminateInstanceInAutoScalingGroup.html)API: 

```
aws autoscaling terminate-instance-in-auto-scaling-group \
--instance-id i-1234567890abcdef0 \
--no-should-decrement-desired-capacity
```