

# Opções de configuração para frota do EC2 ou frota spot
<a name="ec2-fleet-configuration-strategies"></a>

Quando você planejar uma frota do EC2 ou frota spot, recomendamos que você considere as opções a seguir quando decidir como configurar a frota.


****  

| Opção de configuração | Pergunta | Documentação | 
| --- | --- | --- | 
| Tipo de solicitação de frota |  Você deseja criar uma frota spot que envie uma solicitação única para a capacidade de destino desejada ou uma frota spot que mantenha uma capacidade de destino ao longo do tempo?  | [Tipos de solicitação de frota do EC2 e de frota spot](ec2-fleet-request-type.md) | 
| Instâncias spot | Você planeja incluir instâncias spot na frota? Analise as práticas recomendadas de spot e use-as ao planejar a frota para poder provisionar as instâncias com o menor preço possível. | [Práticas recomendadas para instâncias spot do Amazon EC2](spot-best-practices.md) | 
| Limite de gastos da frota | Você quer limitar o valor a ser pago pela frota por hora? | [Definir um limite de gastos para a frota do EC2 ou a frota spot](ec2-fleet-control-spending.md) | 
| Tipos de instância e seleção de tipo de instância baseada em atributos |  Você quer especificar os tipos de instância na frota ou permitir que o Amazon EC2 selecione os tipos de instância que atendam aos requisitos da sua aplicação?  | [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) | 
| Ponderação de instâncias | Você quer atribuir pesos a cada tipo de instância para representar sua capacidade computacional e sua performance para que o Amazon EC2 possa selecionar qualquer combinação de tipos de instância disponíveis para atender à capacidade de destino? | [Usar ponderação de instâncias para gerenciar o custo e a performance da frota do EC2 ou da frota spot](ec2-fleet-instance-weighting.md) | 
| Estratégias de alocação | Você quer decidir se deseja otimizar a capacidade disponível, o preço ou os tipos de instância para usar nas instâncias spot e nas instâncias sob demanda da frota? | [Usar estratégias de alocação para determinar como a frota do EC2 ou a frota spot atende à capacidade spot e sob demanda](ec2-fleet-allocation-strategy.md) | 
| Rebalanceamento de capacidade | Você quer que a frota substitua automaticamente as instâncias spot em risco? | [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) | 
| Reserva de capacidade sob demanda | Você quer reservar capacidade para as instâncias sob demanda da frota? | [Use reservas de capacidade para reservar capacidade sob demanda na frota do EC2](ec2-fleet-on-demand-capacity-reservations.md) | 

# Tipos de solicitação de frota do EC2 e de frota spot
<a name="ec2-fleet-request-type"></a>

O tipo de solicitação de uma frota do EC2 ou de frota spot determina se a solicitação é síncrona ou assíncrona e se é uma solicitação única da capacidade de destino desejada ou um esforço contínuo para manter a capacidade ao longo do tempo. Ao configurar a frota, você deve especificar o tipo de solicitação.

Tanto a frota do EC2 quanto a frota spot oferecem dois tipos de solicitação: `request` e `maintain`. Além disso, a frota do EC2 oferece um terceiro tipo de solicitação, denominado `instant`.Tipos de solicitação de frota

`instant` (Somente para frota do EC2)  
Se você configurar o tipo de solicitação como `instant`, a Frota do EC2 incluirá uma solicitação síncrona única da capacidade desejada. A resposta da API retorna as instâncias que foram iniciadas e fornece os erros das instâncias que não puderam ser iniciadas. Para obter mais informações, consulte [Configurar um EC2 Fleet do tipo instant](instant-fleet.md).

`request`  
Se você configurar o tipo de solicitação como `request`, a frota fará uma solicitação assíncrona única da capacidade desejada. Se a capacidade diminuir devido a interrupções de spot, a frota não tentará reabastecer as instâncias spot nem enviará solicitações em grupos de capacidade spot alternativos se a capacidade estiver indisponível. Quando você criar uma frota spot do tipo `request` usando o console, desmarque a caixa de seleção **Manter a capacidade de destino**.

`maintain` (padrão)  
Se você configurar o tipo de solicitação como `maintain`, a frota fará uma solicitação assíncrona única da capacidade desejada e manterá a capacidade ao reabastecer automaticamente as instâncias spot interrompidas. Quando você criar uma frota spot do tipo `maintain` usando o console, marque a caixa de seleção **Manter a capacidade de destino**

# Configurar um EC2 Fleet do tipo instant
<a name="instant-fleet"></a>

A EC2 Fleet do tipo *instantâneo* é uma solicitação síncrona única que faz apenas uma tentativa de iniciar a capacidade desejada. A resposta da API lista as instâncias que foram iniciadas juntamente com os erros das instâncias que não puderam ser iniciadas. Há vários benefícios de se usar uma EC2 Fleet do tipo *Instantâneo*, e eles são descritos neste artigo. Exemplos de configurações são fornecidos no fim do artigo.

Para workloads que precisam de uma API somente de inicialização para iniciar instâncias do EC2, você pode usar a API RunInstances. No entanto, com RunInstances, você só pode iniciar Instâncias sob demanda ou instâncias spot, mas não ambas na mesma solicitação. Além disso, quando você usa RunInstances para iniciar Instâncias spot, sua solicitação de Instância spot é limitada a um tipo de instância e a uma zona de disponibilidade. Isso visa um único grupo de capacidade spot (um conjunto de instâncias com o mesmo tipo de instância e zona de disponibilidade). Se o grupo de capacidade spot não tiver capacidade de instância spot suficiente para sua solicitação, a chamada RunInstances não tem sucesso.

Em vez de usar RunInstances para iniciar Instâncias spot, é recomendável usar a API CreateFleet com o parâmetro `type` definido como `instant` para obter os seguintes benefícios: 
+ **Iniciar Instâncias sob demanda e instâncias spot em uma única solicitação.** Uma EC2 Fleet pode iniciar Instâncias sob demanda, instâncias spot ou ambas. A solicitação das Instâncias spot é atendida se houver capacidade disponível e o preço máximo por hora para sua solicitação excede o preço Spot.
+ **Aumente a disponibilidade das instâncias spot.** Usando uma EC2 Fleet do tipo `instant`, você pode iniciar instâncias spot seguindo as [Práticas recomendadas para spot](spot-best-practices.md) com os benefícios decorrentes disso:
  + **Prática recomendada para spot: seja flexível sobre tipos de instância e zonas de disponibilidade.**

    Benefício: especificando vários tipos de instância e zonas de disponibilidade, você aumenta o número de grupos de capacidade spot. Isso dá ao serviço de spot uma chance maior de encontrar e alocar sua capacidade computacional spot desejada. Uma boa regra geral é ser flexível em pelo menos 10 tipos de instância para cada workload e garantir que todas as zonas de disponibilidade estejam configuradas para uso na sua VPC.
  + **Prática recomendada para spot: use a estratégia de alocação de price-capacity-optimized.**

    Benefício: a estratégia de alocação de `price-capacity-optimized` identifica instâncias nos grupos de capacidade spot com maior disponibilidade e provisiona as instâncias de menor preço desses grupos. Como a capacidade de instâncias spot é proveniente de grupos com capacidade ideal, isso diminui a possibilidade de que as instâncias spot sejam interrompidas quando o Amazon EC2 precisar recuperar capacidade.
+ **Tenha acesso a um conjunto mais amplo de recursos.** Para workloads que precisam de uma API somente de lançamento e em que você prefere gerenciar o ciclo de vida de sua instância em vez de deixar a frota EC2 gerenciá-lo para você, use a EC2 Fleet do tipo `instant` em vez da API [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). A EC2 Fleet fornece um conjunto mais amplo de recursos do que o RunInstances, conforme demonstrado nos exemplos a seguir. Para todas as outras workloads, você deve usar o Amazon EC2 Auto Scaling, porque ele fornece um conjunto de recursos mais abrangente para uma grande variedade de workloads, como aplicativos apoiados pelo ELB, workloads em contêineres e trabalhos de processamento de fila.

Você pode usar a Frota do EC2 do tipo *instantânea* para iniciar instâncias em blocos de capacidade. Para obter mais informações, consulte [Tutorial: configurar o EC2 Fleet para executar instâncias em blocos de capacidade](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md).

Os serviços da AWS, como o Amazon EC2 Auto Scaling e o Amazon EMR, usam o tipo de EC2 Fleet *instantâneo* para iniciar instâncias do EC2.

## Pré-requisitos para a EC2 Fleet do tipo instantâneo
<a name="instant-fleet-prerequisites"></a>

Para obter os pré-requisitos para criar uma EC2 Fleet, consulte [Pré-requisitos da Frota do EC2](ec2-fleet-prerequisites.md).

## Como uma EC2 Fleet instantânea funciona
<a name="how-instant-fleet-works"></a>

Ao trabalhar com uma EC2 Fleet do tipo `instant`, a sequência de eventos é a seguinte:

1. **Configuração:** configure o tipo de solicitação [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html) como `instant`. Para obter mais informações, consulte [Criar uma Frota do EC2.](create-ec2-fleet.md). Observe que, após fazer a chamada de API, você não pode modificá-la.

1. **Solicitação:** ao efetuar a chamada de API, o Amazon EC2 realizará uma solicitação síncrona única para a capacidade desejada.

1. **Resposta:** a resposta da API lista as instâncias que foram iniciadas, juntamente com os erros das instâncias que não puderam ser iniciadas.

1. **Descrição:** é possível descrever a frota do EC2, listar as instâncias associadas à sua frota do EC2 e visualizar o histórico da frota do EC2.

1. **Encerramento de instâncias:** é possível encerrar as instâncias a qualquer momento.

1. **Solicitação de exclusão de frota:** a solicitação de frota pode ser excluída manual ou automaticamente:
   + Manual: é possível [excluir a solicitação de frota](delete-fleet.md) após a inicialização das instâncias.

     Observe que não há suporte para a exclusão de uma frota `instant` com instâncias em execução. Ao excluir uma frota `instant`, o Amazon EC2 encerra automaticamente todas as suas instâncias. Para frotas com mais de mil instâncias, a solicitação de exclusão pode não ser bem-sucedida. Caso sua frota contenha mais de mil instâncias, encerre manualmente a maioria delas, deixando mil ou menos. Em seguida, exclua a frota, e as instâncias restantes serão encerradas automaticamente.
   + Automático: o Amazon EC2 exclui a solicitação de frota após algum tempo, caso ocorra um dos seguintes eventos: 
     + Todas as instâncias estão encerradas.
     + A frota não consegue iniciar nenhuma instância.

## Exemplos
<a name="instant-fleet-examples"></a>

Os exemplos a seguir mostram como usar a EC2 Fleet do tipo `instant` para diferentes casos de uso. Para obter mais informações sobre como usar os parâmetros da APICreateFleet do EC2, consulte [Criar frota](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html) na *Referência de API do Amazon EC2*.

