

# Tutoriais para o EC2 Fleet
<a name="fleet-tutorials"></a>

Há diferentes maneiras de configurar um EC2 Fleet. A configuração a escolher depende do seu caso de uso específico.

Os tutoriais a seguir abordam alguns dos possíveis casos de uso e fornecem as tarefas necessárias para implementá-los.


| Caso de uso | Link para o tutorial | 
| --- | --- | 
|  **Use a ponderação de instâncias para gerenciar a disponibilidade e performance do EC2 Fleet.** Com a ponderação de instâncias, você atribui um peso a cada tipo de instância no EC2 Fleet para representar sua capacidade computacional e a performance relativa entre elas. 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.  | [Tutorial: configurar o EC2 Fleet para usar ponderação de instâncias](ec2-fleet-instance-weighting-walkthrough.md) | 
|  **Use a capacidade sob demanda para garantir a disponibilidade durante os períodos de pico, mas se beneficie da capacidade spot adicional a um custo menor.** Configure o EC2 Fleet para usar instâncias sob demanda como capacidade principal para garantir a capacidade disponível durante os períodos de pico. Além disso, aloque alguma capacidade para as instâncias spot para se beneficiar de preços reduzidos, tendo em mente que as instâncias spot poderão ser interrompidas caso o Amazon EC2 precise da capacidade de volta.  | [Tutorial: configurar o EC2 Fleet para usar instâncias sob demanda como a capacidade principal](ec2-fleet-on-demand-walkthrough.md) | 
|  **Use as reservas de capacidade para reservar capacidade computacional para as instâncias sob demanda.** Configure o EC2 Fleet para usar primeiro reservas de capacidade `targeted` ao executar instâncias sob demanda. Se você tem requisitos rígidos de capacidade e está executando workloads essenciais para os negócios que exigem um certo nível de garantia de capacidade a longo ou curto prazo, recomendamos que você crie uma reserva de capacidade para garantir que sempre tenha acesso à capacidade do Amazon EC2 quando precisar, pelo tempo que precisar.  | [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) | 
|  **Use blocos de capacidade para reservar instâncias de GPU muito procuradas por suas workloads de ML.** Configure o EC2 Fleet para executar instâncias em blocos de capacidade.  | [Tutorial: configurar o EC2 Fleet para executar instâncias em blocos de capacidade](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md) | 
|  **Use reservas de capacidade interrompíveis para redirecionar temporariamente a capacidade ociosa em toda a sua organização da AWS e reduzir os custos.** Configure o EC2 Fleet para executar instâncias em reservas de capacidade interrompíveis, as quais representam a capacidade de reserva em sua organização da AWS. Os proprietários da capacidade podem reivindicar a capacidade a qualquer momento. Uma vez reivindicada, o EC2 encerra as instâncias após um aviso de 2 minutos.  | [Tutorial: configurar o EC2 Fleet para executar instâncias em reservas de capacidade interrompíveis](ec2-fleet-launch-instances-interruptible-cr-walkthrough.md) | 

# Tutorial: configurar o EC2 Fleet para usar ponderação de instâncias
<a name="ec2-fleet-instance-weighting-walkthrough"></a>

Este tutorial usa uma empresa fictícia chamada Example Corp para ilustrar o processo de solicitação de uma Frota do EC2 usando o peso da instância.

## Objetivo
<a name="ec2-fleet-instance-weighting-walkthrough-objective"></a>

A Exemplo Corp, uma empresa farmacêutica, quer usar a capacidade computacional do Amazon EC2 para fazer a triagem dos compostos químicos que podem ser usados para combater o câncer.

## Planejamento
<a name="ec2-fleet-instance-weighting-walkthrough-planning"></a>

