Criar um modelo de execução do Amazon EC2 - Amazon Elastic Compute Cloud

Criar um modelo de execução do Amazon EC2

Você pode criar um modelo de execução do Amazon EC2 especificando seus próprios valores para os parâmetros de configuração da instância ou obtendo os valores de um modelo de execução existente ou de uma instância do Amazon EC2.

Você não precisa especificar um valor para cada parâmetro no modelo de execução; você só precisa especificar um parâmetro de configuração da instância para criar um modelo de execução. Para indicar parâmetros que você opta por não especificar, selecione Não incluir no modelo de execução ao usar o console. Ao usar uma ferramenta de linha de comandos, não inclua os parâmetros para indicar que você está optando por não especificá-los no modelo de execução.

Se você quiser especificar uma AMI no modelo de execução, você pode selecionar uma AMI ou especificar um parâmetro do Systems Manager que aponte para uma AMI na execução da instância.

Quando uma instância é executada com um modelo de execução, os valores especificados no modelo de execução são usados para configurar os parâmetros de instância correspondentes. Se um valor não for especificado no modelo de execução, o valor padrão para o parâmetro de instância correspondente será usado.

Criar um modelo de execução especificando parâmetros

Para criar um modelo de execução, especifique o nome do modelo de execução e, pelo menos, um parâmetro de configuração de instância.

Para uma descrição de cada parâmetro, consulte Referência para parâmetros de configuração de instâncias do Amazon EC2.