**Topics**
+ [Exemplo 1: Iniciar instâncias spot com a estratégia de alocação otimizada para capacidade](#instant-fleet-example-1)
+ [Exemplo 2: iniciar uma única instância spot com a estratégia de alocação otimizada para capacidade](#instant-fleet-example-2)
+ [Exemplo 3: iniciar uma frota spot usando pesos de instâncias](#instant-fleet-example-3)
+ [Exemplo 4: executar instâncias spot dentro de uma única zona de disponibilidade](#instant-fleet-example-4)
+ [Exemplo 5: iniciar instâncias spot de um tipo de instância único dentro de uma única zona de disponibilidade](#instant-fleet-example-5)
+ [Exemplo 6: iniciar instâncias spot somente se a capacidade mínima pretendida puder ser iniciada](#instant-fleet-example-6)
+ [Exemplo 7: iniciar instâncias spot apenas se a capacidade mínima pretendida puder ser iniciada do mesmo tipo de instância em uma única zona de disponibilidade](#instant-fleet-example-7)
+ [Exemplo 8: iniciar instâncias com vários modelos de lançamento](#instant-fleet-example-8)
+ [Exemplo 9: iniciar instância spot com uma base de Instâncias sob demanda](#instant-fleet-example-9)
+ [Exemplo 10: iniciar Instâncias spot usando uma estratégia de alocação otimizada para capacidade com uma base de Instâncias sob demanda usando Reservas de Capacidade e a estratégia de alocação priorizada](#instant-fleet-example-10)
+ [Exemplo 11: iniciar Instâncias spot usando a estratégia de alocação capacity-optimized-prioritized](#instant-fleet-example-11)
+ [Exemplo 12: especifique um parâmetro do Systems Manager em vez de um ID de AMI](#instant-fleet-example-12)

### Exemplo 1: Iniciar instâncias spot com a estratégia de alocação otimizada para capacidade
<a name="instant-fleet-example-1"></a>

O exemplo a seguir especifica os parâmetros mínimos necessários em uma EC2 Fleet do tipo `instant`: um modelo de lançamento, a capacidade pretendida, a opção de compra padrão e as substituições do modelo de lançamento.
+ O modelo de lançamento é identificado por nome e número de versão do modelo de lançamento.
+ As 12 substituições do modelo de lançamento especificam 4 tipos de instância diferentes e 3 sub-redes diferentes, cada uma em uma zona de disponibilidade separada. Cada combinação de tipo de instância e sub-rede define um grupo de capacidade spot, resultando em 12 pools de capacidade spot.
+ A capacidade mínima pretendida para a frota é de 20 instâncias.
+ A opção de compra padrão é `spot`, o que resulta na tentativa da frota de iniciar 20 instâncias spot no grupo de capacidade spot com a capacidade ideal para o número de instâncias que estão sendo iniciadas.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 2: iniciar uma única instância spot com a estratégia de alocação otimizada para capacidade
<a name="instant-fleet-example-2"></a>

Você pode iniciar de forma ideal uma instância spot de cada vez fazendo várias chamadas de API da EC2 Fleet do tipo `instant`, definindo o TotalTargetCapacity como 1.

O exemplo a seguir especifica os parâmetros mínimos necessários em uma EC2 Fleet do tipo instantâneo: um modelo de lançamento, a capacidade pretendida, a opção de compra padrão e as substituições do modelo de lançamento. O modelo de lançamento é identificado por nome e número de versão do modelo de lançamento. As 12 substituições do modelo de lançamento têm 4 tipos de instância diferentes e 3 sub-redes diferentes, cada uma em uma zona de disponibilidade separada. A capacidade pretendida da frota é 1 instância, e a opção de compra padrão é spot, o que resulta na tentativa da frota de iniciar uma instância spot a partir de um dos 12 grupos de capacidade spot com base na estratégia de alocação otimizada para capacidade, para iniciar uma instância spot a partir do grupo de capacidade mais disponível.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 1,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 3: iniciar uma frota spot usando pesos de instâncias
<a name="instant-fleet-example-3"></a>

Os exemplos a seguir usam o peso da instância, o que significa que o preço é por hora em vez de ser por hora de instância. Cada configuração de execução lista um tipo de instância diferente e um peso diferente com base em quantas unidades da workload podem ser executadas na instância, pressupondo que uma unidade da workload requeira 15 GB de memória e 4 vCPUs. Por exemplo, m5.xlarge (4 vCPUs e 16 GB de memória) pode executar uma unidade e tem peso 1, m5.2xlarge (8 vCPUs e 32 GB de memória) pode executar 2 unidades e tem peso 2, e assim por diante. A capacidade total pretendida é definida como 40 unidades. A opção de compra padrão é spot, e a estratégia de alocação é otimizada para capacidade, o que resulta em 40 m5.xlarge (40 dividido por 1), 20 m5.2xlarge (40 dividido por 2), 10 m5.4xlarge (40 dividido por 4), 5 m5.8xlarge (40 dividido por 8) ou uma combinação de tipos de instância com pesos que somam a capacidade desejada com base na estratégia de alocação otimizada para capacidade.

Para obter mais informações, consulte [Usar ponderação de instâncias para gerenciar o custo e a performance da frota do EC2 ou da frota spot](ec2-fleet-instance-weighting.md).

```
{
   "SpotOptions":{
      "AllocationStrategy":"capacity-optimized"
   },
   "LaunchTemplateConfigs":[
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":8
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":8
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":8
            }
         ]
      }
   ],
   "TargetCapacitySpecification":{
      "TotalTargetCapacity":40,
      "DefaultTargetCapacityType":"spot"
   },
   "Type":"instant"
}
```

### Exemplo 4: executar instâncias spot dentro de uma única zona de disponibilidade
<a name="instant-fleet-example-4"></a>

Você pode configurar uma frota para iniciar todas as instâncias em uma única zona de disponibilidade definindo as opções de spot SingleAvailabilityZone como true.

As 12 substituições do modelo de lançamento têm tipos de instância e sub-redes diferentes (cada uma em uma zona de disponibilidade separada), mas a mesma capacidade ponderada. A capacidade total pretendida é de 20 instâncias, a opção de compra padrão é spot e a estratégia de alocação spot é otimizada para capacidade. A EC2 Fleet inicia 20 instâncias spot, todas em uma única AZ, a partir dos grupos de capacidade spot com capacidade ideal usando as especificações de lançamento.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleAvailabilityZone": true
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 5: iniciar instâncias spot de um tipo de instância único dentro de uma única zona de disponibilidade
<a name="instant-fleet-example-5"></a>

Você pode configurar uma frota para iniciar todas as instâncias do mesmo tipo de instância em uma única zona de disponibilidade definindo SpotOptions SingleInstanceType como true e SingleAvailabilityZone como true.

As 12 substituições do modelo de lançamento têm tipos de instância e sub-redes diferentes (cada uma em uma zona de disponibilidade separada), mas a mesma capacidade ponderada. A capacidade total pretendida é de 20 instâncias, a opção de compra padrão é spot e a estratégia de alocação spot é otimizada para capacidade. A EC2 Fleet inicia 20 instâncias spot do mesmo tipo de instância, todas em uma única AZ, a partir do grupo de capacidade spot com capacidade ideal usando as especificações de lançamento.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 6: iniciar instâncias spot somente se a capacidade mínima pretendida puder ser iniciada
<a name="instant-fleet-example-6"></a>

Você pode configurar uma frota para iniciar as instâncias somente se a capacidade mínima pretendida puder ser iniciada, definindo as opções de spot MinTargetCapacity como a capacidade pretendida que você deseja iniciar em conjunto.

Ao especificar a MinTargetCapacity, você deve especificar, pelo menos, um destes parâmetros: SingleInstanceType ou SingleAvailabilityZone. Nesse exemplo, SingleInstanceType é especificado para que todas as 20 instâncias devam usar o mesmo tipo de instância.

As 12 substituições do modelo de lançamento têm tipos de instância e sub-redes diferentes (cada uma em uma zona de disponibilidade separada), mas a mesma capacidade ponderada. A capacidade total pretendida e a capacidade mínima pretendida são ambas definidas como 20 instâncias, a opção de compra padrão é spot e a estratégia de alocação de spot é otimizada para capacidade. A Frota do EC2 inicia 20 instâncias spot a partir do grupo de capacidade spot com capacidade ideal usando as substituições do modelo de lançamento, apenas se puder iniciar todas as 20 instâncias ao mesmo tempo.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "MinTargetCapacity": 20
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 7: iniciar instâncias spot apenas se a capacidade mínima pretendida puder ser iniciada do mesmo tipo de instância em uma única zona de disponibilidade
<a name="instant-fleet-example-7"></a>

Você pode configurar uma frota para iniciar as instâncias apenas se a capacidade mínima pretendida puder ser iniciada com um único tipo de instância em uma única zona de disponibilidade, definindo as opções de spot MinTargetCapacity como a capacidade mínima pretendida que você deseja iniciar ao mesmo tempo, juntamente com as opções SingleInstanceType e SingleAvailabilityZone.

As 12 especificações que substituem o modelo de lançamento têm diferentes tipos de instância e sub-redes (cada uma em uma zona de disponibilidade separada), mas a mesma capacidade ponderada. A capacidade total pretendida e a capacidade mínima pretendida são ambas definidas como 20 instâncias, a opção de compra padrão é spot, a estratégia de alocação spot é otimizada para capacidade, SingleInstanceType é true e SingleAvailabilityZone é true. A EC2 Fleet inicia 20 instâncias spot, todas do mesmo tipo de instância e todas em uma única AZ, a partir do grupo de capacidade spot com capacidade ideal usando as especificações de lançamento, apenas se puder iniciar todas as 20 instâncias ao mesmo tempo.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true,
        "MinTargetCapacity": 20
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 8: iniciar instâncias com vários modelos de lançamento
<a name="instant-fleet-example-8"></a>

Você pode configurar uma frota para iniciar instâncias com diferentes especificações de lançamento para diferentes tipos de instância ou um grupo de tipos de instância, especificando vários modelos de lançamento. Neste exemplo, queremos ter diferentes tamanhos de volume do EBS para diferentes tipos de instância e temos isso configurado nos modelos de lançamento ec2-fleet-lt-4xl, ec2-fleet-lt-9xl e ec2-fleet-lt-18xl.

Neste exemplo, usaremos 3 modelos de lançamento diferentes para os 3 tipos de instância, com base em seu tamanho. As especificação de lançamento faz a substituição em todos os modelos de lançamento que usam pesos de instância com base nas vCPUs no tipo de instância. A capacidade total pretendida é de 144 instâncias, a opção de compra padrão é spot e a estratégia de alocação de spot é otimizada para capacidade. A EC2 Fleet pode iniciar 9 c5n.4xlarge (144 dividido por 16) usando o modelo de lançamento ec2-fleet-4xl, ou 4 c5n.9xlarge (144 dividido por 36), usando o modelo de lançamento ec2-fleet-9xl, ou 2 c5n.18xlarge (144 dividido por 72), usando o modelo de lançamento ec2-fleet-18xl, ou uma combinação dos tipos de instância com pesos que somam a capacidade desejada com base na estratégia de alocação otimizada para capacidade.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-18xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":72
            },
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":72
            },
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":72
            }
         ]
      },
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-9xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":36
            },
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":36
            },
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":36
            }
         ]
      },
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-4xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":16
            },
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":16
            },
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":16
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 144,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 9: iniciar instância spot com uma base de Instâncias sob demanda
<a name="instant-fleet-example-9"></a>

O exemplo a seguir especifica a capacidade total pretendida de 20 instâncias para a frota e uma capacidade pretendida de 5 Instâncias sob demanda. A opção de compra padrão é spot. A frota inicia 5 Instâncias sob demanda, conforme especificado, mas precisa iniciar mais 15 instâncias para atender à capacidade total pretendida. A opção de compra para a diferença é calculada como TotalTargetCapacity – OnDemandTargetCapacity = DefaultTargetCapacityType, que resulta no lançamento pela frota de 15 Instâncias spot a partir de um dos 12 grupos de capacidade de spot com base na estratégia de alocação otimizada para capacidade.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity": 5,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 10: iniciar Instâncias spot usando uma estratégia de alocação otimizada para capacidade com uma base de Instâncias sob demanda usando Reservas de Capacidade e a estratégia de alocação priorizada
<a name="instant-fleet-example-10"></a>

É possível configurar uma frota para usar Reservas de Capacidade sob demanda primeiro ao iniciar Instâncias sob demanda com o tipo de capacidade pretendida padrão como spot, definindo a estratégia de uso para Reservas de Capacidade como use-capacity-reservations-first. E se vários grupos de instâncias tiverem Reservas de Capacidade não utilizadas, a estratégia de alocação sob demanda escolhida será aplicada. Neste exemplo, a estratégia de alocação sob demanda é priorizada.

Neste exemplo, há 6 Reservas de Capacidade não utilizadas disponíveis. Isso é menos que a capacidade sob demanda pretendida da frota de 10 Instâncias sob demanda.

A conta tem as seguintes 6 Reservas de Capacidade não utilizadas em 2 grupos diferentes. O número de Reservas de Capacidade em cada grupo é indicado por AvailableInstanceCount.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "m5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
 
