Remover temporiamente instâncias do grupo do Auto Scaling - 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á.

Remover temporiamente instâncias do grupo do Auto Scaling

Você pode colocar uma instância que está no estado InService no estado Standby, atualize ou solucione problemas da instância e, em seguida, devolva a instância ao serviço. As instâncias que estão em espera ainda fazem parte do grupo do Auto Scaling, mas não lidam ativamente com o tráfego do balanceador de carga.

Esse recurso ajuda a interromper e iniciar as instâncias ou reiniciá-las sem se preocupar com o término das instâncias do Amazon EC2 Auto Scaling como parte de suas verificações de saúde ou durante eventos de redução de escala na horizontal.

Por exemplo, você pode alterar a imagem de máquina da Amazon (AMI) para um grupo do Auto Scaling a qualquer momento alterando o modelo de execução ou a configuração de execução. Todas as instâncias subsequentes iniciadas pelo grupo do Auto Scaling usam essa AMI. No entanto, o grupo do Auto Scaling não atualiza as instâncias que estão em serviço atualmente. Você pode terminar essas instâncias e permitir que o Amazon EC2 Auto Scaling as substitua ou usar o recurso de atualização de instância para terminar e substituir as instâncias. Você também pode colocar as instâncias em espera, atualizar o software e, em seguida, colocar as instâncias de volta em serviço.

A desvinculação de instâncias de um grupo do Auto Scaling é semelhante a colocar instâncias em espera. Desanexar instâncias pode ser útil se você quiser anexá-las a um grupo diferente ou gerenciar as instâncias, como instâncias autônomas do EC2, e possivelmente encerrá-las. Para ter mais informações, consulte Desanexar ou anexar instâncias.

Como o estado de espera funciona

O estado de espera funciona da seguinte forma para ajudá-lo a remover temporariamente uma instância do seu grupo do Auto Scaling:

  1. Você coloca uma instância no estado de espera. A instância permanece nesse estado até que você saia do estado de espera.

  2. Se houver um grupo de destino de balanceador de carga ou um Classic Load Balancer anexado ao seu grupo do Auto Scaling, o registro da instância será cancelado no balanceador de carga. Se a descarga da conexão estiver habilitada para o balanceador de carga, o Elastic Load Balancing aguardará 300 segundos por padrão antes de concluir o processo de cancelamento do registro, o que ajuda a solicitações em andamento a serem concluídas.

  3. Você pode atualizar ou resolver problemas da instância.

  4. Você devolve a instância para serviço saindo do estado de espera.

  5. Se houver um grupo de destino de balanceador de carga ou um Classic Load Balancer anexado ao seu grupo do Auto Scaling, a instância será registrada no balanceador de carga.

Para obter mais informações sobre o ciclo de vida de instâncias em um grupo do Auto Scaling, consulte Ciclo de vida das instâncias do Amazon EC2 Auto Scaling.

Considerações

Veja a seguir algumas considerações ao mover instâncias para dentro e para fora do estado de espera:

  • Ao colocar uma instância em espera, você pode diminuir a capacidade desejada por meio dessa operação ou mantê-la no mesmo valor.

    • Se você optar por não reduzir a capacidade desejada do grupo do Auto Scaling, o Amazon EC2 Auto Scaling iniciará uma instância para substituir a que está em espera. A intenção é ajudar você a manter a capacidade para a aplicação enquanto uma ou mais instâncias estão em espera.

    • Se você optar por diminuir a capacidade desejada do grupo do Auto Scaling, isso impedirá a execução de uma instância para substituir a que está em espera.

  • Depois de colocar a instância novamente em serviço, a capacidade desejada é incrementada para refletir quantas instâncias estão no grupo do Auto Scaling.

  • Para aumentar (e diminuir), a nova capacidade desejada deve estar entre o tamanho mínimo e máximo do grupo. Caso contrário, haverá falha na operação.

  • Se, a qualquer momento, após colocar uma instância em espera ou retornar a instância ao serviço ao sair do estado de espera, descobrir que seu grupo do Auto Scaling não está equilibrado entre as zonas de disponibilidade, o Amazon EC2 Auto Scaling compensa reequilibrando as zonas de disponibilidade, a menos que você suspenda o processo. AZRebalance Para ter mais informações, consulte Suspender e retomar os processos do Amazon EC2 Auto Scaling.

  • Você é cobrado por instâncias que estão em estado de espera.

Status de integridade de uma instância em um estado de espera

