

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Controle a retenção de instâncias com políticas de ciclo de vida de instâncias
<a name="instance-lifecycle-policy"></a>

 As políticas de ciclo de vida da instância oferecem proteção contra rescisões do Amazon EC2 Auto Scaling quando uma ação do ciclo de vida de rescisão é abandonada. Diferentemente dos ganchos de ciclo de vida isolados, as políticas de ciclo de vida das instâncias são projetadas para garantir que as instâncias sejam transferidas para um estado retido quando procedimentos de desligamento regulares não forem concluídos com êxito. 

## Quando usar políticas de ciclo de vida da instância
<a name="when-to-use-instance-lifecycle-policies"></a>

 Use políticas de ciclo de vida da instância quando o desligamento normal do seu aplicativo não for opcional, mas obrigatório e desligamentos malsucedidos exigirem intervenção manual. Entre os casos de uso comuns estão: 
+  Aplicativos com estado sólido que devem concluir a persistência dos dados antes do encerramento. 
+  Aplicações que exigem períodos de drenagem prolongados que podem exceder o tempo limite máximo do ciclo de vida útil do gancho de 48 horas. 
+  Cargas de trabalho que lidam com dados confidenciais em que a limpeza falha ou incompleta pode resultar em perda ou corrupção de dados. 
+  Serviços essenciais em que o desligamento abrupto causa impacto na disponibilidade. 

 Para obter mais informações sobre como lidar normalmente com o encerramento de instâncias, consulte. [Projete suas aplicações para lidar com a terminação de instâncias sem problemas](gracefully-handle-instance-termination.md) 

## Como as políticas de ciclo de vida da instância funcionam com ganchos do ciclo de vida de terminação
<a name="how-instance-lifecycle-policies-work"></a>

 As políticas de ciclo de vida da instância funcionam em combinação com ganchos do ciclo de vida de terminação, não como substitutas. O processo segue várias etapas: 

1.  **As ações do ciclo de vida de rescisão são executadas.** Quando o Amazon EC2 Auto Scaling seleciona uma instância para encerramento, seus ganchos do ciclo de vida de rescisão são invocados e a instância `Terminating:Wait` entra no estado para começar a executar as ações do ciclo de vida de rescisão. 

1.  **Começa uma tentativa graciosa de desligamento.** Seu aplicativo, executado na instância ou por meio de um plano de controle, recebe a notificação de ação do ciclo de vida de encerramento e inicia procedimentos de desligamento simples, como drenar conexões, concluir trabalhos em andamento ou transferir dados. 

1.  **As ações do ciclo de vida de rescisão foram concluídas.** Uma ação do ciclo de vida de rescisão pode ser concluída com `CONTINUE` ou `ABANDON` resultar. 

1.  **A política de ciclo de vida da instância avalia a situação.** Sem uma política de ciclo de vida da instância configurada, a instância prossegue com o encerramento imediatamente, mesmo que a ação do ciclo de vida de encerramento tenha sido concluída com o resultado. `ABANDON` Com uma política de ciclo de vida da instância configurada para reter instâncias ativadas`TerminateHookAbandon`, a instância passa para um estado retido se a ação do ciclo de vida de encerramento for concluída com o resultado. `ABANDON` 

1.  **As instâncias retidas aguardam ação manual.** Instâncias em estados retidos continuam incorrendo em cobranças padrão do Amazon EC2. Essas instâncias não contam para a capacidade desejada do seu grupo de Auto Scaling, então o Auto Scaling lança instâncias substitutas para manter o tamanho desejado. Os recursos do Auto Scaling, como atualização da instância e vida útil máxima da instância, também ignorarão as instâncias retidas. Isso permite que você conclua os procedimentos de limpeza manualmente, recupere dados ou investigue por que o desligamento automático falhou antes de encerrar manualmente a instância. 

1.  **A rescisão manual ocorre.** Depois de concluir as ações necessárias na instância retida, você precisa chamar a `TerminateInstanceInAutoScalingGroup` API para encerrar a instância. 

# Configurar a retenção de instâncias
<a name="configure-instance-retention"></a>

Configure seu grupo Amazon EC2 Auto Scaling para reter instâncias quando as ações do ciclo de vida de encerramento falharem.

 Para usar políticas de ciclo de vida da instância em seu grupo de Auto Scaling, você também deve configurar um gancho de ciclo de vida de encerramento. Se você configurar uma política de ciclo de vida da instância, mas não tiver nenhum gancho de ciclo de vida de encerramento, a política não terá efeito. As políticas de ciclo de vida da instância só serão aplicadas quando as ações do ciclo de vida de encerramento forem abandonadas, não quando forem concluídas com êxito com o resultado. `CONTINUE` 

 As políticas de ciclo de vida da instância usam gatilhos de retenção para determinar quando reter uma instância. O `TerminateHookAbandon` gatilho causa retenção em vários cenários: 
+  Quando você chama explicitamente a [ CompleteLifecycleAction](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CompleteLifecycleAction.html)API com o `ABANDON` resultado. 
+  Quando uma ação do ciclo de vida de encerramento com resultado `ABANDON` padrão expira porque o tempo limite da pulsação é atingido sem receber uma pulsação. 
+  Quando o tempo limite global é atingido em uma ação do ciclo de vida de encerramento com resultado padrão`ABANDON`, que é 48 horas ou 100 vezes o tempo limite do batimento cardíaco, o que for menor 

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

