Migrieren Ihrer Elastic-Beanstalk-Linux-Anwendung auf Amazon Linux 2 - AWS Elastic Beanstalk

Migrieren Ihrer Elastic-Beanstalk-Linux-Anwendung auf Amazon Linux 2

Anmerkung

Am 18. Juli 2022 stellte Elastic Beanstalk den Status aller Plattformzweige auf Basis von Amazon Linux AMI (AL1) auf Außerbetriebnahme. Weitere Informationen finden Sie unter Häufig gestellte Fragen zur Einstellung der Amazon-Linux-AMI(AL1)-Plattform.

Wenn Ihre Elastic-Beanstalk-Anwendung auf einer Amazon-Linux-AMI-Plattform basiert, erfahren Sie auf dieser Seite, wie Sie die Umgebungen Ihrer Anwendung zu Amazon-Linux-2 migrieren. AWS Elastic Beanstalk nutzt Amazon Linux 2 als Betriebssystem für Linux-Plattformen. Plattformtechnologien der vorherigen Generation basierend auf Amazon-Linux-AMI sind jetzt veraltet.

Unterschiede und Kompatibilität

Für die AL2-basierten Plattformzweige wird nicht garantiert, dass sie mit einer bestehenden Anwendung abwärtskompatibel sind. Selbst wenn Ihr Anwendungscode auf der neuen Plattformversion erfolgreich bereitgestellt wird, kann er sich aufgrund von Betriebssystem- und Laufzeitunterschieden möglicherweise anders verhalten oder abweichen. Obwohl Amazon-Linux-AMI und Amazon Linux 2 den gleichen Linux-Kernel teilen, unterscheiden sie sich in ihrem Initialisierungssystem, ihren libc-Versionen, der Compiler-Toolkette und verschiedenen Paketen. Weitere Informationen finden Sie unter Amazon Linux 2 – Häufig gestellte Fragen. Beim Elastic-Beanstalk-Service wurden auch plattformspezifische Versionen von Laufzeit, Build-Tools und anderen Abhängigkeiten aktualisiert. Daher empfehlen wir Ihnen, sich Zeit zu nehmen, Ihre Anwendung gründlich in einer Entwicklungsumgebung zu testen und notwendige Anpassungen vorzunehmen.

Migrationsprozess

Wenn Sie für die Produktion bereit sind, erfordert Elastic Beanstalk eine Blau/Grün-Bereitstellung, um das Upgrade durchzuführen. Erstellen Sie, wie für Blau/Grün-Bereitstellungen grundsätzlich empfohlen, eine neue Umgebung, die auf einem Zweig der Amazon Linux 2-Plattform basiert, und stellen Sie Ihren Anwendungscode dafür bereit. Ihre vorhandene Produktionsumgebung bleibt aktiv und unberührt, während Sie Tests durchführen und Anpassungen an der neuen Umgebung vornehmen. Wenn Ihre neue Umgebung bereit ist, in die Produktion zu gehen, tauschen Sie die CNAMEs der beiden Umgebungen aus, um den Datenverkehr an die neue Umgebung umzuleiten. Weitere Informationen über sinnvolle Vorgehensweisen bei der Blau/Grün-Bereitstellung finden Sie unter Blau/Grün-Methode. Informationen über die spezifischen Schritte der Blau/Grün-Bereitstellung finden Sie unter Blau/Grün-Bereitstellungen.

Die folgenden Referenzen können bei der Planung Ihrer Migration hilfreich sein.

Überlegungen für alle Linux-Plattformen

In der folgenden Tabelle werden Überlegungen erläutert, die Sie bei der Planung einer Anwendungsmigration auf Amazon Linux 2 beachten sollten. Diese Überlegungen gelten für alle Elastic-Beanstalk-Linux-Plattformen, unabhängig von bestimmten Programmiersprachen oder Anwendungsservern.

Area Änderungen und Informationen

Konfigurationsdateien

