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
Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranches, 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.
Java-Anwendungen müssen in einem Webanwendungsarchiv (WAR-Datei) mit einer bestimmten Struktur platziert werden. Weitere Informationen zur erforderlichen Struktur und deren Bezug zur Projektverzeichnisstruktur finden Sie unter Strukturieren Ihres Projektordners.
Für die Ausführung von mehreren Anwendungen auf demselben Webserver können Sie in einem einzigen Quell-Bundle mehrere WAR-Dateien bündeln. Jede Anwendung in einem Quell-Bundle mit mehreren WAR-Dateien wird je nach dem WAR-Dateinamen entweder mit dem Stammpfad (ROOT.war
mit
) oder mit einem direkt darunter liegenden Pfad (myapp
.elasticbeanstalk.com/app2.war
mit
) ausgeführt. In einem Quell-Bundle mit einer einzigen WAR-Datei wird die Anwendung immer mit dem Stammpfad ausgeführt.myapp
.elasticbeanstalk.com/app2
/
Die in der Elastic Beanstalk-Konsole angewendeten Einstellungen überschreiben die entsprechenden Einstellungen in Konfigurationsdateien, wenn 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.
Themen
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 JVM (Java Virtual Machine) konfigurieren, die auf den Webservern der Umgebung ausgeführt wird, und die Systemeigenschaften definieren, die Zeichenfolgen mit Konfigurationsinformationen für die Anwendung bereitstellen.
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:
Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole
und wählen Sie in der Liste Regionen Ihre aus. AWS-Region -
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.
Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.
-
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.
JVM-Containeroptionen
Über die Heap-Größe in der JVM wird bestimmt, wie viele Objekte die Anwendung im Speicher erstellen kann, bevor eine garbage collection (Speicherbereinigung)-Xms option
) und eine Maximale JVM-Heap-Größe (-Xmx
-Option) ä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 Größe des Arbeitsspeichers an, die bei einer großen Auslastung von der JVM für die Heap-Erweiterung zugewiesen werden kann.
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.
Der JVM-Heap verfügt über einen Bereich für permanente Generierung, in dem Klassendefinitionen und zugehörige Metadaten gespeichert werden. Um die Größe der permanenten Generation zu ändern, geben Sie die neue Größe in die Option Maximale PermGen JVM-Größe () -XX:MaxPermSize
ein. Diese Einstellung gilt nur für Java 7 und frühere Versionen. Diese Option war in JDK 8 veraltet und wurde durch die Option Size () ersetzt. MaxMetaspace -XX:MaxMetaspaceSize
Wichtig
JDK 17 hat die Unterstützung der -XX:MaxPermSize
Java-Option entfernt. 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.
-
Website zur Oracle-Java-Dokumentation: Java-Optionen entfernt
-
Website zur Oracle-Java-Dokumentation: Abschnitt Klassenmetadaten in Weitere Überlegungen
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 Static files (Statische Dateien) benutzen, um den Proxy-Server so zu konfigurieren, dass er statische Dateien (z. B. HTML oder Bilder) aus Verzeichnissen innerhalb Ihrer Webanwendung bereitstellt. 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, konstruieren Sie die JDBC-Verbindungszeichenfolge dynamisch aus den Eigenschaften der Amazon Relational Database Service (Amazon RDS)-Umgebung, die von Elastic Beanstalk bereitgestellt werden. Verwenden Sie JDBC_CONNECTION_STRING nur für Datenbank-Instances, die nicht mithilfe von Elastic Beanstalk bereitgestellt werden.
Weitere Informationen zur Verwendung von Amazon RDS mit Ihrer Java-Anwendung finden Sie unter Hinzufü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. Die Konfigurationsoptionen können plattformspezifisch sein oder für alle Plattformen im Elastic Beanstalk-Service als Ganzes gelten. Die Konfigurationsoptionen sind in Namespaces organisiert.
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
– Ändern von JVM-Einstellungen. Die Optionen in diesem Namespace entsprechen wie folgt den Optionen in der Managementkonsole:-
Xms
– JVM-Befehlszeilenoptionen -
JVM Options
– JVM-Befehlszeilenoptionen
-
-
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. Neben den Konfigurationsdateien können Sie die Konfigurationsoptionen auch unter Verwendung der Konsole, gespeicherter Konfigurationen, der EB CLI oder der AWS CLI einrichten. Weitere Informationen finden Sie unter Konfigurationsoptionen.
Falls Ihre Elastic Beanstalk Tomcat-Umgebung eine Amazon Linux AMI-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 Plattformbranches 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 Plattformbranches, 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 Linux AMI-Plattform unterstützt zusätzliche Optionen in den folgenden Namespaces:
-
aws:elasticbeanstalk:container:tomcat:jvmoptions
– Zusätzlich zu den oben auf dieser Seite für diesen Namespace erwähnten Optionen unterstützen ältere Amazon Linux-AMI-Plattformversionen auch Folgendes:-
XX:MaxPermSize
– Maximale Größe für die permanente JVM-Generierung
-
-
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 .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 weitere Anweisungen unter Bündeln mehrerer WAR-Dateien für Tomcat-Umgebungen.