

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Executar compilações em frotas de capacidade reservada
<a name="fleets"></a>

CodeBuild oferece as seguintes frotas de computação:
+ On-demand frotas
+ Frotas de capacidade reservada

Com frotas sob demanda, CodeBuild fornece computação para suas construções. As máquinas são destruídas quando a construção termina. On-demand as frotas são totalmente gerenciadas e incluem recursos de escalonamento automático para lidar com picos de demanda.

**nota**  
On-demand As frotas não são compatíveis com macOS.

CodeBuild também oferece frotas de capacidade reservada que contêm instâncias desenvolvidas pelo Amazon EC2 que são mantidas pela. CodeBuild Com frotas de capacidade reservada, você configura um conjunto de instâncias dedicadas para seu ambiente de compilação. Essas máquinas permanecem ociosas, prontas para processar compilações ou testes imediatamente e reduzem a duração da compilação. Com frotas de capacidade reservada, suas máquinas estão sempre funcionando e continuarão a incorrer em custos enquanto forem provisionadas.

**Importante**  
Independentemente do tempo em que você executa uma instância, as frotas de capacidade reservada incorrem em uma cobrança inicial por instância, após a qual poderá haver custos associados adicionais. Para obter mais informações, consulte [https://aws.amazon.com/codebuild/pricing/](https://aws.amazon.com/codebuild/pricing/).

**Topics**
+ [Criar uma frota de capacidade reservada](#fleets.how-to)
+ [Práticas recomendadas](#fleets.best-practices)
+ [Posso compartilhar uma frota de capacidade reservada em vários CodeBuild projetos?](#fleets.share)
+ [Como funciona a computação baseada em atributos?](#fleets.attribute-compute)
+ [Posso especificar manualmente uma instância do Amazon EC2 para minha frota?](#fleets.manual-input-compute)
+ [Quais regiões são compatíveis com frotas de capacidade reservada?](#fleets.regions)
+ [Como configurar uma frota macOS de capacidade reservada?](#fleets.configure-macos)
+ [Como configurar uma imagem de máquina da Amazon (AMI) personalizada para uma frota com capacidade reservada?](#fleets.custom-ami)
+ [Limitações de frotas de capacidade reservada](#fleets.limitations)
+ [Propriedades da frota de capacidade reservada](fleets.reserved-capacity-fleets.md)
+ [Amostras de capacidade reservada com AWS CodeBuild](reserved-capacity-samples.md)

## Criar uma frota de capacidade reservada
<a name="fleets.how-to"></a>

Use as instruções a seguir para criar uma frota de capacidade reservada.

**Para criar uma frota de capacidade reservada**

1. Faça login no Console de gerenciamento da AWS e abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, escolha **Frotas de computação** e **Criar frota**.

1. No campo de texto **Nome da frota de computação**, insira um nome para a frota.

1. No menu suspenso **Sistema operacional**, escolha o sistema operacional.

1. No menu suspenso **Arquitetura**, escolha a arquitetura.

1. (Opcional) Selecione **Usar o modo de execução da instância: opcional** para execução direta em uma instância do Amazon EC2 em vez de em um contêiner do Docker. Depois, escolha uma **Versão principal** e uma **Versão secundária**.

1. (Opcional) Em **Configuração adicional**, faça o seguinte:
   + Selecione **Configurar VPC: opcional** para conectar a frota a uma VPC para acessar recursos privados durante o uso.
     + No menu suspenso **VPC**, selecione uma VPC que sua frota acessará. CodeBuild 
     + No menu suspenso **Sub-redes**, selecione as sub-redes que CodeBuild devem ser usadas para definir sua configuração de VPC.
     + No menu suspenso **Grupos de segurança**, selecione os grupos de segurança que CodeBuild devem ser usados para trabalhar com sua VPC.
     + No campo **Perfil de serviço de frota**, escolha um perfil de serviço existente.
**nota**  
Verifique se a função da frota tem as permissões necessárias. Para obter mais informações, consulte [Permitir que um usuário adicione uma política de permissão para um perfil de serviço de frota](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).
     + Se você escolheu o sistema operacional Amazon Linux, selecione **Definir configurações de proxy - opcional** para aplicar o controle de acesso à rede para as instâncias de capacidade reservada.
     + Em **Comportamento padrão**, escolha permitir ou negar tráfego de saída para todos os destinos por padrão.
     + Em **Regras de proxy**, escolha **Adicionar regra de proxy** para especificar domínios ou IPs de destino aos quais permitir ou negar o controle de acesso à rede.
   + Selecione **Configurar AMI personalizada: opcional** para usar uma imagem de máquina da Amazon (AMI) personalizada.
     + No menu suspenso **AMI**, selecione uma imagem de máquina da Amazon (AMI) para a frota.
     + No campo **Perfil de serviço de frota**, escolha um perfil de serviço existente.
**nota**  
Verifique se a função da frota tem as permissões necessárias. Para obter mais informações, consulte [Permitir que um usuário adicione uma política de permissão para um perfil de serviço de frota](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Em **Configuração de capacidade**, no **Modo de seleção de computação**, escolha uma destas opções:
   + Se você escolher **Seleção guiada**, faça o seguinte:
     + Em **Computação**, escolha o tipo de instância incluído nessa frota.
     + No campo de texto **Capacidade**, insira o número mínimo de instâncias na frota.
     + (Opcional) Em **Configuração adicional**, faça o seguinte:
       + Selecione **Configurar escalabilidade: opcional** para escalar automaticamente a frota com base nessa configuração. No menu suspenso **Modo de escalabilidade: opcional**, escolha o comportamento quando a demanda excede a capacidade da frota.
   + Se você escolher **Instância personalizada**, faça o seguinte:
     + No menu suspenso **Tipo de instância de computação**, selecione o tipo de instância incluído nessa frota.
     + No campo de texto **Tamanho adicional do volume do EBS: opcional**, insira o volume adicional ao espaço em disco de 64 GB fornecido.
     + No campo de texto **Capacidade**, insira o número mínimo de instâncias na frota.
     + (Opcional) Em **Configuração adicional**, faça o seguinte:
       + Selecione **Configurar escalabilidade: opcional** para escalar automaticamente a frota com base nessa configuração. No menu suspenso **Modo de escalabilidade: opcional**, escolha o comportamento quando a demanda excede a capacidade da frota.

1. Escolha **Criar frota de computação**.

1. Depois que a frota computacional for criada, crie um novo CodeBuild projeto ou edite um existente. Em **Ambiente**, escolha **Capacidade reservada** em **Modelo de provisionamento** e escolha a frota especificada em **Nome da frota**.

## Práticas recomendadas
<a name="fleets.best-practices"></a>

Ao usar frotas de capacidade reservada, recomendamos que você siga estas práticas recomendadas.
+ Recomendamos usar o modo de cache de origem para ajudar a melhorar o desempenho da compilação armazenando a fonte em cache.
+ Recomendamos usar o cache de camadas do Docker para ajudar a melhorar o desempenho da compilação armazenando em cache as camadas existentes do Docker.

## Posso compartilhar uma frota de capacidade reservada em vários CodeBuild projetos?
<a name="fleets.share"></a>

Sim, você pode maximizar a utilização da capacidade de uma frota usando-a em vários projetos.

**Importante**  
Ao usar o recurso de capacidade reservada, os dados armazenados em cache nas instâncias da frota, incluindo arquivos de origem, camadas do Docker e diretórios em cache especificados no buildspec, podem ser acessados por outros projetos na mesma conta. Isso ocorre por design e permite que projetos dentro da mesma conta compartilhem instâncias de frota.

## Como funciona a computação baseada em atributos?
<a name="fleets.attribute-compute"></a>

Se escolher `ATTRIBUTE_BASED_COMPUTE` como `computeType` da frota, você poderá especificar os atributos em um novo campo chamado `computeConfiguration`. Esses atributos incluem vCPUs, memória, espaço em disco e o `machineType`. Esse `machineType` é `GENERAL` ou `NVME`. Depois de especificar um ou alguns dos atributos disponíveis, CodeBuild escolherá um tipo de computação entre os tipos de instância compatíveis disponíveis como finalizado. `computeConfiguration`

**nota**  
CodeBuild escolherá a instância mais barata que atenda a todos os requisitos de entrada. A memória, as vCPUs e o espaço em disco das instâncias escolhidas serão todos maiores ou iguais aos requisitos informados. Você pode verificar a `computeConfiguration` resolvida na frota criada ou atualizada.

Se você inserir um `computeConfiguration` que não é possível satisfazer CodeBuild, você receberá uma exceção de validação. Observe também que o comportamento de estouro de frota sob demanda será substituído pelo comportamento da fila se a `computeConfiguration` não estiver disponível sob demanda.

## Posso especificar manualmente uma instância do Amazon EC2 para minha frota?
<a name="fleets.manual-input-compute"></a>

Sim, você pode inserir diretamente a instância desejada do Amazon EC2 no console selecionando **Instância personalizada** ou configurando o parâmetro da API, `InstanceType`. Esse campo é usado nas seguintes APIs: CreateFleet UpdateFleet, CreateProject, UpdateProject e. StartBuild Para obter mais informações, consulte [Compute instance type](fleets.reserved-capacity-fleets.md#compute).

## Quais regiões são compatíveis com frotas de capacidade reservada?
<a name="fleets.regions"></a>

Capacidade reservada As frotas Amazon Linux e Windows são suportadas no seguinte Regiões da AWS: Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon), Ásia-Pacífico (Mumbai), Ásia-Pacífico (Cingapura), Ásia-Pacífico (Sydney), Ásia-Pacífico (Tóquio), Europa (Frankfurt), Europa (Irlanda) e América do Sul (São Paulo). Para obter mais informações sobre Regiões da AWS onde CodeBuild está disponível, consulte [AWS Serviços por região](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

As frotas de macOS Medium com capacidade reservada são suportadas no seguinte Regiões da AWS: Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon), Ásia-Pacífico (Sydney) e Europa (Frankfurt). Capacidade reservada macOS Grandes frotas são compatíveis com o seguinte Regiões da AWS: Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) e Ásia-Pacífico (Sydney).

## Como configurar uma frota macOS de capacidade reservada?
<a name="fleets.configure-macos"></a>

**Para configurar uma frota macOS de capacidade reservada**

1. Faça login no Console de gerenciamento da AWS e abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, escolha **Frotas de computação** e **Criar frota**.

1. No campo de texto **Nome da frota de computação**, insira um nome para a frota.

1. No menu suspenso **Sistema operacional**, escolha **macOS**.

1. No campo **Computação**, escolha um dos seguintes tipos de máquina de computação: **Apple M2, 24 GB de memória, 8 vCPUs** ou **Apple M2, 32 GB de memória, 12 vCPUs**.

1. No campo de texto **Capacidade**, insira o número mínimo de instâncias na frota.

1. (Opcional) Para usar uma imagem personalizada para a frota, consulte [Como configurar uma imagem de máquina da Amazon (AMI) personalizada para uma frota com capacidade reservada?](#fleets.custom-ami) para garantir que a imagem de máquina da Amazon (AMI) tenha os pré-requisitos necessários.

1. (Opcional) Para configurar uma VPC com a frota, em **Configuração adicional**, faça o seguinte:
   + No menu suspenso **VPC - opcional**, selecione uma VPC que sua frota acessará. CodeBuild 
   + No menu suspenso **Sub-redes**, selecione as sub-redes que CodeBuild devem ser usadas para definir sua configuração de VPC.
   + No menu suspenso **Grupos de segurança**, selecione os grupos de segurança que CodeBuild devem ser usados para trabalhar com sua VPC.
   + No campo **Perfil de serviço de frota**, escolha um perfil de serviço existente.
**nota**  
Verifique se a função da frota tem as permissões necessárias. Para obter mais informações, consulte [Permitir que um usuário adicione uma política de permissão para um perfil de serviço de frota](auth-and-access-control-iam-identity-based-access-control.md#customer-managed-policies-example-permission-policy-fleet-service-role).

1. Escolha **Criar frota de computação** e aguarde a inicialização da instância da frota. Uma vez lançada, a capacidade será`{{n}}/{{n}}`, onde {{n}} está a capacidade fornecida.

1. Depois que a frota de computação for lançada, crie um novo CodeBuild projeto ou edite um existente. Em **Ambiente**, escolha **Capacidade reservada** em **Modelo de provisionamento** e escolha a frota especificada em **Nome da frota**.

## Como configurar uma imagem de máquina da Amazon (AMI) personalizada para uma frota com capacidade reservada?
<a name="fleets.custom-ami"></a>

**Como configurar uma imagem de máquina da Amazon (AMI) personalizada para uma frota com capacidade reservada**

1. Faça login no Console de gerenciamento da AWS e abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. No painel de navegação, escolha **Frotas de computação** e **Criar frota**.

1. No campo de texto **Nome da frota de computação**, insira um nome para a frota.

1. Escolha **Imagem personalizada** para a frota e garanta que a imagem de máquina da Amazon (AMI) tenha os seguintes pré-requisitos:
   + Se o tipo de ambiente for `MAC_ARM`, a **Arquitetura** da AMI deverá ser 64 bits `Mac-Arm`.
   + Se o tipo de ambiente for `LINUX_EC2`, a **Arquitetura** da AMI deverá ser 64 bits `x86`.
   + Se o tipo de ambiente for `ARM_EC2`, a **Arquitetura** da AMI deverá ser 64 bits `Arm`.
   + Se o tipo de ambiente for `WINDOWS_EC2`, a **Arquitetura** da AMI deverá ser 64 bits `x86`.
   + A AMI permite o **ARN da organização** de CodeBuild serviços. Para obter uma lista dos ARNs da organização, consulte [Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami).
   + Se a AMI for criptografada com uma AWS KMS chave, a AWS KMS chave também deverá permitir a **ID da organização** do CodeBuild serviço. Para obter uma lista de IDs da organização, consulte [Amazon Machine Images (AMI)](fleets.reserved-capacity-fleets.md#ami). Para obter mais informações sobre AWS KMS chaves, consulte [Permitir que organizações e OUs usem uma chave KMS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/share-amis-with-organizations-and-OUs.html#allow-org-ou-to-use-key) no Guia do usuário do *Amazon EC2*. Para dar permissão à CodeBuild organização para usar uma chave KMS, adicione a seguinte declaração à política de chaves:

     ```
     {
         "Sid": "Allow access for organization root",
         "Effect": "Allow",
         "Principal": "*",
         "Action": [
             "kms:Describe*",
             "kms:List*",
             "kms:Get*",
             "kms:Encrypt",
             "kms:Decrypt",
             "kms:ReEncrypt*",
             "kms:GenerateDataKey*",
             "kms:CreateGrant"
         ],
         "Resource": "*",
         "Condition": {
             "StringEquals": {
                 "aws:PrincipalOrgID": "o-123example"
             }
         }
     }
     ```
   + No campo **Perfil de serviço de frota**, conceda as seguintes permissões do Amazon EC2:

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

****  

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

------

## Limitações de frotas de capacidade reservada
<a name="fleets.limitations"></a>

Há alguns casos de uso que as frotas de capacidade reservada não permitem e, se afetarem você, use as frotas sob demanda:
+ As frotas de capacidade reservada não são compatíveis com métricas de utilização de compilação.
+ As frotas macOS de capacidade reservada não são compatíveis com a sessão de depuração.

Consulte mais informações sobre cotas e limites em [Frotas de computação](limits.md#fleet-limits).