Console
Como criar um modelo de execução usando o console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Launch Templates (Modelos de execução) e Create launch template (Criar modelo de execução).

  3. Em Nome e descrição do modelo de execução, faça o seguinte:

    1. Em Device template name (Nome do modelo de dispositivo), insira um nome descritivo para o modelo.

    2. Em Template version description (Descrição da versão do modelo), forneça uma descrição breve da versão do modelo de execução.

    3. Para marcar o modelo de execução na criação, expanda Tags do modelo, escolha Adicionar nova tag e insira um par de chave e valor de tag. Escolha Adicionar nova tag novamente para cada tag adicional a acrescentar.

      nota

      Para marcar os recursos que são criados quando uma instância é executada, você deve especificar as etiquetas em Resource tags (Etiquetas de recursos). Para obter mais informações, consulte a Etapa 9 neste procedimento.

  4. Em Imagens de SO e aplicações (Amazon Machine Image), você pode manter a opção Não incluir no modelo de execução selecionada, ou escolher o sistema operacional (SO) da instância, e então escolher uma AMI. Como alternativa, você pode especificar um parâmetro do Systems Manager em vez de especificar uma AMI. Para ter mais informações, consulte Use um parâmetro de Systems Manager em vez de um ID de AMI.

    Uma AMI é um modelo que contém o sistema operacional e o software necessários para executar uma instância.

  5. Em Tipo de instância, você pode manter a opção Não incluir no modelo de execução selecionada, pode selecionar um tipo de instância ou pode especificar atributos de instância e deixar que o Amazon EC2 identifique os tipos de instância com esses atributos.

    nota

    A especificação de atributos de instância é compatível somente quando o modelo de execução é usado pelos grupos do Auto Scaling, pelo EC2 Fleet e pela frota spot para executar instâncias. Para obter mais informações, consulte Creating an Auto Scaling group using attribute-based instance type selection e Especificar atributos para seleção de tipo de instância para frota do EC2 ou frota spot.

    Caso planeje usar o modelo de execução no assistente de inicialização de instâncias ou com a API RunInstances, você deve especificar os atributos do tipo de instância.

    O tipo de instância determina a configuração de hardware (CPU, memória, armazenamento e capacidade de rede) e o tamanho do computador host usado para uma instância.

    Se você não tiver certeza de qual tipo de instância escolher, você pode fazer o seguinte:

    • Escolha Comparar tipos de instâncias para comparar diferentes tipos de instâncias pelos seguintes atributos: número de vCPUs, arquitetura, quantidade de memória (GiB), quantidade de armazenamento (GB), tipo de armazenamento e performance de rede.

    • Escolha Obter conselho para obter orientações e sugestões de tipos de instância no localizador de tipo de instâncias do EC2. Para ter mais informações, consulte Obtenha recomendações do localizador de tipo de instância do EC2.

    nota

    Se sua Conta da AWS tiver menos de 12 meses, você poderá usar o Amazon EC2 no nível gratuito ao escolher o tipo de instância t2.micro ou o tipo de instância t3.micro em regiões nas quais o tipo t2.micro não está disponível. Lembre-se de que, quando você executa uma instância t3.micro, o padrão é o modo Ilimitado, o que pode gerar cobranças adicionais com base no uso da CPU. Se um tipo de instância for qualificada para o nível gratuito, ela será rotulada Free tier eligible (Qualificada ao nível gratuito).

  6. Em Par de chaves (login), em Nome do par de chaves, mantenha a opção Não incluir no modelo de execução selecionada ou escolha um par de chaves existente ou crie um novo.

  7. Em Configurações de rede, você pode manter a opção Não incluir no modelo de execução selecionada ou especificar valores para as várias configurações de rede.

  8. Em Configurar armazenamento, se você especificar uma AMI no modelo de execução, a AMI incluirá um ou mais volumes de armazenamento, incluindo o volume raiz (Volume 1 [Raiz da AMI]). Você opcionalmente especificar volumes adicionais a serem anexados à instância. Para adicionar um novo volume, escolha Add new volume (Adicionar novo volume).

  9. Em Tags de recursos, para marcar os recursos que são criados quando uma instância é executada, escolha Adicionar tag e, em seguida, insira um par de chave e valor de tag. Em Resource types (Tipos de recursos), especifique os recursos para marcar na criação. É possível especificar a mesma etiqueta para todos os recursos ou especificar etiquetas diferentes para recursos diferentes. Escolha Add tag (Adicionar tag) para cada tag adicional a acrescentar.

    É possível especificar etiquetas tags para os seguintes recursos que são criados quando um modelo de inicialização é usado:

    • Instâncias

    • Volumes

    • Elastic Graphics

    • Solicitações de instância Spot

    • Interfaces de rede

    nota

    Para marcar o modelo de execução em si, é necessário especificar as tags em Template tags (Etiquetas de modelo). Para obter mais informações, consulte a Etapa 3 neste procedimento.

  10. Em Detalhes avançados, expanda a seção para visualizar os campos e, opcionalmente, especifique quaisquer parâmetros adicionais para a instância.

  11. Use o painel Resumo para analisar a configuração do modelo de execução. É possível navegar para qualquer seção ao escolher um link e, em seguida, realizar as alterações necessárias.

  12. Quando você estiver pronto para criar seu modelo de execução, escolha Create launch template (Criar modelo de execução).

AWS CLI

O exemplo apresentado a seguir usa o comando create-launch-template para criar um modelo de execução com o nome e a configuração da instância especificados.

aws ec2 create-launch-template \ --launch-template-name TemplateForWebServer \ --version-description WebVersion1 \ --tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose,Value=production}]' \ --launch-template-data file://template-data.json

Veja a seguir um exemplo em JSON que especifica os dados do modelo de execução para a configuração da instância. Salve o formato JSON em um arquivo e inclua-o no parâmetro --launch-template-data, conforme mostrado no comando de exemplo.

{ "NetworkInterfaces": [{ "AssociatePublicIpAddress": true, "DeviceIndex": 0, "Ipv6AddressCount": 1, "SubnetId": "subnet-7b16de0c" }], "ImageId": "ami-8c1be5f6", "InstanceType": "r4.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key":"Name", "Value":"webserver" }] }], "CpuOptions": { "CoreCount":4, "ThreadsPerCore":2 } }

O seguinte é um exemplo de saída.

