

# Criar uma solicitação de instância spot
<a name="spot-requests"></a>

Para usar instâncias spot, crie uma solicitação de instância spot que inclua o número de instâncias desejado, o tipo de instância e a zona de disponibilidade. Se houver capacidade disponível, o Amazon EC2 atenderá à solicitação imediatamente. Caso contrário, o Amazon EC2 esperará até a sua solicitação puder ser atendida ou até você cancelar a solicitação.

É possível usar o [assistente de inicialização de instâncias](ec2-launch-instance-wizard.md) no console do Amazon EC2 ou o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) para solicitar uma instância spot da mesma forma que é possível executar uma instância sob demanda. Este método é recomendado apenas pelos seguintes motivos:
+ Você já está usando o [assistente de execução de instância](ec2-launch-instance-wizard.md) ou o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) para executar instâncias sob demanda e quer mudar para a execução de instâncias spot alterando um único parâmetro.
+ Você não precisa de várias instâncias com diferentes tipos de instância.

Esse método geralmente não é recomendado para executar instâncias spot porque você não pode especificar vários tipos de instância e não é possível executar instâncias spot e instâncias sob demanda na mesma solicitação. Para os métodos preferidos de execução de instâncias spot, que incluem a execução de uma *frota* que inclui instâncias spot e instâncias sob demanda com vários tipos de instância, consulte [Qual é o melhor método de solicitação spot para usar?](spot-best-practices.md#which-spot-request-method-to-use)

Se você solicitar várias instâncias spot ao mesmo tempo, o Amazon EC2 criará solicitações de instância spot separadas para que você possa acompanhar o status de cada uma separadamente. Para obter mais informações sobre como monitorar solicitações de instâncias spot, consulte [Obter o status de uma solicitação de instância spot](spot-request-status.md).

------
#### [ Console ]<a name="create-spot-instance-request-console-procedure"></a>

**Para criar uma solicitação de instância spot**

As etapas de 1 a 9 são as mesmas que você usaria para executar uma instância sob demanda. Na Etapa 10, você configura a solicitação da instância spot.

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

1. Na barra de navegação na parte superior da tela, selecione uma região.

1. No painel do console do Amazon EC2, selecione **Launch instance (Executar instância)**.

1. (Opcional) Em **Name and tags** (Nome e etiquetas), é possível nomear a instância e marcar a solicitação de instância spot, a instância, os volumes e os gráficos elásticos. Para obter mais informações sobre tags, consulte [Marcar com tag os recursos do Amazon EC2](Using_Tags.md).

   1. Em **Name** (Nome), insira um nome descritivo para a instância.

      O nome da instância é uma tag em que a chave é **Name** (Nome) e o valor é o nome que você especificar. Se você não especificar um nome, a instância poderá ser identificada por seu ID, que é gerado automaticamente quando você inicia a instância.

   1. Para marcar a solicitação de instância spot, a instância, os volumes e os elementos gráficos elásticos, escolha **Add additional tags** (Adicionar outras etiquetas). Escolha **Add tag** (Adicionar tag), insira uma chave e um valor, e selecione o tipo de recurso a aplicar a tag. Escolha **Add tag** (Adicionar tag) para cada tag adicional a acrescentar.

1. Em **Application and OS Images (Amazon Machine Image)**, (Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon), escolha o sistema operacional da instância e selecione uma AMI. Para obter mais informações, consulte [Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon)](ec2-instance-launch-parameters.md#liw-ami).

1. Em **Instance type** (Tipo de instância), selecione o tipo de instância que atende aos requisitos para a configuração do hardware e o tamanho da instância. Para obter mais informações, consulte [Tipo de instância](ec2-instance-launch-parameters.md#liw-instance-type).

1. Em **Key pair (login)** (Par de chaves: login) escolha um par de chaves existente ou selecione **Create new key pair** (Criar um novo par de chaves) para criar um novo. Para obter mais informações, consulte [Pares de chaves do Amazon EC2 e instâncias do Amazon EC2](ec2-key-pairs.md).
**Importante**  
Se você escolher a opção **Proceed without key pair (Not recommended)** (Prosseguir sem par de chaves, não recomendado), não conseguirá se conectar à instância a menos que escolha uma AMI configurada para permitir que os usuários façam login de outro modo.

1. Em **Network settings** (Configurações de rede), use as configurações padrão ou escolha **Edit** (Editar) para definir as configurações de rede, conforme necessário.

   Os grupos de segurança fazem parte das configurações de rede e definem regras de firewall para a instância. Essas regras especificam qual tráfego de rede de entrada será fornecido para sua instância.

   Para obter mais informações, consulte [Configurações de rede](ec2-instance-launch-parameters.md#liw-network-settings).

1. A AMI que você selecionou inclui um ou mais volumes de armazenamento, incluindo o volume de dispositivo raiz. Na página **Configure storage** (Configurar armazenamento), especifique os volumes adicionais para anexar à instância escolhendo **Add New Volume** (Adicionar novo volume). Para obter mais informações, consulte [Configurar armazenamento](ec2-instance-launch-parameters.md#liw-storage).

1. Em **Advanced details** (Detalhes avançados), configure a solicitação de instância spot da seguinte maneira:

   1. Em **Opção de compra**, marque a caixa de seleção **Solicitar instâncias spot**.

   1. É possível manter a configuração padrão para a solicitação de instância spot ou escolher **Customize** (Personalizar), à direita, para especificar configurações personalizadas para a solicitação da instância spot.

      Ao escolher a opção **Customize** (Personalizar), os campos a seguir serão exibidos.

      1. **Preço máximo**: e possível solicitar instâncias spot pelo preço spot, limitado ao preço sob demanda ou especificar o valor máximo que você está disposto a pagar.
**Atenção**  
Se você especificar um preço máximo, as instâncias serão interrompidas com mais frequência do que se você escolher **No maximum price** (Sem preço máximo).  
Se você especificar um preço máximo, ele deverá ser superior a USD 0,001. Especificar um valor abaixo de USD 0,001 resultará em uma falha na inicialização.
         + **Sem preço máximo**: a instância spot será executada pelo preço spot atual. O preço nunca excederá o preço sob demanda. (Recomendado) 
         + **Defina seu preço máximo (por instância/hora)**: você pode especificar o valor máximo que estiver disposto a pagar.
           + Se você especificar um preço máximo inferior ao preço spot atual, a instância spot não será executada.
           + Se você especificar um preço máximo superior ao preço spot atual, a instância spot será executada e cobrada de acordo com o preço spot atual. Depois que a instância spot estiver em execução, se o preço spot subir acima do preço máximo, o Amazon EC2 interromperá a instância spot.
           + Independentemente do preço máximo especificado, você sempre será cobrado o preço Spot atual.

           Para analisar as tendências de preços spot, consulte [Visualizar o histórico de preços de instância spot](using-spot-instances-history.md).

      1. **Tipos de solicitação**: o tipo de solicitação de instância spot escolhido determina o que acontece se a instância spot for interrompida.
         + **Única**: o Amazon EC2 faz uma solicitação única para a instância spot. Se a instância spot for interrompida, a solicitação não será reenviada.
         + **Solicitação persistente**: o Amazon EC2 faz uma solicitação persistente para a instância spot. Se a instância spot for interrompida, a solicitação será reenviada para reabastecer a instância spot interrompida.

         Se você não especificar um valor, o padrão é uma solicitação única.

      1. **Valid to** (Válido para): a data de expiração de uma solicitação de instância spot *persistente*.

         Esse campo não é compatível com solicitações únicas. Uma solicitação *única* permanece ativa até que todas as instâncias da solicitação expirem ou você cancele a solicitação. 
         + **Nenhuma data de expiração da solicitação**: a solicitação permanecerá ativa até você cancelá-la.
         + **Defina a data de validade da solicitação**: a solicitação persistente permanece ativa até a data especificada ou até que você a cancele.

      1. **Comportamento de interrupção**: o comportamento escolhido determina o que acontece quando uma instância spot é interrompida.
         + Em solicitações persistentes, os valores válidos são **Parar** e **Hibernar**. Quando uma instância é parada ocorrem cobranças pelo armazenamento do volume EBS.
**nota**  
As instâncias spot agora usam a mesma funcionalidade de hibernação que as instâncias sob demanda. Para habilitar a hibernação, você pode escolher **Hibernar** aqui ou **Habilitar** no campo **Comportamento de parar - hibernar**, que aparece mais abaixo no assistente de inicialização de instância. Para conhecer os pré-requisitos de hibernação, consulte [Pré-requisitos para a hibernação de instância do EC2](hibernating-prerequisites.md).
         + Para as solicitações únicas, somente **Terminate** (Encerrar) é válido.

         Se você não especificar um valor, o padrão é **Terminate** (Encerrar) que não é válido para uma solicitação de instância spot persistente. Se você mantiver o padrão e tentar executar uma solicitação de instância spot persistente, receberá um erro.

         Para obter mais informações, consulte [Comportamento das interrupções de instâncias spot](interruption-behavior.md).

1. No painel **Summary** (Resumo), para **Number of instances** (Número de instâncias), insira o número de instâncias a serem executadas.
**nota**  
O Amazon EC2 cria uma solicitação distinta para cada instância spot.

1. No painel **Summary** (Resumo), revise os detalhes da instância e faça as alterações necessárias. Depois de enviar sua solicitação de instância spot, não é possível alterar os parâmetros da solicitação. É possível navegar diretamente para uma seção no assistente de execução de instância, escolhendo seu link no painel **Summary** (Resumo). Para obter mais informações, consulte [Resumo](ec2-instance-launch-parameters.md#liw-summary).

1. Quando estiver pronto para iniciar a instância, escolha **Launch instance** (Iniciar instância). 

   Se a instância não executar ou o estado passar imediatamente para `terminated`, em vez de `running`, consulte [Solucionar problemas de inicialização de instâncias do Amazon EC2](troubleshooting-launch.md).

------
#### [ AWS CLI ]

**Para criar uma solicitação de instância spot usando run-instances**  
Use o comando [run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html) e especifique as opções da instância spot no parâmetro `--instance-market-options` como segue.

```
--instance-market-options file://{{spot-options.json}}
```

Veja a seguir a estrutura de dados a ser especificada no arquivo JSON. Também é possível especificar `ValidUntil` e `InstanceInterruptionBehavior`. Se você não especificar um campo na estrutura de dados, será usado o valor padrão.

O exemplo a seguir cria uma solicitação `persistent`.

```
{
  "MarketType": "spot",
  "SpotOptions": {
    "SpotInstanceType": "{{persistent}}"
  }
}
```

**Para criar uma solicitação de instância spot usando request-spot-instances**

**nota**  
Não recomendamos o uso do comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) por ser uma API herdada e sem investimento planejado. Para obter mais informações, consulte [Qual é o melhor método de solicitação spot para usar?](spot-best-practices.md#which-spot-request-method-to-use)

Use o comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) para criar uma solicitação única:

```
aws ec2 request-spot-instances \
    --instance-count {{5}} \
    --type "one-time" \
    --launch-specification file://{{specification.json}}
```

Use o comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) para criar uma requisição persistente:

```
aws ec2 request-spot-instances \
    --instance-count {{5}} \
    --type "persistent" \
    --launch-specification file://{{specification.json}}
```

Para que os arquivos de especificação de execução de exemplo sejam usados com esses comandos, consulte [Exemplo de especificações de execução de solicitações de instância spot](spot-request-examples.md). Se você baixar um arquivo de especificação de execução no console de solicitações de spot, use o comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) (o console de solicitações spot especifica uma solicitação de instância spot usando uma frota spot).

------
#### [ PowerShell ]

**Para criar uma solicitação de instância spot**  
Use o cmdlet [New-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Instance.html) e especifique as opções da instância spot usando o parâmetro `-InstanceMarketOption`.

```
-InstanceMarketOptions $marketOptions
```

Crie a estrutura de dados para as opções de instância spot da seguinte forma.

```
$spotOptions = New-Object Amazon.EC2.Model.SpotMarketOptions
$spotOptions.SpotInstanceType="persistent"
$marketOptions = New-Object Amazon.EC2.Model.InstanceMarketOptionsRequest
$marketOptions.MarketType = "spot"
$marketOptions.SpotOptions = $spotOptions
```

------