Primeiro, a Exemplo Corp analisa as [Melhores práticas de spot](https://aws.amazon.com/ec2/spot/getting-started/#bestpractices). Em seguida, a Exemplo Corp determina os requisitos para a Frota do EC2.

**Tipos de instância**  
A Exemplo Corp tem uma aplicação de uso intenso de memória e recursos de computação que funciona melhor com, pelo menos, 60 GB de memória e oito CPUs virtuais (vCPUs). Eles querem maximizar esses recursos para a aplicação com o menor preço possível. A Exemplo Corp decide que qualquer um dos seguintes tipos de instância do EC2 atenderá às suas necessidades:


| Tipo de instância | Memória (GiB) | vCPUs | 
| --- | --- | --- | 
|  r3.2xlarge  |  61  |  8  | 
|  r3.4xlarge  |  122  |  16  | 
|  r3.8xlarge  |  244  |  32  | 

**Capacidade de destino em unidades**  
Com o peso da instância, a capacidade de destino pode igualar um número de instâncias (o padrão) ou uma combinação de fatores, como núcleos (vCPUs), memória (GiB) e armazenamento (GB). Considerando a base para sua aplicação (60 GB de RAM e oito vCPUs) como uma unidade, a Exemplo Corp decide que 20 vezes essa quantidade atenderá às suas necessidades. Então, a empresa define a capacidade de destino da solicitação do EC2 Fleet como 20 unidades.

**Pesos das instâncias**  
Depois de determinar a capacidade de destino, a Exemplo Corp calcula os pesos das instâncias. Para calcular o peso para cada tipo de instância, eles determinam as unidades de cada tipo de instância que são necessárias para atingir a capacidade de destino da seguinte forma:
+ r3.2xlarge (61,0 GB, 8 vCPUs) = 1 unidade de 20
+ r3.4xlarge (122,0 GB, 16 vCPUs) = 2 unidades de 20
+ r3.8xlarge (244,0 GB, 32 vCPUs) = 4 unidades de 20

Portanto, a Exemplo Corp atribui os pesos de instância 1, 2 e 4 às respectivas configurações de execução na solicitação de Frota do EC2.

**Preço por hora**  
A Exemplo Corp usa o [Preço sob demanda](https://aws.amazon.com/ec2/pricing/) por hora de instância como o ponto inicial de preço. Eles também podem usar os preços spot recentes ou uma combinação dos dois. Para calcular o preço por hora, eles dividem o preço inicial por hora de instância pelo peso. Por exemplo:


| Tipo de instância | Preço sob demanda | Peso da instância | Preço por hora | 
| --- | --- | --- | --- | 
|  r3.2xLarge  |  0,7 USD  |  1  |  0,7 USD  | 
|  r3.4xLarge  |  1,4 USD  |  2  |  0,7 USD  | 
|  r3.8xLarge  |  \$12,8  |  4  |  0,7 USD  | 

A Exemplo Corp pode usar um preço global por hora de 0,7 USD e ser competitiva para todos os três tipos de instância. Eles também podem usar um preço global por hora de 0,7 USD e um preço específico por hora de 0,9 USD na especificação de execução `r3.8xlarge`.

## Verificar permissões
<a name="ec2-fleet-instance-weighting-walkthrough-permissions"></a>

Antes de criar uma Frota do EC2, a Exemplo Corp verifica se ela tem uma função do IAM com as permissões necessárias. Para obter mais informações, consulte [Pré-requisitos da Frota do EC2](ec2-fleet-prerequisites.md).

## Criar um modelo de execução
<a name="ec2-fleet-instance-weighting-create-launch-template"></a>

Em seguida, a Exemplo Corp cria um modelo de execução. O ID do modelo de execução é usado na próxima etapa. Para obter mais informações, consulte [Criar um modelo de execução do Amazon EC2](create-launch-template.md).

## Criar a Frota do EC2
<a name="ec2-fleet-instance-weighting-walkthrough-request"></a>

A Example Corp cria um arquivo, `config.json`, com a seguinte configuração para sua Frota do EC2: No exemplo a seguir, substitua os identificadores de recursos pelos seus identificadores de recursos.

```
{ 
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851", 
                "Version": "1"
            }, 
            "Overrides": [
                {
                    "InstanceType": "r3.2xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 1
                },
                {
                    "InstanceType": "r3.4xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 2
                },
                {
                    "InstanceType": "r3.8xlarge", 
                    "MaxPrice": "0.90", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 4
                }
            ]
        }
    ], 
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20, 
        "DefaultTargetCapacityType": "spot"
    }
}
```

A Example Corp cria a Frota do EC2 usando o seguinte comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html):

```
aws ec2 create-fleet --cli-input-json file://config.json
```

Para obter mais informações, consulte [Criar uma Frota do EC2.](create-ec2-fleet.md).

## Atendimento
<a name="ec2-fleet-instance-weighting-walkthrough-fulfillment"></a>

A estratégia de alocação determina de quais grupos de capacidade spot os Instâncias spot procedem.

Com a estratégia `lowest-price` (que é uma estratégia padrão), as Instâncias spot vêm do grupo com o menor preço spot por unidade no momento do atendimento. Para fornecer 20 unidades de capacidade, a Frota do EC2 executa 20 instâncias `r3.2xlarge` (20 dividido por 1), 10 instâncias `r3.4xlarge` (20 dividido por 2) ou 5 instâncias `r3.8xlarge` (20 dividido por 4).

Se a Exemplo Corp usasse a estratégia `diversified`, as Instâncias spot viriam dos três grupos. A Frota do EC2 executaria seis instâncias `r3.2xlarge` (que fornecem 6 unidades), três instâncias `r3.4xlarge` (que fornecem 6 unidades), duas instâncias `r3.8xlarge` (que fornecem 8 unidades), totalizando 20 unidades.

# Tutorial: configurar o EC2 Fleet para usar instâncias sob demanda como a capacidade principal
<a name="ec2-fleet-on-demand-walkthrough"></a>

Este tutorial usa uma empresa fictícia chamada ABC Online para ilustrar o processo de solicitação de uma Frota do EC2 com opção sob demanda como capacidade principal e capacidade spot (se disponível).

## Objetivo
<a name="ec2-fleet-on-demand-walkthrough-objective"></a>

A ABC Online, uma empresa de entrega para restaurantes, quer provisionar a capacidade do Amazon EC2 entre os tipos de instância do EC2 e as opções de compra para atingir a escala, a performance e o custo desejados.

## Plano
<a name="ec2-fleet-on-demand-walkthrough-planning"></a>

A ABC Online precisa de uma capacidade fixa para operar durante períodos de pico, mas gostaria de se beneficiar de uma capacidade adicional com custo mais baixo. A empresa determina os seguintes requisitos para EC2 Fleet:
+ Capacidade de instância sob demanda: a ABC Online requer 15 instâncias sob demanda para garantir a acomodação do tráfego em períodos de pico.
+ Capacidade de instâncias spot: para aprimorar a performance, mas com um custo mais baixo, a ABC Online planeja provisionar cinco instâncias spot.

## Verificar permissões
<a name="ec2-fleet-on-demand-walkthrough-permissions"></a>

Antes de criar uma Frota do EC2, a ABC Online verifica se ela tem uma função do IAM com as permissões necessárias. Para obter mais informações, consulte [Pré-requisitos da Frota do EC2](ec2-fleet-prerequisites.md).

## Criar um modelo de execução
<a name="ec2-fleet-on-demand-walkthrough-create-launch-template"></a>

A ABC Online cria um modelo de execução. O ID do modelo de execução é usado na próxima etapa. Para obter mais informações, consulte [Criar um modelo de execução do Amazon EC2](create-launch-template.md).

## Criar a Frota do EC2
<a name="ec2-fleet-on-demand-walkthrough-request"></a>

A ABC Online cria um arquivo, `config.json`, com a seguinte configuração para sua Frota do EC2. No exemplo a seguir, substitua os identificadores de recursos pelos seus identificadores de recursos.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851",
                "Version": "2"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity":15,
        "DefaultTargetCapacityType": "spot"
    }
}
```

A ABC Online cria a Frota do EC2 usando o seguinte comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html):

```
aws ec2 create-fleet --cli-input-json file://config.json
```

Para obter mais informações, consulte [Criar uma Frota do EC2.](create-ec2-fleet.md).

## Atendimento
<a name="ec2-fleet-on-demand-walkthrough-fulfillment"></a>

A estratégia de alocação determina que a capacidade sob demanda seja sempre cumprida, enquanto o saldo da capacidade de destino seja atendido como spot se houver capacidade e disponibilidade.

# Tutorial: configurar o EC2 Fleet para executar instâncias sob demanda usando reservas de capacidade direcionadas
<a name="ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough"></a>

Este tutorial orienta você por todas as etapas que você deve executar para que sua Frota do EC2 inicie Instâncias sob demanda nas Reservas de Capacidade `targeted`.

Você aprenderá a configurar uma frota para usar as Reservas de Capacidade sob demanda `targeted` primeiro ao iniciar Instâncias sob demanda. Você também aprenderá a configurar a frota para que, quando a capacidade total de destino sob demanda exceder o número de Reservas de Capacidade não utilizadas disponíveis, a frota use a estratégia de alocação especificada para selecionar os grupos de instâncias nos quais iniciar a capacidade de destino restante.

**Configuração da Frota do EC2**

Nesse tutorial, a frota é configurada da seguinte forma:
+ Capacidade de destino: 10 Instâncias sob demanda
+ Total de Reservas de Capacidade `targeted` não utilizadas: 6 (menor que a capacidade de destino sob demanda da frota de 10 Instâncias sob demanda)
+ Número de grupos de Reservas de capacidade: 2 (`us-east-1a` e `us-east-1b`)
+ Número de Reservas de Capacidade por grupo: 3
+ Estratégia de alocação sob demanda: `lowest-price` (Quando o número de Reservas de Capacidade não utilizadas for menor que a capacidade de destino sob demanda, a frota determina os grupos nos quais iniciar a capacidade sob demanda restante com base na estratégia de alocação sob demanda.)

  Observe que você também pode usar a estratégia de alocação `prioritized` em vez da estratégia de alocação `lowest-price`.

**Para iniciar as Instâncias sob demanda em Reservas de Capacidade `targeted`, você deve executar uma série de etapas, da seguinte forma:**
+ [Etapa 1: Criar Reservas de Capacidade](#ec2-fleet-odcr-step1)
+ [Etapa 2: Criar um grupo de recursos de Reservas de capacidade](#ec2-fleet-odcr-step2)
+ [Etapa 3: Adicionar as Reservas de Capacidade ao grupo de recursos Reservas de Capacidade](#ec2-fleet-odcr-step3)
+ [(Opcional) Etapa 4: Exibir Reservas de Capacidade no grupo de recursos](#ec2-fleet-odcr-step4)
+ [Etapa 5: Criar um modelo de inicialização que especifique que a Reserva de Capacidade se destina a um grupo de recursos específico](#ec2-fleet-odcr-step5)
+ [(Opcional) Etapa 6: Descrever o modelo de inicialização](#ec2-fleet-odcr-step6)
+ [Etapa 7: Criar uma Frota EC2](#ec2-fleet-odcr-step7)
+ [(Opcional) Etapa 8: Exibir o número de Reservas de Capacidade não utilizadas restantes](#ec2-fleet-odcr-step8)

## Etapa 1: Criar Reservas de Capacidade
<a name="ec2-fleet-odcr-step1"></a>

Use o comando [Create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html) para criar as Reservas de Capacidade, três para `us-east-1a` e outras três para `us-east-1b`. Exceto para a Zona de disponibilidade, os outros atributos das Reservas de Capacidade são idênticos.

**3 Reservas de Capacidade no `us-east-1a`**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1a \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Exemplo de ID de reserva de capacidade resultante

```
cr-1234567890abcdef1
```

**3 Reservas de Capacidade no `us-east-1b`**

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1b \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Exemplo de ID de reserva de capacidade resultante

```
cr-54321abcdef567890
```

## Etapa 2: Criar um grupo de recursos de Reservas de capacidade
<a name="ec2-fleet-odcr-step2"></a>

Use o serviço `resource-groups` e o comando [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) para criar um grupo de recursos de Reservas de capacidade. Neste exemplo, o grupo de recursos é chamado de `my-cr-group`. Para obter informações sobre por que você deve criar um grupo de recursos, consulte [Use reservas de capacidade para reservar capacidade sob demanda na frota do EC2](ec2-fleet-on-demand-capacity-reservations.md).

```
aws resource-groups create-group \
    --name my-cr-group \
    --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

