Criação de um grupo do Auto Scaling a partir de uma instância existente usando a AWS CLI - Amazon EC2 Auto Scaling

Criação de um grupo do Auto Scaling a partir de uma instância existente usando a AWS CLI

Importante

Fornecemos informações sobre configurações de execução para clientes que ainda não migraram das configurações de execução para os modelos de execução. Para obter informações sobre a migração de grupos do Auto Scaling para modelos de execução, consulte Migre seus grupos do Auto Scaling para modelos de execução.

Se esta for a primeira vez que você cria um grupo do Auto Scaling, recomendamos que você use o console para criar um modelo de execução a partir de uma instância do EC2 existente. Em seguida, use o modelo de execução para criar um novo grupo do Auto Scaling. Para esse procedimento, consulte Criar um grupo do Auto Scaling usando o assistente de execução do Amazon EC2.

O procedimento a seguir mostra como criar um grupo do Auto Scaling especificando uma instância existente a ser usada como base para iniciar outras instâncias. Vários parâmetros são necessárias para criar uma instância do EC2, como o ID do imagem de máquina da Amazon (AMI), o tipo de instância, o par de chaves e o grupo de segurança. Todas essas informações também são usadas pelo Amazon EC2 Auto Scaling para iniciar instâncias em seu nome quando houver necessidade de escalar. Essas informações são armazenadas em um modelo de execução ou uma configuração de execução.

Quando você usa uma instância existente, o Amazon EC2 Auto Scaling cria um grupo do Auto Scaling que inicia instâncias com base em uma configuração de execução criada ao mesmo tempo. A nova configuração de execução tem o mesmo nome do grupo do Auto Scaling e inclui determinados detalhes de configuração da instância identificada.

Os detalhes de configuração a seguir são copiados da instância identificada para a configuração de execução:

  • ID de AMI

  • Tipo de instância

  • Par de chaves

  • Grupos de segurança

  • Tipo de endereço IP (público ou privado)

  • Perfil da instância do IAM, se aplicável

  • Monitoramento (verdadeiro ou falso)

  • Otimizado para o EBS (verdadeiro ou falso)

  • Configuração de locação, se executando dentro de uma VPC (compartilhada ou dedicada)

  • ID do kernel e ID do disco RAM, se aplicável

  • Dados do usuário, se especificado

  • Preço (máximo) do spot

A sub-rede VPC e a zona de disponibilidade são copiadas da instância identificada para a própria definição de recursos do grupo do Auto Scaling.

Se a instância identificada estiver em um grupo de posicionamento, o novo grupo do Auto Scaling iniciará instâncias no mesmo grupo de posicionamento da instância identificada. Como as configurações de execução não permitem que um grupo de posicionamento seja especificado, o grupo de posicionamento é copiado para o atributo PlacementGroup do novo grupo do Auto Scaling.

Os seguintes detalhes da configuração não são copiados da instância identificada:

  • Armazenamento: os dispositivos de bloco (volumes do EBS e volumes de armazenamento de instâncias) não são copiados da instância identificada. Em vez disso, o mapeamento de dispositivos de bloco criado como parte da criação da AMI determina quais dispositivos são usados.

  • Número de interfaces de rede: as interfaces de rede não são copiadas da instância identificada. Em vez disso, o Amazon EC2 Auto Scaling usa suas configurações padrão para criar uma interface de rede, que é a interface de rede primária (eth0).

  • Opções de metadados da instância: as configurações acessíveis de metadados, versão de metadados e limite de salto de resposta de token não são copiadas da instância identificada. Em vez disso, o Amazon EC2 Auto Scaling usa suas configurações padrão. Para obter mais informações, consulte Configurar as opções de metadados da instância.

  • Balanceadores de carga: se a instância identificada estiver registrada em um ou mais balanceadores de carga, as informações sobre o balanceador de carga não serão copiadas para o balanceador de carga nem no atributo do grupo de destino do novo grupo do Auto Scaling.

  • Etiquetas: se a instância identificada tiver etiquetas, elas não serão copiadas para o atributo de Tags do novo grupo do Auto Scaling.

Pré-requisitos

A instância do EC2 deve atender aos seguintes critérios:

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

  • A instância está no estado running.

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

Crie um grupo do Auto Scaling a partir de uma instância do EC2 (). (AWS CLI)