Auf Amazon-Linux-2-Plattformen können Sie Konfigurationsdateien wie gewohnt verwenden und alle Abschnitte funktionieren auf die gleiche Weise. Bestimmte Einstellungen funktionieren jedoch möglicherweise nicht so wie bei früheren Amazon-Linux-AMI-Plattformen. Zum Beispiel:

  • Einige Softwarepakete, die Sie mit einer Konfigurationsdatei installieren, sind unter Umständen auf Amazon Linux 2 nicht verfügbar, oder ihre Namen haben sich geändert.

  • Einige plattformspezifische Konfigurationsoptionen wurden von ihren plattformspezifischen Namespaces in andere plattformunabhängige Namespaces verschoben.

  • Proxy-Konfigurationsdateien, die im Verzeichnis .ebextensions/nginx bereitgestellt werden, sollten in das Plattform-Hooks-Verzeichnis .platform/nginx verschoben werden. Für Details erweitern Sie den Abschnitt Reverse-Proxy-Konfiguration unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Wir raten zur Verwendung von Plattform-Hooks für die Ausführung von benutzerdefiniertem Code auf Ihren Umgebungs-Instances. Sie können in .ebextensions-Konfigurationsdateien weiterhin Befehle und Containerbefehle verwenden, aber sie sind nicht mehr so einfach in der Verwendung. Beispielsweise kann das Schreiben von Befehlsskripten in einer YAML-Datei umständlich und schwer zu testen sein.

Sie müssen weiterhin .ebextensions-Konfigurationsdateien für jedes Skript verwenden, das einen Verweis auf eine AWS CloudFormation-Ressource benötigt.

Plattform-Hooks

Amazon-Linux-2-Plattformen bieten eine neue Möglichkeit, die Plattform Ihrer Umgebung zu erweitern, indem ausführbare Dateien zu Hook-Verzeichnissen auf den Instances der Umgebung hinzugefügt werden. Bei früheren Linux-Plattformversionen haben Sie möglicherweise benutzerdefinierte Plattform-Hooks verwendet. Diese Hooks wurden nicht für verwaltete Plattformen entwickelt und wurden nicht unterstützt, konnten aber in einigen Fällen auf nützliche Weise funktionieren. Bei Amazon-Linux-2-Plattformversionen funktionieren keine benutzerdefinierte Plattform-Hooks. Sie sollten alle Hooks auf die neuen Plattform-Hooks migrieren. Details erhalten Sie im Abschnitt Plattform-Hooks in Erweitern von Elastic Beanstalk-Linux-Plattformen.

Unterstützte Proxy-Server

Amazon-Linux-2-Plattformversionen unterstützen die gleichen Reverse-Proxy-Server wie jede Plattform, die in ihren Amazon-Linux-AMI Plattformversionen unterstützt wird. Alle Amazon-Linux-2-Plattformversionen verwenden nginx als standardmäßigen Reverse-Proxy-Server. Die Plattformen Tomcat, Node.js, PHP und Python unterstützen ebenfalls Apache HTTPD als Alternative. Alle Plattformen ermöglichen eine einheitliche Konfiguration des Proxy-Servers wie in diesem Abschnitt beschrieben. Die Konfiguration des Proxy-Servers ist jedoch ein wenig anders als auf dem Amazon-Linux-AMI. Dies sind die Unterschiede für alle Plattformen:

  • Der Standard ist nginx – Der Standard-Proxy-Server für alle Amazon-Linux 2-Plattformversionen ist nginx. Bei Amazon-Linux-AMI-Plattformversionen von Tomcat, PHP und Python war der Standard-Proxy-Server Apache HTTPD.

  • Konsistenter Namespace – Alle Amazon-Linux-2-Plattformversionen verwenden den Namespace aws:elasticbeanstalk:environment:proxy, um den Proxy-Server zu konfigurieren. Bei Amazon-Linux-AMI-Plattformversionen war dies eine Entscheidung pro Plattform und Node.js verwendete einen anderen Namespace.

  • Speicherort der Konfigurationsdatei – Sie sollten Proxy-Konfigurationsdateien unter allen Amazon-Linux-2-Plattformversionen in den Verzeichnissen .platform/nginx und .platform/httpd ablegen. Auf Amazon-Linux-AMI-Plattformversionen waren diese Speicherorte .ebextensions/nginx bzw. .ebextensions/httpd.