## Etapa 3: Adicionar as Reservas de Capacidade ao grupo de recursos Reservas de Capacidade
<a name="ec2-fleet-odcr-step3"></a>

Use o serviço `resource-groups` e o comando [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) para adicionar as Reservas de Capacidade que você criou na Etapa 1 para o grupo de recursos Reservas de Capacidade. Observe que você deve fazer referência às Reservas de Capacidade sob demanda por seus ARNs.

```
aws resource-groups group-resources \
    --group my-cr-group \
    --resource-arns \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1 \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890
```

Exemplo de saída

```
{
   "Failed": [], 
   "Succeeded": [ 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" 
   ] 
}
```

## (Opcional) Etapa 4: Exibir Reservas de Capacidade no grupo de recursos
<a name="ec2-fleet-odcr-step4"></a>

Use o serviço `resource-groups` e o comando [list-group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/list-group-resources.html) para descrever opcionalmente o grupo de recursos para visualizar suas Reservas de Capacidade.

```
aws resource-groups list-group-resources --group my-cr-group
```

Exemplo de saída

```
{
    "ResourceIdentifiers": [
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1"
        },
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
        }
    ]
}
```

## Etapa 5: Criar um modelo de inicialização que especifique que a Reserva de Capacidade se destina a um grupo de recursos específico
<a name="ec2-fleet-odcr-step5"></a>