{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "c5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

A configuração de frota a seguir mostra somente as configurações pertinentes a este exemplo. A estratégia de alocação sob demanda é priorizada, e a estratégia de uso para Reservas de Capacidade é use-capacity-reservations-first. A estratégia de alocação spot é otimizada para capacidade. A capacidade total pretendida é de 20, a capacidade sob demanda pretendida é de 10 e o tipo de capacidade pretendida padrão é spot.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "OnDemandOptions":{
       "CapacityReservationOptions": {
         "UsageStrategy": "use-capacity-reservations-first"
       },
       "AllocationStrategy":"prioritized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 3.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 4.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 5.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 6.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 7.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 8.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 9.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 10.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 11.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 12.0
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity": 10,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

Depois de criar a frota instantânea usando a configuração anterior, as 20 instâncias a seguir serão iniciadas para atender à capacidade pretendida:
+ 7 Instâncias sob demanda c5.large em us-east-1a – c5.large em us-east-1a é priorizada, e há 3 Reservas de Capacidade c5.large não utilizadas disponíveis. As Reservas de Capacidade são usadas primeiro para iniciar 3 Instâncias sob demanda, e 4 Instâncias sob demanda adicionais são iniciadas de acordo com a estratégia de alocação sob demanda, que é priorizada neste exemplo.
+ 3 Instâncias sob demanda m5.large em us-east-1a: m5.large em us-east-1a é priorizada em segundo lugar, e há 3 reservas de capacidade m5.large não usadas disponíveis
+ 10 instâncias spot a partir de um dos 12 grupos de capacidade spot que tem a capacidade ideal, de acordo com a estratégia de alocação otimizada para capacidade.

Depois que a frota for lançada, você poderá executar [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html) para ver quantas Reservas de Capacidade não utilizadas restam. Neste exemplo, você deve ver a resposta a seguir, que mostra que todas as Reservas de Capacidade de c5.large e m5.large foram usadas.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "m5.large",  
    "AvailableInstanceCount": 0
}
 
{
    "CapacityReservationId": "cr-222",
    "InstanceType": "c5.large", 
    "AvailableInstanceCount": 0
}
```

### Exemplo 11: iniciar Instâncias spot usando a estratégia de alocação capacity-optimized-prioritized
<a name="instant-fleet-example-11"></a>

O exemplo a seguir especifica os parâmetros mínimos necessários em uma EC2 Fleet do tipo instantâneo: um modelo de lançamento, a capacidade pretendida, a opção de compra padrão e as substituições do modelo de lançamento. O modelo de lançamento é identificado por nome e número de versão do modelo de lançamento. As 12 especificações que substituem o modelo de lançamento têm 4 tipos de instância diferentes com uma prioridade atribuída e 3 sub-redes diferentes, cada uma em uma zona de disponibilidade separada. A capacidade pretendida para a frota é de 20 instâncias, e a opção de compra padrão é spot, o que resulta na tentativa da frota de iniciar 20 instâncias spot a partir de um dos 12 grupos de capacidade spot com base na estratégia de alocação capacity-optimized-prioritized, que tenta ao máximo implementar as prioridades, mas otimiza a capacidade em primeiro lugar.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized-prioritized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 2.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 4.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 4.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 4.0
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemplo 12: especifique um parâmetro do Systems Manager em vez de um ID de AMI
<a name="instant-fleet-example-12"></a>

O exemplo a seguir usa um modelo de inicialização que especifica a configuração das instâncias na frota. Neste exemplo, em `ImageId`, em vez de especificar um ID da AMI, a AMI é referenciada com um parâmetro do System Manager. Na inicialização da instância, o parâmetro do Systems Manager resolverá para um ID da AMI.

Neste exemplo, o parâmetro do Systems Manager é especificado em um formato válido: `resolve:ssm:golden-ami`. Há outros formatos válidos para o parâmetro do Systems Manager. Para obter mais informações, consulte [Use um parâmetro de Systems Manager em vez de um ID de AMI](create-launch-template.md#use-an-ssm-parameter-instead-of-an-ami-id).

**nota**  
O tipo da frota deve ser do tipo `instant`. Outros tipos de frota não são compatíveis com a especificação de um parâmetro do System Manager em vez de um ID da AMI.

```
{
    "LaunchTemplateData": {
        "ImageId": "resolve:ssm:golden-ami",
        "InstanceType": "m5.4xlarge",
        "TagSpecifications": [{
            "ResourceType": "instance",
            "Tags": [{
                "Key": "Name",
                "Value": "webserver"
            }]
        }]
    }
}
```

# Definir um limite de gastos para a frota do EC2 ou a frota spot
<a name="ec2-fleet-control-spending"></a>

É possível definir um limite de quanto quer gastar por hora na frota do EC2 ou na frota spot. Quando seu limite de gastos for atingido, a frota interromperá a inicialização de instâncias, mesmo que a capacidade de destino não tenha sido atingida.

Existem limites separados de gastos para instâncias sob demanda e instâncias spot.

**Configurar um limite de gastos para instâncias sob demanda e instâncias spot na frota do EC2**  
Use o comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) e os parâmetros a seguir:
+ Em instâncias sob demanda: na estrutura `OnDemandOptions`, especifique seu limite de gastos no campo `MaxTotalPrice`.
+ Em instâncias spot: na estrutura `SpotOptions`, especifique seu limite de gastos no campo `MaxTotalPrice`.

**Configurar um limite de gastos para instâncias sob demanda e instâncias spot na frota spot**  
É possível usar o console do Amazon EC2 ou a AWS CLI para configurar seu limite de gastos.

(Console) Quando criar a frota spot, marque a caixa de seleção **Definir custo máximo para instâncias spot** e, em seguida, insira um valor para **Definir seu custo máximo (por hora)**. Para obter mais informações, consulte a etapa 6.e. em [Criar uma solicitação de frota spot usando parâmetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).

(AWS CLI) Use o comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) e os seguintes parâmetros:
+ Em instâncias sob demanda: especifique seu limite de gastos no campo `OnDemandMaxTotalPrice`.
+ Em instâncias spot: especifique seu limite de gastos no campo `SpotMaxTotalPrice`.

## Exemplos
<a name="ec2-fleet-spending-limit-examples"></a>

Os exemplos a seguir mostram duas situações diferentes. No primeiro exemplo, a frota para de inicializar instâncias sob demanda quando atinge a capacidade de destino definida para instâncias sob demanda (`OnDemandTargetCapacity`). No segundo exemplo, a frota para de inicializar instâncias sob demanda ao atingir o valor máximo que você está disposto a pagar por hora pelas instâncias sob demanda (`MaxTotalPrice`).

**Exemplo: parar de inicializar instâncias sob demanda quando a capacidade de destino é atingida**

Dada uma solicitação de `m4.large` Instâncias on-demand, na qual:
+ Preço sob demanda: 0,10 USD por hora
+ `OnDemandTargetCapacity`: 10
+ `MaxTotalPrice`: 1,50 USD

A frota inicializa dez instâncias sob demanda, porque o total de USD 1,00 (10 instâncias x USD 0,10) não excede o `MaxTotalPrice` de USD 1,50 para instâncias sob demanda.

**Exemplo: parar de executar instâncias sob demanda quando o preço máximo total é atingido**

Dada uma solicitação de `m4.large` Instâncias on-demand, na qual:
+ Preço sob demanda: 0,10 USD por hora
+ `OnDemandTargetCapacity`: 10
+ `MaxTotalPrice`: 0,80 USD

Se a frota inicializar a capacidade de destino sob demanda (dez instâncias sob demanda), o custo total por hora será de USD 1,00. Isso é mais que a quantidade (0,80 USD) especificada para `MaxTotalPrice` para Instâncias on-demand. Para evitar gastar mais do que você pretende, a frota inicializará somente oito instâncias sob demanda (abaixo da capacidade de destino sob demanda), porque se inicializar mais, o `MaxTotalPrice` de instâncias sob demanda será excedido.

## Instâncias expansíveis
<a name="ec2-fleet-burstable-spot-instances"></a>

Se você executar as Instâncias spot usando um [tipo de instância expansível](burstable-performance-instances.md) e planeja usar as instâncias spot expansíveis imediatamente e por um breve período, sem tempo ocioso para acumular créditos de CPU, recomendamos executá-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).

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.

# Especificar atributos para seleção de tipo de instância para frota do EC2 ou frota spot
<a name="ec2-fleet-attribute-based-instance-type-selection"></a>

Ao criar uma frota do EC2 ou frota spot, você deve especificar um ou mais tipos de instância para configurar as instâncias sob-demanda e as instâncias spot na frota. Como alternativa à especificação manual dos tipos de instância, você pode especificar os atributos que uma instância deve ter, e o Amazon EC2 identificará todos os tipos de instância com esses atributos. Isso é conhecido como *seleção de tipo de instância baseada em atributos*. Por exemplo, você pode especificar o número mínimo e máximo de vCPUs necessárias para suas instâncias, e a frota inicializará as instâncias usando todos os tipos de instância disponíveis que atendam a esses requisitos de vCPU. 

A seleção de tipo de instância baseada em atributos é ideal para workloads e frameworks que possam ser flexíveis em relação a que tipos de instância elas usam, como ao executar contêineres ou frotas da Web, processar big data e implementar ferramentas de integração e implantação contínuas (CI/CD).

**Benefícios**

A seleção de tipo de instância baseada em atributos oferece os seguintes benefícios:
+ **Use facilmente os tipos de instâncias certos**: com tantos tipos de instância disponíveis, encontrar os tipos de instância corretos para a workload pode ser demorado. Se você especificar os atributos de instância, os tipos de instância terão automaticamente os atributos necessários para sua workload.
+ **Configuração simplificada**: para especificar manualmente vários tipos de instância para uma frota, crie uma substituição de modelo de inicialização separada para cada tipo de instância. Mas, com a seleção de tipo de instância baseada em atributos, para fornecer vários tipos de instância, você só precisa especificar os atributos das instâncias no modelo de lançamento ou em uma substituição de modelo de lançamento.
+ **Uso automático de novos tipos de instâncias**: quando atributos de instância são especificados em vez de tipos de instância, sua frota pode usar tipos de instância de gerações mais novas à medida que são lançados, tornando a configuração da frota "à prova de obsolescência". 
+ **Flexibilidade de tipo de instância**: quando você especifica atributos de instância em vez de tipos de instância, a frota pode selecionar em uma ampla variedade de tipos de instância para inicializar instâncias spot, o que atende às [Práticas recomendadas para instâncias spot da flexibilidade de tipo de instância](spot-best-practices.md#be-instance-type-flexible).

**Topics**
+ [Como funciona a seleção de tipo de instância baseada em atributos](#ec2fleet-abs-how-it-works)
+ [Proteção de preço](#ec2fleet-abs-price-protection)
+ [Proteção de performance](#ec2fleet-abis-performance-protection)
+ [Considerações](#ec2fleet-abs-considerations)
+ [Criar uma Frota do EC2 com seleção de tipo de instância baseada em atributos](#abs-create-ec2-fleet)
+ [Criar uma frota spot com seleção de tipo de instância baseada em atributos](#abs-create-spot-fleet)
+ [Exemplos de configurações de frota do EC2 que são válidas e não válidas](#ec2fleet-abs-example-configs)
+ [Exemplos de configurações de frota spot que são válidas e não válidas](#spotfleet-abs-example-configs)
+ [Previsualizar os tipos de instância com os atributos especificados](#ec2fleet-get-instance-types-from-instance-requirements)

## Como funciona a seleção de tipo de instância baseada em atributos
<a name="ec2fleet-abs-how-it-works"></a>

Para usar a seleção de tipo de instância baseada em atributos na configuração de frota, substitua a lista dos tipos de instância por uma lista dos atributos de instância que suas instâncias requerem. A frota do EC2 ou a frota spot inicializará instâncias em todos os tipos de instância disponíveis que tenham os atributos de instância especificados.

**Topics**
+ [Tipos de atributos de instância](#ef-abs-instance-attribute-types)
+ [Onde configurar a seleção de tipo de instância baseada em atributos](#ef-abs-where-to-configure)
+ [Como a frota do EC2 ou a frota spot usa a seleção de tipo de instância baseada em atributos ao provisionar uma frota](#how-ef-uses-abs)

### Tipos de atributos de instância
<a name="ef-abs-instance-attribute-types"></a>

Há vários atributos de instância que você pode especificar para expressar seus requisitos de computação, p. ex.:
+ **Contagem de vCPUs**: o número mínimo e máximo de vCPUs por instância.
+ **Memória**: o mínimo e o máximo de GiBs de memória por instância.
+ **Armazenamento local**: se o sistema deve usar o EBS ou volumes de armazenamento de instâncias para armazenamento local.
+ **Performance intermitente**: se o sistema deve usar a família de instâncias T, incluindo os tipos T4g, T3a, T3 e T2.

Para obter uma descrição de cada atributo e os valores padrão, consulte [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html) na *Referência de API do Amazon EC2*.

### Onde configurar a seleção de tipo de instância baseada em atributos
<a name="ef-abs-where-to-configure"></a>

Dependendo de você usar o console ou a AWS CLI, é possível especificar os atributos de instância para a seleção de tipo de instância baseada em atributos da seguinte forma:

No console, você pode especificar os atributos de instância nos seguintes componentes de configuração de frota:
+ Em um modelo de inicialização, referencie o modelo de inicialização na solicitação da frota
+ (Somente frota spot) Na solicitação de frota

Na AWS CLI, você pode especificar os atributos de instância em um ou ambos os componentes de configuração de frota a seguir:
+ Em um modelo de inicialização, referencie o modelo de inicialização na solicitação da frota
+ Em uma substituição de modelo de lançamento

  Se desejar uma combinação de instâncias que usam AMIs diferentes, você pode especificar atributos de instância em várias substituições de modelo de lançamento. Por exemplo, diferentes tipos de instância podem usar processadores baseados em x86 e Arm.
+ (Somente frota spot) Em uma especificação de inicialização

### Como a frota do EC2 ou a frota spot usa a seleção de tipo de instância baseada em atributos ao provisionar uma frota
<a name="how-ef-uses-abs"></a>

A frota do EC2 ou a frota spot provisiona uma frota da seguinte maneira:
+ Ela identifica os tipos de instância que têm os atributos especificados.
+ Ela usa proteção de preço para determinar quais tipos de instância excluir.
+ Ela determina os grupos de capacidade dos quais considerará inicializar as instâncias com base nas regiões ou zonas de disponibilidade da AWS que possuem os tipos de instância correspondentes.
+ Ela aplica a estratégia de alocação especificada para determinar os grupos de capacidade dos quais as instâncias serão inicializadas.

  Observe que a seleção de tipo de instância baseada em atributos não escolhe os grupos de capacidade dos quais provisionará a frota; isso cabe às [estratégias de alocação](ec2-fleet-allocation-strategy.md).

  Se você especificar uma estratégia de alocação, a frota inicializará as instâncias de acordo com a estratégia de alocação especificada.
  + Nas instâncias spot, a seleção do tipo de instância baseada em atributos oferece suporte às estratégias de alocação **otimizada para capacidade de preço**, **capacidade otimizada** e **menor preço**. Não recomendamos a estratégia de alocação de spot **menor preço** porque ela representa o risco mais alto de interrupção para as instâncias spot.
  + Para instâncias sob demanda, a seleção de tipo de instância baseada em atributos oferece suporte à estratégia de alocação **menor preço**.
+ Se não houver capacidade para os tipos de instância com os atributos de instância especificados, nenhuma instância poderá ser iniciada e a frota retornará um erro.

## Proteção de preço
<a name="ec2fleet-abs-price-protection"></a>

A proteção de preços é um recurso que impede que a frota do EC2 ou a frota spot use tipos de instância que você consideraria muito caros, mesmo que atendessem aos atributos especificados. Para usar a proteção de preço, você define um limite de preço. Em seguida, quando o Amazon EC2 selecionar tipos de instância com seus atributos, ele excluirá os tipos de instância que tenham preços acima do limite.

A forma como o Amazon EC2 calcula o limite de preço é a seguinte:
+ Primeiro, o Amazon EC2 identifica o tipo de instância com o menor preço dentre aqueles que correspondem aos seus atributos.
+ Em seguida, o Amazon EC2 pegará o valor (expresso como uma porcentagem) que você especificou para o parâmetro de proteção de preço e o multiplicará pelo preço do tipo de instância identificado. O resultado é o preço usado como o limite de preço.

Há limites distintos de preço para instâncias sob demanda e instâncias spot.

Quando você cria uma frota com seleção de tipo de instância baseada em atributos, a proteção de preço é habilitada por padrão. É possível manter os valores padrão ou especificar seus próprios valores.

Você também pode desativar a proteção de preços. Para indicar que não há limite de proteção de preço, especifique um valor percentual alto, como `999999`.

**Topics**
+ [Identificação do tipo de instância com o menor preço](#ec2fleet-abs-price-protection-lowest-priced)
+ [Proteção de preço de instância sob demanda](#ec2fleet-abs-on-demand-price-protection)
+ [Proteção de preço de instância spot](#ec2fleet-abs-spot-price-protection)
+ [Especificar o limite de proteção de preço](#ec2fleet-abs-specify-price-protection)

### Identificação do tipo de instância com o menor preço
<a name="ec2fleet-abs-price-protection-lowest-priced"></a>

O Amazon EC2 determina o preço básico do limite de preço ao identificar o tipo de instância com o menor preço dentre aquelas que correspondem aos atributos especificados. Ele faz isso da seguinte maneira:
+ Primeiro, ele analisa os tipos de instância C, M ou R da geração atual que correspondem aos seus atributos. Se houver alguma correspondência, ele identificará o tipo de instância com o menor preço.
+ Se não houver uma correspondência, ele analisará os tipos de instância da geração atual que correspondem aos seus atributos. Se houver alguma correspondência, ele identificará o tipo de instância com o menor preço.
+ Se não houver correspondência, ele examinará todos os tipos de instância da geração anterior que correspondam aos seus atributos e identificará o tipo de instância com o menor preço.

### Proteção de preço de instância sob demanda
<a name="ec2fleet-abs-on-demand-price-protection"></a>

O limite de proteção de preço para tipos de instância sob demanda é calculado *como uma porcentagem maior* do que o tipo de instância sob demanda de menor preço identificado (`OnDemandMaxPricePercentageOverLowestPrice`). Você especifica maior a porcentagem que está disposto a pagar. Se você não especificar esse parâmetro, um valor padrão de `20` será usado para calcular um limite de proteção de preço 20% superior ao preço identificado.

Por exemplo, se o preço da instância sob demanda identificada for `0.4271`, e você especificar `25`, o limite de preço será 25% maior que `0.4271`. Isso é calculado da seguinte forma: `0.4271 * 1.25 = 0.533875`. O preço calculado é o máximo que você está disposto a pagar por instâncias sob demanda e, neste exemplo, o Amazon EC2 excluirá qualquer tipo de instância sob demanda com preço superior a `0.533875`.

### Proteção de preço de instância spot
<a name="ec2fleet-abs-spot-price-protection"></a>

Por padrão, o Amazon EC2 aplicará automaticamente a proteção de preço de instância spot ideal para selecionar de forma consistente entre uma ampla variedade de tipos de instância. Você também pode definir manualmente a proteção de preço. No entanto, deixar que o Amazon EC2 faça isso por você pode aumentar a probabilidade de que sua capacidade de spot seja atendida.

É possível especificar manualmente a proteção de preço usando uma das opções a seguir. Se você definir manualmente a proteção de preço, recomendamos usar a primeira opção.
+ **Um *percentual do* tipo de instância *sob demanda* com o menor preço identificado** [`MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`]

  Por exemplo, se o preço do tipo de instância sob demanda identificada for `0.4271`, e você especificar `60`, o limite de preço será 60% de `0.4271`. Isso é calculado da seguinte forma: `0.4271 * 0.60 = 0.25626`. O preço calculado é o máximo que você está disposto a pagar por instâncias spot e, neste exemplo, o Amazon EC2 excluirá qualquer tipo de instância spot com preço superior a `0.25626`.
+ **Um *percentual maior do que* o tipo de instância *spot* com o menor preço identificado** [`SpotMaxPricePercentageOverLowestPrice`]

  Por exemplo, se o preço do tipo de instância spot identificada for `0.1808`, e você especificar `25`, o limite de preço será 25% maior que `0.1808`. Isso é calculado da seguinte forma: `0.1808 * 1.25 = 0.226`. O preço calculado é o máximo que você está disposto a pagar por instâncias spot e, neste exemplo, o Amazon EC2 excluirá qualquer tipo de instância spot com preço superior a `0.266`. Não é recomendável usar esse parâmetro, pois os preço spot podem flutuar e, portanto, seu limite de proteção de preço também poderá flutuar.

### Especificar o limite de proteção de preço
<a name="ec2fleet-abs-specify-price-protection"></a>

**Especificar o limite de proteção de preço usando a AWS CLI**

Quando estiver criando uma frota do EC2 ou uma frota spot usando a AWS CLI, configure a frota para seleção de tipo de instância baseada em atributos e, em seguida, faça o seguinte:
+ Para especificar o limite de proteção de preço da instância sob demanda, no arquivo de configuração JSON, em estrutura `InstanceRequirements`, para `OnDemandMaxPricePercentageOverLowestPrice`, insira o limite de proteção de preço como uma porcentagem.
+ Para especificar o limite de proteção de preço da instância spot, no arquivo de configuração JSON, na estrutura `InstanceRequirements`, especifique *um* destes parâmetros:
  + Para `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`, insira o limite de proteção de preço como uma porcentagem.
  + Para `SpotMaxPricePercentageOverLowestPrice`, insira o limite de proteção de preço como uma porcentagem.

Para ter mais informações, consulte [Criar uma Frota do EC2 com seleção de tipo de instância baseada em atributos](#abs-create-ec2-fleet) ou [Criar uma frota spot com seleção de tipo de instância baseada em atributos](#abs-create-spot-fleet).

**(Somente frota spot) Para especificar o limite de proteção de preço usando o console**

Quando estiver criando uma frota spot, configure a frota para seleção de tipo de instância baseada em atributos e, em seguida, faça o seguinte:
+ Para especificar o limite de proteção de preço da instância sob demanda, em **Atributo de instância adicional**, escolha **Proteção de preços sob demanda** e **Adicionar atributo** e insira o limite de proteção de preço como uma porcentagem.
+ Para especificar o limite de proteção de preço da instância sob demanda, em **Atributo de instância adicional**, escolha **Proteção de preço spot**, **Adicionar atributo**, escolha um valor básico no qual basear o preço e, em seguida, insira o limite de proteção de preço como uma porcentagem.

**nota**  
Ao criar a frota, se você definir `TargetCapacityUnitType` para `vcpu` ou `memory-mib`, o limite de proteção de preço será aplicado com base no preço por VCPU ou no preço por memória, em vez de no preço por instância.

## Proteção de performance
<a name="ec2fleet-abis-performance-protection"></a>

A *proteção de performance* é um recurso para garantir que a frota do EC2 ou frota spot use tipos de instância que sejam semelhantes ou excedam uma linha de base de performance especificada. Para usar a proteção de performance, especifique uma família de instâncias como referência de linha de base. Os recursos da família de instâncias especificada estabelecem o nível de performance mais baixo aceitável. Quando o Amazon EC2 seleciona tipos de instância para sua frota, ele considera os atributos e a linha de base de performance especificados. Os tipos de instância que estão abaixo da linha de base de performance são automaticamente excluídos da seleção, mesmo que correspondam aos outros atributos especificados. Isso garante que todos os tipos de instância selecionados ofereçam performance semelhante ou melhor do que a linha de base estabelecida pela família de instâncias especificada. O Amazon EC2 usa essa linha de base para orientar a seleção do tipo de instância, mas não há garantia de que os tipos de instância selecionados sempre excederão a linha de base de cada aplicação.

No momento, esse recurso oferece suporte apenas à performance da CPU como fator de performance da linha de base. A performance da CPU do processador de CPU da família de instâncias especificada serve como linha de base de performance, garantindo que os tipos de instância selecionados sejam semelhantes ou excedam essa linha de base. Famílias de instâncias com os mesmos processadores de CPU levam aos mesmos resultados de filtragem, mesmo que a performance da rede ou do disco seja diferente. Por exemplo, especificar `c6in` ou `c6i` como referência de linha de base produziria resultados de filtragem idênticos com base na performance porque as duas famílias de instâncias usam o mesmo processador de CPU.

**Famílias de instâncias não compatíveis**  
As famílias de instâncias a seguir **não oferecem suporte** à proteção de performance:
+ **Uso geral**: Mac1 \$1 Mac2 \$1 Mac2-m1ultra \$1 Mac2-m2 \$1 Mac2-m2pro \$1 M1 \$1 M2 \$1 T1
+ **Otimizada para computação:** C1
+ **Otimizadas para memória:** U-3tb1 \$1 U-6tb1 \$1 U-9tb1 \$1 U-12tb1 \$1 U-18tb1 \$1 U-24tb1 \$1 U7i-12tb \$1 U7in-16tb \$1 U7in-24tb \$1 U7in-32tb
+ **Computação acelerada:** G3 \$1 G3s \$1 P3dn \$1 P4d \$1 P5
+ **Computação de alta performance:** Hpc7g

Se você habilitar a proteção de performance especificando uma família de instâncias compatível, os tipos de instância retornados excluirão as famílias de instâncias incompatíveis acima.

Se você especificar uma família de instâncias não compatível como um valor para a performance da linha de base, a API retornará uma resposta vazia para [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html) e uma exceção para [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), [RequestSpotFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), [ModifyFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyFleet.html) e [ModifySpotFleetRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySpotFleetRequest.html).

**Exemplo: definir uma linha de base de performance da CPU**  
No exemplo a seguir, o requisito da instância é ser iniciada com tipos de instância que tenham núcleos de CPU com a mesma performance da família de instâncias `c6i`. Isso filtrará os tipos de instância com processadores de CPU de performance inferior, mesmo que atendam aos outros requisitos de instância especificados, como o número de vCPUs. Por exemplo, se os atributos de instância especificados incluírem 4 vCPUs e 16 GB de memória, um tipo de instância com esses atributos, mas com performance de CPU inferior ao `c6i`, será excluído da seleção.

```
"BaselinePerformanceFactors": {
        "Cpu": {
            "References": [
                {
                    "InstanceFamily": "c6i"
                }
            ]
        }
```

## Considerações
<a name="ec2fleet-abs-considerations"></a>
+ É possível especificar tipos de instância ou atributos de instância em uma frota do EC2 ou frota spot, mas não ambos ao mesmo tempo.

  Ao usar a CLI, as substituições do modelo de lançamento prevalecerão sobre o modelo de lançamento. Por exemplo, se o modelo de lançamento contiver um tipo de instância e a substituição do modelo de lançamento contiver atributos de instância, as instâncias identificadas pelos atributos da instância prevalecerão sobre o tipo de instância no modelo de lançamento.
+ Ao usar a CLI, quando você especifica atributos de instância como substituições, não pode especificar também pesos ou prioridades.
+ É possível especificar, no máximo, quatro estruturas de `InstanceRequirements` em uma configuração de solicitação.

## Criar uma Frota do EC2 com seleção de tipo de instância baseada em atributos
<a name="abs-create-ec2-fleet"></a>

É possível configurar uma frota do EC2 para usar a seleção de tipo de instância baseada em atributos. Não é possível criar uma frota do EC2 usando o console do Amazon EC2.

Os parâmetros para a seleção de tipo de instância baseada nos atributos são especificados na estrutura `InstanceRequirements`. Quando `InstanceRequirements` for incluído na configuração da frota, `InstanceType` e `WeightedCapacity` deverão ser excluídos; eles não podem determinar a configuração da frota ao mesmo tempo que os atributos da instância.

Nos exemplos da AWS CLI e do PowerShell, os seguintes atributos são especificados:
+ `VCpuCount`: no mínimo 2 vCPUs e no máximo 4 vCPUs. Se você não precisar de um limite máximo, poderá omitir o valor máximo.
+ `MemoryMiB`: mínimo de 8 GiB de memória e máximo de 16 GiB. Se você não precisar de um limite máximo, poderá omitir o valor máximo.

Essa configuração identifica quaisquer tipos de instância com 2 a 4 vCPUs e 8 a 16 GiB de memória. Porém, a estratégia proteção de preços e de alocação pode excluir alguns tipos de instância quando a [Frota do EC2 provisiona a frota](#how-ef-uses-abs).

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

**Para criar uma frota do EC2 com a seleção de tipo de instância baseada em atributos**  
Use o comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) para criar uma frota do EC2. Especifique a configuração da frota em um arquivo JSON.

```
aws ec2 create-fleet \
    --region us-east-1 \
    --cli-input-json file://file_name.json
```

O arquivo de exemplo `file_name.json` a seguir contém os parâmetros que configuram uma frota do EC2 para usar a seleção de tipo de instância baseada em atributos.

```
{
    "SpotOptions": {
        "AllocationStrategy": "price-capacity-optimized"
    },
    "LaunchTemplateConfigs": [{
        "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template",
            "Version": "1"
        },
        "Overrides": [{
            "InstanceRequirements": {
                "VCpuCount": {
                    "Min": 2,
                    "Max": 4
                },
                "MemoryMiB": {
                    "Min": 8192,
                    "Max": 16384
                }
            }
        }]
    }],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

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

**Para criar uma frota do EC2 com a seleção de tipo de instância baseada em atributos**  
Use o cmdlet [New-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Fleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRangeRequest
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiBRequest
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirementsRequest
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecificationRequest
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.FleetLaunchTemplateOverridesRequest
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.FleetLaunchTemplateConfigRequest
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

New-EC2Fleet `
    -SpotOptions_AllocationStrategy "price-capacity-optimized" `
    -LaunchTemplateConfig @($launchTemplateConfig) `
    -TargetCapacitySpecification_DefaultTargetCapacityType "spot" `
    -TargetCapacitySpecification_TotalTargetCapacity 20 `
    -Type "instant"
```

------

## Criar uma frota spot com seleção de tipo de instância baseada em atributos
<a name="abs-create-spot-fleet"></a>

É possível configurar uma frota para usar a seleção de tipo de instância baseada em atributos.

Os parâmetros para a seleção de tipo de instância baseada nos atributos são especificados na estrutura `InstanceRequirements`. Quando `InstanceRequirements` for incluído na configuração da frota, `InstanceType` e `WeightedCapacity` deverão ser excluídos; eles não podem determinar a configuração da frota ao mesmo tempo que os atributos da instância.

Nos exemplos da AWS CLI e do PowerShell, os seguintes atributos são especificados:
+ `VCpuCount`: no mínimo 2 vCPUs e no máximo 4 vCPUs. Se você não precisar de um limite máximo, poderá omitir o valor máximo.
+ `MemoryMiB`: mínimo de 8 GiB de memória e máximo de 16 GiB. Se você não precisar de um limite máximo, poderá omitir o valor máximo.

Essa configuração identifica quaisquer tipos de instância com 2 a 4 vCPUs e 8 a 16 GiB de memória. Porém, a estratégia proteção de preços e de alocação pode excluir alguns tipos de instância quando a [frota spot provisiona a frota](#how-ef-uses-abs).

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

**Para configurar uma frota spot para seleção de tipo de instância baseada em atributos**

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 de spot) e escolha **Request Spot Instances** (Solicitar instâncias spot).

1. Siga as etapas para criar um frota spot. Para obter mais informações, consulte [Criar uma solicitação de frota spot usando parâmetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).

   Ao criar a frota spot, configure a frota para seleção de tipo de instância baseada em atributos da seguinte forma:

   1. Em **Instance type requirements** (Requisitos de tipo de instância), 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. (Opcional) Em **Additional instance attributes** (Atributos de instância adicionais), você pode, opcionalmente, especificar um ou mais atributos para expressar seus requisitos de computação com mais detalhes. Cada atributo adicional inclui mais restrições à solicitação.

   1. (Opcional) Expanda **Preview matching instance types** (Previsualizar os tipos de instância correspondentes) para visualizar os tipos de instância que têm os atributos especificados.

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

**Para configurar uma frota spot para seleção de tipo de instância baseada em atributos**  
Use o comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) para criar uma solicitação de frota spot. Especifique a configuração da frota em um arquivo JSON.

```
aws ec2 request-spot-fleet \
    --region us-east-1 \
    --spot-fleet-request-config file://file_name.json
```

O arquivo de exemplo `file_name.json` a seguir contém os parâmetros que configuram uma frota spot para usar a seleção de tipo de instância baseada em atributos.

```
{
    "AllocationStrategy": "priceCapacityOptimized",
    "TargetCapacity": 20,
    "Type": "request",
    "LaunchTemplateConfigs": [{
        "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template",
            "Version": "1"
        },
        "Overrides": [{
            "InstanceRequirements": {
                "VCpuCount": {
                    "Min": 2,
                    "Max": 4
                },
                "MemoryMiB": {
                    "Min": 8192,
                    "Max": 16384
                }
            }
        }]
    }]
}
```

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

**Para configurar uma frota spot para seleção de tipo de instância baseada em atributos**  
Use o cmdlet [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRange
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiB
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirements
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecification
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.LaunchTemplateOverrides
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.LaunchTemplateConfig
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

Request-EC2SpotFleet `
    -SpotFleetRequestConfig_AllocationStrategy "PriceCapacityOptimized" `
    -SpotFleetRequestConfig_TargetCapacity 20 `
    -SpotFleetRequestConfig_Type "Request" `
    -SpotFleetRequestConfig_LaunchTemplateConfig $launchTemplateConfig
```

------

## Exemplos de configurações de frota do EC2 que são válidas e não válidas
<a name="ec2fleet-abs-example-configs"></a>

Se você usar a AWS CLI para criar uma Frota do EC2, deve garantir que a configuração de frota seja válida. Exemplos de configurações que são válidas e não válidas.

As configurações são consideradas não válidas quando contiverem o seguinte:
+ Uma única estrutura de `Overrides` com `InstanceRequirements` e `InstanceType`
+ Duas estruturas de `Overrides`, uma com `InstanceRequirements` e outra com `InstanceType`
+ Duas estruturas de `InstanceRequirements` com valores de atributo sobrepostos na mesma `LaunchTemplateSpecification`

**Topics**
+ [Configuração válida: modelo de lançamento único com substituições](#ef-abs-example-config1)
+ [Configuração válida: modelo de lançamento único com vários InstanceRequirements](#ef-abs-example-config2)
+ [Configuração válida: dois modelos de lançamento com substituições em cada](#ef-abs-example-config3)
+ [Configuração válida: somente `InstanceRequirements` especificados, sem valores de atributo sobrepostos](#ef-abs-example-config4)
+ [Configuração não válida: `Overrides` contém`InstanceRequirements` e `InstanceType`](#ef-abs-example-config5)
+ [Configuração não válida: duas `Overrides` contêm `InstanceRequirements` e `InstanceType`](#ef-abs-example-config6)
+ [Configuração não válida: valores de atributo sobrepostos](#ef-abs-example-config7)

### Configuração válida: modelo de lançamento único com substituições
<a name="ef-abs-example-config1"></a>

A configuração a seguir é válida. Ela contém um modelo de lançamento e uma estrutura de `Overrides` contendo uma estrutura de `InstanceRequirements`. A seguir está um texto explicativo do exemplo de configuração.

```
{
        "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "My-launch-template",
                "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 2,
                            "Max": 8
                        },
                        "MemoryMib": {
                            "Min": 0,
                            "Max": 10240
                        },
                        "MemoryGiBPerVCpu": {
                            "Max": 10000
                        },
                        "RequireHibernateSupport": true
                    }
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 5000,
        "DefaultTargetCapacityType": "spot",
        "TargetCapacityUnitType": "vcpu"
        }
    }
}
```

****`InstanceRequirements`****  
Para usar a seleção de instância baseada em atributos, você deve incluir a estrutura de `InstanceRequirements` na configuração de frota e especificar os atributos desejados para as instâncias da frota.

No exemplo anterior, os seguintes atributos de instância foram especificados:
+ `VCpuCount`: os tipos de instância devem ter no mínimo 2 e no máximo 8 vCPUs.
+ `MemoryMiB`: os tipos de instância devem ter no máximo 10.240 MiB de memória. Um mínimo de 0 indica que não há limite mínimo.
+ `MemoryGiBPerVCpu`: os tipos de instância devem ter no máximo 10.000 GiB de memória. O parâmetro `Min` é opcional. Ao omiti-lo, você indica que não há limite mínimo.

**`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. A Frota do EC2 iniciará instâncias suficientes para que o número total de vCPUs na frota seja 5.000 vCPUs.