**Para configurar a retenção de instâncias**

1. Abra o console do Amazon EC2 Auto Scaling

1. Crie seu grupo de Auto Scaling (o padrão da política de ciclo de vida da instância é Terminate)

1. Acesse a página de detalhes do seu grupo de Auto Scaling e escolha a guia Gerenciamento de **instâncias**

1. **Em **Política de ciclo de vida da instância para ganchos de ciclo de vida, escolha** Retain**

1. Crie seus ganchos do ciclo de vida da rescisão com:
   + **Transição do ciclo de vida definida para encerramento da instância**
   + Resultado padrão definido como **Abandono**

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

**Para configurar a retenção de instâncias**  
 Use o [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)comando com uma política de ciclo de vida da instância: 

```
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
```

Conteúdo do lifecycle-policy.json:

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

**Para adicionar um gancho do ciclo de vida de término**  
Use o 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
```

------

# Gerencie instâncias retidas
<a name="manage-retained-instances"></a>

 Monitore e controle as instâncias do Amazon EC2 que foram movidas para um estado retido. Use CloudWatch métricas para rastrear instâncias retidas e, em seguida, encerre manualmente as instâncias retidas após concluir suas ações personalizadas. 

 As instâncias retidas não contam para a capacidade desejada do seu grupo Amazon EC2 Auto Scaling. Quando uma instância entra em um estado retido, o Auto Scaling inicia uma instância substituta para manter a capacidade desejada. Por exemplo, suponha que seu grupo de Auto Scaling tenha uma capacidade desejada de 10. Quando uma instância entra no `Terminating:Retained` estado, o Auto Scaling inicia uma instância substituta para manter a capacidade desejada de 10. Agora você tem 11 instâncias em execução no total: 10 em seu grupo ativo mais 1 instância retida. As cobranças padrão do Amazon EC2 para todas as 11 instâncias serão aplicadas até que você encerre manualmente a instância retida. 

## Estados do ciclo de vida das instâncias retidas
<a name="instance-lifecyle-states-of-retained-instances"></a>

 Entenda como as instâncias passam pelos estados do ciclo de vida quando as políticas de ciclo de vida da instância são usadas. As instâncias seguem um caminho específico desde a rescisão normal, passando pela retenção, até a rescisão final. 

*Quando a retenção é acionada, as instâncias passam pelos seguintes estados:*

1. `Terminating`- A rescisão normal começa

1. `Terminating:Wait`- O gancho do ciclo de vida é executado

1. `Terminating:Proceed`- Conclusão das ações do ciclo de vida (sejam elas bem-sucedidas ou fracassadas)

1. `Terminating:Retained`- Falha no gancho, instância retida para intervenção manual

As instâncias de pool quente seguem caminhos de estado de ciclo de vida diferentes, dependendo do cenário:

*Instâncias voltando para a piscina aquecida:*

1. `Warmed:Pending`- Começa a transição normal da piscina quente

1. `Warmed:Pending:Wait`- O gancho do ciclo de vida é executado

1. `Warmed:Pending:Proceed`- Conclusão das ações do ciclo de vida (sejam elas bem-sucedidas ou fracassadas)

1. `Warmed:Pending:Retained`- Falha no gancho, instância retida para intervenção manual

*Instâncias sendo encerradas da piscina aquecida:*

1. `Warmed:Terminating`- A rescisão normal começa

1. `Warmed:Terminating:Wait`- O gancho do ciclo de vida é executado

1. `Warmed:Terminating:Proceed`- Conclusão das ações do ciclo de vida (sejam elas bem-sucedidas ou fracassadas)

1. `Warmed:Terminating:Retained`- Falha no gancho, instância retida para intervenção manual

## Monitore instâncias retidas
<a name="monitor-retained-instances"></a>

 Como as instâncias retidas do Amazon EC2 incorrem em custos e exigem intervenção manual, monitorá-las é essencial. O Amazon EC2 Auto Scaling CloudWatch fornece várias métricas para rastrear instâncias retidas. 

Ative as métricas de grupo para rastrear instâncias retidas:

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

As métricas disponíveis são:
+  `GroupTerminatingRetainedInstances`mostra o número de instâncias no `Terminating:Retained` estado. 
+  `GroupTerminatingRetainedCapacity`mostra as unidades de capacidade representadas pelas instâncias no `Terminating:Retained` estado. 
+  `WarmPoolTerminatingRetainedCapacity`rastreia instâncias retidas que terminam na piscina aquecida. 
+  `WarmPoolPendingRetainedCapacity`rastreia instâncias retidas retornando à piscina aquecida. 

 Você também pode verificar as atividades de escalabilidade do seu grupo Amazon EC2 Auto Scaling para entender por que as instâncias foram retidas. Procure atividades de encerramento `StatusCode: Cancelled` e mensagens de motivo de status indicando falhas no gancho do ciclo de vida: 

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

 Recomendamos criar CloudWatch alarmes sobre essas métricas para alertá-lo quando as instâncias entrarem em um estado retido. Isso ajuda você a monitorar as implicações de custo e garante que você não se esqueça de limpar as instâncias que exigem intervenção manual. 

## Encerrar instâncias retidas
<a name="terminate-retained-instances"></a>

Depois de concluir suas ações personalizadas, encerre suas instâncias retidas chamando a [ 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
```