Use o comando [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) para criar um modelo de execução no qual especifique as Reservas de Capacidade a serem usadas. Neste exemplo, a frota usará Reservas de Capacidade `targeted`, que foram adicionadas a um grupo de recursos. Portanto, os dados do modelo de inicialização especificam que a Reserva de Capacidade se destina a um grupo de recursos específico. Neste exemplo, o modelo de inicialização é chamado de `my-launch-template`. 

```
aws ec2 create-launch-template \
    --launch-template-name my-launch-template \
    --launch-template-data \
        '{"ImageId": "ami-0123456789example",
          "CapacityReservationSpecification": 
            {"CapacityReservationTarget": 
                { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group" }
            }
        }'
```

## (Opcional) Etapa 6: Descrever o modelo de inicialização
<a name="ec2-fleet-odcr-step6"></a>

Use o comando [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html) para descrever opcionalmente o modelo de execução para visualizar a configuração.

```
aws ec2 describe-launch-template-versions --launch-template-name my-launch-template
```

Exemplo de saída

```
{
    "LaunchTemplateVersions": [
        {
            "LaunchTemplateId": "lt-01234567890example",
            "LaunchTemplateName": "my-launch-template",
            "VersionNumber": 1,
            "CreateTime": "2021-01-19T20:50:19.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
            "DefaultVersion": true,
            "LaunchTemplateData": {
                "ImageId": "ami-0947d2ba12ee1ff75",
                "CapacityReservationSpecification": {
                    "CapacityReservationTarget": {
                        "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"
                    }
                }
            }
        }
    ]
}
```

