Verwendung des von ECS verwalteten Docker-Plattformzweigs in Elastic Beanstalk - 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.

Verwendung des von ECS verwalteten Docker-Plattformzweigs in Elastic Beanstalk

Dieses Thema bietet einen Überblick über die von Elastic Beanstalk ECS verwalteten Docker-Plattformbranches für Amazon Linux 2 und Amazon Linux 2023. Es enthält auch Konfigurationsinformationen, die für die von Docker ECS verwaltete Plattform spezifisch sind.

Migration von Multi-Container-Docker auf AL1

Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranches, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt. Dieses Kapitel enthält zwar Informationen zur Konfiguration dieser ausgemusterten Plattform, wir empfehlen jedoch dringend, auf den neuesten unterstützten Plattformzweig zu migrieren. Wenn Sie derzeit den ausgemusterten Multi-Container-Docker verwenden, der auf AL1 Platform Branch läuft, können Sie auf die neueste Version von ECS Running on AL2 023 Platform Branch migrieren. 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-verwaltetem Multi-Container-Docker auf ECS AL1 auf Amazon Linux 2023.

Überblick über die von ECS verwaltete Docker-Plattform

Elastic Beanstalk verwendet Amazon Elastic Container Service (Amazon ECS), um Container-Bereitstellungen in ECS-verwalteten Docker-Umgebungen zu koordinieren. Amazon ECS bietet Tools zum Verwalten eines Instance-Clusters mit Docker-Containern. Elastic Beanstalk übernimmt Amazon ECS-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.

Von Elastic Beanstalk erstellte Amazon ECS-Ressourcen

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

  • Amazon ECS-Cluster – Container-Instances in Amazon ECS sind in Cluster organisiert. Bei Verwendung mit Elastic Beanstalk wird ein Cluster immer für jede ECS-verwaltete Docker-Umgebung erstellt. Ein ECS-Cluster enthält auch Auto Scaling Scaling-Gruppenkapazitätsanbieter und andere Ressourcen.

  • Amazon-ECS-Aufgabendefinition – Elastic Beanstalk nutzt Dockerrun.aws.json v2 in Ihrem Projekt zum Generieren der Amazon-ECS-Aufgabendefinition, die für die Konfiguration der Container-Instances in der Umgebung verwendet wird.

  • Amazon ECS-Aufgabe – Elastic Beanstalk kommuniziert mit Amazon ECS über die Ausführung einer Aufgabe auf allen Instances in der Umgebung zum Koordinieren der Container-Bereitstellung. In einer skalierbaren Umgebung initiiert Elastic Beanstalk eine neue Aufgabe, wenn eine Instance zum Cluster hinzugefügt wird.

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

  • Amazon ECS Data Volumes — Zusätzlich zu den Volumes, die Sie in Dockerrun.aws.json Version 2 definieren, fügt Elastic Beanstalk Volume-Definitionen 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.

Weitere Informationen zu Amazon ECS-Ressourcen finden Sie im Amazon Elastic Container Service Developer Guide.

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 von 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 ECS verwaltet werden.

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

Docker-Images

Die von 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 einer 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 Amazon ECS-Aufgabe fehlschlägt, werden ein oder mehrere Container in Ihrer Elastic Beanstalk-Umgebung nicht gestartet. Elastic Beanstalk setzt Multi-Container-Umgebungen aufgrund einer fehlgeschlagenen Amazon-ECS-Aufgabe nicht zurück. 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).

Erweiterung der ECS-basierten Docker-Plattformen für Elastic Beanstalk

Elastic Beanstalk bietet Erweiterungsfunktionen, mit denen Sie Ihre eigenen Befehle, Skripts, Software und Konfigurationen auf Ihre Anwendungsbereitstellungen anwenden können. Der Bereitstellungsablauf für die Plattformzweige ECS AL2 und AL2 023 unterscheidet sich geringfügig von den anderen Linux-basierten Plattformen. Weitere Informationen finden Sie unter Workflow zur Instance-Bereitstellung für ECS auf Amazon Linux 2 und höher.