Suspender e retomar um processo para um grupo do Auto Scaling - Amazon EC2 Auto Scaling

Suspender e retomar um processo para um grupo do Auto Scaling

Este tópico explica como suspender e, depois, retomar um ou mais dos processos de escalabilidade para o grupo do Auto Scaling. Talvez você queira fazer isso para, por exemplo, investigar um problema de configuração que esteja causando falha no processo ou para impedir que o Amazon EC2 Auto Scaling marque instâncias não íntegras e as substitua enquanto você estiver fazendo alterações em seu grupo do Auto Scaling.

nota

Além de suspensões que você inicia, o Amazon EC2 Auto Scaling também pode suspender processos dos grupos do Auto Scaling que falharem repetidamente ao iniciar instâncias. Isso é conhecido como suspensão administrativa. Uma suspensão administrativa se aplica mais comumente a grupos do Auto Scaling que estão tentando iniciar instâncias por mais de 24 horas, mas não tiveram êxito. Você pode retomar os processos que foram suspensos pelo Amazon EC2 Auto Scaling por motivos administrativos.

Tipos de processos

O recurso suspender-retomar é compatível com os seguintes processos:

  • Launch: adiciona instâncias ao grupo do Auto Scaling quando o grupo aumenta a escala horizontalmente ou quando o Amazon EC2 Auto Scaling opta por iniciar instâncias por outros motivos, p. ex., quando ele adiciona instâncias a um grupo de alta atividade.

  • Terminate: remove instâncias do grupo do Auto Scaling quando o grupo reduz a escala horizontalmente ou quando o Amazon EC2 Auto Scaling opta por encerrar instâncias por outros motivos, p. ex., quando uma instância é encerrada por exceder a duração máxima de sua vida útil ou falhar em uma verificação de integridade.

  • AddToLoadBalancer: adiciona instâncias ao grupo de destino do balanceador de carga anexado ou ao Classic Load Balancer quando elas são iniciadas. Para mais informações, consulte Usar o Elastic Load Balancing para distribuir tráfego entre as instâncias no grupo do Auto Scaling.

  • AlarmNotification: aceita notificações de alarmes do CloudWatch associados a políticas de escalabilidade dinâmica. Para mais informações, consulte Escalabilidade dinâmica para o Amazon EC2 Auto Scaling.

  • AZRebalance: balanceia de maneira uniforme o número de instâncias do EC2 no grupo entre todas as zonas de disponibilidade especificadas quando o grupo fica desbalanceado, p. ex., quando uma zona de disponibilidade anteriormente indisponível volta para um estado íntegro. Para mais informações, consulte Atividades de rebalanceamento.

  • HealthCheck: verifica a integridade das instâncias e marca uma instância como não íntegra se o Amazon EC2 ou o Elastic Load Balancing informar ao Amazon EC2 Auto Scaling que a instância não está íntegra. Esse processo pode substituir o status de integridade de uma instância que você definiu manualmente. Para mais informações, consulte Verificações de integridade para instâncias do Auto Scaling.

  • InstanceRefresh: termina e substitui instâncias usando o recurso de atualização de instância. Para mais informações, consulte Substituir instâncias do Auto Scaling com base em uma atualização de instância.

  • ReplaceUnhealthy: termina instâncias que estão marcadas como não íntegras e depois cria novas instâncias para substituí-las. Para mais informações, consulte Verificações de integridade para instâncias do Auto Scaling.

  • ScheduledActions: executa as ações de escalabilidade programadas que você cria ou que são criadas para você na criação de um plano de escalabilidade da AWS Auto Scaling e ativação da escalabilidade preditiva. Para mais informações, consulte Escalabilidade programada para o Amazon EC2 Auto Scaling.

Considerações

