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.
Conteúdo
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
InstanceTypeSpecificationnão estiver definido, o Amazon EC2 permitirá todos os tipos de instância. Esse é o comportamento padrão. -
Se somente
SupportedInstanceTypesfor definido, somente os tipos de instância especificados serão permitidos. O Amazon EC2 bloqueará todos os outros tipos de instância. -
Se somente
UnsupportedInstanceTypesfor 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
SupportedInstanceTypese não deverá constar emUnsupportedInstanceTypes.
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.
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.
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-idami-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
ReplaceImageInstanceTypeSpecificationsubstitui a especificação inteira. Para adicionar ou remover tipos de instância individuais, inclua a especificação inteira atualizada na solicitação.