Arbeiten mit reservierter Kapazität in AWS CodeBuild - AWS CodeBuild

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit reservierter Kapazität in AWS CodeBuild

CodeBuild bietet die folgenden Rechenflotten:

  • Flotten auf Abruf

  • Flotten mit reservierter Kapazität

Mit On-Demand-Flotten CodeBuild bietet es Rechenleistung für Ihre Builds. Die Maschinen werden zerstört, wenn der Bau abgeschlossen ist. On-Demand-Flotten werden vollständig verwaltet und verfügen über automatische Skalierungsfunktionen zur Bewältigung von Nachfragespitzen.

Anmerkung

On-Demand-Flotten unterstützen Windows Server 2022 nicht.

CodeBuild bietet auch Flotten mit reservierter Kapazität, die von Amazon EC2 betriebene Instances enthalten, die von verwaltet werden. CodeBuild Mit Flotten mit reservierter Kapazität konfigurieren Sie eine Reihe von dedizierten Instances für Ihre Build-Umgebung. Diese Maschinen bleiben inaktiv und sind bereit, Builds oder Tests sofort zu verarbeiten, wodurch die Build-Dauer reduziert wird. Mit Flotten mit reservierter Kapazität sind Ihre Maschinen immer in Betrieb und es fallen weiterhin Kosten an, solange sie bereitgestellt werden.

Wichtig

Unabhängig davon, wie lange Sie eine Instance ausführen, fällt für Flotten mit reservierter Kapazität eine anfängliche Gebühr pro Instanz an. Danach können zusätzliche Kosten anfallen. Weitere Informationen finden Sie unter https://aws.amazon.com/codebuild/pricing/.

Wie fange ich mit Flotten mit reservierter Kapazität an?

Um eine Flotte mit reservierter Kapazität zu erstellen
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS CodeBuild Konsole unter https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Wählen Sie im Navigationsbereich Compute Fleets und dann Create Compute Fleets aus.

  3. Geben Sie im Textfeld „Flottenname berechnen“ einen Namen für Ihre Flotte ein.

  4. Wählen Sie im Drop-down-Menü Betriebssystem das Betriebssystem aus.

  5. Wählen Sie im Dropdownmenü Architektur die Architektur aus.

  6. Wählen Sie im Dropdownmenü Compute den Computermaschinentyp für Ihren Computer aus.

  7. Geben Sie im Textfeld Kapazität die Mindestanzahl von Instanzen in der Flotte ein.

  8. Wählen Sie im Feld Überlaufverhalten das Verhalten aus, wenn der Bedarf die Flottenkapazität übersteigt. Weitere Informationen zu diesen Optionen finden Sie unter Flotteneigenschaften mit reservierter Kapazität.

  9. (Optional) Wenn Sie das Amazon Linux-Betriebssystem ausgewählt haben, gehen Sie unter Zusätzliche Konfiguration wie folgt vor:

    • Wählen Sie im Drop-down-Menü VPC — optional eine VPC aus, auf die Ihre CodeBuild Flotte zugreifen wird.

    • Wählen Sie im Dropdownmenü Subnetze die Subnetze aus, die Sie für die Einrichtung Ihrer VPC-Konfiguration verwenden CodeBuild sollten.

    • Wählen Sie im Dropdownmenü Sicherheitsgruppen die Sicherheitsgruppen aus, die für die Zusammenarbeit mit Ihrer VPC verwendet werden CodeBuild sollen.

    • Wählen Sie im Feld Flotten-Servicerolle entweder eine Neue Servicerolle oder eine Bestehende Servicerolle

      • Fahren Sie für eine bestehende Servicerolle im Drop-down-Menü Servicerolle fort und wählen Sie eine Servicerolle aus.

  10. Wählen Sie Rechenflotte erstellen aus.

  11. Nachdem die Rechenflotte erstellt wurde, erstellen Sie ein neues CodeBuild Projekt oder bearbeiten Sie ein vorhandenes. Wählen Sie unter Umgebung unter Bereitstellungsmodell die Option Reservierte Kapazität und dann unter Flottenname die angegebene Flotte aus.

Bewährte Methoden

