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.
Bereitstellen von Java-Microservices auf Amazon ECS mithilfe von AWS Fargate
Erstellt von Vijay Thompson (AWS) und Sandeep Bondugula (AWS)
Umgebung: PoC oder Pilotprojekt | Quelle: Container | Ziel: Amazon ECS |
R-Typ: N/A | Technologien: Container und Mikroservices; Web- und mobile Apps | AWS-Dienste: Amazon ECS |
Übersicht
Dieses Muster bietet Anleitungen für die Bereitstellung containerisierter Java-Mikroservices auf Amazon Elastic Container Service (Amazon ECS) mithilfe von AWS Fargate. Das Muster verwendet Amazon Elastic Container Registry (Amazon ECR) nicht für die Containerverwaltung. Stattdessen werden Docker-Images von einem Docker-Hub abgerufen.
Voraussetzungen und Einschränkungen
Voraussetzungen
Eine bestehende Java-Microservices-Anwendung auf einem Docker-Hub
Ein öffentliches Docker-Repository
Ein aktives AWS-Konto
Vertrautheit mit AWS-Services, einschließlich Amazon ECS und Fargate
Docker-, Java- und Spring Boot-Framework
Amazon Relational Database Service (Amazon RDS) ist betriebsbereit (optional)
Eine virtuelle private Cloud (VPC), wenn für die Anwendung Amazon RDS erforderlich ist (optional)
Architektur
Quelltechnologie-Stack
Java-Mikroservices (z. B. in Spring Boot implementiert) und auf Docker bereitgestellt
Quellarchitektur
![Quellarchitektur für Java-Microservices, die auf Docker bereitgestellt werden](images/pattern-img/65185957-2b8b-43a6-964c-95ce0a45ba17/images/0a946ca8-fe37-4ede-85cb-a80a1c36105d.png)
Zieltechnologie-Stack
Ein Amazon ECS-Cluster, der jeden Microservice mithilfe von Fargate hostet
Ein VPC-Netzwerk zum Hosten des Amazon ECS-Clusters und der zugehörigen Sicherheitsgruppen
Eine Cluster-/Aufgabendefinition für jeden Microservice, der Container mithilfe von Fargate hochfährt
Zielarchitektur
![Zielarchitektur auf Java-Mikroservices auf Amazon ECS](images/pattern-img/65185957-2b8b-43a6-964c-95ce0a45ba17/images/b21349ea-21fc-4688-b76a-1bde479858aa.png)
Tools
Tools
Amazon ECS macht es überflüssig, Ihre eigene Container-Orchestrierungssoftware zu installieren und zu betreiben, einen Cluster von virtuellen Maschinen zu verwalten und zu skalieren oder Container auf diesen virtuellen Maschinen zu planen.
Mit AWS Fargate können Sie Container ausführen, ohne Server oder Amazon Elastic Compute Cloud (Amazon EC2) -Instances verwalten zu müssen. Es wird in Verbindung mit Amazon Elastic Container Service (Amazon ECS) verwendet.
Docker
ist eine Softwareplattform, mit der Sie Anwendungen schnell erstellen, testen und bereitstellen können. Docker packt Software in standardisierte Einheiten, sogenannte Container, die alles enthalten, was die Software zum Ausführen benötigt, einschließlich Bibliotheken, Systemtools, Code und Laufzeit.
Docker-Code
Das folgende Dockerfile gibt die verwendete Version des Java Development Kit (JDK) an, in der die Java-Archivdatei (JAR) vorhanden ist, die Portnummer, die verfügbar gemacht wird, und den Einstiegspunkt für die Anwendung.
FROM openjdk:11 ADD target/Spring-docker.jar Spring-docker.jar EXPOSE 8080 ENTRYPOINT ["java","-jar","Spring-docker.jar"]
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine Aufgabendefinition. | Für die Ausführung eines Docker-Containers in Amazon ECS ist eine Aufgabendefinition erforderlich. Öffnen Sie die Amazon ECS-Konsole unter https://console.aws.amazon.com/ecs/ | AWS-Systemadministrator, App-Entwickler |
Wählen Sie den Starttyp. | Wählen Sie Fargate als Starttyp. | AWS-Systemadministrator, App-Entwickler |
Konfigurieren Sie die Aufgabe. | Definieren Sie einen Aufgabennamen und konfigurieren Sie die Anwendung mit der entsprechenden Menge an Aufgabenspeicher und CPU. | AWS-Systemadministrator, App-Entwickler |
Definieren Sie den Container. | Geben Sie den Namen des Containers an. Geben Sie für das Image den Namen der Docker-Site, den Repository-Namen und den Tag-Namen des Docker-Images ein () | AWS-Systemadministrator, App-Entwickler |
Erstellen Sie die Aufgabe. | Wenn die Aufgaben- und Containerkonfigurationen vorhanden sind, erstellen Sie die Aufgabe. Detaillierte Anweisungen finden Sie unter den Links im Abschnitt Verwandte Ressourcen. | AWS-Systemadministrator, App-Entwickler |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen und konfigurieren Sie einen Cluster. | Wählen Sie als Clustertyp nur Networking aus, konfigurieren Sie den Namen und erstellen Sie dann den Cluster oder verwenden Sie einen vorhandenen Cluster, falls verfügbar. Weitere Informationen finden Sie in der Amazon ECS-Dokumentation. | AWS-Systemadministrator, App-Entwickler |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine Aufgabe. | Wählen Sie im Cluster die Option Neue Aufgabe ausführen aus. | AWS-Systemadministrator, App-Entwickler |
Wählen Sie den Starttyp. | Wählen Sie Fargate als Starttyp. | AWS-Systemadministrator, App-Entwickler |
Wählen Sie Aufgabendefinition, Revision und Plattformversion. | Wählen Sie die Aufgabe, die Sie ausführen möchten, die Version der Aufgabendefinition und die Plattformversion aus. | AWS-Systemadministrator, App-Entwickler |
Wählen Sie den -Cluster. | Wählen Sie den Cluster aus, von dem aus Sie die Aufgabe ausführen möchten. | AWS-Systemadministrator, App-Entwickler |
Geben Sie die Anzahl der Aufgaben an. | Konfigurieren Sie die Anzahl der Aufgaben, die ausgeführt werden sollen. Wenn Sie mit zwei oder mehr Aufgaben starten, ist ein Load Balancer erforderlich, um den Datenverkehr auf die Aufgaben zu verteilen. | AWS-Systemadministrator, App-Entwickler |
Geben Sie die Aufgabengruppe an. | (Optional) Geben Sie einen Aufgabengruppennamen an, um eine Gruppe verwandter Aufgaben als Aufgabengruppe zu identifizieren. | AWS-Systemadministrator, App-Entwickler |
Konfigurieren Sie die Cluster-VPC, die Subnetze und die Sicherheitsgruppen. | Konfigurieren Sie die Cluster-VPC und die Subnetze, in denen Sie die Anwendung bereitstellen möchten. Erstellen oder aktualisieren Sie Sicherheitsgruppen (HTTP, HTTPS und Port 8080), um den Zugriff auf eingehende und ausgehende Verbindungen zu ermöglichen. | AWS-Systemadministrator, App-Entwickler |
Konfigurieren Sie öffentliche IP-Einstellungen. | Aktivieren oder deaktivieren Sie die öffentliche IP, je nachdem, ob Sie eine öffentliche IP-Adresse für Fargate-Aufgaben verwenden möchten. Die empfohlene Standardoption ist Aktiviert. | AWS-Systemadministrator, App-Entwickler |
Überprüfen Sie die Einstellungen und erstellen Sie die Aufgabe | Überprüfen Sie Ihre Einstellungen und wählen Sie dann Task ausführen. | AWS-Systemadministrator, App-Entwickler |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Kopieren Sie die Anwendungs-URL. | Wenn der Aufgabenstatus auf Wird ausgeführt aktualisiert wurde, wählen Sie die Aufgabe aus. Kopieren Sie im Bereich Netzwerk die öffentliche IP. | AWS-Systemadministrator, App-Entwickler |
Testen Sie Ihre Anwendung. | Geben Sie in Ihrem Browser die öffentliche IP ein, um die Anwendung zu testen. | AWS-Systemadministrator, App-Entwickler |
Zugehörige Ressourcen
Docker-Grundlagen für Amazon ECS (Amazon ECS-Dokumentation)
Amazon ECS auf AWS Fargate (Amazon ECS-Dokumentation)
Eine Aufgabendefinition erstellen (Amazon ECS-Dokumentation)
Einen Cluster erstellen (Amazon ECS-Dokumentation)
Konfiguration grundlegender Serviceparameter (Amazon ECS-Dokumentation)
Konfiguration eines Netzwerks (Amazon ECS-Dokumentation)
Bereitstellung von Java-Microservices auf Amazon ECS
(Blogbeitrag)