Den ECS -verwalteten Docker-Plattformzweig in Elastic Beanstalk verwenden - AWS Elastic Beanstalk

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.

Den ECS -verwalteten Docker-Plattformzweig in Elastic Beanstalk verwenden

Dieses Thema enthält Informationen zu den ECS -verwalteten Docker-Plattformzweigen für Amazon Linux 2 und Amazon Linux 2023. Es gilt auch für den stillgelegten Plattformzweig Multi-container Docker on AL1 (ebenfalls ECS verwaltet), falls Sie planen, ihn auf einen der unterstützten Plattformbranches zu migrieren.

Anmerkung

Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranchen, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt.

Migration von Multi-Container-Docker auf AL1

Wenn Sie derzeit den ausgemusterten Multi-Container-Docker verwenden, der auf dem AL1 Plattformzweig ausgeführt wird, können Sie auf den neuesten Plattformzweig ECSRunning on 023 migrieren. AL2 Der neueste Plattformzweig unterstützt alle Funktionen dieses außer Betrieb genommenen Plattformzweigs. Es sind keine Änderungen am Quellcode erforderlich. Weitere Informationen finden Sie unter Migrieren Sie Ihre Elastic Beanstalk Beanstalk-Anwendung von ECS Managed Multi-Container Docker auf Amazon Linux 2023 AL1 ECS.

ECSÜberblick über die verwaltete Docker-Plattform

Elastic Beanstalk verwendet Amazon Elastic Container Service (AmazonECS), um Container-Bereitstellungen in ECS verwalteten Docker-Umgebungen zu koordinieren. Amazon ECS bietet Tools zur Verwaltung eines Clusters von Instances, auf denen Docker-Container ausgeführt werden. Elastic Beanstalk kümmert sich um ECS Amazon-Aufgaben wie Clustererstellung, Aufgabendefinition und Ausführung. Alle Instances in der Umgebung werden im gleichen Satz von Containern ausgeführt, die in einer Dockerrun.aws.json-v2-Datei definiert sind. Um Docker optimal zu nutzen, können Sie mit Elastic Beanstalk eine Umgebung erstellen, in der Ihre EC2 Amazon-Instances mehrere Docker-Container nebeneinander ausführen.

Das folgende Diagramm zeigt ein Beispiel für eine Elastic Beanstalk Beanstalk-Umgebung, die mit drei Docker-Containern konfiguriert ist, die auf jeder EC2 Amazon-Instance in einer Auto Scaling Scaling-Gruppe ausgeführt werden:

Elastic Beanstalk environment with load balancer, auto scaling group, and containerized tasks.
Anmerkung

Elastic Beanstalk bietet Erweiterbarkeits-Funktionen für alle seine Plattformen, mit denen Sie die Bereitstellung und Ausführung Ihrer Anwendungen anpassen können. Für den Zweig, der auf der Amazon Linux 2-Plattform ECS läuft, unterscheidet sich die Implementierung des Instance-Bereitstellungs-Workflows dieser Funktionen von den anderen Plattformen. Weitere Informationen finden Sie unter Workflow zur Instanzbereitstellung für die ECS Ausführung auf Amazon Linux 2 und höher.

Von Elastic Beanstalk erstellte ECS Amazon-Ressourcen

