

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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate"></a>

*Vijay Thompson und Sandeep Bondugula, Amazon Web Services*

## Zusammenfassung
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-summary"></a>

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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-prereqs"></a>

**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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-architecture"></a>

**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\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/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/task Definition für jeden Microservice, der Container mithilfe von Fargate hochfährt

**Zielarchitektur**

![\[Zielarchitektur auf Java-Mikroservices auf Amazon ECS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/65185957-2b8b-43a6-964c-95ce0a45ba17/images/b21349ea-21fc-4688-b76a-1bde479858aa.png)


## Tools
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-tools"></a>

**Tools**
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) 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](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) 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](https://www.docker.com/) 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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-epics"></a>

### Neue Aufgabendefinitionen erstellen
<a name="create-new-task-definitions"></a>


| Aufgabe | Description | 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/](https://console.aws.amazon.com/ecs/), wählen Sie **Aufgabendefinitionen** und erstellen Sie dann eine neue Aufgabendefinition. Weitere Informationen finden Sie in der [Amazon ECS-Dokumentation](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html). | 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 ()`docker.io/sample-repo/sample-application:sample-tag-name`. Legen Sie Speicherlimits für die Anwendung und Portzuordnungen (`8080, 80`) für die zulässigen Ports fest. | 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 | 

### Konfigurieren des Clusters
<a name="configure-the-cluster"></a>


| Aufgabe | Description | 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html). | AWS-Systemadministrator, App-Entwickler | 

### Aufgabe konfigurieren
<a name="configure-task"></a>


| Aufgabe | Description | 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 | 

### Überschneiden
<a name="cut-over"></a>


| Aufgabe | Description | 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
<a name="deploy-java-microservices-on-amazon-ecs-using-aws-fargate-resources"></a>
+ [Docker-Grundlagen für Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html) (Amazon ECS-Dokumentation)
+ [Amazon ECS auf AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) (Amazon ECS-Dokumentation)
+ [Eine Aufgabendefinition erstellen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-task-definition.html) (Amazon ECS-Dokumentation)
+ [Einen Cluster erstellen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html) (Amazon ECS-Dokumentation)
+ [Konfiguration grundlegender Serviceparameter](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/basic-service-params.html) (Amazon ECS-Dokumentation)
+ [Konfiguration eines Netzwerks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-configure-network.html) (Amazon ECS-Dokumentation)
+ [Bereitstellung von Java-Microservices auf Amazon ECS](https://aws.amazon.com/blogs/compute/deploying-java-microservices-on-amazon-ec2-container-service/) (Blogbeitrag)