Informationen zu plattformspezifischen Proxy-Konfigurationsänderungen finden Sie unter Plattformspezifische Überlegungen. Weitere Informationen zur Proxy-Konfiguration auf Amazon-Linux-2-Plattformen finden Sie im Abschnitt Reverse-Proxy-Konfiguration unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Proxy-Konfigurationsänderungen

Einige Änderungen an der Proxy-Konfiguration gelten einheitlich für alle Plattformen, zusätzlich zu den plattformspezifischen Änderungen der Proxy-Konfiguration. Es ist wichtig, sich auf beide zu beziehen, damit Ihre Umgebungen genau konfiguriert werden können.

Instance-Profil

Amazon-Linux-2-Plattformen erfordern, dass ein Instance-Profil konfiguriert wird. Die Umgebung wird ohne Profil möglicherweise zunächst erfolgreich erstellt, kurz nach der Erstellung können in der Umgebung aber Fehler auftreten, wenn Aktionen, die ein Instance-Profil erfordern, fehlschlagen. Details hierzu finden Sie unter Elastic Beanstalk Instance-Profile verwalten.

Erweiterter Zustand

Amazon-Linux-2-Plattformversionen verbessern standardmäßig die Integrität. Dies ist eine Änderung, wenn Sie nicht die Elastic-Beanstalk-Konsole zum Erstellen von Umgebungen verwenden. Die Konsole ermöglicht standardmäßig möglichst eine erweiterte Integrität, unabhängig von der Plattformversion. Details hierzu finden Sie unter Erweiterte Zustandsberichte und Überwachung.

Benutzerdefiniertes AMI

Wenn Ihre Umgebung ein benutzerdefiniertes AMI verwendet, erstellen Sie mithilfe einer Elastic-Beanstalk-Amazon-Linux-2-Plattform ein neues AMI für Ihre neue Umgebung basierend auf Amazon Linux 2.

Benutzerdefinierte Plattformen

Die verwalteten AMIs der Amazon-Linux-2-Plattformversionen unterstützen keine benutzerdefinierten Plattformen.

Plattformspezifische Überlegungen

In diesem Abschnitt werden Migrationsüberlegungen behandelt, die für bestimmte Elastic-Beanstalk-Linux-Plattformen spezifisch sind.

Die Docker-Plattformzweigfamilie auf Basis von Amazon Linux AMI (AL1) umfasst drei Plattformzweige. Wir empfehlen für jeden einen bestimmten Migrationspfad.

AL1-Plattformzweig Migrationspfad zu Amazon Linux 2

Multi-Container-Docker (verwaltet von Amazon ECS) auf Amazon Linux AMI (AL1)

ECS-basierter Docker-AL2-Plattformzweig

Der ECS-basierte Docker-AL2-Plattformzweig bietet einen unkomplizierten Migrationspfad für Umgebungen, die auf dem Multi-Container-Docker-AL1-Plattformzweig laufen.

  • Wie der vorherige Multi-Container-Docker-AL1-Zweig verwendet er Amazon ECS, um die Bereitstellung mehrerer Docker-Container in einem Amazon-ECS-Cluster in einer Elastic-Beanstalk-Umgebung zu koordinieren.

  • Er unterstützt alle Funktionen des vorherigen Multi-Container-Docker-AL1-Plattformzweigs.

  • Außerdem wird dieselbe Dockerrun.aws.json-v2-Datei unterstützt.

Weitere Informationen zum Migrieren Ihrer Anwendungen, die auf dem Plattformzweig Multi-Container-Docker auf Amazon Linux ausgeführt werden, zum Plattformzweig Amazon ECS auf Amazon Linux 2 finden Sie unter Migration von Multi-Container-Docker auf Amazon Linux zu ECS auf Amazon Linux 2.

Docker auf Amazon Linux AMI (AL1)

Vorkonfigurierter Docker (Glassfish 5.0) auf Amazon Linux AMI (AL1)

Docker auf Amazon-Linux-2-Plattformzweig