Wenn Sie Flotten mit reservierter Kapazität verwenden, empfehlen wir Ihnen, diese bewährten Methoden zu befolgen.

  • Wir empfehlen, den Quell-Cache-Modus zu verwenden, um die Build-Performance durch Zwischenspeichern der Quelle zu verbessern.

  • Wir empfehlen die Verwendung von Docker-Layer-Caching, um die Build-Performance zu verbessern, indem vorhandene Docker-Ebenen zwischengespeichert werden.

Kann ich eine Flotte mit reservierter Kapazität für mehrere Projekte gemeinsam nutzen? CodeBuild

Ja, Sie können die Auslastung der Kapazität einer Flotte maximieren, indem Sie sie projektübergreifend einsetzen.

Wichtig

Wenn Sie die Funktion für reservierte Kapazität verwenden, können Daten, die auf Flotteninstanzen zwischengespeichert wurden, einschließlich Quelldateien, Docker-Ebenen und zwischengespeicherten Verzeichnissen, die in der Buildspec angegeben sind, für andere Projekte innerhalb desselben Kontos zugänglich sein. Dies ist beabsichtigt und ermöglicht es Projekten innerhalb desselben Kontos, Flotteninstanzen gemeinsam zu nutzen.

Welche Regionen unterstützen Flotten mit reservierter Kapazität?

Flotten mit reservierter Kapazität werden in den folgenden Ländern unterstützt AWS-Regionen: USA Ost (Nord-Virginia), USA Ost (Ohio), USA West (Oregon), Asien-Pazifik (Mumbai), Asien-Pazifik (Singapur), Asien-Pazifik (Sydney), Asien-Pazifik (Tokio), Europa (Frankfurt), Europa (Irland) und Südamerika (São Paulo). Weitere Informationen darüber, AWS-Regionen wo sie verfügbar CodeBuild sind, finden Sie unter AWS Services nach Regionen.

Flotteneigenschaften mit reservierter Kapazität

Eine Flotte mit reservierter Kapazität umfasst die folgenden Eigenschaften:

Betriebssystem

Das Betriebssystem. Die folgenden Betriebssysteme sind verfügbar:

  • Amazon Linux

  • Windows Server 2019

  • Windows Server 2022

Architektur

Die Prozessorarchitektur. Die folgenden Architekturen sind verfügbar:

  • x86_64

  • Arm64

Datenverarbeitung

Der Computertyp für jede Instanz. Die folgenden Maschinentypen sind verfügbar:

Datenverarbeitung ComputeType-Wert für die Umgebung Wert für den Umgebungstyp Arbeitsspeicher vCPUs Festplattenkapazität
ARM Klein BUILD_GENERAL1_SMALL ARM_CONTAINER 4 GB 2 50 GB
ARM Groß BUILD_GENERAL1_LARGE ARM_CONTAINER 16 GB 8 50 GB
Linux Klein ¹ 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 2 x groß BUILD_GENERAL1_2XLARGE LINUX_CONTAINER 145 GB 72 824 GB (SSD)
Kleine Linux-GPU BUILD_GENERAL1_SMALL LINUX_GPU_CONTAINER 16 GB 4 220 GB
Große Linux-GPU 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 groß BUILD_GENERAL1_LARGE WINDOWS_SERVER_2019_CONTAINER 15 GB 8 128 GB
Große Fenster BUILD_GENERAL1_LARGE WINDOWS_SERVER_2022_CONTAINER 15 GB 8 128 GB
Capacity (Kapazität)

Die anfängliche Anzahl der Maschinen, die der Flotte zugewiesen wurden. Sie definiert die Anzahl der Builds, die parallel ausgeführt werden können.

Verhalten bei Überlauf

Definiert das Verhalten, wenn die Anzahl der Builds die Flottenkapazität überschreitet.

Auf Abruf

Overflow-Builds werden auf CodeBuild Abruf ausgeführt.

Anmerkung

