

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.

# Migrieren Sie lokale Java-Anwendungen mithilfe von AWS App2Container zu AWS
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container"></a>

*Dhananjay Karanjkar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-summary"></a>

AWS App2Container (A2C) ist ein Befehlszeilentool, das dabei hilft, bestehende Anwendungen, die auf virtuellen Maschinen ausgeführt werden, in Container umzuwandeln, ohne dass Codeänderungen erforderlich sind. A2C erkennt Anwendungen, die auf einem Server laufen, identifiziert Abhängigkeiten und generiert relevante Artefakte für eine reibungslose Bereitstellung in Amazon Elastic Container Service (Amazon ECS) und Amazon Elastic Kubernetes Service (Amazon EKS).

Dieses Muster enthält die Schritte für die Remote-Migration von lokalen Java-Anwendungen, die auf einem Anwendungsserver bereitgestellt werden, zu AWS Fargate oder Amazon EKS mithilfe von App2Container über den Worker-Computer. 

Der Arbeitscomputer kann in den folgenden Anwendungsfällen verwendet werden:
+ Die Docker-Installation ist auf den Anwendungsservern, auf denen die Java-Anwendungen ausgeführt werden, nicht zulässig oder nicht verfügbar.
+ Sie müssen die Migration mehrerer Anwendungen verwalten, die auf verschiedenen physischen oder virtuellen Servern bereitgestellt werden.

Dieses Muster verwendet AWS CodeCommit AWS CodePipeline, und AWS CodeBuild.

## Voraussetzungen und Einschränkungen
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-prereqs"></a>

**Voraussetzungen**
+ Ein Anwendungsserver mit einer Java-Anwendung, die auf einem Linux-Server läuft
+ Ein Arbeitscomputer mit einem Linux-Betriebssystem
+ Ein Arbeitscomputer mit mindestens 20 GB verfügbarem Festplattenspeicher