Es wird empfohlen, Ihre Anwendungen zu migrieren, wenn sie auf Umgebungen laufen, die auf dem vorkonfigurierten Docker (Glassfish 5.0) oder Docker auf Amazon Linux AMI (AL1) basieren. Die Migration erfolgt dann hin zu Umgebungen, die auf dem Plattformzweig mit Docker auf Amazon Linux 2 basieren.

Wenn Ihre Umgebung auf dem Plattformzweig mit vorkonfiguriertem Docker (Glassfish 5.0) basiert, siehe Bereitstellen einer GlassFish-Anwendung auf der Docker-Plattform: Migrationspfad zu Amazon Linux 2.

In der folgenden Tabelle werden Migrationsinformationen für den Plattformzweig mit Docker auf Amazon Linux 2 aufgelistet.

Area Änderungen und Informationen

Speicher

Elastic Beanstalk konfiguriert Docker so, dass Speichertreiber zum Speichern von Docker-Images und Containerdaten verwendet werden. Auf Amazon-Linux-AMI verwendete Elastic Beanstalk den Device Mapper storage driver (Device Mapper-Speichertreiber). Um die Leistung zu verbessern, stellte Elastic Beanstalk ein zusätzliches Amazon-EBS-Volume bereit. Bei Amazon-Linux-2-Docker-Plattformversionen verwendet Elastic Beanstalk den OverlayFS-Speichertreiber und erzielt eine noch bessere Leistung, ohne dass ein weiteres separates Volume benötigt wird.

Wenn Sie mit Amazon-Linux-AMI die Option BlockDeviceMappings des Namespace aws:autoscaling:launchconfiguration verwendet haben, um benutzerdefinierte Speicher-Volume zu einer Docker-Umgebung hinzuzufügen, haben wir Ihnen empfohlen, auch das Amazon-EBS-Volume /dev/xvdcz hinzuzufügen, das durch Elastic Beanstalk bereitgestellt wurde. Elastic Beanstalk stellt dieses Volume nicht mehr bereit, daher sollten Sie es aus Ihren Konfigurationsdateien entfernen. Details hierzu finden Sie unter Docker-Konfiguration auf Amazon Linux AMI (Vorgängerversion von Amazon Linux 2).

Private Repository-Authentifizierung

Wenn Sie eine Docker-generierte Authentifizierungsdatei bereitstellen, um eine Verbindung mit einem privaten Repository herzustellen, müssen Sie sie nicht mehr in das ältere Format konvertieren, das für das die Amazon-Linux-AMI-Docker-Plattformversionen erforderlich ist. Amazon-Linux-Docker-2-Plattformversionen unterstützen das neue Format. Details hierzu finden Sie unter Verwenden von Images aus einem privaten Repository.

Proxy-Server

Amazon-Linux-2-Docker-Plattformversionen unterstützen keine eigenständigen Container, die nicht hinter einem Proxy-Server ausgeführt werden. Bei Amazon-Linux-AMI-Docker-Plattformversionen war dies früher durch den Wert none der Option ProxyServer im Namespace aws:elasticbeanstalk:environment:proxy möglich.

In der folgenden Tabelle werden Migrationsinformationen für die Amazon-Linux-2-Plattformversionen in der Go-Plattform aufgelistet.

Area Änderungen und Informationen

Übergeben eines Portwertes

Elastic Beanstalk übergibt auf Amazon-Linux-2-Plattformen keinen Portwert über die PORT-Umgebungsvariable an Ihren Anwendungsprozess. Sie können dieses Verhalten für Ihren Prozess simulieren, indem Sie eine PORT-Umgebungseigenschaft selbst konfigurieren. Wenn Sie jedoch mehrere Prozesse haben und darauf zählen, dass Elastic Beanstalk inkrementelle Portwerte an Ihre Prozesse übergibt (5000, 5100, 5200 usw.), sollten Sie Ihre Implementierung ändern. Für Details erweitern Sie den Abschnitt Reverse-Proxy-Konfiguration unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

In der folgenden Tabelle werden Migrationsinformationen für die Corretto-Plattformzweige in der Java SE-Plattform aufgelistet.

Area Änderungen und Informationen

Corretto gegen OpenJDK

