Travailler avec une capacité réservée dans AWS CodeBuild - AWS CodeBuild

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Travailler avec une capacité réservée dans AWS CodeBuild

CodeBuild propose les flottes de calcul suivantes :

  • Flottes à la demande

  • Flottes de capacité réservée

Avec des flottes à la demande, CodeBuild fournit le calcul nécessaire à vos builds. Les machines sont détruites une fois la construction terminée. Les flottes à la demande sont entièrement gérées et incluent des fonctionnalités de mise à l'échelle automatique pour faire face aux pics de demande.

Note

Les flottes à la demande ne sont pas compatibles avec Windows Server 2022.

CodeBuild propose également des flottes de capacités réservées contenant des instances alimentées par Amazon EC2 et gérées par. CodeBuild Avec les flottes de capacité réservée, vous configurez un ensemble d'instances dédiées pour votre environnement de construction. Ces machines restent inactives, prêtes à traiter les builds ou les tests immédiatement et réduisent les durées de construction. Avec des flottes de capacité réservées, vos machines fonctionnent en permanence et continueront d'entraîner des coûts tant qu'elles seront approvisionnées.

Important

Quelle que soit la durée pendant laquelle vous exécutez une instance, les flottes de capacité réservée sont facturées initialement par instance, après quoi des coûts supplémentaires peuvent être associés. Pour de plus amples informations, veuillez consulter https://aws.amazon.com/codebuild/pricing/.

Comment démarrer avec les flottes à capacité réservée ?

Pour créer un parc de capacités réservées
  1. Connectez-vous à la AWS CodeBuild console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Dans le volet de navigation, choisissez Compute fleets, puis Create compute fleet.

  3. Dans le champ de texte Calculer le nom du parc, saisissez le nom de votre parc.

  4. Dans le menu déroulant Système d'exploitation, sélectionnez le système d'exploitation.

  5. Dans le menu déroulant Architecture, sélectionnez l'architecture.

  6. Dans le menu déroulant Calculer, choisissez le type de machine de calcul pour votre machine.

  7. Dans le champ de texte Capacité, entrez le nombre minimum d'instances dans le parc.

  8. Dans le champ Comportement de débordement, choisissez le comportement lorsque la demande dépasse la capacité du parc. Pour plus d’informations sur ces options, consultez Propriétés du parc à capacité réservée.

  9. Choisissez Créer un parc informatique.

  10. Une fois le parc informatique créé, créez un nouveau CodeBuild projet ou modifiez un projet existant. Dans Environnement, choisissez Capacité réservée sous Modèle de provisionnement, puis choisissez le parc spécifié sous Nom du parc.

Bonnes pratiques

Lorsque vous utilisez des flottes de capacité réservée, nous vous recommandons de suivre ces bonnes pratiques.

  • Nous vous recommandons d'utiliser le mode de cache source pour améliorer les performances de génération en mettant en cache la source.

  • Nous vous recommandons d'utiliser la mise en cache des couches Docker pour améliorer les performances de création en mettant en cache les couches Docker existantes.

Puis-je partager un parc de capacités réservées entre plusieurs CodeBuild projets ?

Oui, vous pouvez optimiser l'utilisation de la capacité d'une flotte en l'utilisant dans le cadre de plusieurs projets.

Quelles régions prennent en charge les flottes à capacité réservée ?

Les flottes de capacité réservée sont prises en charge dans les pays suivants Régions AWS : USA Est (Virginie du Nord), USA Est (Ohio), USA Ouest (Oregon), Asie-Pacifique (Mumbai), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Europe (Francfort), Europe (Irlande) et Amérique du Sud (São Paulo). Pour plus d'informations sur Régions AWS les CodeBuild zones disponibles, consultez la section AWS Services par région.

Propriétés du parc à capacité réservée

Un parc à capacité réservée contient les propriétés suivantes :

Système d’exploitation

Le système d'exploitation. Les systèmes d'exploitation suivants sont disponibles :

  • Amazon Linux

  • Windows Server 2019

  • Windows Server 2022

Architecture

Architecture du processeur. Les architectures disponibles sont les suivantes :

  • x86_64

  • Bras 64

Calcul

Type de machine de calcul pour chaque instance. Les types de machines suivants sont disponibles :