**Einschränkungen**
+ Nicht alle Anwendungen werden unterstützt. Weitere Informationen finden Sie unter [Unterstützte Anwendungen für Linux](https://docs.aws.amazon.com/app2container/latest/UserGuide/supported-applications.html).

## Architektur
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-architecture"></a>

**Quelltechnologie-Stack**
+ Java-Anwendungen, die auf einem Linux-Server ausgeführt werden

**Zieltechnologie-Stack**
+ AWS CodeBuild
+ AWS CodeCommit
+ AWS CodeDeploy
+ AWS CodePipeline
+ Amazon Elastic Container Registry
+ AWS Fargate

**Zielarchitektur**

![Architektur für lokale Java-Anwendungen auf AWS.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/61ed65a0-fab2-4fc8-8531-18bfd56a25b3/images/602cde7b-ab0c-46a5-8c37-afe304adf061.png)


 

## Tools
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-tools"></a>

**Tools**
+ [AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html) — AWS App2Container (A2C) ist ein Befehlszeilentool, mit dem Sie Anwendungen, die in Ihren lokalen Rechenzentren oder auf virtuellen Maschinen ausgeführt werden, so verschieben können, dass sie in Containern ausgeführt werden, die von Amazon ECS oder Amazon EKS verwaltet werden.
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) — AWS CodeBuild ist ein vollständig verwalteter Build-Service in der Cloud. CodeBuild kompiliert Ihren Quellcode, führt Komponententests durch und produziert Artefakte, die sofort einsatzbereit sind.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) — AWS CodeCommit ist ein von Amazon Web Services gehosteter Service zur Versionskontrolle, mit dem Sie Ressourcen (wie Dokumente, Quellcode und Binärdateien) privat in der Cloud speichern und verwalten können.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) — AWS CodePipeline ist ein Continuous Delivery Service, mit dem Sie die zur Veröffentlichung Ihrer Software erforderlichen Schritte modellieren, visualisieren und automatisieren können.
+ [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) — Amazon Elastic Container Service (Amazon ECS) ist ein hoch skalierbarer, schneller Container-Management-Service zum Ausführen, Stoppen und Verwalten von Containern in einem Cluster.
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) — Amazon Elastic Container Registry (Amazon ECR) ist ein von AWS verwalteter Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist.
+ [Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) — Amazon Elastic Kubernetes Service (Amazon EKS) ist ein verwalteter Service, mit dem Sie Kubernetes auf AWS ausführen können, ohne Ihre eigene Kubernetes-Steuerebene oder Knoten installieren, betreiben und warten zu müssen.
+ [AWS Fargate](https://docs.aws.amazon.com/AmazonECS/latest/userguide/what-is-fargate.html) — AWS Fargate ist eine Technologie, die Sie mit Amazon ECS verwenden können, um Container auszuführen, ohne Server oder Cluster von Amazon Elastic Compute Cloud (Amazon EC2) -Instances verwalten zu müssen. Mit Fargate müssen Sie keine Cluster virtueller Maschinen mehr bereitstellen, konfigurieren oder skalieren, um Container auszuführen.

## Epen
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-epics"></a>

### Richten Sie Anmeldeinformationen ein
<a name="set-up-credentials"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein Geheimnis für den Zugriff auf den Anwendungsserver. | Um vom Arbeitscomputer aus remote auf den Anwendungsserver zuzugreifen, erstellen Sie ein Geheimnis in AWS Secrets Manager. Für Ihr Geheimnis können Sie entweder den privaten SSH-Schlüssel oder das Zertifikat und den privaten SSH-Schlüssel verwenden. Weitere Informationen finden Sie unter [Manage Secrets for AWS App2Container](https://docs.aws.amazon.com/app2container/latest/UserGuide/manage-secrets.html). | DevOps, Entwickler | 

### Richten Sie die Arbeitsmaschine ein
<a name="set-up-the-worker-machine"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die TAR-Datei. | Führen Sie `sudo yum install -y tar`. | DevOps, Entwickler | 
| Installieren Sie den AWS CLI. | Führen Sie den Befehl aus, um das Amazon Command Line Interface (AWS CLI) zu installieren`curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"`. <br />Extrahieren Sie `awscliv2.zip`.<br />Führen Sie `sudo ./aws/install`. | DevOps, Entwickler | 
| Installieren Sie App2Container. | Führen Sie die folgenden Befehle aus:<br />`curl -o AWSApp2Container-installer-linux.tar.gz https://app2container-release-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/AWSApp2Container-installer-linux.tar.gz`<br />`sudo tar xvf AWSApp2Container-installer-linux.tar.gz`<br />`sudo ./install.sh` | DevOps, Entwickler | 
| Konfigurieren Sie die Profile. | Führen Sie den Befehl aus, um das AWS-Standardprofil zu konfigurieren`sudo aws configure`.<br />Führen Sie den Befehl aus, um das benannte AWS-Standardprofil zu konfigurieren`sudo aws configure --profile <profile name>`. | DevOps, Entwickler | 
| Docker-Installation. | Führen Sie die folgenden Befehle aus.<br />`sudo yum install -y docker`<br />`sudo systemctl enable docker & sudo systemctl restart docker` |  | 
| Initialisieren Sie App2Container. | Um App2Container zu initialisieren, benötigen Sie die folgenden Informationen:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)<br />Führen Sie `sudo app2container init`. | DevOps, Entwickler | 

### Konfigurieren Sie den Arbeitscomputer
<a name="configure-the-worker-machine"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie den Arbeitscomputer so, dass er eine Remoteverbindung herstellt und App2Container-Befehle auf dem Anwendungsserver ausführt. | Um den Arbeitscomputer zu konfigurieren, sind die folgenden Informationen erforderlich:[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-on-premises-java-applications-to-aws-using-aws-app2container.html)<br />Führen Sie `sudo app2container remote configure`. | DevOps, Entwickler | 

### Entdecken, analysieren und extrahieren Sie Anwendungen auf dem Arbeitscomputer
<a name="discover-analyze-and-extract-applications-on-the-worker-machine"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Entdecken Sie die lokalen Java-Anwendungen. | Führen Sie den folgenden Befehl aus, um per Fernzugriff alle Anwendungen zu ermitteln, die auf dem Anwendungsserver ausgeführt werden.<br />`sudo app2container remote inventory --target <FQDN/IP of App server>`<br />Dieser Befehl generiert eine Liste der bereitgestellten Anwendungen in`inventory.json`. | Entwickler, DevOps | 
| Analysieren Sie die entdeckten Anwendungen. | Führen Sie den folgenden Befehl aus, um jede Anwendung mithilfe der in der Inventarphase erhaltenen Anwendungs-ID remote zu analysieren.<br />`sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>`<br />Dadurch wird eine `analysis.json` Datei am Speicherort des Workspace generiert. Nachdem diese Datei generiert wurde, können Sie die Containerisierungsparameter Ihren Bedürfnissen entsprechend ändern. | Entwickler, DevOps | 
| Extrahieren Sie die analysierten Anwendungen. | Um ein Anwendungsarchiv für die analysierte Anwendung zu generieren, führen Sie den folgenden Befehl remote aus, der das TAR-Bundle am Workspace-Speicherort generiert.<br />`sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>`<br />Extrahierte Artefakte können auf dem lokalen Arbeitscomputer generiert werden. | Entwickler, DevOps | 

### Containeriere die extrahierten Artefakte auf dem Worker-Computer
<a name="containerize-the-extracted-artifacts-on-the-worker-machine"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Containerisieren Sie die extrahierten Artefakte. | Containerisieren Sie die im vorherigen Schritt extrahierten Artefakte, indem Sie den folgenden Befehl ausführen.<br />`sudo app2container containerize --input-archive <tar bundle location on worker machine>` | Entwickler, DevOps | 
| Finalisieren Sie das Ziel. | Um das Ziel zu finalisieren, öffnen Sie es. Es wird erstellt`deployment.json`, wenn der `containerize` Befehl ausgeführt wird. Um AWS Fargate als Ziel anzugeben, legen Sie `createEcsArtifacts` auf `true` fest. Um Amazon EKS als Ziel festzulegen, legen Sie den Wert `createEksArtifacts` auf true fest. | Entwickler, DevOps | 

### Generieren und Bereitstellen von AWS-Artefakten
<a name="generate-and-provision-aws-artifacts"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie AWS-Bereitstellungsartefakte auf dem Arbeitscomputer. | Führen Sie den folgenden Befehl aus, um Bereitstellungsartefakte zu generieren.<br />`sudo app2container generate app-deployment --application-id <application id>`<br />Dadurch wird die `ecs-master.yml` CloudFormation AWS-Vorlage im Workspace generiert. | DevOps | 
| Stellen Sie die Artefakte bereit. | Um die generierten Artefakte weiter bereitzustellen, stellen Sie die CloudFormation AWS-Vorlage bereit, indem Sie den folgenden Befehl ausführen.<br />`aws cloudformation deploy --template-file <path to ecs-master.yml> --capabilities CAPABILITY_NAMED_IAM --stack-name <application id>–ECS` | DevOps | 
| Generieren Sie die Pipeline. | Modifizieren Sie`pipeline.json`, was in der vorherigen Geschichte erstellt wurde, basierend auf Ihren Bedürfnissen. Führen Sie dann den `generate pipeline` Befehl aus, um die Artefakte für die Pipeline-Bereitstellung zu generieren. | DevOps | 

## Zugehörige Ressourcen
<a name="migrate-on-premises-java-applications-to-aws-using-aws-app2container-resources"></a>
+ [Was ist App2Container?](https://docs.aws.amazon.com/app2container/latest/UserGuide/what-is-a2c.html)
+ [Blogbeitrag zu AWS App2Container](https://aws.amazon.com/blogs/aws/aws-app2container-a-new-containerizing-tool-for-java-and-asp-net-applications/)
+ [Grundlagen der AWS-CLI-Konfiguration](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)
+ [Docker-Grundlagen für Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html)
+ [Docker-Befehle](https://docs.docker.com/engine/reference/commandline/cli/)