View a markdown version of this page

Tipos de instância permitidos da AMI - Amazon Elastic Compute Cloud

Tipos de instância permitidos da AMI

Como proprietário da AMI, você pode especificar quais são os tipos de instância compatíveis com ela. Isso evita inicializações em tipos de instância incompatíveis. O Amazon EC2 aplica os tipos de instância permitidos no momento da inicialização.

Por exemplo, se a AMI exigir hardware de GPU, será possível restringi-la somente aos tipos de instância GPU. Se a AMI for incompatível com uma família de instâncias específica será possível excluir essa família dos tipos de instância permitidos.

Como funcionam os tipos de instância permitidos

Você controla os tipos de instância permitidos por meio do atributo InstanceTypeSpecification de uma AMI. Esse atributo contém duas listas:

  • SupportedInstanceTypes: os tipos de instância compatíveis com a AMI. Apenas esses tipos de instância podem ser executados com a AMI.

  • UnsupportedInstanceTypes: os tipos de instância não compatíveis com a AMI. Todos os outros tipos de instância poderão ser iniciados com a AMI.

O Amazon EC2 avalia a especificação usando a seguinte lógica:

  • Se o parâmetro InstanceTypeSpecification não estiver definido, o Amazon EC2 permitirá todos os tipos de instância. Esse é o comportamento padrão.

  • Se somente SupportedInstanceTypes for definido, somente os tipos de instância especificados serão permitidos. O Amazon EC2 bloqueará todos os outros tipos de instância.

  • Se somente UnsupportedInstanceTypes for definido, o Amazon EC2 permitirá todos os tipos de instância, exceto os especificados.

  • Se ambas as duas estiverem definidas, o tipo de instância deverá constar em SupportedInstanceTypes e não deverá constar em UnsupportedInstanceTypes.

Suporte a curingas

Ambas as listas são compatíveis com padrões curingas usando o caractere *. Você pode usar curingas para comparar com vários tipos de instância sem listar cada um deles individualmente.

A tabela a seguir mostra exemplos de padrões curingas.

Padrão Correspondências
t3.* Todos os tamanhos dentro da família de instâncias t3 (por exemplo, t3.micro, t3.small e t3.large)
p4d.* Todos os tamanhos dentro da família de instâncias p4d
g5.* Todos os tamanhos dentro da família de instâncias g5
*xlarge Qualquer tipo de instância xlarge ou maior em todas as famílias de instâncias
*.12xlarge Qualquer tipo de instância 12xlarge em todas as famílias de instâncias

Tipos de instância permitidos de uma AMI

Você pode definir ou alterar os tipos de instância permitidos de uma AMI usando o console do Amazon EC2 ou a AWS Command Line Interface (AWS CLI). É necessário ser o proprietário da AMI para executar esse procedimento.

Console
Para definir os tipos de instância permitidos de uma AMI
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione AMIs.

  3. Selecione a AMI e escolha Ações, Gerenciar especificação do tipo de instância.

  4. Em Tipos de instância compatíveis ou Tipos de instância não compatíveis, escolha Adicionar.

  5. Selecione o tipo de instância do .

  6. Escolha Salvar.

AWS CLI
Para definir os tipos de instância compatíveis com uma AMI

Use o comando replace-image-instance-type-specification. O exemplo a seguir permite todos os tipos de instâncias t3 e a2, exceto t3.micro.

aws ec2 replace-image-instance-type-specification \ --image-id ami-1234567890abcdef0 \ --instance-type-specification '{"SupportedInstanceTypes": ["t3.*", "a2.*"], "UnsupportedInstanceTypes": ["t3.micro"]}'
Para definir somente os tipos de instância não compatíveis com uma AMI

Use o comando a seguir para bloquear tipos de instância específicos e permitir todos os demais.

aws ec2 replace-image-instance-type-specification \ --image-id ami-1234567890abcdef0 \ --instance-type-specification '{"UnsupportedInstanceTypes": ["t3.micro", "t3.nano"]}'
Para remover a especificação do tipo de instância de uma AMI

Use o comando a seguir sem especificar --instance-type-specification para remover a restrição e permitir todos os tipos de instância.

aws ec2 replace-image-instance-type-specification \ --image-id ami-1234567890abcdef0

Visualizar os tipos de instância permitidos de uma AMI

Você pode visualizar a especificação de tipo de instância de uma AMI usando o console do Amazon EC2 ou a AWS CLI.

Console
Para visualizar os tipos de instância permitidos de uma AMI
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione AMIs.

  3. Selecione a AMI.

  4. Na guia Detalhes, visualize os tipos de instância compatíveis e não compatíveis.

AWS CLI
Para visualizar a especificação de tipo de instância de uma AMI

Use o comando describe-images. Se a AMI tiver uma especificação de tipo de instância, a resposta incluirá o campo InstanceTypeSpecification.

aws ec2 describe-images \ --image-ids ami-1234567890abcdef0

O exemplo de saída a seguir é de uma AMI com especificação de tipo de instância.

{ "Images": [ { "ImageId": "ami-1234567890abcdef0", ... "InstanceTypeSpecification": { "SupportedInstanceTypes": [ { "InstanceType": "t3.*" }, { "InstanceType": "a2.*" } ], "UnsupportedInstanceTypes": [ { "InstanceType": "t3.micro" } ] } } ] }

Comportamento de inicialização com os tipos de instância permitidos

Quando você executa uma instância, o Amazon EC2 verifica se o tipo de instância especificado é compatível com a especificação de tipo de instância da AMI. Se o tipo de instância não for permitido, o Amazon EC2 bloqueará a execução e retornará um erro.

Exemplo: inicialização bloqueada

O comando a seguir tenta iniciar uma instância t3.micro usando uma AMI que não é compatível com t3.micro.

aws ec2 run-instances \ --image-id ami-1234567890abcdef0 \ --instance-type t3.micro

O Amazon EC2 retorna o seguinte erro:

An error occurred (InvalidParameterCombination) when calling the RunInstances operation: This AMI does not support the specified instance type. Check DescribeImages for InstanceTypeSpecification, and try again.

Para resolver esse erro, escolha um tipo de instância compatível com a AMI. Use o comando describe-images para visualizar a especificação de tipo de instância da AMI.

Considerações

Lembre-se das seguintes informações ao usar os tipos de instância permitidos.

  • Por padrão, uma AMI não tem especificação de tipo de instância. O Amazon EC2 permite todos os tipos de instância até que uma especificação seja explicitamente definida.

  • Somente o proprietário da AMI pode definir ou alterar a especificação de tipo de instância.

  • Quando você copia uma AMI usando CopyImage, o Amazon EC2 preserva a especificação de tipo de instância na nova AMI.

  • O Amazon EC2 aplica a especificação do tipo de instância como um bloqueio rígido. Se o tipo de instância não for permitido, a execução falhará com um erro InvalidParameterCombination.

  • A especificação não afeta as instâncias existentes. Ela se aplica somente a novas inicializações.

  • Modelos de inicialização e grupos do Auto Scaling que referenciam uma AMI com uma especificação de tipo de instância poderão não ter sucesso se o tipo de instância configurado não for permitido. Recomendamos verificar a compatibilidade antes de definir uma especificação em AMIs compartilhadas.

  • A ação ReplaceImageInstanceTypeSpecification substitui a especificação inteira. Para adicionar ou remover tipos de instância individuais, inclua a especificação inteira atualizada na solicitação.