Antes de suspender processos, considere o seguinte:

  • Você pode suspender e retomar processos individuais ou todos os processos.

  • A suspensão de um processo afeta todas as instâncias do grupo do Auto Scaling. Por exemplo, você pode suspender os processos HealthCheck e ReplaceUnhealthy para reinicializar instâncias sem que o Amazon EC2 Auto Scaling encerre as instâncias com base em suas verificações de integridade. Se você precisar que o Amazon EC2 Auto Scaling execute verificações de integridade nas instâncias restantes, use o recurso em espera em vez do recurso suspender-retomar. Para mais informações, consulte Remover temporiamente instâncias do grupo do Auto Scaling.

  • A suspensão de AlarmNotification permite interromper temporariamente as políticas de monitoramento do objetivo, escalabilidade em etapas e escalabilidade simples do grupo sem excluir as políticas de escalabilidade nem seus alarmes associados do CloudWatch. Para interromper temporariamente políticas individuais de escalabilidade, consulte Desabilitar uma política de escalabilidade para um grupo do Auto Scaling.

  • Se você suspender os processos Launch e Terminate, ou AZRebalance, e então fizer alterações em seu grupo do Auto Scaling, p. ex., desvinculando instâncias ou alterando as zonas de disponibilidade especificadas, seu grupo poderá ficar desbalanceado entre as zonas de disponibilidade. Se isso acontecer, depois que você retomar os processos suspensos, o Amazon EC2 Auto Scaling redistribuirá gradualmente as instâncias de modo uniforme entre as zonas de disponibilidade.

  • Suspender o processo Terminate não impede o encerramento bem-sucedido de instâncias usando a opção de exclusão forçada com o comando delete-auto-scaling-group.

Entender como a suspensão de processos afeta outros processos

As descrições a seguir explicam o que acontece quando tipos de processos individuais são suspensos.

Cenário 1: Launch está suspenso

  • AlarmNotification ainda está ativo, mas seu grupo do Auto Scaling não pode iniciar atividades de aumento da escala na horizontal para alarmes que estejam violados.

  • ScheduledActions está ativo, mas seu grupo do Auto Scaling não pode iniciar atividades de aumento da escala na horizontal para nenhuma ação de alarme que ocorra.

  • AZRebalance deixa de rebalancear o grupo.

  • ReplaceUnhealthy continua a encerrar instâncias não íntegras, mas não inicia instâncias substitutas. Quando você retomar o processoLaunch, o Amazon EC2 Auto Scaling substituirá imediatamente todas as instâncias que ele encerrou enquanto Launch estava suspenso.

  • InstanceRefresh não substitui as instâncias.

Cenário 2: Terminate está suspenso

  • AlarmNotification ainda está ativo, mas seu grupo do Auto Scaling não pode iniciar atividades de redução da escala na horizontal para alarmes que estejam violados.

  • ScheduledActions está ativo, mas seu grupo do Auto Scaling não pode iniciar atividades de redução da escala na horizontal para nenhuma ação de alarme que ocorra.

  • AZRebalance ainda fica ativo, mas não funciona corretamente. Ele pode iniciar novas instâncias sem encerrar as antigas. Isso pode fazer com que seu grupo do Auto Scaling cresça até 10% além de seu tamanho máximo, pois isso é permitido temporariamente durante atividades de rebalanceamento. Seu grupo do Auto Scaling poderá permanecer acima seu tamanho máximo até que você retome o processo Terminate.

  • O ReplaceUnhealthy está inativo, mas não o HealthCheck. Quando o Terminate for reiniciado, o processo ReplaceUnhealthy começará a ser executado imediatamente. Se as instâncias foram marcadas como não íntegras enquanto o Terminate estava suspenso, elas serão substituídas imediatamente.

  • InstanceRefresh não substitui as instâncias.

Cenário 3: AddToLoadBalancer está suspenso

  • O Amazon EC2 Auto Scaling executa as instâncias, mas não as adiciona ao grupo de destino do balanceador de carga ou ao Classic Load Balancer. Quando você retomar o processo AddToLoadBalancer, ele retomará a adição de instâncias ao balanceador de carga quando elas forem iniciadas. No entanto, ele não adicionará as instâncias que foram iniciadas enquanto esse processo estava suspenso. Você deve registrar essas instâncias manualmente.

Cenário 4: AlarmNotification está suspenso

  • O Amazon EC2 Auto Scaling não invoca políticas de escalabilidade quando um limite de alarme do CloudWatch for violado. Quando você retomar o AlarmNotification, o Amazon EC2 Auto Scaling levará em consideração as políticas com limites de alarme que estejam sendo violados no momento.

Cenário 5: AZRebalance está suspenso

  • Seu grupo do Amazon EC2 Auto Scaling não tenta redistribuir instâncias após determinados eventos. No entanto, se ocorrer um evento de expansão ou de redução, o processo de escalabilidade ainda tentará balancear as zonas de disponibilidade. Por exemplo, durante a expansão, ele executa a instância na zona de disponibilidade com o menor número de instâncias. Se o grupo ficar desbalanceado enquanto AZRebalance estiver suspenso e você retomá-lo, o Amazon EC2 Auto Scaling tentará rebalancear o grupo. Ele chama primeiro o Launch e, depois, o Terminate.