### Configuração válida: modelo de lançamento único com vários InstanceRequirements
<a name="ef-abs-example-config2"></a>

A configuração a seguir é válida. Ela contém um modelo de lançamento e uma estrutura de `Overrides` contendo duas estruturas de `InstanceRequirements`. Os atributos especificados em `InstanceRequirements` são válidos porque os valores não se sobrepõem: a primeira estrutura de `InstanceRequirements` especifica um `VCpuCount` de 0 a 2 vCPUs, enquanto a segunda estrutura de `InstanceRequirements` especifica de 4 a 8 vCPUs.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuração válida: dois modelos de lançamento com substituições em cada
<a name="ef-abs-example-config3"></a>

A configuração a seguir é válida. Ela contém dois modelos de lançamento, cada um deles com uma estrutura de `Overrides` contendo uma estrutura de `InstanceRequirements`. Essa configuração é útil para oferecer suporte às arquiteturas `arm` e `x86` na mesma frota.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "armLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "x86LaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuração válida: somente `InstanceRequirements` especificados, sem valores de atributo sobrepostos
<a name="ef-abs-example-config4"></a>

A configuração a seguir é válida. Ela contém duas estruturas de `LaunchTemplateSpecification`, cada uma com um modelo de lançamento e uma estrutura `Overrides` contendo uma estrutura de `InstanceRequirements`. Os atributos especificados em `InstanceRequirements` são válidos porque os valores não se sobrepõem: a primeira estrutura de `InstanceRequirements` especifica um `VCpuCount` de 0 a 2 vCPUs, enquanto a segunda estrutura de `InstanceRequirements` especifica de 4 a 8 vCPUs.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuração não válida: `Overrides` contém`InstanceRequirements` e `InstanceType`
<a name="ef-abs-example-config5"></a>

