Desfazer alterações com uma reversão - Amazon EC2 Auto Scaling

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

Desfazer alterações com uma reversão

É 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 CloudWatch se algum alarme que você especificar 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 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 executar 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 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

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. 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 CloudWatch alarme, mas não ativar a reversão automática, e o estado do alarme continuarALARM, 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 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 Configurando como os alarmes tratam os dados perdidos no Guia CloudWatch 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/ 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 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

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