Trabajando con capacidad reservada en AWS CodeBuild - AWS CodeBuild

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajando con capacidad reservada en AWS CodeBuild

CodeBuild ofrece las siguientes flotas informáticas:

  • Flotas bajo demanda

  • Flotas de capacidad reservada

Con flotas bajo demanda, CodeBuild proporciona procesamiento para sus compilaciones. Las máquinas se destruyen cuando finaliza la compilación. Las flotas bajo demanda están completamente administradas e incluyen capacidades de escalado automático para gestionar los picos de demanda.

nota

Las flotas bajo demanda no son compatibles con Windows Server 2022.

CodeBuild también ofrece flotas de capacidad reservada que contienen instancias impulsadas por Amazon EC2 que son mantenidas por. CodeBuild Con las flotas de capacidad reservada, configura un conjunto de instancias dedicadas para su entorno de compilación. Estas máquinas permanecen inactivas, listas para procesar compilaciones o pruebas de forma inmediata y reducen la duración de las compilaciones. Con flotas de capacidad reservada, sus máquinas estarán siempre en funcionamiento y seguirán incurriendo en costos mientras estén aprovisionadas.

importante

Independientemente del tiempo durante el que ejecute una instancia, las flotas de capacidad reservada incurren en un cargo inicial por instancia, después del cual puede haber costos adicionales asociados. Para obtener más información, consulte https://aws.amazon.com/codebuild/pricing/.

¿Cómo comienzo a utilizar las flotas de capacidad reservada?

Para crear una flota de capacidad reservada
  1. Inicie sesión en la AWS CodeBuild consola AWS Management Console y ábrala en https://console.aws.amazon.com/codesuite/codebuild/home.

  2. En el panel de navegación, elija Flotas de computación y, a continuación, Crear flota de computación.

  3. En el campo de texto Nombre de la flota de computación, introduzca el nombre de su flota.

  4. En el menú desplegable Sistema operativo, elija el sistema operativo.

  5. En el menú desplegable Arquitectura, elija la arquitectura.

  6. En el menú desplegable Computación, elija el tipo de máquina de computación para su máquina.

  7. En el campo de texto Capacidad, introduzca el número mínimo de instancias de la flota.

  8. En el campo Comportamiento de desbordamiento, selecciona el comportamiento cuando la demanda supere la capacidad de la flota. Para obtener más información sobre estas opciones, consulte Propiedades de flota con capacidad reservada.

  9. Elija Crear flota de computación.

  10. Una vez creada la flota de procesamiento, cree un CodeBuild proyecto nuevo o edite uno existente. En Entorno, elija Capacidad reservada en el Modelo de aprovisionamiento y, a continuación, elija la flota especificada en Nombre de flota.

Prácticas recomendadas

Cuando utilice flotas de capacidad reservada, recomendamos que siga estas prácticas recomendadas.

  • Recomendamos utilizar el modo de caché de origen para ayudar a mejorar el rendimiento de la compilación mediante el almacenamiento en caché del origen.

  • Recomendamos utilizar el almacenamiento en caché de capas de Docker para mejorar el rendimiento de la compilación mediante el almacenamiento en caché de las capas de Docker existentes.

¿Puedo compartir una flota de capacidad reservada en varios CodeBuild proyectos?

Sí, puede maximizar la utilización de la capacidad de una flota utilizándola en varios proyectos.

¿Qué regiones admiten flotas con capacidad reservada?

Se admiten flotas con capacidad reservada en las siguientes regiones Regiones de AWS: EE.UU. Este (Norte de Virginia), EE.UU. Este (Ohio), EE.UU. Oeste (Oregón), Asia Pacífico (Bombay), Asia Pacífico (Singapur), Asia Pacífico (Sídney), Asia Pacífico (Tokio), Europa (Fráncfort), Europa (Irlanda) y Sudamérica (São Paulo). Para obtener más información sobre Regiones de AWS dónde CodeBuild está disponible, consulte AWS Servicios por región.

Propiedades de flota con capacidad reservada

Una flota de capacidad reservada contiene las siguientes propiedades:

Sistema operativo

El sistema operativo. A continuación, se muestran los sistemas operativos disponibles:

  • Amazon Linux

  • Windows Server 2019

  • Windows Server 2022

Arquitectura

Arquitectura del procesador. Están disponibles las siguientes arquitecturas:

  • x86_64

  • Arm64

Cálculo

El tipo de máquina de computación de cada instancia. Dispone de los siguientes tipos de máquina:

Tipo de computación Valor de computeType del entorno Valor de tipo del entorno Memoria vCPU Espacio en disco
ARM Small BUILD_GENERAL1_SMALL ARM_CONTAINER 4 GB 2 50 GB
ARM Large BUILD_GENERAL1_LARGE ARM_CONTAINER 16 GB 8 50 GB
Linux Small ¹ BUILD_GENERAL1_SMALL LINUX_CONTAINER 3 GB 2 64 GB
Linux Medium ¹ BUILD_GENERAL1_MEDIUM LINUX_CONTAINER 7 GB 4 128 GB
Linux Large ¹ BUILD_GENERAL1_LARGE LINUX_CONTAINER 15 GB 8 128 GB
Linux XLarge BUILD_GENERAL1_XLARGE LINUX_CONTAINER 70 GB 36 256 GB
Linux 2XLarge BUILD_GENERAL1_2XLARGE LINUX_CONTAINER 145 GB 72 824 GB (SSD)
Linux GPU Small BUILD_GENERAL1_SMALL LINUX_GPU_CONTAINER 16 GB 4 220 GB
Linux GPU Large BUILD_GENERAL1_LARGE LINUX_GPU_CONTAINER 255 GB 32 50 GB
Windows Medium BUILD_GENERAL1_MEDIUM WINDOWS_SERVER_2019_CONTAINER 7 GB 4 128 GB
Windows Medium BUILD_GENERAL1_MEDIUM WINDOWS_SERVER_2022_CONTAINER 7 GB 4 128 GB
Windows Large BUILD_GENERAL1_LARGE WINDOWS_SERVER_2019_CONTAINER 15 GB 8 128 GB
Windows Large BUILD_GENERAL1_LARGE WINDOWS_SERVER_2022_CONTAINER 15 GB 8 128 GB
Capacidad

El número inicial de máquinas asignadas a la flota, que define el número de compilaciones que pueden funcionar en paralelo.

Comportamiento de desbordamiento

Define el comportamiento cuando el número de compilaciones supera la capacidad de la flota.

Bajo demanda

Las compilaciones de Overflow se ejecutan bajo CodeBuild demanda.

importante

Si decide configurar su comportamiento de desbordamiento como bajo demanda, tenga en cuenta que las compilaciones de desbordamiento se facturarán por separado, de forma similar a Amazon EC2 bajo demanda. Para obtener más información, consulte https://aws.amazon.com/codebuild/pricing/.

Cola

Las ejecuciones de compilaciones se colocan en una cola hasta que haya una máquina disponible. Esto limita los costos adicionales, ya que no se asignan máquinas adicionales.

Muestras de capacidad reservadas con AWS CodeBuild

Estos ejemplos se pueden utilizar para experimentar con flotas de capacidad reservada. CodeBuild

Ejemplo de almacenamiento en caché con capacidad reservada

Una caché puede almacenar fragmentos reutilizables del entorno de compilación y utilizarlos en diferentes compilaciones. En este ejemplo se muestra cómo habilitar el almacenamiento en caché dentro de su proyecto de compilación utilizando la capacidad reservada. Para obtener más información, consulte Almacenamiento en caché de compilaciones de AWS CodeBuild.

Puede empezar por especificar uno o varios modos de caché en la configuración de su proyecto:

Cache: Type: LOCAL Modes: - LOCAL_CUSTOM_CACHE - LOCAL_DOCKER_LAYER_CACHE - LOCAL_SOURCE_CACHE
nota

Asegúrese de habilitar el modo con privilegios para utilizar la caché de capas de Docker.

La configuración de la especificación de compilación de su proyecto debe tener el aspecto siguiente:

version: 0.2 phases: build: commands: - echo testing local source cache - touch /codebuild/cache/workspace/foobar.txt - git checkout -b cached_branch - echo testing local docker layer cache - docker run alpine:3.14 2>&1 | grep 'Pulling from' || exit 1 - echo testing local custom cache - touch foo - mkdir bar && ln -s foo bar/foo2 - mkdir bar/bar && touch bar/bar/foo3 && touch bar/bar/foo4 - "[ -f foo ] || exit 1" - "[ -L bar/foo2 ] || exit 1" - "[ -f bar/bar/foo3 ] || exit 1" - "[ -f bar/bar/foo4 ] || exit 1" cache: paths: - './foo' - './bar/**/*' - './bar/bar/foo3'

Puede empezar por ejecutar una compilación con el nuevo proyecto para propagar la caché. Una vez hecho esto, debe empezar otra compilación con una especificación de compilación de anulación, similar a la siguiente:

version: 0.2 phases: build: commands: - echo testing local source cache - git branch | if grep 'cached_branch'; then (exit 0); else (exit 1); fi - ls /codebuild/cache/workspace | if grep 'foobar.txt'; then (exit 0); else (exit 1); fi - echo testing local docker layer cache - docker run alpine:3.14 2>&1 | if grep 'Pulling from'; then (exit 1); else (exit 0); fi - echo testing local custom cache - "[ -f foo ] || exit 1" - "[ -L bar/foo2 ] || exit 1" - "[ -f bar/bar/foo3 ] || exit 1" - "[ -f bar/bar/foo4 ] || exit 1" cache: paths: - './foo' - './bar/**/*' - './bar/bar/foo3'

Limitaciones de las flotas de capacidad reservada

Hay algunos casos de uso que las flotas de capacidad reservada no admiten. En casi de que le afectan, utilice flotas bajo demanda:

  • Las flotas de capacidad reservada no admiten compilaciones por lotes, métricas de utilización de compilaciones ni control de versiones semántico.

  • Las flotas de capacidad reservada no admiten la conectividad de VPC.

Para obtener más información sobre las límites y las cuotas, consulte Flotas de computación.