

# Solucionar problemas de inicialização de instâncias do Amazon EC2
<a name="troubleshooting-launch"></a>

Veja a seguir dicas para ajudar na solução de problemas de inicialização de instâncias do Amazon EC2.

**Topics**
+ [Nome de dispositivo inválido](#troubleshooting-launch-devicename)
+ [Limite de instâncias excedido](#troubleshooting-launch-limit)
+ [Capacidade insuficiente da instância](#troubleshooting-launch-capacity)
+ [A configuração solicitada não é suportada atualmente. Verifique a documentação quanto às configurações compatíveis.](#troubleshooting-instance-configuration)
+ [A instância é encerrada imediatamente](#troubleshooting-launch-internal)
+ [Permissões insuficientes](#troubleshooting-launch-permissions)
+ [Alto uso da CPU logo após a inicialização do Windows (somente para instâncias do Windows)](#high-cpu-issue)
+ [Falha na inicialização de uma instância habilitada para IMDSv1](#launching-an-imdsv1-enabled-instance-fails)

## Nome de dispositivo inválido
<a name="troubleshooting-launch-devicename"></a>

### Descrição
<a name="troubleshooting-launch-devicename-description"></a>

Você obtém o erro `Invalid device name device_name` ao tentar iniciar uma nova instância.

### Causa
<a name="troubleshooting-launch-devicename-cause"></a>

Se você receber esse erro ao tentar executar uma instância, o nome do dispositivo especificado para um ou mais volumes da solicitação terá um nome de dispositivo inválido. As possíveis causas incluem:
+ O nome do dispositivo pode estar em uso pela AMI selecionada.
+ O nome do dispositivo pode estar reservado para volumes raiz.
+ O nome do dispositivo pode estar sendo usado para outro volume da solicitação.
+ O nome do dispositivo pode não ser válido para o sistema operacional.

### Solução
<a name="troubleshooting-launch-devicename-solution"></a>

Como resolver o problema:
+ Verifique se o nome do dispositivo não está sendo usado na AMI que você selecionou. Execute o comando a seguir para visualizar os nomes de dispositivo usados pela AMI.

  ```
  aws ec2 describe-images --image-id ami-0abcdef1234567890 --query 'Images[*].BlockDeviceMappings[].DeviceName'
  ```
+ Verifique se não está usando um nome de dispositivo reservado para volumes raiz. Para obter mais informações, consulte [Nomes de dispositivos disponíveis](device_naming.md#available-ec2-device-names).
+ Verifique se cada volume especificado em sua solicitação tem um nome de dispositivo exclusivo.
+ Verifique se os nomes de dispositivo especificados estão no formato correto. Para obter mais informações, consulte [Nomes de dispositivos disponíveis](device_naming.md#available-ec2-device-names).

## Limite de instâncias excedido
<a name="troubleshooting-launch-limit"></a>

### Descrição
<a name="troubleshooting-launch-limit-description"></a>

Você obtém o erro `InstanceLimitExceeded` ao tentar executar uma nova instância ou reiniciar uma instância interrompida.

### Causa
<a name="troubleshooting-launch-limit-cause"></a>

Se obtiver um erro `InstanceLimitExceeded` ao tentar executar uma nova instância ou reiniciar uma instância interrompida, isso significa que atingiu o limite do número de instâncias que você pode executar em uma região. Ao criar uma conta da AWS, definimos limites padrão para o número de instâncias que você pode executar por região.

### Solução
<a name="troubleshooting-launch-limit-solution"></a>

Você pode solicitar um aumento de limite de instâncias por região. Para obter mais informações, consulte [Service Quotas do Amazon EC2](ec2-resource-limits.md).

## Capacidade insuficiente da instância
<a name="troubleshooting-launch-capacity"></a>

### Descrição
<a name="troubleshooting-launch-capacity-description"></a>

Você obtém o erro `InsufficientInstanceCapacity` ao tentar executar uma nova instância ou reiniciar uma instância interrompida.

### Causa
<a name="troubleshooting-launch-capacity-description"></a>

Se você receber esse erro ao tentar executar uma instância ou reiniciar uma instância interrompida, isso significa que, no momento, a AWS não tem capacidade sob demanda suficiente para atender à sua solicitação.

### Solução
<a name="troubleshooting-launch-capacity-description"></a>

Para resolver esse problema, experimente o seguinte:
+ Espere alguns minutos e envie uma solicitação novamente; a capacidade pode mudar com frequência.
+ Envie uma solicitação nova com um número de instâncias reduzido. Por exemplo, se você estiver fazendo uma única solicitação para executar 15 instâncias, tente fazer 3 solicitações para 5 instâncias, ou 15 solicitações de 1 instância.
+ Se você estiver executando uma instância, envie uma nova solicitação sem especificar uma zona de disponibilidade.
+ Se você estiver executando uma instância, envie uma solicitação nova usando um tipo de instância diferente (que você pode redimensionar posteriormente). Para obter mais informações, consulte [Alterações no tipo de instância do Amazon EC2](ec2-instance-resize.md).
+ Se você estiver executando instâncias em um placement group de cluster, é possível obter um erro de capacidade insuficiente.

## A configuração solicitada não é suportada atualmente. Verifique a documentação quanto às configurações compatíveis.
<a name="troubleshooting-instance-configuration"></a>

### Descrição
<a name="troubleshooting-instance-configuration-description"></a>

Você obtém o erro `Unsupported` ao tentar executar uma nova instância porque a configuração da instância não é compatível.

### Causa
<a name="troubleshooting-instance-configuration-cause"></a>

A mensagem de erro fornece detalhes adicionais. Por exemplo, é possível que um tipo de instância ou opção de compra de instância não seja compatível com a região ou Zona de Disponibilidade especificada.

### Solução
<a name="troubleshooting-instance-configuration-solution"></a>

Tente uma configuração de instância diferente. Para pesquisar um tipo de instância que atenda aos seus requisitos, consulte [Localizar um tipo de instância do Amazon EC2](instance-discovery.md).

## A instância é encerrada imediatamente
<a name="troubleshooting-launch-internal"></a>

### Descrição
<a name="troubleshooting-launch-internal-description"></a>

Sua instância passa do estado `pending` para o estado `terminated`.

### Causa
<a name="troubleshooting-launch-internal-cause"></a>

A seguir estão alguns motivos pelos quais a instância pode ser imediatamente encerrada:
+ Você excedeu os limites de volume do EBS. Para obter mais informações, consulte [Limites de volume do Amazon EBS para instâncias do Amazon EC2](volume_limits.md).
+ Um snapshot do EBS está corrompido.
+ O volume raiz do EBS está criptografado e você não tem permissões para acessar a Chave do KMS para descriptografia.
+ Um snapshot especificado no mapeamento de dispositivo de blocos para a AMI está criptografado e você não tem permissões para acessar a Chave do KMS para descriptografia ou não tem acesso à Chave do KMS para criptografar os volumes restaurados.
+ A AMI baseada no Amazon S3 usada para criar a instância está incompleta, faltando uma parte necessária (um arquivo image.part.*xx*).

Para obter mais informações, saiba o motivo do encerramento usando um dos métodos a seguir.

**Para obter o motivo do encerramento usando o console do Amazon EC2**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **Instâncias** e selecione a instância.

1. Na primeira guia, encontre o motivo ao lado de **State transition reason (Motivo de transição de estado)**.

**Para obter o motivo do encerramento usando a AWS CLI**

1. Use o comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) e especifique o ID da instância.

   ```
   aws ec2 describe-instances --instance-id i-1234567890abcdef0
   ```

1. Revise a resposta JSON retornada pelo comando e observe os valores no elemento de resposta `StateReason`.

   O bloco de código a seguir mostra um exemplo de elemento de resposta `StateReason`:

   ```
   "StateReason": {
     "Message": "Client.VolumeLimitExceeded: Volume limit exceeded", 
     "Code": "Server.InternalError"
   },
   ```

**Como saber o motivo do encerramento usando a AWS CloudTrail**  
Para obter mais informações, consulte o tópico sobre como [Visualizar eventos com o histórico de eventos do CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html), no *Guia do usuário do AWS CloudTrail*.

### Solução
<a name="troubleshooting-launch-internal-solution"></a>

Dependendo do motivo do encerramento, execute uma das seguintes ações:
+ **`Client.VolumeLimitExceeded: Volume limit exceeded`** — exclua volumes não utilizados. É possível [enviar uma solicitação](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-ebs) para aumentar seu limite de volume.
+ **`Client.InternalError: Client error on launch`**: verifique se você tem as permissões necessárias para acessar as AWS KMS keys usadas para descriptografar e criptografar volumes. Para obter mais informações, consulte [Using key policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) (Como usar políticas de chaves no AWS KMS) no * Guia do desenvolvedor do AWS Key Management Service*.

## Permissões insuficientes
<a name="troubleshooting-launch-permissions"></a>

### Descrição
<a name="troubleshooting-launch-permissions-description"></a>

Você recebe o erro `"errorMessage": "You are not authorized to perform this operation."` ao tentar iniciar uma nova instância e não é possível iniciá-la.

### Causa
<a name="troubleshooting-launch-permissions-cause"></a>

Se você receber esse erro ao tentar iniciar uma instância, você não tem as permissões do IAM necessárias para iniciá-la.

As possíveis permissões ausentes incluem:
+ `ec2:RunInstances`
+ `iam:PassRole`

Outras permissões também podem estar faltando. Para ver a lista de permissões necessárias para iniciar uma instância, consulte o exemplo de políticas do IAM em [Exemplo: uso do assistente de início de instância do EC2](iam-policies-ec2-console.md#ex-launch-wizard) e [Executar instâncias (RunInstances)](ExamplePolicies_EC2.md#iam-example-runinstances).

### Solução
<a name="troubleshooting-launch-permissions-solution"></a>

Como resolver o problema:
+ Se você estiver fazendo solicitações como um usuário IAM, verifique se tem as seguintes permissões:
  + `ec2:RunInstances` com um caractere curinga ("\$1")
  + `iam:PassRole` com o recurso correspondente ao nome de região da Amazon (ARN) da função (por exemplo, `arn:aws:iam::999999999999:role/ExampleRoleName`)
+ Se você não tiver as permissões anteriores, [edite a política do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) associada ao perfil ou usuário do IAM para adicionar as permissões necessárias que estão faltando.

Se o problema não for resolvido e um erro de falha na inicialização continuar sendo recebido, você poderá decodificar a mensagem de falha de autorização incluída no erro. A mensagem decodificada inclui as permissões que estão faltando na política do IAM. Para obter mais informações, consulte [Como posso decodificar uma mensagem de falha de autorização depois de receber um erro de "UnauthorizedOperation" durante a execução de uma instância do EC2?](https://repost.aws/knowledge-center/ec2-not-auth-launch)

## Alto uso da CPU logo após a inicialização do Windows (somente para instâncias do Windows)
<a name="high-cpu-issue"></a>

**nota**  
Esta dica de solução de problemas é dedicada somente para instâncias do Windows.

Se o Windows Update for definido como **Verificar se há atualizações, mas permitir que eu escolha fazer download e instalá-las** (a configuração de instância padrão), essa verificação poderá consumir entre 50 e 99% da CPU na instância. Se esse consumo de CPU causar problemas para seus aplicativos, você poderá alterar manualmente as configurações do Windows Update no **Painel de controle** ou usar o seguinte script no campo de dados de usuário do Amazon EC2:

```
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v AUOptions /t REG_DWORD /d 3 /f net stop wuauserv net start wuauserv
```

Quando você executar esse script, especifique um valor para /d. O valor padrão é 3. Os valores possíveis incluem o seguinte: 

1. Nunca verificar se há atualizações

1. Verificar se há atualizações, mas permitir que eu escolha fazer download e instalá-las

1. Fazer download de atualizações, mas permitir que eu escolha fazer download e instalá-las

1. Instalar atualizações automaticamente

Depois de modificar os dados do usuário para sua instância, você poderá executá-la. Para obter mais informações, consulte [Run commands on your Windows instance at launch](user-data.md).

## Falha na inicialização de uma instância habilitada para IMDSv1
<a name="launching-an-imdsv1-enabled-instance-fails"></a>

### Descrição
<a name="launching-an-imdsv1-enabled-instance-fails-description"></a>

Você recebe uma exceção de `UnsupportedOperation` com a seguinte mensagem:

`You can't launch instances with IMDSv1 because httpTokensEnforced is enabled for this account. Either launch the instance with httpTokens=required or contact your account owner to disable httpTokensEnforced using the ModifyInstanceMetadataDefaults API or the account settings in the EC2 console.`

### Causa
<a name="launching-an-imdsv1-enabled-instance-fails-cause"></a>

Esse erro é gerado quando você tenta iniciar uma nova instância para habilitar o IMDSv1 (`httpTokens = optional`) em uma conta onde as configurações da conta do EC2 ou uma política declarativa da organização da AWS impõem o uso de IMDSv2 (`httpTokensEnforced = enabled`). 

### Solução
<a name="launching-an-imdsv1-enabled-instance-fails-solution"></a>

Se você estiver pronto para usar somente o IMDSv2, inicie sua instância com o IMDSv1 desabilitado (`httpTokens = required`). Para verificar se está pronto, consulte [Transição para usar o Serviço de metadados da instância versão 2](instance-metadata-transition-to-version-2.md).

Se você ainda precisar do suporte do IMDSv1 em instâncias novas ou existentes, precisará desabilitar a aplicação do IMDSv2 para a conta na região. Para desabilitar a aplicação do IMDSv2, defina `HttpTokensEnforced` como `disabled`. Para obter mais informações, consulte [ModifyInstanceMetadataDefaults](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceMetadataDefaults.html) na Referência a APIs do Amazon EC2. Se você preferir definir essa configuração usando o console, consulte [Aplique o IMDSv2 no nível da conta](configuring-IMDS-new-instances.md#enforce-imdsv2-at-the-account-level).

 