Zur Implementierung von Java Platform, Standard Edition (Java SE), verwenden Amazon-Linux-2-Plattformzweige Amazon Corretto, eine AWSVerteilung des Open-Java-Development-Kit (OpenJDK). Frühere Elastic-Beanstalk-Java-SE-Plattformzweige verwenden die in Amazon-Linux-AMI enthaltenen OpenJDK-Pakete.

Build-Tools

Amazon-Linux-2-Plattformen haben neuere Versionen der Build-Tools: gradle, maven und ant.

JAR-Dateibehandlung

Wenn Ihr Quell-Bundle (ZIP-Datei) auf Amazon-Linux-2-Plattformen eine einzelne JAR-Datei und keine anderen Dateien enthält, benennt Elastic Beanstalk die JAR-Datei nicht mehr in application.jar um. Die Umbenennung erfolgt nur, wenn Sie eine JAR-Datei alleine und nicht innerhalb einer ZIP-Datei übermitteln.

Übergeben eines Portwertes

Elastic Beanstalk übergibt auf Amazon-Linux-2-Plattformen keinen Portwert über die PORT-Umgebungsvariable an Ihren Anwendungsprozess. Sie können dieses Verhalten für Ihren Prozess simulieren, indem Sie eine PORT-Umgebungseigenschaft selbst konfigurieren. Wenn Sie jedoch mehrere Prozesse haben und darauf zählen, dass Elastic Beanstalk inkrementelle Portwerte an Ihre Prozesse übergibt (5000, 5100, 5200 usw.), sollten Sie Ihre Implementierung ändern. Für Details erweitern Sie den Abschnitt Reverse-Proxy-Konfiguration unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Java 7

Elastic Beanstalk unterstützt keinen Zweig der Amazon-Linux-2-Java-7-Plattform. Wenn Sie eine Java 7-Anwendung haben, migrieren Sie sie auf Corretto 8 oder Corretto 11.

In der folgenden Tabelle werden Migrationsinformationen für die Amazon-Linux-2-Plattformversionen in der Tomcat-Plattform aufgelistet.

Area Änderungen und Informationen

Konfigurationsoptionen

Bei Amazon-Linux-2-Plattformversionen unterstützt Elastic Beanstalk nur eine Teilmenge der Konfigurationsoptionen und Optionswerte im Namespace aws:elasticbeanstalk:environment:proxy. Im Folgenden finden Sie Informationen zur Migration für die einzelnen Optionen.

Option Informationen zur Migration

GzipCompression

Nicht unterstützt auf Amazon-Linux-2-Plattformversionen.

ProxyServer

Amazon-Linux-2-Tomcat-Plattformversionen unterstützen sowohl Proxy-Server mit nginx als auch mit Apache HTTPD Version 2.4. Apache Version 2.2 wird jedoch nicht unterstützt.

Bei Amazon-Linux-AMI-Plattformversionen war der Standard-Proxy Apache 2.4. Wenn Sie die Standard-Proxy-Einstellung verwendet und benutzerdefinierte Proxy-Konfigurationsdateien hinzugefügt haben, sollte Ihre Proxy-Konfiguration auf Amazon Linux 2 weiterhin funktionieren. Wenn Sie jedoch den Optionswert apache/2.2 verwendet haben, müssen Sie nun Ihre Proxy-Konfiguration auf Apache Version 2.4 migrieren.

Die Option XX:MaxPermSize im Namespace aws:elasticbeanstalk:container:tomcat:jvmoptions wird auf Amazon-Linux-2-Plattformversionen nicht unterstützt. Die JVM-Einstellung zum Ändern der Größe der permanenten Generation gilt nur für Java 7 und früher und ist daher nicht für Amazon-Linux-2-Plattformversionen anwendbar.

Anwendungspfad.

Auf Amazon-Linux-2-Plattformen lautet der Pfad zum Verzeichnis der Anwendung auf Amazon-EC2-Instances Ihrer Umgebung /var/app/current. Auf Amazon-Linux-AMI-Plattformen lautete er /var/lib/tomcat8/webapps.

In der folgenden Tabelle werden Migrationsinformationen für die Amazon-Linux-2-Plattformversionen in der Node.js-Plattform aufgelistet.

Area Änderungen und Informationen

