Modos e tipos de computação do ambiente de compilação
No CodeBuild, é possível especificar a imagem do ambiente de computação e runtime que o CodeBuild usa para executar as compilações. Computação refere-se ao mecanismo de computação (CPU, memória e sistema operacional) gerenciado e mantido pelo CodeBuild. Uma imagem de ambiente de runtime é uma imagem de contêiner executada na plataforma de computação escolhida e inclui ferramentas extras de que sua compilação pode precisar, como a AWS CLI.
Tópicos
Sobre a computação
O CodeBuild oferece modos de computação AWS Lambda e do EC2. O EC2 oferece flexibilidade otimizada durante a compilação e o AWS Lambda oferece velocidades de inicialização otimizadas. O AWS Lambda é compatível com compilações mais rápidas devido a uma menor latência de inicialização. O AWS Lambda também é escalado automaticamente, para que as compilações não fiquem esperando na fila para serem executadas. Para obter mais informações, consulte Execute compilações na computação do AWS Lambda.
Com o modo de computação do EC2, é possível executar as compilações com frotas sob demanda ou com capacidade reservada. Para frotas sob demanda, você pode selecionar tipos de computação predefinidos, como BUILD_GENERAL1_SMALL ou BUILD_GENERAL1_LARGE. Para obter mais informações, consulte Sobre os tipos de ambiente sob demanda. Para frotas com capacidade reservada, você pode selecionar as configurações de computação, incluindo vCPU, memória e espaço em disco. Depois de especificar as configurações, o CodeBuild escolhe um tipo de computação compatível que corresponda aos seus requisitos. Para obter mais informações, consulte Sobre os tipos de ambiente de capacidade reservada.
Sobre os tipos de ambiente de capacidade reservada
O AWS CodeBuild fornece tipos de ambiente Linux x86, Arm, GPU, Windows e macOS para frotas com capacidade reservada. A tabela a seguir mostra o tipo de máquina disponível, a memória, as vCPUs e o espaço em disco classificados por região:
Para escolher um tipo de computação:
-
No console do CodeBuild, na página Configuração da frota de computação, escolha uma das opções entre vCPUs, Memória e Disco. Para obter mais informações, consulte Criar uma frota de capacidade reservada.
-
Para a AWS CLI, execute o comando
create-fleetouupdate-fleet, especificando o valor decomputeTypeparaATTRIBUTE_BASED_COMPUTE. Consulte mais informações em create-fleet ou update-fleet. -
Para os AWS SDKs, chame o equivalente da operação
CreateFleetouUpdateFleetpara sua linguagem de programação, especificando o equivalente do valor decomputeTypecomoATTRIBUTE_BASED_COMPUTE. Para obter mais informações, consulte a AWSReferência de SDKs e ferramentas da .
nota
Para a AWS CLI e os AWS SDKs, é possível usar entradas computeType como BUILD_GENERAL1_SMALL, para escolher os tipos de computação em vez de ATTRIBUTE_BASED_COMPUTE. Para obter mais informações, consulte Sobre os tipos de ambiente sob demanda.
Famílias de instâncias com suporte
O AWS CodeBuild é compatível com as seguintes instâncias para frotas de capacidade reservada:
-
Uso geral: M5 | M5a | M5ad | M5d | M5dn | M5n | M5zn | M6a | M6g | M6gd | M6i | M6id | M6idn | M6in | M7a | M7g | M7gd | M7i | M7i-flex | M8g | T3 | T3a | T4g
-
Otimizadas para computação: C5 | C5a | C5ad | C5d | C5n | C6a | C6g | C6gd | C6gn | C6i | C6id | C6in | C7a | C7g | C7gd | C7gn | C7i | C7i-flex | C8g
-
Otimizadas para memória: R5 | R5a | R5ad | R5b | R5d | R5dn | R5n | R6a | R6g | R6gd | R6i | R6idn | R6in | R6id | R7a | R7g | R7gd | R7i | R7iz | R8g | U-3tb1 | U-6tb1 | U-9tb1 | U-12tb1 | U-18tb1 | U-24tb1 | U7i-6tb | U7i-8tb | U7i-12tb | U7in-16tb | U7in-24tb | U7in-32tb | X1 | X1e | X2gd | X2idn | X2iedn | X2iezn | X8g | z1d
-
Otimizadas para armazenamento: D3 | D3en | I3 | I3en | I4g | I4i | I7ie | I8g | Im4gn | Is4gen
-
Com computação acelerada: DL1 | DL2q | F1 | F2 | G4ad | G4dn | G5 | G5g | G6 | G6e | Gr6 | Inf1 | Inf2 | P3 | P3dn | P4d | P5 | P5e | P5en | Trn1 | Trn1n | Trn2 | VT1
-
Com computação de alta performance: Hpc6a | Hpc6id | Hpc7a | Hpc7g
-
Geração anterior: A1
Como criar uma frota com capacidade reservada com um tipo de instância específico:
-
No console do CodeBuild, na página Configuração da frota de computação, acesse a seção Configuração de capacidade. No Modo de seleção de computação, selecione Entrada manual e, em Tipo de instância de computação, escolha um dos tipos de instância no menu suspenso. Para obter mais informações, consulte Criar uma frota de capacidade reservada.
-
Para a AWS CLI, execute o comando
create-fleetouupdate-fleet, especificando o valor decomputeTypecomoCUSTOM_INSTANCE_TYPEe oinstanceTypeComputeConfigurationcomo o tipo de instância especificado. Consulte mais informações em create-fleet ou update-fleet. -
Para os AWS SDKs, chame o equivalente da operação
CreateFleetouUpdateFleet, de acordo com a linguagem de programação usada, especificando o valor decomputeTypecomoCUSTOM_INSTANCE_TYPEe ComputeConfigurationinstanceTypecomo o tipo de instância especificado. Para obter mais informações, consulte a AWSReferência de SDKs e ferramentas da .
Sobre os tipos de ambiente sob demanda
O AWS CodeBuild oferece ambientes de compilação com a seguinte memória disponível, vCPUs e espaço em disco para o modo de computação do EC2:
| Tipo de computação | Valor computeType do ambiente | Valor de tipo do ambiente | Memória | vCPUs | Espaço em disco |
|---|---|---|---|---|---|
| ARM Small ¹ | BUILD_GENERAL1_SMALL |
|
4 GiB | 2 | 64 GB |
| ARM Medium ¹ | BUILD_GENERAL1_MEDIUM |
|
8 GiB | 4 | 128 GB |
| ARM Large ¹ | BUILD_GENERAL1_LARGE |
|
16 GiB | 8 | 128 GB |
| ARM XLarge ¹ | BUILD_GENERAL1_XLARGE |
ARM_CONTAINER |
64 GiB | 32 | 256 GB |
| ARM 2XLarge ¹ | BUILD_GENERAL1_2XLARGE |
ARM_CONTAINER |
96 GiB | 48 | 824 GB |
| Linux Small ¹ | BUILD_GENERAL1_SMALL |
|
4 GiB | 2 | 64 GB |
| Linux Medium ¹ | BUILD_GENERAL1_MEDIUM |
|
8 GiB | 4 | 128 GB |
| Linux Large ¹ | BUILD_GENERAL1_LARGE |
|
16 GiB | 8 | 128 GB |
| Linux XLarge ¹ | BUILD_GENERAL1_XLARGE |
LINUX_CONTAINER |
72 GiB | 36 | 256 GB |
| Linux 2XLarge | BUILD_GENERAL1_2XLARGE |
LINUX_CONTAINER |
144 GiB | 72 | 824 GB (SSD) |
| Linux GPU Small | BUILD_GENERAL1_SMALL |
LINUX_GPU_CONTAINER |
16 GiB | 4 | 235 GB (SSD) |
| Linux GPU Large | BUILD_GENERAL1_LARGE |
LINUX_GPU_CONTAINER |
255 GiB | 32 | 50 GB |
| Windows Medium ¹ | BUILD_GENERAL1_MEDIUM |
|
8 GiB | 4 | 128 GB |
| Windows Large ¹ | BUILD_GENERAL1_LARGE |
|
16 GiB | 8 | 128 GB |
| Windows XLarge ¹ | BUILD_GENERAL1_XLARGE |
|
72 GiB | 36 | 256 GB |
| Windows 2XLarge ¹ | BUILD_GENERAL1_2XLARGE |
|
144 GiB | 72 | 824 GB |
¹ A versão mais recente desse tipo de imagem é armazenada em cache. Se você especificar uma versão mais específica, o CodeBuild provisionará essa versão em vez da versão armazenada em cache. Isso pode resultar em tempos de compilação mais longos. Por exemplo, para se beneficiar do cache, especifique aws/codebuild/amazonlinux-x86_64-standard:5.0 em vez de uma versão mais granular, como aws/codebuild/amazonlinux-x86_64-standard:5.0-1.0.0.
O AWS CodeBuild oferece ambientes de compilação com a seguinte memória disponível e espaço em disco para o modo de computação do AWS Lambda:
| Tipo de computação | Valor computeType do ambiente | Valor de tipo do ambiente | Memória | Espaço em disco |
|---|---|---|---|---|
| ARM Lambda de 1 GB | BUILD_LAMBDA_1GB |
ARM_LAMBDA_CONTAINER |
15 GiB | 10 GB |
| ARM Lambda de 2 GB | BUILD_LAMBDA_2GB |
ARM_LAMBDA_CONTAINER |
2 GiB | 10 GB |
| ARM Lambda de 4 GB | BUILD_LAMBDA_4GB |
ARM_LAMBDA_CONTAINER |
4 GiB | 10 GB |
| ARM Lambda de 8 GB | BUILD_LAMBDA_8GB |
ARM_LAMBDA_CONTAINER |
8 GiB | 10 GB |
| ARM Lambda de 10 GB | BUILD_LAMBDA_10GB |
ARM_LAMBDA_CONTAINER |
10 GiB | 10 GB |
| Linux Lambda de 1 GB | BUILD_LAMBDA_1GB |
LINUX_LAMBDA_CONTAINER |
15 GiB | 10 GB |
| Linux Lambda de 2 GB | BUILD_LAMBDA_2GB |
LINUX_LAMBDA_CONTAINER |
2 GiB | 10 GB |
| Linux Lambda de 4 GB | BUILD_LAMBDA_4GB |
LINUX_LAMBDA_CONTAINER |
4 GiB | 10 GB |
| Linux Lambda de 8 GB | BUILD_LAMBDA_8GB |
LINUX_LAMBDA_CONTAINER |
8 GiB | 10 GB |
| Linux Lambda de 10 GB | BUILD_LAMBDA_10GB |
LINUX_LAMBDA_CONTAINER |
10 GiB | 10 GB |
Ao usar outros tipos de ambiente, é recomendável usar uma imagem em cache para reduzir os tempos de compilação.
O espaço em disco listado para cada ambiente de compilação está disponível somente no diretório especificado pela variável de ambiente CODEBUILD_SRC_DIR.
Para escolher um tipo de computação:
-
No console do CodeBuild, no assistente Criar projeto de compilação ou na página Editar projeto de compilação, em Ambiente, expanda Configuração adicional e selecione uma das opções em Tipo de computação. Para ter mais informações, consulte Criar um projeto de compilação (console) ou Alterar configurações de um projeto de compilação (console).
-
Para a AWS CLI, execute o comando
create-projectouupdate-project, especificando o valorcomputeTypedo objetoenvironment. Para ter mais informações, consulte Crie um projeto de compilação (AWS CLI) ou Alterar configurações de um projeto de compilação (AWS CLI). -
Para os SDKs da AWS, chame o equivalente da operação
CreateProjectouUpdateProjectpara sua linguagem de programação, especificando o equivalente do valorcomputeTypedo objetoenvironment. Para obter mais informações, consulte a AWSReferência de SDKs e ferramentas da .
Alguns tipos de ambiente e computação têm limitações de disponibilidade de região:
-
O tipo de computação Linux GPU Small (
LINUX_GPU_CONTAINER) só está disponível nas seguintes regiões:-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
-
O tipo de computação Linux GPU Large (
LINUX_GPU_CONTAINER) só está disponível nas seguintes regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
-
O modo de computação
BUILD_GENERAL1_2XLARGEsó está disponível nas seguintes regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (Norte da Virgínia)
-
Oeste dos EUA (Norte da Califórnia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Hyderabad)
-
Ásia-Pacífico (Hong Kong)
-
Ásia-Pacífico (Jacarta)
-
Ásia-Pacífico (Melbourne)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Paris)
-
Europa (Espanha)
-
Europa (Estocolmo)
-
Europa (Zurique)
-
Israel (Tel Aviv)
-
Oriente Médio (Bahrein)
-
Oriente Médio (Emirados Árabes Unidos)
-
América do Sul (São Paulo)
-
-
O modo de ambiente
ARM_CONTAINERsó está disponível nas seguintes regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (Norte da Virgínia)
-
Oeste dos EUA (Norte da Califórnia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Hong Kong)
-
Ásia-Pacífico (Jacarta)
-
Ásia-Pacífico (Hyderabad)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Osaka)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Milão)
-
Europe (Paris)
-
Europa (Espanha)
-
Europa (Estocolmo)
-
Israel (Tel Aviv)
-
Oriente Médio (Bahrein)
-
Oriente Médio (Emirados Árabes Unidos)
-
América do Sul (São Paulo)
-
-
O modo de ambiente
WINDOWS_SERVER_2022_CONTAINERsó está disponível nas seguintes regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
América do Sul (São Paulo)
-
-
O tipo de ambiente
LINUX_EC2(BUILD_GENERAL1_SMALL,BUILD_GENERAL1_MEDIUM,BUILD_GENERAL1_LARGE) só está disponível nestas regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (Norte da Virgínia)
-
Oeste dos EUA (Norte da Califórnia)
-
Oeste dos EUA (Oregon)
-
África (Cidade do Cabo)
-
Ásia-Pacífico (Hong Kong)
-
Ásia-Pacífico (Jacarta)
-
Ásia-Pacífico (Melbourne)
-
Europa (Zurique)
-
Ásia-Pacífico (Hyderabad)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Osaka)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Milão)
-
Europe (Paris)
-
Europa (Espanha)
-
Europa (Estocolmo)
-
Israel (Tel Aviv)
-
Oriente Médio (Bahrein)
-
Oriente Médio (Emirados Árabes Unidos)
-
América do Sul (São Paulo)
-
AWS GovCloud (Oeste dos EUA)
-
AWS GovCloud (Leste dos EUA)
-
-
O tipo de ambiente
ARM_EC2(BUILD_GENERAL1_SMALL,BUILD_GENERAL1_MEDIUM,BUILD_GENERAL1_LARGE) só está disponível nestas regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (Norte da Virgínia)
-
Oeste dos EUA (Norte da Califórnia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Hong Kong)
-
Ásia-Pacífico (Jacarta)
-
Europa (Zurique)
-
Ásia-Pacífico (Hyderabad)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Osaka)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Milão)
-
Europe (Paris)
-
Europa (Espanha)
-
Europa (Estocolmo)
-
Israel (Tel Aviv)
-
Middle East (Bahrain)
-
South America (São Paulo)
-
AWS GovCloud (Oeste dos EUA)
-
AWS GovCloud (Leste dos EUA)
-
-
O tipo de ambiente
WINDOWS_EC2(BUILD_GENERAL1_MEDIUM,BUILD_GENERAL1_LARGE) só está disponível nestas regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
América do Sul (São Paulo)
-
-
O modo de computação AWS Lambda (
ARM_LAMBDA_CONTAINEReLINUX_LAMBDA_CONTAINER) só está disponível nas seguintes regiões:-
Leste dos EUA (Norte da Virgínia)
-
Leste dos EUA (Ohio)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
América do Sul (São Paulo)
-
-
O modo de computação
MAC_ARMsó está disponível nas seguintes regiões:-
Leste dos EUA (Norte da Virgínia)
-
Leste dos EUA (Ohio)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Sydney)
-
Europa (Frankfurt)
-
Para o tipo de computação BUILD_GENERAL1_2XLARGE, há suporte para imagens de Docker de até 100 GB descompactadas.
nota
Para imagens de ambiente de compilação personalizadas, o CodeBuild é compatível com imagens do Docker de até 50 GB descompactadas em Linux e Windows, independentemente do tipo de computação. Para verificar o tamanho da imagem da compilação, use o Docker para executar o comando docker images
.REPOSITORY:TAG
É possível usar o Amazon EFS para acessar mais espaço no contêiner de compilação. Para obter mais informações, consulte Exemplo do Amazon Elastic File System para o AWS CodeBuild. Se você deseja manipular espaço em disco do contêiner durante uma compilação, a compilação deverá ser executada no modo privilegiado.
nota
Por padrão, o daemon do Docker está habilitado para compilações não VPC. Se você quiser usar contêineres do Docker para compilações da VPC, consulte Privilégio de tempo de execução e funcionalidades do Linux