O procedimento a seguir mostra como usar um comando CLI para criar um grupo do Auto Scaling a partir de uma instância do EC2.

Esse procedimento não adiciona a instância ao grupo do Auto Scaling. Para que a instância seja anexada, é necessário executar o comando attach-instances após a criação do grupo do Auto Scaling.

Antes de começar, localize o ID da instância do EC2 usando o console do Amazon EC2 ou o comando describe-instances.

Para usar a instância atual como modelo
  • Use o seguinte comando create-auto-scaling-group para criar um grupo do Auto Scaling, my-asg-from-instance, a partir da instância do EC2 i-123456789abcdefg0.

    aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg-from-instance \ --instance-id i-123456789abcdefg0 --min-size 1 --max-size 2 --desired-capacity 2
Para verificar se seu grupo do Auto Scaling executou instâncias
  • Use o seguinte comando describe-auto-scaling-groups para verificar se o grupo do Auto Scaling foi criado com êxito.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg-from-instance

    O exemplo de reposta a seguir mostra que a capacidade desejada do grupo é 2, o grupo tem 2 instâncias em execução e a configuração de execução é chamada my-asg-from-instance.

    { "AutoScalingGroups":[ { "AutoScalingGroupName":"my-asg-from-instance", "AutoScalingGroupARN":"arn", "LaunchConfigurationName":"my-asg-from-instance", "MinSize":1, "MaxSize":2, "DesiredCapacity":2, "DefaultCooldown":300, "AvailabilityZones":[ "us-west-2a" ], "LoadBalancerNames":[], "TargetGroupARNs":[], "HealthCheckType":"EC2", "HealthCheckGracePeriod":0, "Instances":[ { "InstanceId":"i-34567890abcdef012", "InstanceType":"t2.micro", "AvailabilityZone":"us-west-2a", "LifecycleState":"InService", "HealthStatus":"Healthy", "LaunchConfigurationName":"my-asg-from-instance", "ProtectedFromScaleIn":false }, { "InstanceId":"i-012345abcdefg6789", "InstanceType":"t2.micro", "AvailabilityZone":"us-west-2a", "LifecycleState":"InService", "HealthStatus":"Healthy", "LaunchConfigurationName":"my-asg-from-instance", "ProtectedFromScaleIn":false } ], "CreatedTime":"2020-10-28T02:39:22.152Z", "SuspendedProcesses":[ ], "VPCZoneIdentifier":"subnet-0abc1234", "EnabledMetrics":[ ], "Tags":[ ], "TerminationPolicies":[ "Default" ], "NewInstancesProtectedFromScaleIn":false, "ServiceLinkedRoleARN":"arn", "TrafficSources":[] } ] }
Para visualizar a configuração de execução
  • Use o comando describe-launch-configurations a seguir para visualizar os detalhes da configuração de execução.

    aws autoscaling describe-launch-configurations --launch-configuration-names my-asg-from-instance

    A seguir está um exemplo de saída:

    { "LaunchConfigurations":[ { "LaunchConfigurationName":"my-asg-from-instance", "LaunchConfigurationARN":"arn", "ImageId":"ami-234567890abcdefgh", "KeyName":"my-key-pair-uswest2", "SecurityGroups":[ "sg-12abcdefgh3456789" ], "ClassicLinkVPCSecurityGroups":[ ], "UserData":"", "InstanceType":"t2.micro", "KernelId":"", "RamdiskId":"", "BlockDeviceMappings":[ ], "InstanceMonitoring":{ "Enabled":true }, "CreatedTime":"2020-10-28T02:39:22.321Z", "EbsOptimized":false, "AssociatePublicIpAddress":true } ] }
Para terminar as instâncias
  • Você pode terminar a instância se não precisar mais dela. O seguinte comando terminate-instances termina a instância i-123456789abcdefg0.

    aws ec2 terminate-instances --instance-ids i-123456789abcdefg0

    Depois de terminar uma instância do Amazon EC2, você não poderá reiniciar a instância. Depois do término, seus dados são excluídos e o volume não pode mais ser conectado a nenhuma instância. Para saber mais sobre como terminar instâncias, consulte Terminate an instance (Como terminar uma instância) no Guia do usuário do Amazon EC2 para instâncias do Linux.