Wenn Sie eine Umgebung mithilfe der ECS verwalteten Docker-Plattform erstellen, erstellt und konfiguriert Elastic Beanstalk beim Aufbau der Umgebung automatisch mehrere Amazon Elastic Container Service-Ressourcen. Dabei erstellt es die erforderlichen Container auf jeder EC2 Amazon-Instance.

  • Amazon ECS Cluster — Container-Instances in Amazon ECS sind in Clustern organisiert. Bei Verwendung mit Elastic Beanstalk wird immer ein Cluster für jede ECS verwaltete Docker-Umgebung erstellt.

  • Amazon ECS Task Definition — Elastic Beanstalk verwendet die Dockerrun.aws.json Version v2 in Ihrem Projekt, um die ECS Amazon-Aufgabendefinition zu generieren, die zur Konfiguration von Container-Instances in der Umgebung verwendet wird.

  • Amazon ECS Task — Elastic Beanstalk kommuniziert mit Amazon, ECS um auf jeder Instance in der Umgebung eine Aufgabe auszuführen, um die Container-Bereitstellung zu koordinieren. In einer skalierbaren Umgebung initiiert Elastic Beanstalk eine neue Aufgabe, wenn eine Instance zum Cluster hinzugefügt wird. In seltenen Fällen müssen Sie möglicherweise die Größe des für Container und Images vorgesehenen Platzes erhöhen. Erfahren Sie mehr im Konfiguration von Elastic Beanstalk Docker-Umgebungen-Abschnitt.

  • Amazon ECS Container Agent — Der Agent wird in einem Docker-Container auf den Instances in Ihrer Umgebung ausgeführt. Der Agent fragt den ECS Amazon-Service ab und wartet, bis eine Aufgabe ausgeführt wird.

  • Amazon ECS Data Volumes — Elastic Beanstalk fügt Volume-Definitionen (zusätzlich zu den Volumes, die Sie in Dockerrun.aws.json Version 2 definieren) in die Aufgabendefinition ein, um die Protokollerfassung zu erleichtern.

    Elastic Beanstalk erstellt Protokoll-Volumes auf der Container-Instance, eines für jeden Container, unter /var/log/containers/containername. Diese Volumes haben den Namen awseb-logs-containername und werden für Container für das Mounting bereitgestellt. Details zum Mounting finden Sie unter Format der Containerdefinition.

Dockerrun.aws.jsonv2-Datei

Die Container-Instances benötigen eine Konfigurationsdatei mit dem NamenDockerrun.aws.json. Container-Instances beziehen sich auf EC2 Amazon-Instances, auf denen ECS verwaltetes Docker in einer Elastic Beanstalk Beanstalk-Umgebung ausgeführt wird. Diese Datei gilt nur für Elastic Beanstalk und kann eigenständig oder in Kombination mit Quellcode und Inhalten in einem Quell-Bundle verwendet werden,um eine Umgebung auf einer Docker-Plattform zu erstellen.

Anmerkung

Das Version 2-Format von Dockerrun.aws.json bietet Unterstützung für mehrere Container pro EC2 Amazon-Instance und kann nur mit einer ECS verwalteten Docker-Plattform verwendet werden. Das Format unterscheidet sich erheblich von den anderen Versionen der Konfigurationsdateien, die die Zweige der Docker-Plattform unterstützen, die nicht von verwaltet werden. ECS

Einzelheiten Dockerrun.aws.json v2 zum aktualisierten Format und eine Beispieldatei finden Sie unter.

Docker-Images

Die ECS verwaltete Docker-Plattform für Elastic Beanstalk erfordert, dass Images vorkonfiguriert und in einem öffentlichen oder privaten Online-Image-Repository gespeichert werden, bevor eine Elastic Beanstalk Beanstalk-Umgebung erstellt werden kann.

Anmerkung

Das Erstellen benutzerdefinierter Images während der Bereitstellung mit a Dockerfile wird von der ECS verwalteten Docker-Plattform auf Elastic Beanstalk nicht unterstützt. Erstellen Sie Ihre Images und stellen Sie sie in einem Online-Repository bereit, bevor Sie eine Elastic Beanstalk-Umgebung erstellen.

Geben Sie Images nach Namen in Dockerrun.aws.json v2 an.

Zum Konfigurieren von Elastic Beanstalk für die Authentifizierung an ein privates Repository fügen Sie den authentication-Parameter in die Dockerrun.aws.json-v2-Datei ein.

Fehlgeschlagene Container-Bereitstellungen

Wenn eine ECS Amazon-Aufgabe fehlschlägt, werden ein oder mehrere Container in Ihrer Elastic Beanstalk Beanstalk-Umgebung nicht gestartet. Elastic Beanstalk führt aufgrund einer fehlgeschlagenen Amazon-Aufgabe kein Rollback von Umgebungen mit mehreren Containern durch. ECS Wenn ein Container in der Umgebung nicht startet, stellen Sie die aktuelle Version oder eine frühere funktionierende Version mit der Elastic Beanstalk-Konsole erneut bereit.

So stellen Sie eine vorhandene Version bereit
  1. Öffnen Sie die Elastic Beanstalk-Konsole in der Region Ihrer Umgebung.

  2. Klicken Sie auf Actions (Aktionen) rechts neben Ihrem Anwendungsnamen und klicken Sie dann auf Anwendungsversionen anzeigen.

  3. Wählen Sie eine Version Ihrer Anwendung und klicken Sie auf Deploy (Bereitstellen).