Anexar instâncias do EC2 a seu grupo do Auto Scaling - Amazon EC2 Auto Scaling

Anexar instâncias do EC2 a seu grupo do Auto Scaling

O Amazon EC2 Auto Scaling oferece a opção de anexar uma ou mais instâncias do EC2 aos seu grupo existente do Auto Scaling. Depois que uma instância é anexada, ela é considerada parte do grupo do Auto Scaling.

Ao anexar as instâncias, considere o seguinte:

  • 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 o número de instâncias que estão sendo conectadas mais a capacidade desejada exceder o tamanho máximo do grupo, a solicitação falha.

  • 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 é executada em uma das zonas de disponibilidade definidas em seu grupo do 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.

Anexar uma instância (console)

Siga o procedimento a seguir para desanexar uma instância de seu grupo do Auto Scaling.

Para anexar uma instância a um grupo do Auto Scaling existente
  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 Close (Fechar) e tente novamente com uma instância que atenda aos critérios.

Anexar uma instância (AWS CLI)

Siga o procedimento a seguir para desanexar uma instância de seu grupo do Auto Scaling.

Os exemplos usam um grupo do Auto Scaling com a seguinte configuração:

  • Nome do grupo do Auto Scaling = my-asg

  • Tamanho mínimo = 1

  • Tamanho máximo = 5

  • Capacidade desejada = 2

Para anexar uma instância a um grupo do Auto Scaling
  1. Descreva um determinado grupo do Auto Scaling usando o seguinte comando describe-auto-scaling-groups.

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

    O exemplo de resposta a seguir mostra que a capacidade desejada é 2 e que o grupo tem duas instâncias em execução.

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 2 } ] }
  2. Anexe uma instância ao grupo do Auto Scaling usando o seguinte comando attach-instances.

    aws autoscaling attach-instances --instance-ids i-0787762faf1c28619 --auto-scaling-group-name my-asg
  3. Para verificar se a instância está anexada, use o seguinte comando describe-auto-scaling-groups.

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

    O exemplo de resposta a seguir mostra que a capacidade desejada aumentou em 1 instância (para a nova capacidade de 3) e que há uma nova instância, i-0787762faf1c28619,

    { "AutoScalingGroups": [ { "AutoScalingGroupARN": "arn", "ServiceLinkedRoleARN": "arn", "TargetGroupARNs": [], "SuspendedProcesses": [], "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "Tags": [], "EnabledMetrics": [], "LoadBalancerNames": [], "AutoScalingGroupName": "my-asg", "DefaultCooldown": 300, "MinSize": 1, "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "HealthStatus": "Healthy", "LifecycleState": "Pending" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], "MaxSize": 5, "VPCZoneIdentifier": "subnet-c87f2be0", "HealthCheckGracePeriod": 300, "TerminationPolicies": [ "Default" ], "CreatedTime": "2019-03-18T23:30:42.611Z", "AvailabilityZones": [ "us-west-2a" ], "HealthCheckType": "EC2", "NewInstancesProtectedFromScaleIn": false, "DesiredCapacity": 3 } ] }