

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.

# Stellen Sie mithilfe von Terraform eine Umgebung für containerisierte Blu Age-Anwendungen bereit
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform"></a>

*Richard Milner-Watts, Amazon Web Services*

## Zusammenfassung
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-summary"></a>

Durch die Migration älterer Mainframe-Workloads in moderne Cloud-Architekturen können die Kosten für die Wartung eines Mainframes eingespart werden — Kosten, die mit zunehmendem Alter der Umgebung nur noch steigen. Die Migration von Jobs von einem Mainframe kann jedoch besondere Herausforderungen mit sich bringen. Interne Ressourcen sind möglicherweise nicht mit der Joblogik vertraut, und die hohe Leistung von Mainframes bei diesen speziellen Aufgaben kann im Vergleich zu herkömmlichen, generellen Aufgaben schwierig zu replizieren sein. CPUs Das Umschreiben dieser Jobs kann ein großes Unterfangen sein und erheblichen Aufwand erfordern.

Blu Age konvertiert ältere Mainframe-Workloads in modernen Java-Code, den Sie dann als Container ausführen können.

Dieses Muster bietet ein Beispiel für eine serverlose Architektur zum Ausführen einer containerisierten Anwendung, die mit dem Blu Age-Tool modernisiert wurde. Die enthaltenen HashiCorp Terraform-Dateien bilden eine sichere Architektur für die Orchestrierung von Blu Age-Containern, die sowohl Batch-Aufgaben als auch Echtzeitdienste unterstützt.

Weitere Informationen zur Modernisierung Ihrer Workloads mithilfe von Blu Age- und AWS-Services finden Sie in den folgenden Publikationen zu AWS Prescriptive Guidance:
+ [Ausführung von Mainframe-Workloads, die mit Blu Age modernisiert wurden, auf einer serverlosen AWS-Infrastruktur](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerisieren Sie Mainframe-Workloads, die von Blu Age modernisiert wurden](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)

