

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á.

# Recicle as instâncias em seu grupo do Auto Scaling
<a name="ec2-auto-scaling-group-replacing-instances"></a>

O Amazon EC2 Auto Scaling oferece recursos que permitem substituir as instâncias do Amazon EC2 em seu grupo do Auto Scaling após fazer atualizações, como novos tipos de instância ou um modelo de execução atualizado. Também ajuda a simplificar as atualizações oferecendo a opção de incluí-las na mesma operação que substitui as instâncias.

Esta seção inclui informações para ajudar você a fazer o seguinte:
+ Iniciar uma atualização de instância para substituir instâncias no grupo do Auto Scaling.
+ Declarar atualizações específicas que descrevem uma configuração desejada e atualizar o grupo do Auto Scaling para a configuração desejada.
+ Pular a substituição de instâncias já atualizadas.
+ Usar pontos de verificação para substituir instâncias em fases e realizar verificações em suas instâncias em pontos específicos. 
+ Use o tempo de incorporação para fazer uma pausa no final de uma atualização da instância para validar a integridade da instância.
+ Receber notificações por e-mail quando um ponto de verificação for atingido.
+ Utilize uma reversão para restaurar o grupo do Auto Scaling para a configuração que ele estava usando anteriormente.
+ Reverta automaticamente se a atualização da instância falhar por algum motivo ou se algum CloudWatch alarme da Amazon que você especificar entrar no `ALARM` estado.
+ Limitar a vida útil das instâncias para fornecer versões de software consistentes e configurações de instância em todo o grupo do Auto Scaling.
+ Substitua os volumes raiz sem encerrar instâncias, mantendo as interfaces de rede, os volumes não raiz e as políticas do IAM.

**Topics**
+ [Atualização de instância](asg-instance-refresh.md)
+ [Vida útil máxima da instância](asg-max-instance-lifetime.md)

# Use uma atualização de instância para atualizar instâncias em um grupo do Auto Scaling
<a name="asg-instance-refresh"></a>

Você inicia as atualizações de instâncias para atualizar as instâncias em seu grupo do Auto Scaling. Esse recurso pode ser útil quando uma alteração na configuração exige que você substitua instâncias ou seus volumes raiz, especialmente se seu grupo de Auto Scaling contiver um grande número de instâncias. 

Algumas situações em que uma atualização de instância pode ajudar incluem:
+ Implantação de uma nova Imagem de Máquina da Amazon (AMI) ou script de dados do usuário em seu grupo do Auto Scaling. Você pode criar um novo modelo de execução com as alterações e, em seguida, usar uma atualização de instância para implementar as atualizações imediatamente.
+ Migrar suas instâncias para novos tipos de instância para aproveitar as melhorias e otimizações mais recentes.
+ Mudança dos grupos do Auto Scaling do uso de uma configuração de execução para o uso de um modelo de execução. Você pode copiar suas configurações de execução para modelos de execução e, em seguida, usar uma atualização de instância para atualizar suas instâncias para os novos modelos. Para obter mais informações sobre a migração para modelos de lançamento, consulte [Migre seus grupos do Auto Scaling para modelos de execução](migrate-to-launch-templates.md).
+ Aplique patches de segurança ou atualizações de software, preservando o estado da instância de longa duração e evitando restrições de capacidade com tipos de instância especializados, como instâncias de GPU ou Mac.

**Topics**
+ [Como funciona a atualização de uma instância](instance-refresh-overview.md)
+ [Entender os valores padrão](understand-instance-refresh-default-values.md)
+ [Iniciar uma atualização de instância](start-instance-refresh.md)
+ [Monitore a atualização de uma instância](check-status-instance-refresh.md)
+ [Substitua os volumes raiz](replace-root-volume.md)
+ [Cancelar uma atualização de instância](cancel-instance-refresh.md)
+ [Desfazer alterações com uma reversão](instance-refresh-rollback.md)
+ [Usar a opção de ignorar correspondência](asg-instance-refresh-skip-matching.md)
+ [Adicionar pontos de verificação](asg-adding-checkpoints-instance-refresh.md)

# Como funciona a atualização de uma instância em um grupo do Auto Scaling
<a name="instance-refresh-overview"></a>

Este tópico descreve como funciona uma atualização de instância e apresenta os principais conceitos que você precisa entender para usá-la de forma eficaz.