A configuração a seguir não é válida. A estrutura de `Overrides` contém `InstanceRequirements` e `InstanceType`. Em `Overrides`, você pode especificar `InstanceRequirements` ou `InstanceType`, mas não ambos.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuração não válida: duas `Overrides` contêm `InstanceRequirements` e `InstanceType`
<a name="ef-abs-example-config6"></a>

A configuração a seguir não é válida. As estruturas `Overrides` contêm `InstanceRequirements` e `InstanceType`. É possível especificar `InstanceRequirements` ou `InstanceType`, mas não ambos, mesmo que estejam em estruturas de `Overrides` diferentes.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuração não válida: valores de atributo sobrepostos
<a name="ef-abs-example-config7"></a>

A configuração a seguir não é válida. As duas estruturas de `InstanceRequirements` contêm `"VCpuCount": {"Min": 0, "Max": 2}`. Os valores desses atributos se sobrepõem, o que resultará em grupos de capacidade duplicados.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    },
                    {
                      "InstanceRequirements": {
                          "VCpuCount": {
                              "Min": 0,
                              "Max": 2
                          },
                          "MemoryMiB": {
                              "Min": 0
                          }
                      }
                  }
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

## Exemplos de configurações de frota spot que são válidas e não válidas
<a name="spotfleet-abs-example-configs"></a>

Se você usar a AWS CLI para criar uma frota spot, deverá se certificar de que a configuração da frota seja válida. Exemplos de configurações que são válidas e não válidas.

As configurações são consideradas não válidas quando contiverem o seguinte:
+ Uma única estrutura de `Overrides` com `InstanceRequirements` e `InstanceType`
+ Duas estruturas de `Overrides`, uma com `InstanceRequirements` e outra com `InstanceType`
+ Duas estruturas de `InstanceRequirements` com valores de atributo sobrepostos na mesma `LaunchTemplateSpecification`

**Topics**
+ [Configuração válida: modelo de lançamento único com substituições](#sf-abs-example-config1)
+ [Configuração válida: modelo de lançamento único com vários InstanceRequirements](#sf-abs-example-config2)
+ [Configuração válida: dois modelos de lançamento com substituições em cada](#sf-abs-example-config3)
+ [Configuração válida: somente `InstanceRequirements` especificados, sem valores de atributo sobrepostos](#sf-abs-example-config4)
+ [Configuração não válida: `Overrides` contém`InstanceRequirements` e `InstanceType`](#sf-abs-example-config5)
+ [Configuração não válida: duas `Overrides` contêm `InstanceRequirements` e `InstanceType`](#sf-abs-example-config6)
+ [Configuração não válida: valores de atributo sobrepostos](#sf-abs-example-config7)

### Configuração válida: modelo de lançamento único com substituições
<a name="sf-abs-example-config1"></a>

A configuração a seguir é válida. Ela contém um modelo de lançamento e uma estrutura de `Overrides` contendo uma estrutura de `InstanceRequirements`. A seguir está um texto explicativo do exemplo de configuração.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "My-launch-template",
                "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 2,
                            "Max": 8
                        },
                        "MemoryMib": {
                            "Min": 0,
                            "Max": 10240
                        },
                        "MemoryGiBPerVCpu": {
                            "Max": 10000
                        },
                        "RequireHibernateSupport": true
                    }
                }
            ]
        }
    ],
        "TargetCapacity": 5000,
            "OnDemandTargetCapacity": 0,
            "TargetCapacityUnitType": "vcpu"
    }
}
```

****`InstanceRequirements`****  
Para usar a seleção de instância baseada em atributos, você deve incluir a estrutura de `InstanceRequirements` na configuração de frota e especificar os atributos desejados para as instâncias da frota.

No exemplo anterior, os seguintes atributos de instância foram especificados:
+ `VCpuCount`: os tipos de instância devem ter no mínimo 2 e no máximo 8 vCPUs.
+ `MemoryMiB`: os tipos de instância devem ter no máximo 10.240 MiB de memória. Um mínimo de 0 indica que não há limite mínimo.
+ `MemoryGiBPerVCpu`: os tipos de instância devem ter no máximo 10.000 GiB de memória. O parâmetro `Min` é opcional. Ao omiti-lo, você indica que não há limite mínimo.

**`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. A frota spot executará instâncias suficientes para que o número total de vCPUs na frota seja de 5.000 vCPUs.

### Configuração válida: modelo de lançamento único com vários InstanceRequirements
<a name="sf-abs-example-config2"></a>

A configuração a seguir é válida. Ela contém um modelo de lançamento e uma estrutura de `Overrides` contendo duas estruturas de `InstanceRequirements`. Os atributos especificados em `InstanceRequirements` são válidos porque os valores não se sobrepõem: a primeira estrutura de `InstanceRequirements` especifica um `VCpuCount` de 0 a 2 vCPUs, enquanto a segunda estrutura de `InstanceRequirements` especifica de 4 a 8 vCPUs.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuração válida: dois modelos de lançamento com substituições em cada
<a name="sf-abs-example-config3"></a>

A configuração a seguir é válida. Ela contém dois modelos de lançamento, cada um deles com uma estrutura de `Overrides` contendo uma estrutura de `InstanceRequirements`. Essa configuração é útil para oferecer suporte às arquiteturas `arm` e `x86` na mesma frota.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "armLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "x86LaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuração válida: somente `InstanceRequirements` especificados, sem valores de atributo sobrepostos
<a name="sf-abs-example-config4"></a>

A configuração a seguir é válida. Ela contém duas estruturas de `LaunchTemplateSpecification`, cada uma com um modelo de lançamento e uma estrutura `Overrides` contendo uma estrutura de `InstanceRequirements`. Os atributos especificados em `InstanceRequirements` são válidos porque os valores não se sobrepõem: a primeira estrutura de `InstanceRequirements` especifica um `VCpuCount` de 0 a 2 vCPUs, enquanto a segunda estrutura de `InstanceRequirements` especifica de 4 a 8 vCPUs.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuração não válida: `Overrides` contém`InstanceRequirements` e `InstanceType`
<a name="sf-abs-example-config5"></a>

A configuração a seguir não é válida. A estrutura de `Overrides` contém `InstanceRequirements` e `InstanceType`. Em `Overrides`, você pode especificar `InstanceRequirements` ou `InstanceType`, mas não ambos.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuração não válida: duas `Overrides` contêm `InstanceRequirements` e `InstanceType`
<a name="sf-abs-example-config6"></a>

A configuração a seguir não é válida. As estruturas `Overrides` contêm `InstanceRequirements` e `InstanceType`. É possível especificar `InstanceRequirements` ou `InstanceType`, mas não ambos, mesmo que estejam em estruturas de `Overrides` diferentes.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuração não válida: valores de atributo sobrepostos
<a name="sf-abs-example-config7"></a>

A configuração a seguir não é válida. As duas estruturas de `InstanceRequirements` contêm `"VCpuCount": {"Min": 0, "Max": 2}`. Os valores desses atributos se sobrepõem, o que resultará em grupos de capacidade duplicados.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    },
                    {
                      "InstanceRequirements": {
                          "VCpuCount": {
                              "Min": 0,
                              "Max": 2
                          },
                          "MemoryMiB": {
                              "Min": 0
                          }
                      }
                  }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

## Previsualizar os tipos de instância com os atributos especificados
<a name="ec2fleet-get-instance-types-from-instance-requirements"></a>

É possível usar o comando [get-instance-types-de-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) para previsualizar os tipos de instância que correspondem aos atributos especificados por você. Isso é especialmente útil para determinar quais atributos especificar na configuração da solicitação sem iniciar nenhuma instância. Observe que o comando não considera a capacidade disponível.

**Para previsualizar uma lista de tipos de instância especificando atributos usando a AWS CLI**

1. (Opcional) Para gerar todos os atributos possíveis que podem ser especificados, use o comando [get-instance-types-de-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) e o parâmetro `--generate-cli-skeleton`. Opcionalmente, você pode direcionar a saída para um arquivo e salvá-lo usando `input > attributes.json`.

   ```
   aws ec2 get-instance-types-from-instance-requirements \
       --region us-east-1 \
       --generate-cli-skeleton input > attributes.json
   ```

   Saída esperada

   ```
   {
       "DryRun": true,
       "ArchitectureTypes": [
           "i386"
       ],
       "VirtualizationTypes": [
           "hvm"
       ],
       "InstanceRequirements": {
           "VCpuCount": {
               "Min": 0,
               "Max": 0
           },
           "MemoryMiB": {
               "Min": 0,
               "Max": 0
           },
           "CpuManufacturers": [
               "intel"
           ],
           "MemoryGiBPerVCpu": {
               "Min": 0.0,
               "Max": 0.0
           },
           "ExcludedInstanceTypes": [
               ""
           ],
           "InstanceGenerations": [
               "current"
           ],
           "SpotMaxPricePercentageOverLowestPrice": 0,
           "OnDemandMaxPricePercentageOverLowestPrice": 0,
           "BareMetal": "included",
           "BurstablePerformance": "included",
           "RequireHibernateSupport": true,
           "NetworkInterfaceCount": {
               "Min": 0,
               "Max": 0
           },
           "LocalStorage": "included",
           "LocalStorageTypes": [
               "hdd"
           ],
           "TotalLocalStorageGB": {
               "Min": 0.0,
               "Max": 0.0
           },
           "BaselineEbsBandwidthMbps": {
               "Min": 0,
               "Max": 0
           },
           "AcceleratorTypes": [
               "gpu"
           ],
           "AcceleratorCount": {
               "Min": 0,
               "Max": 0
           },
           "AcceleratorManufacturers": [
               "nvidia"
           ],
           "AcceleratorNames": [
               "a100"
           ],
           "AcceleratorTotalMemoryMiB": {
               "Min": 0,
               "Max": 0
           },
           "NetworkBandwidthGbps": {
               "Min": 0.0,
               "Max": 0.0
           },
           "AllowedInstanceTypes": [
               ""
           ]
       },
       "MaxResults": 0,
       "NextToken": ""
   }
   ```