Installierte Node.js-Versionen

Elastic Beanstalk verwaltet auf Amazon-Linux-2-Plattformen mehrere Node.js-Plattformzweige und installiert auf den einzelnen Plattformversionen nur die jeweils neueste Version der Node.js-Hauptversion für den Plattformzweig. Beispielsweise wird für jede Plattformversion im Node.js 12-Plattformzweig standardmäßig nur Node.js 12.x.y installiert. Im Fall von Amazon-Linux-AMI-Plattformversionen sind auf jeder Plattformversion die verschiedenen Versionen der verschiedenen Node.js-Versionen installiert und es wird nur ein einziger Plattformzweig gewartet.

Wählen Sie den Node.js-Plattformzweig für die Node.js-Hauptversion aus, die Ihre Anwendung benötigt.

Apache HTTPD-Protokolldateinamen

Wenn Sie auf Amazon-Linux-2-Plattformen den Apache-HTTPD-Proxy-Server verwenden, heißen die HTTPD-Protokolldateien access_log und error_log, was mit allen anderen Plattformen konsistent ist, die Apache HTTPD unterstützen. Auf Amazon-Linux-AMI-Plattformversionen hießen diese Protokolldateien access.log bzw. error.log.

Weitere Details zu Namen und Speicherorten von Protokolldateien für alle Plattformen finden Sie unter Wie Elastic Beanstalk CloudWatch Logs einrichtet.

Konfigurationsoptionen

Auf Amazon-Linux-2-Plattformen unterstützt Elastic Beanstalk die Konfigurationsoptionen im Namespace aws:elasticbeanstalk:container:nodejs nicht. Für einige Optionen gibt es Alternativen. Im Folgenden finden Sie Informationen zur Migration für die einzelnen Optionen.

Option Informationen zur Migration

NodeCommand

Verwenden Sie ein Procfile oder das Schlüsselwort scripts in einer package.json-Datei, um das Startskript anzugeben.

NodeVersion

Verwenden Sie in einer package.json-Datei das Schlüsselwort engines, um die Node.js-Version anzugeben. Beachten Sie, dass Sie jeweils nur eine Node.js-Version angeben können, die Ihrem Plattformzweig entspricht. Wenn Sie beispielsweise den Plattformzweig Node.js 12 verwenden, können Sie nur eine 12.x.y Node.js-Version angeben. Details hierzu finden Sie unter Angeben von Node.js-Abhängigkeiten mit einer package.json-Datei.

GzipCompression

Nicht unterstützt auf Amazon-Linux-2-Plattformversionen.

ProxyServer

Bei Amazon-Linux-2-Node.js-Plattformversionen wurde diese Option in den Namespace aws:elasticbeanstalk:environment:proxy verschoben. Sie können zwischen nginx (Standardeinstellung) und apache wählen.

Darüber hinaus unterstützen Amazon-Linux-2-Node.js-Plattformversionen keine eigenständigen Anwendungen, die nicht hinter einem Proxy-Server ausgeführt werden. Bei Amazon-Linux-AMI-Node.js-Plattformversionen war dies früher durch den Wert none der Option ProxyServer im Namespace aws:elasticbeanstalk:container:nodejs möglich. Wenn in Ihrer Umgebung eine eigenständige Anwendung ausgeführt wird, aktualisieren Sie den Code so, dass dem Port zugehört wird, an den der Proxy-Server (nginx oder Apache) den Datenverkehr weiterleitet.

var port = process.env.PORT || 5000; app.listen(port, function() { console.log('Server running at http://127.0.0.1:%s', port); });

In der folgenden Tabelle werden Migrationsinformationen für die Amazon-Linux-2-Plattformversionen in der PHP-Plattform aufgelistet.

Area Änderungen und Informationen

PHP-Dateiverarbeitung

Auf Amazon-Linux-2-Pattformen werden PHP-Dateien mit PHP-FPM (einem CGI-Prozessmanager) verarbeitet. Auf Amazon-Linux-AMI-Plattformen wird mod_php (ein Apache-Modul) verwendet.

Proxy-Server

