Elastic Beanstalk Tomcat-Plattform 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.

Elastic Beanstalk Tomcat-Plattform verwenden

In diesem Thema wird beschrieben, wie Sie Ihre Java-Anwendungen, die auf der Elastic Beanstalk Tomcat-Plattform ausgeführt werden, konfigurieren, erstellen und ausführen.

Die AWS Elastic Beanstalk Tomcat-Plattform besteht aus einer Reihe von Plattformversionen für Java-Webanwendungen, die in einem Tomcat-Webcontainer ausgeführt werden können. Tomcat läuft hinter einem nginx-Proxy-Server. Jeder Plattformzweig entspricht einer Hauptversion von Tomcat.

In der Elastic Beanstalk-Konsole sind Konfigurationsoptionen für das Ändern der Konfiguration einer ausgeführten Umgebung verfügbar. Um zu verhindern, dass die Umgebungskonfiguration beim Beenden verloren geht, können Sie gespeicherte Konfigurationen verwenden, um Ihre Einstellungen zu speichern und sie später für eine andere Umgebung zu übernehmen.

Zum Speichern der Einstellungen im Quellcode können Sie Konfigurationsdateien einschließen. Die Einstellungen in Konfigurationsdateien werden jedes Mal verwendet, wenn Sie eine Umgebung erstellen oder Ihre Anwendung bereitstellen. Mit Konfigurationsdateien können Sie auch Pakete installieren, Skripts ausführen und andere Instance-Anpassungen bei Bereitstellungen vornehmen.

Die Elastic Beanstalk Tomcat-Plattform beinhaltet einen Reverse-Proxy-Server, der Anforderungen an die Anwendung weiterleitet. Sie können Konfigurationsoptionen verwenden, um den Proxy-Server zur Verarbeitung statischer Komponenten aus einem Ordner im Quellcode zu konfigurieren und so die Auslastung für die Anwendung zu reduzieren. In erweiterten Szenarien können Sie eigene .conf-Dateien in das Quell-Bundle einbinden, um die Proxy-Konfiguration von Elastic Beanstalk zu erweitern oder zu überschreiben.

Anmerkung

Elastic Beanstalk unterstützt Nginx (Standard) und Apache HTTP Server als Proxyserver auf der Tomcat-Plattform. Wenn Ihre Elastic Beanstalk Tomcat-Umgebung einen Amazon AMI Linux-Plattformzweig (vor Amazon Linux 2) verwendet, haben Sie auch die Möglichkeit, Apache HTTP Server Version 2.2 zu verwenden. Apache (neueste) ist der Standardwert für diese älteren Plattformzweige.

Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranchen, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt. Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.

Sie müssen Java-Anwendungen in einer Archivdatei (WAR) für Webanwendungen mit einer bestimmten Struktur verpacken. Weitere Informationen zur erforderlichen Struktur und deren Bezug zur Projektverzeichnisstruktur finden Sie unter Strukturieren Ihres Projektordners.

Um mehrere Anwendungen auf demselben Webserver auszuführen, können Sie mehrere WAR Dateien in einem einzigen Quellpaket bündeln. Jede Anwendung in einem Paket mit mehreren WAR Quellen wird im Stammpfad (ROOT.warwird unter ausgeführtmyapp.elasticbeanstalk.com/) oder in einem Pfad direkt darunter (wird unter app2.war ausgeführtmyapp.elasticbeanstalk.com/app2/) ausgeführt, je nach dem Namen desWAR. In einem Paket mit nur einer WAR Quelle wird die Anwendung immer im Stammpfad ausgeführt.

Die in der Elastic Beanstalk-Konsole angewendeten Einstellungen überschreiben die entsprechenden Einstellungen in Konfigurationsdateien, falls vorhanden. So sind Standardeinstellungen in Konfigurationsdateien möglich, die Sie mit umgebungsspezifischen Einstellungen in der Konsole überschreiben können. Für weitere Informationen zur Rangfolge und zu anderen Methoden zum Ändern der Einstellungen siehe Konfigurationsoptionen.

Details zu den verschiedenen Möglichkeiten für das Erweitern einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Konfigurieren Ihrer Tomcat-Umgebung

Die Elastic Beanstalk Tomcat-Plattform bietet einige plattformspezifische Optionen zusätzlich zu den Standard-Optionen, die allen Plattformen gemeinsam sind. Mit diesen Optionen können Sie die virtuelle Java-Maschine (JVM) konfigurieren, die auf den Webservern Ihrer Umgebung ausgeführt wird, und Systemeigenschaften definieren, die Ihrer Anwendung Informationen und Konfigurationszeichenfolgen zur Verfügung stellen.