{ "LaunchTemplate": { "LatestVersionNumber": 1, "LaunchTemplateId": "lt-01238c059e3466abc", "LaunchTemplateName": "TemplateForWebServer", "DefaultVersionNumber": 1, "CreatedBy": "arn:aws:iam::123456789012:root", "CreateTime": "2017-11-27T09:13:24.000Z" } }
PowerShell

O exemplo apresentado a seguir usa o cmdlet New-EC2LaunchTemplate para criar um modelo de execução com o nome e a configuração da instância especificados.

$launchTemplateData = [Amazon.EC2.Model.RequestLaunchTemplateData]@{ ImageId = 'ami-8c1be5f6' InstanceType = 'r4.4xlarge' NetworkInterfaces = @( [Amazon.EC2.Model.LaunchTemplateInstanceNetworkInterfaceSpecificationRequest]@{ AssociatePublicIpAddress = $true DeviceIndex = 0 Ipv6AddressCount = 1 SubnetId = 'subnet-7b16de0c' } ) TagSpecifications = @( [Amazon.EC2.Model.LaunchTemplateTagSpecificationRequest]@{ ResourceType = 'instance' Tags = [Amazon.EC2.Model.Tag]@{ Key = 'Name' Value = 'webserver' } } ) CpuOptions = [Amazon.EC2.Model.LaunchTemplateCpuOptionsRequest]@{ CoreCount = 4 ThreadsPerCore = 2 } } $tagSpecificationData = [Amazon.EC2.Model.TagSpecification]@{ ResourceType = 'launch-template' Tags = [Amazon.EC2.Model.Tag]@{ Key = 'purpose' Value = 'production' } } New-EC2LaunchTemplate -LaunchTemplateName 'TemplateForWebServer' -VersionDescription 'WebVersion1' -LaunchTemplateData $launchTemplateData -TagSpecification $tagSpecificationData

O seguinte é um exemplo de saída.

CreatedBy : arn:aws:iam::123456789012:root CreateTime : 9/19/2023 16:57:55 DefaultVersionNumber : 1 LatestVersionNumber : 1 LaunchTemplateId : lt-01238c059eEXAMPLE LaunchTemplateName : TemplateForWebServer Tags : {purpose}

Criar um modelo de execução a partir de um modelo de execução existente

É possível clonar um modelo de inicialização existente e ajustar os parâmetros para criar um novo modelo de inicialização. No entanto, você só pode fazer isso ao usar o console do Amazon EC2. A AWS CLI não é compatível a clonagem de um modelo. Para uma descrição de cada parâmetro, consulte Referência para parâmetros de configuração de instâncias do Amazon EC2.

Console
Para criar um modelo de inicialização a partir de um modelo de inicialização existente
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Launch Templates (Modelos de execução) e Create launch template (Criar modelo de execução).

  3. Em Device template name (Nome do modelo de dispositivo), insira um nome descritivo para o modelo.

  4. Em Template version description (Descrição da versão do modelo), forneça uma descrição breve da versão do modelo de execução.

  5. Para marcar o modelo de execução na criação, expanda Tags de modelo, escolha Adicionar nova tag e então insira um par de chave e valor de tag.

  6. Expanda o Modelo de origem e, em Nome do modelo de execução, escolha um modelo de execução no qual o novo modelo de execução se baseará.

  7. Em Source template version (Versão do modelo de origem), escolha a versão do modelo de execução no qual o novo modelo de execução se baseará.

  8. Ajuste todos os parâmetros de execução quando necessário e escolha Create launch template (Criar modelo de execução).

Criar um modelo de execução a partir de uma instância

Você pode clonar os parâmetros de uma instância existente do Amazon EC2 e ajustá-los para criar um modelo de execução. Para uma descrição de cada parâmetro, consulte Referência para parâmetros de configuração de instâncias do Amazon EC2.

