Migrieren Ihrer Elastic-Beanstalk-Linux-Anwendung auf Amazon Linux 2
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
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
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:
Wir raten zur Verwendung von Plattform-Hooks für die Ausführung von benutzerdefiniertem Code auf Ihren Umgebungs-Instances. Sie können in Sie müssen weiterhin |
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:
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-PlattformzweigDer ECS-basierte Docker-AL2-Plattformzweig bietet einen unkomplizierten Migrationspfad für Umgebungen, die auf dem Multi-Container-Docker-AL1-Plattformzweig laufen.
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-PlattformzweigEs 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.
|
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 |
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 |
Build-Tools |
Amazon-Linux-2-Plattformen haben neuere Versionen der Build-Tools: |
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 |
Übergeben eines Portwertes |
Elastic Beanstalk übergibt auf Amazon-Linux-2-Plattformen keinen Portwert über die |
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
Die Option |
||||||
Anwendungspfad. |
Auf Amazon-Linux-2-Plattformen lautet der Pfad zum Verzeichnis der Anwendung auf Amazon-EC2-Instances Ihrer Umgebung |
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 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
|
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 |
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 Alternativ können Sie einen |
Anwendungspfad. |
Auf Amazon-Linux-2-Plattformen lautet der Pfad zum Verzeichnis der Anwendung auf Amazon-EC2-Instances Ihrer Umgebung |
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 |
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 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. |