Desanexar ou anexar instâncias - 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á.

Desanexar ou anexar instâncias

Você pode separar instâncias do seu grupo de Auto Scaling. Depois que uma instância é desanexada, ela se torna independente e pode ser gerenciada sozinha ou anexada a um grupo diferente do Auto Scaling, separado do grupo original ao qual ela pertencia. Isso pode ser útil, por exemplo, quando você deseja realizar testes usando instâncias existentes que já estão executando seu aplicativo.

Este tópico fornece instruções sobre como desanexar e anexar instâncias. Ao anexar instâncias, você também pode usar uma instância existente em vez de uma desanexada.

Em vez de desanexar e reanexar uma instância ao mesmo grupo, recomendamos usar o procedimento de espera para remover temporariamente a instância do grupo. Para ter mais informações, consulte Remover temporiamente instâncias do grupo do Auto Scaling.

Considerações sobre a separação de instâncias

Ao separar instâncias, lembre-se dos seguintes pontos:

  • Você pode desanexar uma instância somente quando ela estiver no InService estado.

  • Depois de desanexar uma instância, ela continua em execução e incorrendo em cobranças. Para evitar cobranças desnecessárias, reconecte ou encerre as instâncias desconectadas quando elas não forem mais necessárias.

  • Você pode optar por diminuir a capacidade desejada pelo número de instâncias que você está desanexando. Se você optar por não diminuir a capacidade, o Amazon EC2 Auto Scaling lançará novas instâncias para substituir as desconectadas e manter a capacidade desejada.

  • Se o número de instâncias que você está separando fizer com que o grupo de Auto Scaling fique abaixo de sua capacidade mínima, você deverá diminuir a capacidade mínima.

  • Se você separar várias instâncias da mesma zona de disponibilidade sem diminuir a capacidade desejada, o grupo se reequilibrará, a menos que você suspenda o processo. AZRebalance Para ter mais informações, consulte Suspender e retomar os processos do Amazon EC2 Auto Scaling.

  • Se você desvincular uma instância de um grupo do Auto Scaling que tenha um grupo de destino de balanceador de carga ou um Classic Load Balancer anexado, a instância será cancelada no balanceador de carga. Se a drenagem da conexão (atraso no cancelamento do registro) estiver habilitada para seu balanceador de carga, o Amazon EC2 Auto Scaling aguardará a conclusão das solicitações em andamento.

nota

Se você estiver desanexando instâncias que estão no estado Standby, adote cautela. A tentativa de desanexar instâncias após colocá-las no estado Standby pode fazer com que outras instâncias sejam encerradas inesperadamente.

Considerações para anexar instâncias

Observe o seguinte ao anexar instâncias:

  • O Amazon EC2 Auto Scaling trata as instâncias anexadas da mesma forma que as instâncias lançadas pelo próprio grupo. Isso significa que as instâncias anexadas podem ser encerradas durante eventos de expansão se forem selecionadas.

  • Quando você anexa instâncias, a capacidade desejada do grupo aumente de acordo com o número de instâncias que estão sendo anexadas. Se a capacidade desejada após a adição das novas instâncias exceder o tamanho máximo do grupo, a solicitação para anexar mais instâncias falhará.

  • Se você adicionar instâncias ao seu grupo causando uma distribuição desigual entre as zonas de disponibilidade, o Amazon EC2 Auto Scaling reequilibra o grupo para restabelecer uma distribuição uniforme, a menos que você suspenda o processo. AZRebalance Para ter mais informações, consulte Suspender e retomar os processos do Amazon EC2 Auto Scaling.

  • Se você anexar uma instância a um grupo do Auto Scaling que tenha um grupo de destino de balanceador de carga ou um Classic Load Balancer anexado, a instância será registrada no balanceador de carga.