Amazon-Linux-2-PHP-Plattformversionen unterstützen sowohl Proxy-Server mit nginx als auch Apache HTTPD. Standardmäßig wird nginx verwendet.

Amazon-Linux-AMI-PHP-Plattformversionen unterstützten nur Apache HTTPD. Wenn Sie benutzerdefinierte Apache-Konfigurationsdateien hinzugefügt haben, können Sie die Option ProxyServer im Namespace aws:elasticbeanstalk:environment:proxy auf apache festlegen.

In der folgenden Tabelle werden Migrationsinformationen für die Amazon-Linux-2-Plattformversionen in der Python-Plattform aufgelistet.

Area Änderungen und Informationen

WSGI-Server

Auf Amazon-Linux-2-Plattformen ist Gunicorn der Standard-WSGI-Server. Standardmäßig überwacht Gunicorn Port 8000. Der Port kann sich von dem unterscheiden, den Ihre Anwendung auf der Amazon-Linux-AMI-Plattform verwendet hat. Wenn Sie die WSGIPath-Option des aws:elasticbeanstalk:container:python-Namespace festlegen, ersetzen Sie den Wert durch die Syntax von Gunicorn. Details hierzu finden Sie unter Namespaces der Python-Konfiguration.

Alternativ können Sie einen Procfile verwenden, um den WSGI-Server anzugeben und zu konfigurieren. Details hierzu finden Sie unter Konfigurieren des WSGI-Servers mit einer Procfile-Datei.

Anwendungspfad.

Auf Amazon-Linux-2-Plattformen lautet der Pfad zum Verzeichnis der Anwendung auf Amazon-EC2-Instances Ihrer Umgebung /var/app/current. Auf Amazon-Linux-AMI-Plattformen lautete er /opt/python/current/app.

Proxy-Server

Amazon-Linux-2-Python-Plattformversionen unterstützen sowohl Proxy-Server mit nginx als auch Apache HTTPD. Standardmäßig wird nginx verwendet.

Amazon-Linux-AMI-Python-Plattformversionen unterstützten nur Apache HTTPD. Wenn Sie benutzerdefinierte Apache-Konfigurationsdateien hinzugefügt haben, können Sie die Option ProxyServer im Namespace aws:elasticbeanstalk:environment:proxy auf apache festlegen.

In der folgenden Tabelle werden Migrationsinformationen für die Amazon-Linux-2-Plattformversionen in der Ruby-Plattform aufgelistet.

Area Änderungen und Informationen

Installierte Ruby-Versionen

Auf Amazon-Linux-2-Plattformen installiert Elastic Beanstalk auf den einzelnen Plattformversionen nur die neueste Version einer einzelnen Ruby-Version für den betreffenden Plattformzweig. Beispielsweise ist auf den einzelnen Plattformversionen im Ruby 2.6-Plattformzweig nur Ruby 2.6.x installiert. Auf Amazon-Linux-AMI-Plattformversionen sind die neuesten Versionen mehrerer Ruby-Versionen installiert, z. B. 2.4.x, 2.5.x und 2.6.x.

Wenn Ihre Anwendung eine Ruby-Version verwendet, die nicht dem von Ihnen verwendeten Plattformzweig entspricht, sollten Sie zu einem Plattformzweig wechseln, auf dem die richtige Ruby-Version für Ihre Anwendung installiert ist.

Anwendungsserver

Auf Amazon-Linux-2-Plattformen installiert Elastic Beanstalk auf allen Ruby-Plattformversionen ausschließlich den Puma-Anwendungsserver. Sie können eine Procfile-Datei verwenden, um einen anderen Anwendungsserver zu starten, und eine, Gemfile-Datei, um ihn zu installieren.

Auf der Amazon-Linux-AMI-Plattform werden zwei Varianten von Plattformzweigen für jede Ruby-Version unterstützt – Variante mit dem Puma-Anwendungsserver und eine Variante mit dem Passenger-Anwendungsserver. Wenn Ihre Anwendung Passenger verwendet, können Sie Ihre Ruby-Umgebung für die Installation und Verwendung von Passenger konfigurieren.

Weitere Informationen und Beispiele finden Sie unter Verwenden der Elastic Beanstalk-Ruby-Plattform.