[Wenn Sie Unterstützung bei der Nutzung von Blu Age zur Modernisierung Ihrer Mainframe-Workloads benötigen, wenden Sie sich an das Blu Age-Team, indem Sie auf der Blu Age-Website auf **Kontaktieren Sie unsere Experten klicken**.](https://www.bluage.com/) Wenn Sie Unterstützung bei der Migration Ihrer modernisierten Workloads zu AWS, ihrer Integration mit AWS-Services und ihrer Umstellung auf die Produktion benötigen, wenden Sie sich an Ihren AWS-Kundenbetreuer oder füllen Sie das [AWS Professional](https://pages.awscloud.com/AWS-Professional-Services.html) Services-Formular aus.

## Voraussetzungen und Einschränkungen
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-prereqs"></a>

**Voraussetzungen**
+ Die containerisierte Blu-Age-Beispielanwendung, die von den [Containerize-Mainframe-Workloads](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) bereitgestellt wird, die nach dem Blu Age-Muster modernisiert wurden. Die Beispielanwendung bietet die Logik für die Verarbeitung von Eingabe und Ausgabe für die modernisierte Anwendung und kann in diese Architektur integriert werden.
+ Terraform ist erforderlich, um diese Ressourcen bereitzustellen.

**Einschränkungen**
+ Amazon Elastic Container Service (Amazon ECS) begrenzt die Aufgabenressourcen, die dem Container zur Verfügung gestellt werden können. Zu diesen Ressourcen gehören CPU, RAM und Speicher. Wenn Sie beispielsweise Amazon ECS mit AWS Fargate verwenden, [gelten die Limits für Aufgabenressourcen](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html).

**Produktversionen**

Diese Lösung wurde mit den folgenden Versionen getestet:
+ Terraform 1.3.6
+ Terraform AWS-Anbieter 4.46.0

## Architektur
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-architecture"></a>

**Quelltechnologie-Stack**
+ Blaues Zeitalter
+ Terraform

**Zieltechnologie-Stack**
+ Amazon Aurora PostgreSQL-Compatible Edition
+ AWS Backup
+ Amazon Elastic Container Registry (Amazon ECR)
+ Amazon ECS
+ AWS Identity and Access Management Service (IAM)
+ AWS-Schlüsselverwaltungsserver (AWS KMS)
+ AWS Secrets Manager
+ Amazon-Simple-Notification-Service (Amazon-SNS)
+ Amazon Simple Storage Service (Amazon-S3)
+ AWS Step Functions
+ AWS Systems Manager

**Zielarchitektur**

Das folgende Diagramm zeigt die Lösungsarchitektur.

![\[Die Beschreibung folgt dem Diagramm.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/12825490-2622-4f0b-80c9-2c5076d50fa3/images/c0708b0a-aa36-458a-8d6c-d42e3dec7727.png)


1. Die Lösung stellt die folgenden IAM-Rollen bereit:
   + Batch-Task-Rolle
   + Rolle zur Ausführung von Batch-Tasks
   + Rolle bei der Dienstaufgabe
   + Rolle bei der Ausführung von Servicetasks
   + Rolle „Step Functions“
   + AWS-Backup-Rolle
   + Rolle „RDS Enhanced Monitoring“.

   Die Rollen entsprechen den Prinzipien des am wenigsten privilegierten Zugriffs.

1. Amazon ECR wird verwendet, um das Container-Image zu speichern, das nach diesem Muster orchestriert wird.

1. Der AWS Systems Manager Parameter Store stellt der Amazon ECS-Aufgabendefinition zur Laufzeit Konfigurationsdaten zu jeder Umgebung bereit.

1. AWS Secrets Manager stellt der Amazon ECS-Aufgabendefinition zur Laufzeit sensible Konfigurationsdaten über die Umgebung zur Verfügung. Die Daten wurden von AWS KMS verschlüsselt.

1. Die Terraform-Module erstellen Amazon ECS-Aufgabendefinitionen für alle Echtzeit- und Batch-Aufgaben.

1. Amazon ECS führt eine Batch-Aufgabe mithilfe von AWS Fargate als Rechen-Engine aus. Dies ist eine kurzlebige Aufgabe, die nach Bedarf von AWS Step Functions initiiert wird.

1. Amazon Aurora PostgreSQL-Compatible bietet eine Datenbank zur Unterstützung der modernisierten Anwendung. Dies ersetzt Mainframe-Datenbanken wie IBM Db2 oder IBM IMS DB.

1. Amazon ECS bietet einen langlebigen Service zur Bereitstellung eines modernisierten Echtzeit-Workloads. Diese statusfreien Anwendungen werden permanent mit Containern ausgeführt, die über Availability Zones verteilt sind.

1. Ein Network Load Balancer wird verwendet, um Zugriff auf den Echtzeit-Workload zu gewähren. Der Network Load Balancer unterstützt frühere Protokolle wie IBM CICS. Alternativ können Sie einen Application Load Balancer mit HTTP-basierten Workloads verwenden.

1. Amazon S3 bietet Objektspeicher für Auftragseingaben und -ausgaben. Der Container sollte Pull- und Push-Operationen in Amazon S3 durchführen, um das Arbeitsverzeichnis für die Blu Age-Anwendung vorzubereiten.

1. Der AWS Step Functions Functions-Service wird verwendet, um die Ausführung der Amazon ECS-Aufgaben zur Verarbeitung von Batch-Workloads zu orchestrieren.

1. SNS-Themen für jeden Batch-Workload werden verwendet, um die modernisierte Anwendung in andere Systeme wie E-Mail zu integrieren oder um zusätzliche Aktionen zu initiieren, wie z. B. die Übermittlung von Ausgabeobjekten von Amazon S3 an FTP.

**Anmerkung**  
Standardmäßig hat die Lösung keinen Zugang zum Internet. Dieses Muster geht davon aus, dass die Virtual Private Cloud (VPC) über einen Service wie [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/) mit anderen Netzwerken verbunden wird. Daher werden VPC-Endpunkte mit mehreren Schnittstellen bereitgestellt, um Zugriff auf die von der Lösung verwendeten AWS-Services zu gewähren. Um den direkten Internetzugang zu aktivieren, können Sie den Schalter im Terraform-Modul verwenden, um die VPC-Endpunkte durch ein Internet-Gateway und die zugehörigen Ressourcen zu ersetzen.

**Automatisierung und Skalierung**

Die Verwendung serverloser Ressourcen in diesem Muster trägt dazu bei, dass durch die Skalierung des Designs nur wenige Grenzen gesetzt werden. Auf diese Weise *werden Probleme mit unnötigen* Nebenkosten vermieden, z. B. die Konkurrenz um Rechenressourcen, die auf dem ursprünglichen Mainframe auftreten könnten. Batch-Aufgaben können so geplant werden, dass sie bei Bedarf gleichzeitig ausgeführt werden.

Einzelne Container sind durch die von Fargate unterstützten Maximalgrößen begrenzt. Weitere Informationen finden Sie im Abschnitt [https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html#fargate-tasks-size) in der Amazon ECS-Dokumentation.

Um [Echtzeit-Workloads horizontal zu skalieren](https://nathanpeck.com/amazon-ecs-scaling-best-practices/), können Sie Container hinzufügen.

## Tools
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-tools"></a>

**AWS-Services**
+ [Amazon Aurora PostgreSQL-Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) ist eine vollständig verwaltete, ACID-konforme relationale Datenbank-Engine, die Sie bei der Einrichtung, dem Betrieb und der Skalierung von PostgreSQL-Bereitstellungen unterstützt.
+ [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) ist ein vollständig verwalteter Service, der Sie bei der Zentralisierung und Automatisierung des AWS-Services Datenschutzes in der Cloud und vor Ort unterstützt.
+ [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) ist ein verwalteter Container-Image-Registry-Service, der sicher, skalierbar und zuverlässig ist.
+ [Amazon Elastic Container Service (Amazon ECS)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html) ist ein hoch skalierbarer, schneller Container-Management-Service, der das Ausführen, Beenden und Verwalten von Containern in einem Cluster vereinfacht.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) unterstützt Sie bei der Erstellung und Kontrolle kryptografischer Schlüssel, um Ihre Daten zu schützen.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) hilft Ihnen dabei, hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Passwörter, durch einen API-Aufruf an Secrets Manager zu ersetzen, um das Geheimnis programmgesteuert abzurufen.
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) ist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Funktionen und andere Funktionen kombinieren können, um geschäftskritische AWS-Services Anwendungen zu erstellen.
+ [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) bietet sicheren, hierarchischen Speicher für die Verwaltung von Konfigurationsdaten und Geheimnissen.

**Andere Dienste**
+ [HashiCorp Terraform](https://www.terraform.io/docs) ist ein Infrastructure-as-Code-Tool (IaC), mit dem Sie mithilfe von Code Cloud-Infrastruktur und -Ressourcen bereitstellen und verwalten können. Dieses Muster verwendet Terraform, um die Beispielarchitektur zu erstellen.

**Code-Repository**

Der Quellcode für dieses Muster ist im GitHub [Blu Age Sample ECS Infrastructure (Terraform)](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform#aws-blu-age-sample-ecs-infrastructure-terraform) -Repository verfügbar.

## Best Practices
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-best-practices"></a>
+ Verwenden Sie für Testumgebungen Funktionen wie die `forceDate` Option, die modernisierte Anwendung so zu konfigurieren, dass sie konsistente Testergebnisse generiert, indem sie immer für einen bekannten Zeitraum ausgeführt wird.
+ Passen Sie jede Aufgabe einzeln an, um die optimale Menge an Ressourcen zu verbrauchen. Sie können [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) verwenden, um Hinweise zu potenziellen Engpässen zu erhalten.

## Epen
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-epics"></a>

### Bereiten Sie die Umgebung für den Einsatz vor
<a name="prepare-the-environment-for-deployment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie den Quellcode der Lösung. | Klonen Sie den Lösungscode aus dem [GitHub Projekt](https://github.com/aws-samples/aws-blu-age-sample-ecs-infrastructure-using-terraform). | DevOps Ingenieur | 
| Booten Sie die Umgebung, indem Sie Ressourcen bereitstellen, um den Terraform-Status zu speichern. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps Ingenieur | 

### Stellen Sie die Lösungsinfrastruktur bereit
<a name="deploy-the-solution-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen und aktualisieren Sie die Terraform-Konfiguration. | Öffnen Sie die Datei im Stammverzeichnis, `main.tf,` überprüfen Sie den Inhalt und erwägen Sie, die folgenden Aktualisierungen vorzunehmen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html) | DevOps Ingenieur | 
| Stellen Sie die Terraform-Datei bereit. | Führen Sie von Ihrem Terminal aus den `terraform apply` Befehl aus, um alle Ressourcen bereitzustellen. Überprüfen Sie die von Terraform generierten Änderungen und geben Sie **Ja ein, um den Build** zu starten.Beachten Sie, dass die Bereitstellung dieser Infrastruktur über 15 Minuten dauern kann. | DevOps Ingenieur | 

### (Optional) Stellen Sie eine gültige containerisierte Blu-Age-Anwendung bereit
<a name="optional-deploy-a-valid-blu-age-containerized-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Senden Sie das Blu Age-Container-Image an Amazon ECR. | Schieben Sie den Container in das Amazon ECR-Repository, das Sie im vorherigen Epic erstellt haben. Anweisungen finden Sie in der [Amazon ECR-Dokumentation](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).Notieren Sie sich den URI des Container-Images. | DevOps Ingenieur | 
| Aktualisieren Sie die Terraform so, dass sie auf das Blu Age-Container-Image verweist. | Aktualisieren Sie die Datei so, dass `main.tf`**** sie auf das Container-Image verweist, das Sie hochgeladen haben. | DevOps Ingenieur | 
| Stellen Sie die Terraform-Datei erneut bereit. | Führen Sie von Ihrem Terminal aus den Befehl aus, `terraform apply` um alle Ressourcen bereitzustellen. Überprüfen Sie die von Terraform vorgeschlagenen Updates und geben Sie dann **Ja** ein, um mit der Bereitstellung fortzufahren. | DevOps Ingenieur | 

## Zugehörige Ressourcen
<a name="deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform-resources"></a>
+ [Blu Age](https://www.bluage.com/)
+ [Ausführung von Mainframe-Workloads, die mit Blu Age modernisiert wurden, auf einer serverlosen AWS-Infrastruktur](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Containerisieren Sie Mainframe-Workloads, die von Blu Age modernisiert wurden](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)