1. Crie um arquivo de configuração JSON usando a saída da etapa anterior e configure-o da seguinte forma:
**nota**  
Você deve fornecer valores para `ArchitectureTypes`, `VirtualizationTypes`, `VCpuCount` e `MemoryMiB`. É 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-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html).

   1. Em `ArchitectureTypes`, especifique um ou mais tipos de arquitetura de processador.

   1. Em `VirtualizationTypes`, especifique um ou mais tipos de virtualização.

   1. Em `VCpuCount`, especifique o número mínimo e máximo de vCPUs. Para não especificar nenhum limite mínimo, em `Min`, especifique `0`. Para não especificar nenhum limite máximo, omita o parâmetro `Max`.

   1. Em `MemoryMiB`, especifique a quantidade mínima e máxima de memória em MiB. Para não especificar nenhum limite mínimo, em `Min`, especifique `0`. Para não especificar nenhum limite máximo, omita o parâmetro `Max`.

   1. Opcionalmente, você pode especificar um ou mais dos outros atributos para restringir ainda mais a lista de tipos de instância retornados.

1. Para previsualizar os tipos de instância que têm os atributos que você especificou no arquivo JSON, use o comando [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) e especifique o nome e o caminho para seu arquivo JSON usando o parâmetro `--cli-input-json`. Opcionalmente, você pode formatar a saída para ser exibida em formato de tabela.

   ```
   aws ec2 get-instance-types-from-instance-requirements \
       --cli-input-json file://attributes.json \
       --output table
   ```

   Exemplo de arquivo *attributes.json*

   Neste exemplo, os atributos necessários estão incluídos no arquivo JSON. Eles são `ArchitectureTypes`, `VirtualizationTypes`, `VCpuCount` e `MemoryMiB`. Além disso, o atributo opcional `InstanceGenerations` também está incluído. Observe que para `MemoryMiB`, o valor `Max` pode ser omitido para indicar que não há limite.

   ```
   {
       
       "ArchitectureTypes": [
           "x86_64"
       ],
       "VirtualizationTypes": [
           "hvm"
       ],
       "InstanceRequirements": {
           "VCpuCount": {
               "Min": 4,
               "Max": 6
           },
           "MemoryMiB": {
               "Min": 2048
           },
           "InstanceGenerations": [
               "current"
           ]
       }
   }
   ```

   Exemplo de saída

   ```
   ------------------------------------------
   |GetInstanceTypesFromInstanceRequirements|
   +----------------------------------------+
   ||             InstanceTypes            ||
   |+--------------------------------------+|
   ||             InstanceType             ||
   |+--------------------------------------+|
   ||  c4.xlarge                           ||
   ||  c5.xlarge                           ||
   ||  c5a.xlarge                          ||
   ||  c5ad.xlarge                         ||
   ||  c5d.xlarge                          ||
   ||  c5n.xlarge                          ||
   ||  d2.xlarge                           ||
   ...
   ```

1. Após identificar os tipos de instância que atendem às suas necessidades, anote os atributos de instância usados para que poder usá-los ao configurar a solicitação de frota.

# Usar ponderação de instâncias para gerenciar o custo e a performance da frota do EC2 ou da frota spot
<a name="ec2-fleet-instance-weighting"></a>

Com a ponderação de instâncias, você atribui um peso a cada tipo de instância na frota do EC2 ou na frota spot para representar sua capacidade computacional e a performance na comparação de uma com a outra. Com base nos pesos, a frota pode usar qualquer combinação dos tipos de instância especificados, desde que possa atender à capacidade de destino desejada. Isso pode ajudar você a gerenciar o custo e a performance da frota.

O peso representa as unidades de capacidade que um tipo de instância contribui para a capacidade total de destino.

**Exemplo: usar ponderação de instâncias para o gerenciamento de performance**

Suponha que a frota tenha dois tipos de instância e você atribua um peso diferente a cada tipo de instância para refletir a quantidade necessária de cada uma para atingir a mesma performance da seguinte forma:
+  `m5.large` - peso: 1
+ `m5.2xlarge` - peso: 4

Ao atribuir esses pesos, você está afirmando que precisa de quatro instâncias `m5.large` para obter a mesma performance de uma `m5.2xlarge`.

Para calcular quantas instâncias de cada tipo de instância são necessárias para uma determinada capacidade de destino, use a seguinte fórmula:

`target capacity / weight = number of instances`

Se sua capacidade de destino for de oito unidades, a frota poderá atingir a capacidade de destino com `m5.large` ou `m5.2xlarge`, ou com uma combinação de ambas, da seguinte forma:
+ 8 instâncias `m5.large` (capacidade de 8/peso de 1 = 8 instâncias)
+ 2 instâncias `m5.2xlarge` (capacidade de 8/peso de 4 = 2 instâncias)
+ 4 `m5.large` e 1 `m5.2xlarge`

**Exemplo: usar ponderação de instâncias para gerenciamento de custo**

Por padrão, o preço que você especifica é *por hora de instância*. Ao usar o recurso de peso da instância, o preço que você especifica é *por hora*. É possível calcular o preço por hora dividindo seu preço para um tipo de instância pelo número de unidades que ele representa. A frota calcula o número de instâncias a serem inicializadas dividindo a capacidade de destino pelo peso da instância. Se o resultado não for um valor inteiro, a frota o arredondará para o próximo valor inteiro, para que o tamanho de sua frota não fique abaixo de sua capacidade de destino. A frota pode selecionar qualquer grupo que você determinar na especificação de execução, mesmo que a capacidade das instâncias executadas ultrapasse a capacidade de destino solicitada.

A tabela a seguir inclui exemplos de cálculos para determinar o preço por unidade de uma frota com capacidade de destino igual a 10.


| Tipo de instância | Peso da instância | Capacidade de destino | Número de instâncias executadas | Preço por hora de instância | Preço por hora | 
| --- | --- | --- | --- | --- | --- | 
| r3.xlarge |  2  | 10 |  5 (10 dividido por 2)  |  0,05 USD  |  0,025 USD (0,05 dividido por 2)  | 
| r3.8xlarge |  8  | 10 |  2 (10 dividido por 8, resultado arredondado para cima)  |  0,10 USD  |  0,0125 USD (0,10 dividido por 8)  | 

Use a ponderação da instância da frota como abaixo para provisionar a capacidade desejada de destino nos grupos com o menor preço por unidade no momento do atendimento:

1. Defina a capacidade de destino da frota nas instâncias (o padrão) ou nas unidades de sua preferência, como vCPUs, memória, armazenamento ou throughput.

1. Defina o preço por unidade.

1. Para cada especificação de execução, defina o peso, que é o número de unidades que o tipo de instância representa em relação à capacidade de destino.

**Exemplo de peso da instância**  
Considere uma solicitação de frota com a seguinte configuração:
+ Uma capacidade de destino de 24
+ Uma especificação de execução com um tipo de instância `r3.2xlarge` e um peso de 6
+ Uma especificação de execução com um tipo de instância `c3.xlarge` e um peso de 5

Os pesos representam o número de unidades que o tipo de instância representa em relação à capacidade de destino. Se a primeira especificação de inicialização fornecer o menor preço por unidade (preço por `r3.2xlarge` por hora de instância dividido por 6), a frota inicializará quatro dessas instâncias (24 dividido por 6).

Se a segunda especificação de inicialização fornecer o menor preço por unidade (preço por `c3.xlarge` por hora de instância dividido por 5), a frota inicializará cinco dessas instâncias (24 dividido por 5, resultado arredondado para cima).

**Peso da instância e estratégia de alocação**  
Considere uma solicitação de frota com a seguinte configuração:
+ Uma capacidade de destino de 30 Instâncias spot
+ Uma especificação de execução com um tipo de instância `c3.2xlarge` e um peso de 8
+ Uma especificação de execução com um tipo de instância `m3.xlarge` e um peso de 8
+ Uma especificação de execução com um tipo de instância `r3.xlarge` e um peso de 8

A frota executaria quatro instâncias (30 dividido por 8, resultado arredondado para cima). Com a estratégia `diversified`, a frota executa uma instância em cada um dos três grupos, e a quarta instância em qualquer um dos três grupos fornece o menor preço spot por unidade.

# Usar estratégias de alocação para determinar como a frota do EC2 ou a frota spot atende à capacidade spot e sob demanda
<a name="ec2-fleet-allocation-strategy"></a>

Quando você usa vários grupos de capacidade (cada um abrangendo um tipo de instância e uma zona de disponibilidade) em uma frota do EC2 ou uma frota spot, você pode usar uma *estratégia de alocação* para gerenciar como o Amazon EC2 atende às capacidades spot e sob demanda desses grupos. As estratégias de alocação podem otimizar a capacidade disponível, o preço e os tipos de instância a serem usados. Existem diferentes estratégias de alocação para instâncias spot e instâncias sob demanda.