O Amazon EC2 Auto Scaling não executa verificações de integridade em instâncias que estão em um estado de espera. Enquanto a instância está em estado de espera, seu status de integridade reflete o status que ela tinha antes de ser colocada em espera. O Amazon EC2 Auto Scaling não executa uma verificação de integridade na instância até você colocá-la em serviço.

Por exemplo, se você colocar uma instância íntegra em espera e, em seguida, terminá-la, o Amazon EC2 Auto Scaling continuará a relatar a instância como íntegra. Se você tentar colocar uma instância terminada que estava em espera em funcionamento novamente, o Amazon EC2 Auto Scaling executará uma verificação de integridade na instância, determinará que ela está sendo terminada e que não está íntegra e iniciará uma instância de substituição. Para ter mais informações, consulte Verificações de integridade para instâncias em um grupo do Auto Scaling.

Remova temporariamente uma instância configurando-a como espera

Use um dos procedimentos a seguir para tirar temporariamente uma instância de serviço colocando-a no estado de espera.

Console
Para remover uma instância temporariamente
  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.

  3. Na guia Instance management (Gerenciamento de instâncias), em Instances (Instâncias), selecione uma instância.

  4. Escolha Ações, Definir em espera.

  5. Na caixa de diálogo Colocar em espera, mantenha a caixa de seleção Substituir instância para iniciar uma instância substituta. Desmarque a caixa de seleção para diminuir a capacidade desejada.

  6. Quando a confirmação for solicitada, digite standby para confirmar a colocação da instância especificada no estado Standby e, em seguida, escolha Colocar em espera.

  7. Você pode atualizar ou solucionar problemas de uma instância, conforme necessário. Quando tiver concluído, continue com a próxima etapa para retornar a instância para serviço.

  8. Selecione a instância, escolha Ações, Definir como InService. Na caixa de InService diálogo Definir como, escolha Definir como InService.

AWS CLI

Para remover temporariamente uma instância do seu grupo de Auto Scaling, use os seguintes exemplos de comandos. Substitua cada espaço reservado para entrada do usuário por suas próprias informações.

Para remover uma instância temporariamente
  1. Use o describe-auto-scaling-instancescomando a seguir para identificar a instância a ser atualizada.

    aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg`]'

    O exemplo a seguir mostra a saída produzida quando você executa esse comando.

    Anote o ID da instância que você pretende remover do grupo. Você precisará desse ID na próxima etapa.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceId": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }
  2. Mude a instância para o estado Standby usando o seguinte comando enter-standby. A opção --should-decrement-desired-capacity reduz a capacidade desejada para que o grupo do Auto Scaling não execute uma instância de substituição.

    aws autoscaling enter-standby --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

    A seguir, uma exemplo de resposta.

    { "Activities": [ { "ActivityId": "3b1839fe-24b0-40d9-80ae-bcd883c2be32", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance to Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:31:26Z instance i-05b4f7d5be44822a6 was moved to standby in response to a user request, shrinking the capacity from 4 to 3.", "StartTime": "2023-12-15T21:31:26.150Z", "StatusCode": "InProgress", "Progress": 50, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  3. (Opcional) Verifique se a instância está em funcionamento Standby usando o describe-auto-scaling-instancescomando a seguir.

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    A seguir, uma exemplo de resposta. Observe que o status da instância agora é Standby.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "Standby" }, ... ] }
  4. Você pode atualizar ou solucionar problemas de uma instância, conforme necessário. Quando tiver concluído, continue com a próxima etapa para retornar a instância para serviço.

  5. Coloque a instância de volta em serviço usando o seguinte comando exit-standby.

    aws autoscaling exit-standby --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg

    A seguir, uma exemplo de resposta.

    { "Activities": [ { "ActivityId": "db12b166-cdcc-4c54-8aac-08c5935f8389", "AutoScalingGroupName": "my-asg", "Description": "Moving EC2 instance out of Standby: i-05b4f7d5be44822a6", "Cause": "At 2023-12-15T21:46:14Z instance i-05b4f7d5be44822a6 was moved out of standby in response to a user request, increasing the capacity from 3 to 4.", "StartTime": "2023-12-15T21:46:14.678Z", "StatusCode": "PreInService", "Progress": 30, "Details": "{\"Subnet ID\":\"subnet-c934b782\",\"Availability Zone\":\"us-west-2a\"}" } ] }
  6. (Opcional) Verifique se a instância está de volta em serviço usando o seguinte comando describe-auto-scaling-instances.

    aws autoscaling describe-auto-scaling-instances --instance-ids i-05b4f7d5be44822a6

    A seguir, uma exemplo de resposta. Observe que o status da instância é InService.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, ... ] }