Mit der Elastic Beanstalk-Konsole können Sie die Protokollrotation für Amazon S3 aktivieren und Variablen konfigurieren, die die Anwendung in der Umgebung lesen kann.

So konfigurieren Sie Ihre Tomcat-Umgebung in der Elastic Beanstalk-Konsole:
  1. Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole und wählen Sie in der Liste Regionen Ihre aus. AWS-Region

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging  (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.

Containeroptionen

Sie können die folgenden plattformspezifischen Optionen angeben:

  • Proxy server (Proxy-Server) – Der Proxy-Server, der in Ihren Umgebungs-Instances verwendet werden soll. Standardmäßig wird nginx verwendet.

JVMContainer-Optionen

Die Heap-Größe in der Java Virtual Machine (JVM) bestimmt, wie viele Objekte Ihre Anwendung im Speicher erstellen kann, bevor die Garbage-Collection erfolgt. Sie können die anfängliche JVM Heap-Größe (-Xms option) und die maximale JVM Heap-Größe (-XmxOption) ändern. Wenn Sie einen höheren Wert für die anfängliche Heap-Größe angeben, können mehr Objekte erstellt werden, bevor eine Speicherbereinigung ausgeführt wird. Jedoch dauert es länger, bis der Heap im Rahmen der Garbage Collection (Speicherbereinigung) komprimiert ist. Die maximale Heap-Größe gibt die maximale Speichermenge an, die zugewiesen werden JVM kann, wenn der Heap bei hoher Aktivität erweitert wird.

Anmerkung

Der verfügbare Speicher hängt vom EC2 Amazon-Instance-Typ ab. Weitere Informationen zu den EC2 Instance-Typen, die für Ihre Elastic Beanstalk Beanstalk-Umgebung verfügbar sind, finden Sie unter Instance-Typen im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux-Instances.

Die permanente Generierung ist ein Abschnitt des JVM Heaps, in dem Klassendefinitionen und zugehörige Metadaten gespeichert werden. Um die Größe der permanenten Generierung zu ändern, geben Sie die neue Größe in die Option Maximale JVM PermGen Größe (-XX:MaxPermSize) ein. Diese Einstellung gilt nur für Java 7 und frühere Versionen. Diese Option war in Version JDK 8 veraltet und wurde durch die Option MaxMetaspaceSize () ersetzt. -XX:MaxMetaspaceSize

Wichtig

JDK17 hat die Unterstützung der Java-Option entfernt. -XX:MaxPermSize Die Verwendung dieser Option in einer Umgebung, die auf einem Elastic-Beanstalk-Plattformzweig mit Corretto 17 läuft, führt zu einem Fehler. Elastic Beanstalk veröffentlichte am 13. Juli 2023 seinen ersten Plattformzweig, auf dem Tomcat mit Corretto 17 ausgeführt wird.

Weitere Informationen finden Sie in den folgenden Ressourcen.

Weitere Informationen zu Elastic-Beanstalk-Plattformen und ihren Komponenten finden Sie unter Unterstützte Plattformen im AWS Elastic Beanstalk -Plattformhandbuch.

Protokolloptionen

Im Abschnitt mit den Protokolloptionen sind zwei Einstellungen vorhanden:

  • Instance profile (Instance-Profil) – Gibt das Instance-Profil an, das zum Zugriff auf den entsprechenden Amazon S3-Bucket der Anwendung berechtigt ist.

  • Rotation der Protokolldateien nach Amazon S3 aktivieren — Gibt an, ob Protokolldateien für die EC2 Amazon-Instances Ihrer Anwendung in den Amazon S3-Bucket kopiert werden, der Ihrer Anwendung zugeordnet ist.

Statische Dateien

Um die Leistung zu verbessern, können Sie den Abschnitt Statische Dateien verwenden, um den Proxy-Server so zu konfigurieren, dass statische Dateien (z. HTML B. Bilder) aus einer Reihe von Verzeichnissen in Ihrer Webanwendung bereitgestellt werden. Legen Sie für jedes Verzeichnis den virtuellen Pfad zum Verzeichnis-Mapping fest. Wenn der Proxy-Server eine Anfrage nach einer Datei unter dem angegebenen Pfad erhält, stellt er die Datei direkt bereit, anstatt die Anfrage an Ihre Anwendung weiterzuleiten.

Weitere Informationen zum Konfigurieren statischer Dateien mit der Elastic Beanstalk-Konsole finden Sie unter Bereitstellen von statischen Dateien.

Umgebungseigenschaften

Im Abschnitt Umgebungseigenschaften können Sie die Umgebungskonfigurationseinstellungen für die EC2 Amazon-Instances angeben, auf denen Ihre Anwendung ausgeführt wird. Umgebungseigenschaften werden als Schlüssel-Wert-Paare an die Anwendung weitergeleitet.

Die Tomcat-Plattform definiert für Tomcat-Umgebungen die Platzhaltereigenschaft JDBC_CONNECTION_STRING, um eine Verbindungszeichenfolge an eine externe Datenbank zu übergeben.

Anmerkung

Wenn Sie eine RDS DB-Instance an Ihre Umgebung anhängen, erstellen Sie die JDBC Verbindungszeichenfolge dynamisch anhand der Umgebungseigenschaften von Amazon Relational Database Service (AmazonRDS), die von Elastic Beanstalk bereitgestellt werden. Verwenden Sie JDBC _ CONNECTION _ STRING nur für Datenbank-Instances, die nicht mit Elastic Beanstalk bereitgestellt werden.

Weitere Informationen zur Verwendung von Amazon RDS mit Ihrer Java-Anwendung finden Sie unterHinzufügen einer Amazon RDS DB-Instance zu Ihrer Java Elastic Beanstalk Beanstalk-Umgebung.

In der Tomcat-Umgebung mit Elastic Beanstalk-Ausführung kann über auf die Umgebungsvariablen zugegriffen werde System.getProperty(). Beispielsweise können Sie mit folgendem Code eine Eigenschaft mit dem Namen API_ENDPOINT als Variable lesen.

String endpoint = System.getProperty("API_ENDPOINT");

Weitere Informationen finden Sie unter Umgebungseigenschaften und andere Softwareeinstellungen.

Tomcat-Konfigurations-Namespaces

Mithilfe einer Konfigurationsdatei können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben ausführen. Konfigurationsoptionen können durch den Elastic Beanstalk-Service oder die verwendete Plattform definiert und in Namespaces organisiert werden.

Die Tomcat-Plattform unterstützt neben den unterstützten Optionen für alle Elastic Beanstalk-Umgebungen auch Optionen in den folgenden Namespaces:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— JVM Einstellungen ändern. Die Optionen in diesem Namespace entsprechen wie folgt den Optionen in der Managementkonsole:

    • XmsJVMBefehlszeilenoptionen

    • JVM OptionsJVMBefehlszeilenoptionen

  • aws:elasticbeanstalk:environment:proxy – Wählen Sie den Proxy-Server der Umgebung aus.

In der folgenden Beispielkonfigurationsdatei wird die Verwendung von Tomcat-spezifischen Konfigurationsoptionen veranschaulicht.

Beispiel .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:container:tomcat:jvmoptions: Xms: 512m JVM Options: '-Xmn128m' aws:elasticbeanstalk:application:environment: API_ENDPOINT: mywebapi.zkpexsjtmd.us-west-2.elasticbeanstalk.com aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Zusätzlich zu den Konfigurationsdateien können Sie Konfigurationsoptionen auch über die Konsole, gespeicherte Konfigurationen, das EB CLI oder das festlegen AWS CLI. Weitere Informationen finden Sie unter Konfigurationsoptionen.

Wenn Ihre Elastic Beanstalk Tomcat-Umgebung eine Amazon AMI Linux-Plattformversion (vor Amazon Linux 2) verwendet, lesen Sie die zusätzlichen Informationen in diesem Abschnitt.

Hinweise
  • Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und erfordern andere Konfigurationseinstellungen.

  • Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranchen, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt. Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.

Die Tomcat Amazon AMI Linux-Plattform unterstützt zusätzliche Optionen in den folgenden Namespaces:

  • aws:elasticbeanstalk:container:tomcat:jvmoptions— Zusätzlich zu den zuvor auf dieser Seite erwähnten Optionen für diesen Namespace unterstützen ältere Versionen der Amazon AMI Linux-Plattform auch:

    • XX:MaxPermSizeMaximale Größe der JVM permanenten Generation

  • aws:elasticbeanstalk:environment:proxy – Konfigurieren Sie nicht nur den Proxy-Server, sondern auch die Antwortkomprimierung.

In der folgenden Beispielkonfigurationsdatei wird die Verwendung der Proxy-Namespace-Konfigurationsoptionen veranschaulicht.

Beispiel .ebextensions/tomcat-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: GzipCompression: 'true' ProxyServer: nginx

Um .ebextensions-Konfigurationsdateien bereitzustellen, schließen Sie sie in Ihre Anwendungsquelle ein. Fügen Sie für eine einzelne Anwendung Ihre .ebextensions zu einer komprimierten WAR Datei hinzu, indem Sie den folgenden Befehl ausführen:

zip -ur your_application.war .ebextensions

Für eine Anwendung, die mehrere WAR Dateien benötigt, finden Sie Bündeln mehrerer WAR-Dateien für Tomcat-Umgebungen weitere Anweisungen unter.