Para que uma instância seja anexada, ela deve atender aos seguintes critérios:

  • A instância está no estado running com o Amazon EC2.

  • A AMI usada para ativar a instância ainda deve existir.

  • A instância não é um membro de outro grupo do Auto Scaling.

  • A instância é iniciada em uma das zonas de disponibilidade definidas no grupo Auto Scaling.

  • Se o grupo do Auto Scaling tiver um grupo de destino de balanceador de carga ou Classic Load Balancer anexado, a instância e o balanceador de carga deverão estar ambos na mesma VPC.

Mova uma instância para um grupo diferente usando desanexar e anexar

Use um dos procedimentos a seguir para separar uma instância do seu grupo de Auto Scaling e anexá-la a um grupo de Auto Scaling diferente.

Para criar um novo grupo de Auto Scaling a partir de uma instância separada, consulte Criar um grupo do Auto Scaling usando parâmetros de uma instância existente (não recomendado, cria uma configuração de execução).

Console
Para separar uma instância de um grupo do Auto Scaling
  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 seu 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 e escolha Actions (Ações) e Detach (Desvincular).

  4. Na caixa de diálogo Desanexar instância, mantenha a caixa de seleção Substituir instância marcada para iniciar uma instância substituta. Desmarque a caixa de seleção para diminuir a capacidade desejada.

  5. Quando a confirmação for solicitada, digite detach para confirmar a exclusão da instância especificada do grupo do Auto Scaling e, em seguida, escolha Desvincular instância.

Agora você pode anexar a instância a um grupo diferente do Auto Scaling.

Para anexar uma instância a um grupo do Auto Scaling
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. (Opcional) No painel de navegação, em Auto Scaling, escolha Grupos do Auto Scaling. Selecione o grupo do Auto Scaling e verifique se o tamanho máximo do grupo do Auto Scaling é grande o suficiente para que você possa adicionar outra instância. Caso contrário, na guia Detalhes aumente a capacidade máxima.

  3. No painel de navegação, em Instances (Instâncias), escolha Instances (Instâncias) e selecione uma instância.

  4. Escolha Actions (Ações), Instance settings (Configurações da instância), Attach to Auto Scaling Group (Anexar ao grupo do Auto Scaling).

  5. Na página Attach to Auto Scaling group (Anexar ao grupo do Auto Scaling), em Auto Scaling Group (Grupo do Auto Scaling), selecione o grupo do Auto Scaling e, em seguida, escolha Attach (Anexar).

  6. Se a instância não atender aos critérios, você receberá uma mensagem de erro com os detalhes. Por exemplo, a instância pode não estar na mesma zona de disponibilidade que o grupo do Auto Scaling. Escolha Fechar e tente novamente com um grupo de Auto Scaling que atenda aos critérios.

AWS CLI

Para desanexar e anexar uma instância, use os comandos de exemplo a seguir. Substitua cada espaço reservado para entrada do usuário por suas próprias informações.

Para separar uma instância de um grupo do Auto Scaling
  1. Para descrever as instâncias atuais, use o describe-auto-scaling-instancescomando a seguir.

    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", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ] }
  2. Para desanexar uma instância sem diminuir a capacidade desejada, use o comando detach-instances a seguir.

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg

    Para separar uma instância e diminuir a capacidade desejada, inclua a --should-decrement-desired-capacity opção.

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

Agora você pode anexar a instância a um grupo diferente do Auto Scaling.

Para anexar uma instância a um grupo do Auto Scaling
  1. Para anexar a instância a um grupo diferente do Auto Scaling, use o comando attach-instances a seguir.

    aws autoscaling attach-instances --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg-for-testing
  2. Para verificar o tamanho do grupo Auto Scaling depois de anexar uma instância, use o comando a seguir. describe-auto-scaling-groups

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg-for-testing

    O exemplo de resposta a seguir mostra que o grupo tem duas instâncias em execução, uma das quais é a instância que você anexou.

    { "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg-for-testing", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, ... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-00dcdfffdf5175890", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], ... } ] }