Exemplos para criar e gerenciar modelos de lançamento com o AWS CLI - 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á.

Exemplos para criar e gerenciar modelos de lançamento com o AWS CLI

Você pode criar e gerenciar modelos de lançamento por meio do AWS Management Console, AWS Command Line Interface (AWS CLI) ouSDKs. Esta seção mostra exemplos de criação e gerenciamento de modelos de lançamento para o Amazon EC2 Auto Scaling a partir do. AWS CLI

Exemplo de uso

{ "LaunchTemplateName": "my-template-for-auto-scaling", "VersionDescription": "test description", "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "Monitoring": { "Enabled": true }, "Placement": { "Tenancy": "dedicated" }, "CreditSpecification": { "CpuCredits": "unlimited" }, "MetadataOptions": { "HttpTokens": "required", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled" } } }

Criar um modelo de execução básico

Para criar um modelo de lançamento básico, use o create-launch-templatecomando da seguinte forma, com estas modificações:

  • ami-04d5cc9b88exampleSubstitua pelo ID AMI do qual iniciar as instâncias.

  • t2.microSubstitua por um tipo de instância compatível com o AMI que você especificou.

Este exemplo cria um modelo de lançamento com o nome my-template-for-auto-scaling. Se as instâncias criadas por esse modelo de execução forem iniciadas por padrãoVPC, elas receberão um endereço IP público por padrão. Se as instâncias forem executadas de forma não padrãoVPC, elas não receberão um endereço IP público por padrão.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Para obter mais informações sobre como citar parâmetros JSON formatados, consulte Usando aspas com cadeias de caracteres no Guia do AWS CLI Usuário.AWS Command Line Interface

Como alternativa, você pode especificar os parâmetros JSON formatados em um arquivo de configuração.

O exemplo a seguir cria um modelo de execução básico, fazendo referência a um arquivo de configuração para valores de parâmetro de modelo de execução.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Conteúdo de config.json:

{ "ImageId":"ami-04d5cc9b88example", "InstanceType":"t2.micro" }

Especificar etiquetas que marcam instâncias ao iniciar

O exemplo a seguir adiciona uma tag (por exemplo, purpose=webserver) a instâncias na execução.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose","Value":"webserver"}]}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
nota

Se você especificar tags de instância em seu modelo de execução e optar por propagar tags de seu grupo do Auto Scaling para suas instâncias, todas as tags serão mescladas. Se a mesma chave da etiqueta for especificada para uma etiqueta no modelo de execução e uma etiqueta no grupo do Auto Scaling, então, o valor da etiqueta do grupo terá precedência.

Especifique uma IAM função a ser passada para as instâncias

O exemplo a seguir especifica o nome do perfil da instância associado à IAM função a ser transmitida às instâncias na inicialização. Para obter mais informações, consulte IAMfunção para aplicativos que são executados em EC2 instâncias da Amazon.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile"},"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Atribuir um endereço IP público

O create-launch-templateexemplo a seguir configura o modelo de execução para atribuir endereços públicos às instâncias executadas de forma não VPC padrão.

nota

Ao especificar uma interface de rede, especifique um valor Groups que corresponda aos grupos de segurança nos VPC quais seu grupo de Auto Scaling executará instâncias. Especifique as VPC sub-redes como propriedades do grupo Auto Scaling.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Especificar um script de dados do usuário que configura instâncias ao iniciar

O exemplo a seguir especifica um script de dados do usuário como uma string codificada em base64 que configura instâncias na execução. O create-launch-templatecomando requer dados do usuário codificados em base64.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"UserData":"IyEvYmluL2Jhc...","ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Especificar um mapeamento de dispositivos de blocos

O create-launch-templateexemplo a seguir cria um modelo de execução com um mapeamento de dispositivos de blocos: um EBS volume de 22 gigabytes mapeado para. /dev/xvdcz O /dev/xvdcz volume usa o tipo de volume General Purpose SSD (gp2) e é excluído ao encerrar a instância à qual está conectado.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"/dev/xvdcz","Ebs":{"VolumeSize":22,"VolumeType":"gp2","DeleteOnTermination":true}}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Especificar hosts dedicados para trazer licenças de software de fornecedores externos

Se você especificar locação de host, você pode especificar um grupo de recursos de host e uma configuração licenças de License Manager para trazer licenças de software qualificáveis de fornecedores externos. Em seguida, você pode usar as licenças nas EC2 instâncias usando o create-launch-templatecomando a seguir.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn"}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Especificar uma interface de rede existente

O create-launch-templateexemplo a seguir configura a interface de rede primária para usar uma interface de rede existente.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93","DeleteOnTermination":false}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Criar várias interfaces de rede