**Topics**
+ [Estratégias de alocação para Instâncias spot](#ec2-fleet-allocation-strategies-for-spot-instances)
+ [Estratégias de alocação para instâncias sob demanda](#ec2-fleet-allocation-strategies-for-on-demand-instances)
+ [Escolher a estratégia de alocação spot apropriada](#ec2-fleet-allocation-use-cases)
+ [Manter a capacidade de destino para instâncias spot](#ec2-fleet-maintain-fleet-capacity)
+ [Priorizar tipos de instâncias para capacidade sob demanda](#ec2-fleet-on-demand-priority)

## Estratégias de alocação para Instâncias spot
<a name="ec2-fleet-allocation-strategies-for-spot-instances"></a>

Sua configuração de inicialização determina todos os possíveis grupos de capacidade spot (tipos de instância e zonas de disponibilidade) nos quais a frota do EC2 ou a frota spot pode inicializar instâncias spot. No entanto, ao inicializar instâncias, a frota usa a estratégia de alocação que você especifica para escolher os grupos específicos de todos os seus grupos possíveis.

**nota**  
(Somente para instâncias do Linux) Se você configurar a instância spot para iniciar com o [AMD SEV-SNP](sev-snp.md) ativado, será cobrada uma taxa de utilização por hora adicional equivalente a 10% da [taxa horária sob demanda](https://aws.amazon.com/ec2/pricing/on-demand/) para o tipo de instância selecionado. Se a estratégia de alocação usar o preço como entrada, a frota não incluirá essa taxa adicional; somente o preço spot será usado.

É possível especificar uma destas estratégias de alocação para instâncias spot:

**Capacidade de preço otimizada** (recomendado)  
A frota identifica os grupos com a maior disponibilidade de capacidade para o número de instâncias que estão sendo inicializadas. Isso significa que solicitaremos instâncias spot dos grupos que acreditamos terem a menor probabilidade de interrupção a curto prazo. Em seguida, a frota solicita instâncias spot do grupo com o menor preço desses grupos.  
A estratégia de alocação **capacidade de preço otimizada** é a melhor opção para a maioria das workloads spot, como aplicações em contêiner sem estado, microsserviços, aplicações Web, trabalhos de dados e analytics e processamento em lote.  
Se você estiver usando a AWS CLI, o nome do parâmetro será `price-capacity-optimized` para frotas do EC2 e `priceCapacityOptimized` para frotas spot.

**Otimizada para capacidade**  
A frota identifica os grupos com a maior disponibilidade de capacidade para o número de instâncias que estão sendo inicializadas. Isso significa que solicitaremos instâncias spot dos grupos que acreditamos terem a menor probabilidade de interrupção a curto prazo.  
Com as Instâncias spot, a definição de preço muda lentamente ao longo do tempo com base em tendências de longo prazo na oferta e na demanda, mas a capacidade oscila em tempo real. A estratégia **capacidade otimizada** inicializa instâncias spot automaticamente nos grupos mais disponíveis observando dados de capacidade em tempo real e prevendo quais são os mais disponíveis. Isso funciona bem para workloads que podem ter um custo de interrupção maior associado ao reinício do trabalho, como workloads de integração contínua (CI) longa, de renderização de imagens e mídia, de aprendizado profundo e de computação de alta performance (HPC). Ao oferecer a possibilidade de menos interrupções, a estratégia **capacidade otimizada** pode reduzir o custo geral da workload.  
Como alternativa, você pode usar a estratégia de alocação **capacidade otimizada priorizada** com um parâmetro de prioridade para ordenar os tipos de instância, da prioridade mais alta para a mais baixa. É possível definir a mesma prioridade para diferentes tipos de instância. A frota otimizará primeiro a capacidade, mas se esforçará em honrar as prioridades de tipo de instância (por exemplo, honrar as prioridades não afetará significativamente a capacidade da frota de provisionar a capacidade ideal). Essa é uma boa opção para workloads em que a possibilidade de interrupção deve ser minimizada e a preferência por determinados tipos de instância for importante. Quando você definir a prioridade para tipos de instância para capacidade spot, a mesma prioridade também será aplicada às instâncias sob demanda se a estratégia de alocação sob demanda estiver definida como **priorizada**. Para frotas spot, o uso de prioridades só será compatível se a frota usar um modelo de inicialização.   
Se você estiver usando a AWS CLI, os nomes dos parâmetros serão `capacity-optimized` e `capacity-optimized-prioritized` para frotas do EC2 e `capacityOptimized` e `capacityOptimizedPrioritized` para frotas spot.

**Diversificada**  
Os Instâncias spot são distribuídos em todos os grupos de capacidade spot. Se você estiver usando a AWS CLI, o nome do parâmetro será `diversified` para frotas do EC2 e frotas spot.

**Preço mais baixo** (não recomendado)  
Não recomendamos a estratégia de alocação **preço mais baixo** porque ela representa o risco mais alto de interrupção para as instâncias spot.
As instâncias spot vêm do grupo com o menor preço que tem capacidade disponível. Ao ser usada a AWS CLI, essa é a estratégia padrão. Porém, recomendamos que você substitua o padrão ao especificar a estratégia de alocação **otimizada para capacidade de preço**.  
Com a estratégia de preço mais baixo, se o grupo com preço mais baixo não tiver capacidade disponível, as instâncias spot virão do próximo grupo com preço mais baixo que tiver capacidade disponível. Se um grupo esgotar a capacidade spot antes de atender à capacidade desejada, a frota continuará a atender à solicitação recorrendo ao próximo grupo de preço mais baixo. Para garantir que a capacidade desejada seja atendida, é possível receber instâncias spot de vários grupos.  
Como essa estratégia considera apenas o preço da instância e não a disponibilidade de capacidade, ela pode resultar em altas taxas de interrupção.  
A estratégia de alocação de preço mais baixo só está disponível quando é usada a AWS CLI. O nome do parâmetro é `lowest-price` para frotas do EC2 e `lowestPrice` para frotas spot.

**Número de grupos a serem usados**  
O número de grupos spot para os quais alocar sua capacidade spot de destino. Válido apenas quando a estratégia de alocação está definida como **preço mais baixo**. A frota seleciona os grupos spot de preço mais baixo e aloca uniformemente a capacidade spot de destino pelo número de grupos spot que você especifica.  
A frota tenta extrair instâncias spot do número de grupos que você especifica com base no melhor esforço. Se um grupo esgotar a capacidade spot antes de atender à capacidade de destino, a frota continuará a atender à solicitação recorrendo ao próximo grupo de preço mais baixo. Para garantir que sua capacidade de destino seja atendida, é possível receber Instâncias Spot de mais do que o número de grupos especificado. Da mesma forma, se a maioria dos pools não tiver capacidade spot, será possível receber sua capacidade de destino total de menos do que o número de pools que você especificou.  
Esse parâmetro só está disponível quando é especificada a estratégia de alocação **preço mais baixo** e somente quando é usada a AWS CLI. O nome do parâmetro é `InstancePoolsToUseCount` para frotas do EC2 e para frotas spot.

## Estratégias de alocação para instâncias sob demanda
<a name="ec2-fleet-allocation-strategies-for-on-demand-instances"></a>

A configuração de inicialização determina todos os possíveis grupos de capacidade (tipos de instância e zonas de disponibilidade) nos quais a frota do EC2 ou a frota spot pode inicializar instâncias sob demanda. No entanto, ao inicializar instâncias, a frota usa a estratégia de alocação que você especifica para escolher os grupos específicos de todos os seus grupos possíveis.

É possível especificar uma destas estratégias de alocação para instâncias sob demanda:

**Preço mais baixo**  
As instâncias sob demanda vêm do grupo com o preço mais baixo que tem capacidade disponível. Essa é a estratégia padrão.  
Se o grupo com preço mas baixo não tiver capacidade disponível, as instâncias sob demanda virão do próximo grupo com preço mais baixo que tiver capacidade disponível.  
Se um grupo esgotar a capacidade spot antes de atender à capacidade desejada, a frota continuará a atender à solicitação recorrendo ao próximo grupo de preço mais baixo. Para garantir que a capacidade desejada seja atendida, é possível receber instâncias sob demanda de vários grupos.

**Priorizada**  
A frota usa a prioridade que você atribuiu para cada substituição do modelo de inicialização ao inicializar tipos de instância começando pela prioridade mais alta. Essa estratégia não pode ser usada com a seleção de tipo de instância baseada em atributos. Para obter um exemplo de como usar essa estratégia de alocação, consulte [Priorizar tipos de instâncias para capacidade sob demanda](#ec2-fleet-on-demand-priority).

## Escolher a estratégia de alocação spot apropriada
<a name="ec2-fleet-allocation-use-cases"></a>

É possível otimizar a frota para seu caso de uso escolhendo a estratégia apropriada de alocação spot.

### Equilibrar menor preço e disponibilidade de capacidade
<a name="ec2-fleet-strategy-balance-price-and-capacity-availability"></a>

Para obter o equilíbrio entre os grupos de capacidade spot com preço mais baixo e os grupos de capacidade spot com a maior disponibilidade de capacidade, recomendamos que você use a estratégia de alocação **otimizada para capacidade de preço**. Essa estratégia toma decisões sobre quais grupos devem solicitar instâncias spot com base no preço dos grupos e na disponibilidade de capacidade de instâncias spot nesses grupos. Isso significa que solicitaremos instâncias spot dos grupos que acreditamos terem a menor probabilidade de interrupção em curto prazo, ao mesmo tempo que ainda levaremos o preço em consideração.

Se a frota executar workloads resilientes e sem estado, incluindo aplicações em contêiner, microsserviços, aplicações Web, trabalhos de dados e analytics e processamento em lote, use a estratégia de alocação **otimizada para capacidade de preço** para otimizar a economia de custos e a disponibilidade de capacidade.

Se a frota executar workloads que possam ter um custo de interrupção maior associado ao reinício do trabalho, você deverá implementar verificações para que as aplicações possam ser reiniciadas no ponto em que foram interrompidas. Ao usar pontos de verificação, você torna a estratégia de alocação **otimizada para capacidade de preço** uma boa opção para essas workloads, pois ela aloca a capacidade dos grupos com preço mais baixo que também oferecem uma baixa taxa de interrupção de instâncias spot.

Por exemplo, em configurações JSON que usam a estratégia de alocação **otimizada para capacidade de preço**, veja o seguinte:
+ Frota do EC2: [Exemplo 10: iniciar instâncias spot em uma frota otimizada para preço-capacidade](ec2-fleet-examples.md#ec2-fleet-config11)
+ Frota spot: [Exemplo 11: executar instâncias spot em uma frota priceCapacityOptimized](spot-fleet-examples.md#fleet-config11)

### Quando as workloads têm um alto custo de interrupção
<a name="ec2-fleet-strategy-capacity-optimized"></a>

Opcionalmente, você pode usar a estratégia **otimizada para capacidade** se executar workloads que usem tipos de instância com preços semelhantes ou em que o custo da interrupção seja tão significativo que qualquer economia de custos será inadequada em comparação com um aumento marginal nas interrupções. Essa estratégia aloca capacidade dos grupos com capacidade spot mais disponível que oferecem a possibilidade de menos interrupções, o que pode reduzir o custo geral da workload.

Quando a possibilidade de interrupções precisa ser minimizada mas a preferência por determinados tipos de instância é importante, é possível expressar as prioridades do grupo usando a estratégia de alocação **capacidade otimizada priorizada** e definindo a ordem dos tipos de instância a serem usados da prioridade mais alta para a mais baixa.

Observe que, quando você define as prioridades para **capacidade otimizada priorizada**, as mesmas prioridades também são aplicadas às instâncias sob demanda se a estratégia de alocação sob demanda está definida como **priorizada**. Observe também que, para frotas spot, o uso de prioridades só será compatível se a frota usar um modelo de inicialização.

Por exemplo, em configurações JSON que usam a estratégia de alocação **otimizada para capacidade**, observe o seguinte:
+ Frota do EC2: [Exemplo 8: iniciar instâncias spot em uma frota otimizada para capacidade](ec2-fleet-examples.md#ec2-fleet-config9)
+ Frota spot: [Exemplo 9: iniciar instâncias spot em uma frota otimizada para capacidade](spot-fleet-examples.md#fleet-config9)

Por exemplo, em configurações JSON que usam a estratégia de alocação **capacidade otimizada priorizada**, observe o seguinte:
+ Frota do EC2: [Exemplo 9: iniciar instâncias spot em uma frota otimizada para capacidade com prioridades](ec2-fleet-examples.md#ec2-fleet-config10)
+ Frota spot: [Exemplo 10: iniciar instâncias spot em uma frota otimizada para capacidade com prioridades](spot-fleet-examples.md#fleet-config10)

### Quando a workload é flexível em termos de tempo e a disponibilidade de capacidade não é um fator
<a name="ec2-fleet-strategy-time-flexible-workload"></a>

Se a frota é pequena ou é executada por um período curto, você pode usar **otimizada para capacidade de preço** para maximizar a economia de custos, ainda considerando a disponibilidade de capacidade.

### Quando sua frota é grande ou é executada por muito tempo
<a name="ec2-fleet-strategy-large-workload-long-time"></a>

Se sua frota é grande ou é executada há muito tempo, será possível aprimorar a disponibilidade dela distribuindo as instâncias spot por vários grupos, usando a estratégia **diversificada**. Por exemplo, se a frota especificar dez grupos e uma capacidade de destino de cem instâncias, a frota inicializará dez instâncias spot em cada grupo. Se o preço spot para um grupo exceder seu preço máximo para esse mesmo grupo, somente 10% de sua frota será afetada. Usar essa estratégia também torna sua frota menos sensível a aumentos que ocorram com o tempo no preço spot em qualquer grupo específico. Com a estratégia **diversificada**, a frota não inicializará instâncias spot em nenhum grupo com um preço spot igual ou maior que o [preço sob demanda](https://aws.amazon.com/ec2/pricing/).

## Manter a capacidade de destino para instâncias spot
<a name="ec2-fleet-maintain-fleet-capacity"></a>

Depois que as instâncias spot são encerradas devido a uma alteração no preço spot ou na capacidade disponível de um grupo de capacidade spot, uma frota do tipo `maintain` inicializa instâncias spot de substituição. A estratégia de alocação determina os grupos dos quais as instâncias de substituição são iniciadas, da seguinte forma:
+ Se a estratégia de alocação for **capacidade de preço otimizada**, a frota inicializará instâncias de substituição nos grupos com maior disponibilidade de capacidade de instâncias spot, ao mesmo tempo que também levará em consideração o preço e identificará os grupos de preço mais baixo com alta disponibilidade de capacidade.
+ Se a estratégia de alocação for **capacidade otimizada**, a frota inicializará instâncias de substituição nos grupos com a maior disponibilidade de capacidade de instâncias spot.
+ Se a estratégia de alocação for **diversificada**, a frota distribuirá as instâncias spot de substituição entre os grupos restantes.

## Priorizar tipos de instâncias para capacidade sob demanda
<a name="ec2-fleet-on-demand-priority"></a>

Quando uma frota do EC2 ou uma frota spot tenta atender à capacidade sob demanda, o padrão é inicializar primeiro o tipo de instância de preço mais baixo. Se a estratégia de alocação estiver definida como **priorizada**, a frota usará a prioridade para determinar que tipo de instância será usada primeiro para atender à capacidade sob demanda. A prioridade é atribuída à substituição do modelo de ativação, e a prioridade mais alta é lançada primeiro.

**Exemplo: priorizar tipos de instância**

Neste exemplo, você configura três substituições de modelo de execução, cada uma com um tipo de instância diferente.

O preço sob demanda para os tipos de instância varia no preço. Estes são os tipos de instância usados neste exemplo, listados em ordem de preço, a partir do tipo de instância mais barato:
+ `m4.large`: menor custo
+ `m5.large`
+ `m5a.large`

Se você não usar prioridade para determinar a ordem, a frota atenderá à capacidade sob demanda começando pelo tipo mais barato de instância.

No entanto, digamos que você tenha instâncias reservadas `m5.large` não utilizadas que deseja usar primeiro. É possível definir a prioridade de substituição do modelo de execução para que os tipos de instância sejam usados na ordem de prioridade, da seguinte forma:
+ `m5.large`: prioridade 1
+ `m4.large`: prioridade 2
+ `m5a.large`: prioridade 3

# Use o rebalanceamento de capacidade na frota do EC2 e na frota spot para substituir instâncias spot em risco
<a name="ec2-fleet-capacity-rebalance"></a>

Com o rebalanceamento de capacidade, a frota do EC2 ou a frota spot pode manter a capacidade spot desejada ao substituir proativamente as instâncias spot com risco de interrupção. Quando uma instância spot apresenta risco elevado de interrupção, o Amazon EC2 envia uma [recomendação de rebalanceamento](rebalance-recommendations.md). Se o rebalanceamento de capacidade estiver habilitado, a recomendação de rebalanceamento acionará a inicialização de uma nova instância spot antes que a instância em risco seja interrompida.

O rebalanceamento de capacidade ajuda a manter a disponibilidade da workload ao aumentar proativamente a frota com uma nova instância spot antes que instâncias em execução sejam interrompidas pelo Amazon EC2.

**Configurar a frota do EC2 para usar rebalanceamento de capacidade para inicializar uma Instância spot de substituição**  
Use o comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) e os parâmetros relevantes na estrutura `MaintenanceStrategies`. Para ver um exemplo de configuração JSON, consulte [Exemplo 7: Configurar o rebalanceamento de capacidade para executar a Instâncias spot de substituição](ec2-fleet-examples.md#ec2-fleet-config8).

**Configurar a frota spot para usar rebalanceamento de capacidade para inicializar uma instância spot de substituição**  
É possível usar o console do Amazon EC2 ou a AWS CLI para configurar o rebalanceamento de capacidade.

(Console) Quando criar a frota spot, marque a caixa de seleção **Rebalanceamento de capacidade**. Para obter mais informações, consulte a etapa 6.d em [Criar uma solicitação de frota spot usando parâmetros definidos](create-spot-fleet.md#create-spot-fleet-advanced).

(AWS CLI) Use o comando [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) e os parâmetros relevantes na estrutura `SpotMaintenanceStrategies`. Para ver um exemplo de configuração JSON, consulte [Exemplo 8: Configurar o rebalanceamento de capacidade para executar a Instâncias spot de substituição](spot-fleet-examples.md#fleet-config8).

**Topics**
+ [Limitações](#ec2-fleet-capacity-rebalance-limitations)
+ [Opções de configuração](#ec2-fleet-capacity-rebalance-config-options)
+ [Considerações](#ec2-fleet-capacity-rebalance-considerations)

## Limitações
<a name="ec2-fleet-capacity-rebalance-limitations"></a>
+ O rebalanceamento de capacidade só está disponível para frotas do tipo `maintain`.
+ Quando a frota estiver em execução, não é possível modificar a configuração de rebalanceamento de capacidade. Para alterar a configuração de rebalanceamento de capacidade, você deve excluir a frota e criar uma nova.

## Opções de configuração
<a name="ec2-fleet-capacity-rebalance-config-options"></a>

A `ReplacementStrategy` para a frota do EC2 e a frota spot oferece suporte a estes dois valores:

`launch-before-terminate`  
O Amazon EC2 termina as Instâncias spot que recebem uma notificação de rebalanceamento após o lançamento de novas Instâncias spot de substituição. Se você especificar `launch-before-terminate`, também deverá especificar um valor para `termination-delay`. Depois que as novas instâncias de substituição são iniciadas, o Amazon EC2 aguarda o período de `termination-delay` e, em seguida, encerra as instâncias antigas. Em `termination-delay`, o mínimo é de 120 segundos (2 minutos) e o máximo é de 7.200 segundos (2 horas).  
Recomendamos o uso de `launch-before-terminate` apenas se você puder prever quanto tempo os procedimentos de desligamento da instância levarão. Isso garantirá que as instâncias antigas só sejam terminadas após a conclusão dos procedimentos de desligamento. Observe que o Amazon EC2 pode interromper as instâncias antigas com um aviso dois minutos antes do período de `termination-delay`.  
Recomendamos firmemente não usar a estratégia de alocação `lowest-price` (frota do EC2) ou `lowestPrice` (frota spot) em combinação com `launch-before-terminate` para evitar a ocorrência de instâncias spot de substituição que também apresentem risco elevado de interrupção.

`launch`  
O Amazon EC2 inicia instâncias spot de substituição quando uma notificação de rebalanceamento é emitida para as instâncias spot existentes. O Amazon EC2 não termina automaticamente as instâncias que recebem uma notificação de rebalanceamento. É possível terminar as instâncias antigas ou deixá-las em execução. Você é cobrado por todas as instâncias enquanto elas estão sendo executadas.

## Considerações
<a name="ec2-fleet-capacity-rebalance-considerations"></a>

Se você configurar uma frota do EC2 ou uma frota spot para rebalanceamento de capacidade, considere o seguinte:

**Forneça o maior número possível de grupos de capacidade spot na solicitação**  
Configure a frota para usar vários tipos de instância e zonas de disponibilidade. Isso oferece a flexibilidade para executar instâncias spot em vários grupos de capacidade spot. Para obter mais informações, consulte [Ser flexível sobre tipos de instância e zonas de disponibilidade](spot-best-practices.md#be-instance-type-flexible).

**Evitar um risco elevado de interrupção das instâncias spot substitutas**  
Para evitar um alto risco de interrupção, recomendamos fortemente a estratégia de alocação `capacity-optimized` ou `capacity-optimized-prioritized`. Essas estratégias garantem que as instâncias spot substitutas sejam iniciadas nos grupos de capacidade spot ideais e, portanto, tenham menos probabilidade de serem interrompidas em futuro próximo. Para obter mais informações, consulte [Usar a estratégia de alocação otimizada para preço e capacidade](spot-best-practices.md#use-capacity-optimized-allocation-strategy).  
Se você usar a estratégia de alocação `lowest-price`, as instâncias spot de substituição poderão apresentar risco elevado de interrupção. Isso ocorre porque o Amazon EC2 sempre iniciará instâncias no grupo de preços mais baixos que tenha capacidade disponível naquele momento, mesmo que exista a probabilidade de que as instâncias spot de substituição sejam interrompidas logo após serem iniciadas.

**O Amazon EC2 Auto Scaling só iniciará uma nova instância se a disponibilidade for igual ou superior**  
Um dos objetivos do rebalanceamento de capacidade é melhorar a disponibilidade de uma instância spot. Se uma instância spot existente receber uma recomendação de rebalanceamento, o Amazon EC2 só iniciará uma nova instância caso a nova instância forneça uma disponibilidade igual ou superior a da instância existente. Se o risco de interrupção de uma nova instância for pior do que a instância existente, o Amazon EC2 não iniciará uma nova instância. No entanto, o Amazon EC2 continuará a avaliar os grupos de capacidade spot e iniciará uma nova instância se a disponibilidade melhorar.  
Há uma chance de que a instância existente seja interrompida sem que o Amazon EC2 inicie proativamente uma nova instância. Quando isso acontecer, o Amazon EC2 tentará iniciar uma nova instância, independentemente de a nova instância ter um alto risco de interrupção.

**O Rebalanceamento da capacidade não aumenta a taxa de interrupção de instâncias Spot**  
Quando o Rebalanceamento da capacidade é habilitado, ele não aumenta a [Taxa de interrupção de instâncias Spot](spot-interruptions.md) (o número de instâncias Spot que são recuperadas quando o Amazon EC2 precisa novamente de capacidade). Porém, se o rebalanceamento da capacidade detectar que uma instância está em risco de interrupção, o Amazon EC2 tentará iniciar imediatamente uma nova instância. O resultado é que pode haver a substituição de mais instâncias do que se você esperasse que o Amazon EC2 iniciasse uma nova instância depois que a instância em risco fosse interrompida.  
Mesmo podendo substituir mais instâncias com o Rebalanceamento da capacidade habilitado, você se beneficia de ser proativo em vez de reativo, tendo mais tempo para agir antes que suas instâncias sejam interrompidas. Com um [Aviso de interrupção de instâncias Spot](spot-instance-termination-notices.md), normalmente você só tem até dois minutos para encerrar sua instância sem problemas. Com o Rebalanceamento da capacidade iniciando uma nova instância com antecedência, os processos existentes têm maiores chances de serem concluídos na instância em risco. Além disso, você pode iniciar os procedimentos de desligamento da instância e impedir que novos trabalhos sejam agendados na instância em risco. Você também pode começar a preparar a instância recém-lançada para assumir o controle da aplicação. Com a substituição proativa do Rebalanceamento da capacidade, você se beneficia com uma continuidade tranquila.  
Como exemplo teórico para demonstrar os riscos e benefícios do uso do Rebalanceamento da capacidade, considere o seguinte cenário:  
+ 14h: uma recomendação de rebalanceamento é recebida para a instância A, e o Amazon EC2 começa imediatamente a tentar iniciar uma instância B de substituição, dando a você tempo para iniciar os procedimentos de desligamento.\$1
+ 14h30: uma recomendação de rebalanceamento é recebida para a instância-B, substituída pela instância-C, dando a você tempo para iniciar os procedimentos de desligamento.\$1
+ 14h32: se o Rebalanceamento da capacidade não estivesse habilitado e um aviso de interrupção de instância Spot tivesse sido recebido às 14h32 para a instância-A, você teria apenas dois minutos para agir, mas a Instância-A estaria em execução até esse momento.
\$1 Se `launch-before-terminate` for especificado, o Amazon EC2 encerrará a instância em risco depois que a instância de substituição ficar online.

**O Amazon EC2 pode iniciar a nova Instâncias spot de substituição até que a capacidade atingida seja o dobro da capacidade visada**  
Quando uma frota é configurada para rebalanceamento de capacidade, ela tenta executar uma nova instância spot de substituição para cada instância spot que recebe uma recomendação de rebalanceamento. Depois que uma instância spot recebe uma recomendação de rebalanceamento, ela deixa de ser contada como parte da capacidade atendida. Dependendo da estratégia de substituição, o Amazon EC2 termina a instância após um período espera para término pré-configurado ou a deixa em execução. Isso dá a você a oportunidade de executar [ações de rebalanceamento](rebalance-recommendations.md#rebalancing-actions) na instância.  
Se sua frota atingir o dobro da capacidade de destino, ela interrompe a execução de novas instâncias de substituição, mesmo que as próprias instâncias de substituição recebam uma recomendação de rebalanceamento.  
Por exemplo, você cria uma frota com uma capacidade de destino de cem instâncias spot. Todas as instâncias spot recebem uma recomendação de rebalanceamento, o que faz com que o Amazon EC2 inicie 100 instâncias spot de substituição. Isso eleva o número de instâncias spot atendidas para 200, o que é o dobro da capacidade de destino. Algumas das instâncias de substituição recebem uma recomendação de rebalanceamento. Porém, nenhuma instância de substituição é inicializada porque a frota não pode exceder o dobro da sua capacidade de destino.   
Observe que você é cobrado por todas as instâncias durante a execução.

**Recomendamos que você configure a frota para encerrar as instâncias spot que receberem uma recomendação de rebalanceamento**  
Se você configurar a frota para rebalanceamento de capacidade, recomendamos que só escolha `launch-before-terminate` com um período de espera de encerramento apropriado se puder prever quanto tempo a conclusão dos procedimentos de desligamento da instância demorará. Isso garantirá que as instâncias antigas só sejam terminadas após a conclusão dos procedimentos de desligamento.  
Se escolher terminar as instâncias recomendadas para rebalanceamento você mesmo, recomendamos que monitore o aviso da recomendação de rebalanceamento recebido pelas instâncias spot na frota. Ao monitorar o sinal, você pode executar rapidamente [ações de rebalanceamento](rebalance-recommendations.md#rebalancing-actions) nas instâncias afetadas, antes que o Amazon EC2 as interrompa e, em seguida, você pode encerrá-las manualmente. Se você não encerrar as instâncias, continuará pagando por elas enquanto estiverem em execução. O Amazon EC2 não encerra automaticamente as instâncias que recebem uma recomendação de rebalanceamento.  
É possível configurar notificações usando o Amazon EventBridge ou metadados da instância. Para obter mais informações, consulte [Monitorar os sinais de recomendação de rebalanceamento](rebalance-recommendations.md#monitor-rebalance-recommendations).

**A frota não conta as instâncias que recebem uma recomendação de rebalanceamento quando calcula a capacidade atendida durante a redução ou o aumento da escala horizontalmente**  
Se a frota estiver configurada para rebalanceamento de capacidade e você alterar a capacidade de destino para redução ou aumento da escala horizontalmente, a frota não contará as instâncias marcadas para rebalanceamento como parte da capacidade atendida, como mostrado a seguir:  
+ Reduzir a escala horizontalmente - Se você diminuir a capacidade visada, o Amazon EC2 encerrará instâncias que não estiverem marcadas para rebalanceamento até que a capacidade desejada seja atingida. As instâncias marcadas para rebalanceamento não são contabilizadas para a capacidade atingida.

  Por exemplo, você cria uma frota com uma capacidade de destino de cem instâncias spot, e dez instâncias recebem uma recomendação de rebalanceamento. Portanto, o Amazon EC2 inicializa dez novas instâncias de substituição, resultando em uma capacidade atendida de 110 instâncias. Em seguida, você reduz a capacidade visada para 50 (reduzir a escala horizontalmente), mas a capacidade de atendimento é, na verdade, 60 instâncias porque as 10 instâncias marcadas para rebalanceamento não são encerradas pelo Amazon EC2. Você precisa encerrar manualmente essas instâncias ou deixá-las em execução.
+ Aumentar a escala horizontalmente - Se você aumentar a capacidade visada, o Amazon EC2 iniciará novas instâncias até que a capacidade desejada seja atingida. As instâncias marcadas para rebalanceamento não são contabilizadas para a capacidade atingida. 

  Por exemplo, você cria uma frota com uma capacidade de destino de cem instâncias spot. Dez instâncias recebem uma recomendação de rebalanceamento. Portanto, a frota inicializa dez novas instâncias de substituição, resultando em uma capacidade atendida de 110 instâncias. Em seguida, você aumenta a capacidade de destino para 200 (aumento), mas a capacidade de atendimento é, na verdade, 210 instâncias porque as 10 instâncias marcadas para rebalanceamento não são contabilizadas pela frota como parte da capacidade de destino. Você precisa encerrar manualmente essas instâncias ou deixá-las em execução.

# Use reservas de capacidade para reservar capacidade sob demanda na frota do EC2
<a name="ec2-fleet-on-demand-capacity-reservations"></a>

Com as Reservas de Capacidade sob demanda, você pode reservar capacidade computacional para suas Instâncias sob demanda em uma determinada zona de disponibilidade por qualquer duração. É possível configurar uma Frota do EC2 para usar as Reservas de Capacidade primeiro ao iniciar Instâncias sob demanda.

As reservas de capacidade sob demanda só estão disponíveis para a frota do EC2 com o tipo de solicitação definido como `instant`.

As Reservas de Capacidade são configuradas como `open` ou `targeted`. A frota EC2 pode iniciar Instâncias sob demanda nas Reservas de Capacidade `open` ou `targeted`, da seguinte forma:
+ Se uma Reserva de capacidade é `open`, as Instâncias sob demanda que tiverem atributos correspondentes serão executadas automaticamente na capacidade reservada.
+ Se uma Reserva de capacidade for `targeted`, as Instâncias sob demanda deverão usá-la como destino especificamente para executar na capacidade reservada. Isso é útil para usar Reservas de Capacidade específicas ou para controlar quando usar Reservas de Capacidade específicas. 

Se você usar Reservas de Capacidade `targeted` em sua frota EC2, deve haver Reservas de Capacidade suficientes para atender à capacidade sob demanda de destino, caso contrário, o lançamento falhará. Para evitar uma falha no lançamento, adicione as Reservas de Capacidade `targeted` a um grupo de recursos e, em seguida, direcione o grupo de recursos. O grupo de recursos não precisa ter Reservas de Capacidade suficientes; se ficar sem Reservas de Capacidade antes que a capacidade sob demanda de destino seja atendida, a frota poderá iniciar a capacidade de destino restante na capacidade sob demanda regular.

**Para usar Reservas de Capacidade com a frota EC2**

1. Configurar a frota como tipo `instant`. Não é possível usar Reservas de Capacidade para frotas de outros tipos.

1. Configure a estratégia de uso para Reservas de Capacidade como `use-capacity-reservations-first`.

1. No modelo de lançamento, para **Reserva de capacidade**, escolha **Aberto** ou **Destino por grupo**. Se escolher **Destino por grupo**, especifique o ID do grupo de recursos de Reservas de Capacidade.

Quando a frota tenta atender à capacidade sob demanda, se descobrir que vários grupos de instâncias têm Reservas de Capacidade correspondentes não utilizadas, ela determina os grupos nos quais iniciar as Instâncias sob demanda com base na estratégia de alocação sob demanda (`lowest-price` ou `prioritized`).

**Recursos relacionados**
+ Para obter exemplos da CLI de como configurar uma frota para usar reservas de capacidade para atender à capacidade sob demanda, consulte [Exemplo de configurações da CLI para frotas do EC2](ec2-fleet-examples.md), especificamente os exemplos de 5 a 7.
+ Para ver um tutorial que mostra as etapas para criar reservas de capacidade, usá-las na frota e visualizar quantas reservas de capacidade ainda restam, consulte [Tutorial: configurar o EC2 Fleet para executar instâncias sob demanda usando reservas de capacidade direcionadas](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md).
+ Para obter informações sobre configuração das Reservas de Capacidade, consulte [Reservar capacidade computacional com reservas de capacidade sob demanda do EC2](ec2-capacity-reservations.md) e as [Perguntas frequentes sobre Reservas de Capacidade](https://aws.amazon.com/ec2/faqs/#On-Demand_Capacity_Reservation).