Desfazer alterações com uma reversão manual ou automática - Amazon EC2 Auto Scaling

Desfazer alterações com uma reversão manual ou automática

É 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 por algum motivo, ocorrer uma falha na atualização de instância ou se algum alarme do CloudWatch que você especificou entrar no estado ALARM.

Considerações

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 Armazenamento de parâmetros AWS Systems Manager.

  • 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

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/ e escolha grupos do Auto Scaling no painel de navegação.

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

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

  4. 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 comando rollback-instance-refresh da AWS CLI e forneça o nome do grupo do 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 lançar um erro, verifique se você atualizou a AWS CLI localmente para a versão mais recente.

Iniciar uma atualização de instância com reversão automática

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

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 alarmes do CloudWatch é 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 do usuário do Amazon CloudWatch. 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 eHTTPCode_ELB_4XX_Count.

Considerações
  • Se você especificar um alarme do CloudWatch, mas não ativar a reversão automática, e o estado do alarme for paraALARM, ocorrerá uma falha na atualização da instância sem reverter.

  • Você pode escolher no máximo 10 alarmes ao iniciar uma atualização da instância.

  • Ao escolher um alarme do CloudWatch, o alarme deve estar em um estado compatível. Se o estado do alarme for INSUFFICIENT_DATA ouALARM, 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 Configurar como os alarmes tratam dados ausentes no Guia do usuário do Amazon CloudWatch.

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/ e escolha grupos do Auto Scaling no painel de navegação.

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

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

  4. Siga o Iniciar uma atualização de instância (console) procedimento e defina as configurações de atualização da instância conforme necessário.

  5. (Opcional) Em Atualizar configurações, para Alarme do CloudWatch, escolha Habilitar alarmes do CloudWatch e, em seguida, escolha um ou mais alarmes para identificar quaisquer problemas e falhas na operação se um alarme entrar no estado ALARM.

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

  7. 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 comando start-instance-refresh e especifique true a opção AutoRollback em 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 ocorrer uma falha na atualização da instância ou quando um alarme do CloudWatch especificado estiver no estadoALARM, especifique a opção AlarmSpecification em 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 lançar um erro, verifique se você atualizou a AWS CLI localmente para a versão mais recente.