Wenn Sie Ihr Überlaufverhalten bei der Erstellung einer VPC-verbundenen Flotte auf On-Demand-Einstellung festlegen möchten, stellen Sie sicher, dass Sie Ihrer Projektservice-Rolle die erforderlichen VPC-Berechtigungen hinzufügen. Weitere Informationen finden Sie unter Beispiel einer Richtlinienanweisung für den CodeBuild Zugriff auf AWS Dienste, die für die Erstellung einer VPC-Netzwerkschnittstelle erforderlich sind.

Wichtig

Wenn Sie Ihr Overflow-Verhalten auf On-Demand-Modus setzen möchten, beachten Sie, dass Overflow-Builds separat in Rechnung gestellt werden, ähnlich wie bei Amazon EC2 auf Abruf. Weitere Informationen finden Sie unter https://aws.amazon.com/codebuild/pricing/.

Warteschlange

Build-Läufe werden in eine Warteschlange gestellt, bis ein Computer verfügbar ist. Dadurch werden zusätzliche Kosten begrenzt, da keine zusätzlichen Maschinen zugewiesen werden.

Zusätzliche Konfiguration
VPC — optional

Die VPC, auf die Ihre CodeBuild Flotte zugreifen wird. Beachten Sie, dass Konnektivität von CodeBuild nur für Flotten mit reservierter Kapazität auf Amazon Linux unterstützt wird. Weitere Informationen finden Sie unter Verwendung AWS CodeBuild mit Amazon Virtual Private Cloud.

Subnets

Die VPC-Subnetze, die zum Einrichten Ihrer VPC-Konfiguration CodeBuild verwendet werden. Beachten Sie, dass Flotten mit reservierter Kapazität nur ein Subnetz in einer einzigen Availablity Zone unterstützen. Stellen Sie außerdem sicher, dass Ihre Subnetze ein NAT-Gateway enthalten.

Sicherheitsgruppen

Die VPC-Sicherheitsgruppen, die mit Ihrer VPC CodeBuild verwendet werden. Stellen Sie sicher, dass Ihre Sicherheitsgruppen ausgehende Verbindungen zulassen.

Rolle im Flottenservice

Definiert die Servicerolle für Ihre Flotte.

Neue Servicerolle

Erstellt eine neue Servicerolle in Ihrem Konto.

Bestehende Servicerolle

Wählt eine bestehende Servicerolle aus Ihrem Konto aus.

Beispiele für reservierte Kapazität mit AWS CodeBuild

Diese Beispiele können verwendet werden, um mit Flotten mit reservierter Kapazität zu experimentieren. CodeBuild

Zwischenspeichern einer Stichprobe mit reservierter Kapazität

In einem Cache können wiederverwendbare Teile Ihrer Build-Umgebung gespeichert werden, die dann für mehrere Builds verwendet werden können. In diesem Beispiel wurde gezeigt, wie Sie das Caching innerhalb Ihres Build-Projekts mithilfe reservierter Kapazität aktivieren können. Weitere Informationen finden Sie unter Build-Caching in AWS CodeBuild.

Sie können damit beginnen, einen oder mehrere Cache-Modi in Ihren Projekteinstellungen anzugeben:

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

Stellen Sie sicher, dass der privilegierte Modus aktiviert ist, um den Docker-Layer-Cache verwenden zu können.

Die Buildspec-Einstellungen Ihres Projekts sollten wie folgt aussehen:

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'

Sie können damit beginnen, einen Build mit dem neuen Projekt auszuführen, um den Cache zu laden. Sobald dies abgeschlossen ist, sollten Sie einen weiteren Build mit einer übergeordneten Buildspezifikation starten, ähnlich der folgenden:

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'

Beschränkungen von Flotten mit reservierter Kapazität

Es gibt einige Anwendungsfälle, die von Flotten mit reservierter Kapazität nicht unterstützt werden. Wenn sie Sie betreffen, sollten Sie stattdessen Flotten auf Abruf verwenden:

  • Flotten mit reservierter Kapazität unterstützen keine Batch-Builds, Build-Nutzungsmetriken oder semantische Versionierung.

  • Flotten mit reservierter Kapazität unterstützen keine VPC-Konnektivität für Windows Server 2019 oder Windows Server 2022.

Weitere Informationen zu Grenzwerten und Kontingenten finden Sie unter. Computerflotten