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.
QuickStart: Stellen Sie eine Docker-Anwendung auf Elastic Beanstalk bereit
Dieses QuickStart Tutorial führt Sie durch den Prozess der Erstellung einer Docker-Anwendung und ihrer Bereitstellung in einer AWS Elastic Beanstalk Umgebung.
Nicht für den Einsatz in der Produktion
Die Beispiele dienen nur zur Veranschaulichung. Verwenden Sie keine Beispielanwendungen in der Produktion.
Sections
Ihre AWS Konto
Wenn Sie noch kein AWS Kunde sind, müssen Sie ein AWS Konto erstellen. Wenn Sie sich registrieren, können Sie auf Elastic Beanstalk und andere AWS Dienste zugreifen, die Sie benötigen.
Wenn Sie bereits ein AWS Konto haben, können Sie zu wechseln. Voraussetzungen
Melde dich an für AWS-Konto
Um damit zu beginnen AWS, benötigen Sie eine AWS-Konto. Informationen zum Erstellen einer AWS-Konto finden Sie AWS-Konto im AWS -Kontenverwaltung Referenzhandbuch unter Erste Schritte mit einer.
Voraussetzungen
Um die Verfahren in diesem Leitfaden zu befolgen, benötigen Sie ein Befehlszeilen-Terminal oder eine Shell für die Ausführung der Befehle. Befehle werden ggf. in Auflistungen mit einem vorangestellten Eingabeaufforderungssymbol ($) und dem Namen des aktuellen Verzeichnisses angezeigt.
~/eb-project$ this is a command
this is output
In Linux und macOS können Sie Ihren bevorzugten Shell- und Paket-Manager verwenden. Unter Windows können Sie das Windows-Subsystem für Linux installieren,
EB-CLI
Dieses Tutorial verwendet die Befehlszeilenschnittstelle Elastic Beanstalk Command Line Interface (EB CLI). Detaillierte Anweisungen zum Installieren und Konfigurieren der EB CLI finden Sie unter EB CLI mit Setup-Skript installieren (empfohlen) und Konfigurieren der EB CLI.
Docker
Um diesem Tutorial zu folgen, benötigen Sie eine funktionierende lokale Installation von Docker. Weitere Informationen finden Sie unter Docker erhalten
Stellen Sie sicher, dass der Docker-Daemon läuft, indem Sie den folgenden Befehl ausführen.
~$ docker info
Schritt 1: Erstellen Sie eine Docker-Anwendung und einen Container
Für dieses Beispiel erstellen wir ein Docker-Image der Flask-Beispielanwendung, auf das auch in verwiesen wird. Bereitstellen einer Flask-Anwendung in Elastic Beanstalk
Die Anwendung besteht aus zwei Dateien:
-
app.py— die Python-Datei, die den Code enthält, der im Container ausgeführt wird. -
Dockerfile— das Dockerfile zum Erstellen Ihres Images.
Platzieren Sie beide Dateien im Stammverzeichnis eines Verzeichnisses.
~/eb-docker-flask/
|-- Dockerfile
|-- app.py
Fügen Sie den folgenden Inhalt zu Ihrem hinzuDockerfile.
Beispiel~/eb-docker- flask/Dockerfile
FROM public.ecr.aws/docker/library/python:3.12 COPY . /app WORKDIR /app RUN pip install Flask==3.1.1 EXPOSE 5000 CMD [ "python3", "-m" , "flask", "run", "--host=0.0.0.0"]
Fügen Sie Ihrer Datei den folgenden Inhalt hinzu. app.py
Beispiel~/eb-docker- .py flask/app
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello Elastic Beanstalk! This is a Docker application'
Verwenden Sie den Befehl eb-docker-flask Der Punkt (.) am Ende des Befehls gibt an, dass es sich bei dem Pfad um ein lokales Verzeichnis handelt.
~/eb-docker-flask$docker build -t eb-docker-flask .
Schritt 2: Führen Sie Ihre Anwendung lokal aus
Führen Sie Ihren Container mit dem Befehl
~/eb-docker-flask$docker run -dp 127.0.0.1:5000:5000 eb-docker-flask
Navigieren Sie http://127.0.0.1:5000/ in Ihrem Browser zu. Du solltest den Text „Hello Elastic Beanstalk! Dies ist eine Docker-Anwendung“.
Führen Sie den Befehl
~/eb-docker-flask$docker killcontainer-id
Schritt 3: Stellen Sie Ihre Docker-Anwendung mit der EB-CLI bereit
Führen Sie die folgenden Befehle aus, um eine Elastic Beanstalk-Umgebung für diese Anwendung zu erstellen.
Um eine Umgebung zu erstellen und Ihre Docker-Anwendung bereitzustellen
-
Initialisieren Sie mit dem Befehl eb init das EB CLI-Repository.
~/eb-docker-flask$eb init -p docker docker-tutorial --regionApplication docker-tutorial has been created.us-east-2Mit diesem Befehl wird eine Anwendung mit dem Namen erstellt
docker-tutorialund Ihr lokales Repository so konfiguriert, dass Umgebungen mit der neuesten Version der Docker-Plattform erstellt werden. -
(Optional) Führen Sie eb init erneut aus, um ein Standardschlüsselpaar für die SSH-Verbindung zur EC2-Instance (auf der die Anwendung ausgeführt wird) zu konfigurieren.
~/eb-docker-flask$eb initDo you want to set up SSH for your instances? (y/n):ySelect a keypair. 1) my-keypair 2) [ Create new KeyPair ]Wählen Sie ein Schlüsselpaar aus (sofern vorhanden) oder befolgen Sie die Anweisungen, um ein Schlüsselpaar zu erstellen. Falls keine Anweisungen angezeigt werden oder Sie die Einstellungen später ändern möchten, führen Sie eb init -i aus.
-
Verwenden Sie eb create, um eine Umgebung zu erstellen und die Anwendung darin bereitzustellen. Elastic Beanstalk erstellt automatisch eine ZIP-Datei für Ihre Anwendung und startet sie auf Port 5000.
~/eb-docker-flask$eb create docker-tutorialEs dauert ungefähr fünf Minuten, bis Elastic Beanstalk Ihre Umgebung erstellt hat.
Schritt 4: Führen Sie Ihre Anwendung auf Elastic Beanstalk aus
Wenn der Prozess zur Erstellung Ihrer Umgebung abgeschlossen ist, öffnen Sie Ihre Website mit. eb open
~/eb-docker-flask$ eb open
Herzlichen Glückwunsch! Sie haben eine Docker-Anwendung mit Elastic Beanstalk bereitgestellt! Es wird ein Browserfenster mit dem für die Anwendung erstellten Domainnamen geöffnet.
Schritt 5: Bereinigen
Sie können Ihre Umgebung beenden, wenn Sie mit der Arbeit an Ihrer Anwendung fertig sind. Elastic Beanstalk beendet alle mit Ihrer AWS Umgebung verbundenen Ressourcen.
Führen Sie den folgenden Befehl aus, um Ihre Elastic Beanstalk-Umgebung mit der EB-CLI zu beenden.
~/eb-docker-flask$ eb terminate
AWS Ressourcen für Ihre Anwendung
Sie haben gerade eine Einzelinstanzanwendung erstellt. Sie dient als einfache Beispielanwendung mit einer einzelnen EC2-Instance, sodass kein Lastenausgleich oder automatische Skalierung erforderlich sind. Für Einzelinstanzanwendungen erstellt Elastic Beanstalk die folgenden Ressourcen: AWS
-
EC2 instance (EC2-Instance) – Eine virtuelle Amazon EC2-Maschine zum Ausführen von Webanwendungen auf der von Ihnen ausgewählten Plattform.
Jede Plattform führt eine andere Gruppe von Software, Konfigurationsdateien und Skripts zur Unterstützung einer bestimmten Sprachversion, eines Framework, Webcontainers oder einer Kombination daraus aus. Die meisten Plattformen verwenden entweder Apache oder nginx als Reverse-Proxy, der Web-Datenverkehr vor Ihrer Web-App verarbeitet, Anforderungen an sie weiterleitet, statische Komponenten verarbeitet und Zugriffs- und Fehlerprotokolle generiert.
-
Instance security group (Instance-Sicherheitsgruppe) – Eine Amazon EC2-Sicherheitsgruppe, die so konfiguriert ist, dass eingehender Datenverkehr auf Port 80 zugelassen wird. Mit dieser Ressource kann HTTP-Datenverkehr vom Load Balancer die EC2-Instance mit Ihrer Web-App erreichen. Standardmäßig ist Datenverkehr ist auf anderen Ports nicht zulässig.
-
Amazon S3-Bucket – Ein Speicherort für Ihren Quellcode, Protokolle und andere Artefakte, die bei der Verwendung von Elastic Beanstalk erstellt werden.
-
CloudWatch Amazon-Alarme — Zwei CloudWatch Alarme, die die Auslastung der Instances in Ihrer Umgebung überwachen und ausgelöst werden, wenn die Last zu hoch oder zu niedrig ist. Wenn ein Alarm ausgelöst wird, wird Ihre Auto Scaling-Gruppe nach oben oder nach unten skaliert.
-
CloudFormation Stack — Elastic Beanstalk verwendet CloudFormation es, um die Ressourcen in Ihrer Umgebung zu starten und Konfigurationsänderungen zu verbreiten. Die Ressourcen werden in einer Vorlage definiert, die Sie in der CloudFormation -Konsole
anzeigen können. -
Domainname — Ein Domainname, der im Formular zu Ihrer Web-App weitergeleitet wird.
subdomainregion.elasticbeanstalk.com.
Elastic Beanstalk verwaltet all diese Ressourcen. Wenn Sie die Umgebung beenden, werden alle darin enthaltenen Ressourcen von Elastic Beanstalk beendet.
Nächste Schritte
Nachdem Sie eine Umgebung erstellt haben, in der eine Anwendung ausgeführt wird, können Sie jederzeit eine neue Version der Anwendung oder eine andere Anwendung bereitstellen. Das Bereitstellen einer neuen Anwendungsversion geht sehr schnell, da keine EC2-Instances bereitgestellt oder neu gestartet werden müssen. Sie können Ihre neue Umgebung auch mithilfe der Elastic Beanstalk-Konsole erkunden. Eine ausführliche Anleitung finden Sie unter Erkunden Sie Ihre Umgebung im Kapitel Erste Schritte dieses Handbuchs.
Nachdem Sie ein oder zwei Beispielanwendungen bereitgestellt haben und bereit sind, Docker-Anwendungen lokal zu entwickeln und auszuführen, finden Sie weitere Informationen unterBereiten Sie Ihr Docker-Image für die Bereitstellung auf Elastic Beanstalk vor.
Mit der Elastic Beanstalk-Konsole bereitstellen
Sie können auch die Elastic Beanstalk-Konsole verwenden, um die Beispielanwendung zu starten. Eine ausführliche Anleitung finden Sie unter Erstellen einer Beispielanwendung im Kapitel Erste Schritte dieses Handbuchs.