O create-launch-templateexemplo a seguir adiciona uma interface de rede secundária. A interface de rede primária tem um índice de dispositivo de 0, e a interface de rede secundária tem um índice de dispositivo de 1.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f88example"],"DeleteOnTermination":true},{"DeviceIndex":1,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Se você usar um tipo de instância compatível com várias placas de rede e Elastic Fabric Adapters (EFAs), poderá adicionar uma interface secundária a uma placa de rede secundária e habilitá-la EFA usando o create-launch-templatecomando a seguir. Para obter mais informações, consulte Adicionar um EFA a um modelo de lançamento no Guia EC2 do usuário da Amazon.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true},{"NetworkCardIndex":1,"DeviceIndex":1,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true}],"ImageId":"ami-09d95fab7fexample","InstanceType":"p4d.24xlarge"}'
Atenção

O tipo de instância p4d.24xlarge incorre em custos mais altos do que os outros exemplos desta seção. Para obter mais informações sobre preços para instâncias P4d, consulte Preços de instâncias EC2P4d da Amazon.

nota

Anexar várias interfaces de rede da mesma sub-rede a uma instância pode introduzir roteamento assimétrico, especialmente em instâncias que us~em uma variante do Linux que não seja da Amazon. Se você precisar desse tipo de configuração, deverá configurar a interface de rede secundária dentro do sistema operacional. Para ver um exemplo, consulte Como posso fazer minha interface de rede secundária funcionar na minha EC2 instância do Ubuntu? no Centro de AWS Conhecimento.

Gerenciar modelos de execução

AWS CLI Isso inclui vários outros comandos que ajudam você a gerenciar seus modelos de lançamento.

Listar e descrever modelos de execução

Você pode usar dois AWS CLI comandos para obter informações sobre seus modelos de lançamento: describe-launch-templatesdescribe-launch-template-versionse.

O describe-launch-templatescomando permite que você obtenha uma lista de qualquer um dos modelos de lançamento que você criou. Você pode usar uma opção para filtrar resultados em um nome de modelo de execução, tempo de criação, chave de tag ou combinação de chave-valor de tag. Esse comando retorna informações resumidas sobre qualquer um dos modelos de execução, incluindo o identificador de modelo de execução, a versão mais recente e a versão padrão.

O exemplo a seguir fornece um resumo do modelo de execução especificado.

aws ec2 describe-launch-templates --launch-template-names my-template-for-auto-scaling

O seguinte é um exemplo de resposta.

{ "LaunchTemplates": [ { "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2020-02-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } ] }

Se você não usar a opção --launch-template-names para limitar a saída a um modelo de execução, informações sobre todos os modelos de execução serão retornadas.

O describe-launch-template-versionscomando a seguir fornece informações que descrevem as versões do modelo de lançamento especificado.

aws ec2 describe-launch-template-versions --launch-template-id lt-068f72b729example

O seguinte é um exemplo de resposta.

{ "LaunchTemplateVersions": [ { "VersionDescription": "version1", "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "LaunchTemplateData": { "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "purpose", "Value": "webserver" } ] } ], "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "DeviceIndex": 0, "DeleteOnTermination": true, "Groups": [ "sg-903004f88example" ], "AssociatePublicIpAddress": true } ] }, "DefaultVersion": true, "CreateTime": "2020-02-28T19:52:27.000Z" } ] }

Criar uma versão de modelo de execução

O create-launch-template-versioncomando a seguir cria uma nova versão do modelo de lançamento com base na versão 1 do modelo de lançamento e especifica uma AMI ID diferente.

aws ec2 create-launch-template-version --launch-template-id lt-068f72b729example --version-description version2 \ --source-version 1 --launch-template-data "ImageId=ami-c998b6b2example"

Para definir a versão padrão do modelo de lançamento, use o modify-launch-templatecomando.

Excluir uma versão de modelo de execução

O delete-launch-template-versionscomando a seguir exclui a versão do modelo de lançamento especificado.

aws ec2 delete-launch-template-versions --launch-template-id lt-068f72b729example --versions 1

Excluir um modelo de execução

Se você não precisar mais de um modelo de lançamento, poderá excluí-lo usando o delete-launch-templatecomando a seguir. A exclusão de um modelo de execução excluirá todas as suas versões.

aws ec2 delete-launch-template --launch-template-id lt-068f72b729example

Atualizar um grupo do Auto Scaling para usar um modelo de execução

Você pode usar o update-auto-scaling-groupcomando para adicionar um modelo de lançamento a um grupo de Auto Scaling existente.

Atualizar um grupo do Auto Scaling para usar a versão mais recente de um modelo de execução

O update-auto-scaling-groupcomando a seguir atualiza o grupo de Auto Scaling especificado para usar a versão mais recente do modelo de execução especificado.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateId=lt-068f72b729example,Version='$Latest'

Atualizar um grupo do Auto Scaling para usar uma versão específica de um modelo de execução

O update-auto-scaling-groupcomando a seguir atualiza o grupo de Auto Scaling especificado para usar uma versão específica do modelo de execução especificado.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='2'