Cenário 6: HealthCheck está suspenso

  • O Amazon EC2 Auto Scaling interrompe a marcação de instâncias com problemas de integridade como resultado das verificações de integridade do EC2 e do Elastic Load Balancing. Suas verificações personalizadas de integridade continuam funcionando corretamente. Depois que você suspender HealthCheck, se precisar, defina manualmente o estado de integridade das instâncias no seu grupo e faça com que o ReplaceUnhealthy as substitua.

Cenário 7: InstanceRefresh está suspenso

  • O Amazon EC2 Auto Scaling interrompe a substituição de instâncias como resultado de uma atualização de instância. Se houver uma atualização de instância em andamento, isso pausará a operação sem cancelá-la.

Cenário 8: ReplaceUnhealthy está suspenso

  • O Amazon EC2 Auto Scaling interrompe a substituição de instâncias que estão marcadas como não íntegras. As instâncias que falharem nas verificações de integridade do EC2 ou do Elastic Load Balancing ainda serão marcadas como não íntegras. Assim que você retomar o processo ReplaceUnhealthly, o Amazon EC2 Auto Scaling substituirá as instâncias que foram marcadas como não íntegras enquanto esse processo estava suspenso. O processo ReplaceUnhealthy chama Terminate primeiro e depois Launch.

Cenário 9: ScheduledActions está suspenso

  • O Amazon EC2 Auto Scaling não executa ações de escalabilidade que estejam programadas para execução durante o período de suspensão. Quando você retomar o ScheduledActions, o Amazon EC2 Auto Scaling considerará apenas ações programadas cuja programação ainda não tenha expirado.

Considerações adicionais

Além disso, quando Launch ou Terminate estiverem suspensos, os seguintes recursos podem não funcionar corretamente:

  • Maximum instance lifetime (Tempo de vida máximo da instância): quando Launch ou Terminate estiverem suspensos, o recurso de tempo de vida máxima da instância não poderá substituir nenhuma instância.

  • Interrupções de instâncias spot: se o Terminate estiver suspenso e seu grupo do Auto Scaling tiver instâncias spot, elas ainda poderão ser encerradas caso a capacidade spot não esteja mais disponível. Enquanto Launch estiver suspenso, o Amazon EC2 Auto Scaling não poderá iniciar instâncias substitutas de outro grupo de instâncias spot ou do mesmo grupo de instâncias spot quando ele estiver disponível novamente.

  • Capacity Rebalancing (Rebalanceamento de capacidade): se Terminate estiver suspenso e você usar o rebalanceamento de capacidade para processar interrupções de instância spot, o serviço Spot do Amazon EC2 ainda poderá encerrar instâncias caso a capacidade spot não esteja mais disponível. Se Launch estiver suspenso, o Amazon EC2 Auto Scaling não poderá executar instâncias substitutas de outro grupo de instâncias spot ou do mesmo grupo de instâncias spot quando ele estiver disponível novamente.

  • Attaching and detaching instances (Anexação e desvinculação de instâncias): quando Launch e Terminate estiverem suspensos, você poderá desvincular instâncias anexadas ao seu grupo do Auto Scaling, mas enquanto Launch estiver suspenso, você não poderá anexar novas instâncias ao grupo.

  • Standby instances (Instâncias em espera): quando Launch e Terminate estiverem suspensos, você poderá colocar uma instância no estadoStandby, mas enquanto Launch estiver suspenso, você não poderá recolocar em serviço uma instância que esteja no estado Standby.

Suspender e retomar processos (console)

Siga o procedimento abaixo para suspender um processo.

Para suspender um processo

  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.

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

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

  4. Em Suspended processes (Processos suspensos), escolha o processo a ser suspenso.

  5. Escolha Update (Atualizar).

Quando você estiver pronto, siga o procedimento abaixo para retomar o processo suspenso.

Para retomar um processo

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

  2. Em Suspended processes (Processos suspensos), escolha o processo suspenso.

  3. Escolha Update (Atualizar).

Suspender e retomar processos (AWS CLI)

Use o seguinte comando suspend-processes para suspender processos individuais.

aws autoscaling suspend-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck ReplaceUnhealthy

Para suspender todos os processos, omita a opção --scaling-processes como indicado abaixo.

aws autoscaling suspend-processes --auto-scaling-group-name my-asg

Quando você estiver pronto para retomar um processo suspenso, use o seguinte comando resume-processes.

aws autoscaling resume-processes --auto-scaling-group-name my-asg --scaling-processes HealthCheck

Para retomar todos os processos suspensos, omita a opção --scaling-processes como indicado abaixo.

aws autoscaling resume-processes --auto-scaling-group-name my-asg