Console
Para criar um modelo de inicialização a partir de uma instância
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias).

  3. Selecione a instância e escolha Ações, Imagem e modelos, Criar modelo da instância.

  4. Forneça um nome, uma descrição e tags e ajuste os parâmetros de execução conforme necessário.

    nota

    Quando você cria um modelo de execução de uma instância, os IDs da interface de rede da instância e os endereços IP não são incluídos no modelo.

  5. Escolha Create launch template (Criar modelo de execução).

AWS CLI

É possível usar a AWS CLI para criar um modelo de execução de uma instância existente ao obter os dados do modelo de execução primeiro e depois criar um modelo de execução usando os dados dele.

Para obter dados de modelo de inicialização de uma instância
  • Use o comando get-launch-template-data e especifique o ID da instância. É possível usar o resultado como base para criar um novo modelo de execução ou uma versão de modelo de execução. Por padrão, o resultado inclui um objeto LaunchTemplateData de nível superior, que não pode ser especificado nos dados do modelo de execução. Use a opção --query para excluir este objeto.

    aws ec2 get-launch-template-data \ --instance-id i-0123d646e8048babc \ --query "LaunchTemplateData"

    A seguir está um exemplo de saída.

    { "Monitoring": {}, "ImageId": "ami-8c1be5f6", "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": true } } ], "EbsOptimized": false, "Placement": { "Tenancy": "default", "GroupName": "", "AvailabilityZone": "us-east-1a" }, "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Description": "", "NetworkInterfaceId": "eni-35306abc", "PrivateIpAddresses": [ { "Primary": true, "PrivateIpAddress": "10.0.0.72" } ], "SubnetId": "subnet-7b16de0c", "Groups": [ "sg-7c227019" ], "Ipv6Addresses": [ { "Ipv6Address": "2001:db8:1234:1a00::123" } ], "PrivateIpAddress": "10.0.0.72" } ] }

    É possível gravar o resultado diretamente em um arquivo, por exemplo:

    aws ec2 get-launch-template-data \ --instance-id i-0123d646e8048babc \ --query "LaunchTemplateData" >> instance-data.json
Para criar um modelo de execução usando dados do modelo de execução

Use um parâmetro de Systems Manager em vez de um ID de AMI

Em vez de especificar um ID de AMI em seus modelos de inicialização, você pode especificar um parâmetro AWS Systems Manager. Se o ID da AMI for alterado, você poderá atualizar o ID da AMI em um único lugar atualizando o parâmetro Systems Manager no Systems Manager Parameter Store. Os parâmetros também podem ser compartilhados com outras Contas da AWS. É possível armazenar e gerenciar os parâmetros da AMI de forma centralizada em uma conta e compartilhá-los com todas as outras contas que precisam referenciá-los. Usando um parâmetro do Systems Manager, todos os seus modelos de inicialização podem ser atualizados em uma única ação.

Um parâmetro do Systems Manager é um par chave-valor definido pelo usuário que pode ser criado no Parameter Store do AWS Systems Manager. O Parameter Store fornece um lugar central para armazenar os valores de configuração da aplicação.

No diagrama a seguir, o parâmetro golden-ami é mapeado primeiro para a AMI original ami-aabbccddeeffgghhi no Parameter Store. No modelo de inicialização, o valor do ID da AMI é golden-ami. Quando uma instância é iniciada usando esse modelo de inicialização, o ID da AMI é resolvido para ami-aabbccddeeffgghhi. Posteriormente, a AMI é atualizada, resultando em um novo ID de AMI. No Parameter Store, o parâmetro golden-ami é mapeado para o novo ami-00112233445566778. O modelo de inicialização permanece inalterado. Quando uma instância é iniciada usando esse modelo de inicialização, o ID de AMI é resolvido para ami-00112233445566778.

Usando os parâmetros do Systems Manager no Parameter Store para atualizar um modelo de inicialização.

Formato de parâmetros do Systems Manager para IDs de AMI