## Etapa 7: Criar uma Frota EC2
<a name="ec2-fleet-odcr-step7"></a>

Crie uma EC2 Fleet que especifique as informações de configuração para as instâncias que serão iniciadas. A configuração de frota EC2 a seguir mostra somente as configurações pertinentes a esse exemplo. O modelo de inicialização `my-launch-template` é o modelo de inicialização criado na Etapa 5. Há dois grupos de instâncias, cada um com o mesmo tipo de instância (`c5.xlarge`), mas com diferentes zonas de disponibilidade (`us-east-1a` e `us-east-1b`). O preço dos grupos de instâncias é o mesmo porque o preço é definido para a região, não para a Zona de Disponibilidade. A capacidade de destino total é de 10 e o tipo de capacidade de destino padrão é `on-demand`. A estratégia de alocação sob demanda é `lowest-price`. A estratégia de uso para Reservas de Capacidade é `use-capacity-reservations-first`.

**nota**  
O tipo da frota deve ser `instant`. Outros tipos de frota não são compatíveis com `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "c5.xlarge",
                   "AvailabilityZone": "us-east-1a"
               },
               {
                    "InstanceType": "c5.xlarge",
                    "AvailabilityZone": "us-east-1b"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

Depois de criar a frota `instant` usando a configuração anterior, as 10 instâncias a seguir serão iniciadas para atender à capacidade de destino:
+ As Reservas de Capacidade são usadas primeiro para iniciar 6 Instâncias sob demanda da seguinte maneira:
  + 3 Instâncias sob demanda são iniciadas nas 3 `c5.xlarge` Reservas de Capacidade `targeted` no `us-east-1a`
  + 3 Instâncias sob demanda são iniciadas nas 3 `c5.xlarge` Reservas de Capacidade `targeted` no `us-east-1b`
+ Para atender à capacidade de destino, 4 Instâncias sob demanda adicionais são iniciadas na capacidade sob demanda regular de acordo com a estratégia de alocação sob demanda, que é `lowest-price` neste exemplo. No entanto, como os grupos têm o mesmo preço (porque o preço é por região e não por zona de disponibilidade), a frota inicia as 4 Instâncias sob demanda restantes em qualquer um dos grupos.

## (Opcional) Etapa 8: Exibir o número de Reservas de Capacidade não utilizadas restantes
<a name="ec2-fleet-odcr-step8"></a>

Depois que a frota for lançada, você poderá, opcionalmente, 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 foram usadas em todos os grupos.

```
{ "CapacityReservationId":  "cr-111",
     "InstanceType":  "c5.xlarge",  
     "AvailableInstanceCount":  0
}

 { "CapacityReservationId":  "cr-222",
     "InstanceType":  "c5.xlarge", 
     "AvailableInstanceCount":  0
}
```

# Tutorial: configurar o EC2 Fleet para executar instâncias em blocos de capacidade
<a name="ec2-fleet-launch-instances-capacity-blocks-walkthrough"></a>

Este tutorial mostra todas as etapas que você deve seguir para que a Frota do EC2 inicie Instâncias sob demanda em blocos de capacidade. 

Na maioria dos casos, a capacidade de destino da solicitação do EC2 Fleet deve ser menor ou igual à capacidade disponível na reserva do bloco de capacidade pretendida. As solicitações de capacidade pretendida que excederem os limites da reserva de bloco de capacidade não serão atendidas. Se a solicitação da capacidade de destino exceder os limites da reserva de bloco de capacidade, você receberá uma `Insufficient Capacity Exception` para a capacidade que exceder os limites da reserva de bloco de capacidade.

**nota**  
Para blocos de capacidade, a Frota do EC2 não recorrerá à inicialização de instâncias sob demanda para atender ao restante da capacidade pretendida.

Se a Frota do EC2 não puder atender à capacidade pretendida solicitada em uma reserva de bloco de capacidade disponível, a Frota do EC2 atenderá ao máximo de capacidade possível e retornará as instâncias que não conseguiu iniciar. Você pode repetir a chamada para a Frota do EC2 até que todas as instâncias sejam provisionadas.

Depois de configurar a solicitação da Frota do EC2, você deve esperar até a data de início da reserva do bloco de capacidade. Caso faça solicitações ao EC2 Fleet para executar um bloco de capacidade que ainda não foi iniciado, você receberá um `Insufficient Capacity Error`.

Depois que a reserva de bloco de capacidade se tornar ativa, você poderá fazer chamadas à API da Frota do EC2 e provisionar as instâncias no bloco de capacidade segundo os parâmetros selecionados. As instâncias em execução no bloco de capacidade continuam em execução até que você as interrompa ou encerre manualmente, ou até que o Amazon EC2 encerre as instâncias quando a reserva do bloco de capacidade terminar.

Para obter mais informações sobre blocos de capacidade, consulte [Blocos de capacidade para ML](ec2-capacity-blocks.md).

**Considerações**
+ Somente solicitações do EC2 Fleet do tipo `instant` são compatíveis para executar instâncias em blocos de capacidade. Para obter mais informações, consulte [Configurar um EC2 Fleet do tipo instant](instant-fleet.md).
+ Não é possível ter vários blocos de capacidade na mesma solicitação do EC2 Fleet.
+ Não é possível usar `OnDemandTargetCapacity` ou `SpotTargetCapacity` e, ao mesmo tempo, definir o `capacity-block` como `DefaultTargetCapacity`.
+ Se o `DefaultTargetCapacityType` estiver definido como `capacity-block`, você não poderá fornecer `OnDemandOptions::CapacityReservationOptions`. Uma exceção ocorrerá.

**Para configurar um EC2 Fleet para executar instâncias em blocos de capacidade**

1. **Crie um modelo de execução.**

   No modelo de execução, faça o seguinte:
   + Para `InstanceMarketOptionsRequest`, defina `MarketType` como `capacity-block`.
   + Para direcionar a reserva do bloco de capacidade, para `CapacityReservationID`, especifique o ID da reserva do bloco de capacidade.

   Anote o nome e a versão do modelo de execução. Você usará essas informações na próxima etapa.

   Para obter mais informações sobre como criar um modelo de execução, consulte [Criar um modelo de execução do Amazon EC2](create-launch-template.md). 

1. **Configure o EC2 Fleet.**

   Crie um arquivo, `config.json`, com a configuração do EC2 Fleet a seguir. No exemplo a seguir, substitua os identificadores de recursos pelos seus identificadores de recursos. 

   Para obter mais informações sobre como configurar um EC2 Fleet, consulte [Criar uma Frota do EC2.](create-ec2-fleet.md).

   ```
   { 
       "LaunchTemplateConfigs": [
           {
               "LaunchTemplateSpecification": {
                   "LaunchTemplateName": "CBR-launch-template", 
                   "Version": "1"
               }, 
               "Overrides": [
                   {
                       "InstanceType": "p5.48xlarge", 
                       "AvailabilityZone": "us-east-1a"   
                   },
               ]
           }
       ], 
       "TargetCapacitySpecification": {
           "TotalTargetCapacity": 10, 
           "DefaultTargetCapacityType": "capacity-block"
       },
       "Type": "instant"
   }
   ```

1. **Execute a frota.**

   Use o comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) a seguir.

   ```
   aws ec2 create-fleet --cli-input-json file://config.json
   ```

   Para obter mais informações, consulte [Criar uma Frota do EC2.](create-ec2-fleet.md#create-ec2-fleet-procedure).

# Tutorial: configurar o EC2 Fleet para executar instâncias em reservas de capacidade interrompíveis
<a name="ec2-fleet-launch-instances-interruptible-cr-walkthrough"></a>

Este tutorial mostra todas as etapas que você deve seguir para que o EC2 Fleet execute instâncias sob demanda em reservas de capacidade interrompíveis.

As reservas de capacidade interrompíveis representam a capacidade ociosa emprestada a você pelos proprietários de reservas de capacidade sob demanda em sua organização da AWS. Essas reservas são adequadas para workloads interrompíveis porque o proprietário da capacidade pode reivindicar a capacidade a qualquer momento com um aviso de interrupção de 2 minutos, período após o qual o EC2 encerra as instâncias. Para obter mais informações sobre reservas de capacidade interrompíveis, consulte [Reservas de capacidade](interruptible-capacity-reservations.md).

A capacidade de destino da solicitação do EC2 Fleet deve ser menor ou igual à capacidade disponível na reserva de capacidade interrompível desejada. Se a solicitação de capacidade exceder a capacidade disponível de sua reserva de capacidade interrompível, o EC2 Fleet iniciará o máximo de instâncias possível e relatará as instâncias executadas na resposta da API.

As instâncias em execução em uma reserva de capacidade interrompível continuarão em execução até que você as interrompa ou encerre manualmente, ou até que o proprietário da capacidade reivindique a capacidade. Quando o proprietário da capacidade reivindica a capacidade, o Amazon EC2 envia uma notificação do Amazon EventBridge 2 minutos antes de encerrar as instâncias.

## Considerações
<a name="ec2-fleet-interruptible-cr-considerations"></a>
+ Somente solicitações do EC2 Fleet do tipo `instant` são compatíveis para executar instâncias em reservas de capacidade interrompíveis.
+ Não é possível usar `OnDemandTargetCapacity` ou `SpotTargetCapacity` e, ao mesmo tempo, definir `reserved-capacity` como `DefaultTargetCapacityType`.
+ Quando você especifica vários modelos de execução, cada um visando uma reserva de capacidade interrompível diferente, o EC2 Fleet provisiona instâncias em todas as reservas correspondentes.
+ Para reservas de capacidade interrompíveis, o EC2 Fleet não recorrerá à execução de instâncias sob demanda ou instâncias spot para atender ao restante da capacidade pretendida.

## Verificar permissões
<a name="ec2-fleet-interruptible-cr-verify-permissions"></a>

Antes de criar um EC2 Fleet, verifique se você tem um perfil do IAM com as permissões necessárias. Para obter mais informações, consulte [Pré-requisitos da Frota do EC2](ec2-fleet-prerequisites.md).

Para iniciar instâncias em uma reserva de capacidade interrompível, é necessário executar as seguintes etapas:

## Etapa 1: Criar um modelo de execução
<a name="ec2-fleet-interruptible-cr-step1"></a>

Use o comando [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html) para criar um modelo de execução que especifique a reserva de capacidade interrompível a ser usada. No modelo de execução, defina `MarketType` como `interruptible-capacity-reservation` e especifique o `CapacityReservationId` da sua reserva de capacidade interrompível.

Exemplo de configuração de modelo de execução:

```
{
    "LaunchTemplateName": "interruptible-cr-launch-template",
    "LaunchTemplateData": {
        "InstanceType": "m5.large",
        "ImageId": "ami-0abcdef1234567890",
        "CapacityReservationSpecification": {
            "CapacityReservationTarget": {
                "CapacityReservationId": "cr-0123456789abcdef0"
            }
        },
        "InstanceMarketOptions": {
            "MarketType": "interruptible-capacity-reservation"
        }
    }
}
```

Exemplo de saída

```
{
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-0123456789example",
        "LaunchTemplateName": "interruptible-cr-launch-template",
        "CreateTime": "2026-03-12T10:00:00.000Z",
        "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
    }
}
```

Para obter mais informações, consulte [Criar um modelo de execução do Amazon EC2](create-launch-template.md).

## Etapa 2: configurar o EC2 Fleet
<a name="ec2-fleet-interruptible-cr-step2"></a>

Crie um arquivo de configuração para o EC2 Fleet que especifique o modelo de execução e a capacidade de destino. A configuração a seguir usa o modelo de execução `interruptible-cr-launch-template` que você criou na Etapa 1.

É necessário especificar `ReservedCapacityOptions` com `ReservationType` definido para `interruptible-capacity-reservation` ao usar `reserved-capacity` como o `DefaultTargetCapacityType`.

Crie um arquivo chamado `config.json` com o seguinte conteúdo:

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "interruptible-cr-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "reserved-capacity"
    },
    "ReservedCapacityOptions": {
        "ReservationType": ["interruptible-capacity-reservation"]
    },
    "Type": "instant"
}
```