**Topics**
+ [Como funcionam](#instance-refresh-how-it-works)
+ [Conceitos principais](#instance-refresh-core-concepts)
+ [Período de carência da verificação de integridade](#instance-refresh-health-check-grace-period)
+ [Compatibilidade de tipo de instância](#instance-type-compatibility)
+ [Limitações](#instance-refresh-limitations)

## Como funcionam
<a name="instance-refresh-how-it-works"></a>

Para atualizar instâncias em um grupo do Auto Scaling, você pode definir uma nova configuração que contenha a versão mais recente da sua aplicação e quaisquer outras atualizações que queira fazer. 

A atualização de instâncias oferece suporte a duas estratégias para atualizar instâncias:
+ **Estratégia contínua (padrão)** — encerra instâncias e inicia novas em lotes de acordo com suas preferências. Isso garante que seu grupo de Auto Scaling mantenha a capacidade e a disponibilidade desejadas durante todo o processo de atualização.
+ **Substitua a estratégia do volume raiz** — atualiza as instâncias substituindo somente o volume raiz sem encerrar a instância. Isso preserva as interfaces de rede da instância, os volumes não raiz do EBS e os dados do armazenamento da instância.

Requisitos para a estratégia de substituição do volume raiz:
+ Seu grupo de Auto Scaling deve usar uma política de instâncias mistas
+ Todas as substituições na política de instâncias mistas devem especificar um `ImageId` 
+ AMIs deve conter somente um único volume raiz
+ Todas as instâncias devem corresponder à configuração do modelo de lançamento do grupo
+ Você deve iniciar a atualização da instância com a configuração desejada, com uma política de instâncias mistas contendo `ImageId` substituições.

Quando o skip matching está ativado, o Auto Scaling compara o ID da AMI atual de cada instância com a IDs AMI na configuração desejada. Ele substitui apenas as instâncias em que a AMI IDs não coincide, permitindo que você ignore instâncias que já estão atualizadas.

### Execute uma atualização de instância
<a name="instance-refresh-process"></a>

Inicie uma atualização da instância para substituir as existentes por novas com base nessa configuração.

1. Crie um novo modelo de execução ou atualize o modelo existente com as alterações de configuração desejadas, como uma nova imagem de máquina da Amazon (AMI). Para obter mais informações, consulte [Criar um modelo de execução para um grupo do Auto Scaling](create-launch-template.md).

1. Inicie a atualização da instância usando o console AWS CLI ou SDK do Amazon EC2 Auto Scaling:
   + Especifique o novo modelo de execução ou a versão do modelo de execução que você criou. Isso será usado para iniciar novas instâncias.
   + Defina as porcentagens mínima e máxima de integridade. Isso controla quantas instâncias são substituídas simultaneamente e se as novas instâncias são iniciadas antes de terminar as antigas. 
   + Configure todas as definições opcionais, como:
     + **Pontos de controle**: Pause a atualização da instância após uma determinada porcentagem de substituições para verificar o progresso.
     + **Tempo de incorporação**: faça uma pausa no final da atualização da instância para validar a integridade da instância antes que a atualização da instância seja considerada concluída.
     + **Ignorar correspondência**: Compare as instâncias antigas com a nova configuração e substitua apenas as que não corresponderem. Quando você inicia uma atualização de instância no console, a ignorância de correspondência está ativada por padrão.
     + **Vários tipos de instância**: aplique uma [política de instâncias mistas](ec2-auto-scaling-mixed-instances-groups.md) nova ou atualizada como parte da configuração desejada.

Quando a atualização da instância tiver sido iniciada, o Amazon EC2 Auto Scaling começará a fazer as ações a seguir:
+ Substitua as instâncias em lotes com base nas porcentagens mínimas e máximas de integridade. 
+ Execute as novas instâncias primeiro, antes de terminar as antigas, se a porcentagem mínima de integridade estiver definida como 100%. Isso garante que sua capacidade desejada seja mantida o tempo todo.
+ Verifique o estado de integridade das instâncias e dê a elas tempo para se aquecerem antes de substituir mais instâncias. 
+ Termine e substitua as instâncias consideradas não íntegras.
+ Atualize automaticamente as definições do grupo do Auto Scaling com as novas alterações de configuração depois que a atualização da instância for bem-sucedida.
+ Substitua `InService` instâncias antes das instâncias que estão em um pool ativo.

O fluxograma a seguir ilustra o comportamento de execução antes de terminação quando você define a porcentagem mínima de integridade como 100%. 

![\[Um diagrama que mostra como uma atualização de instância funciona quando a porcentagem mínima de integridade é definida como 100%.\]](http://docs.aws.amazon.com/pt_br/autoscaling/ec2/userguide/images/instance-refresh-high-level-flowchart-diagram.png)


**nota**  
Especifique apenas a porcentagem máxima íntegra para uma atualização de instância se você não tiver definido uma política de manutenção de instância ou se precisar substituí-la. Para obter mais informações, consulte [Políticas de manutenção de instância](ec2-auto-scaling-instance-maintenance-policy.md).  
Da mesma forma, você só precisa especificar o período de aquecimento da instância para fazer a atualização se não tiver ativado o aquecimento padrão ou se precisar substituir o padrão. Para obter mais informações, consulte [Definir o aquecimento padrão da instância para um grupo do Auto Scaling](ec2-auto-scaling-default-instance-warmup.md).

## Conceitos principais
<a name="instance-refresh-core-concepts"></a>

Antes de começar, familiarize-se com os seguintes conceitos básicos de atualização de instância:

**Percentual mínimo de integridade**  
A *porcentagem mínima de integridade* é a porcentagem da capacidade desejada para se manter em serviço, íntegra e pronta para uso durante uma atualização de instância para que a atualização possa continuar. Por exemplo, se a porcentagem mínima de integridade for 90% e a porcentagem máxima de integridade for 100%, 10% da capacidade será substituída por vez. Se as novas instâncias não passarem nas verificações de integridade, o Amazon EC2 Auto Scaling as encerrará e substituirá. Se a atualização da instância não puder iniciar nenhuma instância íntegra, ela eventualmente falhará, deixando os outros 90% do grupo intactos. Se as novas instâncias permanecerem íntegras e terminarem o período de aquecimento, o Amazon EC2 Auto Scaling poderá continuar a substituir outras instâncias.  
A atualização de instância pode substituir uma instância por vez, várias por vez ou todas de uma vez. Para substituir uma instância por vez, defina a porcentagem mínima e máxima de integridade como 100%. Isso altera o comportamento de uma atualização de instância para ser iniciada antes do encerramento, o que evita que a capacidade do grupo fique abaixo de 100% da capacidade desejada. Para substituir todas as instâncias de uma vez, defina uma porcentagem mínima de integridade de 0%. 

**Porcentagem máxima de integridade**  
A *porcentagem máxima íntegra* é a porcentagem da capacidade desejada que seu grupo do Auto Scaling pode aumentar ao substituir instâncias. A diferença entre o mínimo e o máximo não pode ser maior que 100. Um intervalo maior aumenta o número de instâncias que podem ser substituídas ao mesmo tempo.

**Aquecimento da instância**  
O *aquecimento da instância* é o período de tempo desde a mudança do estado de uma nova instância até o momento em que a `InService` inicialização é considerada concluída. Durante uma atualização de instância, se as instâncias passam na verificação de integridade, o Amazon EC2 Auto Scaling não avança imediatamente para substituir a próxima instância após determinar que uma instância recém-iniciada está íntegra. Ele aguarda o período de aquecimento antes de começar a substituir a próxima instância. Isso pode ser útil quando a aplicação ainda precisar de um tempo de inicialização antes de responder às solicitações.  
O aquecimento da instância funciona da mesma forma que o aquecimento de instâncias padrão. Portanto, as mesmas considerações de escalabilidade são aplicadas. Para obter mais informações, consulte [Definir o aquecimento padrão da instância para um grupo do Auto Scaling](ec2-auto-scaling-default-instance-warmup.md).

**Configuração desejada**  
A *configuração desejada* é a nova configuração que você deseja que o Amazon EC2 Auto Scaling implante no grupo do Auto Scaling. Por exemplo, você pode especificar um novo modelo de execução e novos tipos de instância para suas instâncias. Durante uma atualização de instância, o Amazon EC2 Auto Scaling atualiza o grupo do Auto Scaling para a configuração desejada. Se um evento aumento da escala na horizontal ocorrer durante uma atualização de instância, o Amazon EC2 Auto Scaling iniciará novas instâncias com a configuração desejada em vez das configurações atuais do grupo. Depois que a atualização de instância tem êxito, o Amazon EC2 Auto Scaling atualiza as configurações do grupo do Auto Scaling para refletir a nova configuração desejada que você especificou como parte da atualização de instância. 

**Ignorar correspondência**  
Ignorar a correspondência diz ao Amazon EC2 Auto Scaling para ignorar as instâncias que já tenham as atualizações mais recentes. Assim, você não substituirá mais instâncias do que o necessário. Isso é útil quando você deseja garantir que o grupo do Auto Scaling usará uma versão específica de seu modelo de execução e substituirá apenas as instâncias que usam outra versão.

**Pontos de verificação**  
Um *ponto de verificação* é um ponto no tempo em que a atualização de instância é interrompida por um período especificado. Uma atualização de instância pode conter vários pontos de verificação. O Amazon EC2 Auto Scaling emite eventos para cada ponto de verificação. Portanto, você pode adicionar uma EventBridge regra para enviar os eventos para um destino, como o Amazon SNS, para ser notificado quando um ponto de verificação for alcançado. Depois que um ponto de verificação é atingido, você tem a oportunidade de verificar sua implantação. Se algum problema for identificado, você poderá cancelar a atualização de instância ou revertê-la. A capacidade de implantar atualizações em fases é um benefício fundamental dos pontos de verificação. Se você não usar pontos de verificação, as substituições continuas serão executadas ininterruptamente.

Para saber mais sobre todas as configurações padrão que você pode definir ao iniciar uma atualização de instância, consulte [Entender os valores padrão de uma atualização de instância](understand-instance-refresh-default-values.md).

## Período de carência da verificação de integridade
<a name="instance-refresh-health-check-grace-period"></a>

O Amazon EC2 Auto Scaling determina se a instância está íntegra com base no status das verificações de integridade que o grupo do Auto Scaling usa. Para obter mais informações, consulte [Verificações de integridade para instâncias em um grupo do Auto Scaling](ec2-auto-scaling-health-checks.md). 

Para garantir que essas verificações de integridade comecem o mais rápido possível, não defina um período de carência da verificação de integridade do grupo muito alto, mas alto o suficiente para que suas verificações de integridade do Elastic Load Balancing consigam determinar se um destino está disponível para lidar com solicitações. Para obter mais informações, consulte [Definir um período de carência da verificação de integridade para um grupo do Auto Scaling](health-check-grace-period.md).

## Compatibilidade de tipo de instância
<a name="instance-type-compatibility"></a>

Antes de alterar o tipo de instância, convém verificar se ela funciona com seu modelo de execução. Isso confirma a compatibilidade com a AMI especificada. Por exemplo, digamos que você iniciou suas instâncias originais com base em uma AMI paravirtual (PV), mas deseja alterar para um tipo de instância da geração atual que tenha suporte apenas em uma AMI de máquina virtual (HVM). Nesse caso, é necessário usar uma AMI HVM no modelo de execução. 

Para confirmar a compatibilidade do tipo de instância sem iniciar instâncias, use o comando [run-instances](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/run-instances.html) com a opção `--dry-run`, conforme mostrado no exemplo a seguir.

```
aws ec2 run-instances --launch-template LaunchTemplateName=my-template,Version='1' --dry-run
```

Para obter informações sobre como a compatibilidade é determinada, consulte [Compatibilidade para alterar o tipo de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resize-limitations.html) no *Guia do usuário do Amazon EC2 para instâncias do Linux*.

## Limitações
<a name="instance-refresh-limitations"></a>
+ **Duração total**: o tempo máximo que uma atualização de instância pode permanecer ativamente substituindo instâncias é de 14 dias. 
+ **Diferença no comportamento específico de grupos ponderados**: se um grupo de instâncias mistas estiver configurado com um peso de instância maior ou igual à capacidade desejada do grupo, o Amazon EC2 Auto Scaling poderá substituir todas as instâncias `InService` de uma só vez. Para evitar essa situação, siga a recomendação do tópico [Configurar um grupo do Auto Scaling para usar ponderação da instância](ec2-auto-scaling-mixed-instances-groups-instance-weighting.md). Especifique uma capacidade desejada que seja maior do que seu maior peso ao usar pesos com seu grupo do Auto Scaling.
+ **Tempo limite de uma hora**: quando uma atualização de instância é incapaz de continuar fazendo substituições porque a aplicação está aguardando para substituir instâncias em espera ou protegidas contra a redução da escala na horizontal, ou se as novas instâncias não passarem nas verificações de integridade, o Amazon EC2 Auto Scaling continuará fazendo novas tentativas por uma hora. Ele também fornece uma mensagem de status para ajudar você a resolver o problema. Se o problema persistir após uma hora, a operação falhou. A intenção é garantir tempo para a recuperação em caso de um problema temporário. 
+ **Implementação de código por meio de dados do usuário**: ignorar a correspondência não verifica as alterações de código implementadas a partir de um script de dados do usuário. Se você usar os dados do usuário para extrair novos códigos e instalar essas atualizações em novas instâncias, recomendamos que desative a ignorância de correspondência para garantir que todas as instâncias recebam o código mais recente, mesmo sem uma atualização da versão do modelo de execução.
+ **Restrição de atualização**: se você tentar atualizar o modelo de execução, a configuração de execução ou a política de instâncias mistas de um grupo do Auto Scaling enquanto uma atualização de instância com uma configuração desejada estiver ativa, a solicitação falhará com o erro de validação a seguir: `An active instance refresh with a desired configuration exists. All configuration options derived from the desired configuration are not available for update while the instance refresh is active.` 
+ **Seleção de instância com base em atributos**: caso seu grupo do Auto Scaling use seleção de instância baseada em atributos (especificando `InstanceRequirements` em uma política de instâncias mistas), não haverá suporte aos parâmetros de atualização de instância a seguir:
  + **SkipMatching**- A atualização da instância falhará se você iniciá-la com o `SkipMatching` parâmetro em um grupo de Auto Scaling que tenha `InstanceRequirements` sido configurado.
  + **DesiredConfiguration**- A atualização da instância falhará se você iniciá-la com o `DesiredConfiguration` parâmetro em um grupo de Auto Scaling que tenha `InstanceRequirements` sido configurado.

  Se você precisar realizar uma atualização de instância em um grupo do Auto Scaling com seleção de instância baseada em atributos, inicie a atualização da instância sem esses parâmetros.
+ A substituição do volume raiz não é compatível com o Elastic Load Balancing.

# Entender os valores padrão de uma atualização de instância
<a name="understand-instance-refresh-default-values"></a>

Antes de iniciar uma atualização de instância, é possível personalizar diversas preferências que afetam a atualização de instância. Alguns padrões de preferência são diferentes dependendo se você usa o console ou a linha de comando (AWS CLI ou AWS SDK).

A tabela a seguir lista os valores padrão das configurações de atualização de instância.


| Configuração | AWS CLI ou AWS SDK | Console do Amazon EC2 Auto Scaling | 
| --- | --- | --- | 
| CloudWatch alarme | Desativado (nulo) | Desabilitado | 
| Reversão automática | Desabilitado (false) | Desabilitado | 
| Hora de assar | Zero | Zero | 
| Pontos de verificação | Desabilitado (false) | Desabilitado | 
| Atraso no ponto de verificação | 1 hora (3600 segundos) | 1 hora | 
| Aquecimento da instância | O [aquecimento de instâncias padrão](ec2-auto-scaling-default-instance-warmup.md), se estiver definido, ou o [período de carência da verificação de integridade](health-check-grace-period.md), se não estiver. | O [aquecimento de instâncias padrão](ec2-auto-scaling-default-instance-warmup.md), se estiver definido, ou o [período de carência da verificação de integridade](health-check-grace-period.md), se não estiver. | 
| Porcentagem máxima de integridade | Varia com base em sua política de manutenção de instâncias. Se não houver política de manutenção de instâncias, o padrão é 100% (nulo). | Varia com base em sua política de manutenção de instâncias. Se não houver política de manutenção de instâncias, o padrão é 100% (nulo). | 
| Percentual mínimo de integridade | Varia com base em sua política de manutenção de instâncias. Se não houver política de manutenção de instâncias, o padrão é 90%. | Varia com base em sua política de manutenção de instâncias. Se não houver política de manutenção de instâncias, o padrão é 90%. | 
| Instâncias protegidas contra redução da escala na horizontal | Aguardar | Ignorar | 
| Ignorar correspondência | Desabilitado (false) | Habilitado | 
| Instâncias em espera | Aguardar | Ignorar | 

Segue uma descrição de cada configuração:

**CloudWatch alarme (`AlarmSpecification`)**  
A especificação do CloudWatch alarme. CloudWatch os alarmes podem ser usados para identificar quaisquer problemas e falhar na operação se um alarme entrar no `ALARM` estado. Para obter mais informações, consulte [Iniciar uma atualização de instância com reversão automática](instance-refresh-rollback.md#instance-refresh-using-auto-rollback). 

**Reversão automática (`AutoRollback`)**  
Controla se o Amazon EC2 Auto Scaling reverte o grupo do Auto Scaling para sua configuração anterior se a atualização da instância falhar. Para obter mais informações, consulte [Desfazer alterações com uma reversão manual ou automática](instance-refresh-rollback.md). 

**Tempo de incorporação (`BakeTime`)**  
A quantidade de tempo de espera no final de uma atualização da instância antes que a atualização da instância seja considerada concluída.

**Pontos de verificação (`CheckpointPercentages`)**  
Controla se o Amazon EC2 Auto Scaling substitui instâncias em fases. Isso é útil se você precisar realizar verificações em suas instâncias antes de substituir todas as instâncias. Para obter mais informações, consulte [Adicionar pontos de verificação a uma atualização de instância](asg-adding-checkpoints-instance-refresh.md). 

**Atraso no ponto de verificação (`CheckpointDelay`)**  
A quantidade de tempo, em segundos, para aguardar após um ponto de verificação antes de continuar. Para obter mais informações, consulte [Adicionar pontos de verificação a uma atualização de instância](asg-adding-checkpoints-instance-refresh.md). 

**Aquecimento da instância (`InstanceWarmup`)**  
Um período, em segundos, durante o qual o Amazon EC2 Auto Scaling espera até que uma nova instância seja considerada como inicialização concluída antes de substituir a próxima instância. Se você já definiu corretamente um aquecimento de instâncias padrão para o grupo do Auto Scaling, não é necessário alterar o aquecimento da instância (a menos que deseje substituir o padrão). Para obter mais informações, consulte [Definir o aquecimento padrão da instância para um grupo do Auto Scaling](ec2-auto-scaling-default-instance-warmup.md).

**Porcentagem máxima de integridade (`MaxHealthyPercentage`)**  
A porcentagem da capacidade desejada do grupo do Auto Scaling que seu grupo pode aumentar ao substituir instâncias.

**Percentual mínimo de integridade (`MinHealthyPercentage`)**  
A porcentagem da capacidade desejada do grupo do Auto Scaling que deve estar em serviço, íntegra e pronta para uso antes que a operação possa continuar.

**Instâncias protegidas contra redução da escala na horizontal (`ScaleInProtectedInstances`)**  
Controla o que o Amazon EC2 Auto Scaling faz se forem encontradas instâncias protegidas contra redução de escala. Para obter mais informações sobre essas instâncias, consulte [Use a proteção de redução da escala horizontalmente da instância para controlar a terminação da instância](ec2-auto-scaling-instance-protection.md).  
O Amazon EC2 Auto Scaling fornece estas opções:  
+ **Substituir** (`Refresh`): substitui instâncias que estão protegidas contra a redução da escala horizontalmente.
+ **Ignorar** (`Ignore`): ignora instâncias que estão protegidas contra a redução da escala horizontalmente e continua substituindo instâncias que não estão protegidas.
+ **Aguardar** (`Wait`): aguarda uma hora até você remover a proteção contra redução da escala na horizontal. Se você não fizer isso, a atualização de instância falhará.

**Ignorar correspondência (`SkipMatching`)**  
Controla se o Amazon EC2 Auto Scaling ignora a substituição de instâncias que correspondam à configuração desejada. Se nenhuma configuração desejada for especificada, ele ignorará a substituição de instâncias que tenham o mesmo modelo de execução e tipos de instância que o grupo do Auto Scaling estava usando antes do início da atualização de instância. Para obter mais informações, consulte [Usar uma atualização de instância com opção de ignorar correspondência](asg-instance-refresh-skip-matching.md). 

**Instâncias em espera (`StandbyInstances`)**  
Controla o que o Amazon EC2 Auto Scaling faz se as instâncias forem encontradas no estado`Standby`. Para obter mais informações sobre essas instâncias, consulte [Remover temporiamente instâncias do grupo do Auto Scaling](as-enter-exit-standby.md).  
O Amazon EC2 Auto Scaling fornece estas opções:  
+ **Terminar** (`Terminate`): termina instâncias que estejam em `Standby`.
+ **Ignorar** (`Ignore`): ignora instâncias que estejam em `Standby` e continua substituindo instâncias que estejam no estado `InService`.
+ **Aguardar (`Wait`)**: aguarda uma hora para você retornar as instâncias ao serviço. Se você não fizer isso, a atualização de instância falhará.

# Inicie uma atualização de instância usando o ou Console de gerenciamento da AWS AWS CLI
<a name="start-instance-refresh"></a>

**Importante**  
É possível reverter uma atualização de instância que esteja em andamento para desfazer alterações. Para que isso funcione, o grupo do Auto Scaling deve atender aos pré-requisitos para uso de reversões antes de iniciar a atualização de instância. Para obter mais informações, consulte [Desfazer alterações com uma reversão manual ou automática](instance-refresh-rollback.md).

Os procedimentos a seguir ajudam você a iniciar uma atualização de instância usando o Console de gerenciamento da AWS ou AWS CLI.

## Iniciar uma atualização de instância (console)
<a name="start-instance-refresh-console"></a>

Se esta for a primeira vez que inicia uma atualização de instância, fazer isso usando o console ajudará você a entender os recursos e as opções disponíveis.

### Iniciar uma atualização de instância no console (procedimento básico)
<a name="starting-an-instance-refresh-in-the-console"></a>

Use o procedimento a seguir se você não tiver definido anteriormente uma [política de instâncias mistas](ec2-auto-scaling-mixed-instances-groups.md) para seu grupo do Auto Scaling. Se você já definiu uma política de instâncias mistas, consulte [Iniciar uma atualização de instância no console (grupo de instâncias mistas)](#starting-an-instance-refresh-in-the-console-mig) para iniciar uma atualização de instância.

**Para iniciar uma atualização de instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

   Um painel dividido é aberto na parte inferior da página **Auto Scaling groups** (Grupos do Auto Scaling). 

1. Na guia **Atualização de instância**, em **Atualização ativa de instância**, escolha **Iniciar atualização de instância**.

1. Para **configurações de disponibilidade**, faça o seguinte:

   1. Para o **método de substituição de instância**:
      + Se você *não* definiu uma política de manutenção de instâncias no grupo do Auto Scaling, a configuração padrão para o **método de substituição de instância** é **Encerrar e iniciar**. Esse é o comportamento padrão legado de uma atualização de instância.
      + Se você definir uma política de manutenção de instância no grupo do Auto Scaling, ela fornecerá valores padrão para o **método de substituição de instância**. Para substituir a política de manutenção da instância, escolha **Substituir**. A substituição é aplicada somente à atualização de instância atual. Na próxima vez que você iniciar uma atualização de instância, esses valores serão redefinidos para os padrões da política de manutenção de instâncias. 

      O procedimento a seguir explica como atualizar o método de substituição de instância.

      1. Escolha um dos seguintes métodos de substituição de instância:
         + **Iniciar antes de encerrar**: uma nova instância deve ser provisionada primeiro antes que uma instância existente possa ser encerrada. Essa é uma boa opção para aplicações que favorecem a disponibilidade em detrimento da redução de custos.
         + **Encerrar e iniciar**: novas instâncias são provisionadas ao mesmo tempo em que as instâncias existentes são encerradas. Esta é uma boa opção para aplicações que favorecem a economia de custos em detrimento da disponibilidade. Também é uma boa opção para aplicações que não devem lançar mais capacidade do que a disponível atualmente.
         + **Comportamento personalizado**: esta opção permite configurar um intervalo mínimo e máximo personalizado para a quantidade de capacidade que você deseja disponibilizar ao substituir instâncias. Isso pode ajudar a alcançar o equilíbrio certo entre custo e disponibilidade.

      1. Em **Definir porcentagem de integridade**, insira valores para um ou ambos os campos a seguir. Os campos de ativação variam de acordo com a opção escolhida para o **método de substituição de instância**. 
         + **Mínimo**: define a porcentagem mínima de integridade necessária para continuar com a atualização de instâncias.
         + **Máximo**: Define a porcentagem máxima íntegra possível durante a atualização da instância. 

      1. Expanda a seção **Exibir capacidade temporária estimada durante substituições com base no tamanho** atual do grupo para confirmar como os valores de **Mínimo** e **Máximo** se aplicam ao seu grupo. Os valores exatos usados dependem do valor de capacidade desejado, que mudará se o grupo for ampliado.

      1. **Expanda a seção **Definir comportamento alternativo para tamanhos de reposição inválidos** e, em seguida, escolha se deseja **violar a porcentagem máxima de integridade** para priorizar a disponibilidade ou violar a porcentagem mínima de integridade.** 

         Manter a opção padrão de **Violar porcentagem mínima de integridade** não é recomendado para grupos muito pequenos. Se houver apenas uma instância no grupo do Auto Scaling, iniciar uma atualização de instância poderá resultar em uma interrupção.

         Essa etapa configura o comportamento de fallback se você estiver usando um grupo do Auto Scaling que ainda não tem uma política de manutenção de instâncias. Essa opção não está disponível e não aparece quando seu grupo tem uma política de manutenção de instâncias. Essa opção também está disponível somente para o método de substituição **Encerrar e iniciar**. Outros métodos de substituição violarão a porcentagem máxima de integridade para priorizar a disponibilidade.

   1. Em **Aquecimento da instância**, insira o número de segundos desde a mudança do estado de uma nova instância até o `InService` término da inicialização. O Amazon EC2 Auto Scaling aguarda esse tempo antes de substituir a próxima instância. 

      Durante o aquecimento, instâncias recém-iniciadas também não são contabilizadas nas métricas agregadas do grupo do Auto Scaling (como `CPUUtilization`, `NetworkIn`, `NetworkOut` etc.). Se você adicionou políticas de escalabilidade ao grupo do Auto Scaling, as ações de escalabilidade serão executadas em paralelo. Se você definir um intervalo longo para o período de aquecimento de atualização de instância, levará mais tempo para que as instâncias recém-iniciadas sejam exibidas nas métricas. Portanto, um período de aquecimento adequado evita a escalabilidade do Amazon EC2 Auto Scaling em dados de métricas obsoletos.

      Se você já definiu corretamente um aquecimento de instâncias padrão para o grupo do Auto Scaling, não é necessário alterar o aquecimento da instância. Porém, se quiser substituir o padrão, você pode definir um valor para essa opção. Para obter mais informações sobre como configurar o aquecimento de instâncias, consulte [Definir o aquecimento padrão da instância para um grupo do Auto Scaling](ec2-auto-scaling-default-instance-warmup.md).

1. Para **configurações de atualização**, faça o seguinte:

   1. (Opcional) Em **Pontos de verificação**, escolha **Habilitar pontos de verificação** para substituir instâncias usando uma abordagem incremental ou faseada para uma atualização de instância. Isso fornece tempo adicional para verificação entre conjuntos de substituições. Se você optar por não ativar pontos de verificação, as instâncias serão substituídas em uma operação quase contínua.

      Se você habilitar pontos de verificação, consulte [Habilitar pontos de verificação (console)](enable-checkpoints-console-cli.md#enable-checkpoints-console) para obter etapas adicionais.

   1. (Opcional) Em **Tempo de incorporação** especifique a quantidade de tempo de espera no final de uma atualização de instância antes que a atualização da instância seja considerada concluída.

   1. Habilitar ou desativar **Ignorar correspondência** :
      + Para ignorar a substituição de instâncias que já correspondem ao modelo de execução, mantenha a caixa de seleção **Habilitar opção de ignorar correspondência** marcada.
      + Se você desativar ignorar correspondência desmarcando essa caixa de seleção, todas as instâncias poderão ser substituídas.

      Ao ativar a correspondência ignorada, você pode definir um novo modelo de execução ou uma nova versão do modelo de execução em vez de usar o existente. Faça isso na seção **Configuração desejada** da página **Iniciar atualização de instância**. 
**nota**  
Para usar o recurso de ignorar correspondência para atualizar um grupo do Auto Scaling que atualmente use uma configuração de execução, é necessário selecionar um modelo de execução em **Configuração desejada**. Ignorar correspondência com uma configuração de inicialização não é compatível.

   1. Em **Instâncias em espera**, escolha **Ignorar**, **Terminar** ou **Aguardar**. Isso determina o que acontecerá se as instâncias forem encontradas no estado `Standby`. Para obter mais informações, consulte [Remover temporiamente instâncias do grupo do Auto Scaling](as-enter-exit-standby.md).

      Se você escolher **Aguardar**, deverá realizar outras ações para retornar essas instâncias ao serviço. Senão, a atualização de instância substituirá todas as instâncias `InService` e aguardará uma hora. Então, se alguma instância `Standby` permanecer, a atualização de instância falhará. Para evitar essa situação, escolha **Ignorar** ou **Terminar** as instâncias. 

   1. Para **Instâncias protegidas de redução da escala na horizontal**, escolha **Ignorar**, **Substituir** ou **Aguardar**. Isso determina o que acontecerá se instâncias protegidas contra redução da escala na horizontal forem encontradas. Para obter mais informações, consulte [Use a proteção de redução da escala horizontalmente da instância para controlar a terminação da instância](ec2-auto-scaling-instance-protection.md).

      Se você escolher **Aguardar**, deverá realizar outras ações para remover a proteção contra redução da escala na horizontal dessas instâncias. Senão, a atualização de instância substituirá todas as instâncias não protegidas e aguardará uma hora. Então, se alguma instância protegida contra redução da escala na horizontal permanecer, a atualização de instância falhará. Para evitar essa situação, escolha **Ignorar** ou **Substituir** as instâncias. 

1. (Opcional) Para **CloudWatch alarme**, escolha **Ativar CloudWatch alarmes** e, em seguida, escolha um ou mais alarmes. CloudWatch os alarmes podem ser usados para identificar quaisquer problemas e falhar na operação se um alarme entrar no `ALARM` estado. Para obter mais informações, consulte [Iniciar uma atualização de instância com reversão automática](instance-refresh-rollback.md#instance-refresh-using-auto-rollback). 

1. (Opcional) Expanda a seção **Configuração desejada** para especificar as atualizações que você deseja fazer no grupo do Auto Scaling.

   Nesta etapa, você pode optar por usar a sintaxe JSON ou YAML para editar valores de parâmetros em vez de fazer seleções na interface do console. Para isso, escolha **Usar editor de código** em vez de **Usar a interface do console**. O procedimento a seguir explica como fazer seleções usando a interface do console.

   1. Para **Atualizar o modelo de execução**: 
      + Se você *não* criou um novo modelo de execução ou uma nova versão de modelo de execução para seu grupo do Auto Scaling, não marque essa caixa de seleção.
      + Se você criou um novo modelo de execução ou uma nova versão do modelo de execução, marque esta caixa de seleção. Quando você seleciona essa opção, o Amazon EC2 Auto Scaling exibe o modelo de execução atual e a versão atual do modelo de execução. Também lista todas as outras versões disponíveis. Escolha o modelo de lançamento e, em seguida, escolha a versão. 

        Após escolher uma versão, você poderá visualizar as informações da versão. Esta é a versão do modelo de execução que será usada ao substituir instâncias como parte de uma atualização de instância. Se a atualização da instância tiver êxito, essa versão do modelo de execução também será usada sempre que novas instâncias forem iniciadas, como quando o grupo for dimensionado.

   1. Em **Choose a set of instance types and purchase options to override the instance type in the launch template** (Escolha um conjunto de tipos de instância e opções de compra para substituir o tipo de instância no modelo de execução):
      + Não marque essa caixa de seleção se quiser usar o tipo de instância e a opção de compra que você especificou no modelo de execução.
      + Marque esta caixa de seleção se quiser substituir o tipo de instância no modelo de execução ou executar instâncias spot. É possível adicionar manualmente cada tipo de instância ou escolher um tipo de instância primária e uma opção de recomendação que recupere outros tipos de instância correspondentes para você. Se você pretende iniciar instâncias spot, recomendamos adicionar alguns tipos diferentes de instância. Dessa forma, o Amazon EC2 Auto Scaling pode iniciar outro tipo de instância se houver capacidade de instância insuficiente nas zonas de disponibilidade escolhidas. Para obter mais informações, consulte [Grupos do Auto Scaling com vários tipos de instâncias e opções de compra](ec2-auto-scaling-mixed-instances-groups.md).
**Atenção**  
Não use instâncias spot com aplicações que não conseguem lidar com uma interrupção de instância spot. As interrupções poderão ocorrer se o serviço do Amazon EC2 Spot precisar recuperar a capacidade.

      Se você marcar essa caixa de seleção, verifique se o modelo de execução já não solicita instâncias spot. Não é possível usar um modelo de execução que solicite instâncias spot para criar um grupo do Auto Scaling que use vários tipos de instância e execute instâncias spot e sob demanda.
**nota**  
Para configurar essas opções em um grupo do Auto Scaling que atualmente use uma configuração de execução, é necessário selecionar um modelo de execução em **Update launch template** (Atualizar modelo de execução). Não há suporte à substituição do tipo de instância na configuração de execução.

1. (Opcional) Em **Configurações de reversão**, escolha **Habilitar reversão automática** para reverter automaticamente a atualização de instância em caso de falha.

   Essa configuração só pode ser habilitada quando o grupo do Auto Scaling atende aos pré-requisitos para usar reversões. 

   Para obter mais informações, consulte [Desfazer alterações com uma reversão manual ou automática](instance-refresh-rollback.md).

1. Revise todas as seleções para confirmar que tudo esteja configurado corretamente.

   Nesse ponto, é bom verificar se as diferenças entre as alterações atuais e propostas não afetarão sua aplicação de maneiras inesperadas ou indesejadas. Para confirmar se o tipo de instância é compatível com o modelo de execução, consulte [Compatibilidade de tipo de instância](instance-refresh-overview.md#instance-type-compatibility).

1. Quando estiver satisfeito com as seleções de atualização da instância, escolha **Iniciar atualização da instância**. 

### Iniciar uma atualização de instância no console (grupo de instâncias mistas)
<a name="starting-an-instance-refresh-in-the-console-mig"></a>

Use o procedimento a seguir se você criou um grupo do Auto Scaling com [política de instâncias mistas](ec2-auto-scaling-mixed-instances-groups.md). Se você não definiu ainda uma política de instâncias mistas para seu grupo, consulte [Iniciar uma atualização de instância no console (procedimento básico)](#starting-an-instance-refresh-in-the-console) para iniciar uma atualização de instância.

**Para iniciar uma atualização de instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

   Um painel dividido é aberto na parte inferior da página **Auto Scaling groups** (Grupos do Auto Scaling). 

1. Na guia **Atualização de instância**, em **Atualização ativa de instância**, escolha **Iniciar atualização de instância**.

1. Para **configurações de disponibilidade**, faça o seguinte:

   1. Para o **método de substituição de instância**:
      + Se você *não* definiu uma política de manutenção de instâncias no grupo do Auto Scaling, a configuração padrão para o **método de substituição de instância** é **Encerrar e iniciar**. Esse é o comportamento padrão legado de uma atualização de instância.
      + Se você definir uma política de manutenção de instância no grupo do Auto Scaling, ela fornecerá valores padrão para o **método de substituição de instância**. Para substituir a política de manutenção da instância, escolha **Substituir**. A substituição é aplicada somente à atualização de instância atual. Na próxima vez que você iniciar uma atualização de instância, esses valores serão redefinidos para os padrões da política de manutenção de instâncias. 

      O procedimento a seguir explica como atualizar o método de substituição de instância.

      1. Escolha um dos seguintes métodos de substituição de instância:
         + **Iniciar antes de encerrar**: uma nova instância deve ser provisionada primeiro antes que uma instância existente possa ser encerrada. Essa é uma boa opção para aplicações que favorecem a disponibilidade em detrimento da redução de custos.
         + **Encerrar e iniciar**: novas instâncias são provisionadas ao mesmo tempo em que as instâncias existentes são encerradas. Esta é uma boa opção para aplicações que favorecem a economia de custos em detrimento da disponibilidade. Também é uma boa opção para aplicações que não devem lançar mais capacidade do que a disponível atualmente.
         + **Comportamento personalizado**: esta opção permite configurar um intervalo mínimo e máximo personalizado para a quantidade de capacidade que você deseja disponibilizar ao substituir instâncias. Isso pode ajudar a alcançar o equilíbrio certo entre custo e disponibilidade.

      1. Em **Definir porcentagem de integridade**, insira valores para um ou ambos os campos a seguir. Os campos de ativação variam de acordo com a opção escolhida para o **método de substituição de instância**. 
         + **Mínimo**: define a porcentagem mínima de integridade necessária para continuar com a atualização de instâncias.
         + **Máximo**: Define a porcentagem máxima íntegra possível durante a atualização da instância.

      1. Expanda a seção **Exibir capacidade temporária estimada durante substituições com base no tamanho** atual do grupo para confirmar como os valores de **Mínimo** e **Máximo** se aplicam ao seu grupo. Os valores exatos usados dependem do valor de capacidade desejado, que mudará se o grupo for ampliado.

      1. **Expanda a seção **Definir comportamento alternativo para tamanhos de reposição inválidos** e, em seguida, escolha se deseja **violar a porcentagem máxima de integridade** para priorizar a disponibilidade ou violar a porcentagem mínima de integridade.** 

         Manter a opção padrão de **Violar porcentagem mínima de integridade** não é recomendado para grupos muito pequenos. Se houver apenas uma instância no grupo do Auto Scaling, iniciar uma atualização de instância poderá resultar em uma interrupção.

         Essa etapa configura o comportamento de fallback se você estiver usando um grupo do Auto Scaling que ainda não tem uma política de manutenção de instâncias. Essa opção não está disponível e não aparece quando seu grupo tem uma política de manutenção de instâncias. Essa opção também está disponível somente para o método de substituição **Encerrar e iniciar**. Outros métodos de substituição violarão a porcentagem máxima de integridade para priorizar a disponibilidade.

   1. Em **Aquecimento da instância**, insira o número de segundos desde a mudança do estado de uma nova instância até o `InService` término da inicialização. O Amazon EC2 Auto Scaling aguarda esse tempo antes de substituir a próxima instância. 

      Durante o aquecimento, instâncias recém-iniciadas também não são contabilizadas nas métricas agregadas do grupo do Auto Scaling (como `CPUUtilization`, `NetworkIn`, `NetworkOut` etc.). Se você adicionou políticas de escalabilidade ao grupo do Auto Scaling, as ações de escalabilidade serão executadas em paralelo. Se você definir um intervalo longo para o período de aquecimento de atualização de instância, levará mais tempo para que as instâncias recém-iniciadas sejam exibidas nas métricas. Portanto, um período de aquecimento adequado evita a escalabilidade do Amazon EC2 Auto Scaling em dados de métricas obsoletos.

      Se você já definiu corretamente um aquecimento de instâncias padrão para o grupo do Auto Scaling, não é necessário alterar o aquecimento da instância. Porém, se quiser substituir o padrão, você pode definir um valor para essa opção. Para obter mais informações sobre como configurar o aquecimento de instâncias, consulte [Definir o aquecimento padrão da instância para um grupo do Auto Scaling](ec2-auto-scaling-default-instance-warmup.md).

1. Para **configurações de atualização**, faça o seguinte:

   1. (Opcional) Em **Pontos de verificação**, escolha **Habilitar pontos de verificação** para substituir instâncias usando uma abordagem incremental ou faseada para uma atualização de instância. Isso fornece tempo adicional para verificação entre conjuntos de substituições. Se você optar por não ativar pontos de verificação, as instâncias serão substituídas em uma operação quase contínua.

      Se você habilitar pontos de verificação, consulte [Habilitar pontos de verificação (console)](enable-checkpoints-console-cli.md#enable-checkpoints-console) para obter etapas adicionais.

   1. Habilitar ou desativar **Ignorar correspondência**:
      + Para ignorar a substituição de instâncias que já correspondem ao modelo de execução e quaisquer substituições de tipo de instância, mantenha a caixa de seleção **Habilitar opção de ignorar correspondência** marcada.
      + Se você optar por desativar ignorar correspondência desmarcando essa caixa de seleção, todas as instâncias poderão ser substituídas.

      Ao ativar a correspondência ignorada, você pode definir um novo modelo de execução ou uma nova versão do modelo de execução em vez de usar o existente. Faça isso na seção **Configuração desejada** da página **Iniciar atualização de instância**. Você também pode atualizar suas substituições de tipo de instância em **Desired configuration** (Configuração desejada). 

   1. Em **Instâncias em espera**, escolha **Ignorar**, **Terminar** ou **Aguardar**. Isso determina o que acontecerá se as instâncias forem encontradas no estado `Standby`. Para obter mais informações, consulte [Remover temporiamente instâncias do grupo do Auto Scaling](as-enter-exit-standby.md).

      Se você escolher **Aguardar**, deverá realizar outras ações para retornar essas instâncias ao serviço. Do contrário, a atualização de instância substituirá todas as instâncias `InService` e aguardará uma hora. Então, se alguma instância `Standby` permanecer, a atualização de instância falhará. Para evitar essa situação, escolha **Ignorar** ou **Terminar** as instâncias. 

   1. Para **Instâncias protegidas de redução da escala na horizontal**, escolha **Ignorar**, **Substituir** ou **Aguardar**. Isso determina o que acontecerá se instâncias protegidas contra redução da escala na horizontal forem encontradas. Para obter mais informações, consulte [Use a proteção de redução da escala horizontalmente da instância para controlar a terminação da instância](ec2-auto-scaling-instance-protection.md).

      Se você escolher **Aguardar**, deverá realizar outras ações para remover a proteção contra redução da escala na horizontal dessas instâncias. Senão, a atualização de instância substituirá todas as instâncias não protegidas e aguardará uma hora. Então, se alguma instância protegida contra redução da escala na horizontal permanecer, a atualização de instância falhará. Para evitar essa situação, escolha **Ignorar** ou **Substituir** as instâncias.

1. (Opcional) Para **CloudWatch alarme**, escolha **Ativar CloudWatch alarmes** e, em seguida, escolha um ou mais alarmes. CloudWatch os alarmes podem ser usados para identificar quaisquer problemas e falhar na operação se um alarme entrar no `ALARM` estado. Para obter mais informações, consulte [Iniciar uma atualização de instância com reversão automática](instance-refresh-rollback.md#instance-refresh-using-auto-rollback). 

1. Na seção **Desired configuration** (Configuração desejada), faça o seguinte: 

   Nesta etapa, você pode optar por usar a sintaxe JSON ou YAML para editar valores de parâmetros em vez de fazer seleções na interface do console. Para isso, escolha **Usar editor de código** em vez de **Usar a interface do console**. O procedimento a seguir explica como fazer seleções usando a interface do console.

   1. Para **Atualizar o modelo de execução**: 
      + Se você *não* criou um novo modelo de execução ou uma nova versão de modelo de execução para seu grupo do Auto Scaling, não marque essa caixa de seleção.
      + Se você criou um novo modelo de execução ou uma nova versão do modelo de execução, marque esta caixa de seleção. Quando você seleciona essa opção, o Amazon EC2 Auto Scaling exibe o modelo de execução atual e a versão atual do modelo de execução. Também lista todas as outras versões disponíveis. Escolha o modelo de lançamento e, em seguida, escolha a versão. 

        Após escolher uma versão, você poderá visualizar as informações da versão. Esta é a versão do modelo de execução que será usada ao substituir instâncias como parte de uma atualização de instância. Se a atualização da instância tiver êxito, essa versão do modelo de execução também será usada sempre que novas instâncias forem iniciadas, como quando o grupo for dimensionado.

   1. Em **Use these settings to override the instance type and purchase option defined in the launch template** (Use estas configurações para substituir o tipo de instância e a opção de compra definidas no modelo de execução): 

      Por padrão, esta caixa de seleção está marcada. O Amazon EC2 Auto Scaling preenche cada parâmetro com o valor que está atualmente definido na *política de instâncias mistas* para o grupo do Auto Scaling. Atualize somente os valores dos parâmetros que você deseja alterar. Para obter orientações sobre essas configurações, consulte [Grupos do Auto Scaling com vários tipos de instâncias e opções de compra](ec2-auto-scaling-mixed-instances-groups.md).
**Atenção**  
Recomendamos não desmarcar essa caixa de seleção. Apenas a desmarque se desejar parar de usar uma política de instâncias mistas. Após o término com êxito da atualização de instância, o Amazon EC2 Auto Scaling atualiza seu grupo para corresponder à **Desired configuration** (Configuração desejada). Se não incluir mais uma política de instâncias mistas, o Amazon EC2 Auto Scaling terminará gradualmente todas as instâncias spot que estejam em execução no momento e as substituirá por instâncias sob demanda. Ou, se seu modelo de execução solicitar instâncias spot, o Amazon EC2 Auto Scaling terminará gradualmente todas as instâncias sob demanda que estejam em execução no momento e as substituirá por instâncias spot. 

1. (Opcional) Em **Configurações de reversão**, escolha **Habilitar reversão automática** para reverter automaticamente a atualização de instância em caso de falha por qualquer motivo.

   Essa configuração só pode ser habilitada quando o grupo do Auto Scaling atende aos pré-requisitos para usar reversões. 

   Para obter mais informações, consulte [Desfazer alterações com uma reversão manual ou automática](instance-refresh-rollback.md).

1. Revise todas as seleções para confirmar que tudo esteja configurado corretamente.

   Nesse ponto, é bom verificar se as diferenças entre as alterações atuais e propostas não afetarão sua aplicação de maneiras inesperadas ou indesejadas. Para confirmar se o tipo de instância é compatível com o modelo de execução, consulte [Compatibilidade de tipo de instância](instance-refresh-overview.md#instance-type-compatibility).

   Quando estiver satisfeito com as seleções de atualização da instância, escolha **Iniciar atualização da instância**. 

## Iniciar uma atualização de instância (AWS CLI)
<a name="start-instance-refresh-cli"></a>

**Para iniciar uma atualização de instância**  
Use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando a seguir para iniciar uma atualização de instância a AWS CLI partir do. Você pode especificar as preferências que deseja alterar em um arquivo de configuração JSON. Ao referenciar o arquivo de configuração, forneça o caminho e o nome do arquivo, conforme mostrado no exemplo a seguir.

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

Conteúdo de `config.json`:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 50,
      "AutoRollback": true,
      "ScaleInProtectedInstances": Ignore,
      "StandbyInstances": Terminate
    }
}
```

Se as preferências não forem fornecidas, serão usados os valores padrão. Para obter mais informações, consulte [Entender os valores padrão de uma atualização de instância](understand-instance-refresh-default-values.md).

Resultado do exemplo:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

# Monitore a atualização de uma instância usando o ou Console de gerenciamento da AWS AWS CLI
<a name="check-status-instance-refresh"></a>

Você pode monitorar uma atualização de instância em andamento ou consultar o status de atualizações de instâncias anteriores nas últimas seis semanas usando o Console de gerenciamento da AWS ou. AWS CLI

## Para verificar o status de uma atualização de instância
<a name="monitor-and-check-status"></a>

Para relatar o status da instância, use um dos seguintes métodos:

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

**dica**  
Em cada uma delas, as colunas nomeadas já deverão ser exibidas. Para exibir colunas ocultas ou alterar o número de linhas exibidas, escolha o ícone de engrenagem no canto superior direito de cada seção para abrir o modal de preferências. Atualize as configurações, conforme necessário, e escolha **Confirmar**.

**Para verificar o status de uma atualização de instância (console)**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do grupo do Auto Scaling. 

   Um painel dividido é aberto na parte inferior da página.

1. Na guia **Instance refresh** (Atualização da instância), em **Instance refresh history** (Histórico da atualização de instâncias), é possível determinar o status da sua solicitação observando a coluna **Status**. A operação entra no status `Pending` durante a inicialização. Depois, o status deve mudar rapidamente para `InProgress`. Quando todas as instâncias estão atualizadas, o status muda para `Successful`.

1. Você pode monitorar ainda mais o sucesso ou o fracasso das atividades em andamento, visualizando as atividades de escala do grupo. Na guia **Atividade**, em **Histórico de atividades**, quando a atualização da instância for iniciada, você observará entradas quando instâncias forem encerradas e outro conjunto de entradas quando instâncias forem iniciadas. (Opcional) Caso tenha muitas atividades de escalabilidade, você poderá ver mais delas escolhendo o ícone **>** na parte superior do histórico de atividades. Para obter informações sobre a solução de problemas que podem causar falhas nas atividades, consulte [Solucionar problemas do Amazon EC2 Auto Scaling](CHAP_Troubleshooting.md).

1. (Opcional) Na guia **Gerenciamento de instâncias**, em **Instâncias**, você pode revisar o progresso de instâncias específicas, conforme necessário.

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

**Como verificar o status de uma atualização de instância (AWS CLI)**  
Use o seguinte comando [describe-instance-refreshes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-instance-refreshes.html):

```
aws autoscaling describe-instance-refreshes --auto-scaling-group-name my-asg
```

O seguinte é um exemplo de saída.

As atualizações de instância são ordenadas pela hora de início. As atualizações de instância ainda em andamento são descritas primeiro. 

```
{
  "InstanceRefreshes":[
    {
      "InstanceRefreshId":"08b91cf7-8fa6-48af-b6a6-d227f40f1b9b",
      "AutoScalingGroupName":"my-asg",
      "Status":"InProgress",
      "StatusReason":"Waiting for instances to warm up before continuing. For example: i-0645704820a8e83ff is warming up.",
      "StartTime":"2023-11-24T16:46:52+00:00",
      "PercentageComplete":50,
      "InstancesToUpdate":0,
      "Preferences":{
        "MaxHealthyPercentage":120,
        "MinHealthyPercentage":90,
        "InstanceWarmup":60,
        "SkipMatching":false,
        "AutoRollback":true,
        "ScaleInProtectedInstances":"Ignore",
        "StandbyInstances":"Ignore"
      }
    },
    {
      "InstanceRefreshId":"0e151305-1e57-4a32-a256-1fd14157c5ec",
      "AutoScalingGroupName":"my-asg",
      "Status":"Successful",
      "StartTime":"2023-11-22T13:53:37+00:00",
      "EndTime":"2023-11-22T13:59:45+00:00",
      "PercentageComplete":100,
      "InstancesToUpdate":0,
      "Preferences":{
        "MaxHealthyPercentage":120,
        "MinHealthyPercentage":90,
        "InstanceWarmup":60,
        "SkipMatching":false,
        "AutoRollback":true,
        "ScaleInProtectedInstances":"Ignore",
        "StandbyInstances":"Ignore"
      }
    }
  ]
}
```

Você pode monitorar ainda mais o sucesso ou o fracasso das atividades em andamento, visualizando as atividades de escala do grupo. As atividades de escala também o ajudam a obter mais detalhes para solucionar problemas com a atualização de uma instância. Para obter mais informações, consulte [Solucionar problemas do Amazon EC2 Auto Scaling](CHAP_Troubleshooting.md).

------

## Status de atualização de instância
<a name="instance-refresh-statuses"></a>

Quando uma atualização de instância é iniciada, ela entra no status **Pending**. Ele passa de **Pendente** para **InProgress**até atingir **Sucesso**, **Falha**, **Cancelado** ou **RollbackFailed**. **RollbackSuccessful**

A atualização de instância pode ter os seguintes status:


| Status | Description | 
| --- | --- | 
| Pendente | A solicitação foi criada, mas a atualização de instância não foi iniciada. | 
| InProgress | Uma atualização de instância está em andamento. | 
| Com êxito | Uma atualização de instância foi concluída com êxito. | 
| Com falha | Falha ao concluir uma atualização de instância. É possível solucionar problemas usando o motivo do status e as ações de escalabilidade. | 
| Cancelando | Uma atualização de instância em andamento está sendo cancelada. | 
| Cancelado | A atualização de instância foi cancelada. | 
| RollbackInProgress | Uma atualização de instância está sendo revertida. | 
| RollbackFailed | Falha ao concluir a reversão. É possível solucionar problemas usando o motivo do status e as ações de escalabilidade. | 
| RollbackSuccessful | A reversão foi concluída com êxito. | 
| Incorporação | Aguardando o tempo de incorporação especificado após a conclusão da atualização de uma instância. | 

# Substitua os volumes raiz durante a atualização da instância
<a name="replace-root-volume"></a>

**Topics**
+ [Como funcionam](#start-instance-refresh-replace-root-volume-how-it-works)
+ [Requisitos](#start-instance-refresh-replace-root-volume-requirements)
+ [Inicie uma atualização de instância com Replace Root Volume](#start-instance-refresh-replace-root-volume-cli)
+ [Limitações](#start-instance-refresh-replace-root-volume-limitations)
+ [Use ganchos de ciclo de vida para substituir o volume raiz](#replace-root-volume-lifecycle-hooks)

## Como funcionam
<a name="start-instance-refresh-replace-root-volume-how-it-works"></a>

A substituição do volume raiz atualiza suas instâncias substituindo somente o volume raiz do EBS enquanto mantém a instância em execução. Isso elimina a necessidade de lançar novas instâncias e evita possíveis restrições de capacidade. Esse processo preserva todos os outros recursos da instância, incluindo:
+ Interfaces de rede e endereços IP 
+ Volumes não raiz do EBS 
+ Volumes e dados do armazenamento de instâncias 
+ Grupos de segurança e funções do IAM 

Durante a substituição do volume raiz, seu aplicativo continua em execução na instância existente. O volume raiz original é separado, um novo volume raiz é criado a partir da AMI especificada e, em seguida, anexado à mesma instância. Os volumes raiz originais são excluídos automaticamente após a substituição bem-sucedida.

Quando você usa a estratégia de substituição do volume raiz, as instâncias passam pelos seguintes estados do ciclo de vida:

1. `ReplacingRootVolume`- A substituição do volume raiz começa

1. `ReplacingRootVolume:Wait`- Aguarda a conclusão do ciclo de vida do gancho (se configurado)

1. `ReplacingRootVolume:Proceed`- Prossegue com a substituição

1. `RootVolumeReplaced`- Substituição concluída com sucesso

Após a conclusão da substituição do volume raiz, o Auto Scaling realiza verificações de integridade nas instâncias atualizadas. Se a substituição do volume raiz falhar em uma instância, o Auto Scaling marca a instância para encerramento e a substitui por uma nova instância.

## Requisitos
<a name="start-instance-refresh-replace-root-volume-requirements"></a>
+ Seu grupo de Auto Scaling deve usar uma política de instâncias mistas
+ Todas as substituições na política de instâncias mistas devem especificar um `ImageId` 
+ AMIs deve conter somente um único volume raiz
+ Todas as instâncias devem corresponder à configuração do modelo de lançamento do grupo
+ Você deve iniciar a atualização da instância com a configuração desejada, com uma política de instâncias mistas contendo `ImageId` substituições. 

## Inicie uma atualização de instância com Replace Root Volume
<a name="start-instance-refresh-replace-root-volume-cli"></a>

**Para iniciar uma atualização de instância com Replace Root Volume ()AWS CLI**  
Use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando a seguir para iniciar uma atualização de instância a AWS CLI partir do. Você pode especificar as preferências que deseja alterar em um arquivo de configuração JSON. Ao referenciar o arquivo de configuração, forneça o caminho e o nome do arquivo, conforme mostrado no exemplo a seguir. 

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

Conteúdo de `config.json`: 

**Example**  

```
{
  "AutoScalingGroupName": "my-asg",
  "Strategy" : "ReplaceRootVolume",
  "DesiredConfiguration":{
    "MixedInstancesPolicy":{
      "LaunchTemplate": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId":"my-launch-template",
          "Version": "1"
        },
        "Overrides": [
          {
            "InstanceType":"c5.large",
            "ImageId":"ami-1234example"
          },
          {
            "InstanceType":"m5.large",
            "ImageId":"ami-2345example"
          }
        ]
      }
    }
  },
  "Preferences": {
    "InstanceWarmup": 60,
    "MinHealthyPercentage": 90,
    "AutoRollback": true,
    "ScaleInProtectedInstances": Ignore,
    "StandbyInstances": Ignore
  }
}
```

Se as preferências não forem fornecidas, serão usados os valores padrão. Para obter mais informações, consulte [Entender os valores padrão de uma atualização de instância](understand-instance-refresh-default-values.md). 

Resultado do exemplo:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

## Limitações
<a name="start-instance-refresh-replace-root-volume-limitations"></a>
+ Você não pode iniciar uma atualização de instância com Replace Root Volume se o grupo EC2 Auto Scaling ou a configuração desejada de atualização de instância usar `$Latest` a versão ou executar o modelo. `$Default`
+ Você não pode iniciar uma atualização de instância com Replace Root Volume em um grupo do Amazon EC2 Auto Scaling se ele contiver instâncias cujo tipo de instância não esteja presente na política de instâncias mistas.
+ Durante uma atualização de instância com Replace Root Volume, você só pode anexar instâncias com tipos que estejam presentes na política de instâncias mistas da configuração desejada.
+ Você não pode iniciar uma atualização de instância com Replace Root Volume em um grupo de EC2 Auto Scaling que tenha um pool aquecido.
+ Você não pode adicionar um pool aquecido a um grupo do Amazon EC2 Auto Scaling que tenha uma atualização de instância ativa com Replace Root Volume.

## Use ganchos de ciclo de vida para substituir o volume raiz
<a name="replace-root-volume-lifecycle-hooks"></a>

As instâncias submetidas à substituição do volume raiz seguem suas próprias transições de ciclo de vida, permitindo que você invoque ações (por exemplo, uma função Lambda) antes da substituição. and/or Para obter mais informações sobre os estados do ciclo de vida durante a substituição do volume raiz, consulte. [Transições de estado do ciclo de vida para instâncias que estão passando por substituição do volume raiz](lifecycle-hooks-overview.md#rvr-lifecycle-state-transitions)

Para obter mais informações sobre a adição de um gancho do ciclo de vida, consulte [Preparar para adicionar um gancho do ciclo de vida a um grupo do Auto Scaling](adding-lifecycle-hooks.md). Para obter mais informações sobre a conclusão de uma ação do ciclo de vida, consulte [Concluir uma ação do ciclo de vida em um grupo do Auto Scaling](completing-lifecycle-hooks.md).

Antes da substituição do volume raiz, um gancho de ciclo de vida pode ser útil nos seguintes cenários:
+ Você deseja encerrar seu aplicativo normalmente antes que o volume raiz seja substituído e a instância seja reinicializada.
+ Você deseja mover os dados do volume raiz para outro local antes que o volume seja substituído.

Após a substituição do volume raiz, um gancho de ciclo de vida pode ser útil nos seguintes cenários:
+ Você quer verificar se sua instância está totalmente pronta com a nova AMI antes de começar a receber tráfego.
+ Você deseja inicializar os dados do aplicativo que existiam anteriormente no volume raiz.

Ao adicionar ganchos do ciclo de vida, considere o seguinte:
+ Quando um gancho de ciclo de vida é configurado para a ação do `autoscaling:EC2_INSTANCE_TERMINATING` ciclo de vida, uma instância prestes a passar pela substituição do volume raiz faz uma pausa para realizar uma ação personalizada quando atinge o estado. `ReplacingRootVolume:Wait`
+ Quando um gancho de ciclo de vida é configurado para a ação do `autoscaling:EC2_INSTANCE_LAUNCHING` ciclo de vida, uma instância que acabou de ter seu volume raiz substituído faz uma pausa para realizar uma ação personalizada quando atinge o estado. `Pending:Wait`

Quando as instâncias atingem um estado de espera, o Amazon EC2 Auto Scaling envia uma notificação. As notificações de gancho do ciclo de vida do Auto Scaling contêm um `Action` campo com valor `ReplaceRootVolume` para indicar que a instância está sendo substituída pelo volume raiz.

Exemplos dessas notificações estão disponíveis na EventBridge seção deste guia. Para obter mais informações, consulte [A atualização da instância substitui os eventos do ciclo de vida do volume raiz](instance-refresh-eventbridge-events.md#instance-refresh-rvr-lifecycle-events).

# Cancelar uma atualização de instância usando o ou Console de gerenciamento da AWS AWS CLI
<a name="cancel-instance-refresh"></a>

É possível cancelar uma atualização de instância que ainda esteja em andamento. Não é possível cancelá-la após a conclusão.

Cancelar uma atualização de instância não reverterá instâncias que já foram substituídas. Em vez disso, para reverter as alterações das instâncias, realize uma reversão. Para obter mais informações, consulte [Desfazer alterações com uma reversão manual ou automática](instance-refresh-rollback.md).

**Topics**
+ [Cancelar uma atualização de instância (console)](#cancel-instance-refresh-console)
+ [Cancelar uma atualização de instância (AWS CLI)](#cancel-instance-refresh-cli)

## Cancelar uma atualização de instância (console)
<a name="cancel-instance-refresh-console"></a>

**Como cancelar uma atualização de instância**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do grupo do Auto Scaling.

1. Na guia **Atualização de instância**, em **Atualização de instância ativa**, escolha **Ações**, **Cancelar**.

1. Quando a confirmação for solicitada, escolha **Confirmar**.

O status da atualização de instância está definido como **Cancelling**. Depois que o cancelamento for concluído, o status da atualização de instância será definido como **Cancelled**.

## Cancelar uma atualização de instância (AWS CLI)
<a name="cancel-instance-refresh-cli"></a>

**Como cancelar uma atualização de instância**  
Use o [cancel-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/cancel-instance-refresh.html)comando do AWS CLI e forneça o nome do grupo Auto Scaling. 

```
aws autoscaling cancel-instance-refresh --auto-scaling-group-name my-asg
```

Resultado do exemplo:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

**Como cancelar uma atualização de instância sem esperar pela transição da instância**  
Use a `--no-wait-for-transitioning-instances` opção com o [cancel-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/cancel-instance-refresh.html)comando do AWS CLI para cancelar a atualização de uma instância sem esperar pela transição das instâncias.

```
aws autoscaling cancel-instance-refresh —auto-scaling-group-name my-asg --no-wait-for-transitioning-instances
```

Por padrão, quando você cancela uma atualização de instância, o Amazon EC2 Auto Scaling aguarda por todas as execuções e encerramentos em andamento antes de definir o status como **Cancelado**. Se você tiver instâncias com longos períodos de drenagem ou precisar iniciar uma nova atualização de instância imediatamente, poderá usar o comando para não precisar esperar por essas operações de transição.

Quando você usa essa opção, o status de atualização da instância muda para **Cancelado**, permitindo que você inicie uma nova atualização da instância. Todas as execuções e encerramentos em andamento prosseguem em segundo plano.

# Desfazer alterações com uma reversão manual ou automática
<a name="instance-refresh-rollback"></a>

É possível reverter uma atualização de instância que ainda esteja em andamento. Não é possível revertê-la após a conclusão. Porém, você pode atualizar seu grupo do Auto Scaling novamente iniciando uma nova atualização de instância.

Durante a reversão, o Amazon EC2 Auto Scaling substitui as instâncias que foram implantadas até o momento. As novas instâncias correspondem à configuração que você salvou pela última vez no grupo do Auto Scaling antes de iniciar a atualização de instância.

O Amazon EC2 Auto Scaling fornece estes modos de reversão:
+ Reversão manual: inicie uma reversão manualmente para reverter o que foi implantado até o ponto de reversão.
+ Reversão automática: o Amazon EC2 Auto Scaling reverte automaticamente o que foi implantado se a atualização da instância falhar por algum motivo ou se CloudWatch algum alarme especificado entrar no estado. `ALARM`

**Topics**
+ [Considerações](#instance-refresh-rollback-considerations)
+ [Iniciar uma reversão manualmente](#instance-refresh-manual-rollback)
+ [Iniciar uma atualização de instância com reversão automática](#instance-refresh-using-auto-rollback)

## Considerações
<a name="instance-refresh-rollback-considerations"></a>

As seguintes considerações se aplicam ao usar uma reversão:
+ A opção de reversão só está disponível se você especificar a configuração desejada como parte do início de uma atualização da instância.
+ Você só pode reverter para uma versão anterior de um modelo de execução se a versão for uma versão numerada específica. A opção de reversão não estará disponível se o grupo do Auto Scaling estiver configurado para usar a versão `$Latest` ou a versão do modelo de execução `$Default`. 
+ Você também não pode reverter para um modelo de execução configurado para usar um alias de AMI do AWS Systems Manager Parameter Store.
+ A configuração salva pela última vez no grupo do Auto Scaling deve estar em um estado estável. Se não estiver num estado estável, o fluxo de trabalho de reversão ainda ocorrerá, mas eventualmente falhará. Até você resolver o problema, o grupo do Auto Scaling poderá estar em um estado de falha e não conseguir mais iniciar instâncias com êxito. Isso pode afetar a disponibilidade do serviço ou da aplicação.

## Iniciar uma reversão manualmente
<a name="instance-refresh-manual-rollback"></a>

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

**Para iniciar manualmente a reversão de uma atualização de instância (console)**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do grupo do Auto Scaling.

1. Na guia **Atualização de instância**, em **Atualização de instância ativa**, escolha **Ações**, **Iniciar reversão**.

1. Quando a confirmação for solicitada, escolha **Confirmar**.

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

**Para iniciar manualmente a reversão de uma atualização de instância (AWS CLI)**  
Use o [rollback-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/rollback-instance-refresh.html)comando do AWS CLI e forneça o nome do grupo Auto Scaling. 

```
aws autoscaling rollback-instance-refresh --auto-scaling-group-name my-asg
```

Resultado do exemplo:

```
{
    "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

**dica**  
Se esse comando gerar um erro, verifique se você atualizou o AWS CLI localmente para a versão mais recente.

------

## Iniciar uma atualização de instância com reversão automática
<a name="instance-refresh-using-auto-rollback"></a>

Usando o recurso de reversão automática, você pode reverter automaticamente a atualização da instância quando ela falhar, como quando há erros ou quando um CloudWatch alarme específico da Amazon entra no estado. `ALARM`

Se você ativar a reversão automática e houver erros ao substituir as instâncias, a atualização da instância tentará concluir todas as substituições por uma hora antes de falhar e reverter. Esses erros geralmente são causados por coisas como falhas de inicialização do EC2, verificações de integridade mal configuradas ou por não ignorar ou permitir o encerramento de instâncias que estão no estado `Standby` ou protegidas contra redução.

A especificação de CloudWatch alarmes é opcional. Para especificar um alarme, primeiro você precisa criá-lo. Você pode especificar alarmes métricos e alarmes compostos. Para obter informações sobre como criar o alarme, consulte o [Guia CloudWatch do usuário da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/). Usando as métricas do Elastic Load Balancing como exemplo, se você usar um Application Load Balancer, poderá usar as métricas `HTTPCode_ELB_5XX_Count` e`HTTPCode_ELB_4XX_Count`.

**Considerações**
+ Se você especificar um CloudWatch alarme, mas não ativar a reversão automática, e o estado do alarme continuar`ALARM`, a atualização da instância falhará sem reverter.
+ Você pode escolher no máximo 10 alarmes ao iniciar uma atualização da instância.
+ Ao escolher um CloudWatch alarme, o alarme deve estar em um estado compatível. Se o estado do alarme for `INSUFFICIENT_DATA` ou`ALARM`, você receberá um erro ao tentar iniciar a atualização da instância. 
+ Ao criar um alarme para uso do Amazon EC2 Auto Scaling, o alarme deve incluir como tratar pontos de dados ausentes. Se uma métrica tiver frequentemente pontos de dados ausentes por projeto, o estado do alarme será `INSUFFICIENT_DATA` durante esses períodos. Quando isso acontece, o Amazon EC2 Auto Scaling não pode substituir instâncias até que novos pontos de dados sejam encontrados. Para forçar o alarme a manter o estado `ALARM` ou `OK` anterior, você pode optar por ignorar os dados ausentes. Para obter mais informações, consulte [Configurando como os alarmes tratam dados perdidos no Guia CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) *do usuário da Amazon*.

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

**Para iniciar uma atualização de instância com reversão automática (console)**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do grupo do Auto Scaling.

1. Na guia **Atualização de instância**, em **Atualização ativa de instância**, escolha **Iniciar atualização de instância**.

1. Siga o [Iniciar uma atualização de instância (console)](start-instance-refresh.md#start-instance-refresh-console) procedimento e defina as configurações de atualização da instância conforme necessário.

1. (Opcional) Em **Atualizar configurações**, para **CloudWatch alarme**, escolha **Ativar CloudWatch alarmes** e, em seguida, escolha um ou mais alarmes para identificar quaisquer problemas e falhar na operação se um alarme entrar nesse estado. `ALARM`

1. Em **Configurações de reversão**, escolha **Habilitar a reversão automática** para reverter automaticamente uma atualização de instância com falha para a configuração que você salvou pela última vez no grupo do Auto Scaling antes de iniciar a atualização de instância.

1. Revise suas seleções e escolha **Iniciar atualização da instância**. 

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

**Para iniciar uma atualização de instância com reversão automática (AWS CLI)**  
Use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando e especifique `true` a `AutoRollback` opção no`Preferences`. 

O exemplo a seguir mostra como iniciar uma atualização de instância que será revertida automaticamente se ocorrer uma falha. Substitua os valores dos *`italicized`* parâmetros pelos seus próprios.

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

Conteúdo de `config.json`.

```
{
    "AutoScalingGroupName": "my-asg",
    "DesiredConfiguration": {
      "LaunchTemplate": {
          "LaunchTemplateName": "my-launch-template",
          "Version": "1"
       }
    },
    "Preferences": {
      "AutoRollback": true
    }
}
```

Como alternativa, para reverter automaticamente quando a atualização da instância falhar ou quando um CloudWatch alarme especificado estiver no `ALARM` estado, especifique a `AlarmSpecification` opção no `Preferences` e forneça o nome do alarme, como no exemplo a seguir. Substitua os valores dos *`italicized`* parâmetros pelos seus próprios.

```
{
    "AutoScalingGroupName": "my-asg",
    "DesiredConfiguration": {
      "LaunchTemplate": {
          "LaunchTemplateName": "my-launch-template",
          "Version": "1"
       }
    },
    "Preferences": {
      "AutoRollback": true,
      "AlarmSpecification": { "Alarms": [ "my-alarm" ] }
    }
}
```

Se houver êxito, o comando gerará uma saída semelhante à seguinte.

```
{
  "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
}
```

**dica**  
Se esse comando gerar um erro, verifique se você atualizou o AWS CLI localmente para a versão mais recente.

------

# Usar uma atualização de instância com opção de ignorar correspondência
<a name="asg-instance-refresh-skip-matching"></a>

Ignorar a correspondência diz ao Amazon EC2 Auto Scaling para ignorar as instâncias que já tenham as atualizações mais recentes. Assim, você não substituirá mais instâncias do que o necessário. Isso é útil quando você deseja garantir que seu grupo do Auto Scaling usará uma versão específica de seu modelo de execução e substituirá apenas as instâncias que usam outra versão.

As seguintes considerações se aplicam à opção ignorar a correspondência:
+ Se você iniciar uma atualização de instância com a opção de ignorar correspondência e uma *configuração desejada*, o Amazon EC2 Auto Scaling verificará se alguma instância corresponde à configuração desejada. Em seguida, ele substituirá apenas as instâncias que não correspondam à configuração desejada. Depois que a atualização de instância tem êxito, o Amazon EC2 Auto Scaling atualiza o grupo para refletir a configuração desejada. 
+ Se você iniciar uma atualização de instância com opção de ignorar correspondência, mas não especificar a configuração desejada, o Amazon EC2 Auto Scaling verificará se alguma instância corresponde à configuração que você salvou pela última vez no grupo do Auto Scaling. Em seguida, ele substituirá apenas as instâncias que não correspondam à última configuração salva.
+ Você pode usar a opção de ignorar correspondência com um novo modelo de execução, uma nova versão do modelo de execução ou um conjunto de tipos de instância. Se você habilitar ignorar a correspondência, mas nenhum deles for alterado, a atualização da instância será bem-sucedida imediatamente sem substituir nenhuma instância. Se você tiver feito outras alterações na configuração desejada (como alterar a estratégia de alocação spot), o Amazon EC2 Auto Scaling aguardará a atualização de instância ser concluída com êxito. Em seguida, ele atualizará as configurações do grupo do Auto Scaling para refletir a nova configuração desejada. 
+ Você não pode usar ignorar a correspondência com uma nova configuração de inicialização.
+ Quando você inicia uma atualização de instância e fornece uma configuração desejada, o Amazon EC2 Auto Scaling garante que todas as instâncias usem essa configuração. Portanto, quando você especifica `$Default` ou `$Latest` como a versão desejada para o seu modelo de execução e, em seguida, cria uma nova versão do modelo de execução enquanto uma atualização de instância está em andamento, todas as instâncias que já foram substituídas serão substituídas novamente.
+ A ignorância de correspondência não sabe se um script de dados do usuário no modelo de execução extrairá o código atualizado e o instalará em novas instâncias. Como resultado, a ignorância de correspondência pode ignorar a substituição de instâncias que tenham códigos desatualizados instalados. Nesse caso, é necessário desativar a ignorância de correspondência para garantir que todas as instâncias recebam o código mais recente, mesmo sem uma atualização da versão do modelo de execução.

Esta seção inclui AWS CLI instruções para iniciar uma atualização de instância com a opção skip matching ativada. Para obter instruções sobre como usar o console, consulte [Iniciar uma atualização de instância (console)](start-instance-refresh.md#start-instance-refresh-console).

## Ignorar correspondência (procedimento básico)
<a name="skip-matching"></a>

Siga as etapas desta seção para usar o AWS CLI para fazer o seguinte:
+ Crie o modelo de execução que deseja aplicar às instâncias.
+ Inicie uma atualização de instância para aplicar seu modelo de execução ao grupo do Auto Scaling. Se você não habilitar a opção de ignorar correspondência, todas as instâncias serão substituídas. Isso ocorre mesmo que o modelo de execução usado para provisionar a instância seja o mesmo que você especificou para a configuração desejada.

**Para usar a opção de ignorar correspondência com um novo modelo de execução**

1. Use o [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)comando para criar um novo modelo de lançamento para seu grupo de Auto Scaling. Inclua a opção `--launch-template-data` e a entrada JSON que definem os detalhes das instâncias criadas para seu grupo do Auto Scaling.

   Por exemplo, use o comando a seguir para criar um modelo de execução básico com o ID de AMI *`ami-0123456789abcdef0`* e o tipo de instância `t2.micro`.

   ```
   aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \
     --launch-template-data '{"ImageId":"ami-0123456789abcdef0","InstanceType":"t2.micro"}'
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   {
      "LaunchTemplate": {
        "LaunchTemplateId": "lt-068f72b729example",
        "LaunchTemplateName": "my-template-for-auto-scaling",
        "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
        "CreateTime": "2023-01-30T18:16:06.000Z",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
     }
   }
   ```

   Para obter mais informações, consulte [Exemplos para criar e gerenciar modelos de lançamento com o AWS CLI](examples-launch-templates-aws-cli.md).

1. Use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando para iniciar o fluxo de trabalho de substituição da instância e aplicar seu novo modelo de lançamento com o ID*`lt-068f72b729example`*. Por ser novo, o modelo de execução tem apenas uma versão. Isso significa que a versão `1` do modelo de execução é o destino dessa atualização de instâncias. Se ocorrer um evento de aumento da escala na horizontal durante a atualização de instâncias e o Amazon EC2 Auto Scaling provisionar novas instâncias usando a versão `1` desse modelo de execução, elas não serão substituídas. Quando a operação for concluída com êxito, o novo modelo de execução será aplicado com êxito ao grupo do Auto Scaling. 

   ```
   aws autoscaling start-instance-refresh --cli-input-json file://config.json
   ```

   Conteúdo de `config.json`.

   ```
   {
       "AutoScalingGroupName": "my-asg",
       "DesiredConfiguration": {
         "LaunchTemplate": {
             "LaunchTemplateId": "lt-068f72b729example",
             "Version": "$Default"
          }
       },
       "Preferences": {
         "SkipMatching": true
       }
   }
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   {
     "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
   }
   ```

## Ignorar correspondências (grupos de instâncias mistas)
<a name="skip-matching-mixed-instances-group"></a>

Se você tiver um grupo de Auto Scaling com uma [política de instâncias mistas](ec2-auto-scaling-mixed-instances-groups.md), siga as etapas nesta seção para usar o AWS CLI para iniciar uma atualização de instância com skip matching. Você tem as seguintes opções:
+ Forneça um novo modelo de execução para aplicar a todos os tipos de instância especificados na política.
+ Forneça um conjunto atualizado de tipos de instância alterando ou não o modelo de execução na política. Por exemplo, digamos que você faça uma migração de tipos de instância indesejados. Você usaria o modelo de execução como está, sem alterar a AMI, os grupos de segurança ou outras especificidades das instâncias a serem substituídas.

Siga as etapas em uma das seções a seguir, de acordo com a opção que atenda às suas necessidades.

**Para usar a opção de ignorar correspondência com um novo modelo de execução**

1. Use o [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html)comando para criar um novo modelo de lançamento para seu grupo de Auto Scaling. Inclua a opção `--launch-template-data` e a entrada JSON que definem os detalhes das instâncias criadas para seu grupo do Auto Scaling.

   Por exemplo, use o comando a seguir para criar um modelo de execução com o ID de AMI *`ami-0123456789abcdef0`*.

   ```
   aws ec2 create-launch-template --launch-template-name my-new-template --version-description version1 \
     --launch-template-data '{"ImageId":"ami-0123456789abcdef0"}'
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   {
      "LaunchTemplate": {
        "LaunchTemplateId": "lt-04d5cc9b88example",
        "LaunchTemplateName": "my-new-template",
        "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
        "CreateTime": "2023-01-31T15:56:02.000Z",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
     }
   }
   ```

   Para obter mais informações, consulte [Exemplos para criar e gerenciar modelos de lançamento com o AWS CLI](examples-launch-templates-aws-cli.md).

1. Para ver a política de instâncias mistas existente para seu grupo de Auto Scaling, execute o [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)comando. Você precisará dessas informações na próxima etapa, ao iniciar a atualização de instância.

   O comando de exemplo a seguir retorna a política de instâncias mistas configurada para o grupo do Auto Scaling chamado *`my-asg`*.

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   {
     "AutoScalingGroups":[
       {
         "AutoScalingGroupName":"my-asg",
         "AutoScalingGroupARN":"arn",
         "MixedInstancesPolicy":{
           "LaunchTemplate":{
             "LaunchTemplateSpecification":{
               "LaunchTemplateId":"lt-073693ed27example",
               "LaunchTemplateName":"my-old-template",
               "Version":"$Default"
             },
             "Overrides":[
               {
                 "InstanceType":"c5.large"
               },
               {
                 "InstanceType":"c5a.large"
               },
               {
                 "InstanceType":"m5.large"
               },
               {
                 "InstanceType":"m5a.large"
               }
             ]
           },
           "InstancesDistribution":{
             "OnDemandAllocationStrategy":"prioritized",
             "OnDemandBaseCapacity":1,
             "OnDemandPercentageAboveBaseCapacity":50,
             "SpotAllocationStrategy":"price-capacity-optimized"
           }
         },
         "MinSize":1,
         "MaxSize":5,
         "DesiredCapacity":4,
         ...
       }
     ]
   }
   ```

1. Use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando para iniciar o fluxo de trabalho de substituição da instância e aplicar seu novo modelo de lançamento com o ID*`lt-04d5cc9b88example`*. Por ser novo, o modelo de execução tem apenas uma versão. Isso significa que a versão `1` do modelo de execução é o destino dessa atualização de instâncias. Se ocorrer um evento de aumento da escala na horizontal durante a atualização de instâncias e o Amazon EC2 Auto Scaling provisionar novas instâncias usando a versão `1` desse modelo de execução, elas não serão substituídas. Quando a operação for concluída com êxito, a política de instâncias mistas atualizada será aplicada com êxito ao grupo do Auto Scaling.

   ```
   aws autoscaling start-instance-refresh --cli-input-json file://config.json
   ```

   Conteúdo de `config.json`.

   ```
   {
     "AutoScalingGroupName":"my-asg",
     "DesiredConfiguration":{
       "MixedInstancesPolicy":{
         "LaunchTemplate":{
           "LaunchTemplateSpecification":{
             "LaunchTemplateId":"lt-04d5cc9b88example",
             "Version":"$Default"
           },
           "Overrides":[
             {
               "InstanceType":"c5.large"
             },
             {
               "InstanceType":"c5a.large"
             },
             {
               "InstanceType":"m5.large"
             },
             {
               "InstanceType":"m5a.large"
             }
           ]
         },
         "InstancesDistribution":{
           "OnDemandAllocationStrategy":"prioritized",
           "OnDemandBaseCapacity":1,
           "OnDemandPercentageAboveBaseCapacity":50,
           "SpotAllocationStrategy":"price-capacity-optimized"
           }
         }
       }
     },
     "Preferences":{
       "SkipMatching":true
     }
   }
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   {
     "InstanceRefreshId": "08b91cf7-8fa6-48af-b6a6-d227f40f1b9b"
   }
   ```

No próximo procedimento, você fornecerá um conjunto atualizado de tipos de instância sem alterar o modelo de execução. 

**Para usar a opção de ignorar correspondência com um conjunto atualizado de tipos de instância**

1. Para ver a política de instâncias mistas existente para seu grupo de Auto Scaling, execute o [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)comando. Você precisará dessas informações na próxima etapa, ao iniciar a atualização de instância.

   O comando de exemplo a seguir retorna a política de instâncias mistas configurada para o grupo do Auto Scaling chamado *`my-asg`*.

   ```
   aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
   ```

   Se houver êxito, o comando gerará uma saída semelhante à seguinte.

   ```
   {
     "AutoScalingGroups":[
       {
         "AutoScalingGroupName":"my-asg",
         "AutoScalingGroupARN":"arn",
         "MixedInstancesPolicy":{
           "LaunchTemplate":{
             "LaunchTemplateSpecification":{
               "LaunchTemplateId":"lt-073693ed27example",
               "LaunchTemplateName":"my-template-for-auto-scaling",
               "Version":"$Default"
             },
             "Overrides":[
               {
                 "InstanceType":"c5.large"
               },
               {
                 "InstanceType":"c5a.large"
               },
               {
                 "InstanceType":"m5.large"
               },
               {
                 "InstanceType":"m5a.large"
               }
             ]
           },
           "InstancesDistribution":{
             "OnDemandAllocationStrategy":"prioritized",
             "OnDemandBaseCapacity":1,
             "OnDemandPercentageAboveBaseCapacity":50,
             "SpotAllocationStrategy":"price-capacity-optimized"
           }
         },
         "MinSize":1,
         "MaxSize":5,
         "DesiredCapacity":4,
         ...
       }
     ]
   }
   ```

1. Use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando para iniciar o fluxo de trabalho de substituição de instâncias e aplicar suas atualizações. Para substituir instâncias que usam tipos de instância específicos, a configuração desejada deve especificar a política de instâncias mistas somente com os tipos de instância que você deseja. Você pode escolher se deseja adicionar novos tipos de instância no lugar deles.

   O comando de exemplo a seguir inicia uma atualização de instância sem o tipo de instância indesejado *`m5a.large`*. Quando um tipo de instância de seu grupo não corresponde a um dos três tipos de instância restantes, as instâncias são substituídas. (Uma atualização de instância não escolhe os tipos de instância dos quais provisionar as novas instâncias; são [as estratégias de alocação](allocation-strategies.md) que fazem isso.) Quando a operação for concluída com êxito, a política de instâncias mistas atualizada será aplicada com êxito ao grupo do Auto Scaling.

   ```
   aws autoscaling start-instance-refresh --cli-input-json file://config.json
   ```

   Conteúdo de `config.json` 

   ```
   {
     "AutoScalingGroupName":"my-asg",
     "DesiredConfiguration":{
       "MixedInstancesPolicy":{
         "LaunchTemplate":{
           "LaunchTemplateSpecification":{
             "LaunchTemplateId":"lt-073693ed27example",
             "Version":"$Default"
           },
           "Overrides":[
             {
               "InstanceType":"c5.large"
             },
             {
               "InstanceType":"c5a.large"
             },
             {
               "InstanceType":"m5.large"
             }
           ]
         },
         "InstancesDistribution":{
           "OnDemandAllocationStrategy":"prioritized",
           "OnDemandBaseCapacity":1,
           "OnDemandPercentageAboveBaseCapacity":50,
           "SpotAllocationStrategy":"price-capacity-optimized"
           }
         }
       }
     },
     "Preferences":{
       "SkipMatching":true
     }
   }
   ```

# Adicionar pontos de verificação a uma atualização de instância
<a name="asg-adding-checkpoints-instance-refresh"></a>

Ao usar uma atualização de instância, você pode escolher substituir instâncias em fases para poder executar verificações em suas instâncias durante o uso. Para fazer uma substituição em fases, adicione pontos de verificação, que são pontos no tempo em que a atualização da instância pausa. O uso de pontos de verificação dá a você maior controle sobre como escolhe atualizar seu grupo do Auto Scaling. Isso ajuda a confirmar que sua aplicação funcionará de forma confiável e previsível.

**Topics**
+ [Como funcionam](#instance-refresh-checkpoints-how-it-works)
+ [Considerações](#instance-refresh-checkpoints-considerations)
+ [Habilitar pontos de verificação ()](enable-checkpoints-console-cli.md)

## Como funcionam
<a name="instance-refresh-checkpoints-how-it-works"></a>

Ao iniciar uma atualização de instância, você especifica os pontos de controle como porcentagens do número total de instâncias no grupo do Auto Scaling. Esses pontos de controle indicam a porcentagem mínima de instâncias no grupo do Auto Scaling que devem ser novas instâncias antes que o ponto de controle seja considerado atingido. Por exemplo, se seus pontos de controle forem `[20, 50, 100]`, o primeiro ponto de controle é atingido quando 20% das instâncias são novas, o segundo quando 50% são novas e o ponto de controle final quando todas as instâncias são novas. 

O Amazon EC2 Auto Scaling acelera as substituições de instâncias para respeitar as porcentagens de ponto de controle especificadas, mantendo a porcentagem mínima de integridade do grupo. Para atingir uma porcentagem de pontos de verificação, o Amazon EC2 Auto Scaling às vezes substitui menos, mas nunca mais do que a porcentagem mínima de integridade permitida.

Considere o seguinte grupo do Auto Scaling que tem 10 instâncias. As porcentagens do ponto de verificação são `[20,50,100]`, a porcentagem mínima de integridade é 80% e a porcentagem máxima de integridade é 100%. Para manter a porcentagem mínima de integridade, apenas duas instâncias podem ser substituídas por vez. O diagrama a seguir resume o processo de substituição de instâncias antes que um ponto de verificação seja alcançado.

![\[Este diagrama mostra como os pontos de verificação afetam o fluxo de uma atualização de instância.\]](http://docs.aws.amazon.com/pt_br/autoscaling/ec2/userguide/images/checkpoints-instance-refresh.png)


No exemplo acima, há um período de aquecimento da instância para cada nova instância iniciada. Você também pode ter um gancho do ciclo de vida que coloca uma instância em um estado de espera e, em seguida, executa uma ação personalizada ao iniciar ou encerrar. 

O Amazon EC2 Auto Scaling emite eventos para cada ponto de controle, exceto para o ponto de controle 100% completo. Você pode adicionar uma EventBridge regra para enviar os eventos para um destino, como o Amazon SNS. Assim, você é notificado quando pode executar as verificações necessárias. Para obter mais informações, consulte [Crie EventBridge regras, por exemplo, eventos de atualização](monitor-events-eventbridge-sns.md).

## Considerações
<a name="instance-refresh-checkpoints-considerations"></a>

Mantenha as seguintes considerações em mente ao usar pontos de verificação:
+ Como os pontos de verificação são baseados em percentuais, o número de instâncias a serem substituídas muda de acordo com o tamanho do grupo. Quando uma atividade de aumento de escala na horizontal ocorre e o tamanho do grupo aumenta, uma operação em andamento pode chegar a um ponto de verificação novamente. Se isso acontecer, o Amazon EC2 Auto Scaling enviará outra notificação e repetirá o tempo de espera entre pontos de verificação antes de continuar.
+ É possível pular um ponto de verificação sob certas circunstâncias. Por exemplo, suponha que seu grupo do Auto Scaling tenha duas instâncias e seus percentuais de ponto de verificação sejam `[10,40,100]`. Após a primeira instância ser substituída, o Amazon EC2 Auto Scaling calcula que 50% do grupo foi substituído. Como 50% é maior do que os dois primeiros pontos de verificação, ele ignora o primeiro ponto de verificação (`10`) e envia uma notificação para o segundo ponto de verificação (`40`).
+ O cancelamento da operação impede que quaisquer outras substituições sejam feitas. Se a operação for cancelada ou ela falhar antes de atingir o último ponto de verificação, quaisquer instâncias que já tiverem sido substituídas não serão revertidas para a configuração anterior.
+ No caso de uma atualização parcial, quando você executa novamente a operação, o Amazon EC2 Auto Scaling não é reiniciado desde o último ponto de verificação, nem para quando apenas as instâncias mais antigas são substituídas. No entanto, ele mira as instâncias mais antigas para substituição primeiro antes de lidar com as instâncias novas. 
+ Em alguns casos, a porcentagem real concluída pode ser maior do que a porcentagem desse ponto de verificação quando a porcentagem do ponto de verificação é muito baixa em relação ao número de instâncias no grupo. Por exemplo, suponha que a porcentagem do ponto de verificação seja de 20% e o grupo tenha quatro instâncias. Se o Amazon EC2 Auto Scaling substituir uma das quatro instâncias, a porcentagem real substituída (25%) será maior do que a porcentagem do ponto de verificação (20%).
+ Depois que um ponto de verificação é atingido, o percentual total concluído não exibirá o status mais recente até que as instâncias concluam o aquecimento. Seus percentuais de ponto de verificação são `[20,50]` com um atraso no ponto de verificação de 15 minutos e um percentual mínimo de integridade de 80%. Por exemplo, suponha que seu grupo do Auto Scaling tenha 10 instâncias e faça as seguintes substituições.
  + 0:00: duas instâncias mais antigas são substituídas por novas. 
  + 0:10: duas instâncias novas concluem o aquecimento. 
  + 0:25: duas instâncias mais antigas são substituídas por novas. (Para manter o percentual mínimo de integridade, apenas duas instâncias são substituídas).
  + 0:35: duas instâncias novas concluem o aquecimento. 
  + 0:35: uma instância mais antiga é substituída por uma nova.
  + 0:45: uma instância nova conclui o aquecimento.

  Às 0:35, a operação para de iniciar novas instâncias. O percentual concluído ainda não reflete com precisão o número de substituições concluídas (50%), porque a nova instância não terminou de aquecer. Depois que a nova instância concluir seu período de aquecimento às 0:45, o percentual completo mostrará 50%.
+ Se vários pontos de verificação estiverem habilitados, o ponto de verificação de atualização da instância deverá ser definido como 100% para garantir a substituição completa de todas as instâncias. Se você definir o ponto de verificação final para um percentual menor que 100% (por exemplo, 50%), a atualização da instância deixará de substituir as instâncias após atingir esse percentual do ponto de verificação e não continuará automaticamente até 100% de conclusão.

# Ative os pontos de verificação usando o ou Console de gerenciamento da AWS AWS CLI
<a name="enable-checkpoints-console-cli"></a>

Você pode usar o Console de gerenciamento da AWS ou AWS CLI para ativar os pontos de verificação.

## Habilitar pontos de verificação (console)
<a name="enable-checkpoints-console"></a>

Você pode habilitar pontos de verificação antes de iniciar uma atualização de instância para substituir instâncias usando uma abordagem incremental ou em fases. Isso fornece tempo adicional para verificação.

**Para iniciar uma atualização de instância que usa pontos de verificação**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do seu grupo do Auto Scaling.

   Um painel dividido é aberto na parte inferior da página **Auto Scaling groups** (Grupos do Auto Scaling). 

1. Na guia **Instance refresh** (Atualização de instância), em **Active instance refresh** (Atualização de instância ativa), escolha **Start instance refresh** (Iniciar atualização de instância).

1. Na página **Start instance refresh** (Iniciar atualização de instância), insira os valores aplicáveis para **Minimum healthy percentage** (Percentual mínimo de integridade) e **Instance warmup** (Aquecimento da instância). 

1. Marque a caixa de seleção **Enable checkpoints** (Habilitar pontos de verificação).

   Isso exibe uma caixa onde você pode definir o limite percentual para o primeiro ponto de verificação. 

1. Em **Proceed until \$1\$1\$1\$1 % of the group is refreshed** (Prosseguir até \$1\$1\$1\$1% do grupo ser atualizado), insira um número (1–100). Isso define o percentual para o primeiro ponto de verificação. 

1. Para adicionar outro ponto de verificação, escolha **Add checkpoint** (Adicionar ponto de verificação) e, em seguida, defina o percentual para o próximo ponto de verificação.

1. Para especificar quanto tempo o Amazon EC2 Auto Scaling espera após um ponto de verificação ser atingido, atualize os campos em **Wait for `1` `hour` between checkpoints** (Aguardar X Y entre pontos de verificação). A unidade de tempo pode ser horas, minutos ou segundos.

1. Se você tiver concluído as seleções de atualização da instância, escolha **Iniciar atualização da instância**. 

## Habilitar pontos de verificação (AWS CLI)
<a name="enable-checkpoints-cli"></a>

Para iniciar uma atualização de instância com pontos de verificação habilitados usando o AWS CLI, você precisa de um arquivo de configuração que defina os seguintes parâmetros:
+ `CheckpointPercentages`: especifica valores de limites para o percentual de instâncias que serão substituídas. Esses valores de limites fornecem os pontos de verificação. Quando o percentual de instâncias substituídas e aquecidas atinge um dos limites especificados, a operação aguarda por um período especificado. Você especifica o número de segundos para esperar em `CheckpointDelay`. Quando o período de tempo especificado tiver passado, a atualização da instância continuará até atingir o próximo ponto de verificação (se aplicável).
+ `CheckpointDelay`: especifica a quantidade de tempo, em segundos, para aguardar após um ponto de verificação ser atingido antes de continuar. Escolha um período que forneça tempo suficiente para executar suas verificações.

O último valor exibido na matriz `CheckpointPercentages` descreve o percentual do grupo do Auto Scaling que precisa ser substituído com êxito. A operação fará a transição para `Successful` após essa porcentagem ser substituída com êxito e cada instância ter concluído a inicialização. 

**Para criar vários pontos de verificação**  
Para criar vários pontos de verificação, use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando de exemplo a seguir. Este exemplo configura uma atualização de instância que atualiza inicialmente 1% do grupo do Auto Scaling. Depois de esperar 10 minutos, ele atualiza os próximos 19% e aguarda mais 10 minutos. Finalmente, ele atualiza o resto do grupo antes de concluir a operação.

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

Conteúdo de `config.json`:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 80,
      "CheckpointPercentages": [1,20,100],
      "CheckpointDelay": 600
    }
}
```

**Para criar um único ponto de verificação**  
Para criar um único ponto de verificação, use o [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)comando de exemplo a seguir. Este exemplo configura uma atualização de instância que atualiza inicialmente 20% do grupo do Auto Scaling. Depois de aguardar 10 minutos, ele atualiza então o resto do grupo antes de concluir a operação.

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

Conteúdo de `config.json`:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 80,
      "CheckpointPercentages": [20,100],
      "CheckpointDelay": 600
    }
}
```

**Para atualizar parcialmente o grupo do Auto Scaling**  
Para substituir somente uma parte do seu grupo de Auto Scaling e depois parar completamente, use o comando de exemplo [start-instance-refresh](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/start-instance-refresh.html)a seguir. Este exemplo configura uma atualização de instância que atualiza inicialmente 1% do grupo do Auto Scaling. Depois de aguardar 10 minutos, ele atualiza então os próximos 19% antes de concluir a operação.

```
aws autoscaling start-instance-refresh --cli-input-json file://config.json
```

Conteúdo de `config.json`:

```
{
    "AutoScalingGroupName": "my-asg",
    "Preferences": {
      "InstanceWarmup": 60,
      "MinHealthyPercentage": 80,
      "CheckpointPercentages": [1,20],
      "CheckpointDelay": 600
    }
}
```

# Substituir instâncias do Auto Scaling com base na vida útil máxima da instância
<a name="asg-max-instance-lifetime"></a>

O tempo de vida máximo da instância especifica o tempo máximo (em segundos) que uma instância pode estar em serviço antes de ser terminada e substituída. Um caso de uso comum pode ser um requisito para substituir as instâncias em uma programação devido a políticas de segurança internas ou a controles de conformidade externos. 

É necessário especificar um valor de pelo menos 86.400 segundos (1 dia). Para limpar um valor definido anteriormente, especifique um novo valor de 0. Essa configuração se aplica a todas as instâncias atuais e futuras do grupo do Auto Scaling.

**Topics**
+ [Considerações](#max-instance-lifetime-considerations)
+ [Definir o tempo de vida máximo da instância](#set-maximum-instance-lifetime)
+ [Limitações](#maximum-instance-lifetime-limitations)

## Considerações
<a name="max-instance-lifetime-considerations"></a>

Confira as seguintes considerações sobre o uso do recurso: 
+ Sempre que uma instância mais antiga é substituída e uma nova instância é iniciada, a nova instância usa o modelo de execução ou a configuração de execução atualmente associada ao grupo do Auto Scaling. Se o modelo de execução ou a configuração de execução especificar o ID da imagem de máquina da Amazon (AMI) de uma versão diferente da aplicação, essa versão da aplicação será implantada automaticamente.
+ Definir um valor muito baixo pode fazer com que as instâncias sejam substituídas mais rapidamente do que o desejado. Em geral, o Amazon EC2 Auto Scaling substitui uma instância de cada vez, com uma pausa entre as substituições. No entanto, se o tempo de vida máximo da instância especificado não fornecer tempo suficiente para substituir cada instância individualmente, o Amazon EC2 Auto Scaling deverá substituir mais de uma instância por vez. Várias instâncias podem ser substituídas de uma só vez, em até 10% da capacidade atual do grupo do Auto Scaling. Para evitar a substituição de muitas instâncias de uma só vez, defina um tempo de vida máximo mais longo para a instância ou use a proteção de redução da escala horizontalmente da instância para impedir temporariamente a terminação de instâncias individuais. Para obter mais informações, consulte [Use a proteção de redução da escala horizontalmente da instância para controlar a terminação da instância](ec2-auto-scaling-instance-protection.md).
+ Por padrão, o Amazon EC2 Auto Scaling cria uma nova atividade de escalabilidade para encerrar a instância e, em seguida, finaliza-a. Enquanto a instância estiver sendo encerrada, outra atividade de escalonamento iniciará uma nova instância. Você pode alterar esse comportamento para iniciar antes de encerrar usando uma política de manutenção de instância. Para obter mais informações, consulte [Políticas de manutenção de instância](ec2-auto-scaling-instance-maintenance-policy.md). 

## Definir o tempo de vida máximo da instância
<a name="set-maximum-instance-lifetime"></a>

Quando você cria um grupo do Auto Scaling no console, não é possível configurar o tempo de vida máximo da instância. No entanto, depois que o grupo for criado, você poderá editá-lo para definir o tempo de vida máximo da instância.

**Para definir o tempo de vida máximo da instância para um grupo (console)**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)e escolha **Auto Scaling Groups** no painel de navegação.

1. Marque a caixa de seleção ao lado do grupo do Auto Scaling.

   Um painel dividido é aberto na parte inferior da página **Auto Scaling groups** (Grupos do Auto Scaling), mostrando informações sobre o grupo selecionado. 

1. Na guia **Detalhes**, escolha **Configurações avançadas**, **Editar**.

1. Para o **Maximum instance lifetime** (Tempo de vida máximo da instância), insira o número máximo de segundos que uma instância pode estar em serviço.

1. Selecione **Atualizar**.

Na guia **Activity** (Atividade), em **Activity history** (Histórico de atividades), é possível ver a substituição de instâncias do grupo ao longo de todo seu histórico. 

**Para definir o tempo de vida máximo da instância para um grupo (AWS CLI)**  
Você também pode usar o AWS CLI para definir a vida útil máxima da instância para grupos de Auto Scaling novos ou existentes.

Para novos grupos de Auto Scaling, use o [create-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/create-auto-scaling-group.html)comando.

```
aws autoscaling create-auto-scaling-group --cli-input-json file://~/config.json
```

Veja a seguir um arquivo `config.json` de exemplo que mostra um tempo de vida máximo da instância de `2592000` segundos (30 dias).

```
{
    "AutoScalingGroupName": "my-asg",
    "LaunchTemplate": {
        "LaunchTemplateName": "my-launch-template",
        "Version": "$Default"
    },
    "MinSize": 1,
    "MaxSize": 5,
    "MaxInstanceLifetime": 2592000,
    "VPCZoneIdentifier": "subnet-5ea0c127,subnet-6194ea3b,subnet-c934b782",
    "Tags": []
}
```

Para grupos de Auto Scaling existentes, use o [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html)comando.

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-existing-asg --max-instance-lifetime 2592000
```

**Para verificar o tempo de vida máximo da instância para um grupo do Auto Scaling**  
Use o comando [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html).

```
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg
```

## Limitações
<a name="maximum-instance-lifetime-limitations"></a>
+ **Não há garantia de que tempo de vida máximo será exato para cada instância**: não há garantia de que as instâncias serão substituídas apenas no final de sua duração máxima. Em algumas situações, talvez o Amazon EC2 Auto Scaling precise iniciar a substituição de instâncias logo após você atualizar o parâmetro de tempo de vida máximo da instância. A razão para esse comportamento é evitar a substituição de todas as instâncias ao mesmo tempo.
+ **Proteção de redução da escala horizontalmente da instância autorizada**: O Amazon EC2 Auto Scaling fornece proteção de redução da escala horizontalmente de instância para ajudar a controlar quais instâncias podem ser terminadas. Quando essa proteção estiver ativada em uma instância, o Amazon EC2 Auto Scaling não encerrará a instância mesmo que ela tenha atingido o tempo máximo de vida útil. 
+ **Instâncias encerradas antes da execução**: quando há apenas uma instância no grupo do Auto Scaling, o recurso de vida útil máxima da instância pode resultar em uma interrupção porque o Amazon EC2 Auto Scaling encerra uma instância e, em seguida, inicia uma nova instância por padrão. Para alterar esse comportamento de iniciar antes de encerrar, consulte [Políticas de manutenção de instância](ec2-auto-scaling-instance-maintenance-policy.md).