

# Instâncias spot
<a name="using-spot-instances"></a>

Uma instância spot é uma instância que usa capacidade adicional do EC2 que está disponível por um valor mais baixo que o preço sob demanda. Como as Instâncias spot permitem que você solicite instâncias do EC2 não usadas com descontos consideráveis, é possível reduzir seus custos do Amazon EC2 significativamente. O preço por hora de uma instância spot é chamado de preço spot. O preço spot de cada tipo de instância em cada zona de disponibilidade é definido pelo Amazon EC2 e ajustado gradualmente com base na oferta e a demanda de longo prazo das Instâncias spot. Sua instância spot executará sempre que houver capacidade disponível.

As Instâncias spot são uma opção econômica se houver flexibilidade quanto ao momento em que as aplicações serão executadas e se as aplicações poderão ser interrompidas. Por exemplo, as Instâncias spot são adequadas para análise de dados, trabalhos em lote, processamento em segundo plano e tarefas opcionais. Para obter mais informações, consulte [Instâncias spot do Amazon EC2](https://aws.amazon.com/ec2/spot/).

Para obter uma comparação das diferentes opções de compra de instância do EC2, consulte [Opções de faturamento e compra do Amazon EC2](instance-purchasing-options.md).

## Conceitos
<a name="spot-features"></a>

Antes de começar a trabalhar com as Instâncias spot, é necessário se familiarizar com os seguintes conceitos:
+ *Grupo de capacidade spot*: um conjunto de instâncias do EC2 não utilizadas com o mesmo tipo de instância (por exemplo, `m5.large`) e zona de disponibilidade.
+ *Preço spot*: o preço atual de uma instância spot por hora.
+ *Solicitação de instância Spot*: solicita uma instância spot. Quando houver capacidade disponível, o Amazon EC2 atenderá à solicitação. Uma solicitação de instância spot é *única* ou *persistente*. O Amazon EC2 reenvia automaticamente uma solicitação de instância spot persistente depois que a instância spot associada à solicitação for interrompida.
+ *Recomendação de rebalanceamento de instância do EC2*: o Amazon EC2 emite um sinal de recomendação de rebalanceamento de instância para avisar que uma instância spot apresenta risco elevado de interrupção. Esse sinal fornece uma oportunidade de rebalancear proativamente as workloads entre instâncias spot novas ou existentes sem que seja necessário aguardar o aviso de interrupção de dois minutos da instância spot.
+ *Interrupção de instância spot*: o Amazon EC2 encerra, interrompe ou coloca em hibernação a instância spot quando o Amazon EC2 precisa novamente da capacidade. O Amazon EC2 fornece um aviso de interrupção da instância spot, enviando à instância um aviso de dois minutos antes que ela seja interrompida.

## Diferenças entre instâncias spot e instâncias sob demanda
<a name="key-differences-spot-on-demand"></a>

A tabela a seguir lista as principais diferenças entre instâncias spot e [instâncias sob demanda](ec2-on-demand-instances.md).


|  | Spot Instances | On-Demand Instances | 
| --- | --- | --- | 
|  Horário do lançamento  |  Só poderá ser executado imediatamente se a solicitação da instância spot estiver ativa e a capacidade estiver disponível.  |  Só poderá ser executado imediatamente se você fizer uma solicitação de execução manual e se a capacidade estiver disponível.  | 
|  Capacidade disponível  |  Se a capacidade não estiver disponível, a solicitação de instância spot continuará a fazer a solicitação de inicialização automaticamente até que a capacidade seja disponibilizada.  |  Se a capacidade não estiver disponível quando você fizer uma solicitação de execução, você receberá um erro de capacidade insuficiente (ICE).  | 
|  Custo por hora  |  O preço por hora das instâncias spot varia de acordo com a demanda e oferta de longo prazo.  |  O preço por hora de Instâncias on-demand é estático.  | 
| Recomendação de rebalanceamento | O sinal que o Amazon EC2 emite para uma instância spot em execução quando a instância possui risco elevado de interrupção. | Você determina quando uma instância sob demanda é interrompida (parada ou encerrada). | 
|  Interrupção de instância  |  É possível interromper e iniciar uma instância spot baseada no Amazon EBS. Além disso, o Amazon EC2 poderá [interromper](spot-interruptions.md) uma instância spot individual se a capacidade não estiver mais disponível.   |  Você determina quando uma instância sob demanda é interrompida (parada ou encerrada).  | 

## Definição de preço e economia
<a name="spot-pricing"></a>

Você paga o preço spot por Instâncias spot, que é definido pelo Amazon EC2 e ajustado gradualmente com base na oferta e demanda de longo prazo das Instâncias spot. Suas Instâncias spot serão executadas até que você as encerre, a capacidade não esteja mais disponível ou seu grupo do Amazon EC2 Auto Scaling as encerre durante o processo de [reduzir a escala horizontalmente](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-lifecycle.html#as-lifecycle-scale-in).

Se você ou o Amazon EC2 interromper uma instância spot em execução, você será cobrado pelos segundos usados ou pela hora completa, ou então não será cobrado, dependendo do sistema operacional usado e de quem interrompeu a instância spot. Para obter mais informações, consulte [Faturamento para Instâncias spot interrompidas](billing-for-interrupted-spot-instances.md).

As instâncias spot não são cobertas pelos Savings Plans. Se tiver um Savings Plan, ele não oferecerá vantagens econômicas adicionais, além das que você já obtém com o uso de instâncias spots. Além disso, seus gastos com instâncias spot não aplicam os compromissos dos Savings Plans para computação.

### Visualizar preços
<a name="spot-pricing-view-prices"></a>

Para ver o menor preço atual de instâncias spot (atualizado a cada cinco minutos) por Região da AWS e tipo de instância, consulte a página [Definição de preço de instâncias spot do Amazon EC2](https://aws.amazon.com/ec2/spot/pricing/).

Para visualizar o histórico de preços de spot dos últimos três meses, use o console do Amazon EC2 ou o comando [describe-spot-price-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-price-history.html). Para obter mais informações, consulte [Visualizar o histórico de preços de instância spot](using-spot-instances-history.md).

Mapeamos as zonas de disponibilidade para os códigos de cada Conta da AWS de maneira independente. Portanto, é possível obter resultados diferentes para o mesmo código de zona de disponibilidade (por exemplo, `us-west-2a`) entre contas diferentes.

### Visualizar economias
<a name="spot-pricing-view-savings"></a>

É possível visualizar as economias feitas com o uso de instâncias spot para uma única [frota spot](Fleets.md) ou para todas as instâncias spot. É possível visualizar as economias feitas na última hora ou nos últimos três dias, além de visualizar o custo médio por hora de vCPU e por hora de memória (GiB). As economias são estimadas e podem ser diferentes das economias reais porque não incluem os ajustes de faturamento de seu uso. Para obter mais informações sobre a visualização das economias, consulte [Economia na compra das Instâncias spot](spot-savings.md).

### Exibir faturamento
<a name="spot-pricing-view-billing"></a>

Sua fatura fornece detalhes sobre seu uso do serviço. Para obter mais informações, consulte [Exibição da sua fatura](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/getting-viewing-bill.html) no *Guia do usuário do AWS Billing*.

# Práticas recomendadas para instâncias spot do Amazon EC2
<a name="spot-best-practices"></a>

O Amazon EC2 fornece acesso à capacidade computacional sobressalente do EC2 na Nuvem AWS que está disponível por meio de instâncias spot com um desconto de até 90% em comparação com os preços de instâncias sob demanda. A única diferença entre instâncias sob demanda e instâncias spot é que as instâncias spot poderão ser interrompidas pelo Amazon EC2, com dois minutos de notificação, se o Amazon EC2 precisar recuperar capacidade. Para garantir a melhor experiência com instâncias Spot, é importante entender e aplicar as práticas recomendadas de uso.

As Instâncias spot são recomendadas para aplicações flexíveis, tolerantes a falhas e sem estado. Por exemplo, as Instâncias spot funcionam bem para big data, workloads em contêineres, CI/CD, servidores Web sem estado, computação de alta performance (HPC) e workloads de renderização.

Durante a execução, as Instâncias spot são exatamente as mesmos que as Instâncias on-demand. No entanto, o Spot não garante que você possa manter as instâncias em execução tempo suficiente para concluir as workloads. O Spot também não garante que você possa obter disponibilidade imediata das instâncias que está procurando, nem que sempre possa obter a capacidade agregada solicitada. Além disso, as interrupções e a capacidade da instância spot podem mudar ao longo do tempo porque a disponibilidade da instância spot varia de acordo com a oferta e a demanda, e a performance passada não é uma garantia de resultados futuros.

As Instâncias spot não são adequadas para workloads que são inflexíveis, com estado, intolerantes a falhas ou fortemente acopladas entre nós de instância. As instâncias spot também não são recomendadas para workloads que não sejam tolerantes a períodos ocasionais em que a capacidade-alvo não está totalmente disponível. Seguir as práticas recomendadas para spot de ser flexível em termos de tipos de instância e zonas de disponibilidade é a melhor chance de ter alta disponibilidade, mas isso não garante que haverá capacidade disponível, pois os picos na demanda de instâncias sob demanda podem perturbar as workloads nas instâncias spot.

Não é recomendável usar instâncias spot para essas workloads nem tentar fazer failover para instâncias sob demanda como forma de lidar com interrupções ou períodos de indisponibilidade. Fazer failover para instâncias sob demanda pode inadvertidamente causar interrupções em outras instâncias spot. Além disso, se as instâncias spot de uma combinação de tipo de instância e zona de disponibilidade forem interrompidas, poderá ser difícil obter instâncias sob demanda com a mesma combinação.

Independentemente de você ser um usuário spot experiente ou iniciante na utilização de instâncias spot, se estiver enfrentando problemas com interrupções ou disponibilidade de instâncias spot no momento, recomendamos que siga essas práticas recomendadas para ter a melhor experiência usando o serviço spot.

**Topics**
+ [Preparar instâncias individuais para interrupções](#prep-instances-for-interruptions)
+ [Ser flexível sobre tipos de instância e zonas de disponibilidade](#be-instance-type-flexible)
+ [Usando a seleção de tipo de instância baseada em atributos](#use-attribute-based-instance-type-selection)
+ [Usar pontuações de posicionamento spot para identificar regiões e zonas de disponibilidade ideais](#use-spot-placement-scores-to-identify-optimal-regions-and-availability-zones)
+ [Usar grupos do Auto Scaling ou a Frota do EC2 para gerenciar a capacidade agregada](#use-sf-asg-for-aggregate-capacity)
+ [Usar a estratégia de alocação otimizada para preço e capacidade](#use-capacity-optimized-allocation-strategy)
+ [Use serviços integrados da AWS para gerenciar as instâncias spot](#use-integrated-aws-services)
+ [Qual é o melhor método de solicitação spot para usar?](#which-spot-request-method-to-use)

## Preparar instâncias individuais para interrupções
<a name="prep-instances-for-interruptions"></a>

A melhor maneira de lidar com interrupções de instâncias spot com tranquilidade é arquitetar a aplicação para que ela seja tolerante a falhas. Para fazer isso, é possível aproveitar as recomendações de rebalanceamento de instâncias do EC2 e avisos de interrupção de instâncias spot.

Uma recomendação de rebalanceamento de uma instância do EC2 é um sinal que notifica você quando uma instância spot corre grande risco de interrupção. O sinal oferece a oportunidade de gerenciar proativamente a instância spot antes do aviso de interrupção de dois minutos da instância spot. É possível decidir rebalancear sua workload em Instâncias spot novas ou existentes que não tenham risco elevado de interrupção. Tornamos mais fácil para você usar esse sinal por meio do atributo de rebalanceamento de capacidade nos grupos do Auto Scaling e na Frota do EC2. 

Um aviso de interrupção da instância spot é um aviso emitido dois minutos antes de o Amazon EC2 interromper uma instância spot. Se a workload tiver “flexibilidade de tempo”, também é possível configurar as instâncias Spot para serem interrompidas ou para hibernarem, em vez de serem encerradas, quando forem interrompidas. O Amazon EC2 interrompe ou hiberna automaticamente suas instâncias spot durante a interrupção e retoma automaticamente as instâncias quando tivermos capacidade disponível.

Recomendamos que você crie uma regra no [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/index.html) que capture as recomendações de rebalanceamento e os avisos de interrupção e acione um ponto de verificação para o andamento da workload ou lide tranquilamente com a interrupção. Para obter mais informações, consulte [Monitorar os sinais de recomendação de rebalanceamento](rebalance-recommendations.md#monitor-rebalance-recommendations). Para obter um exemplo detalhado que orienta você sobre como criar e usar regras de evento, consulte [Aproveitar os avisos de interrupção de instância spot do Amazon EC2](https://aws.amazon.com/blogs/compute/taking-advantage-of-amazon-ec2-spot-instance-interruption-notices/).

Para obter mais informações, consulte [Recomendações de rebalanceamento de instâncias do EC2](rebalance-recommendations.md) e [Interrupções de instâncias spot](spot-interruptions.md).

## Ser flexível sobre tipos de instância e zonas de disponibilidade
<a name="be-instance-type-flexible"></a>

Um grupo de capacidade spot é um conjunto de instâncias do EC2 não utilizadas, com o mesmo tipo de instância (por exemplo, `m5.large`) e a zona de disponibilidade (por exemplo, us-east-1a). É necessário ser flexível sobre quais tipos de instância solicita e em quais zonas de disponibilidade pode implantar a workload. Isso dá ao Spot uma chance melhor de encontrar e alocar a quantidade necessária de capacidade computacional. Por exemplo, não peça apenas `c5.large` se você está disposto a usar grandes das famílias c4, m5 e m4.

Dependendo de suas necessidades específicas, é possível avaliar para quais tipos de instância é possível ter flexibilidade para atender aos requisitos de computação. Se uma workload puder ser dimensionada verticalmente, é necessário incluir tipos de instância maiores (mais vCPUs e memória) nas solicitações. Se você puder dimensionar somente horizontalmente, deverá incluir tipos de instância de geração mais antiga, pois eles têm menos demanda de clientes sob demanda.

Uma boa regra geral é ser flexível para pelo menos 10 tipos de instância para cada workload. Além disso, verifique se todas as zonas de disponibilidade estão configuradas para uso na VPC e selecionadas para a workload.

## Usando a seleção de tipo de instância baseada em atributos
<a name="use-attribute-based-instance-type-selection"></a>

Com a seleção do tipo de instância baseada em atributos, você pode especificar atributos de instância, como vCPUs, memória e armazenamento, para a workload que você quer executar. O EC2 Auto Scaling ou a frota do EC2 automaticamente identificará e inicializará instâncias que correspondam aos atributos especificados. Isso elimina o esforço necessário para selecionar manualmente tipos de instância específicos, o que exige um entendimento profundo da oferta de cada tipo de instância.

Além disso, a seleção do tipo de instância baseada em atributos permite que você use automaticamente tipos de instância recém-inicializados à medida que eles se tornam disponíveis. Isso garante acesso contínuo a uma gama cada vez mais ampla de capacidade de instância spot.

A seleção de tipo de instância baseada em atributos é ideal para workloads e frameworks que podem ser flexíveis em relação aos tipos de instância que são executadas, como workloads de computação de alta performance (HPC) e de big data.

Para obter mais informações, consulte [Create mixed instances group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) no *Guia do usuário do Amazon EC2 Auto Scaling* e [Especificar atributos para seleção de tipo de instância para frota do EC2 ou frota spot](ec2-fleet-attribute-based-instance-type-selection.md) neste guia.

## Usar pontuações de posicionamento spot para identificar regiões e zonas de disponibilidade ideais
<a name="use-spot-placement-scores-to-identify-optimal-regions-and-availability-zones"></a>

As instâncias spot são a capacidade não utilizada do EC2, e essa capacidade flutua com base na oferta e na demanda do EC2. Como resultado, talvez você nem sempre obtenha a capacidade spot exata de que precisa em um local específico e em um horário específico. Para mitigar essa imprevisibilidade, você pode usar o recurso de pontuação de posicionamento spot. Esse recurso fornece recomendações para regiões ou zonas de disponibilidade com maior probabilidade de ter capacidade suficiente para atender às suas necessidades de capacidade spot sem exigir que você inicialize primeiro instâncias spot nestes locais.

A pontuação de posicionamento spot é mais bem usada para workloads que podem ser flexíveis quanto aos tipos de instância e à região ou zona de disponibilidade que elas podem usar. Tudo que você precisa fazer é especificar a capacidade spot necessária, seus requisitos de tipo de instância e se você quer recomendações para regiões ou zonas de disponibilidade. Em troca, você recebe uma pontuação que varia de 1 a 10 para cada região ou zona de disponibilidade, indicando a probabilidade do provisionamento com êxito da capacidade spot solicitada naquele local. Uma pontuação de 10 indica que a solicitação de spot tem alta probabilidade de êxito.

É importante observar que a pontuação de posicionamento spot é uma recomendação pontual, pois a capacidade pode variar com o tempo. Ela não garante capacidade disponível nem prevê o risco de interrupção.

É possível usar o recurso de pontuação de posicionamento spot no console do Amazon EC2, na AWS CLI ou em um SDK. Para obter mais informações, consulte [Pontuação de posicionamento de spot](spot-placement-score.md). 

## Usar grupos do Auto Scaling ou a Frota do EC2 para gerenciar a capacidade agregada
<a name="use-sf-asg-for-aggregate-capacity"></a>

O spot permite que você pense em termos de capacidade agregada, ou seja, em unidades que incluem vCPUs, memória, armazenamento ou throughput de rede, em vez de pensar em termos de instâncias individuais. Os grupos do Auto Scaling e a Frota do EC2 permitem iniciar e manter uma capacidade pretendida, e solicitar recursos para substituir automaticamente os que forem interrompidos ou encerrados manualmente. Ao configurar um grupo do Auto Scaling ou uma Frota do EC2, você só precisa especificar os tipos de instância e a capacidade pretendida de acordo com as necessidades da aplicação. Para obter mais informações, consulte [Grupos de Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html) no *Guia do usuário do Amazon EC2 Auto Scaling* e [Criar uma Frota do EC2.](create-ec2-fleet.md) neste guia do usuário.

## Usar a estratégia de alocação otimizada para preço e capacidade
<a name="use-capacity-optimized-allocation-strategy"></a>

As estratégias de alocação nos grupos de Auto Scaling ajudam a provisionar a capacidade prevista sem a necessidade de procurar manualmente os grupos de capacidade spot com capacidade adicional. Recomendamos o uso da estratégia `price-capacity-optimized`, pois ela provisiona automaticamente as instâncias dos grupos de capacidade spot mais disponíveis que também têm o menor preço possível. Também é possível aproveitar a estratégia de alocação de `price-capacity-optimized` na Frota do EC2. Como a capacidade da instância spot é proveniente de grupos com capacidade ideal, isso diminui a possibilidade de que as instâncias spot sejam recuperadas. Para obter mais informações, consulte [Estratégias de alocação para vários tipos de instâncias](https://docs.aws.amazon.com/autoscaling/ec2/userguide/allocation-strategies.html) no *Guia do usuário do Amazon EC2 Auto Scaling* e [Quando as workloads têm um alto custo de interrupção](ec2-fleet-allocation-strategy.md#ec2-fleet-strategy-capacity-optimized) neste guia do usuário.

## Use serviços integrados da AWS para gerenciar as instâncias spot
<a name="use-integrated-aws-services"></a>

Outros serviços da AWS integram-se ao Spot para reduzir os custos gerais de computação sem a necessidade de gerenciar instâncias ou frotas individuais. Recomendamos considerar as soluções a seguir para suas workloads aplicáveis: Amazon EMR, Amazon Elastic Container Service, AWS Batch, Amazon Elastic Kubernetes Service, Amazon SageMaker AI, AWS Elastic Beanstalk e Amazon GameLift Servers. Para saber mais sobre as melhores práticas do Spot com esses serviços, consulte o [Site de workshops de Instâncias spot do Amazon EC2](https://ec2spotworkshops.com/).

## Qual é o melhor método de solicitação spot para usar?
<a name="which-spot-request-method-to-use"></a>

Use a tabela a seguir para determinar qual API usar ao solicitar instâncias spot.


****  

| solicitações de | Quando usar? | Caso de uso | Devo usar esta API? | 
| --- | --- | --- | --- | 
|  [CreateAutoScalingGroup](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_CreateAutoScalingGroup.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  Crie um grupo do Auto Scaling que gerencie o ciclo de vida de suas instâncias enquanto mantém o número desejado de instâncias. Compatível com dimensionamento horizontal da escala (adição de mais instâncias) entre os limites mínimo e máximo especificados.  | Sim | 
| [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  Crie uma frota de instâncias sob demanda e instâncias spot em uma única solicitação, com várias especificações de execução, que variam de acordo com o tipo de instância, a AMI, a zona de disponibilidade ou a sub-rede. Por padrão, a estratégia de alocação de instância spot usa o `lowest-price` por unidade, mas é possível alterá-la para `price-capacity-optimized` , `capacity-optimized` ou `diversified`.  |  Sim. No modo `instant` se não houver necessidade de autoescalabilidade  | 
| [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  Execute um número especificado de instâncias usando uma AMI e um tipo de instância.  |  Não. Porque RunInstances não permite tipos de instâncias mistas em uma única solicitação  | 
| [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  NÃO USE. RequestSpotFleet é uma API herdada e sem investimento planejado.   | Não | 
| [RequestSpotInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/spot-best-practices.html)  |  NÃO USE. RequestSpotInstances é uma API herdada e sem investimento planejado.   | Não | 

# Como as Instâncias spot funcionam
<a name="how-spot-instances-work"></a>

Para iniciar uma instância Spot, você cria uma *solicitação de instância spot* ou o Amazon EC2 cria uma solicitação de instância spot em seu nome. A instância spot é iniciada quando a solicitação de instância spot é atendida.

É possível iniciar uma instância spot usando vários serviços diferentes. Para obter mais informações, consulte [Conceitos básicos das instâncias spot do Amazon EC2](https://aws.amazon.com/ec2/spot/getting-started/). Neste guia do usuário, descrevemos as seguintes maneiras de executar uma instância spot usando o EC2:
+ É possível criar uma solicitação de instância spot usando 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 obter mais informações, consulte [Gerenciar as instâncias spot](using-spot-instances-request.md).
+ É possível criar uma EC2 Fleet e nela especificar o número desejado de instâncias spot. O Amazon EC2 cria uma solicitação de instância spot em seu nome para cada instância spot especificada na EC2 Fleet. Para obter mais informações, consulte [Criar uma Frota do EC2.](create-ec2-fleet.md).
+ É possível criar uma frota spot e nela especificar o número desejado de instâncias spot. O Amazon EC2 cria uma solicitação de instância spot em seu nome para cada instância spot especificada na solicitação de frota spot. Para obter mais informações, consulte [Criar uma Frota spot](create-spot-fleet.md).

Sua instância spot será iniciada se houver capacidade disponível. Sua instância spot será executada até que você a interrompa ou a encerre, ou até que o Amazon EC2 a interrompa (processo conhecido como *interrupção da instância spot*). O Amazon EC2 pode parar, encerrar ou hibernar uma instância spot ao interrompê-la.

Quando você usa instâncias spot, deve estar preparado para interrupções. O Amazon EC2 poderá interromper a sua instância spot quando a demanda por instâncias spot aumentar ou quando o suprimento de instâncias spot diminuir. Quando o Amazon EC2 interrompe uma instância spot, ele fornece um aviso de interrupção de instância spot, enviando à instância um aviso de dois minutos antes que o Amazon EC2 a interrompa. Você não pode habilitar a proteção contra encerramento para Instâncias spot. Para obter mais informações, consulte [Interrupções de instâncias spot](spot-interruptions.md).

**Topics**
+ [Estados da solicitação de instância spot](#creating-spot-request-status)
+ [Executar Instâncias spot em um grupo de execução](#spot-launch-group)
+ [Executar Instâncias spot em um grupo de zonas de disponibilidade](#spot-az-group)
+ [Executar Instâncias spot em uma VPC](#concepts-spot-instances-vpcs)
+ [Executar instâncias de desempenho expansível](#burstable-spot-instances)
+ [Executar no hardware de locatário único](#spot-instance-tenancy)

## Estados da solicitação de instância spot
<a name="creating-spot-request-status"></a>

Uma solicitação de instância spot pode estar em um dos seguintes estados:
+ `open` – A solicitação está esperando para ser atendida.
+ `active` – A solicitação foi atendida e tem uma instância spot associada.
+ `failed` – A solicitação tem um ou mais parâmetros inválidos.
+ `closed` – A instância spot foi interrompida ou encerrada.
+ `disabled` – Você parou a instância spot.
+ `cancelled` – Você cancelou a solicitação ou ela expirou.

A ilustração a seguir representa as transições entre os estados da solicitação. Observe que as transições dependem do tipo de solicitação (única ou persistente).

![\[Estados de solicitação de instância spot.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/spot_request_states.png)


Uma solicitação de instância spot única permanece ativa até o Amazon EC2 executar a instância spot, a solicitação expirar ou você cancelar a solicitação. Se não houver capacidade disponível, sua instância spot será encerrada e a solicitação de instância spot será fechada.

Uma solicitação de instância spot persistente permanecerá ativa até expirar ou até que você a cancele, mesmo se a solicitação tiver sido atendida. Se não houver capacidade disponível, sua instância spot será interrompida. Depois que a instância é interrompida, quando houver novamente capacidade disponível, a instância spot será iniciada (se estiver parada) ou retomada (se estiver hibernada). É possível parar uma instância spot e reiniciá-la quando houver capacidade disponível. Se a instância spot for encerrada (independentemente de estar parada ou em execução), a solicitação de instância spot será reaberta e o Amazon EC2 iniciará uma nova instância spot. Para mais informações, consulte [Parar uma instância spot](using-spot-instances-request.md#stopping-a-spot-instance), [Iniciar uma instância spot](using-spot-instances-request.md#starting-a-spot-instance) e [Encerrar uma instância spot](using-spot-instances-request.md#terminating-a-spot-instance).

É possível acompanhar o status das solicitações de instância spot, bem como o status das instâncias spot executadas, pelo status. Para obter mais informações, consulte [Obter o status de uma solicitação de instância spot](spot-request-status.md).

## Executar Instâncias spot em um grupo de execução
<a name="spot-launch-group"></a>

Especifique um grupo de execução na solicitação de instância spot para instruir o Amazon EC2 a executar um conjunto de instâncias spot somente se ele puder executar todas elas. Além disso, se o serviço spot precisar encerrar uma das instâncias em um grupo de execução, ele deverá encerrar todas elas. Contudo, se você encerrar uma ou mais instâncias em um grupo de execução, o Amazon EC2 não encerrará as instâncias restantes no grupo de execução.

Embora essa opção possa ser útil, adicionar essa restrição pode diminuir as chances de a sua solicitação de instância spot ser atendida e aumenta as chances de encerramento das instâncias spot. Por exemplo, seu grupo de execução inclui instâncias em várias zonas de disponibilidade. Se a capacidade em uma dessas zonas de disponibilidade diminuir e não estiver mais disponível, o Amazon EC2 encerrará todas as instâncias do grupo de execução.

Se você criar outra solicitação de instância spot bem-sucedida que especifique o mesmo grupo de execução (existente) de uma solicitação bem-sucedida anterior, as novas instâncias serão adicionadas ao grupo de execução. Subsequentemente, se uma instância nesse grupo de execução for encerrada, todas as instâncias no grupo de execução serão encerradas, o que inclui instâncias executadas pela primeira e a segunda solicitações.

## Executar Instâncias spot em um grupo de zonas de disponibilidade
<a name="spot-az-group"></a>

Especifique um grupo de zonas de disponibilidade na solicitação de instância spot para informar ao Amazon EC2 para iniciar um conjunto de instâncias spot na mesma zona de disponibilidade. O Amazon EC2 não precisa interromper todas as instâncias em um grupo de zonas de disponibilidade ao mesmo tempo. Se o Amazon EC2 precisar interromper uma das instâncias em um grupo de zonas de disponibilidade, as outras permanecerão em execução.

Embora essa opção possa ser útil, a adição dessa restrição pode reduzir as possibilidades de sua solicitação de instância spot ser atendida.

Se você especificar um grupo de zonas de disponibilidade, mas não especificar uma zona de disponibilidade na solicitação de instância spot, o resultado dependerá da rede especificada.

**VPC padrão**  
O Amazon EC2 usa a zona de disponibilidade para a sub-rede especificada. Se você não especificar uma sub-rede, ele selecionará uma zona de disponibilidade e sua sub-rede padrão, mas não necessariamente a zona de preço mais baixo. Se você excluir a sub-rede padrão de uma zona de disponibilidade, deverá especificar uma sub-rede diferente.

**VPC não padrão**  
O Amazon EC2 usa a zona de disponibilidade para a sub-rede especificada.

## Executar Instâncias spot em uma VPC
<a name="concepts-spot-instances-vpcs"></a>

Especifique uma sub-rede para as Instâncias spot da mesma maneira que você especifica uma sub-rede para as Instâncias on-demand.
+ [VPC padrão] Se você quiser que a instância spot seja executada em uma zona de disponibilidade de baixo preço, especifique a sub-rede correspondente na solicitação de instância spot. Se você não especificar uma sub-rede, o Amazon EC2 selecionará uma para você, e a zona de disponibilidade para essa sub-rede poderá não ter o menor preço spot.
+ [VPC não padrão] Especifique a sub-rede da instância spot.

## Executar instâncias de desempenho expansível
<a name="burstable-spot-instances"></a>

Os tipos de instância T são [instâncias de desempenho expansível](burstable-performance-instances.md). Se você executar as Instâncias spot usando um tipo de instância expansível e planejar usar as instâncias spot expansíveis imediatamente e por um breve período, sem tempo ocioso para acumular créditos de CPU, recomendamos iniciá-las no [modo padrão](burstable-performance-instances-standard-mode.md) para evitar pagar custos mais elevados. Se executar as Instâncias spot expansíveis no [modo ilimitado](burstable-performance-instances-unlimited-mode.md) e esgotar a CPU imediatamente, você gastará os créditos excedentes por isso. Se a instância for usada por um curto período, não haverá tempo para acumular créditos de CPU para pagamento dos créditos excedentes, e você precisará pagar os créditos excedentes ao encerrar a instância.

O modo ilimitado será adequado para instâncias spot expansíveis somente se a instância for executada por tempo suficiente para acumular créditos de CPU para expansão. Caso contrário, pagar por créditos excedentes torna a as instâncias spot expansíveis mais caras do que o uso de outras instâncias. Para obter mais informações, consulte [Quando usar o modo ilimitado versus CPU fixa](burstable-performance-instances-unlimited-mode-concepts.md#when-to-use-unlimited-mode).

As instâncias T2, quando configuradas no [modo Padrão](burstable-performance-instances-standard-mode.md), recebem [créditos de inicialização](burstable-performance-instances-standard-mode-concepts.md#launch-credits). As instâncias T2 são as únicas instâncias de performance expansível que recebem créditos de inicialização. Os créditos de lançamento são feitos para fornecer uma experiência de lançamento inicial produtiva para instâncias T2 fornecendo recursos computacionais suficientes para configurar a instância. Lançamentos repetidos de instâncias T2 para acessar novos créditos de lançamento não são permitidos. Se você precisar de uma CPU sustentada, poderá obter créditos (ficando inativo durante um período), usar o [modo Ilimitado](burstable-performance-instances-unlimited-mode.md) para T2 Instâncias spot ou usar um tipo de instância com CPU dedicada.

## Executar no hardware de locatário único
<a name="spot-instance-tenancy"></a>

É possível executar uma instância spot no hardware de ocupante único. As instâncias spot dedicadas são fisicamente isoladas de instâncias que pertencem a outras contas da AWS. Para obter mais informações, consulte [Instâncias dedicadas do Amazon EC2](dedicated-instance.md) e as [instâncias dedicadas do Amazon EC2](https://aws.amazon.com/ec2/pricing/dedicated-instances/).

Para executar uma instância spot dedicada, execute um dos seguintes procedimentos:
+ Especifique um locação `dedicated` ao criar a solicitação de instância spot. Para obter mais informações, consulte [Gerenciar as instâncias spot](using-spot-instances-request.md).
+ Solicite uma solicitação spot em uma VPC com uma locação de instância `dedicated`. Para obter mais informações, consulte [Iniciar Instâncias dedicadas em uma VPC com a locação padrão](dedicatedinstancesintovpc.md). Você não poderá solicitar uma instância spot com uma locação `default` se solicitá-la em uma VPC com uma locação de instância `dedicated`.

Todas as famílias de instâncias são compatíveis com Instâncias spot dedicadas, exceto instâncias T. Para cada família de instâncias compatíveis, apenas o maior tamanho de instância ou tamanho de metal é compatível com Instâncias spot dedicadas.

# Visualizar o histórico de preços de instância spot
<a name="using-spot-instances-history"></a>

Os preços de instâncias spot são definidos pelo Amazon EC2 e ajustados gradualmente de acordo com tendências de longo prazo da oferta e da demanda de capacidade de instâncias spot.

Quando sua solicitação de spot for atendida, as instâncias spot serão iniciadas pelo preço spot atual, não excedendo o preço sob demanda. É possível visualizar o histórico de preços spot dos últimos 90 dias, filtrando por tipo de instância, sistema operacional e zona de disponibilidade.

Para obter os preços de instâncias spot *atuais*, consulte a [definição de preço de instâncias spot do Amazon EC2](https://aws.amazon.com/ec2/spot/pricing/).

------
#### [ Console ]

**Para visualizar o histórico de preços de spot**

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 **Solicitações spot**.

1. Escolha **Histórico de definição de preço**. 

1. Em **Graph** (Gráfico), escolha comparar o histórico de preços por **Availability Zones** (Zonas de disponibilidade) ou por **Instances Types** (Tipos de Instância).
   + Se você escolher **Zonas de disponibilidade**, escolha o **Tipo de instância**, o sistema operacional (**Plataforma** e o **Intervalo de datas** para os quais deseja visualizar o histórico de preços.
   + Se você escolher **Tipos de instância**, escolha até cinco ****Tipos de instância**, a Zona de disponibilidade**, o sistema operacional (**Plataforma**) e o **Intervalo de datas** para os quais deseja visualizar o histórico de preços.

   A captura de tela a seguir mostra uma comparação de preços para diferentes tipos de instância.  
![\[O Spot Instance pricing history (Histórico de definição de preço de instâncias spot) no console do Amazon EC2.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/spot-instance-pricing-history.png)

1. Mova o ponteiro do mouse sobre o gráfico para exibir os preços em horas específicas no intervalo de datas selecionado. Os preços são exibidos nos blocos de informações acima do gráfico. O preço exibido na linha superior mostra o preço em uma data específica. O preço exibido na segunda linha mostra o preço médio durante o intervalo de datas selecionado.

1. Para exibir o preço por vCPU, ative a opção **Display normalized prices** (Exibir preços normalizados). Para exibir o preço do tipo de instância, desative **Display normalized prices** (Exibir preços normalizados).

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

**Para visualizar o histórico de preços de spot**  
Use o seguinte comando [describe-spot-price-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-price-history.html).

```
aws ec2 describe-spot-price-history \
    --instance-types c6i.xlarge \
    --product-descriptions "Linux/UNIX" \
    --start-time 2025-04-01T00:00:00 \
    --end-time 2025-04-02T00:00:0
```

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

**Para visualizar o histórico de preços de spot**  
Use o cmdlet [Get-EC2SpotPriceHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotPriceHistory.html).

```
Get-EC2SpotPriceHistory `
    -InstanceType c6i.xlarge `
    -ProductDescription "Linux/UNIX" `
    -UtcStartTime 2025-04-01T00:00:00 `
    -UtcEndTime 2025-04-02T00:00:0
```

------

# Economia na compra das Instâncias spot
<a name="spot-savings"></a>

É possível visualizar as informações de uso e de economias das Instâncias spot em nível de frota ou de todas as Instâncias spot em execução. No nível por frota, as informações de uso e de economia incluem todas as instâncias executadas e encerradas pela frota. É possível visualizar essas informações da última hora ou dos últimos três dias.

A captura de tela a seguir da seção **Savings** (Economia) mostra as informações de uso e de economia spot de uma frota spot.

![\[A seção Savings (Economia) da página Spot Fleet details (Detalhes da frota spot).\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/spot-savings.png)


É possível visualizar as seguintes informações de uso e de economia:
+ **Spot Instances (Instâncias spot)**: o número de instâncias spot executadas e encerradas pela frota spot. Ao visualizar o resumo de economias, o número representa todas as Instâncias spot em execução.
+ **vCPU-hours (Horas de vCPU)** – o número de horas de vCPU usadas entre todas as Instâncias spot no período selecionado.
+ **Mem(GiB)-hours (Horas de mem(GiB))** – o número de horas de GiB usadas entre todas as Instâncias spot no período selecionado.
+ **On-Demand total (Total sob demanda)** – a quantidade total que você pagaria pelo período de tempo selecionado se tivesse executado essas instâncias como Instâncias on-demand.
+ **Spot total (Total de Spot)** – a quantidade total a ser paga para o período selecionado.
+ **Savings (Economias)** – a porcentagem economizada por não pagar o preço sob demanda.
+ **Average cost per vCPU-hour (Custo médio por hora de vCPU)** – o custo médio por hora de uso das vCPUs entre todas as Instâncias spot para o período selecionado, calculado da seguinte forma: **Average cost per vCPU-hour (Custo médio por hora de vCPU)** = **Spot total (Total de Spot)** / **vCPU-hours (Horas de vCPU)**.
+ **Average cost per mem(GiB)-hour (Custo médio por hora de mem(GiB))** – o custo médio por hora de uso de GiBs entre todas as Instâncias spot para o período selecionado, calculado da seguinte forma: **Average cost per mem(GiB)-hour (Custo médio por hora de mem(GiB))** = **Spot total (Total de Spot)** / **mem(GiB)-hours (Horas de mem(GiB))**.
+ Tabela **Details (Detalhes)**: os diferentes tipos de instância (o número de instâncias por tipo de instância está entre parênteses) que compõem a frota spot. Ao visualizar o resumo de economias, isso representa todas as Instâncias spot em execução.

As informações de economias podem ser visualizadas apenas usando o console do Amazon EC2.

**Para visualizar as informações de economia de uma frota spot**

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 **Solicitações spot**.

1. Selecione o ID de uma frota spot e role até seção **Savings** (Economia).

   Se preferir, marque a caixa de seleção ao lado do ID de solicitação de frota spot e escolha a guia **Economia**.

1. Por padrão, a página exibe as informações de uso e de economia dos últimos três dias. É possível escolher a **last hour (última hora)** ou os **last three days (últimos três dias)**. Para Frotas spot que foram executadas há menos de uma hora, a página mostra a economia estimada para a hora.

**Para visualizar as informações de economia de todas as instâncias spot em execução**

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 **Solicitações spot**.

1. Escolha **Savings Summary** (Resumo das economias).

# 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
```

------

# Exemplo de especificações de execução de solicitações de instância spot
<a name="spot-request-examples"></a>

Os exemplos a seguir mostram configurações de execução que é possível usar com o comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) para criar uma solicitação de instância spot. Para obter mais informações, consulte [Gerenciar as instâncias spot](using-spot-instances-request.md).

**Importante**  
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).

**Topics**
+ [Exemplo 1: Executar Instâncias spot](#spot-launch-specification1)
+ [Exemplo 2: executar Instâncias spot na zona de disponibilidade especificada](#spot-launch-specification2)
+ [Exemplo 3: executar Instâncias spot na sub-rede especificada](#spot-launch-specification3)
+ [Exemplo 4: executar uma instância spot dedicada](#spot-launch-specification4)

## Exemplo 1: Executar Instâncias spot
<a name="spot-launch-specification1"></a>

O exemplo a seguir não inclui uma zona de disponibilidade nem sub-rede. O Amazon EC2 seleciona uma zona de disponibilidade para você. O Amazon EC2 executa as instâncias na sub-rede padrão da zona de disponibilidade selecionada.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## Exemplo 2: executar Instâncias spot na zona de disponibilidade especificada
<a name="spot-launch-specification2"></a>

O exemplo a seguir inclui uma zona de disponibilidade. O Amazon EC2 executa as instâncias na sub-rede padrão da zona de disponibilidade especificada.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "Placement": {
    "AvailabilityZone": "us-west-2a"
  },
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## Exemplo 3: executar Instâncias spot na sub-rede especificada
<a name="spot-launch-specification3"></a>

O exemplo a seguir inclui uma sub-rede. O Amazon EC2 executa as instâncias na sub-rede especificada. Se a VPC não for padrão, a instância não receberá um endereço IPv4 público por padrão.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "m5.medium",
  "SubnetId": "subnet-1a2b3c4d",
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

Para atribuir um endereço IPv4 público a uma instância em uma VPC não padrão, especifique o campo `AssociatePublicIpAddress` conforme exibido no seguinte exemplo. Ao especificar uma interface de rede, é necessário incluir o ID da sub-rede e o ID do grupo de segurança usando a interface de rede, em vez de usar os campos `SubnetId` e `SecurityGroupIds` mostrados no bloco de código anterior.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "InstanceType": "m5.medium",
  "NetworkInterfaces": [
    {
      "DeviceIndex": 0,
      "SubnetId": "subnet-1a2b3c4d5e6f7g8h9",
      "Groups": [ "sg-1a2b3c4d5e6f7g8h9" ],
      "AssociatePublicIpAddress": true
    }
  ],
  "IamInstanceProfile": {
      "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
  }
}
```

## Exemplo 4: executar uma instância spot dedicada
<a name="spot-launch-specification4"></a>

O exemplo a seguir solicita uma instância spot com a locação de `dedicated`. Uma instância spot dedicada deve ser executada em uma VPC.

```
{
  "ImageId": "ami-0abcdef1234567890",
  "KeyName": "my-key-pair",
  "SecurityGroupIds": [ "sg-1a2b3c4d5e6f7g8h9" ],
  "InstanceType": "c5.8xlarge",
  "SubnetId": "subnet-1a2b3c4d5e6f7g8h9",
  "Placement": {
    "Tenancy": "dedicated"
  }
}
```

# Obter o status de uma solicitação de instância spot
<a name="spot-request-status"></a>

Para ajudar você a acompanhar suas solicitações de instância spot e planejar o uso de instâncias spot, use o status de solicitação fornecido pelo Amazon EC2. Por exemplo, um status de solicitação informa o motivo por que sua solicitação spot ainda não foi atendida ou lista as restrições que estão impedindo o atendimento de sua solicitação spot.

Em cada etapa do processo — também denominado *ciclo de vida* da solicitação spot — eventos específicos determinam estados sucessivos de solicitação.

A ilustração a seguir mostra como as solicitações de instância spot funcionam. Observe que o tipo de solicitação (única ou persistente) determina se a solicitação será reaberta ou quando o Amazon EC2 interromper uma instância spot, ou você parar uma instância spot. Se a requisição for persistente, ela será aberta novamente depois que a instância spot for interrompida. Se a solicitação for persistente e você parar a instância spot, a solicitação só será reaberta depois que você reiniciar a instância spot.

![\[Como as requisições de instância spot funcionam.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/spot_lifecycle.png)


**Topics**
+ [Obter informações do status da solicitação](#get-spot-instance-request-status)
+ [Códigos de status das solicitações spot](#spot-instance-request-status-understand)
+ [Evento de atendimento de solicitação de instância spot do EC2](#spot-request-fulfillment-event)
+ [Mudanças de estado para uma solicitação spot](spot-instances-request-status-lifecycle.md)

## Obter informações do status da solicitação
<a name="get-spot-instance-request-status"></a>

É possível obter informações de status para sua solicitação de instância spot.

------
#### [ Console ]

**Para obter informações de status da solicitação**

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, escolha **Spot Requests (Solicitações spot)** e selecione a solicitação spot.

1. Para verificar o status, na guia **Descrição**, marque o campo **Status** .

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

**Para obter informações de status da solicitação**  
Use o seguinte comando [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html).

```
aws ec2 describe-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

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

**Para obter informações de status da solicitação**  
Use o cmdlet [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html).

```
Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

## Códigos de status das solicitações spot
<a name="spot-instance-request-status-understand"></a>

As informações de status da solicitação spot são compostas de um código de status da solicitação, o tempo de atualização e uma mensagem de status. Juntas, essas informações ajudam a determinar a disposição de sua solicitação spot.

Veja a seguir os códigos de status de solicitação spot:

`az-group-constraint`  
O Amazon EC2 não pode executar todas as instâncias que você solicitou na mesma zona de disponibilidade.

`bad-parameters`  
Um ou mais parâmetros para sua solicitação spot são inválidos (por exemplo, a AMI que você especificou não existe). A mensagem de status de solicitação indica qual parâmetro é inválido.

`canceled-before-fulfillment`  
O usuário cancelou a solicitação spot antes de ser atendida.

`capacity-not-available`  
Não há capacidade suficiente disponível para as instâncias solicitadas.

`constraint-not-fulfillable`  
A solicitação spot não pode ser atendida porque uma ou mais restrições são inválidas (por exemplo, a zona de disponibilidade não existe). A mensagem de status de solicitação indica qual restrição é inválida.

`fulfilled`  
A solicitação spot é `active` e Amazon EC2 está executando seu Instâncias spot.

`instance-stopped-by-price`  
Sua instância foi interrompida porque o preço spot excedeu seu preço máximo.

`instance-stopped-by-user`  
A instância foi interrompida porque um usuário interrompeu a instância ou executou o comando de desligamento a partir da instância.

`instance-stopped-no-capacity`  
Sua instância foi interrompida devido às necessidades de gerenciamento de capacidade do EC2.

`instance-terminated-by-price`  
Sua instância foi encerrada porque o preço spot excedeu seu preço máximo. Se sua solicitação for uma sugestão de preço persistente, o processo será reiniciado, portanto, sua solicitação está com a avaliação pendente.

`instance-terminated-by-schedule`  
Sua instância spot foi encerrada no final da duração prevista.

`instance-terminated-by-service`  
A instância foi encerrada em um estado interrompido.

`instance-terminated-by-user` ou `spot-instance-terminated-by-user`  
Você encerrou uma instância spot que tinha sido atendida, portanto, o estado da solicitação é `closed` (a menos que se trate de uma requisição persistente) e o estado da instância é `terminated` .

`instance-terminated-launch-group-constraint`  
Uma ou mais instâncias no grupo de execução foram encerradas, portanto, a restrição do grupo de execução deixou de ser atendida.

`instance-terminated-no-capacity`  
Sua instância foi encerrada devido aos processos padrão de gerenciamento de capacidade.

`launch-group-constraint`  
O Amazon EC2 não pode executar todas as instâncias que você solicitou ao mesmo tempo. Todas as instâncias em um grupo de execução são iniciadas e encerradas juntas.

`limit-exceeded`  
O limite no número de volumes EBS ou de armazenamento de volume total foi excedido. Para obter mais informações, consulte [Quotas for Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-resource-quotas.html) no *Guia do usuário do Amazon EBS*.

`marked-for-stop`  
A instância spot é marcada para interrupção.

`marked-for-termination`  
A instância spot é marcada para encerramento.

`not-scheduled-yet`  
A solicitação spot não é avaliada até a data programada.

`pending-evaluation`  
Após criar uma solicitação de instância spot, ela entrará no estado `pending-evaluation` enquanto o sistema avalia os parâmetros da solicitação.

`pending-fulfillment`  
O Amazon EC2 está tentando provisionar as Instâncias spot.

`placement-group-constraint`  
A solicitação spot ainda não pode ser atendida porque uma instância spot não pode ser adicionada ao grupo de posicionamento no momento.

`price-too-low`  
A solicitação ainda não pode ser atendida porque seu preço máximo está abaixo do preço spot. Nesse caso, nenhuma instância é executada e sua solicitação permanece `open`.

`request-canceled-and-instance-running`  
Você cancelou a solicitação spot enquanto as Instâncias spot ainda estão em execução. A solicitação é `cancelled`, mas instâncias permanecem `running`.

`schedule-expired`  
A solicitação spot expirou porque não foi atendida antes da data especificada.

`system-error`  
Houve um erro de sistema inesperado. Se esse for um problema recorrente, entre em contato com o AWS Support para obter assistência.

## Evento de atendimento de solicitação de instância spot do EC2
<a name="spot-request-fulfillment-event"></a>

Quando uma solicitação de instância spot é atendida, o Amazon EC2 envia um evento de atendimento de solicitação de instância spot do EC2 ao Amazon EventBridge. É possível criar uma regra para realizar uma ação sempre que esse evento ocorrer, como invocar uma função Lambda ou notificar um tópico do Amazon SNS.

A seguir estão dados de exemplo para esse evento.

```
{
    "version": "0",
    "id": "01234567-1234-0123-1234-012345678901",
    "detail-type": "EC2 Spot Instance Request Fulfillment",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "spot-instance-request-id": "sir-0e54a519c9EXAMPLE",
        "instance-id": "i-1234567890abcdef0"
    }
}
```

Para saber mais, consulte o [Guia do Usuário do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/).

# Mudanças de estado para uma solicitação spot
<a name="spot-instances-request-status-lifecycle"></a>

O diagrama a seguir mostra os caminhos que a solicitação spot pode seguir durante todo o ciclo de vida, do envio ao encerramento. Cada etapa é representada como um nó, e o código de status de cada nó descreve o status da solicitação spot e da instância spot.

![\[Ciclo de vida de uma solicitação de instância spot.\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/images/spot-request-status-diagram.png)


**Avaliação pendente**  
Assim que você cria uma solicitação de instância spot, ela entra no estado `pending-evaluation`, a menos que um ou mais parâmetros da solicitação não sejam válidos (`bad-parameters`).


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
| pending-evaluation | open | Não aplicável | 
| bad-parameters | closed | Não aplicável | 

**Em espera**  
Se uma ou mais restrições da solicitação forem válidas, mas ainda não for possível atendê-las, ou se não houver capacidade suficiente, a solicitação assumirá um estado em espera aguardando que as restrições sejam atendidas. As opções de solicitação afetam a probabilidade de atendimento da solicitação. Por exemplo, se não houver capacidade, sua solicitação permanecerá no estado de hibernação até que haja capacidade disponível. Se você especificar um grupo de zonas de disponibilidade, a solicitação permanecerá no estado de espera até a restrição de zona de disponibilidade ser atendida.

No caso de interrupção de uma das zonas de disponibilidade, há uma chance de que a capacidade extra do EC2 disponível para solicitações de instância spot em outras zonas de disponibilidade possa ser afetada.


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
| capacity-not-available | open |  Não aplicável  | 
| price-too-low | open |  Não aplicável  | 
| not-scheduled-yet | open |  Não aplicável  | 
| launch-group-constraint | open |  Não aplicável  | 
| az-group-constraint | open |  Não aplicável  | 
|  placement-group-constraint  |  open  |  Não aplicável  | 
|  constraint-not-fulfillable  |  open  |  Não aplicável  | 

**Avaliação pendente/atendimento - terminal**  
A solicitação de instância spot poderá entrar no estado `terminal` se você criar uma solicitação que seja válida somente em um período específico e esse período expirar antes da solicitação atingir a fase de atendimento pendente. Isso também poderá ocorrer se você cancelar a solicitação ou se ocorrer um erro.


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
|  schedule-expired  |  cancelled  |  Não aplicável  | 
|  canceled-before-fulfillment ¹  |  cancelled  |  Não aplicável  | 
|  bad-parameters  |  failed  |  Não aplicável  | 
|  system-error  |  closed  |  Não aplicável  | 

¹ Se a solicitação for cancelada.

**Atendimento pendente**  
Quando as restrições especificadas (se houver) forem atendidas, sua solicitação spot entrará no estado `pending-fulfillment`.

Nesse momento, o Amazon EC2 está se preparando para provisionar as instâncias solicitadas. Se o processo parar nesse momento, provavelmente foi devido ao seu cancelamento pelo usuário antes da execução de uma instância spot. Isso também pode ocorrer devido a um erro inesperado do sistema.


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
|  pending-fulfillment  |  open  |  Não aplicável  | 

**Atendido**  
Quando todas as especificações das instâncias spot forem atendidas, sua solicitação spot será atendida. O Amazon EC2 executa as instâncias spot, o que pode levar alguns minutos. Se uma instância spot ficar em estado de hibernação, ela permanecerá nesse estado até que a solicitação possa ser atendida novamente ou seja cancelada.


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
|  fulfilled  |  active  |  pending → running  | 
|  fulfilled  |  active  |  stopped → running  | 

Se você interromper uma instância spot, a solicitação spot entrará no estado `marked-for-stop` ou `instance-stopped-by-user` até que ela possa ser iniciada novamente ou até que a solicitação seja cancelada. 


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
|  marked-for-stop  | active |  stopping  | 
|  instance-stopped-by-user ¹  |  disabled ou cancelled ²  |  stopped  | 

¹ Uma instância spot entrará no estado `instance-stopped-by-user` se você interromper a instância ou executar o comando de desligamento na própria instância. Depois de interromper a instância, é possível iniciá-la novamente. Na reinicialização, a solicitação de instância spot retornará para o estado `pending-evaluation` e o Amazon EC2 iniciará uma nova instância spot quando as restrições forem atendidas. 

² O estado da solicitação spot será `disabled` se você interromper a instância spot, mas não cancelar a solicitação. O estado da solicitação será `cancelled` se a instância spot for interrompida e a solicitação expirar.

**Atendido - terminal**  
As instâncias spot continuarão em execução, contanto que haja capacidade disponível para o tipo de instância e você não encerre a instância. Se o Amazon EC2 precisar encerrar as instâncias spot, a solicitação spot assumirá um estado terminal. Uma solicitação também entrará no estado terminal se você cancelar a solicitação spot ou encerrar as Instâncias spot.


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
|  request-canceled-and-instance-running  |  cancelled  |  running  | 
|  marked-for-stop  |  active  |  running  | 
|  marked-for-termination  |  active  |  running  | 
|  instance-stopped-by-price  |  disabled  |  stopped  | 
|  instance-stopped-by-user  |  disabled  |  stopped  | 
|  instance-stopped-no-capacity  |  disabled  |  stopped  | 
|  instance-terminated-by-price  |  closed (única), open (persistente)  |  terminated  | 
|  instance-terminated-by-schedule  |  closed  |  terminated  | 
|  instance-terminated-by-service  |  cancelled  |  terminated  | 
|  instance-terminated-by-user  |  closed ou cancelled ¹  |  terminated  | 
|  instance-terminated-no-capacity  |  closed (única), open (persistente)  |  running †  | 
|  instance-terminated-no-capacity  |  closed (única), open (persistente)  |  terminated  | 
|  instance-terminated-launch-group-constraint  |  closed (única), open (persistente)  |  terminated  | 

¹ O estado da solicitação será `closed` se você encerrar a instância, mas não cancelar a solicitação. O estado da solicitação será `cancelled` se você encerrar a instância e cancelar a solicitação. Mesmo que você encerre uma instância spot antes de cancelar a solicitação, talvez o Amazon EC2 atrase a detecção de que a instância spot foi encerrada. Nesse caso, o estado da solicitação poderá ser `closed` ou `cancelled`.

† Quando o Amazon EC2 interrompe uma instância spot, se precisa da capacidade de volta *e* a instância está configurada para *terminar* na interrupção, o status é imediatamente definido como`instance-terminated-no-capacity` (não é definido como `marked-for-termination`). No entanto, a instância permanece no estado `running` por 2 minutos para refletir o período de 2 minutos quando a instância recebe o aviso de interrupção da instância spot. Após 2 minutos, o estado da instância é definido como `terminated`.

**Experimentos de interrupção**  
É possível usar AWS Fault Injection Service para iniciar a interrupção de uma instância spot e poder testar como as aplicações nessas instâncias spot respondem. Se o AWS FIS interromper uma instância spot, sua solicitação de spot entrará no estado `marked-for-stop-by-experiment` e depois no estado `instance-stopped-by-experiment`. Se o AWS FIS encerrar uma instância spot, sua solicitação de spot entrará no estado `instance-terminated-by-experiment`. Para obter mais informações, consulte [Iniciar a interrupção de uma instância spot](initiate-a-spot-instance-interruption.md).


| Código de status | Estado da solicitação | Estado da instância | 
| --- | --- | --- | 
| marked-for-stop-by-experiment | active | running | 
| instance-stopped-by-experiment | disabled | stopped | 
| instance-terminated-by-experiment | closed | terminated | 

**Requisições persistentes**  
Quando as instâncias spot forem encerradas (por você ou pelo Amazon EC2), se a solicitação spot for uma requisição persistente, ela retornará ao estado `pending-evaluation` e, em seguida, o Amazon EC2 poderá iniciar uma nova instância spot quando as restrições forem cumpridas.

# Marcar solicitações de instância spot
<a name="concepts-spot-instances-request-tags"></a>

Para categorizar e gerenciar as solicitações de instância spot, é possível marcá-las com metadados personalizados. É possível atribuir uma tag a uma solicitação de instância spot ao criá-la ou posteriormente. É possível atribuir tags usando o console do Amazon EC2 ou uma ferramenta da linha de comando.

Quando você marca uma solicitação de instância spot, as instâncias e os volumes executados pela solicitação de instância spot não são marcados automaticamente. É necessário marcar explicitamente as instâncias e os volumes executados pela solicitação de instância spot. É possível atribuir volumes e uma tag a uma instância spot durante a execução ou posteriormente.

Para obter mais informações sobre como as tags funcionam, consulte [Marcar com tag os recursos do Amazon EC2](Using_Tags.md).

**Topics**
+ [Pré-requisitos](#tag-spot-request-prereqs)
+ [Marcar uma nova solicitação de instância spot](#tag-new-spot-instance-request)
+ [Marcar uma solicitação de instância spot existente](#tag-existing-spot-instance-request)
+ [Exibir tags de solicitação de instância spot](#view-spot-instance-request-tags)

## Pré-requisitos
<a name="tag-spot-request-prereqs"></a>

Conceda ao usuário permissão para marcar recursos. Para obter mais informações sobre políticas do IAM e políticas de exemplo, consulte [Exemplo: marcar recursos](ExamplePolicies_EC2.md#iam-example-taggingresources).

A política do IAM criada é determinada pelo método usado para criação de uma solicitação de instância spot.
+ Se você usar o assistente de execução de instâncias ou `run-instances` para solicitar uma Instâncias spot, consulte [To grant a user the permission to tag resources when using the launch instance wizard or run-instances](#iam-run-instances).
+ Se você utiliza o comando `request-spot-instances` para solicitar instâncias spot, consulte [To grant a user the permission to tag resources when using request-spot-instances](#iam-request-spot-instances).

**Para conceder a um usuário do IAM permissão para marcar recursos ao usar o assistente de inicialização ou run-instances**  
Crie uma política do IAM que inclua o seguinte:
+ A ação `ec2:RunInstances`. Essa ação concede ao usuário permissão para iniciar uma instância.
+ Para `Resource`, especifique `spot-instances-request`. Essa ação permite que os usuários criem solicitações de instância spot, que solicitam instâncias spot.
+ A ação `ec2:CreateTags`. Essa ação concede ao usuário permissão para criar tags.
+ Para `Resource`, especifique `*`. Isso permite que os usuários marquem todos os recursos criados durante a execução da instância.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowLaunchInstances",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1::image/*",
                "arn:aws:ec2:us-east-1:*:subnet/*",
                "arn:aws:ec2:us-east-1:*:network-interface/*",
                "arn:aws:ec2:us-east-1:*:security-group/*",
                "arn:aws:ec2:us-east-1:*:key-pair/*",
                "arn:aws:ec2:us-east-1:*:volume/*",
                "arn:aws:ec2:us-east-1:*:instance/*",
                "arn:aws:ec2:us-east-1:*:spot-instances-request/*"
            ]
        },
        {
            "Sid": "TagSpotInstanceRequests",
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "*"
        }
    ]
}
```

------

Quando você usa a ação RunInstances para criar solicitações de instância spot e marcar as solicitações de instância spot ao criá-las, deve estar ciente de que o Amazon EC2 avalia o recurso `spot-instances-request` na instrução RunInstances segundo a política do IAM, como se segue:
+ Se você não marcar uma solicitação de instância spot na criação, o Amazon EC2 não avaliará o recurso `spot-instances-request` na instrução RunInstances.
+ Se você marcar uma solicitação de instância spot na criação, o Amazon EC2 avaliará o recurso `spot-instances-request` na instrução RunInstances.

Portanto, para o recurso `spot-instances-request`, as seguintes regras se aplicam à diretiva do IAM:
+ Caso você use RunInstances para criar uma solicitação de instância spot e não pretenda marcar a solicitação de instância spot na criação, não será necessário permitir explicitamente o recurso `spot-instances-request`. A chamada terá êxito.
+ Caso use RunInstances para criar uma solicitação de instância spot e pretenda marcar a solicitação de instância spot na criação, você deverá incluir o recurso `spot-instances-request` na instrução de permissão RunInstances, caso contrário, a chamada falhará.
+ Caso você use RunInstances para criar uma solicitação de instância spot e pretenda marcar a solicitação de instância spot na criação, especifique o recurso `spot-instances-request` ou inclua um curinga `*` na instrução de permissão CreateTags, caso contrário, a chamada falhará.

Por exemplo, políticas do IAM, incluindo políticas que não são compatíveis com solicitações de instância spot, consulte [Trabalhar com Instâncias spot](ExamplePolicies_EC2.md#iam-example-spot-instances).

**Para conceder a um usuário permissão para marcar recursos ao usar request-spot-instances**  
Crie uma política do IAM que inclua o seguinte:
+ A ação `ec2:RequestSpotInstances`. Isso concede ao usuário permissão para criar uma solicitação de instância spot.
+ A ação `ec2:CreateTags`. Essa ação concede ao usuário permissão para criar tags.
+ Para `Resource`, especifique `spot-instances-request`. Isso permite que os usuários marquem somente a solicitação de instância spot.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "TagSpotInstanceRequest",
            "Effect": "Allow",
            "Action": [
                "ec2:RequestSpotInstances",
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-instances-request/*"
        }
    ]
}
```

------

## Marcar uma nova solicitação de instância spot
<a name="tag-new-spot-instance-request"></a>

Nos exemplos AWS CLI e do PowerShell, configure a solicitação de instância spot da seguinte forma:
+ Para `ResourceType`, especifique `spot-instances-request`. Se você especificar outro valor, ocorrerá falha na solicitação de instância spot.
+ Em `Tags`, especifique o par de chave/valor. É possível especificar mais de um par de chave/valor.

------
#### [ Console ]

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

1. Siga o procedimento do [Gerenciar as instâncias spot](using-spot-instances-request.md).

1. Para adicionar uma tag, na página **Adicionar tags**, escolha **Adicionar tag** e insira a chave e o valor da tag. Escolha **Adicionar outra tag** para cada tag adicional.

   Para cada tag, é possível marcar a solicitação de instância spot, as instâncias spot e os volumes com a mesma tag. Para marcar os três, verifique se as opções **Instances (Instâncias)**, **Volumes** e **Spot Instance Requests (Solicitações de instâncias spot)** estão selecionadas. Para marcar apenas um ou dois, verifique se os recursos que deseja marcar estão selecionados e os outros recursos estão limpos.

1. Preencha os campos obrigatórios para criar uma solicitação de instância spot e escolha **Launch (Executar)**. Para obter mais informações, consulte [Gerenciar as instâncias spot](using-spot-instances-request.md).

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

**Para marcar uma nova solicitação de instância spot**  
Use o comando [request-spot-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-instances.html) com a opção `--tag-specification`.

A especificação da tag adiciona duas tags à solicitação da instância spot: `Environment=Production` e `Cost-Center=123`.

```
aws ec2 request-spot-instances \
    --instance-count 5 \
    --type "one-time" \
    --launch-specification file://specification.json \
    --tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment,Value=Production},{Key=Cost-Center,Value=123}]'
```

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

**Para marcar uma nova solicitação de instância spot**  
Use o cmdlet [Request-EC2SpotInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotInstance.html) com o parâmetro `-TagSpecification`.

```
-TagSpecification $tagspec
```

A especificação da tag é definida conforme a seguir. Ela adiciona duas tags à solicitação da instância spot: `Environment=Production` e `Cost-Center=123`.

```
$tag1 = @{Key="Environment"; Value="Production"}
$tag2 = @{Key="Cost-Center"; Value="123"}
$tagspec = New-Object Amazon.EC2.Model.TagSpecification
$tagspec.ResourceType = "spot-instances-request"
$tagspec.Tags = @($tag1,$tag2)
```

------

## Marcar uma solicitação de instância spot existente
<a name="tag-existing-spot-instance-request"></a>

------
#### [ Console ]

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

Depois de criar uma solicitação de instância spot, é possível adicionar tags à solicitação de instância spot usando o console.

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 **Solicitações spot**.

1. Selecione sua solicitação de instância spot.

1. Escolha a guia **Tags** e **Create Tag (Criar tag)**.

**Para marcar uma solicitação de instância spot existente usando o console**  
Depois que sua solicitação de instância spot tiver executado a instância spot, será possível adicionar tags à instância usando o console. Para obter mais informações, consulte [Adicionar tags usando o console](Using_Tags_Console.md#adding-or-deleting-tags).

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

**Para marcar uma solicitação de instância spot ou instância spot existente com uma tag**  
Use o comando [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) para marcar os recursos existentes. No exemplo a seguir, a solicitação de instância spot e a instância spot existentes são marcadas com `purpose=test`.

```
aws ec2 create-tags \
    --resources sir-0e54a519c9EXAMPLE i-1234567890abcdef0 \
    --tags Key=purpose,Value=test
```

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

**Para marcar uma solicitação de instância spot ou instância spot existente com uma tag**  
Use o cmdlet [New-EC2Tag](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Tag.html). O exemplo a seguir adiciona a tag `purpose=test` à solicitação de instância spot e à instância spot existentes.

```
New-EC2Tag `
    -Resource sir-0e54a519c9EXAMPLE, i-1234567890abcdef0 `
    -Tag @{Key="purpose"; Value="test"}
```

------

## Exibir tags de solicitação de instância spot
<a name="view-spot-instance-request-tags"></a>

------
#### [ Console ]

**Para visualizar tags de solicitação de instância spot**

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 **Solicitações spot**.

1. Selecione sua solicitação de instância spot e escolha a guia **Tags**.

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

**Para descrever as tags de solicitação de instância spot**  
Use o comando [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html) para visualizar a configuração da solicitação de instância spot especificada, que inclui todas as tags especificadas para a solicitação.

```
aws ec2 describe-spot-instance-requests \
    --spot-instance-request-ids sir-0e54a519c9EXAMPLE \
    --query "SpotInstanceRequests[*].Tags"
```

O seguinte é um exemplo de saída.

```
[
    [
        {
            "Key": "Environment",
            "Value": "Production"
        },
        {
            "Key": "Department",
            "Value": "101"
        }
    ]
]
```

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

**Para descrever as tags de solicitação de instância spot**  
Use o cmdlet [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html).

```
(Get-EC2SpotInstanceRequest `
    -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).Tags
```

O seguinte é um exemplo de saída.

```
Key         Value
---         -----
Environment Production
Department  101
```

------

# Cancelar uma solicitação de instância spot
<a name="using-spot-instances-cancel"></a>

Se você não quiser mais sua solicitação de instância spot, poderá cancelá-la. Você só pode cancelar solicitações de instância spot que estão `open`, `active` ou `disabled`.
+ A solicitação de instância spot é `open` quando sua requisição não ainda não foi atendida e nenhuma instância foi iniciada.
+ A solicitação de instância spot é `active` quando ela foi atendida e as instâncias spot foram inicializadas como resultado. 
+ Sua solicitação de instância spot consta como `disabled` quando você para a instância spot.

Se a solicitação de instância spot estiver `active` e tiver uma instância spot associada em execução, o cancelamento da solicitação não encerrará a instância. Para obter mais informações sobre como encerrar uma instância spot, consulte [Encerrar uma instância spot](using-spot-instances-request.md#terminating-a-spot-instance).

------
#### [ Console ]

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

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 **Solicitações spot**.

1. Selecione a solicitação de instância spot.

1. Escolha **Ações**, **Cancelar solicitação**.

1. (Opcional) Ao terminar de trabalhar com as Instâncias spot associadas, será possível encerrá-las. Na caixa de diálogo **Cancelar solicitação spot**, selecione **Encerrar instâncias** e escolha **Confirmar**.

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

**Para cancelar uma solicitação de instância spot**  
Use o seguinte comando [cancel-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-instance-requests.html).

```
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-0e54a519c9EXAMPLE
```

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

**Para cancelar uma solicitação de instância spot**  
Use o cmdlet [Stop-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2SpotInstanceRequest.html).

```
Stop-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE
```

------

# Gerenciar as instâncias spot
<a name="using-spot-instances-request"></a>

O Amazon EC2 inicia uma instância spot quando há capacidade disponível. A instância spot será executada até ser interrompida ou até você a encerrar.

**Topics**
+ [Encontrar as instâncias spot](#using-spot-instances-running)
+ [Encontre instâncias iniciadas por uma solicitação específica](#find-request-spot-instances)
+ [Parar uma instância spot](#stopping-a-spot-instance)
+ [Iniciar uma instância spot](#starting-a-spot-instance)
+ [Encerrar uma instância spot](#terminating-a-spot-instance)

## Encontrar as instâncias spot
<a name="using-spot-instances-running"></a>

Uma instância spot aparece na página **Instâncias** no console junto com as instâncias sob demanda. Use o procedimento a seguir para encontrar as instâncias spot.

------
#### [ Console ]

**Para encontrar suas instâncias spot**

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, escolha **Instances (Instâncias)**.

1. Para encontrar todas as instâncias spot, no painel de pesquisa, escolha **Ciclo de vida da instância = spot**.

1. Para confirmar que uma instância é uma instância spot, selecione a instância, escolha a guia **Detalhes** e verifique o valor de **Ciclo de vida**. O valor de uma instância spot é `spot` e o valor de uma instância sob demanda é `normal`.

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

**Para encontrar suas instâncias spot**  
Use o seguinte comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances --filters "Name=instance-lifecycle,Values=spot"
```

**Para determinar se uma instância é uma instância spot**  
Use o seguinte comando [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[*].Instances[*].InstanceLifecycle" \
    --output text
```

Se a saída for `spot`, a instância será uma instância spot. Se não houver saída, a instância será uma instância sob demanda.

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

**Para encontrar suas instâncias spot**  
Use o cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
Get-EC2Instance -Filter @{Name="instance-lifecycle"; Values="spot"}
```

**Para determinar se uma instância é uma instância spot**  
Use o cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.InstanceLifecycle
```

Se a saída for `Spot`, a instância será uma instância spot. Se não houver saída, a instância será uma instância sob demanda.

------

## Encontre instâncias iniciadas por uma solicitação específica
<a name="find-request-spot-instances"></a>

Use o procedimento a seguir para encontrar as instâncias spot iniciadas por uma solicitação específica de instância spot ou frota spot.

------
#### [ Console ]

**Para encontrar as instâncias spot para uma solicitação**

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 **Solicitações spot**. A lista contém tanto as solicitações de instância spot quanto as solicitações de frota spot.

1. Se uma solicitação de instância spot for atendida, **Capacidade** será o ID da instância spot. Em uma frota spot, a **Capacity (Capacidade)** indica quanto da capacidade solicitada foi atendida. Para visualizar os IDs das instâncias em uma frota spot, escolha a seta de expansão ou selecione a frota e escolha **Instances (Instâncias)**.

1. Em uma frota spot, **Capacidade** indica quanto da capacidade solicitada foi fornecida. Para visualizar os IDs das instâncias em uma frota spot, escolha o ID da frota para abrir sua página de detalhes e localize o painel **Instâncias**.

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

**Para encontrar as instâncias spot para uma solicitação**  
Use o seguinte comando [describe-spot-instance-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-instance-requests.html).

```
aws ec2 describe-spot-instance-requests \
    --spot-instance-request-ids sir-0e54a519c9EXAMPLE \
    --query "SpotInstanceRequests[*].{ID:InstanceId}"
```

A seguir está um exemplo de saída:

```
[
    {
        "ID": "i-1234567890abcdef0"
    },
    {
        "ID": "i-0598c7d356eba48d7"
    }
]
```

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

**Para encontrar as instâncias spot para uma solicitação**  
Use o cmdlet [Get-EC2SpotInstanceRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotInstanceRequest.html).

```
(Get-EC2SpotInstanceRequest -SpotInstanceRequestId sir-0e54a519c9EXAMPLE).InstanceId
```

------

## Parar uma instância spot
<a name="stopping-a-spot-instance"></a>

Caso não precise das instâncias spot na ocasião, mas quiser reiniciá-las posteriormente sem perder os dados persistentes no volume do Amazon EBS, é possível interrompê-las. As etapas para parar uma instância spot são semelhantes às etapas para parar uma instância sob demanda.

**nota**  
Ao parar uma instância spot, será possível modificar alguns atributos da instância, mas não o tipo dela.   
Não cobramos pelo uso de uma instância spot parada nem por taxas de transferência de dados, mas cobramos pelo armazenamento nos volumes do Amazon EBS.

**Limitações**
+ Você só pode parar uma instância spot se ela foi iniciada a partir de uma solicitação de instância spot `persistent`.
+ Não é possível parar uma instância spot se a solicitação de instância spot associada foi cancelada. Quando a solicitação de instância spot é cancelada, você só pode encerrar a instância spot.
+ Também não é possível parar as instâncias spot em um grupo de frota, grupo de lançamento ou grupo de zonas de disponibilidade.

------
#### [ Console ]

**Para interromper uma instância spot**

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, escolha **Instances (Instâncias)**.

1. Selecione a instância spot. Se você não salvou o ID da instância spot, consulte [Encontrar as instâncias spot](#using-spot-instances-running).

1. Escolha **Estado da instância** e **Parar instância**.

1. Quando a confirmação for solicitada, escolha **Parar**.

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

**Para interromper uma instância spot**  
Use o comando [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) para interromper manualmente as Instâncias spot.

```
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
```

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

**Para interromper uma instância spot**  
Use o cmdlet [Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html).

```
Stop-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## Iniciar uma instância spot
<a name="starting-a-spot-instance"></a>

É possível iniciar uma instância spot que havia parado.

**Pré-requisitos**

É possível iniciar uma instância spot somente se:
+ Você parou manualmente a instância spot.
+ A instância spot é uma instância com EBS.
+ A capacidade da instância spot está disponível.
+ O preço spot é inferior ao preço máximo.

**Limitações**
+ Não é possível iniciar uma instância spot se ela fizer parte da frota ou do grupo de inicialização ou grupo de zona de disponibilidade.

As etapas para iniciar uma instância spot são semelhantes às etapas para iniciar uma instância sob demanda.

------
#### [ Console ]

**Para iniciar uma instância spot**

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, escolha **Instances (Instâncias)**.

1. Selecione a instância spot. Se você não salvou o ID da instância spot, consulte [Encontrar as instâncias spot](#using-spot-instances-running).

1. Escolha **Instance state (Estado da instância)** e **Start instance (Iniciar instância)**.

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

**Para iniciar uma instância spot**  
Use o comando [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) para iniciar manualmente as Instâncias spot.

```
aws ec2 start-instances --instance-ids i-1234567890abcdef0
```

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

**Para iniciar uma instância spot**  
Use o cmdlet [Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html).

```
Start-EC2Instance -InstanceId i-1234567890abcdef0
```

------

## Encerrar uma instância spot
<a name="terminating-a-spot-instance"></a>

**Atenção**  
**O encerramento de uma instância é permanente e irreversível.**  
Depois de encerrar uma instância, não será mais possível se conectar a ela e ela não poderá ser recuperada. Todos os volumes anexados do Amazon EBS configurados para serem excluídos no encerramento também serão excluídos permanentemente e não poderão ser recuperados. Todos os dados armazenados em volumes de armazenamento de instância serão perdidos permanentemente. Para obter mais informações, consulte [Como funciona o encerramento de uma instância](how-ec2-instance-termination-works.md).  
Antes de encerrar uma instância, certifique-se de ter feito backup de todos os dados que você precise reter após o encerramento no armazenamento persistente.

Se você encerrar uma instância spot em execução ou parada que foi iniciada por uma solicitação de instância spot persistente, a solicitação de instância spot fará a transição para o estado `open` para que a nova instância spot seja iniciada. Para garantir que nenhuma instância spot nova seja iniciada, primeiro é necessário cancelar a solicitação de instância spot.

Se você cancelar uma solicitação de instância spot `active` com uma instância spot em execução, a instância spot em execução não será automaticamente terminada, e você deverá terminá-la manualmente.

Se você cancelar uma solicitação de instância spot `disabled` com uma instância spot parada, a instância spot parada será automaticamente encerrada pelo serviço spot do Amazon EC2. Pode haver um pequeno atraso entre o momento em que você cancelar a solicitação de instância spot e o momento em que o serviço spot terminar a instância spot.

Para obter mais informações, consulte [Cancelar uma solicitação de instância spot](using-spot-instances-cancel.md).

------
#### [ Console ]

**Para encerrar manualmente uma instância spot**

1. Antes de encerrar a instância, confirme que não perderá dados verificando se seus volumes do Amazon EBS não serão excluídos no encerramento e se você copiou todos os dados de que precisa dos volumes de armazenamento persistente de instância, como o Amazon EBS ou o Amazon S3.

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, escolha **Instances (Instâncias)**.

1. Selecione a instância spot. Se você não salvou o ID da instância spot, consulte [Encontrar as instâncias spot](#using-spot-instances-running).

1. Escolha **Estado da instância** e **Encerrar instância**.

1. Quando a confirmação for solicitada, escolha **Encerrar (excluir)**.

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

**Para encerrar manualmente uma instância spot**  
Use o comando [terminate-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/terminate-instances.html) para encerrar manualmente as Instâncias spot.

```
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7
```

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

**Para encerrar manualmente uma instância spot**  
Use o cmdlet [Remove-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Instance.html).

```
Remove-EC2Instance -InstanceId i-1234567890abcdef0
```

------

# Interrupções de instâncias spot
<a name="spot-interruptions"></a>

É possível executar Instâncias spot na capacidade adicional do EC2 para obter grandes descontos em troca de devolvê-los quando o Amazon EC2 precisar da capacidade de volta. Quando o Amazon EC2 recupera uma instância spot, chamamos esse evento de *interrupção de instância spot*.

A demanda por Instâncias spot pode variar significativamente de um momento para outro, e a disponibilidade das Instâncias spot também pode variar significativamente dependendo de quantas instâncias do EC2 não utilizadas estão disponíveis. É sempre possível que sua instância spot seja interrompida. Veja a seguir os possíveis motivos pelos quais o Amazon EC2 pode interromper Instâncias spot:

**Capacidade**  
O Amazon EC2 pode interromper sua instância spot quando ele precisar dela de volta. O EC2 recupera sua instância principalmente para redirecionar a capacidade, mas também pode ocorrer por outros motivos, como manutenção de host ou descomissionamento de hardware

**Preço**  
O preço spot é superior ao preço máximo.  
É possível especificar o preço máximo em sua solicitação spot. No entanto, se você especificar um preço máximo, as instâncias serão interrompidas com mais frequência do que se você não especificar esse parâmetro.

**Restrições**  
Se a solicitação de spot incluir uma restrição como um grupo de execução ou um grupo de zonas de disponibilidade, essas instâncias spot serão encerradas como um grupo quando não for mais possível atender à restrição.

Quando o Amazon EC2 interrompe uma instância spot, ele encerra, para ou hiberna a instância, dependendo do comportamento da interrupção que você especificou ao criar a solicitação spot.

**Topics**
+ [Comportamento de interrupção](interruption-behavior.md)
+ [Preparar-se para interrupções](prepare-for-interruptions.md)
+ [Iniciar uma interrupção](initiate-a-spot-instance-interruption.md)
+ [Avisos de interrupção de instância spot](spot-instance-termination-notices.md)
+ [Encontrar Instâncias spot interrompidas](finding-an-interrupted-Spot-Instance.md)
+ [Determinar se o Amazon EC2 terminou uma instância spot](BidEvictedEvent.md)
+ [Faturamento](billing-for-interrupted-spot-instances.md)

# Comportamento das interrupções de instâncias spot
<a name="interruption-behavior"></a>

Ao criar uma solicitação spot, você pode especificar o comportamento de interrupção. Os possíveis comportamentos de interrupção são os seguintes:
+ [Interromper](#stop-spot-instances)
+ [Hibernar](#hibernate-spot-instances)
+ [Encerrar](#terminate-interrupted-spot-instances)

O comportamento padrão será que o Amazon EC2 encerre as instâncias spot quando elas forem interrompidas.

## Parar Instâncias spot interrompida
<a name="stop-spot-instances"></a>

É possível especificar que o Amazon EC2 pare suas instâncias spot quando elas são interrompidas. O tipo de solicitação da instância spot deve ser `persistent`. Não é possível especificar um grupo de execução na solicitação de instância spot. Para EC2 Fleet ou frota spot, o tipo de solicitação deve ser `maintain`.

**Considerações**
+ Somente o Amazon EC2 pode reiniciar uma instância spot interrompida parada.
+ Para uma instância spot iniciada por uma solicitação de instância spot `persistent`: o Amazon EC2 reinicia a instância parada quando a capacidade está disponível na mesma zona de disponibilidade e para o mesmo tipo de instância que a instância parada (a mesma especificação de início deve ser usada).
+ Ao parar uma instância spot, será possível modificar alguns atributos da instância, mas não o tipo dela. Se você desanexar ou excluir um volume do EBS, ele não será anexado quando a instância spot for iniciada. Se você desvincular o volume raiz e o Amazon EC2 tentar iniciar a instância spot, a instância falhará ao iniciar e o Amazon EC2 terminará a instância interrompida.
+ É possível encerrar uma instância spot enquanto ela está interrompida.
+ Se você cancelar uma solicitação de instância spot, uma EC2 Fleet ou uma frota spot, o Amazon EC2 terminará todas as instâncias spot associadas que estiverem paradas.
+ Enquanto uma instância spot estiver parada, você será cobrado apenas pelos volumes do EBS, que são preservados. Com a EC2 Fleet e a frota spot, se houver muitas instâncias interrompidas, será possível exceder o limite de número de volumes do EBS na sua conta. Para obter mais informações sobre como você é cobrado quando uma instância spot é interrompida, consulte [Faturamento para Instâncias spot interrompidas](billing-for-interrupted-spot-instances.md).
+ Certifique-se de estar familiarizado com as implicações de parar uma instância. Para obter informações sobre o que acontece quando uma instância está parada, consulte [Diferenças entre os estados de instâncias](ec2-instance-lifecycle.md#lifecycle-differences).

## Hibernar Instâncias spot interrompida
<a name="hibernate-spot-instances"></a>

É possível especificar que o Amazon EC2 hiberne suas instâncias spot quando elas estão interrompidas. Para obter mais informações, consulte [Hibernar sua instância do Amazon EC2](Hibernate.md).

O Amazon EC2 agora oferece a mesma experiência de hibernação para as instâncias spot que está disponível atualmente para as instâncias sob demanda. Ele oferece um suporte mais amplo, sendo compatível com o seguinte para hibernação de instâncias spot:
+ [Mais AMIs compatíveis](hibernating-prerequisites.md#hibernation-prereqs-supported-amis)
+ [Mais famílias de instâncias compatíveis](hibernating-prerequisites.md#hibernation-prereqs-supported-instance-families)
+ [Hibernação iniciada pelo usuário](hibernating-instances.md)

## Terminar instâncias spot interrompidas
<a name="terminate-interrupted-spot-instances"></a>

Quando o Amazon EC2 interrompe uma instância spot, ele termina a instância por padrão, a menos que você especifique um comportamento de interrupção diferente, como parar ou hibernar. Para obter mais informações, consulte [Encerramento de instâncias do Amazon EC2](terminating-instances.md).

# Preparar para interrupções de instâncias spot
<a name="prepare-for-interruptions"></a>

A demanda por Instâncias spot pode variar significativamente de um momento para outro, e a disponibilidade das Instâncias spot também pode variar significativamente dependendo de quantas instâncias do EC2 não utilizadas estão disponíveis. É sempre possível que sua instância spot seja interrompida. Portanto, é necessário garantir que a aplicação esteja preparada para uma interrupção de instância spot.

Recomendamos que você siga essas práticas recomendadas para estar preparado para uma interrupção da instância spot.
+ Crie sua solicitação de spot usando um grupo do Auto Scaling. Se suas Instâncias spot forem interrompidas, o grupo do Auto Scaling iniciará automaticamente as instâncias de substituição. Para obter mais informações, consulte [Grupos de Auto Scaling com vários tipos de instância e opções de compra](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html) no *Manual do usuário do Amazon EC2 Auto Scaling*.
+ Certifique-se de que sua instância esteja preparada assim que a solicitação seja atendida usando uma Imagem de máquina da Amazon (AMI) que contenha a configuração de software necessária. Também é possível usar dados de usuário para executar comandos no startup.
+ Os dados nos volumes de armazenamento de instância são perdidos quando a instância é interrompida ou encerrada. Faça backup de todos os dados importantes em volumes de armazenamento de instância para um armazenamento mais persistente, como o Amazon S3, o Amazon EBS ou o Amazon DynamoDB.
+ Armazene regularmente os dados importantes em um lugar em que eles não sejam afetados se a instância spot for terminada. Por exemplo, é possível usar o Amazon S3, o Amazon EBS ou o DynamoDB.
+ Divida o trabalho em tarefas pequenas (usando uma grade, um Hadoop ou uma arquitetura baseada em fila) ou use pontos de verificação para que você possa salvar seu trabalho com frequência.
+ O Amazon EC2 emite um sinal de recomendação de rebalanceamento para a instância spot quando a instância apresenta risco elevado de interrupção. É possível confiar na recomendação de rebalanceamento para gerenciar proativamente as interrupções de instância spot sem precisar aguardar o aviso de interrupção de dois minutos da instância spot. Para obter mais informações, consulte [Recomendações de rebalanceamento de instâncias do EC2](rebalance-recommendations.md).
+ Use os avisos de interrupção de instância spot para monitorar o status das instâncias spot. Para obter mais informações, consulte [Avisos de interrupção de instância spot](spot-instance-termination-notices.md).
+ Embora nos esforcemos ao máximo para fornecer esse aviso o mais rápido possível, pode ser que a instância spot seja interrompida antes que o aviso seja disponibilizado. Teste sua aplicação para garantir que ele lide tranquilamente com a interrupção inesperada de uma instância, mesmo que você esteja monitorando sinais de recomendação de rebalanceamento e avisos de interrupção. É possível fazer isso executando a aplicação com uma instância sob demanda e, em seguida, terminando a instância sob demanda por conta própria.
+ Execute um experimento de injeção de falhas controlado com AWS Fault Injection Service para testar como sua aplicação responde quando sua instância spot é interrompida. Para obter mais informações, consulte o [Tutorial: Teste interrupções de instância spot usando o AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-spot-interruptions.html) no *Guia do usuário do AWS Fault Injection Service*.

# Iniciar a interrupção de uma instância spot
<a name="initiate-a-spot-instance-interruption"></a>

É possível selecionar uma solicitação de instância spot ou uma solicitação de frota spot no console do Amazon EC2 e iniciar uma interrupção de instância spot para poder testar como as aplicações nessas instâncias spot lidam com interrupções. Quando você inicia a interrupção de uma instância spot, o Amazon EC2 avisa que a instância spot será interrompida em dois minutos e, passados os dois minutos, o Amazon EC2 interrompe a instância spot.

O serviço subjacente que realiza a interrupção da instância spot é o AWS Fault Injection Service (AWS FIS). Para obter mais informações sobre as AWS FIS, consulte [AWS Fault Injection Service](https://aws.amazon.com/fis/).

**nota**  
Os comportamentos de interrupção são `terminate`, `stop` e `hibernate`. Se o comportamento de interrupção for definido como `hibernate`, quando você iniciar a interrupção de uma instância spot, o processo de hibernação começará imediatamente.

Iniciar uma interrupção de insitância spot é compatível com todas as Regiões da AWS, exceto Ásia-Pacífico (Jacarta), Ásia-Pacífico (Osaka), China (Pequim), China (Ningxia) e Oriente Médio (EAU).

**Topics**
+ [Iniciar a interrupção de uma instância spot](#initiate-interruption)
+ [Verificar a interrupção da instância spot](#spot-interruptions-verify-result)
+ [Cotas](#fis-quota-for-spot-instance-interruption)

## Iniciar a interrupção de uma instância spot
<a name="initiate-interruption"></a>

É possível usar o console do EC2 para iniciar rapidamente a interrupção de uma instância spot. Ao selecionar uma solicitação de Instância Spot, você pode iniciar a interrupção de uma Instância Spot. Ao selecionar uma solicitação de frota spot, você pode iniciar a interrupção de várias instâncias spot de uma só vez.

Para fazer experimentos mais avançados para testar interrupções de instâncias spot, você pode criar seus próprios experimentos usando o console do AWS FIS.

**Para iniciar a interrupção de uma instância spot usando o console do 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 **Spot Requests** (Solicitações de spot).

1. Selecione uma solicitação de instância spot e escolha **Actions** (Ações), **Initiate interruption** (Iniciar interrupção). Você não pode selecionar várias solicitações de instância spot para iniciar uma interrupção.

1. Na caixa de diálogo **Initiate Spot Instance interruption** (Iniciar interrupção de instância spot), em **Service access** (Acesso ao serviço), use o perfil padrão ou escolha um perfil existente. Para escolher uma função existente, escolha **Usar uma função de serviço existente** e, em seguida, para **Função do IAM**\$1, selecione a função a ser usada.

1. Quando estiver pronto para iniciar a interrupção da instância spot, escolha **Initiate interruption** (Iniciar interrupção).

**Para iniciar a interrupção de uma ou mais instâncias spot em uma solicitação de frota spot usando o console 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 **Spot Requests** (Solicitações de spot).

1. Selecione uma solicitação de instância spot e escolha **Actions** (Ações), **Initiate interruption** (Iniciar interrupção). Você não pode selecionar várias solicitações do Spot Fleet para iniciar uma interrupção.

1. **Na caixa de diálogo **Especificar número de instâncias spot**, em **Número de instâncias a serem interrompidas**, insira o número de instâncias spot a serem interrompidas e escolha Confirmar.**
**nota**  
O número não pode exceder o número de instâncias spot na frota ou sua [cota](#fis-quota-for-spot-instance-interruption) para o número de instâncias spot que AWS FIS podem ser interrompidas por experimento.

1. Na caixa de diálogo **Initiate Spot Instance interruption** (Iniciar interrupção de instância spot), em **Service access** (Acesso ao serviço), use o perfil padrão ou escolha um perfil existente. Para escolher uma função existente, escolha **Usar uma função de serviço existente** e, em seguida, para **Função do IAM**\$1, selecione a função a ser usada.

1. Quando estiver pronto para iniciar a interrupção da instância spot, escolha **Initiate interruption** (Iniciar interrupção).

**Para fazer experimentos mais avançados para testar interrupções de instâncias spot usando o console do AWS FIS**

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 **Spot Requests** (Solicitações de spot).

1. Escolha **Actions** (Ações), **Create advanced experiments** (Criar experimentos avançados).

   O console do AWS FIS será aberto. Para obter mais informações, consulte o [Tutorial: testar interrupções de instância spot usando o AWS FIS](https://docs.aws.amazon.com/fis/latest/userguide/fis-tutorial-spot-interruptions.html) no *Guia do usuário do AWS Fault Injection Service*.

## Verificar a interrupção da instância spot
<a name="spot-interruptions-verify-result"></a>

Depois que você inicia a interrupção, ocorre o seguinte:
+ A instância spot recebe uma [recomendação de rebalanceamento da instância](rebalance-recommendations.md).
+ Um [aviso de interrupção de instância spot](spot-instance-termination-notices.md) é emitido dois minutos antes de AWS FIS interromper sua instância.
+ Passados os dois minutos, a instância spot é interrompida.
+ Uma instância spot que foi interrompida pelo AWS FIS permanece parada até ser reiniciada.

**Para verificar se a instância foi interrompida depois que você iniciou a interrupção**

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, abra **Spot Requests** (Solicitações de spot) e **Instances** (Instâncias) em guias ou janelas separadas do navegador.

1. Para **Solicitações Spot**, selecione a solicitação de Instância Spot ou a solicitação de Frota Spot. O status inicial é `fulfilled`. Depois que a instância é interrompida, o status se altera como se segue, dependendo do comportamento da interrupção:
   + `terminate`: o status se altera para `instance-terminated-by-experiment`.
   + `stop`: o status se altera para `marked-for-stop-by-experiment` e depois `instance-stopped-by-experiment`.

1. Em **Instances** (Instâncias), selecione a instância spot. O status inicial é `Running`. Dois minutos depois que você recebe o aviso de interrupção da instância spot, o status se altera como se segue, dependendo do comportamento da interrupção:
   + `stop`: o status se altera para `Stopping` e depois `Stopped`.
   + `terminate`: o status se altera para `Shutting-down` e depois `Terminated`.

## Cotas
<a name="fis-quota-for-spot-instance-interruption"></a>

Você Conta da AWS tem a seguinte cota padrão para o número de instâncias spot que AWS FIS podem ser interrompidas por experimento.


| Nome | Padrão | Ajustável | Descrição | 
| --- | --- | --- | --- | 
|  Instâncias spot de destino para aws:ec2:send-spot-instance-interruptions  |  Cada região compatível: 5  | Sim |  O número máximo de instâncias spot que aws:ec2:send-spot-instance-interruptions pode atingir quando você identifica alvos usando tags, por experimento.  | 

É possível solicitar um aumento da cota. Para obter mais informações, consulte [Solicitar um aumento de cota no ](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)Guia do usuário do Service Quotas.**.

Para visualizar todas as cotas de AWS FIS, abra o [console Service Quotas](https://console.aws.amazon.com/servicequotas/home). No painel de navegação, escolha **AWS services** (Serviços da ) e selecione **AWS Fault Injection Service**. Você também pode ver todas as [cotas AWS Fault Injection Service](https://docs.aws.amazon.com/fis/latest/userguide/fis-quotas.html) no *Guia do AWS Fault Injection Service usuário*.

# Avisos de interrupção de instância spot
<a name="spot-instance-termination-notices"></a>

Um *aviso de interrupção da instância spot* é um aviso emitido dois minutos antes de o Amazon EC2 parar ou encerrar uma instância spot. Se você especificar uma hibernação como o comportamento de interrupção, receberá um aviso de interrupção, mas não receberá o aviso dois minutos antes porque o processo de hibernação começará imediatamente.

A melhor maneira de lidar com interrupções de instâncias spot com tranquilidade é arquitetar a aplicação para que ela seja tolerante a falhas. Para fazer isso, é possível aproveitar os avisos de interrupção de instância spot. Recomendamos que você verifique esses avisos de interrupção a cada 5 segundos. 

Os avisos de interrupção são disponibilizados como um evento do Eventbridge e como itens nos [metadados de instância](ec2-instance-metadata.md) da instância spot. Avisos de interrupção são emitidos de acordo com o melhor esforço.

## EC2 Spot Instance Interruption WarningEvento
<a name="ec2-spot-instance-interruption-warning-event"></a>

Quando o Amazon EC2 vai interromper a instância spot, ele emite um evento dois minutos antes da interrupção real (exceto para a hibernação, que recebe o aviso de interrupção, mas não dois minutos antes, porque a hibernação começa imediatamente). Este evento pode ser detectado pelo Amazon EventBridge. Para obter mais informações sobre eventos no EventBridge, consulte o [Guia do usuário do Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/). Para obter um exemplo detalhado que orienta você sobre como criar e usar regras de evento, consulte [Aproveitar os avisos de interrupção de instância spot do Amazon EC2](https://aws.amazon.com/blogs/compute/taking-advantage-of-amazon-ec2-spot-instance-interruption-notices/).

Este é um exemplo do evento de interrupção da instância spot. Os valores possíveis para `instance-action` são `hibernate`, `stop` ou `terminate`.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Spot Instance Interruption Warning",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2a:instance/i-1234567890abcdef0"],
    "detail": {
        "instance-id": "i-1234567890abcdef0",
        "instance-action": "action"
    }
}
```

**nota**  
O formato de ARN do evento de interrupção da instância spot é `arn:aws:ec2:availability-zone:instance/instance-id`. Esse formato é diferente do [formato de ARN de recurso do EC2](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies).

## instance-action
<a name="instance-action-metadata"></a>

O item `instance-action` especifica a ação e o tempo aproximado (em UTC) em que a ação ocorrerá.

Se a instância spot estiver marcada para ser parada ou terminada pelo Amazon EC2, o item `instance-action` estará presente nos seus [metadados de instância](ec2-instance-metadata.md). Caso contrário, não estará presente. É possível recuperar `instance-action` usando o Instance Metadata Service versão 2 (IMDSv2) da seguinte forma.

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/spot/instance-action
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/instance-action
```

------

 A saída do exemplo a seguir indica o momento em que essa instância será parada.

```
{"action": "stop", "time": "2017-09-18T08:22:00Z"}
```

A saída do exemplo a seguir indica o momento em que essa instância será terminada.

```
{"action": "terminate", "time": "2017-09-18T08:22:00Z"}
```

Se o Amazon EC2 não estiver se preparando para parar ou terminar a instância, ou se você mesmo terminar a instância, `instance-action` não estará presente nos metadados da instância e você receberá um erro HTTP 404 ao tentar recuperá-la.

## termination-time
<a name="termination-time-metadata"></a>

O item `termination-time` especifica o horário aproximado em UTC em que a instância receberá a sinalização de desligamento. 

**nota**  
Este item é mantido para compatibilidade com versões anteriores. Use `instance-action` em seu lugar.

Se a instância spot estiver marcada para ser encerrada pelo Amazon EC2 (devido a uma interrupção da instância spot em que o comportamento de interrupção está definido como `terminate` ou devido ao cancelamento de uma solicitação de instância spot persistente), o item `termination-time` estará presente nos [metadados da instância](ec2-instance-metadata.md). Caso contrário, não estará presente. É possível recuperar `termination-time` usando o IMDSv2 da seguinte maneira.

------
#### [ Linux ]

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"`
if curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/termination-time | grep -q .*T.*Z; then echo termination_scheduled; fi
```

------
#### [ Windows ]

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/termination-time
```

------

O seguinte é um exemplo de saída.

```
2015-01-05T18:02:00Z
```

Se o Amazon EC2 não estiver se preparando para encerrar a instância (seja porque não há interrupção da instância spot, seja porque o comportamento de interrupção está definido como `stop` ou `hibernate`), ou se você tiver encerrado a instância spot por conta própria, o item `termination-time` não estará presente nos metadados da instância (portanto, você receberá um erro HTTP 404) ou conterá um valor que não corresponde a um valor de tempo.

Se o Amazon EC2 não encerrar a instância, o status da solicitação será definido como `fulfilled`. O valor de `termination-time` permanece nos metadados da instância com o tempo aproximado original, que agora está no passado.

# Encontrar Instâncias spot interrompidas
<a name="finding-an-interrupted-Spot-Instance"></a>

Quando você descreve suas instâncias do EC2, os resultados incluem suas instâncias spot. O ciclo de vida da instância de uma instância spot é  `spot`. O estado da instância de uma instância spot é `stopped` ou`terminated`, dependendo do comportamento de interrupção que foi configurado. Para uma instância spot hibernada, o estado da instância é `stopped`.

Para obter detalhes adicionais sobre o motivo da interrupção, verifique o código de status da solicitação spot. Para obter mais informações, consulte [Obter o status de uma solicitação de instância spot](spot-request-status.md).

------
#### [ Console ]

**Para encontrar uma instância spot interrompida**

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, escolha **Instances (Instâncias)**.

1. Aplique o seguinte filtro: **Instance lifecycle=spot**.

1. Aplique o filtro **Instance state=stoped** ou **Instance state=terminated**, dependendo do comportamento de interrupção configurado.

1. Para cada instância spot, na guia **Detalhes**, em **Detalhes da instância**, localize a **Mensagem de transição de estado**. Os códigos a seguir indicam que a instância spot foi interrompida.
   + `Server.SpotInstanceShutdown`
   + `Server.SpotInstanceTermination`

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

**Para encontrar instâncias spot interrompidas**  
Use o comando [describe-instante](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) com a opção `--filters`. Para listar apenas os IDs das instâncias na saída, inclua a opção `--query`.

Se o comportamento da interrupção for encerrar as instâncias spot, use o seguinte exemplo:

```
aws ec2 describe-instances \
    --filters Name=instance-lifecycle,Values=spot \
              Name=instance-state-name,Values=terminated \
              Name=state-reason-code,Values=Server.SpotInstanceTermination \
    --query "Reservations[*].Instances[*].InstanceId"
```

Se o comportamento da interrupção for parar as instâncias spot, use o seguinte exemplo:

```
aws ec2 describe-instances \
    --filters Name=instance-lifecycle,Values=spot \
              Name=instance-state-name,Values=stopped \
              Name=state-reason-code,Values=Server.SpotInstanceShutdown \
    --query "Reservations[*].Instances[*].InstanceId"
```

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

**Para encontrar instâncias spot interrompidas**  
Use o cmdlet [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

Se o comportamento da interrupção for encerrar as instâncias spot, use o seguinte exemplo:

```
(Get-EC2Instance `
    -Filter @{Key="instance-lifecycle"; Values="spot"} `
            @{Key="instance-state-name"; Values="terminated"} `
            @{Key="state-reason-code"; Values="Server.SpotInstanceTermination"}).Instances.InstanceId
```

Se o comportamento da interrupção for parar as instâncias spot, use o seguinte exemplo:

```
(Get-EC2Instance `
    -Filter @{Key="instance-lifecycle"; Values="spot"} `
            @{Key="instance-state-name"; Values="stopped"} `
            @{Key="state-reason-code"; Values="Server.SpotInstanceTermination"}).Instances.InstanceId
```

------

# Determinar se o Amazon EC2 terminou uma instância spot
<a name="BidEvictedEvent"></a>

Uma instância spot é executada até que o Amazon EC2 a encerre em resposta a uma interrupção da instância spot, ou até que você mesmo a encerre. Para obter mais informações, consulte [Comportamento das interrupções de instâncias spot](interruption-behavior.md).

Após uma instância spot ser encerrada, você pode usar o AWS CloudTrail para ver se o Amazon EC2 a encerrou. Se o log do CloudTrail incluir um `BidEvictedEvent`, isso indica que o Amazon EC2 encerrou a instância spot. Se, em vez disso, você vir um evento `TerminateInstances`, isso indica que um usuário encerrou a instância spot.

Como alternativa, se você quiser receber uma notificação de que o Amazon EC2 interromperá sua instância spot, use o Amazon EventBridge para responder ao [evento de Aviso de interrupção da instância spot do EC2](spot-instance-termination-notices.md#ec2-spot-instance-interruption-warning-event).

**Para visualizar eventos BidEvictedEvent no CloudTrail**

1. Abra o console do CloudTrail em [https://console.aws.amazon.com/cloudtrail/](https://console.aws.amazon.com/cloudtrail/).

1. No painel de navegação, selecione **Event history (Histórico de eventos)**.

1. Na lista de filtros, escolha **Nome do evento** e, em seguida, no campo de filtro à direita, insira **BidEvictedEvent**.

1. (Opcional) Selecione um intervalo de tempo.

1. Se a lista não estiver vazia, escolha **BidEvictedEvent** na entrada resultante para abrir a página de detalhes. É possível encontrar informações sobre a instância spot no painel **Registro de eventos**, incluindo o ID da instância spot. Veja abaixo um exemplo do registro de evento.

   ```
   {
       "eventVersion": "1.05",
       "userIdentity": {
           "accountId": "123456789012",
           "invokedBy": "ec2.amazonaws.com"
       },
       "eventTime": "2016-08-16T22:30:00Z",
       "eventSource": "ec2.amazonaws.com",
       "userAgent": "ec2.amazonaws.com",
       "sourceIPAddress": "ec2.amazonaws.com",
       "eventName": "BidEvictedEvent",
       "awsRegion": "us-east-2",
       "eventID": "d27a6096-807b-4bd0-8c20-a33a83375054",
       "eventType": "AwsServiceEvent",
       "recipientAccountId": "123456789012",
       "RequestParameters": null,
       "ResponseElements": null,
       "serviceEventDetails": {
           "instanceIdSet": [
             "i-1eb2ac8eEXAMPLE"
           ]
       }
   }
   ```

1. Se você não encontrou uma entrada para o evento `BidEvictedEvent`, insira **TerminateInstances** como o nome do evento. Para obter mais informações sobre o registro de evento para `TerminateInstances`, consulte [Exemplos de eventos da API do Amazon EC2](monitor-with-cloudtrail.md#cloudtrail-event-examples).

# Faturamento para Instâncias spot interrompidas
<a name="billing-for-interrupted-spot-instances"></a>

Quando uma instância spot é interrompida, você é cobrado pelo uso da instância e do volume do EBS, podendo incorrer em outras cobranças, conforme indicado a seguir.

## Uso da instância
<a name="billing-for-interrupted-spot-instances-instance-usage"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/billing-for-interrupted-spot-instances.html)

## Uso do volume do EBS
<a name="billing-for-interrupted-spot-instances-ebs-usage"></a>

Enquanto uma instância spot estiver parada, você será cobrado apenas pelos volumes do EBS, que são preservados.

Com a EC2 Fleet e a frota spot, se houver muitas instâncias interrompidas, será possível exceder o limite de número de volumes do EBS na sua conta. 

# Recomendações de rebalanceamento de instâncias do EC2
<a name="rebalance-recommendations"></a>

Uma *recomendação de rebalanceamento* de instância do EC2 é um sinal que envia uma notificação quando uma instância Spot tem risco elevado de interrupção. O sinal pode chegar antes do [aviso de interrupção da instância Spot de dois minutos](spot-instance-termination-notices.md), dando a você a oportunidade de gerenciar proativamente a instância spot. É possível decidir rebalancear sua workload em Instâncias spot novas ou existentes que não tenham risco elevado de interrupção.

Nem sempre é possível para o Amazon EC2 enviar o sinal de recomendação de rebalanceamento antes do aviso de interrupção da instância spot de dois minutos. Portanto, o sinal de recomendação de rebalanceamento pode chegar junto com o aviso de interrupção de dois minutos.

As recomendações de rebalanceamento são disponibilizadas como um evento do EventBridge e como um item nos [metadados de instância](ec2-instance-metadata.md) na instância spot. Os eventos são emitidos com base no melhor esforço.

**nota**  
As recomendações de rebalanceamento só são aceitas para Instâncias spot que sejam executadas depois de 5 de novembro de 2020, 0h (UTC).

**Topics**
+ [Rebalancear ações que é possível executar](#rebalancing-actions)
+ [Monitorar os sinais de recomendação de rebalanceamento](#monitor-rebalance-recommendations)
+ [Serviços que usam o sinal de recomendação de rebalanceamento](#services-using-rebalance-rec-signal)

## Rebalancear ações que é possível executar
<a name="rebalancing-actions"></a>

Estas são algumas das possíveis ações de rebalanceamento que é possível executar:

Desligamento normal  
Quando você receber o sinal de recomendação de rebalanceamento para uma instância spot, poderá iniciar os procedimentos de desligamento da instância, o que pode incluir a garantia de que os processos sejam concluídos antes de serem interrompidos. Por exemplo, é possível fazer upload de logs de sistema ou de aplicações para o Amazon Simple Storage Service (Amazon S3), desligar operadores do Amazon SQS ou concluir o cancelamento do registro do Sistema de Nomes de Domínio (DNS). Também é possível salvar seu trabalho em armazenamento externo e retomá-lo mais tarde.

Impedir que novos trabalhos sejam programados  
Quando você recebe o sinal de recomendação de rebalanceamento para uma instância spot, pode impedir que novos trabalhos sejam programados na instância enquanto ela continuar a ser usada até o trabalho programado ser concluído.

Executar proativamente novas instâncias de substituição  
É possível configurar grupos do Auto Scaling, EC2 Fleet ou frota spot para iniciar automaticamente as instâncias spot de substituição quando um sinal de recomendação de rebalanceamento é emitido. Para obter mais informações, consulte [Use Capacity Rebalancing to handle Amazon EC2 Spot interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) no *Guia do usuário do Amazon EC2 Auto Scaling* e [Use o rebalanceamento de capacidade na frota do EC2 e na frota spot para substituir instâncias spot em risco](ec2-fleet-capacity-rebalance.md) neste guia do usuário.

## Monitorar os sinais de recomendação de rebalanceamento
<a name="monitor-rebalance-recommendations"></a>

É possível monitorar o sinal de recomendação de rebalanceamento de modo que, quando ele for emitido, você possa executar as ações especificadas na seção anterior. O sinal de recomendação de rebalanceamento é disponibilizado como um evento que é enviado para o Amazon EventBridge (anteriormente conhecido como Amazon CloudWatch Events) e como metadados de instância na instância spot.

**Topics**
+ [Usar o Amazon EventBridge](#cp-eventbridge)
+ [Usar metadados da instância](#cp-instance-metadata)

### Usar o Amazon EventBridge
<a name="cp-eventbridge"></a>

Quando o sinal de recomendação de rebalanceamento é emitido para uma instância spot, o evento para o sinal é enviado para o Amazon EventBridge. Se o EventBridge detectar um padrão de evento que corresponda a um padrão definido em uma regra, o EventBridge invocará um destino (ou destinos) especificado(s) na regra.

Veja a seguir um exemplo de evento para o sinal de recomendação de rebalanceamento.

```
{
    "version": "0",
    "id": "12345678-1234-1234-1234-123456789012",
    "detail-type": "EC2 Instance Rebalance Recommendation",
    "source": "aws.ec2",
    "account": "123456789012",
    "time": "yyyy-mm-ddThh:mm:ssZ",
    "region": "us-east-2",
    "resources": ["arn:aws:ec2:us-east-2:123456789012:instance/i-1234567890abcdef0"],
    "detail": {
        "instance-id": "i-1234567890abcdef0"
    }
}
```

Os campos a seguir formam o padrão de evento definido na regra:

`"detail-type": "EC2 Instance Rebalance Recommendation"`  
Identifica que o evento é um evento de recomendação de rebalanceamento

`"source": "aws.ec2"`  
Identifica que o evento é de Amazon EC2

#### Criar uma regra de EventBridge
<a name="cp-eventbridge-rule"></a>

É possível escrever uma regra de EventBridge e automatizar quais ações tomar quando o padrão de evento corresponder à regra.

O exemplo a seguir cria uma regra de EventBridge para enviar um e-mail, mensagem de texto ou notificação por push para dispositivos móveis sempre que Amazon EC2 emite um sinal de recomendação de rebalanceamento. O sinal é emitido como um evento de `EC2 Instance Rebalance Recommendation`, que aciona a ação definida pela regra.

Antes de criar a regra EventBridge, você deve criar o tópico do Amazon SNS para e-mail, mensagem de texto ou notificação por push móvel.

**Para criar uma regra de EventBridge para um evento de recomendação de rebalanceamento**

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

1. Selecione **Criar regra**.

1. Em **Define rule detail** (Definir detalhe da regra), faça o seguinte:

   1. Informe um **Name (Nome)** para a regra e, opcionalmente, uma descrição.

      Uma regra não pode ter o mesmo nome que outra regra na mesma região e no mesmo barramento de eventos.

   1. Em **Event Bus** (Barramento de eventos), escolha **default** (padrão). Quando um serviço da AWS em sua conta gerar um evento, ele sempre irá para o barramento de eventos padrão da sua conta.

   1. Em **Rule type** (Tipo de regra), escolha **Rule with an event pattern** (Regra com um padrão de evento).

   1. Escolha **Próximo**.

1. Em **Build event pattern** (Criar padrão de evento), faça o seguinte:

   1. Em **Event source** (Origem do evento), escolha **Eventos da AWS ou eventos de parceiro do EventBridge**.

   1. Em **Event pattern** (Padrão de evento), neste exemplo você especificará o seguinte padrão de evento para corresponder ao evento `EC2 Instance Rebalance Recommendation` e, em seguida, escolherá **Save** (Salvar).

      ```
      {
       "source": ["aws.ec2"],
       "detail-type": ["EC2 Instance Rebalance Recommendation"]
      }
      ```

      Para adicionar o padrão de evento, é possível usar um modelo escolhendo **Event pattern form** (Formulário de padrão de evento), ou especifique seu próprio padrão escolhendo **Custom pattern (JSON editor)** (Padrão personalizado (editor JSON)), como segue:

      1. Para usar um modelo para criar o padrão de evento, faça o seguinte:

         1. Escolha **Event pattern form** (Formulário de evento).

         1. Em **Event source** (Origem do evento), escolha **AWS services** (Serviços da ).

         1. Em **AWS Service** (Produto da ), escolha **EC2 Spot Fleet** (Frota spot do EC2).

         1. Em **Event type** (Tipo de evento), escolha **EC2 Instance Rebalance Recommendation** (Recomendação de rebalanceamento da instância do EC2).

         1. Para personalizar o modelo, escolha **Edit pattern** (Editar padrão) e faça as alterações para corresponder ao padrão de evento de exemplo.

      1. (Alternativa) Para especificar um padrão de evento personalizado, faça o seguinte:

         1. Escolha **Custom pattern (JSON editor)** (Padrão personalizado (editor JSON)).

         1. Na caixa **Event pattern** (Padrão de evento), adicione o padrão de evento para este exemplo.

   1. Escolha **Próximo**.

1. Em **Select target(s)** (Selecionar destino(s)), faça o seguinte:

   1. Em **Tipos de destino**, escolha **Serviço da AWS**.

   1. Em **Select a target** (Selecione um destino), escolha **SNS topic** (Tópico do SNS) para enviar um email, mensagem de texto ou notificação por push móvel quando o evento ocorrer.

   1. Em **Topic** (Tópico), escolha um tópico existente. Para fazer isso, você precisa criar um tópico do Amazon SNS usando o console do Amazon SNS. Para obter mais informações, consulte [Usar o Amazon SNS para mensagens de aplicação para pessoa (A2P)](https://docs.aws.amazon.com//sns/latest/dg/sns-user-notifications.html) no *Guia do desenvolvedor do Amazon Simple Notification Service*.

   1. (Opcional) Em **Additional settings** (Configurações adicionais), é possível, opcionalmente, definir configurações adicionais. Para obter mais informações, consulte [Criar regras do Amazon EventBridge que reajam a eventos](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html) (etapa 16) no *Guia do usuário do Amazon EventBridge*.

   1. Escolha **Próximo**.

1. (Opcional) Em **Tags** (Etiquetas), é possível atribuir, opcionalmente, uma ou mais etiquetas à sua regra e, em seguida, escolher **Next** (Próximo).

1. Em **Review and create** (Revisar e criar), faça o seguinte:

   1. Revise os detalhes da regra e modifique-os conforme necessário.

   1. Escolha **Criar regra**.

Para obter mais informações, consulte [Amazon EventBridge rules](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) (Regras do Amazon EventBridge) e [Amazon EventBridge event patterns](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) (Padrões de eventos do Amazon EventBridge) no *Amazon EventBridge User Guide* (Manual do usuário do Amazon EventBridge).

### Usar metadados da instância
<a name="cp-instance-metadata"></a>

A categoria de metadados da instância `events/recommendations/rebalance` fornece o horário aproximado, em UTC, quando o sinal de recomendação de rebalanceamento foi emitido para uma instância spot.

Recomendamos que você verifique se há sinais de recomendação de rebalanceamento a cada 5 segundos para que você não perca a oportunidade de agir de acordo com a recomendação de rebalanceamento.

Se uma instância spot receber uma recomendação de rebalanceamento, o horário em que o sinal foi emitido estará presente nos metadados da instância. É possível recuperar o horário em que o sinal foi emitido da seguinte forma.

------
#### [ IMDSv2 ]

**Linux**  
Execute o seguinte comando em sua instância Linux.

**IMDSv2**

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
    && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

**Windows**  
Execute o seguinte cmdlet na sua instância Windows.

```
[string]$token = Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} `
    -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod `
    -Headers @{"X-aws-ec2-metadata-token" = $token} `
    -Method GET -Uri http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

------
#### [ IMDSv1 ]

**Linux**  
Execute o seguinte comando em sua instância Linux.

```
curl http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

**Windows**  
Execute o seguinte cmdlet na sua instância Windows.

```
Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/events/recommendations/rebalance
```

------

A seguir, é mostrado um exemplo de saída, que indica o horário, em UTC, em que o sinal de recomendação de rebalanceamento foi emitido para a instância spot.

```
{"noticeTime": "2020-10-27T08:22:00Z"}
```

Se o sinal não tiver sido emitido para a instância, o `events/recommendations/rebalance` não estará presente e você receberá uma mensagem de erro HTTP 404 quando tentar recuperá-lo.

## Serviços que usam o sinal de recomendação de rebalanceamento
<a name="services-using-rebalance-rec-signal"></a>

O Amazon EC2 Auto Scaling, a EC2 Fleet e a frota spot usam o sinal de recomendação de rebalanceamento para facilitar a manutenção da disponibilidade da workload, aumentando proativamente a frota com uma nova instância spot antes que uma instância em execução receba o aviso de interrupção da instância spot de dois minutos. É possível fazer com que esses serviços monitorem e respondam proativamente às alterações que afetam a disponibilidade da suas Instâncias spot. Para saber mais, consulte:
+ [Usar o rebalanceamento de capacidade para lidar com interrupções spot do Amazon EC2](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) no *Guia do usuário do Amazon EC2 Auto Scaling*.
+ [Use o rebalanceamento de capacidade na frota do EC2 e na frota spot para substituir instâncias spot em risco](ec2-fleet-capacity-rebalance.md) no tópico frota do EC2 e frota spot neste guia do usuário

# Pontuação de posicionamento de spot
<a name="spot-placement-score"></a>

O recurso de pontuação de posicionamento de spot recomenda uma região ou zona de disponibilidade da AWS com base nos requisitos de capacidade spot. A capacidade de spot flutua e você não pode ter certeza de que sempre obterá a capacidade de que precisa. Uma pontuação de posicionamento de spot indica a probabilidade de uma solicitação de spot ter êxito em uma região ou zona de disponibilidade.

**nota**  
Uma pontuação de posicionamento de spot não oferece nenhuma garantia em termos de capacidade disponível ou risco de interrupção. Uma pontuação de posicionamento de spot serve apenas como uma recomendação.

**Casos de uso**

É possível usar o recurso de pontuação de posicionamento de spot para o seguinte:
+ Para realocar e escalar a capacidade computacional de spot em uma região diferente, conforme necessário, em resposta ao aumento das necessidades de capacidade ou diminuição da capacidade disponível na região atual.
+ Para identificar a zona de disponibilidade ideal para executar workloads de zona de disponibilidade única.
+ Para simular futuras necessidades de capacidade spot para que você possa escolher uma região ideal para a expansão de suas workloads baseadas em spot.
+ Para encontrar uma combinação ideal de tipos de instância para atender às suas necessidades de capacidade spot.

**Topics**
+ [Limitações](#sps-limitations)
+ [Custos](#sps-costs)
+ [Como funciona a pontuação de posicionamento de spot](how-sps-works.md)
+ [Permissões necessárias para pontuação de posicionamento spot](sps-iam-permission.md)
+ [Calcular a pontuação de posicionamento spot](work-with-spot-placement-score.md)

## Limitações
<a name="sps-limitations"></a>
+ **Limite da capacidade-alvo**: o limite de capacidade-alvo da pontuação de posicionamento de spot é baseado em seu uso recente de spot, levando em conta um potencial aumento de uso. Se você não fez uso de spot recentemente, fornecemos para você um limite padrão baixo, alinhado com seu limite de solicitação de spot.
+ **Limite de configurações de solicitação**: podemos limitar o número de novas configurações de solicitação dentro de um período de 24 horas se detectarmos padrões não associados ao uso pretendido do recurso de pontuação de posicionamento de spot. Se você atingir o limite, poderá repetir as configurações de solicitação que já usou, mas não poderá especificar novas configurações de solicitação até o próximo período de 24 horas.
+ **Número mínimo de tipos de instância**: se especificar tipos de instância, você deverá especificar pelo menos três tipos de instância diferentes, caso contrário, o Amazon EC2 retornará uma baixa pontuação de posicionamento de spot. Da mesma forma, se você especificar atributos de instância, eles deverão ser resolvidos como, pelo menos, três tipos de instância diferentes. Tipos de instância são considerados diferentes se tiverem nomes diferentes. Por exemplo, m5.8xlarge, m5a.8xlarge, and m5.12xlarge são todos considerados diferentes.

## Custos
<a name="sps-costs"></a>

Não há cobrança adicional pelo uso do recurso de pontuação de posicionamento de spot.

# Como funciona a pontuação de posicionamento de spot
<a name="how-sps-works"></a>

Ao usar o recurso de pontuação de posicionamento de spot, primeiramente você especifica os requisitos de computação para suas instâncias spot e, em seguida, o Amazon EC2 retorna as 10 principais regiões ou zonas de disponibilidade nas quais sua solicitação de spot provavelmente vai obter êxito. Cada região ou zona de disponibilidade é pontuada em uma escala de 1 a 10, com 10 indicando que é altamente provável que sua solicitação de spot tenha êxito e 1 indicando que sua solicitação de spot provavelmente não terá êxito.

**Topics**
+ [Etapa 1: especificar seus requisitos de spot](#sps-specify-requirements)
+ [Etapa 2: filtrar a resposta da pontuação de posicionamento de spot](#get-sps)
+ [Etapa 3: revisar as recomendações](#sps-recommendations)
+ [Etapa 4: usar as recomendações](#sps-use-recommendations)

## Etapa 1: especificar seus requisitos de spot
<a name="sps-specify-requirements"></a>

Primeiro, você especifica a capacidade-alvo de spot desejada e seus requisitos de computação, da seguinte forma:

1. **Especifique a capacidade-alvo de spot e, opcionalmente, a unidade da capacidade-alvo.**

   É possível especificar a capacidade-alvo de spot desejada em termos do número de instâncias ou vCPUs, ou em termos de quantidade de memória em MiB. Para especificar a capacidade-alvo em número de vCPUs ou quantidade de memória, especifique a unidade de capacidade-alvo como `vcpu` ou `memory-mib`. Caso contrário, o padrão é o número de instâncias.

   Ao especificar a capacidade-alvo em termos de número de vCPUs ou quantidade de memória, é possível usar essas unidades ao calcular a capacidade total. Por exemplo, se você quiser usar uma combinação de instâncias de tamanhos diferentes, é possível especificar a capacidade-alvo como um número total de vCPUs. O recurso de pontuação de posicionamento de spot considera cada tipo de instância na solicitação pelo número de vCPUs e conta o número total de vCPUs em vez do número total de instâncias ao totalizar a capacidade-alvo.

   Por exemplo, digamos que você especifique uma capacidade-alvo total de 30 vCPUs e sua lista de tipos de instância consista em c5.xlarge (4 vCPUs), m5.2xlarge (8 vCPUs) e r5.large (2 vCPUs). Para atingir um total de 30 vCPUs, é possívelria obter uma combinação de 2 c5.xlarge (2\$14 vCPUs), 2 m5.2xlarge (2\$18 vCPUs) e 3 r5.large (3\$12 vCPUs).

1. **Especifique tipos de instância ou atributos de instância.**

   É possível especificar os tipos de instância a serem usados ou especificar os atributos de instância necessários para seus requisitos de computação e deixar o Amazon EC2 identificar os tipos de instância que têm esses atributos. Isso é conhecido como seleção de tipo de instância baseada em atributos.

   Você não pode especificar os tipos de instância e os atributos de instância na mesma solicitação de pontuação de posicionamento de spot.

   Se especificar tipos de instância, você deverá especificar pelo menos três tipos de instância diferentes, caso contrário, o Amazon EC2 retornará uma baixa pontuação de posicionamento de spot. Da mesma forma, se você especificar atributos de instância, eles deverão ser resolvidos como, pelo menos, três tipos de instância diferentes.

Para obter exemplos de maneiras diferentes de especificar seus requisitos de spot, consulte [Exemplos de configuração](work-with-spot-placement-score.md#sps-example-configs).

## Etapa 2: filtrar a resposta da pontuação de posicionamento de spot
<a name="get-sps"></a>

O Amazon EC2 calcula a pontuação de posicionamento de spot para cada região ou zona de disponibilidade e retorna as 10 principais regiões ou as 10 principais zonas de disponibilidade nas quais sua solicitação de spot provavelmente terá êxito. O padrão é retornar uma lista de regiões pontuadas. Se você planeja iniciar toda a sua capacidade spot em uma única zona de disponibilidade, será útil solicitar uma lista de zonas de disponibilidade pontuadas.

É possível especificar um filtro de região para restringir as regiões que serão retornadas na resposta.

É possível combinar o filtro de região e uma solicitação de zonas de disponibilidade pontuadas. Dessa forma, as zonas de disponibilidade pontuadas serão restringidas às regiões para filtradas. Para encontrar a zona de disponibilidade com a maior pontuação em uma região, especifique somente essa região, e a resposta retornará uma lista com as pontuações de todas as zonas de disponibilidade na região.

## Etapa 3: revisar as recomendações
<a name="sps-recommendations"></a>

A pontuação de posicionamento de spot para cada região ou zona de disponibilidade é calculada com base na capacidade-alvo, na composição dos tipos de instância, nas tendências de uso histórico e atual de spot e na hora em que a solicitação é feita. Como a capacidade spot está constantemente flutuando, a mesma solicitação de pontuação de posicionamento de spot pode produzir pontuações diferentes quando calculada em horas diferentes.

Regiões e zonas de disponibilidade são pontuadas em uma escala de 1 a 10. Uma pontuação de 10 indica que sua solicitação de spot tem alta probabilidade, mas não garantia, de ter êxito. Uma pontuação de 1 indica que sua solicitação de spot tem muito pouca probabilidade de ter êxito. A mesma pontuação pode ser retornada para diferentes regiões ou zonas de disponibilidade.

Se pontuações baixas forem retornadas, será possível editar seus requisitos de computação e recalcular a pontuação. Também é possível solicitar recomendações de pontuação de posicionamento de spot para os mesmos requisitos de computação em diferentes horas do dia.

## Etapa 4: usar as recomendações
<a name="sps-use-recommendations"></a>

Uma pontuação de posicionamento de spot só é relevante se a solicitação de spot tiver exatamente a mesma configuração que a configuração de pontuação de posicionamento de spot (capacidade-alvo, unidade de capacidade-alvo e tipos de instância ou atributos de instância) e estiver configurada para usar a estratégia de alocação de `capacity-optimized`. Caso contrário, a probabilidade de obter a capacidade de spot disponível não será alinhada com a pontuação.

Embora uma pontuação de posicionamento de spot sirva como diretriz e nenhuma pontuação garanta que sua solicitação de spot será atendida total ou parcialmente, é possível usar as seguintes informações para obter os melhores resultados:
+ **Usar a mesma configuração**: a pontuação de posicionamento de spot é relevante somente se a configuração da solicitação de spot (capacidade-alvo, unidade da capacidade-alvo e tipos de instância ou atributos de instância) no seu grupo do Auto Scaling, frota do EC2 ou frota spot for a mesma que você inseriu para obter a pontuação de posicionamento de spot.

  Se você usou a seleção de tipo de instância baseada em atributo na solicitação de pontuação de posicionamento de spot, poderá usar a seleção de tipo de instância baseada em atributo para configurar seu grupo do Auto Scaling, frota do EC2 ou frota spot. Para obter mais informações, consulte [Create mixed instances group using attribute-based instance type selection](https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-mixed-instances-group-attribute-based-instance-type-selection.html) e [Especificar atributos para seleção de tipo de instância para frota do EC2 ou frota spot](ec2-fleet-attribute-based-instance-type-selection.md).
**nota**  
Se você especificou sua capacidade-alvo em termos do número de vCPUs ou da quantidade de memória e tiver especificado tipos de instância na configuração de pontuação de posicionamento de spot, observe que não é possível criar essa configuração no grupo do Auto Scaling, frota do EC2 ou frota spot. Em vez disso, é necessário definir manualmente a ponderação de instâncias usando o parâmetro `WeightedCapacity`.
+ **Usar a estratégia de alocação `capacity-optimized`**: qualquer pontuação pressupõe que sua solicitação de frota será configurada para usar todas as zonas de disponibilidade (para solicitação de capacidade entre regiões) ou uma só zona de disponibilidade (se estiver solicitando capacidade em uma zona de disponibilidade) e a estratégia `capacity-optimized` de alocação de spot para que sua solicitação de capacidade de spot tenha êxito. Se você usar outras estratégias de alocação, como `lowest-price`, a probabilidade de obter a capacidade de spot disponível não será alinhada com a pontuação.
+ **Agir assim que tiver uma pontuação**: a recomendação de pontuação de posicionamento de spot reflete a capacidade de spot disponível no momento da solicitação, e a mesma configuração pode produzir pontuações diferentes quando calculada em momentos diferentes devido a flutuações na capacidade de spot. Embora uma pontuação de 10 signifique que sua solicitação de capacidade de spot tem alta probabilidade, mas não garantia, de ter êxito, para obter os melhores resultados, recomendamos que você aja assim que tiver a pontuação, imediatamente. Também recomendamos que obtenha uma nova pontuação toda vez que tentar fazer uma solicitação de capacidade.

# Permissões necessárias para pontuação de posicionamento spot
<a name="sps-iam-permission"></a>

Por padrão, as identidades do IAM (usuários, perfis ou grupos) não têm permissão para usar [Pontuação de posicionamento de spot](spot-placement-score.md). Para permitir que as identidades do IAM usem a pontuação de posicionamento spot, crie uma política do IAM que conceda permissão para usar ação `ec2:GetSpotPlacementScores` da API do EC2. Depois, anexe a política às identidades do IAM que requeiram essa permissão.

O exemplo de política do IAM a seguir concede permissão para usar a ação `ec2:GetSpotPlacementScores` da API do EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:GetSpotPlacementScores",
            "Resource": "*"
        }
    ]
}
```

------

Para obter mais informações sobre como editar uma política do IAM, consulte [Edição de políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) no *Guia do usuário do IAM*.

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:
+ Usuários e grupos no Centro de Identidade do AWS IAM:

  Crie um conjunto de permissões. Siga as instruções em [Criação de um conjunto de permissões](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) no *Guia do usuário do Centro de Identidade do AWS IAM*.
+ Usuários gerenciados no IAM com provedor de identidades:

  Crie um perfil para a federação de identidades. Siga as instruções em [Criando um perfil para um provedor de identidades de terceiros (federação)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) no *Guia do Usuário do IAM*.
+ Usuários do IAM:
  + Crie um perfil que seu usuário possa assumir. Siga as instruções em [Criação de um perfil para um usuário do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.
  + (Não recomendado) Vincule uma política diretamente a um usuário ou adicione um usuário a um grupo de usuários. Siga as instruções em [Adição de permissões a um usuário (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) no *Guia do usuário do IAM*.

# Calcular a pontuação de posicionamento spot
<a name="work-with-spot-placement-score"></a>

É possível calcular uma pontuação de posicionamento spot com base na capacidade de destino e nos requisitos de computação. Para obter mais informações, consulte [Como funciona a pontuação de posicionamento de spot](how-sps-works.md).

**Permissões obrigatórias**  
Certifique-se de que você tenha as permissões necessárias. Para obter mais informações, consulte [Permissões necessárias para pontuação de posicionamento spot](sps-iam-permission.md).

**Topics**
+ [Calcular usando atributos de instância](#sps-specify-instance-attributes-console)
+ [Calcular usando tipos de instância](#sps-specify-instance-types-console)
+ [Calcular usando a AWS CLI](#calculate-sps-cli)

**Deseja uma solução automatizada?** Em vez de seguir as etapas manuais deste guia do usuário, você pode criar um painel de rastreamento de pontuação de posicionamento spot que captura e armazena automaticamente as pontuações no Amazon CloudWatch. Para obter mais informações, consulte [Guidance for Building a Spot Placement Score Tracker Dashboard on AWS](https://aws.amazon.com/solutions/guidance/building-a-spot-placement-score-tracker-dashboard-on-aws/).

## Calcular usando atributos de instância
<a name="sps-specify-instance-attributes-console"></a>

**Para calcular uma pontuação de posicionamento de spot especificando atributos de instância**

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 **Solicitações spot**.

1. Escolha a seta para baixo ao lado de **Request Spot Instances** e escolha **Calculate Spot Placement Score**.

1. Escolha **Enter requirements** (Inserir requisitos).

1. Em **Target capacity** (Capacidade-alvo), insira a capacidade desejada em termos do número de **instances** (instâncias) ou **vCPUs**, ou quantidade de **memory (MiB)** (memória).

1. Em **Instance type requirements** (Requisitos de tipo de instância), para especificar seus requisitos de computação e deixar que o Amazon EC2 identifique os tipos de instância ideais com esses requisitos, escolha **Specify instance attributes that match your compute requirements** (Especificar atributos de instância que correspondam aos requisitos de computação).

1. Em **vCPUs**, insira o número mínimo e máximo desejado de vCPUs. Para não especificar nenhum limite, selecione **No minimum** (Sem mínimo), **No maximum** (Sem máximo) ou ambos.

1. Em **Memory (GiB)** (Memória), insira a quantidade mínima e máxima de memória desejada. Para não especificar nenhum limite, selecione **No minimum** (Sem mínimo), **No maximum** (Sem máximo) ou ambos.

1. Em **CPU architecture** (Arquitetura da CPU), selecione a arquitetura de instância requisitada.

1. (Opcional) Em **Additional instance attributes** (Atributos de instância adicionais), é possível, opcionalmente, especificar um ou mais atributos para expressar seus requisitos de computação com mais detalhes. Cada atributo adicional inclui mais uma restrição à solicitação. É possível omitir os atributos adicionais; quando omitidos, os valores padrão são usados. Para obter uma descrição de cada atributo e seus valores padrão, consulte [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).

1. (Opcional) Para visualizar os tipos de instância com os atributos especificados, expanda **Preview matching instance types** (Previsualizar os tipos de instância correspondentes). Para excluir os tipos de instância de serem usados na avaliação do posicionamento, selecione as instâncias e escolha **Exclude selected instance types** (Excluir tipos de instância selecionados).

1. Escolha **Load placement scores** (Carregar pontuações de posicionamento) e analise os resultados.

1. (Opcional) Para exibir a pontuação de posicionamento de spot para regiões específicas, em **Regions to evaluate** (Regiões a serem avaliadas), selecione as regiões a serem avaliadas e, em seguida, escolha **Calculate placement scores** (Calcular pontuações de posicionamento).

1. (Opcional) Para exibir a pontuação de posicionamento de spot para as zonas de disponibilidade nas regiões que a ferramenta exibe, marque a caixa de seleção **Fornecer pontuações de posicionamento por zona de disponibilidade**. Uma lista de zonas de disponibilidade pontuadas é útil se você quiser iniciar toda a sua capacidade de spot em uma única zona de disponibilidade.

1. (Opcional) Para editar seus requisitos de computação e obter uma nova pontuação de posicionamento, escolha **Edit** (Editar), faça os ajustes necessários e, em seguida, escolha **Calculate placement scores** (Calcular pontuações de posicionamento).

## Calcular usando tipos de instância
<a name="sps-specify-instance-types-console"></a>

**Para calcule uma pontuação de posicionamento de spot especificando tipos de instância**

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 **Solicitações spot**.

1. Escolha a seta para baixo ao lado de **Request Spot Instances** e escolha **Calculate Spot Placement Score**.

1. Escolha **Enter requirements** (Inserir requisitos).

1. Em **Target capacity** (Capacidade-alvo), insira a capacidade desejada em termos do número de **instances** (instâncias) ou **vCPUs**, ou quantidade de **memory (MiB)** (memória).

1. Em **Instance type requirements** (Requisitos de tipo de instância), para especificar os tipos de instância a serem usados, escolha **Manually select instance types** (Selecionar manualmente os tipos de instância).

1. Escolha **Select instance types** (Selecionar tipos de instância), selecione os tipos de instância a serem usados e escolha **Select** (Selecionar). Para localizar rapidamente tipos de instância, é possível usar a barra de filtro para filtrar os tipos de instância por diferentes propriedades.

1. Escolha **Load placement scores** (Carregar pontuações de posicionamento) e analise os resultados.

1. (Opcional) Para exibir a pontuação de posicionamento de spot para regiões específicas, em **Regions to evaluate** (Regiões a serem avaliadas), selecione as regiões a serem avaliadas e, em seguida, escolha **Calculate placement scores** (Calcular pontuações de posicionamento).

1. (Opcional) Para exibir a pontuação de posicionamento de spot para as zonas de disponibilidade nas regiões que a ferramenta exibe, marque a caixa de seleção **Fornecer pontuações de posicionamento por zona de disponibilidade**. Uma lista de zonas de disponibilidade pontuadas é útil se você quiser iniciar toda a sua capacidade de spot em uma única zona de disponibilidade.

1. (Opcional) Para editar a lista de tipos de instância e obter uma nova pontuação de posicionamento, escolha **Edit** (Editar), faça os ajustes necessários e, em seguida, escolha **Calculate placement scores** (Calcular pontuações de posicionamento).

## Calcular usando a AWS CLI
<a name="calculate-sps-cli"></a>

**Para calcular uma pontuação de posicionamento de spot**

1. (Opcional) Para gerar todos os parâmetros possíveis que podem ser especificados para a configuração de pontuação de posicionamento de spot, use o comando [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) e o parâmetro `--generate-cli-skeleton`.

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --generate-cli-skeleton
   ```

   O seguinte é um exemplo de saída.

   ```
   {
       "InstanceTypes": [
           ""
       ],
       "TargetCapacity": 0,
       "TargetCapacityUnitType": "vcpu",
       "SingleAvailabilityZone": true,
       "RegionNames": [
           ""
       ],
       "InstanceRequirementsWithMetadata": {
           "ArchitectureTypes": [
               "x86_64_mac"
           ],
           "VirtualizationTypes": [
               "hvm"
           ],
           "InstanceRequirements": {
               "VCpuCount": {
                   "Min": 0,
                   "Max": 0
               },
               "MemoryMiB": {
                   "Min": 0,
                   "Max": 0
               },
               "CpuManufacturers": [
                   "amd"
               ],
               "MemoryGiBPerVCpu": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "ExcludedInstanceTypes": [
                   ""
               ],
               "InstanceGenerations": [
                   "previous"
               ],
               "SpotMaxPricePercentageOverLowestPrice": 0,
               "OnDemandMaxPricePercentageOverLowestPrice": 0,
               "BareMetal": "excluded",
               "BurstablePerformance": "excluded",
               "RequireHibernateSupport": true,
               "NetworkInterfaceCount": {
                   "Min": 0,
                   "Max": 0
               },
               "LocalStorage": "included",
               "LocalStorageTypes": [
                   "hdd"
               ],
               "TotalLocalStorageGB": {
                   "Min": 0.0,
                   "Max": 0.0
               },
               "BaselineEbsBandwidthMbps": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorTypes": [
                   "fpga"
               ],
               "AcceleratorCount": {
                   "Min": 0,
                   "Max": 0
               },
               "AcceleratorManufacturers": [
                   "amd"
               ],
               "AcceleratorNames": [
                   "vu9p"
               ],
               "AcceleratorTotalMemoryMiB": {
                   "Min": 0,
                   "Max": 0
               }
           }
       },
       "DryRun": true,
       "MaxResults": 0,
       "NextToken": ""
   }
   ```

1. Crie um arquivo de configuração JSON usando a saída da etapa anterior e configure-o da seguinte forma:

   1. Em `TargetCapacity`, insira a capacidade desejada em termos do número de instâncias ou vCPUs, ou quantidade de memória (MiB).

   1. Em `TargetCapacityUnitType`, insira a unidade para a capacidade-alvo. Se você omitir esse parâmetro, ele assumirá o padrão `units`.

      Valores válidos: `units` (o que se traduz em número de instâncias) \$1 `vcpu` \$1 `memory-mib`

   1. Em `SingleAvailabilityZone`, especifique `true` para uma resposta que retorna uma lista de zonas de disponibilidade pontuadas. Uma lista de zonas de disponibilidade pontuadas é útil se você quiser iniciar toda a sua capacidade de spot em uma única zona de disponibilidade. Se você omitir esse parâmetro, ele assumirá o padrão `false`, e a resposta retornará uma lista de regiões pontuadas.

   1. (Opcional) Em `RegionNames`, especifique as regiões que deseja usar como filtro. É necessário especificar o código de região, por exemplo, `us-east-1`.

      Com um filtro de região, a resposta retorna apenas as regiões que você especificou. Se tiver especificado `true` para `SingleAvailabilityZone`, a resposta retornará apenas as zonas de disponibilidade nas regiões que você especificou.

   1. É possível incluir um `InstanceTypes` ou `InstanceRequirements`, mas não ambos na mesma configuração.

      Especifique uma das seguintes opções na configuração de JSON:
      + Para especificar uma lista de tipos de instância, especifique os tipos de instância no parâmetro `InstanceTypes`. Especifique pelo menos três tipos de instância diferentes. Se você especificar apenas um ou dois tipos de instância, a pontuação de posicionamento de spot retornará uma pontuação baixa. Para obter uma lista dos tipos de instância , consulte [Tipos de instância do Amazon EC2](https://aws.amazon.com/ec2/instance-types/).
      + Para especificar os atributos da instância para que o Amazon EC2 identifique os tipos de instância que correspondem a esses atributos, especifique os atributos localizados na estrutura `InstanceRequirements`.

        É necessário fornecer valores para `VCpuCount`, `MemoryMiB` e `CpuManufacturers`. É possível omitir os outros atributos; quando omitidos, os valores padrão são usados. Para obter uma descrição de cada atributo e seus valores padrão, consulte [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).

      Para obter configurações de exemplo, consulte [Exemplos de configuração](#sps-example-configs).

1. Para obter a pontuação de posicionamento de spot para os requisitos especificados no arquivo JSON, use o comando [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html) e especifique o nome e o caminho do arquivo JSON usando o parâmetro `--cli-input-json`.

   ```
   aws ec2 get-spot-placement-scores \
       --region us-east-1 \
       --cli-input-json file://file_name.json
   ```

   Exemplo de saída se `SingleAvailabilityZone` for definido como `false` ou omitido (se omitido, o padrão `false` será usado); uma lista classificada de regiões será devolvida.

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "Score": 7
       },
       {
           "Region": "us-west-1",
           "Score": 5
       },  
      ...
   ```

   Exemplo de saída se `SingleAvailabilityZone` for definido como `true`; uma lista pontuada de zonas de disponibilidade será retornada.

   ```
   "SpotPlacementScores": [
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "use1-az1",
           "Score": 8
       },
       {
           "Region": "us-east-1",
           "AvailabilityZoneId": "usw2-az3",
           "Score": 6
       },
      ...
   ```

### Exemplos de configuração
<a name="sps-example-configs"></a>

Quando usar a AWS CLI, será possível usar os exemplos de configurações as seguir.

**Topics**
+ [Exemplo: especificar tipos de instância e capacidade-alvo](#example-config-instance-type-override)
+ [Exemplo: especificar tipos de instância e capacidade-alvo em termos de memória](#example-config-instance-type-memory-unit-override)
+ [Exemplo: especificar atributos para seleção de tipo de instância baseada em atributos](#example-config-attribute-based-instance-type-selection)
+ [Exemplo: especificar atributos para seleção de tipo de instância baseada em atributos e retornar uma lista pontuada de zonas de disponibilidade](#example-config-sps-singleAZ)

#### Exemplo: especificar tipos de instância e capacidade-alvo
<a name="example-config-instance-type-override"></a>

O exemplo de configuração a seguir especifica três tipos de instância diferentes e uma capacidade-alvo de spot de 500 instâncias spot.

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500
}
```

#### Exemplo: especificar tipos de instância e capacidade-alvo em termos de memória
<a name="example-config-instance-type-memory-unit-override"></a>

O exemplo de configuração a seguir especifica três tipos de instância diferentes e uma capacidade-alvo de spot de 500.000 MiB de memória, em que o número de Instâncias spot a serem iniciadas deve fornecer um total de 500.000 MiB de memória.

```
{
    "InstanceTypes": [
        "m5.4xlarge",
        "r5.2xlarge",
        "m4.4xlarge"
    ], 
    "TargetCapacity": 500000,
    "TargetCapacityUnitType": "memory-mib"
}
```

#### Exemplo: especificar atributos para seleção de tipo de instância baseada em atributos
<a name="example-config-attribute-based-instance-type-selection"></a>

O exemplo de configuração a seguir é configurado para seleção de tipo de instância baseada em atributos e é seguido de um texto explicativo do exemplo de configuração.

```
{
    "TargetCapacity": 5000,
    "TargetCapacityUnitType": "vcpu",
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```

****`InstanceRequirementsWithMetadata`****  
Para usar a seleção do tipo de instância baseada em atributo, é necessário incluir a estrutura `InstanceRequirementsWithMetadata` na configuração e especificar os atributos desejados para as Instâncias spot.

No exemplo anterior, os seguintes atributos de instância necessários são especificados:
+ `ArchitectureTypes` – o tipo de arquitetura dos tipos de instância deve ser `arm64`.
+ `VirtualizationTypes` – o tipo de virtualização dos tipos de instância deve ser `hvm`.
+ `VCpuCount`: os tipos de instância devem ter no mínimo 1 e no máximo 12 vCPUs.
+ `MemoryMiB`: os tipos de instância devem ter no mínimo 512 MiB de memória. Omitindo o parâmetro `Max`, você está indicando que não há limite máximo.

Observe que existem vários outros atributos opcionais que é possível especificar. Para obter a lista de atributos, consulte [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).

**`TargetCapacityUnitType`**  
O parâmetro `TargetCapacityUnitType` especifica a unidade da capacidade-alvo. No exemplo, a capacidade-alvo é `5000` e o tipo de unidade de capacidade-alvo é `vcpu`, que juntos especificam uma capacidade-alvo desejada de 5000 vCPUs, em que o número de instâncias spot a serem iniciadas deve fornecer um total de 5000 vCPUs.

#### Exemplo: especificar atributos para seleção de tipo de instância baseada em atributos e retornar uma lista pontuada de zonas de disponibilidade
<a name="example-config-sps-singleAZ"></a>

O exemplo de configuração a seguir é configurado para seleção de tipo de instância baseada em atributos. Especificando `"SingleAvailabilityZone": true`, a resposta retornará uma lista de zonas de disponibilidade pontuadas.

```
{
    "TargetCapacity": 1000,
    "TargetCapacityUnitType": "vcpu",
    "SingleAvailabilityZone": true,
    "InstanceRequirementsWithMetadata": {
        "ArchitectureTypes": ["arm64"],
        "VirtualizationTypes": ["hvm"],
        "InstanceRequirements": {
            "VCpuCount": {
                "Min": 1,
                "Max": 12
            },
            "MemoryMiB": {
                "Min": 512
            }
        }
    }
}
```

# Rastrear os custos das instâncias spot usando o feed de dados da instância spot
<a name="spot-data-feeds"></a>

Para compreender as cobranças relativas às suas instâncias spot, o Amazon EC2 fornece um feed de dados que descreve o uso que você faz de sua instância spot e a definição de preços. Esse feed de dados é enviado a um bucket do Amazon S3 que você especifica ao assinar um feed de dados.

O feed de dados normalmente chega em seu bucket uma vez por hora. Se você não tiver uma instância spot em execução em uma hora específica, não receberá um arquivo de feed de dados nessa hora.

Cada hora de uso de uma instância spot é coberto em um único arquivo de dados. Esses arquivos são compactados (gzip) antes de serem entregues ao seu bucket. O Amazon EC2 pode gravar vários arquivos em uma determinada hora de uso quando os arquivos estiverem muito grandes (por exemplo, quando o conteúdo dos arquivos para a hora ultrapassar 50 MB antes da compactação).

**nota**  
Você só pode criar um feed de dados de instância spot para cada Conta da AWS.

O feed de dados da instância spot é compatível em todas as regiões AWS, exceto China (Pequim), China (Ningxia), AWS GovCloud (EUA) e as [regiões que estão desabilitadas por padrão](using-regions-availability-zones.md#concepts-available-regions).

**Topics**
+ [Nome e formato de arquivo do feed de dados](#using-spot-instances-format)
+ [Requisitos do bucket do Amazon S3](#using-spot-instances-dfs3)
+ [Assinar seu feed de dados da instância spot](#using-spot-instances-datafeed-all)
+ [Visualização dos dados no feed de dados](#using-spot-instances-datafeed-view-data)
+ [Excluir seu feed de dados de instância spot](#using-spot-instances-datafeed-delete)

## Nome e formato de arquivo do feed de dados
<a name="using-spot-instances-format"></a>

O nome de arquivo do feed de dados de instância spot usa o seguinte formato (com a data e a hora em UTC): 

```
bucket-name.s3.amazonaws.com/optional-prefix/aws-account-id.YYYY-MM-DD-HH.n.unique-id.gz
```

Por exemplo, se o nome do bucket for **amzn-s3-demo-bucket** e o prefixo for **my-prefix**, os nomes dos arquivos serão semelhantes ao seguinte:

```
amzn-s3-demo-bucket.s3.amazonaws.com/my-prefix/111122223333.2023-12-09-07.001.b959dbc6.gz
```

Para obter mais informações sobre os nomes de bucket, consulte [Regras de nomeação de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html) no *Guia do usuário do Amazon S3*.

Os arquivos de feed de dados de instância spot são delimitados por tabulação. Cada linha no arquivo de dados corresponde a uma hora de instância e contém os campos listados na tabela a seguir.


|  Campo  |  Descrição  | 
| --- | --- | 
|   `Timestamp`   |  O time stamp usado para determinar o preço cobrado pelo uso dessa instância.  | 
|   `UsageType`   |  O tipo de uso e instância que está sendo cobrado. Para `m1.small` Instâncias spot, este campo está definido como `SpotUsage`. Para todos os outros tipos de instância, esse campo é definido como `SpotUsage:`\$1*instance-type*\$1. Por exemplo, `SpotUsage:c1.medium`.  | 
|   `Operation`   |  O produto que está sendo cobrado. Nas Instâncias spot do Linux, este campo é definido como `RunInstances`. Nas Instâncias spot do Windows, este campo é definido como `RunInstances:0002`. O uso de spot é agrupado de acordo com a zona de disponibilidade.  | 
|   `InstanceID`   |  O ID da instância spot que gerou este uso de instância.  | 
|   `MyBidID`   |  O ID da solicitação de instância spot que gerou este uso de instância.  | 
|   `MyMaxPrice`   |  O preço máximo especificado para essa solicitação de spot.  | 
|   `MarketPrice`   |  O preço spot na hora especificada no campo `Timestamp`.  | 
|   `Charge`   |  O preço cobrado por este uso de instância.  | 
|   `Version`   |  A versão do feed de dados. A versão possível é a 1.0.  | 

## Requisitos do bucket do Amazon S3
<a name="using-spot-instances-dfs3"></a>

Ao assinar o feed de dados, especifique um bucket do Amazon S3 pra armazenar os arquivos do feed de dados.

Antes de escolher um bucket do Amazon S3 para o feed de dados, considere o seguinte:
+ É necessário ter a permissão `FULL_CONTROL` para o bucket. Se você for o proprietário do bucket, terá essa permissão por padrão. Caso contrário, o proprietário do bucket deve conceder essa permissão à sua Conta da AWS.
+ Quando você assina um feed de dados, essas permissões são usadas para atualizar o ACL do bucket a fim de fornecer à conta de feed de dados da AWS a permissão `FULL_CONTROL`. A conta de feed de dados da AWS grava arquivos de feed de dados no bucket. Se sua conta não tiver as permissões necessárias, os arquivos de feed de dados não poderão ser gravados no bucket. Para obter mais informações, consulte [Logs enviados ao Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-infrastructure-S3) no *Guia do usuário do Amazon CloudWatch Logs*.

  Se você atualizar o ACL e eliminar as permissões para a conta do feed de dados da AWS, os arquivos de feed de dados não poderão ser gravados no bucket. É necessário assinar novamente o feed de dados para receber arquivos de feed de dados.
+ Cada arquivo do feed de dados tem sua própria ACL (separada da ACL do bucket). O proprietário do bucket tem a permissão `FULL_CONTROL` para os arquivos de dados. A conta de feed de dados da AWS tem permissões de leitura e gravação.
+ Se você excluir a assinatura do feed de dados, o Amazon EC2 não removerá as permissões de leitura e gravação para a conta de feed de dados da AWS no bucket nem nos arquivos de dados. Você precisa remover essas permissões por conta própria.
+ Caso criptografe o bucket do Amazon S3 usando criptografia no lado do servidor com uma chave do AWS KMS armazenada no AWS Key Management Service (SSE-KMS), você deverá usar uma chave gerenciada pelo cliente. Para obter mais informações, consulte [Criptografia no lado do servidor de bucket do Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-SSE-KMS-S3) no *Guia do usuário do Amazon CloudWatch Logs*.

## Assinar seu feed de dados da instância spot
<a name="using-spot-instances-datafeed-all"></a>

É possível se inscrever para receber o feed de dados da instância spot a qualquer momento. Não é possível realizar essa tarefa usando o console do Amazon EC2.

Se você receber um erro informando que o bucket não tem permissões suficientes, consulte o seguinte artigo para obter informações sobre solução de problemas: [Troubleshoot the data feed for Spot Instances](https://repost.aws/knowledge-center/s3-data-feed-ec2-spot-instances).

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

**Para assinar seu feed de dados**  
Use o comando [create-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-spot-datafeed-subscription.html).

Para especificar um bucket com um prefixo, use o seguinte exemplo:

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket \
    --prefix my-prefix
```

Para especificar um bucket sem um prefixo, use o seguinte exemplo:

```
aws ec2 create-spot-datafeed-subscription \
    --bucket amzn-s3-demo-bucket
```

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

**Para assinar seu feed de dados**  
Use o cmdlet [New-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2SpotDatafeedSubscription.html).

Para especificar um bucket com um prefixo, use o seguinte exemplo:

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket `
    -Prefix my-prefix
```

Para especificar um bucket sem um prefixo, use o seguinte exemplo:

```
New-EC2SpotDatafeedSubscription `
    -Bucket amzn-s3-demo-bucket
```

------

## Visualização dos dados no feed de dados
<a name="using-spot-instances-datafeed-view-data"></a>

No Console de gerenciamento da AWS, abra o AWS CloudShell. Use o comando [s3 sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) a seguir para obter os arquivos .gz do bucket do S3 para o feed de dados e armazená-los na pasta que você especificar.

```
aws s3 sync s3://amzn-s3-demo-bucket ./data-feed
```

Para exibir o conteúdo de um arquivo .gz, acesse a pasta em que você armazenou o conteúdo do bucket do S3.

```
cd data-feed
```

Use o comando **ls** para visualizar os nomes dos arquivos. Use o comando **zcat** com o nome do arquivo para exibir o conteúdo do arquivo compactado. O comando a seguir é um exemplo.

```
zcat  111122223333.2023-12-09-07.001.b959dbc6.gz
```

O seguinte é um exemplo de saída.

```
#Version: 1.0
#Fields: Timestamp UsageType Operation InstanceID MyBidID MyMaxPrice MarketPrice Charge Version
2023-12-09 07:13:47 UTC USE2-SpotUsage:c7a.medium       RunInstances:SV050      i-0c3e0c0b046e050df     sir-pwq6nmfp    0.0510000000 USD        0.0142000000 USD        0.0142000000 USD        1
```

## Excluir seu feed de dados de instância spot
<a name="using-spot-instances-datafeed-delete"></a>

Após terminar de usar o feed de dados da instância spot, será possível excluí-lo.

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

**Para excluir seu feed de dados**  
Use o comando [delete-spot-datafeed-subscription](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-spot-datafeed-subscription.html).

```
aws ec2 delete-spot-datafeed-subscription
```

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

**Para excluir seu feed de dados**  
Use o cmdlet [Remove-EC2SpotDatafeedSubscription](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2SpotDatafeedSubscription.html).

```
Remove-EC2SpotDatafeedSubscription
```

------

# Função vinculada ao serviço para solicitações de instâncias spot
<a name="service-linked-roles-spot-instance-requests"></a>

O Amazon EC2 usa funções vinculadas ao serviço para as permissões necessárias para chamar outros produtos da AWS em seu nome. O perfil vinculado ao serviço é um tipo exclusivo de perfil do IAM vinculado diretamente ao AWS service (Serviço da AWS). Os perfis vinculados a serviços oferecem uma maneira segura de delegar permissões a outros Serviços da AWS, pois somente o serviço vinculado pode assumir uma função vinculada ao serviço. Para obter mais informações, consulte [Perfis vinculados ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) no *Guia do usuário do IAM*.

O Amazon EC2 usa a função vinculada ao serviço denominada **AWSServiceRoleForEC2Spot** para executar e gerenciar Instâncias spot em seu nome.

## Permissões concedidas pelo AWSServiceRoleForEC2Spot
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2Spot"></a>

O Amazon EC2 usa **AWSServiceRoleForEC2Spot** para concluir as ações a seguir:
+ `ec2:DescribeInstances` – Descrever instâncias spot
+ `ec2:StopInstances` – Parar instâncias spot
+ `ec2:StartInstances` – Iniciar instâncias spot

## Criar a função vinculada ao serviço
<a name="service-linked-role-creating-for-spot"></a>

Na maioria das circunstâncias, você não precisa criar manualmente uma função vinculada ao serviço. O Amazon EC2 cria a função **AWSServiceRoleForEC2Spot** vinculada ao serviço na primeira vez que você solicita uma instância spot usando o console.

Se você tinha uma solicitação de instância spot ativa antes de outubro de 2017, quando o Amazon EC2 começou a oferecer suporte a essa função vinculada ao serviço, o Amazon EC2 criou a função **AWSServiceRoleForEC2Spot** em sua conta da AWS. Para obter mais informações, consulte [Uma nova função apareceu na minha conta](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared) no *Guia do usuário do IAM*.

Se você usar a AWS CLI ou uma API para solicitar uma instância spot, deverá assegurar que essa função existe.

**Para criar **AWSServiceRoleForEC2Spot** usando o console**

1. Abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**.

1. Selecione **Create role**.

1. Na página **Select type of trusted entity (Selecionar tipo de entidade confiável)**, escolha **EC2**, **EC2 - Spot Instances (EC2 - instâncias spot)**, **Next: Permissions (Próximo: permissões)**.

1. Na próxima página, escolha **Next:Review (Próximo: revisar)**.

1. Na página **Review (Revisar)**, selecione **Create role (Criar função)**.

**Para criar **AWSServiceRoleForEC2Spot** usando a AWS CLI**  
Use o comando [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) da seguinte forma.

```
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
```

Se você não precisar mais usar Instâncias spot, é recomendável excluir a função **AWSServiceRoleForEC2Spot**. Depois que essa função for excluída da sua conta, o Amazon EC2 criará a função novamente se você solicitar Instâncias spot.

## Conceder acesso às chaves gerenciadas pelo cliente para uso com AMIs criptografadas e snapshots do EBS
<a name="spot-instance-service-linked-roles-access-to-cmks"></a>

Se você especificar uma [AMI criptografada](AMIEncryption.md) ou um snapshot do Amazon EBS criptografado para suas instâncias spot e usar uma chave gerenciada pelo cliente para criptografia, deverá conceder à função **AWSServiceRoleForEC2Spot** permissão para usar a chave gerenciada pelo cliente de forma que o Amazon EC2 consiga executar instâncias spot em seu nome. Para isso, adicione uma concessão à chave gerenciada pelo cliente, conforme exibido no procedimento a seguir.

Durante a definição de permissões, as concessões são uma alternativa às políticas de chave. Para obter mais informações, consulte [Uso de concessões](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) e [Uso de políticas de chave no AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), no *Guia do desenvolvedor do AWS Key Management Service*.

**Para conceder as permissões para a função **AWSServiceRoleForEC2Spot** para usar a chave gerenciada pelo cliente**
+ Use o comando [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) para adicionar uma concessão à chave gerenciada pelo cliente e especificar a entidade principal (a função vinculada ao serviço **AWSServiceRoleForEC2**) que recebe permissão para executar as operações permitidas pela concessão. A chave gerenciada pelo cliente é especificada pelo parâmetro `key-id` e o ARN da chave gerenciada pelo cliente. A entidade principal é especificada pelo parâmetro `grantee-principal` e pelo ARN da função vinculada ao serviço **AWSServiceRoleForEC2Spot**.

  ```
  aws kms create-grant \
      --region us-east-1 \
      --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
      --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

# Cotas de instâncias spot
<a name="using-spot-limits"></a>

Há cotas para o número de instâncias spot em execução e as solicitações de instâncias spot pendentes por Conta da AWS por região. Depois que uma solicitação de instância spot pendente é atendida, a solicitação não é mais contabilizada na cota porque a instância em execução é contabilizada na cota.

As cotas de instância spot são gerenciadas em termos do *número de unidades de processamento central virtuais (vCPUs)* que as instâncias spot em execução estão usando ou usarão até o atendimento de solicitações de instância spot abertas. Se você encerrar as instâncias spot, mas não cancelar as solicitações de instância spot, as solicitações serão contabilizadas em relação à cota de vCPU da instância spot até que o Amazon EC2 detecte os encerramentos de instância spot e feche as solicitações.

Fornecemos os tipos de cota a seguir para instâncias spot.


| Nome | Padrão | Ajustável | 
| --- | --- | --- | 
| Todas as solicitações de instância spot DL | 0 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-85EED4F7) | 
| Todas as solicitações de instância spot F | 0 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-88CF9481) | 
| Todas as solicitações de instância spot G e VT | 0 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-3819A6DF) | 
| Todas as solicitações de instância spot Inf | 0 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-B5D1601B) | 
| Todas as solicitações de instância spot P | 0 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-7212CCBC) | 
| Todas as solicitações de instância spot padrão (A, C, D, H, I, M, R, T, Z) | 5 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-34B43A08) | 
| Todas as solicitações de instância spot Trn | 0 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-6B0D517C) | 
| Todas as solicitações de instância spot X | 0 | [Sim](https://console.aws.amazon.com/servicequotas/home/services/ec2/quotas/L-E3A00192) | 

Mesmo que o Amazon EC2 ajuste automaticamente suas cotas de instância spot com base em seu uso, é possível solicitar um aumento de cota, se for o caso. Por exemplo, se você pretende lançar mais Instâncias spot do que a cota atual permite, solicite um aumento de cota. Também é possível solicitar um aumento de cota se você enviar uma solicitação de instância spot e receber uma mensagem de erro `Max spot instance count exceeded`. Para solicitar aumento de cota, use o console do Service Quotas descrito em [Service Quotas do Amazon EC2](ec2-resource-limits.md).

É possível iniciar qualquer combinação de tipos de instância que atenda às necessidades em constante mudança da sua aplicação. Por exemplo: com uma cota de solicitações de todas instâncias spotpadrão de 256 vCPUs, é possível solicitar 32 instâncias spot `m5.2xlarge` (32 x 8 vCPUs) ou 16 instâncias spot `c5.4xlarge` (16 x 16 vCPUs). 

Com a integração de métricas do Amazon CloudWatch, é possível monitorar o uso do EC2 em relação às suas cotas. Também é possível configurar alarmes para alertar quando estiver chegando próximo da cota. Para obter mais informações, consulte [Alarmes do Service Quotas e do Amazon CloudWatch](https://docs.aws.amazon.com/servicequotas/latest/userguide/configure-cloudwatch.html) no *Guia do usuário do Service Quotas*.