Elastic Beanstalk Java SE-Plattform verwenden - AWS Elastic Beanstalk

Elastic Beanstalk Java SE-Plattform verwenden

Die AWS Elastic Beanstalk-Java SE-Plattform umfasst eine Reihe von Plattformversionen für Java-Webanwendungen, die aus einer kompilierten JAR-Datei eigenständig ausgeführt werden. Sie können Ihre Anwendung lokale kompilieren oder den Quellcode mit einem Build-Skript hochladen, um die Anwendung auf der Instance zu kompilieren. Java SE-Plattformversionen sind in Plattformvarianten gruppiert, von denen jede einer Hauptversion von Java entspricht, zum Beispiel Java 8 und Java 7.

Anmerkung

Elastic Beanstalk analysiert die JAR-Datei Ihrer Anwendung nicht. Speichern Sie Dateien, die Elastic Beanstalk benötigt, außerhalb der JAR-Datei auf. Beziehen Sie beispielsweise die cron.yaml-Datei einer Worker-Umgebung im Stammverzeichnis des Quell-Bundles Ihrer Anwendung neben der JAR-Datei ein.

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 Java SE-Plattform in Elastic Beanstalk umfasst einen nginx-Server, der als Reverse-Proxy-Server fungiert und zwischengespeicherte statische Inhalte liefert sowie Anforderungen an die Anwendung weiterleitet. Die Plattform stellt auch Konfigurationsoptionen bereit, 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.

Wenn Sie nur eine einzelne JAR-Datei für Ihre Anwendungsquelle bereitstellen (allein, nicht innerhalb eines Quellpakets), benennt Elastic Beanstalk die JAR-Datei in application.jar um und führt sie dann mit java -jar application.jar aus. Schließen Sie eine optionale Procfile-Datei in Ihr Quell-Bundle ein, um die Prozesse zu konfigurieren, die auf den Server-Instances in Ihrer Umgebung ausgeführt werden. Wenn Ihr Quell-Bundle mehrere JAR-Dateien enthält oder wenn Sie den Java-Befehl zum Festlegen von JVM-Optionen anpassen möchten, benötigen Sie eine Procfile-Datei.

Wir empfehlen, immer eine Procfile im Quellpaket mit Ihrer Anwendung bereitzustellen. Auf diese Weise können Sie genau steuern, welche Prozesse Elastic Beanstalk für Ihre Anwendung ausführt und welche Argumente diese Prozesse erhalten.

Damit Java-Klassen kompiliert und weitere Build-Befehle auf den EC2-Instances der Umgebung während der Bereitstellung ausgeführt werden können, binden Sie eine Buildfile-Datei in das Quell-Bundle der Anwendung ein. Mit einer Buildfile-Datei können Sie Quellcode direkt bereitstellen und den Server-Build ausführen, anstatt JAR-Dateien lokal zu kompilieren. Die Java SE-Plattform bietet gängige Build-Tools für Server-Builds.

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 der Java SE-Umgebung

Mit den Einstellungen der Java SE-Plattform können Sie das Verhalten Ihrer Amazon EC2-Instances optimieren. Sie können die Konfiguration der Amazon EC2-Instance der Elastic Beanstalk-Umgebung mit der Elastic Beanstalk-Konsole bearbeiten.

Mithilfe der Elastic Beanstalk-Konsole aktivieren Sie die Protokollrotation an Amazon S3 und konfigurieren Variablen, die die Anwendung aus der Umgebung auslesen kann.

So konfigurieren Sie Ihre Java SE-Umgebung in der Elastic Beanstalk-Konsole:

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

  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 Software-Konfigurationskategorie Edit (Bearbeiten) aus.

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.

  • Enable log file rotation to Amazon S3 (Protokolldateirotation für Amazon S3 aktivieren) – Gibt an, ob die Protokolldateien für die Amazon EC2-Instances der Anwendung in den der Anwendung zugeordneten Amazon S3-Bucket kopiert werden sollen.

Statische Dateien

Um die Leistung zu verbessern, können Sie im Abschnitt Static files (Statische Dateien) den Proxy-Server so 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 Bereich Environment Properties (Umgebungseigenschaften) können Sie die Einstellungen für die Umgebungskonfiguration der Amazon EC2-Instances angeben, auf denen die Anwendung ausgeführt wird. Umgebungseigenschaften werden als Schlüssel-Wert-Paare an die Anwendung weitergeleitet.

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

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

Weitere Informationen finden Sie unter Umgebungseigenschaften und andere Softwareeinstellungen.

Java SE-Konfigurations-Namespace

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 Java SE-Plattform definiert keine plattformspezifischen Namespaces. Sie können den Proxy so konfigurieren, dass statische Dateien mittels des Namespace aws:elasticbeanstalk:environment:proxy:staticfiles bereitgestellt werden. Einzelheiten und ein Beispiel finden Sie unter Bereitstellen von statischen Dateien.

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.

Die Java SE-Plattform im Amazon Linux-AMI (vor Amazon Linux 2)

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

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.

Anmerkung

Amazon Linux 2-Plattformversionen sind mit früheren Amazon Linux AMI-Plattformversionen nicht kompatibel. Wenn Sie Ihre Elastic Beanstalk-Anwendung zu Amazon Linux 2 migrieren, lesen Sie Migrieren Ihrer Elastic-Beanstalk-Linux-Anwendung auf Amazon Linux 2.

Die Java SE-Plattform unterstützt zusätzlich zu den von allen Plattformen unterstützten Namespaces eine weitere Konfigurationsoption für einen plattformspezifischen Namespace. Mit dem Namespace aws:elasticbeanstalk:container:java:staticfiles können Sie Optionen definieren, um für die Webanwendung Pfade zu Ordnern im Quell-Bundle der Anwendung zuzuweisen, die statische Inhalte enthalten.

Zum Beispiel werden mit diesem option_settings-Snippet zwei Optionen im Namespace der statischen Dateien definiert. Die erste ordnet den Pfad /public dem Ordner public zu, die zweite ordnet den Pfad /images dem Ordner img zu:

option_settings: aws:elasticbeanstalk:container:java:staticfiles: /html: statichtml /images: staticimages

Die über diesen Namespace zugewiesenen Ordner müssen sich tatsächlich im Stamm des Quell-Bundles befinden. Sie können keinen Pfad zu einem Ordner in einer JAR-Datei zuweisen.

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.