Executar compilações em frotas de capacidade reservada - AWS CodeBuild

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

CodeBuild oferece as seguintes frotas de computação:

  • Frotas sob demanda

  • 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 compilação termina. As frotas sob demanda são totalmente gerenciadas e incluem recursos de escalabilidade automática para lidar com picos de demanda.

nota

As frotas sob demanda não são compatíveis com macOS.

CodeBuild também oferece frotas de capacidade reservada que contêm instâncias desenvolvidas pela 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/.

Criar uma frota de capacidade reservada

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.

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

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

  4. No menu suspenso Sistema operacional, escolha o sistema operacional.

  5. No menu suspenso Arquitetura, escolha a arquitetura.

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

  7. (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.

      • 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 de destino ou IPs para permitir ou negar o controle de acesso à rede.

    • Selecione Configurar AMI personalizada: opcional para usar uma imagem de máquina da Amazon (AMI) personalizada.

  8. 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.

  9. Escolha Criar frota de computação.

  10. 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

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?

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?

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 machineType o. 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óriaCPUs, v e espaço em disco das instâncias escolhidas serão todos maiores ou iguais aos requisitos de entrada. Você pode verificar a computeConfiguration resolvida na frota criada ou atualizada.

Se você inserir uma informação computeConfiguration que não seja possível de 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 EC2 instância da Amazon para minha frota?

Sim, você pode inserir diretamente a EC2 instância da Amazon desejada no console selecionando Instância personalizada ou configurando o parâmetro da API,InstanceType. Esse campo é usado no seguinte APIs: CreateFleet UpdateFleet CreateProject,, UpdateProject StartBuild e. Para obter mais informações, consulte Compute instance type.

Quais regiões são compatíveis com frotas de capacidade reservada?

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.

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?

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.

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

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

  4. No menu suspenso Sistema operacional, escolha macOS.

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

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

  7. (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? para garantir que a imagem de máquina da Amazon (AMI) tenha os pré-requisitos necessários.

  8. (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.

  9. 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.

  10. 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?

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.

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

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

  4. 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 de organizações ARNs, consulteAmazon Machine Images (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 organizações IDs, consulteAmazon Machine Images (AMI). Para obter mais informações sobre AWS KMS chaves, consulte Permitir organizações e OUs usar uma chave KMS no Guia do EC2 usuário da Amazon. 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 Função de serviço da frota, conceda as seguintes EC2 permissões da Amazon:

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

Limitações de frotas de capacidade reservada

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.