Type de calcul Valeur ComputeType de l'environnement Valeur du type d'environnement Mémoire vCPU Espace disque
ARM Petit BUILD_GENERAL1_SMALL ARM_CONTAINER 4 Go 2 50 Go
ARM Grand BUILD_GENERAL1_LARGE ARM_CONTAINER 16 Go 8 50 Go
Linux Small ¹ BUILD_GENERAL1_SMALL LINUX_CONTAINER 3 Go 2 64 Go
Linux Medium ¹ BUILD_GENERAL1_MEDIUM LINUX_CONTAINER 7 Go 4 128 Go
Linux Large ¹ BUILD_GENERAL1_LARGE LINUX_CONTAINER 15 Go 8 128 Go
Linux XLarge BUILD_GENERAL1_XLARGE LINUX_CONTAINER 70 GO 36 256 Go
Linux 2 x Large BUILD_GENERAL1_2XLARGE LINUX_CONTAINER 145 Go 72 824 Go SSD
GPU Linux petit BUILD_GENERAL1_SMALL LINUX_GPU_CONTAINER 16 Go 4 220 GO
GPU Linux de grande taille BUILD_GENERAL1_LARGE LINUX_GPU_CONTAINER 255 Go 32 50 Go
Windows Medium BUILD_GENERAL1_MEDIUM WINDOWS_SERVER_2019_CONTAINER 7 Go 4 128 Go
Windows Medium BUILD_GENERAL1_MEDIUM WINDOWS_SERVER_2022_CONTAINER 7 Go 4 128 Go
Fenêtres grandes BUILD_GENERAL1_LARGE WINDOWS_SERVER_2019_CONTAINER 15 Go 8 128 Go
Fenêtres grandes BUILD_GENERAL1_LARGE WINDOWS_SERVER_2022_CONTAINER 15 Go 8 128 Go
Capacité

Le nombre initial de machines allouées au parc, qui définit le nombre de builds pouvant être exécutés en parallèle.

Comportement de débordement

Définit le comportement lorsque le nombre de builds dépasse la capacité de la flotte.

À la demande

Les versions Overflow s'exécutent CodeBuild à la demande.

Important

Si vous choisissez de définir votre comportement de débordement à la demande, notez que les versions de débordement seront facturées séparément, comme pour Amazon EC2 à la demande. Pour de plus amples informations, veuillez consulter https://aws.amazon.com/codebuild/pricing/.

File d'attente

Les cycles de compilation sont placés dans une file d'attente jusqu'à ce qu'une machine soit disponible. Cela limite les coûts supplémentaires car aucune machine supplémentaire n'est allouée.

Échantillons de capacité réservée avec AWS CodeBuild

Ces échantillons peuvent être utilisés pour expérimenter avec des flottes de capacité réservée dans CodeBuild.

Exemple de mise en cache avec capacité réservée

Un cache peut stocker les éléments réutilisables de votre environnement de génération et les utiliser sur plusieurs générations. Cet exemple montre comment activer la mise en cache dans votre projet de construction en utilisant une capacité réservée. Pour de plus amples informations, veuillez consulter Mise en cache de génération dans AWS CodeBuild.

Vous pouvez commencer par spécifier un ou plusieurs modes de cache dans les paramètres de votre projet :

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

Assurez-vous d'activer le mode privilégié afin d'utiliser le cache de couche Docker.

Les paramètres buildspec de votre projet doivent ressembler à ce qui suit :

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'

Vous pouvez commencer par exécuter une compilation avec le nouveau projet pour démarrer le cache. Une fois cette opération terminée, vous devez commencer une autre version avec une spécification de construction alternative, similaire à ce qui suit :

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'

Limitations des flottes à capacité réservée

Il existe certains cas d'utilisation que les flottes de capacité réservée ne prennent pas en charge, et s'ils vous concernent, utilisez plutôt des flottes à la demande :

  • Les flottes de capacités réservées ne prennent pas en charge les builds par lots, les métriques d'utilisation des builds ou le versionnement sémantique.

  • Les flottes de capacité réservée ne prennent pas en charge la connectivité VPC.

Pour plus d'informations sur les limites et les quotas, consultezFlottes informatiques.