Principais parâmetros de configuração:


| Parameter | Descrição | 
| --- | --- | 
| DefaultTargetCapacityType | Defina como reserved-capacity para indicar que as instâncias devem ser executadas na capacidade reservada. | 
| ReservedCapacityOptions | Especifica o tipo de capacidade reservada. Para reservas de capacidade interrompíveis, defina ReservationType como ["interruptible-capacity-reservation"]. | 
| Type | Deve ser definida como . instant. Somente frotas instantâneas são aceitas para reservas de capacidade interrompíveis. | 

## Etapa 3: iniciar a frota e visualizar os resultados
<a name="ec2-fleet-interruptible-cr-step3"></a>

Use o comando [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) para criar a frota:

```
aws ec2 create-fleet \
    --cli-input-json file://config.json
```

Depois de criar a frota `instant` usando a configuração anterior, o EC2 Fleet executa 10 instâncias na reserva de capacidade interrompível para atender à capacidade de destino.

**nota**  
Se a frota não puder atender à capacidade total pretendida, a resposta incluirá as instâncias que foram executadas e quaisquer erros de capacidade não atendida.

Exemplo de saída

```
{
    "FleetId": "fleet-12345678-1234-1234-1234-123456789012",
    "Instances": [
        {
            "LaunchTemplateAndOverrides": {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateId": "lt-0123456789example",
                    "Version": "1"
                },
                "Overrides": {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            },
            "Lifecycle": "interruptible-capacity-reservation",
            "InstanceIds": [
                "i-0123456789example1",
                "i-0123456789example2",
                "i-0123456789example3",
                "i-0123456789example4",
                "i-0123456789example5",
                "i-0123456789example6",
                "i-0123456789example7",
                "i-0123456789example8",
                "i-0123456789example9",
                "i-0123456789example0"
            ],
            "InstanceType": "m5.large",
            "Platform": "Linux/UNIX"
        }
    ],
    "Errors": []
}
```

Para obter mais informações, consulte [Criar uma Frota do EC2.](create-ec2-fleet.md).

## Limpeza
<a name="ec2-fleet-interruptible-cr-cleanup"></a>

Para parar de incorrer em cobranças, encerre as instâncias quando elas não forem mais necessárias. Observe que o EC2 também encerra automaticamente as instâncias executadas em uma reserva de capacidade interrompível quando o proprietário da capacidade reivindica a capacidade.

## Recursos relacionados
<a name="ec2-fleet-interruptible-cr-related-resources"></a>
+ [Reservas de capacidade](interruptible-capacity-reservations.md)
+ [Reservar capacidade computacional com reservas de capacidade sob demanda do EC2](ec2-capacity-reservations.md)
+ [Trabalhar com uma frota do EC2](manage-ec2-fleet.md)
+ [Criar uma Frota do EC2.](create-ec2-fleet.md)
+ [Armazenar os parâmetros de execução de instâncias nos modelos de execução do Amazon EC2](ec2-launch-templates.md)