Os modelos de inicialização exigem que os parâmetros do Systems Manager definidos pelo usuário sigam o seguinte formato quando usados no lugar de um ID de AMI:

  • Tipo de parâmetro: String

  • Tipo de dados do parâmetro: aws:ec2:image; garante que o Parameter Store valide que o valor inserido está no formato adequado para um ID de AMI.

Para obter mais informações sobre como criar um parâmetro válido para um ID de AMI, consulte Crie um parâmetro do Systems Manager no Guia do usuário do AWS Systems Manager.

Formato de parâmetros do Systems Manager em modelos de inicialização

Para usar um parâmetro do Systems Manager no lugar de um ID de AMI em um modelo de inicialização, você deve usar um dos seguintes formatos ao especificar o parâmetro no modelo de inicialização:

Para fazer referência a um parâmetro público:

  • resolve:ssm:public-parameter

Para fazer referência a um parâmetro armazenado na mesma conta:

  • resolve:ssm:parameter-name

  • resolve:ssm:parameter-name:version-number: o número da versão em si é um rótulo padrão

  • resolve:ssm:parameter-name:label

Para fazer referência a um parâmetro compartilhado de outra Conta da AWS:

  • resolve:ssm:parameter-ARN

  • resolve:ssm:parameter-ARN:version-number

  • resolve:ssm:parameter-ARN:label

Versões de parâmetros

Os parâmetros do Systems Manager são recursos versionados. Ao atualizar um parâmetro, você cria novas versões sucessivas do parâmetro. O Systems Manager é compatível com rótulos de parâmetros que você pode mapear para versões específicas de um parâmetro.

Por exemplo, o parâmetro golden-ami pode ter três versões: 1, 2 e 3. Você pode criar um rótulo de parâmetro beta que é mapeado para a versão 2 e um rótulo de parâmetro prod que é mapeado para a versão 3.

Em um modelo de inicialização, você pode especificar a versão 3 do parâmetro golden-ami usando um dos seguintes formatos:

  • resolve:ssm:golden-ami:3

  • resolve:ssm:golden-ami:prod

Especificar a versão ou o rótulo é opcional. Por padrão, a versão mais recente do parâmetro é usada quando nenhuma versão é especificada.

Especificar um parâmetro do Systems Manager em um modelo de inicialização

Você pode especificar um parâmetro do Systems Manager em um modelo de inicialização em vez de um ID de AMI ao criar um modelo de inicialização ou uma nova versão de um modelo de inicialização.

Console
Para especificar um parâmetro do Systems Manager em um modelo de inicialização
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Launch Templates (Modelos de execução) e Create launch template (Criar modelo de execução).

  3. Em Device template name (Nome do modelo de dispositivo), insira um nome descritivo para o modelo.

  4. Em Application and OS Images (Amazon Machine Image) (Imagens de aplicações e sistemas operacionais [imagem de máquina da Amazon]), escolha Browse more AMIs (Procurar mais AMIs).

  5. Escolha o botão de seta à direita da barra de pesquisa e escolha Especificar valor personalizado/parâmetro do Systems Manager.

  6. Na caixa de diálogo Especificar valor personalizado ou parâmetro do Systems Manager, faça o seguinte:

    1. Em ID de AMI ou string de parâmetros do Systems Manager, insira o nome do parâmetro do Systems Manager usando um destes formatos:

      Para fazer referência a um parâmetro público:

      • resolve:ssm:public-parameter

      Para fazer referência a um parâmetro armazenado na mesma conta:

      • resolve:ssm:parameter-name

      • resolve:ssm:parameter-name:version-number

      • resolve:ssm:parameter-name:label

      Para fazer referência a um parâmetro compartilhado de outra Conta da AWS:

      • resolve:ssm:parameter-ARN

      • resolve:ssm:parameter-ARN:version-number

      • resolve:ssm:parameter-ARN:label

    2. Escolha Salvar.

  7. Especifique quaisquer outros parâmetros do modelo de inicialização conforme necessário e escolha Criar modelo de inicialização.

Para ter mais informações, consulte Criar um modelo de execução especificando parâmetros.

AWS CLI
Para especificar um parâmetro do Systems Manager em um modelo de inicialização
  • Use o comando create-launch-template para criar o modelo de inicialização. Para especificar a AMI a ser usada, insira o nome do parâmetro do Systems Manager usando um dos seguintes formatos:

    Para fazer referência a um parâmetro público:

    • resolve:ssm:public-parameter

    Para fazer referência a um parâmetro armazenado na mesma conta:

    • resolve:ssm:parameter-name

    • resolve:ssm:parameter-name:version-number

    • resolve:ssm:parameter-name:label

    Para fazer referência a um parâmetro compartilhado de outra Conta da AWS:

    • resolve:ssm:parameter-ARN

    • resolve:ssm:parameter-ARN:version-number

    • resolve:ssm:parameter-ARN:label

    O exemplo a seguir cria um modelo de execução que especifica o seguinte:

    • Um nome para o modelo de inicialização (TemplateForWebServer)

    • Uma etiqueta para o modelo de execução (purpose=production)

    • Os dados para a configuração da instância, especificados em um arquivo JSON:

      • A AMI a ser usada (resolve:ssm:golden-ami)

      • O tipo de instância a ser executada iniciada (m5.4xlarge)

      • Uma etiqueta para a instância (Name=webserver)

    aws ec2 create-launch-template \ --launch-template-name TemplateForWebServer \ --tag-specifications 'ResourceType=launch-template,Tags=[{Key=purpose,Value=production}]' \ --launch-template-data file://template-data.json

    Veja a seguir um exemplo de arquivo JSON que contém os dados do modelo de execução para a configuração da instância. O valor de ImageId é o nome do parâmetro do Systems Manager, inserido no formato exigido resolve:ssm:golden-ami.

    {"LaunchTemplateData": { "ImageId": "resolve:ssm:golden-ami", "InstanceType": "m5.4xlarge", "TagSpecifications": [{ "ResourceType": "instance", "Tags": [{ "Key":"Name", "Value":"webserver" }] }] } }

Verifique se um modelo de execução obtém o ID da AMI correto

Como resolver o parâmetro do Systems Manager para o ID da AMI real

Use o comando describe-launch-template-versions e inclua o parâmetro --resolve-alias.

aws ec2 describe-launch-template-versions \ --launch-template-name my-launch-template \ --versions $Default \ --resolve-alias

A resposta inclui o ID da AMI para ImageId. Neste exemplo, quando uma instância é iniciada usando esse modelo de execução, o ID da AMI é resolvido como ami-0ac394d6a3example.

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-launch-template", "VersionNumber": 1, "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-0ac394d6a3example", "InstanceType": "t3.micro", } } ] }

Para obter mais informações sobre como trabalhar com os parâmetros do Systems Manager, consulte os materiais de referência apresentados a seguir na documentação do Systems Manager.

Limitações

  • Somente as frotas do EC2 do tipo instant oferecem suporte ao uso de um modelo de inicialização que tenha um parâmetro do Systems Manager especificado no lugar de um ID de AMI.

  • As frotas do EC2 dos tipos maintain e request e as frotas spot não são compatíveis com o uso de um modelo de inicialização que tenha um parâmetro do Systems Manager especificado no lugar de um ID de AMI. Para frotas do EC2 dos tipos maintain e request e frotas spot, se você especificar uma AMI no modelo de inicialização, deverá especificar o ID da AMI.

  • Se você usar a seleção de instância baseada em atributos na frota do EC2, não poderá especificar um parâmetro do Systems Manager no lugar de um ID de AMI. Ao usar a seleção de instância baseada em atributos, você deve especificar o ID da AMI.

  • O Amazon EC2 Auto Scaling fornece outras restrições. Para obter mais informações, consulte Use AWS Systems Manager parameters instead of AMI IDs in launch templates no Guia do usuário do Amazon EC2 Auto Scaling.