

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.

# Migration und Modernisierung
<a name="migration-modernization-pattern-list"></a>

**Topics**
+ [Migration](migration-pattern-list.md)
+ [Modernisierung](modernization-pattern-list.md)
+ [Großrechner](mainframe-pattern-list.md)

# Migration
<a name="migration-pattern-list"></a>

**Topics**
+ [Erstellen Sie CloudFormation AWS-Vorlagen für AWS DMS-Aufgaben mit Microsoft Excel und Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Beginnen Sie mit der automatisierten Portfolioerkennung](get-started-with-automated-portfolio-discovery.md)
+ [Migrieren Sie lokale Cloudera-Workloads zur Cloudera Data Platform auf AWS](migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.md)
+ [Verbindungsfehler nach der Migration von Microsoft SQL Server zur AWS-Cloud beheben](resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.md)
+ [Starten Sie den AWS Replication Agent SELinux nach dem Neustart eines RHEL-Quellservers automatisch neu, ohne ihn zu deaktivieren](restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.md)
+ [Re-Architekt](migration-rearchitect-pattern-list.md)
+ [Erneut hosten](migration-rehost-pattern-list.md)
+ [Umziehen](migration-relocate-pattern-list.md)
+ [Plattformwechsel](migration-replatform-pattern-list.md)
+ [Migrationsmuster nach Arbeitslast](migration-migration-patterns-by-workload-pattern-list.md)
+ [Mehr Muster](migration-more-patterns-pattern-list.md)

# Erstellen Sie CloudFormation AWS-Vorlagen für AWS DMS-Aufgaben mit Microsoft Excel und Python
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python"></a>

*Venkata Naveen Koppula, Amazon Web Services*

## Zusammenfassung
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-summary"></a>

Dieses Muster beschreibt die Schritte zur automatischen Erstellung von CloudFormation AWS-Vorlagen für [AWS Database Migration Service](https://aws.amazon.com/dms/) (AWS DMS) mit Microsoft Excel und Python.

Die Migration von Datenbanken mithilfe von AWS DMS beinhaltet häufig die Erstellung von CloudFormation AWS-Vorlagen zur Bereitstellung von AWS DMS-Aufgaben. Bisher waren für die Erstellung von CloudFormation AWS-Vorlagen Kenntnisse der Programmiersprache JSON oder YAML erforderlich. Mit diesem Tool benötigen Sie nur Grundkenntnisse in Excel und in der Ausführung eines Python-Skripts über ein Terminal oder ein Befehlsfenster.

Als Eingabe verwendet das Tool eine Excel-Arbeitsmappe, die die Namen der zu migrierenden Tabellen, Amazon-Ressourcennamen (ARNs) von AWS-DMS-Endpunkten und AWS-DMS-Replikationsinstanzen enthält. Das Tool generiert dann CloudFormation AWS-Vorlagen für die erforderlichen AWS DMS-Aufgaben.

Ausführliche Schritte und Hintergrundinformationen finden Sie im Blogbeitrag [ CloudFormation AWS-Vorlagen für AWS-DMS-Aufgaben mithilfe von Microsoft Excel erstellen](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/) im AWS-Datenbank-Blog.

## Voraussetzungen und Einschränkungen
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Microsoft Excel Version 2016 oder höher
+ Python-Version 2.7 oder höher
+ Das Python-Modul **xlrd** (installiert an einer Befehlszeile mit dem Befehl: **pip install** xlrd)
+ AWS-DMS-Quell- und Zielendpunkte und AWS-DMS-Replikationsinstanz

**Einschränkungen**
+ Die Namen von Schemas, Tabellen und zugehörigen Spalten werden an den Zielendpunkten in Kleinbuchstaben umgewandelt.
+ Dieses Tool befasst sich nicht mit der Erstellung von AWS DMS-Endpunkten und Replikationsinstanzen.
+ Derzeit unterstützt das Tool nur ein Schema für jede AWS DMS-Aufgabe.

## Architektur
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Datenbank
+ Microsoft Excel

**Zieltechnologie-Stack**
+  CloudFormation AWS-Vorlagen
+ Eine Datenbank in der AWS-Cloud 

**Architektur**

![\[Workflow zur Verwendung von Excel und Python zur automatischen Erstellung von CloudFormation Vorlagen für AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/778c7c1e-2647-496f-8afd-52ff1ef02489/images/8fe1550d-8966-41aa-a480-5f7bef20629f.png)


## Tools
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-tools"></a>
+ [Pycharm IDE](https://aws.amazon.com/pycharm/) oder jede integrierte Entwicklungsumgebung (IDE), die Python Version 3.6 unterstützt
+ Microsoft Office 2016 (für Microsoft Excel)

## Epen
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-epics"></a>

### Konfiguration des Netzwerks, der AWS-DMS-Replikationsinstanz und der Endpunkte
<a name="configure-the-network-aws-dms-replication-instance-and-endpoints"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Beantragen Sie bei Bedarf eine Erhöhung der Servicequote. | Fordern Sie bei Bedarf eine Erhöhung des Servicekontingents für die AWS DMS-Aufgaben an. | Allgemeines AWS | 
| Konfigurieren Sie die AWS-Region, virtuelle private Clouds (VPCs), CIDR-Bereiche, Availability Zones und Subnetze. |  | Allgemeines AWS | 
| Konfigurieren Sie die AWS DMS-Replikationsinstanz. | Die AWS DMS-Replikationsinstanz kann sich sowohl mit lokalen als auch mit AWS-Datenbanken verbinden. | Allgemeines AWS | 
| Konfigurieren Sie AWS DMS-Endpunkte. | Konfigurieren Sie Endpunkte sowohl für die Quell- als auch für die Zieldatenbank. | Allgemeines AWS | 

### Bereiten Sie die Arbeitsblätter für AWS DMS-Aufgaben und -Tags vor
<a name="prepare-the-worksheets-for-aws-dms-tasks-and-tags"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die Tabellenliste. | Listet alle an der Migration beteiligten Tabellen auf. | Datenbank | 
| Bereiten Sie das Arbeitsblatt mit den Aufgaben vor. | Bereiten Sie das Excel-Arbeitsblatt anhand der von Ihnen konfigurierten Tabellenliste vor. | Allgemein AWS, Microsoft Excel | 
| Bereiten Sie das Tag-Arbeitsblatt vor. | Erläutern Sie die AWS-Ressourcen-Tags, die an die AWS DMS-Aufgaben angehängt werden sollen. | Allgemein AWS, Microsoft Excel | 

### Laden Sie das Tool herunter und führen Sie es aus
<a name="download-and-run-the-tool"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie das Tool zur Vorlagengenerierung herunter und extrahieren Sie es aus dem GitHub Repository. | GitHub Repository: https://github.com/aws-samples/dms-cloudformation-templates-generator/ |  | 
| Führen Sie das Tool aus. | Folgen Sie den detaillierten Anweisungen im Blogbeitrag, der unter „Referenzen und Hilfe“ aufgeführt ist. |  | 

## Zugehörige Ressourcen
<a name="create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python-resources"></a>
+ [ CloudFormation AWS-Vorlagen für AWS DMS-Aufgaben mit Microsoft Excel erstellen (Blogbeitrag)](https://aws.amazon.com/blogs/database/create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel/)
+ [Generator CloudFormation für DMS-Vorlagen (Repository) GitHub ](https://github.com/aws-samples/dms-cloudformation-templates-generator/tree/v1.0)
+ [Python-Dokumentation](https://www.python.org/)
+ [XLRD-Beschreibung und Download](https://pypi.org/project/xlrd/)
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/)
+ [ CloudFormation AWS-Dokumentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)

# Beginnen Sie mit der automatisierten Portfolioerkennung
<a name="get-started-with-automated-portfolio-discovery"></a>

*Pratik Chunawala und Rodolfo Jr. Cerrada, Amazon Web Services*

## Zusammenfassung
<a name="get-started-with-automated-portfolio-discovery-summary"></a>

Die Bewertung des Portfolios und das Sammeln von Metadaten sind eine entscheidende Herausforderung bei der Migration von Anwendungen und Servern in die Amazon Web Services (AWS) Cloud, insbesondere bei großen Migrationen mit mehr als 300 Servern. Mithilfe eines automatisierten Portfolio-Discovery-Tools können Sie Informationen über Ihre Anwendungen sammeln, z. B. die Anzahl der Benutzer, die Nutzungshäufigkeit, Abhängigkeiten und Informationen über die Infrastruktur der Anwendung. Diese Informationen sind für die Planung von Migrationswellen unerlässlich, damit Sie Anwendungen mit ähnlichen Merkmalen richtig priorisieren und gruppieren können. Die Verwendung eines Discovery-Tools optimiert die Kommunikation zwischen dem Portfolio-Team und den Anwendungseigentümern, da das Portfolio-Team die Ergebnisse des Discovery-Tools validieren kann, anstatt die Metadaten manuell zu sammeln. In diesem Muster werden die wichtigsten Überlegungen zur Auswahl eines automatisierten Discovery-Tools sowie Informationen zur Bereitstellung und zum Testen eines Tools in Ihrer Umgebung erläutert.

Dieses Muster enthält eine Vorlage, die als Ausgangspunkt für die Erstellung Ihrer eigenen Checkliste mit Aktivitäten auf hoher Ebene dient. Neben der Checkliste befindet sich eine Vorlage für eine Matrix für verantwortungsvolle, rechenschaftspflichtige, konsultierte und informierte Informationen (RACI). Sie können diese RACI-Matrix verwenden, um zu bestimmen, wer für jede Aufgabe in Ihrer Checkliste verantwortlich ist.

## Epen
<a name="get-started-with-automated-portfolio-discovery-epics"></a>

### Wählen Sie ein Discovery-Tool
<a name="select-a-discovery-tool"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie fest, ob ein Discovery-Tool für Ihren Anwendungsfall geeignet ist. | Ein Discovery-Tool ist möglicherweise nicht die beste Lösung für Ihren Anwendungsfall. Berücksichtigen Sie den Zeitaufwand, der für die Auswahl, Beschaffung, Vorbereitung und Bereitstellung eines Discovery-Tools erforderlich ist. Es kann 4 bis 8 Wochen dauern, die Scan-Appliance für ein agentenloses Erkennungstool in Ihrer Umgebung einzurichten oder Agenten für alle im Lieferumfang enthaltenen Workloads zu installieren. Nach der Bereitstellung müssen Sie 4—12 Wochen einplanen, bis das Discovery-Tool Metadaten erfasst, indem es die Anwendungs-Workloads scannt und eine Anwendungs-Stack-Analyse durchführt. Wenn Sie weniger als 100 Server migrieren, können Sie die Metadaten möglicherweise schneller manuell sammeln und Abhängigkeiten analysieren, als dies für die Bereitstellung und Erfassung von Metadaten mit einem automatisierten Erkennungstool erforderlich ist.  | Migrationsleiter, Migrationsingenieur | 
| Wählen Sie ein Discovery-Tool aus. | Lesen Sie die **Überlegungen zur Auswahl eines automatisierten Discovery-Tools** im Abschnitt [Zusätzliche Informationen](#get-started-with-automated-portfolio-discovery-additional). Ermitteln Sie die geeigneten Kriterien für die Auswahl eines Discovery-Tools für Ihren Anwendungsfall und bewerten Sie dann jedes Tool anhand dieser Kriterien. Eine umfassende Liste automatisierter Discovery-Tools finden Sie unter [Tools für die Migration von Discovery, Planning und Recommendation](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/). | Migrationsleiter, Migrationsingenieur | 

### Bereiten Sie sich auf die Installation vor
<a name="prepare-for-installation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die Checkliste vor der Bereitstellung vor.  | Erstellen Sie eine Checkliste mit den Aufgaben, die Sie vor der Bereitstellung des Tools ausführen müssen. Ein Beispiel finden Sie in der [Checkliste vor der Bereitstellung](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_Predeployment.htm) auf der Flexera Dokumentationswebsite. | Leiter der Entwicklung, Migrationsingenieur, Migrationsleiter, Netzwerkadministrator | 
| Bereiten Sie die Netzwerkanforderungen vor. | Stellen Sie die Ports, Protokolle, IP-Adressen und das Routing bereit, die für die Ausführung des Tools und den Zugriff auf die Zielserver erforderlich sind. Weitere Informationen finden Sie in der Installationsanleitung für Ihr Discovery-Tool. Ein Beispiel finden Sie unter [Deployment Requirements](https://docs.flexera.com/foundationcloudscape/help/RCDeployReq.htm) auf der Flexera-Dokumentationswebsite. | Migrationsingenieur, Netzwerkadministrator, Cloud-Architekt | 
| Bereiten Sie die Anforderungen für das Konto und die Anmeldeinformationen vor. | Identifizieren Sie die Anmeldeinformationen, die Sie für den Zugriff auf die Zielserver und die Installation aller Komponenten des Tools benötigen. | Cloud-Administrator, AWS allgemein, Migrationsingenieur, Migrationsleiter, Netzwerkadministrator, AWS-Administrator | 
| Bereiten Sie die Appliances vor, auf denen Sie das Tool installieren werden. | Stellen Sie sicher, dass die Appliances, auf denen Sie die Toolkomponenten installieren, die Spezifikationen und Plattformanforderungen für das Tool erfüllen. | Migrationsingenieur, Migrationsleiter, Netzwerkadministrator | 
| Bereiten Sie die Änderungsaufträge vor. | Bereiten Sie entsprechend dem Änderungsmanagementprozess in Ihrer Organisation alle erforderlichen Änderungsaufträge vor und stellen Sie sicher, dass diese Änderungsaufträge genehmigt werden. | Leitung aufbauen, Leitung für Migration | 
| Senden Sie Anforderungen an die Beteiligten. | Senden Sie die Checkliste vor der Bereitstellung und die Netzwerkanforderungen an die Beteiligten. Die Beteiligten sollten die erforderlichen Anforderungen überprüfen, bewerten und vorbereiten, bevor sie mit der Bereitstellung fortfahren. | Leitung aufbauen, Leitung Migration | 

### Stellen Sie das Tool bereit
<a name="deploy-the-tool"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie das Installationsprogramm herunter. | Laden Sie das Installationsprogramm oder das Image der virtuellen Maschine herunter. Images virtueller Maschinen werden normalerweise im Open Virtualization Format (OVF) geliefert. | Führung beim Aufbau, Leitung bei der Migration | 
| Extrahieren Sie die Dateien. | Wenn Sie ein Installationsprogramm verwenden, müssen Sie das Installationsprogramm herunterladen und auf einem lokalen Server ausführen. | Leiter für Aufbau, Migration | 
| Stellen Sie das Tool auf den Servern bereit. | Stellen Sie das Discovery-Tool auf den lokalen Zielservern wie folgt bereit:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/get-started-with-automated-portfolio-discovery.html) | Leiter für den Aufbau, Leiter der Migration, Netzwerkadministrator | 
| Melden Sie sich beim Discovery-Tool an. | Folgen Sie den Anweisungen auf dem Bildschirm und melden Sie sich an, um mit dem Tool zu beginnen. | Leiter der Migration, Aufbau eines Vorhabens | 
| Aktivieren Sie das Produkt. | Geben Sie Ihren Lizenzschlüssel ein. | Lead aufbauen, Lead Migration | 
| Konfigurieren Sie das Tool. | Geben Sie alle Anmeldeinformationen ein, die für den Zugriff auf die Zielserver erforderlich sind, z. B. Anmeldeinformationen für Windows VMware, Simple Network Management Protocol (SNMP) und Secure Shell Protocol (SSH) oder Datenbanken. | Leitung beim Aufbau, Leitung bei der Migration | 

### Testen Sie das Tool
<a name="test-the-tool"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wählen Sie Testserver aus. | Identifizieren Sie eine kleine Gruppe von Subnetzen oder IP-Adressen, die Sie verwenden können, um das Discovery-Tool zu testen. Auf diese Weise können Sie die Scans schnell validieren, Fehler schnell identifizieren und beheben und Ihre Tests von Produktionsumgebungen isolieren. | Leiter Aufbau, Leiter Migration, Netzwerkadministrator | 
| Starten Sie das Scannen der ausgewählten Testserver. | Geben Sie bei einem Agentenlosen Discovery-Tool die Subnetze oder IP-Adressen für die ausgewählten Testserver in die Discovery-Tool-Konsole ein und starten Sie den Scan.Bei einem Agent-basierten Discovery-Tool installieren Sie den Agenten auf den ausgewählten Testservern. | Leiter für Aufbau, Migration, Netzwerkadministrator | 
| Überprüfen Sie die Scanergebnisse. | Überprüfen Sie die Scanergebnisse für die Testserver. Wenn Fehler gefunden werden, führen Sie eine Problembehandlung durch und beheben Sie die Fehler. Dokumentieren Sie die Fehler und Lösungen. Sie verweisen in future auf diese Informationen und können diese Informationen zu Ihrem Portfolio-Runbook hinzufügen. | Leiter Aufbau, Leiter Migration, Netzwerkadministrator | 
| Scannen Sie die Testserver erneut. | Sobald der erneute Scan abgeschlossen ist, wiederholen Sie den Scan, bis keine Fehler mehr vorliegen. | Leiter für den Aufbau, Leiter der Migration, Netzwerkadministrator | 

## Zugehörige Ressourcen
<a name="get-started-with-automated-portfolio-discovery-resources"></a>

**AWS Ressourcen**
+ [Leitfaden zur Bewertung des Anwendungsportfolios für die AWS Cloud Migration](https://docs.aws.amazon.com/prescriptive-guidance/latest/application-portfolio-assessment-guide/introduction.html)
+ [Tools zur Erkennung, Planung und Empfehlung der Migration](https://aws.amazon.com/prescriptive-guidance/migration-tools/migration-discovery-tools/)

**Bereitstellungsleitfäden für häufig verwendete Discovery-Tools**
+ [Stellen Sie die virtuelle Appliance RN15 0](https://docs.flexera.com/foundationcloudscape/ug/Content/helplibrary/FCGS_QSG_DeployRN150.htm) bereit (Flexera-Dokumentation)
+ [Installation von Gatherer](https://www.modelizeit.com/documentation/ADC-Gatherer-Install.html) (ModelizeIT-Dokumentation)
+ Installation des [Analysis Servers vor Ort (ModelizeIT-Dokumentation](https://www.modelizeit.com/documentation/RejuvenApptor-Install.html))

## Zusätzliche Informationen
<a name="get-started-with-automated-portfolio-discovery-additional"></a>

**Überlegungen zur Auswahl eines automatisierten Discovery-Tools**

Jedes Discovery-Tool hat Vor- und Nachteile. Beachten Sie bei der Auswahl des geeigneten Tools für Ihren Anwendungsfall Folgendes:
+ Wählen Sie ein Discovery-Tool aus, mit dem die meisten, wenn nicht sogar alle Metadaten erfasst werden können, die Sie zur Erreichung Ihres Portfoliobewertungsziels benötigen.
+ Identifizieren Sie alle Metadaten, die Sie manuell sammeln müssen, da das Tool sie nicht unterstützt.
+ Stellen Sie allen Beteiligten die Anforderungen an das Discovery-Tool zur Verfügung, damit sie das Tool anhand ihrer internen Sicherheits- und Compliance-Anforderungen, wie Server-, Netzwerk- und Anmeldeinformationen, überprüfen und bewerten können.
  + Erfordert das Tool, dass Sie einen Agenten für den Workload installieren, der im Leistungsumfang enthalten ist?
  + Erfordert das Tool, dass Sie eine virtuelle Appliance in Ihrer Umgebung einrichten?
+ Ermitteln Sie Ihre Anforderungen an die Datenresidenz. Einige Unternehmen möchten ihre Daten nicht außerhalb ihrer Umgebung speichern. Um dieses Problem zu beheben, müssen Sie möglicherweise einige Komponenten des Tools in der lokalen Umgebung installieren.
+ Stellen Sie sicher, dass das Tool das Betriebssystem (OS) und die Betriebssystemversion des Workloads unterstützt, der im Leistungsumfang enthalten ist.
+ Stellen Sie fest, ob Ihr Portfolio Mainframe-, Midrange- und Legacy-Server umfasst. Die meisten Erkennungstools können diese Workloads als Abhängigkeiten erkennen, aber einige Tools sind möglicherweise nicht in der Lage, Gerätedetails wie Auslastung und Serverabhängigkeiten abzurufen. Die Discovery-Tools Device42 und ModernizeIT unterstützen sowohl Mainframe- als auch Midrange-Server.

## Anlagen
<a name="attachments-8c9d84de-e84a-4b0c-bcaa-389cd90be1f0"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/8c9d84de-e84a-4b0c-bcaa-389cd90be1f0/attachments/attachment.zip)

# Migrieren Sie lokale Cloudera-Workloads zur Cloudera Data Platform auf AWS
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws"></a>

*Battulga Purevragchaa und Nidhi Gupta, Amazon Web Services*

*Nijjwol Lamsal, Cloudera, Inc.*

## Zusammenfassung
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-summary"></a>

Dieses Muster beschreibt die allgemeinen Schritte für die Migration Ihrer lokalen Cloudera Distributed Hadoop (CDH), Hortonworks Data Platform (HDP) und Cloudera Data Platform (CDP) -Workloads zur CDP Public Cloud auf AWS. Wir empfehlen Ihnen, mit Cloudera Professional Services und einem Systemintegrator (SI) zusammenzuarbeiten, um diese Schritte umzusetzen.

Es gibt viele Gründe, warum Cloudera-Kunden ihre lokalen CDH-, HDP- und CDP-Workloads in die Cloud verlagern möchten. Zu den typischen Gründen gehören:
+ Rationalisieren Sie die Einführung neuer Datenplattform-Paradigmen wie Data Lakehouse oder Data Mesh
+ Erhöhen Sie die Agilität Ihres Unternehmens, demokratisieren Sie den Zugriff auf bestehende Datenbestände und deren Inferenz
+ Senken Sie die Gesamtbetriebskosten (TCO)
+ Verbessern Sie die Workload-Elastizität
+ Ermöglichen Sie eine höhere Skalierbarkeit und reduzieren Sie den Zeitaufwand für die Bereitstellung von Datendiensten im Vergleich zu herkömmlichen Installationen vor Ort drastisch
+ Legacy-Hardware außer Dienst stellen und Hardware-Aktualisierungszyklen deutlich reduzieren
+ Nutzen Sie die pay-as-you-go Preisgestaltung, die mit dem Cloudera-Lizenzmodell (CCU) auf Cloudera-Workloads auf AWS ausgedehnt wird
+ Nutzen Sie die Vorteile einer schnelleren Bereitstellung und einer verbesserten Integration mit Plattformen für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD)
+ Verwenden Sie eine einzige einheitliche Plattform (CDP) für mehrere Workloads

Cloudera unterstützt alle wichtigen Workloads, einschließlich Machine Learning, Data Engineering, Data Warehouse, Operational Database, Stream Processing (CSP) sowie Datensicherheit und Governance. Cloudera bietet diese Workloads seit vielen Jahren vor Ort an, und Sie können diese Workloads in die AWS-Cloud migrieren, indem Sie CDP Public Cloud mit Workload Manager und Replication Manager verwenden. 

Cloudera Shared Data Experience (SDX) bietet einen gemeinsamen Metadatenkatalog für diese Workloads, um eine konsistente Datenverwaltung und einen konsistenten Betrieb zu ermöglichen. SDX bietet außerdem umfassende, differenzierte Sicherheit zum Schutz vor Bedrohungen und eine einheitliche Steuerung für Prüf- und Suchfunktionen zur Einhaltung von Standards wie dem Payment Card Industry Data Security Standard (PCI DSS) und der DSGVO. 

**Die CDP-Migration auf einen Blick**


|  |  | 
| --- |--- |
|    Workload | Quell-Workload | CDH, HDP und CDP Private Cloud | 
| --- |--- |--- |
| Quellumgebung | Windows, LinuxLokal, Colocation oder jede Umgebung außerhalb von AWS | 
| Ziel-Workload | CDP Public Cloud auf AWS | 
| Zielumgebung | Bereitstellungsmodell: KundenkontoBetriebsmodell: customer/Cloudera Steuerungsebene | 
| ** **** ****Migration** | Migrationsstrategie (7Rs) | Rehosten, Neuplattformen oder Refactoring | 
| Handelt es sich um ein Upgrade der Workload-Version? | Ja | 
| Dauer der Migration | Bereitstellung: Ungefähr eine Woche, um ein Kundenkonto, eine vom Kunden verwaltete Virtual Private Cloud (VPC) und eine CDP Public Cloud-Umgebung zu erstellen.Migrationsdauer: 1—4 Monate, abhängig von der Komplexität und Größe der Arbeitslast. | 
| **Kosten** | Kosten für die Ausführung des Workloads auf AWS | Im Großen und Ganzen gehen die Kosten einer CDH-Workload-Migration zu AWS davon aus, dass Sie eine neue Umgebung auf AWS einrichten werden. Dazu gehören die Abrechnung von Zeit und Aufwand des Personals sowie die Bereitstellung von Rechenressourcen und die Lizenzierung von Software für die neue Umgebung.Das auf der Cloud-Nutzung basierende Preismodell von Cloudera bietet Ihnen die Flexibilität, die Vorteile von Bursting- und automatischen Skalierungsfunktionen zu nutzen. Weitere Informationen finden Sie unter [CDP Public Cloud-Servicetarife auf der Cloudera-Website](https://www.cloudera.com/products/pricing/cdp-public-cloud-service-rates.html).Cloudera Enterprise [Data Hub](https://www.cloudera.com/products/enterprise-data-hub.html) basiert auf Amazon Elastic Compute Cloud (Amazon EC2) und bildet traditionelle Cluster eng ab. Data Hub kann [angepasst werden, was](https://docs.cloudera.com/data-hub/cloud/create-cluster-aws/topics/mc-creating-a-cluster.html) sich jedoch auf die Kosten auswirken wird.[CDP Public Cloud Data Warehouse](https://docs.cloudera.com/data-warehouse/cloud/index.html), [Cloudera Machine Learning](https://docs.cloudera.com/machine-learning/cloud/product/topics/ml-product-overview.html) und [Cloudera Data Engineering (CDE) sind containerbasiert und können so konfiguriert](https://docs.cloudera.com/data-engineering/cloud/index.html) werden, dass sie automatisch skalieren. | 
| ** **** ****Infrastrukturvereinbarungen und Rahmenbedingungen** | Systemanforderungen | Weitere Informationen finden Sie im Abschnitt [Voraussetzungen](#migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs). | 
| SLA | Weitere Informationen finden Sie unter [Cloudera Service Level Agreement für CDP Public](https://www.cloudera.com/legal/terms-and-conditions/cdp-public-cloud-sla.html) Cloud. | 
| DR | Weitere Informationen finden Sie in der Cloudera-Dokumentation unter [Disaster Recovery](https://docs.cloudera.com/cdp-reference-architectures/latest/cdp-ra-operations/topics/cdp-ra-abstract.html). | 
| Lizenz- und Betriebsmodell (für AWS-Zielkonto) | Modell „Bring Your Own License“ (BYOL) | 
| ** ****Compliance** | Anforderungen an Sicherheit | Weitere Informationen finden Sie in der [Cloudera-Dokumentation im Überblick über die Cloudera-Sicherheit](https://docs.cloudera.com/cdp-private-cloud-base/7.1.6/security-overview/topics/cm-security-overview.html). | 
| [Andere Compliance-Zertifizierungen](https://aws.amazon.com/compliance/programs) | Informationen zur Einhaltung der [Allgemeinen Datenschutzverordnung (DSGVO](https://www.cloudera.com/solutions/lower-business-risks/general-data-protection-regulation.html)) und zum [CDP Trust](https://www.cloudera.com/products/trust-center.html) Center finden Sie auf der Cloudera-Website. | 

## Voraussetzungen und Einschränkungen
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-prereqs"></a>

**Voraussetzungen**
+ [AWS-Kontoanforderungen](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html), einschließlich Konten, Ressourcen, Services und Berechtigungen, z. B. Einrichtung von Rollen und Richtlinien für AWS Identity and Access Management (IAM)
+ [Voraussetzungen für die Bereitstellung von CDP](https://docs.cloudera.com/cdp-public-cloud/cloud/getting-started/topics/cdp-set_up_cdp_prerequisites.html) über die Cloudera-Website

Die Migration erfordert die folgenden Rollen und Fachkenntnisse:


| 
| 
| Rolle | Fähigkeiten und Verantwortlichkeiten | 
| --- |--- |
| Führung im Bereich Migration | Sorgt für die Unterstützung der Geschäftsleitung, die Zusammenarbeit, Planung, Implementierung und Bewertung im Team | 
| Cloudera KMU | Fachkenntnisse in den Bereichen CDH-, HDP- und CDP-Administration, Systemadministration und Architektur | 
| AWS-Architekt | Kenntnisse in AWS-Services, Netzwerken, Sicherheit und Architekturen | 

## Architektur
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-architecture"></a>

Der Aufbau der geeigneten Architektur ist ein entscheidender Schritt, um sicherzustellen, dass Migration und Leistung Ihren Erwartungen entsprechen. Damit Ihre Migrationsbemühungen die Annahmen dieses Playbooks erfüllen, muss Ihre Zieldatenumgebung in der AWS-Cloud, entweder auf gehosteten Virtual Private Cloud (VPC) -Instances oder CDP, in Bezug auf Betriebssystem- und Softwareversionen sowie wichtige Maschinenspezifikationen Ihrer Quellumgebung entsprechen.

Das folgende Diagramm (mit freundlicher Genehmigung aus dem [Cloudera Shared Data Experience-Datenblatt](https://www.cloudera.com/content/dam/www/marketing/resources/datasheets/cloudera-sdx-datasheet.pdf?daqp=true) wiedergegeben) zeigt die Infrastrukturkomponenten für die CDP-Umgebung und wie die Stufen oder Infrastrukturkomponenten interagieren. 

![\[Komponenten der CDP-Umgebung\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bb47435e-2638-425c-ac37-7d55053452ac/images/91d62277-7fde-4ec6-8e2b-86a446e2f6ee.png)


Die Architektur umfasst die folgenden CDP-Komponenten:
+ Data Hub ist ein Dienst zum Starten und Verwalten von Workload-Clustern, der von Cloudera Runtime unterstützt wird. Sie können die Clusterdefinitionen in Data Hub verwenden, um Workload-Cluster für benutzerdefinierte Anwendungsfälle bereitzustellen und auf sie zuzugreifen und benutzerdefinierte Clusterkonfigurationen zu definieren. Weitere Informationen finden Sie auf der [Cloudera-Website](https://docs.cloudera.com/data-hub/cloud/index.html).
+ Data Flow and Streaming befasst sich mit den wichtigsten Herausforderungen, mit denen Unternehmen bei der Übertragung von Daten konfrontiert sind. Es verwaltet Folgendes:
  + Verarbeitung von Echtzeit-Datenstreaming mit hohem Volumen und großem Umfang
  + Verfolgung der Herkunft und Herkunft von Streaming-Daten
  + Verwaltung und Überwachung von Edge-Anwendungen und Streaming-Quellen

  Weitere Informationen finden Sie unter [Cloudera DataFlow](https://www.cloudera.com/products/dataflow.html) und [CSP](https://www.cloudera.com/products/stream-processing.html) auf der Cloudera-Website.
+ Data Engineering umfasst Datenintegration, Datenqualität und Datenverwaltung, die Unternehmen beim Aufbau und der Pflege von Daten-Pipelines und Workflows unterstützen. Weitere Informationen finden Sie auf der [Cloudera-Website](https://docs.cloudera.com/data-engineering/cloud/index.html). Erfahren Sie mehr über [die Unterstützung für Spot-Instances, um Kosteneinsparungen bei AWS for Cloudera Data Engineering-Workloads zu ermöglichen](https://docs.cloudera.com/data-engineering/cloud/cost-management/topics/cde-spot-instances.html).
+ ****Mit Data Warehouse können Sie unabhängige Data Warehouses und Data Marts einrichten, die automatisch skaliert werden, um den Workload-Anforderungen gerecht zu werden. Dieser Service bietet isolierte Recheninstanzen und automatisierte Optimierungen für jedes Data Warehouse und jeden Data Mart und hilft Ihnen, während der Besprechung SLAs Kosten zu sparen. Weitere Informationen finden Sie auf der [Cloudera-Website](https://docs.cloudera.com/data-warehouse/cloud/index.html). Erfahren Sie mehr über [Kostenmanagement](https://docs.cloudera.com/data-warehouse/cloud/planning/topics/dw-manage-cloud-costs.html) und [auto-scaling](https://docs.cloudera.com/data-warehouse/cloud/auto-scaling/topics/dw-public-cloud-autoscaling-overview.html) für Cloudera Data Warehouse auf AWS.
+ Die Betriebsdatenbank in CDP bietet eine zuverlässige und flexible Grundlage für skalierbare Hochleistungsanwendungen. Sie bietet eine jederzeit verfügbare, skalierbare Echtzeitdatenbank, die traditionelle strukturierte Daten zusammen mit neuen, unstrukturierten Daten auf einer einheitlichen Betriebs- und Warehousing-Plattform bereitstellt. [Weitere Informationen finden Sie auf der Cloudera-Website.](https://www.cloudera.com/products/operational-db.html)
+ Machine Learning ist eine Cloud-native Plattform für maschinelles Lernen, die Self-Service-Funktionen für Datenwissenschaft und Datentechnik zu einem einzigen, portablen Service innerhalb einer Unternehmensdatencloud zusammenführt. Sie ermöglicht den skalierbaren Einsatz von maschinellem Lernen und künstlicher Intelligenz (KI) für Daten an jedem beliebigen Ort. Weitere Informationen finden Sie auf der [Cloudera-Website](https://docs.cloudera.com/machine-learning/cloud/index.html).

**CDP auf AWS**

Das folgende Diagramm (mit freundlicher Genehmigung der Cloudera-Website angepasst) zeigt die High-Level-Architektur von CDP auf AWS. CDP implementiert ein [eigenes Sicherheitsmodell](https://docs.cloudera.com/runtime/7.1.0/cdp-security-overview/topics/security-management-console-security.html), um sowohl Konten als auch den Datenfluss zu verwalten. Diese werden mithilfe von [kontenübergreifenden](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-aws-req-credential.html) Rollen in [IAM](https://aws.amazon.com/iam/) integriert. 

![\[CDP auf AWS-High-Level-Architektur\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bb47435e-2638-425c-ac37-7d55053452ac/images/54420517-38b4-4e82-bd19-9ded50ed009c.png)


Die CDP-Steuerebene befindet sich in einem Cloudera-Master-Konto in einer eigenen VPC. Jedes Kundenkonto hat sein eigenes Unterkonto und eine eigene VPC. Kontoübergreifende IAM-Rollen und SSL-Technologien leiten den Verwaltungsdatenverkehr zur und von der Steuerungsebene an Kundenservices weiter, die sich in öffentlichen Subnetzen befinden, die über das Internet routbar sind, innerhalb jeder Kunden-VPC. Auf der VPC des Kunden bietet die Cloudera Shared Data Experience (SDX) unternehmensweite Sicherheit mit einheitlicher Governance und Compliance, sodass Sie schneller Erkenntnisse aus Ihren Daten gewinnen können. SDX ist eine Designphilosophie, die in alle Cloudera-Produkte integriert ist. Weitere Informationen zu [SDX](https://docs.cloudera.com/cdp-public-cloud/cloud/overview/topics/cdp-services.html) und der [CDP Public Cloud-Netzwerkarchitektur für AWS](https://docs.cloudera.com/cdp-public-cloud/cloud/aws-refarch/topics/cdp-pc-aws-refarch-overview.html) finden Sie in der Cloudera-Dokumentation.

## Tools
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [Amazon Elastic Kubernetes Service (Amazon EKS)](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) hilft Ihnen, Kubernetes auf AWS auszuführen, ohne Ihre eigene Kubernetes-Steuerebene oder Knoten installieren oder verwalten zu müssen.
+ [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.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.
+ [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.

**Automatisierung und Tools**
+ Für zusätzliche Tools können Sie [Cloudera Backup Data Recovery (BDR)](https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/cm_bdr_tutorials.html), [AWS Snowball und [AWS Snowmobile](https://aws.amazon.com/snowmobile/)](https://aws.amazon.com/snowball/) verwenden, um Daten von lokalen CDH, HDP und CDP auf AWS-gehostete CDP zu migrieren.
+ Für neue Bereitstellungen empfehlen wir, die [AWS-Partnerlösung für CDP](https://aws.amazon.com/solutions/partners/terraform-modules/cdp-public-cloud/) zu verwenden.

## Epics
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-epics"></a>

### Bereiten Sie sich auf die Migration vor
<a name="prepare-for-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Binden Sie das Cloudera-Team ein. | Cloudera verfolgt ein standardisiertes Kooperationsmodell mit seinen Kunden und kann mit Ihrem Systemintegrator (SI) zusammenarbeiten, um denselben Ansatz zu fördern. Wenden Sie sich an das Cloudera-Kundenteam, damit es Ihnen mit Rat und Tat zur Seite steht und Ihnen die notwendigen technischen Ressourcen für den Start des Projekts zur Verfügung stellt. Durch die Kontaktaufnahme mit dem Cloudera-Team wird sichergestellt, dass sich alle erforderlichen Teams auf die Migration vorbereiten können, wenn der Termin näher rückt. Sie können sich an Cloudera Professional Services wenden, um Ihre Cloudera-Implementierung schnell, zu geringeren Kosten und mit Spitzenleistung von der Pilotphase zur Produktion zu überführen. Eine vollständige Liste der Angebote finden Sie auf der [Cloudera-Website](https://www.cloudera.com/about/services-and-support/professional-services.html). | Leiter der Migration | 
| Erstellen Sie eine CDP Public Cloud-Umgebung auf AWS für Ihre VPC. | Arbeiten Sie mit Cloudera Professional Services oder Ihrem SI zusammen, um CDP Public Cloud in einer VPC auf AWS zu planen und bereitzustellen. | Cloud-Architekt, Cloudera SME | 
| Priorisieren und bewerten Sie die zu migrierenden Workloads. | Bewerten Sie alle Ihre lokalen Workloads, um herauszufinden, welche Workloads am einfachsten zu migrieren sind. Anwendungen, die nicht geschäftskritisch sind, sollten am besten zuerst verschoben werden, da sie nur minimale Auswirkungen auf Ihre Kunden haben werden. Speichern Sie die geschäftskritischen Workloads bis zum Schluss, nachdem Sie andere Workloads erfolgreich migriert haben.Transiente Workloads (CDP Data Engineering) lassen sich einfacher migrieren als persistente Workloads (CDP Data Warehouse). Es ist auch wichtig, bei der Migration das Datenvolumen und die Standorte zu berücksichtigen. Zu den Herausforderungen können die kontinuierliche Replikation von Daten aus einer lokalen Umgebung in die Cloud und die Änderung der Datenerfassungspipelines gehören, um Daten direkt in die Cloud zu importieren. | Leitung der Migration | 
| Erörtern Sie Aktivitäten zur Migration von CDH, HDP, CDP und Legacy-Anwendungen. | Erwägen Sie mit Cloudera Workload Manager die folgenden Aktivitäten und beginnen Sie mit der Planung:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Leitung der Migration | 
| Erfüllen Sie die Anforderungen und Empfehlungen von Cloudera Replication Manager. | Arbeiten Sie mit Cloudera Professional Services und Ihrem SI zusammen, um die Migration von Workloads in Ihre CDP Public Cloud-Umgebung auf AWS vorzubereiten. Wenn Sie die folgenden Anforderungen und Empfehlungen kennen, können Sie häufig auftretende Probleme während und nach der Installation des Replication Manager-Service vermeiden.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws.html) | Leiter der Migration | 

### CDP zu AWS migrieren
<a name="migrate-cdp-to-aws"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie den ersten Workload für dev/test Umgebungen mithilfe von Cloudera Workload Manager. | Ihr SI kann Ihnen helfen, Ihren ersten Workload in die AWS-Cloud zu migrieren. Dabei sollte es sich um eine Anwendung handeln, die nicht kundenorientiert oder geschäftskritisch ist. Ideale Kandidaten für die dev/test Migration sind Anwendungen mit Daten, die die Cloud problemlos aufnehmen kann, wie z. B. CDP Data Engineering-Workloads. Dabei handelt es sich um einen vorübergehenden Workload, auf den in der Regel weniger Benutzer zugreifen, verglichen mit einem persistenten Workload wie einem CDP Data Warehouse-Workload, bei dem viele Benutzer ununterbrochenen Zugriff benötigen. Data Engineering-Workloads sind nicht dauerhaft, wodurch die Auswirkungen auf das Geschäft minimiert werden, falls etwas schief geht. Diese Aufgaben können jedoch für die Produktionsberichterstattung von entscheidender Bedeutung sein. Priorisieren Sie daher zunächst Datenverarbeitungs-Workloads mit geringen Auswirkungen. | Leiter der Migration | 
| Wiederholen Sie die Migrationsschritte nach Bedarf. | Cloudera Workload Manager hilft bei der Identifizierung von Workloads, die sich am besten für die Cloud eignen. Er bietet Kennzahlen wie Cloud-Leistungsbewertungen, sizing/capacity Pläne für die Zielumgebung und Replikationspläne. Die besten Kandidaten für eine Migration sind saisonale Workloads, Ad-hoc-Berichte und zeitweilige Jobs, die nicht viele Ressourcen verbrauchen.Cloudera Replication Manager verschiebt Daten von lokalen Standorten in die Cloud und von der Cloud in lokale Umgebungen.Optimieren Sie mithilfe von Workload Manager proaktiv Workloads, Anwendungen, Leistung und Infrastrukturkapazität für Data Warehousing, Data Engineering und maschinelles Lernen. [Eine vollständige Anleitung zur Modernisierung eines Data Warehouse finden Sie auf der Cloudera-Website.](https://www.cloudera.com/content/dam/www/marketing/resources/webinars/modern-data-warehouse-fundamentals.png.landing.html) | Cloudera SME | 

## Zugehörige Ressourcen
<a name="migrate-on-premises-cloudera-workloads-to-cloudera-data-platform-on-aws-resources"></a>

Cloudera-Dokumentation:
+ [Registrierung klassischer Cluster bei CDP, Cloudera Manager und Replication Manager:](https://docs.cloudera.com/replication-manager/cloud/operations/topics/rm-requirements-for-bdr-cdh-clusters.html)
  + [Management-Konsole](https://docs.cloudera.com/management-console/cloud/overview/topics/mc-management-console.html)
  + [Replication Manager: Hive-Replikation](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-replication-of-data-using-hive.html)
+ [Sentry-Replikation](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-policy-replication.html) 
+ [Sentry-Berechtigungen](https://docs.cloudera.com/replication-manager/cloud/core-concepts/topics/rm-sentry-ranger-permissions.html)
+ [Checkliste für die Planung von Data Hub-Clustern](https://docs.cloudera.com/data-hub/cloud/cluster-planning/topics/dh-cluster-checklist.html)
+ [Workload Manager-Architektur](https://docs.cloudera.com/workload-manager/cloud/configuration/topics/wm-public-architecture-wm.html)
+ [Anforderungen für Replication Manager](https://docs.cloudera.com/replication-manager/cloud/index.html)
+ [Beobachtbarkeit der Cloudera-Datenplattform](https://www.cloudera.com/products/observability.html)
+ [AWS-Anforderungen](https://docs.cloudera.com/cdp-public-cloud/cloud/requirements-aws/topics/mc-requirements-aws.html)

AWS-Dokumentation:
+ [Cloud-Datenmigration](https://aws.amazon.com/cloud-data-migration/)

# Verbindungsfehler nach der Migration von Microsoft SQL Server zur AWS-Cloud beheben
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud"></a>

*Premkumar Chelladurai, Amazon Web Services*

## Zusammenfassung
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-summary"></a>

Nachdem Sie Microsoft SQL Server, der unter Windows Server 2008 R2, 2012 oder 2012 R2 ausgeführt wird, zu Amazon Elastic Compute Cloud (Amazon EC2) -Instances in der Amazon Web Services (AWS) -Cloud migriert haben, schlägt die Verbindung zu SQL Server fehl und die folgenden Fehler werden angezeigt: 
+ `[Microsoft][ODBC SQL Server Driver][DBNETLIB] General Network error`
+ `ERROR [08S01] [Microsoft][SQL Native Client]Communication link failure. System.Data.SqlClient.SqlException: A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)`
+ `TCP Provider: The semaphore timeout period has expired`

Dieses Muster beschreibt, wie Sie diese Fehler beheben können, indem Sie die Windows Scalable Networking Pack (SNP) -Features auf Betriebssystem- (OS) und Netzwerkschnittstellenebene für SQL Server deaktivieren, der unter Windows Server 2008 R2, 2012 oder 2012 R2 ausgeführt wird.

## Voraussetzungen und Einschränkungen
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-prereqs"></a>

**Voraussetzungen**
+ Administratorrechte für Windows Server.
+ Wenn Sie AWS Application Migration Service als Migrationstool verwendet haben, benötigen Sie eine der folgenden Windows Server-Versionen:
  + Windows Server 2008 R2 Service Pack 1, 2012 oder 2012 R2
+ Wenn Sie CloudEndure Migration als Migrationstool verwendet haben, benötigen Sie eine der folgenden Windows Server-Versionen:
  + Windows Server 2003 R2 Service Pack 3, 2008, 2008 R2 Service Pack 1, 2012 oder 2012 R2

## Tools
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-tools"></a>
+ [Amazon EC2](https://docs.aws.amazon.com/ec2/index.html) — Amazon Elastic Compute Cloud (Amazon EC2) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können Amazon verwenden EC2 , um so viele oder so wenige virtuelle Server zu starten, wie Sie benötigen, und Sie können nach oben oder unten skalieren. 
+ [Windows Server](https://docs.microsoft.com/en-us/windows-server/) — Windows Server ist eine Plattform für den Aufbau einer Infrastruktur aus verbundenen Anwendungen, Netzwerken und Webdiensten.

## Epen
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-epics"></a>

### Schalten Sie die SNP-Funktionen auf Betriebssystem- und elastic network interface Network-Schnittstellenebene aus
<a name="turn-off-snp-features-at-the-os-and-elastic-network-interface-levels"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Schalten Sie die SNP-Funktionen auf Betriebssystemebene aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | AWS-Administrator, AWS-Systemadministrator, Migrationsingenieur, Cloud-Administrator | 
| Schalten Sie die SNP-Funktionen auf der Ebene der elastic network interface aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.html) | AWS-Administrator, Cloud-Administrator, AWS-Systemadministrator | 

## Zugehörige Ressourcen
<a name="resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud-resources"></a>
+ [Wie behebt man Probleme mit erweiterten Netzwerkleistungsfunktionen wie RSS und NetDMA](https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/troubleshoot-network-performance-features-rss-netdma)

# Starten Sie den AWS Replication Agent SELinux nach dem Neustart eines RHEL-Quellservers automatisch neu, ohne ihn zu deaktivieren
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server"></a>

*Anil Kunapareddy, Venkatramana Chintha und Shanmugam Shanker, Amazon Web Services*

## Zusammenfassung
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-summary"></a>

Der AWS Application Migration Service hilft Ihnen dabei, die Migration Ihres Red Hat Enterprise Linux (RHEL) -Workloads zur Amazon Web Services (AWS) Cloud zu vereinfachen, zu beschleunigen und zu automatisieren. Um Quellserver zu Application Migration Service hinzuzufügen, installieren Sie den AWS Replication Agent auf den Servern.

Der Application Migration Service bietet asynchrone Replikation auf Blockebene in Echtzeit. Das bedeutet, dass Sie während des gesamten Replikationsprozesses den normalen IT-Betrieb fortsetzen können. Diese IT-Operationen erfordern möglicherweise, dass Sie Ihren RHEL-Quellserver während der Migration neu starten oder neu starten. In diesem Fall wird der AWS Replication Agent nicht automatisch neu gestartet und Ihre Datenreplikation wird gestoppt. In der Regel können Sie Security-Enhanced Linux (SELinux) auf den **deaktivierten** oder **permissiven** Modus setzen, um den AWS Replication Agent automatisch neu zu starten. [Die Sicherheitsrichtlinien Ihres Unternehmens verbieten jedoch möglicherweise die Deaktivierung SELinux, und Sie müssen Ihre Dateien möglicherweise auch neu kennzeichnen.](https://access.redhat.com/solutions/3176)

Dieses Muster beschreibt, wie Sie den AWS Replication Agent automatisch neu starten, ohne ihn auszuschalten, SELinux wenn Ihr RHEL-Quellserver neu gestartet wird oder während einer Migration neu gestartet wird. 

## Voraussetzungen und Einschränkungen
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Ein lokaler RHEL-Workload, den Sie in die AWS-Cloud migrieren möchten. 
+ Der Application Migration Service wurde über die Application Migration Service-Konsole initialisiert. Die Initialisierung ist nur erforderlich, wenn Sie diesen Dienst zum ersten Mal verwenden. Anweisungen finden Sie in der [Dokumentation zum Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/mandatory-setup.html).
+ Eine bestehende [AWS Identity and Access Management (IAM) -Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) für den Application Migration Service. Weitere Informationen finden Sie in der [Dokumentation zum Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html).

**Versionen**
+ RHEL Version 7 oder höher

## Tools
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-tools"></a>

**AWS-Services**
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) ist eine hochautomatisierte lift-and-shift (Rehost-) Lösung, die die Migration von Anwendungen zu AWS vereinfacht, beschleunigt und die Kosten senkt.

**Linux-Befehle**

Die folgende Tabelle enthält eine Liste der Linux-Befehle, die Sie auf Ihrem RHEL-Quellserver ausführen werden. Diese werden auch in den Epen und Geschichten zu diesem Muster beschrieben. 


| 
| 
| Befehl | Description | 
| --- |--- |
| `#systemctl –version` | Identifiziert die Systemversion. | 
| `#systemctl list-units --type=service` | Listet alle aktiven Dienste auf, die auf dem RHEL-Server verfügbar sind. | 
| `#systemctl list-units --type=service \| grep running` | Listet alle Dienste auf, die derzeit auf dem RHEL-Server ausgeführt werden. | 
| `#systemctl list-units --type=service \| grep failed` | Listet alle Dienste auf, die nach dem Neustart oder Neustart des RHEL-Servers nicht geladen werden konnten. | 
| `restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Ändert den Kontext zu. `aws-replication-service` | 
| `yum install policycoreutils*` | Installiert die wichtigsten Richtliniendienstprogramme, die für den Betrieb des SELinux Systems erforderlich sind. | 
| `ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Durchsucht das Auditprotokoll und erstellt ein Modul für Richtlinien. | 
| `semodule -i my-modprobe.pp` | Aktiviert die Richtlinie. | 
| `cat my-modprobe.te` | Zeigt den Inhalt der `my-modprobe.te` Datei an. | 
| `semodule -l \| grep my-modprobe` | Überprüft, ob die Richtlinie in das SELinux Modul geladen wurde. | 

## Epen
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-epics"></a>

### Installieren Sie den AWS Replication Agent und starten Sie den RHEL-Quellserver neu
<a name="install-the-aws-replication-agent-and-reboot-the-rhel-source-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Application Migration Service-Benutzer mit einem Zugriffsschlüssel und einem geheimen Zugriffsschlüssel.  | Um den AWS Replication Agent zu installieren, müssen Sie einen Application Migration Service-Benutzer mit den erforderlichen AWS-Anmeldeinformationen erstellen. Anweisungen finden Sie in der [Dokumentation zum Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | Migrationsingenieur | 
| Installieren Sie den AWS Replication Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.html) | Migrationsingenieur | 
| Starten Sie den RHEL-Quellserver neu oder starten Sie ihn neu. | [Starten Sie Ihren RHEL-Quellserver neu oder starten Sie ihn neu, wenn der **Datenreplikationsstatus im Migrations-Dashboard****Blockiert** angezeigt wird.](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html) | Migrationsingenieur | 
| Überprüfen Sie den Status der Datenreplikation. | Warten Sie eine Stunde und überprüfen Sie dann erneut den **Status der Datenreplikation** im Migrations-Dashboard. Es sollte sich im Status **Fehlerfrei** befinden. | Ingenieur für Migration | 

### Überprüfen Sie den Status des AWS Replication Agents auf dem RHEL-Quellserver
<a name="check-aws-replication-agent-status-on-the-rhel-source-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die Systemversion. | Öffnen Sie die Befehlszeilenschnittstelle für Ihren RHEL-Quellserver und führen Sie den folgenden Befehl aus, um die Systemversion zu identifizieren:`#systemctl –version` | Migrationsingenieur | 
| Listet alle aktiven Dienste auf. | Um alle aktiven Dienste aufzulisten, die auf dem RHEL-Server verfügbar sind, führen Sie den folgenden Befehl aus:`#systemctl list-units --type=service` | Migrationsingenieur | 
| Listet alle laufenden Dienste auf. | Verwenden Sie den folgenden Befehl, um alle Dienste aufzulisten, die derzeit auf dem RHEL-Server ausgeführt werden:`#systemctl list-units --type=service \| grep running` | Migrationsingenieur | 
| Listet alle Dienste auf, die nicht geladen werden konnten. | Um alle Dienste aufzulisten, die nach dem Neustart oder Neustart des RHEL-Servers nicht geladen werden konnten, führen Sie den folgenden Befehl aus:`#systemctl list-units --type=service \| grep failed` | Migrationsingenieur | 

### Erstellen Sie das SELinux Modul und führen Sie es aus
<a name="create-and-run-the-selinux-module"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ändern Sie den Sicherheitskontext. | Führen Sie in der Befehlszeilenschnittstelle für Ihren RHEL-Quellserver den folgenden Befehl aus, um den Sicherheitskontext auf den AWS-Replikationsservice zu ändern:`restorecon -Rv /etc/rc.d/init.d/aws-replication-service` | Migrationsingenieur | 
| Installieren Sie die wichtigsten Dienstprogramme. | Führen Sie den folgenden Befehl aus, um die Kerndienstprogramme zu installieren, die für den Betrieb des SELinux Systems und seiner Richtlinien erforderlich sind:`yum install policycoreutils*` | Ingenieur für Migration | 
| Durchsuchen Sie das Audit-Protokoll und erstellen Sie ein Modul für Richtlinien. | Führen Sie den Befehl aus:`ausearch -c "insmod" --raw \| audit2allow -M my-modprobe` | Ingenieur für Migration | 
| Zeigt den Inhalt der my-modprobe-te Datei an.  | Die `my-modprobe.te` Datei wird mit dem Befehl **audit2allow** generiert. Sie umfasst die SELinux Domänen, das Quellverzeichnis der Richtlinie und die Unterverzeichnisse und spezifiziert die Zugriffsvektorregeln und Übergänge, die den Domänen zugeordnet sind. Führen Sie den folgenden Befehl aus, um den Inhalt der Datei anzuzeigen:`cat my modprobe.te` | Ingenieur für Migration | 
| Aktivieren Sie die Richtlinie. | Führen Sie den folgenden Befehl aus, um das Modul einzufügen und das Richtlinienpaket zu aktivieren:`semodule -i my-modprobe.pp` | Ingenieur für Migration | 
| Prüfen Sie, ob das Modul geladen wurde.  | Führen Sie den Befehl aus:`semodule -l \| grep my-modprobe`Nachdem das SELinux Modul geladen wurde, müssen Sie während Ihrer Migration nicht mehr in SELinux den **deaktivierten** oder **permissiven** Modus wechseln. | Ingenieur für Migration | 
| Starten Sie den RHEL-Quellserver neu oder starten Sie ihn neu und überprüfen Sie den Status der Datenreplikation. | Öffnen Sie die AWS Migration Service Service-Konsole, navigieren Sie zu **Status der Datenreplikation** und starten Sie dann Ihren RHEL-Quellserver neu oder starten Sie ihn neu. Die Datenreplikation sollte jetzt automatisch fortgesetzt werden, nachdem der RHEL-Quellserver neu gestartet wurde. | Ingenieur für Migration | 

## Zugehörige Ressourcen
<a name="restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server-resources"></a>
+ [Dokumentation zum Service für die Anwendungsmigration](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Technisches Schulungsmaterial](https://docs.aws.amazon.com/mgn/latest/ug/mgn-training.html)
+ [Behebung von Problemen mit dem AWS Replication Agent](https://docs.aws.amazon.com/mgn/latest/ug/Troubleshooting-Agent-Issues.html)
+ [Richtlinien für den Service zur Anwendungsmigration](https://docs.aws.amazon.com/mgn/latest/ug/mgn-policies.html)

# Re-Architekt
<a name="migration-rearchitect-pattern-list"></a>

**Topics**
+ [Konvertiert VARCHAR2 (1) den Datentyp für Oracle in den booleschen Datentyp für Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Anwendungsbenutzer und Rollen in Aurora PostgreSQL-kompatibel erstellen](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Emulieren Sie Oracle DR mithilfe einer PostgreSQL-kompatiblen globalen Aurora-Datenbank](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Implementieren Sie SHA1 Hashing für PII-Daten bei der Migration von SQL Server zu PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [Schrittweise Migration von Amazon RDS for Oracle zu Amazon RDS for PostgreSQL mithilfe von Oracle SQL Developer und AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Laden Sie BLOB-Dateien mithilfe der Dateikodierung in Aurora PostgreSQL-kompatibel in TEXT](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for PostgreSQL mit AWS SCT und unter Verwendung von und AWS DMS AWS CLI CloudFormation](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.md)
+ [Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for PostgreSQL im SSL-Modus mithilfe von AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrieren Sie Oracle SERIALLY\$1REUSABLE Pragma-Pakete nach PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migrieren Sie externe Oracle-Tabellen zu Amazon Aurora PostgreSQL-kompatibel](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Migrieren Sie funktionsbasierte Indizes von Oracle nach PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migrieren Sie native Oracle-Funktionen mithilfe von Erweiterungen zu PostgreSQL](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Migrieren Sie mithilfe von AWS DMS eine Db2-Datenbank von Amazon EC2 zu Aurora MySQL-kompatibel](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Migrieren Sie mithilfe von AWS DMS eine Microsoft SQL Server-Datenbank von Amazon EC2 zu Amazon DocumentDB](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Migrieren Sie eine lokale ThoughtSpot Falcon-Datenbank zu Amazon Redshift](migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift.md)
+ [Migrieren Sie mithilfe von Oracle von Oracle Database zu Amazon RDS for PostgreSQL GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Migrieren Sie eine partitionierte Oracle-Tabelle mithilfe von AWS DMS zu PostgreSQL](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Migrieren Sie von Amazon RDS for Oracle zu Amazon RDS for MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Migrieren Sie mithilfe von AWS DMS und AWS SCT von IBM Db2 auf Amazon EC2 zu Aurora PostgreSQL-kompatibel](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie mithilfe von AWS DMS von Oracle 8i oder 9i zu Amazon RDS for PostgreSQL SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Migrieren Sie mithilfe von Materialized Views und AWS DMS von Oracle 8i oder 9i zu Amazon RDS for PostgreSQL](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Migrieren Sie mithilfe von AWS DMS und AWS SCT von Oracle auf Amazon EC2 zu Amazon RDS for MySQL](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie mithilfe von AWS DMS und AWS SCT eine Oracle-Datenbank von Amazon EC2 zu Amazon RDS for MariaDB](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mit AWS DMS und AWS SCT zu Amazon RDS for MySQL](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mithilfe eines Oracle-Bystanders und AWS DMS zu Amazon RDS for PostgreSQL](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Migrieren Sie eine Oracle-Datenbank mit AWS DMS und AWS SCT zu Amazon Redshift](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine Oracle-Datenbank mit AWS DMS und AWS SCT zu Aurora PostgreSQL](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie Daten von einer lokalen Oracle-Datenbank zu Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Migrieren Sie mithilfe von AWS DMS von SAP ASE zu Amazon RDS for SQL Server](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mit AWS DMS zu Amazon Redshift](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mithilfe von AWS SCT-Datenextraktionsagenten zu Amazon Redshift](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Migrieren Sie Legacy-Anwendungen von Oracle Pro\$1C zu ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Migrieren Sie virtuell generierte Spalten von Oracle nach PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Richten Sie die Oracle UTL\$1FILE-Funktionalität auf Aurora PostgreSQL-Compatible ein](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Datenbankobjekte nach der Migration von Oracle zu Amazon Aurora PostgreSQL validieren](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# Konvertiert VARCHAR2 (1) den Datentyp für Oracle in den booleschen Datentyp für Amazon Aurora PostgreSQL
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql"></a>

*Naresh Damera, Amazon Web Services*

## Zusammenfassung
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-summary"></a>

Während einer Migration von Amazon Relational Database Service (Amazon RDS) for Oracle zu Amazon Aurora PostgreSQL-Compatible Edition kann es bei der Validierung der Migration in () zu einem Datenkonflikt kommen. AWS Database Migration Service AWS DMS Um diese Diskrepanz zu vermeiden, können Sie den Datentyp VARCHAR2 (1) in den booleschen Datentyp konvertieren.

VARCHAR2 Der Datentyp speichert Textzeichenfolgen variabler Länge, und VARCHAR2 (1) gibt an, dass die Zeichenfolge 1 Zeichen lang oder 1 Byte lang ist. Weitere Informationen zu VARCHAR2 finden Sie unter [Integrierte Oracle-Datentypen](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) (Oracle-Dokumentation).

In diesem Muster sind die Daten VARCHAR2 (1) in der Spalte der Beispielquellendatentabelle entweder **Y** für *Ja* oder **N** für *Nein*.  Dieses Muster enthält Anweisungen zur Verwendung von AWS DMS und AWS Schema Conversion Tool (AWS SCT) zur Konvertierung dieses Datentyps von den **Y** - und **N-Werten** in VARCHAR2 (1) in die Werte **Wahr** oder **Falsch** in Boolean.

**Beabsichtigte Zielgruppe**

Dieses Muster wird für Benutzer empfohlen, die Erfahrung mit der Migration von Oracle-Datenbanken auf Aurora PostgreSQL-Compatible haben. AWS DMS Halten Sie sich beim Abschluss der Migration an die Empfehlungen unter [Converting Oracle to Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html) (Dokumentation).AWS SCT 

## Voraussetzungen und Einschränkungen
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver. AWS-Konto
+ Vergewissern Sie sich, dass Ihre Umgebung für Aurora vorbereitet ist, einschließlich der Einrichtung von Anmeldeinformationen, Berechtigungen und einer Sicherheitsgruppe. Weitere Informationen finden Sie unter [Einrichten Ihrer Umgebung für Amazon Aurora (Aurora-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_SettingUp_Aurora.html)).
+ Eine Amazon RDS for Oracle Oracle-Quelldatenbank, die eine Tabellenspalte mit VARCHAR2 (1) Daten enthält.
+ Eine mit Amazon Aurora PostgreSQL kompatible Zieldatenbank-Instance. Weitere Informationen finden Sie unter [Einen Datenbank-Cluster erstellen und eine Verbindung zu einer Datenbank auf einem Aurora PostgreSQL-Datenbank-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster) herstellen (Aurora-Dokumentation).

**Produktversionen**
+ Amazon RDS for Oracle Version 12.1.0.2 oder höher.
+ AWS DMS Version 3.1.4 oder höher. Weitere Informationen finden Sie unter [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) und [Verwenden einer PostgreSQL-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) (AWS DMS Dokumentation). Wir empfehlen Ihnen, die neueste Version von zu verwenden, um die umfassendste AWS DMS Versions- und Funktionsunterstützung zu erhalten.
+ AWS Schema Conversion Tool (AWS SCT) Version 1.0.632 oder höher. Wir empfehlen Ihnen, die neueste Version von zu verwenden, um die umfassendste AWS SCT Versions- und Funktionsunterstützung zu erhalten.
+ Aurora unterstützt die PostgreSQL-Versionen, die unter [Database Engine Versions for Aurora PostgreSQL-compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) (Aurora-Dokumentation) aufgeführt sind.

## Architektur
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-architecture"></a>

**Quelltechnologie-Stack**

Amazon RDS for Oracle Oracle-Datenbank-Instance

**Zieltechnologie-Stack**

Amazon Aurora PostgreSQL-kompatible Datenbank-Instance

**Quell- und Zielarchitektur**

![\[Datentypen von VARCHAR2 (1) auf Boolean ändern\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5d4dc568-20d8-4883-a942-21c81039d8e6/images/9fd82ae2-56e6-439c-b4cd-9e74fe77b480.png)


## Tools
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-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 Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die oder zwischen Kombinationen von Cloud- und lokalen Konfigurationen. AWS Cloud 
+ [Amazon Relational Database Service (Amazon RDS) für Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der. AWS Cloud
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein mit der Zieldatenbank kompatibles Format konvertiert werden.

**Andere Dienste**
+ [Oracle SQL Developer](https://docs.oracle.com/en/database/oracle/sql-developer/) ist eine integrierte Entwicklungsumgebung, die die Entwicklung und Verwaltung von Oracle-Datenbanken sowohl in herkömmlichen als auch in Cloud-basierten Bereitstellungen vereinfacht. In diesem Muster verwenden Sie dieses Tool, um eine Verbindung zur Amazon RDS for Oracle Oracle-Datenbank-Instance herzustellen und die Daten abzufragen.
+ [pgAdmin](https://www.pgadmin.org/docs/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können. In diesem Muster verwenden Sie dieses Tool, um eine Verbindung zur Aurora-Datenbank-Instance herzustellen und die Daten abzufragen.

## Epen
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-epics"></a>

### Bereite dich auf die Migration vor
<a name="prepare-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Datenbankmigrationsbericht. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | DBA, Entwickler | 
| Deaktivieren Sie Fremdschlüsseleinschränkungen für die Zieldatenbank. | In PostgreSQL werden Fremdschlüssel mithilfe von Triggern implementiert. AWS DMS Lädt während der Vollladephase jede Tabelle einzeln. Es wird dringend empfohlen, Fremdschlüsseleinschränkungen während eines Vollladevorgangs mithilfe einer der folgenden Methoden zu deaktivieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Wenn das Deaktivieren von Fremdschlüsseleinschränkungen nicht möglich ist, erstellen Sie eine AWS DMS Migrationsaufgabe für die Primärdaten, die für die übergeordnete Tabelle und die untergeordnete Tabelle spezifisch ist. | DBA, Entwickler | 
| Deaktivieren Sie die Primärschlüssel und eindeutigen Schlüssel in der Zieldatenbank. | Deaktivieren Sie mit den folgenden Befehlen die Primärschlüssel und Einschränkungen in der Zieldatenbank. Dies trägt dazu bei, die Leistung der ersten Ladeaufgabe zu verbessern.<pre>ALTER TABLE <table> DISABLE PRIMARY KEY;</pre><pre>ALTER TABLE <table> DISABLE CONSTRAINT <constraint_name>;</pre> | DBA, Entwickler | 
| Erstellen Sie die erste Ladeaufgabe. | Erstellen Sie unter die Migrationsaufgabe für das erste Laden. AWS DMS Anweisungen finden Sie unter [Aufgabe erstellen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Wählen Sie für die Migrationsmethode **Vorhandene Daten migrieren** aus. Diese Migrationsmethode wird `Full Load` in der API**** aufgerufen. Starten Sie diese Aufgabe noch nicht. | DBA, Entwickler | 
| Bearbeiten Sie die Aufgabeneinstellungen für die erste Ladeaufgabe. | Bearbeiten Sie die Aufgabeneinstellungen, um eine Datenvalidierung hinzuzufügen. Diese Validierungseinstellungen müssen in einer JSON-Datei erstellt werden. Anweisungen und Beispiele finden Sie unter [Aufgabeneinstellungen angeben](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.html). Fügen Sie die folgenden Validierungen hinzu:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html)Um den Rest der Datenmigration zu validieren, aktivieren Sie die Datenvalidierung in der Aufgabe. Weitere Informationen finden Sie unter [Einstellungen für die Datenvalidierungsaufgabe](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.DataValidation.html). | AWS-Administrator, DBA | 
| Erstellen Sie die laufende Replikationsaufgabe. | Erstellen Sie in AWS DMS die Migrationsaufgabe, die dafür sorgt, dass die Zieldatenbank mit der Quelldatenbank synchronisiert wird. Anweisungen finden Sie unter [Aufgabe erstellen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Wählen Sie als Migrationsmethode die Option **Nur Datenänderungen replizieren** aus. Starten Sie diese Aufgabe noch nicht. | DBA | 

### Testen Sie die Migrationsaufgaben
<a name="test-the-migration-tasks"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Beispieldaten zum Testen. | Erstellen Sie in der Quelldatenbank eine Beispieltabelle mit Daten für Testzwecke. | Developer | 
| Vergewissern Sie sich, dass keine widersprüchlichen Aktivitäten vorliegen. | Verwenden Sie den`pg_stat_activity`, um nach Aktivitäten auf dem Server zu suchen, die sich auf die Migration auswirken könnten. Weitere Informationen finden Sie unter [The Statistics Collector](https://www.postgresql.org/docs/current/monitoring-stats.html) (PostgreSQL-Dokumentation). | AWS-Administrator | 
| Starten Sie die AWS DMS Migrationsaufgaben. | Starten Sie in der AWS DMS Konsole auf der **Dashboard-Seite** die Aufgaben zum ersten Laden und zur laufenden Replikation, die Sie im vorherigen Epic erstellt haben. | AWS-Administrator | 
| Überwachen Sie die Aufgaben und den Ladestatus der Tabelle. | Überwachen Sie während der Migration den [Aufgabenstatus](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.Status) und den [Tabellenstatus](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html#CHAP_Tasks.CustomizingTasks.TableState). Wenn die erste Ladeaufgabe abgeschlossen ist, gehen Sie auf der Registerkarte **Tabellenstatistiken** wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.html) | AWS-Administrator | 
| Überprüfen Sie die Migrationsergebnisse. | Fragen Sie mit pgAdmin die Tabelle in der Zieldatenbank ab. Eine erfolgreiche Abfrage zeigt an, dass die Daten erfolgreich migriert wurden. | Developer | 
| Fügen Sie Primärschlüssel und Fremdschlüssel zur Zieldatenbank hinzu. | Erstellen Sie den Primärschlüssel und den Fremdschlüssel in der Zieldatenbank. Weitere Informationen finden Sie unter [ALTER TABLE](https://www.postgresql.org/docs/current/sql-altertable.html) (PostgreSQL-Website). | DBA | 
| Bereinigen Sie die Testdaten. | Bereinigen Sie in den Quell- und Zieldatenbanken Daten, die für Komponententests erstellt wurden. | Developer | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Schließen Sie die Migration ab. | Wiederholen Sie das vorherige Epic, *Testen Sie die Migrationsaufgaben*, und verwenden Sie dabei die echten Quelldaten. Dadurch werden die Daten von der Quell- zur Zieldatenbank migriert. | Developer | 
| Stellen Sie sicher, dass die Quell- und Zieldatenbanken synchron sind. | Stellen Sie sicher, dass die Quell- und Zieldatenbanken synchron sind. Weitere Informationen und Anweisungen finden Sie unter [AWS DMS Datenvalidierung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Developer | 
| Stoppen Sie die Quelldatenbank. | Stoppen Sie die Amazon RDS for Oracle Oracle-Datenbank. Anweisungen finden Sie unter [Vorübergehendes Stoppen einer Amazon RDS-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_StopInstance.html). Wenn Sie die Quelldatenbank beenden, werden das anfängliche Laden und die laufenden Replikationsaufgaben in AWS DMS automatisch gestoppt. Es sind keine zusätzlichen Maßnahmen erforderlich, um diese Aufgaben zu beenden. | Developer | 

## Zugehörige Ressourcen
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-resources"></a>

**AWS Verweise**
+ [Migrieren Sie eine Oracle-Datenbank mit AWS DMS und zu Aurora PostgreSQL AWS SCT](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.html) (AWS Prescriptive Guidance)
+ [Konvertierung von Oracle zu Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html) (Dokumentation)AWS SCT 
+ [Wie funktioniert AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.html) (Dokumentation)AWS DMS 

**Andere Referenzen**
+ [Boolescher Datentyp](https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-boolean/) (PostgreSQL-Dokumentation)
+ [Integrierte Oracle-Datentypen](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF30020) (Oracle-Dokumentation)
+ [pgAdmin](https://www.pgadmin.org/) (pgAdmin-Webseite)
+ [SQL-Entwickler](https://www.oracle.com/database/technologies/appdev/sql-developer.html) (Oracle-Website)

**Tutorials und Videos**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Einführung in AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (Video)
+ [Amazon RDS verstehen](https://www.youtube.com/watch?v=eMzCI7S1P9M) (Video)

## Zusätzliche Informationen
<a name="convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql-additional"></a>

**Skript zur Datenvalidierung**

Das folgende Datenüberprüfungsskript konvertiert **1** in **Y** und **0** **in N.** Dies hilft der AWS DMS Aufgabe, die Tabellenüberprüfung erfolgreich abzuschließen und zu bestehen.

```
{
"rule-type": "validation",
"rule-id": "5",
"rule-name": "5",
"rule-target": "column",
"object-locator": {
"schema-name": "ADMIN",
"table-name": "TEMP_CHRA_BOOL",
"column-name": "GRADE"
},
"rule-action": "override-validation-function",
"target-function": "case grade when '1' then 'Y' else 'N' end"
        }
```

Die `case` Anweisung im Skript führt die Validierung durch. Wenn die Validierung fehlschlägt, wird ein Datensatz in die Tabelle **public.awsdms\$1validation\$1failures\$1v1** auf der Zieldatenbankinstanz AWS DMS eingefügt. Dieser Datensatz enthält den Tabellennamen, die Fehlerzeit und Details zu den nicht übereinstimmenden Werten in der Quell- und Zieltabelle.

Wenn Sie dieses Datenüberprüfungsskript nicht zur AWS DMS Aufgabe hinzufügen und die Daten in die Zieltabelle eingefügt werden, zeigt die AWS DMS Aufgabe den Validierungsstatus als Nicht **übereinstimmende** Datensätze an.

Während der AWS SCT Konvertierung ändert die AWS DMS Migrationsaufgabe den Datentyp des Datentyps VARCHAR2 (1) in Boolean und fügt der Spalte eine Primärschlüsseleinschränkung hinzu. `"NO"`

# Anwendungsbenutzer und Rollen in Aurora PostgreSQL-kompatibel erstellen
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible"></a>

*Abhishek Verma, Amazon Web Services*

## Zusammenfassung
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-summary"></a>

Wenn Sie zu Amazon Aurora PostgreSQL-Compatible Edition migrieren, müssen die Datenbankbenutzer und Rollen, die in der Quelldatenbank vorhanden sind, in der Aurora PostgreSQL-kompatiblen Datenbank erstellt werden. Sie können die Benutzer und Rollen in Aurora PostgreSQL-kompatibel erstellen, indem Sie zwei verschiedene Ansätze verwenden:
+ Verwenden Sie in der Zieldatenbank ähnliche Benutzer und Rollen wie in der Quelldatenbank. Bei diesem Ansatz werden die Datendefinitionssprachen (DDLs) für Benutzer und Rollen aus der Quelldatenbank extrahiert. Anschließend werden sie transformiert und auf die Aurora PostgreSQL-kompatible Zieldatenbank angewendet. Der Blogbeitrag Use [SQL to map users, roles, and grants from Oracle to PostgreSQL](https://aws.amazon.com/blogs/database/use-sql-to-map-users-roles-and-grants-from-oracle-to-postgresql) behandelt beispielsweise die Verwendung der Extraktion aus einer Oracle-Quelldatenbank-Engine.
+ Verwenden Sie standardisierte Benutzer und Rollen, die häufig bei der Entwicklung, Verwaltung und Durchführung anderer verwandter Operationen in der Datenbank verwendet werden. Dazu gehören Schreibschutz, Lese-/Schreibvorgänge, Entwicklungs-, Verwaltungs- und Bereitstellungsvorgänge, die von den jeweiligen Benutzern ausgeführt werden.

Dieses Muster enthält die Grants, die für die Erstellung von Benutzern und Rollen in Aurora PostgreSQL-kompatibel erforderlich sind und für den standardisierten Benutzer- und Rollenansatz erforderlich sind. Die Schritte zur Benutzer- und Rollenerstellung orientieren sich an der Sicherheitsrichtlinie, den Datenbankbenutzern die geringsten Rechte zu gewähren. In der folgenden Tabelle sind die Benutzer, ihre entsprechenden Rollen und ihre Details in der Datenbank aufgeführt.


| 
| 
| Benutzer | Rollen | Zweck | 
| --- |--- |--- |
| `APP_read` | `APP_RO` | Wird für den schreibgeschützten Zugriff auf das Schema verwendet `APP` | 
| `APP_WRITE` | `APP_RW` | Wird für Schreib- und Lesevorgänge auf dem Schema verwendet `APP` | 
| `APP_dev_user` | `APP_DEV` | Wird für Entwicklungszwecke im Schema verwendet`APP_DEV`, mit schreibgeschütztem Zugriff auf das Schema `APP` | 
| `Admin_User` | `rds_superuser` | Wird für die Ausführung von Administratoroperationen an der Datenbank verwendet | 
| `APP` | `APP_DEP` | Wird für die Erstellung der Objekte unter dem `APP` Schema und für die Bereitstellung von Objekten im `APP` Schema verwendet | 

## Voraussetzungen und Einschränkungen
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-prereqs"></a>

**Voraussetzungen**
+ Ein aktives Amazon Web Services (AWS) -Konto
+ Eine PostgreSQL-Datenbank, Amazon Aurora PostgreSQL-Compatible Edition-Datenbank oder Amazon Relational Database Service (Amazon RDS) für PostgreSQL-Datenbank

**Produktversionen**
+ Alle Versionen von PostgreSQL

## Architektur
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-architecture"></a>

**Quelltechnologie-Stack**
+ Beliebige Datenbank

**Zieltechnologie-Stack**
+ Amazon Aurora PostgreSQL-kompatibel

**Zielarchitektur**

Das folgende Diagramm zeigt Benutzerrollen und die Schemaarchitektur in der Aurora PostgreSQL-kompatiblen Datenbank.

![\[Benutzerrollen und Schemaarchitektur für die Aurora PostgreSQL-kompatible Datenbank.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/80105a81-e3d1-4258-b3c1-77f3a5e78592/images/b95cb9bc-8bf7-47d1-92e7-66cfb37d7ce7.png)


                                                                                                                                    

**Automatisierung und Skalierung**

Dieses Muster enthält die Benutzer, Rollen und das Skript zur Schemaerstellung, das Sie mehrfach ausführen können, ohne dass dies Auswirkungen auf bestehende Benutzer der Quell- oder Zieldatenbank hat.

## Tools
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-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.

**Andere Dienste**
+ [psql](https://www.postgresql.org/docs/current/app-psql.html) ist ein terminalbasiertes Frontend-Tool, das bei jeder PostgreSQL-Datenbankinstallation installiert wird. Es verfügt über eine Befehlszeilenschnittstelle zum Ausführen von SQL-, PL-PGSQL- und Betriebssystembefehlen.
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können.

## Epen
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-epics"></a>

### Erstellen Sie die Benutzer und Rollen
<a name="create-the-users-and-roles"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den Deployment-Benutzer. | Der Deployment-Benutzer `APP` wird verwendet, um die Datenbankobjekte während der Bereitstellung zu erstellen und zu ändern. Verwenden Sie die folgenden Skripts, um die Deployment-Benutzerrolle `APP_DEP` im Schema `APP` zu erstellen. Überprüfen Sie die Zugriffsrechte, um sicherzustellen, dass dieser Benutzer nur berechtigt ist, Objekte im erforderlichen Schema zu erstellen`APP`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Erstellen Sie den schreibgeschützten Benutzer. | Der schreibgeschützte Benutzer `APP_read` wird für die Ausführung des schreibgeschützten Vorgangs im Schema verwendet. `APP` Verwenden Sie die folgenden Skripten, um den schreibgeschützten Benutzer zu erstellen. Überprüfen Sie die Zugriffsrechte, um sicherzustellen, dass dieser Benutzer nur berechtigt ist, die Objekte im Schema zu lesen `APP` und allen neuen Objekten, die im Schema erstellt wurden, automatisch Lesezugriff zu gewähren. `APP`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Erstellen Sie den read/write Benutzer. | Der read/write Benutzer `APP_WRITE` wird verwendet, um Lese- und Schreiboperationen für das Schema auszuführen`APP`. Verwenden Sie die folgenden Skripten, um den read/write Benutzer zu erstellen und ihm die `APP_RW` Rolle zuzuweisen. Überprüfen Sie die Zugriffsrechte, um sicherzustellen, dass dieser Benutzer nur Lese- und Schreibberechtigungen für die Objekte im Schema hat, `APP` und um jedem neuen Objekt, das im Schema erstellt wurde, automatisch Lese- und Schreibzugriff zu gewähren`APP`.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) |  | 
| Erstellen Sie den Admin-Benutzer. | Der Admin-Benutzer `Admin_User` wird verwendet, um Admin-Operationen an der Datenbank durchzuführen. Beispiele für diese Operationen sind `CREATE ROLE` und`CREATE DATABASE`. `Admin_User`verwendet die integrierte Rolle`rds_superuser`, um Admin-Operationen in der Datenbank durchzuführen. Verwenden Sie die folgenden Skripts, um die Rechte für den Admin-Benutzer `Admin_User` in der Datenbank zu erstellen und zu testen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 
| Erstellen Sie den Entwicklungsbenutzer. | Der Entwicklungsbenutzer `APP_dev_user` erhält die Rechte, die Objekte in seinem lokalen Schema zu erstellen `APP_DEV` und über Lesezugriff im Schema zu verfügen`APP`. Verwenden Sie die folgenden Skripten, um die Rechte des Benutzers `APP_dev_user` in der Datenbank zu erstellen und zu testen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/create-application-users-and-roles-in-aurora-postgresql-compatible.html) | DBA | 

## Zugehörige Ressourcen
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-resources"></a>

**PostgreSQL-Dokumentation**
+ [ROLLE ERSTELLEN](https://www.postgresql.org/docs/9.1/sql-createrole.html)
+ [BENUTZER ERSTELLEN](https://www.postgresql.org/docs/8.0/sql-createuser.html)
+ [Vordefinierte Rollen](https://www.postgresql.org/docs/14/predefined-roles.html)

 

## Zusätzliche Informationen
<a name="create-application-users-and-roles-in-aurora-postgresql-compatible-additional"></a>

**Erweiterung von PostgreSQL 14**

PostgreSQL 14 bietet eine Reihe vordefinierter Rollen, die den Zugriff auf bestimmte häufig benötigte, privilegierte Funktionen und Informationen ermöglichen. Administratoren (einschließlich Rollen mit entsprechenden Rechten`CREATE ROLE`) können Benutzern diese Rollen oder andere Rollen in ihrer Umgebung zuweisen und ihnen so Zugriff auf die angegebenen Funktionen und Informationen gewähren.

Administratoren können Benutzern mithilfe des `GRANT` Befehls Zugriff auf diese Rollen gewähren. Um beispielsweise die `pg_signal_backend` Rolle zu erteilen`Admin_User`, können Sie den folgenden Befehl ausführen.

```
GRANT pg_signal_backend TO Admin_User;
```

Die `pg_signal_backend` Rolle soll es Administratoren ermöglichen, vertrauenswürdigen Rollen ohne Superuser das Senden von Signalen an andere Back-Ends zu ermöglichen. Weitere Informationen finden Sie unter [PostgreSQL 14-Erweiterung](https://www.postgresql.org/docs/14/predefined-roles.html).

**Feinabstimmung des Zugriffs**

In einigen Fällen kann es erforderlich sein, den Benutzern einen detaillierteren Zugriff zu gewähren (z. B. tabellenbasierter Zugriff oder spaltenbasierter Zugriff). In solchen Fällen können zusätzliche Rollen erstellt werden, um den Benutzern diese Rechte zu gewähren. Weitere Informationen finden Sie unter [PostgreSQL Grants](https://www.postgresql.org/docs/8.4/sql-grant.html).

# Emulieren Sie Oracle DR mithilfe einer PostgreSQL-kompatiblen globalen Aurora-Datenbank
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database"></a>

*HariKrishna Boorgadda, Amazon Web Services*

## Zusammenfassung
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-summary"></a>

Bewährte Methoden für Disaster Recovery (DR) in Unternehmen bestehen im Wesentlichen darin, fehlertolerante Hardware- und Softwaresysteme zu entwickeln und zu implementieren, die einen Notfall überstehen (*Geschäftskontinuität*) und den normalen Betrieb wieder aufnehmen können (*Wiederaufnahme des Geschäftsbetriebs*), und zwar mit minimalen Eingriffen und idealerweise ohne Datenverlust. Der Aufbau fehlertoleranter Umgebungen zur Erfüllung der DR-Ziele von Unternehmen kann teuer und zeitaufwändig sein und erfordert ein starkes Engagement des Unternehmens.

Oracle Database bietet drei verschiedene Ansätze für DR, die im Vergleich zu anderen Ansätzen zum Schutz von Oracle-Daten das höchste Maß an Datenschutz und Verfügbarkeit bieten.
+ Oracle Zero Data Loss Recovery Appliance
+ Oracle Active Data Guard
+ Oracle GoldenGate

Dieses Muster bietet eine Möglichkeit, Oracle GoldenGate DR mithilfe einer globalen Amazon Aurora Aurora-Datenbank zu emulieren. Die Referenzarchitektur verwendet Oracle GoldenGate für DR in drei AWS-Regionen. Das Muster führt durch die Umstellung der Quellarchitektur auf die Cloud-native globale Aurora-Datenbank, die auf der Amazon Aurora PostgreSQL-Compatible Edition basiert.

Die globalen Aurora-Datenbanken sind für Anwendungen mit globaler Präsenz konzipiert. Eine einzelne Aurora-Datenbank umfasst mehrere AWS-Regionen mit bis zu fünf sekundären Regionen. Die globalen Aurora-Datenbanken bieten die folgenden Funktionen:
+ Replizierung auf physischer Speicherebene
+ Globale Lesevorgänge mit geringer Latenz
+ Schnelle Notfallwiederherstellung nach Ausfällen in der gesamten Region
+ Schnelle regionsübergreifende Migrationen
+ Geringe Replikationsverzögerung zwischen Regionen
+ Little-to-no Auswirkung auf die Leistung Ihrer Datenbank

Weitere Informationen zu den Funktionen und Vorteilen der globalen Aurora-Datenbank finden Sie unter [Verwenden globaler Amazon Aurora Aurora-Datenbanken](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-overview). Weitere Informationen zu ungeplanten und verwalteten Failovers finden Sie unter [Verwenden von Failover in einer globalen Amazon Aurora Aurora-Datenbank](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-disaster-recovery.html#aurora-global-database-failover).

## Voraussetzungen und Einschränkungen
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto 
+ Ein Java Database Connectivity (JDBC) PostgreSQL-Treiber für Anwendungskonnektivität
+ Eine globale Aurora-Datenbank, die auf der Amazon Aurora PostgreSQL-kompatiblen Edition basiert
+ Eine Oracle Real Application Clusters (RAC) -Datenbank wurde auf die globale Aurora-Datenbank migriert, die auf Aurora PostgreSQL-kompatibel ist

**Einschränkungen der globalen Aurora-Datenbanken**
+ Die globalen Aurora-Datenbanken sind nicht in allen AWS-Regionen verfügbar. Eine Liste der unterstützten Regionen finden Sie unter [Globale Aurora-Datenbanken mit Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.html#Concepts.Aurora_Fea_Regions_DB-eng.Feature.GlobalDatabase.apg).
+ Informationen zu Funktionen, die nicht unterstützt werden, und zu anderen Einschränkungen der globalen Aurora-Datenbanken finden Sie unter [Einschränkungen der globalen Amazon Aurora Aurora-Datenbanken](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database.limitations).

**Produktversionen**
+ Amazon Aurora PostgreSQL — Compatible Edition Version 10.14 oder höher

## Architektur
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-architecture"></a>

**Quelltechnologie-Stack******
+ Oracle RAC-Datenbank mit vier Knoten
+ Oracle GoldenGate

**Quellarchitektur******

Das folgende Diagramm zeigt drei Cluster mit Oracle RAC mit vier Knoten in verschiedenen AWS-Regionen, die mit Oracle repliziert wurden. GoldenGate 

![\[Oracle RAC in einer primären Region und zwei sekundären Regionen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/9fc740fc-d339-422e-beaf-1f65690c9d14.png)


**Zieltechnologie-Stack**
+ Eine globale Amazon Aurora Aurora-Datenbank mit drei Clustern, die auf Aurora PostgreSQL basiert — kompatibel, mit einem Cluster in der primären Region, zwei Clustern in verschiedenen sekundären Regionen

**Zielarchitektur**

![\[Amazon Aurora in einer primären Region und zwei sekundären Regionen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/11d4265b-31af-4ebf-a766-24196193ee01/images/8e3deca9-03f2-437c-9341-795ac17e2b42.png)


## Tools
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-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.
+ Die [globalen Datenbanken von Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) erstrecken sich über mehrere AWS-Regionen und bieten globale Lesevorgänge mit geringer Latenz und eine schnelle Wiederherstellung nach dem seltenen Ausfall, der eine gesamte AWS-Region betreffen kann.

## Epen
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-epics"></a>

### Fügen Sie Regionen mit Reader-DB-Instances hinzu
<a name="add-regions-with-reader-db-instances"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Hängen Sie einen oder mehrere sekundäre Aurora-Cluster an. | Wählen Sie in der AWS-Managementkonsole Amazon Aurora aus. Wählen Sie den primären Cluster aus, wählen Sie **Aktionen** und dann **Region hinzufügen** aus der Drop-down-Liste aus. | DBA | 
| Wählen Sie die Instanzklasse aus. | Sie können die Instanzklasse des sekundären Clusters ändern. Wir empfehlen jedoch, dieselbe wie die Instance-Klasse des primären Clusters beizubehalten. | DBA | 
| Fügen Sie die dritte Region hinzu. | Wiederhole die Schritte in diesem Epos, um einen Cluster in der dritten Region hinzuzufügen. | DBA | 

### Failover der globalen Aurora-Datenbank
<a name="fail-over-the-aurora-global-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Entfernen Sie den primären Cluster aus der globalen Aurora-Datenbank. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.html) | DBA | 
| Konfigurieren Sie Ihre Anwendung neu, um den Schreibdatenverkehr an den gerade hochgestuften Cluster weiterzuleiten. | Ändern Sie den Endpunkt in der Anwendung mit dem Endpunkt des neu hochgestuften Clusters. | DBA | 
| Beenden Sie die Ausführung von Schreibvorgängen für den nicht verfügbaren Cluster. | Beenden Sie die Anwendung und jegliche DML-Aktivitäten (Data Manipulation Language) für den Cluster, den Sie entfernt haben. | DBA | 
| Erstellen Sie eine neue globale Aurora-Datenbank. | Jetzt können Sie eine globale Aurora-Datenbank mit dem neu beworbenen Cluster als primärem Cluster erstellen. | DBA | 

### Starten Sie den primären Cluster
<a name="start-the-primary-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wählen Sie den primären Cluster aus, der aus der globalen Datenbank gestartet werden soll. | Wählen Sie auf der Amazon Aurora Aurora-Konsole im Global Database-Setup den primären Cluster aus. | DBA | 
| Starten Sie den Cluster. | Wählen Sie in der Dropdownliste **Aktionen** die Option **Start** aus. Dieser Vorgang kann einige Zeit in Anspruch nehmen. Aktualisieren Sie den Bildschirm, um den Status zu sehen, oder überprüfen Sie nach Abschluss des Vorgangs in der Spalte **Status** den aktuellen Status des Clusters. | DBA | 

### Säubere die Ressourcen
<a name="clean-up-the-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie die verbleibenden sekundären Cluster. | Entfernen Sie nach Abschluss des Failover-Pilotprojekts die sekundären Cluster aus der globalen Datenbank. | DBA | 
| Löschen Sie den primären Cluster. | Entfernen Sie den Cluster. | DBA | 

## Zugehörige Ressourcen
<a name="emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database-resources"></a>
+ [Verwenden von Amazon Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html#aurora-global-database-detaching)
+ [Aurora PostgreSQL Disaster Recovery-Lösungen mit Amazon Aurora Global Database](https://aws.amazon.com/blogs/database/aurora-postgresql-disaster-recovery-solutions-using-amazon-aurora-global-database/) (Blogbeitrag)

# Implementieren Sie SHA1 Hashing für PII-Daten bei der Migration von SQL Server zu PostgreSQL
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql"></a>

*Rajkumar Raghuwanshi und Jagadish Kantubugata, Amazon Web Services*

## Zusammenfassung
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-summary"></a>

Dieses Muster beschreibt, wie Secure Hash Algorithm 1 (SHA1) -Hashing für E-Mail-Adressen implementiert wird, wenn von SQL Server zu Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL-kompatibel migriert wird. *Eine E-Mail-Adresse ist ein Beispiel für persönlich identifizierbare Informationen (PII).* PII sind Informationen, die, wenn sie direkt betrachtet oder mit anderen verwandten Daten kombiniert werden, verwendet werden können, um vernünftige Rückschlüsse auf die Identität einer Person zu ziehen. 

Dieses Muster deckt die Herausforderungen ab, die mit der Aufrechterhaltung konsistenter Hashwerte für verschiedene Datenbankkollationen und Zeichenkodierungen verbunden sind, und bietet eine Lösung mithilfe von PostgreSQL-Funktionen und -Triggern. Dieses Muster konzentriert sich zwar auf SHA1 Hashing, kann aber für andere Hashing-Algorithmen angepasst werden, die vom PostgreSQL-Modul unterstützt werden. `pgcrypto` Berücksichtigen Sie immer die Auswirkungen Ihrer Hashing-Strategie auf die Sicherheit und wenden Sie sich beim Umgang mit sensiblen Daten an Sicherheitsexperten.

## Voraussetzungen und Einschränkungen
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Quell-SQL Server-Datenbank
+ PostgreSQL-Zieldatenbank (Amazon RDS für PostgreSQL oder Aurora PostgreSQL-kompatibel)
+ Erfahrung in der PL/PGSQL-Codierung

**Einschränkungen**
+ Dieses Muster erfordert je nach Anwendungsfall Änderungen der Sortierung auf Datenbankebene.
+ Die Auswirkungen auf die Leistung großer Datensätze wurden nicht bewertet.
+ Einige AWS-Services sind nicht in allen AWS-Regionen verfügbar. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter [AWS Dienste nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie unter [Dienstendpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Dienst aus.

**Produktversionen**
+ Microsoft SQL Server 2012 oder höher

## Architektur
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-architecture"></a>

**Quelltechnologie-Stack**
+ SQL Server
+ .NET Framework.

**Zieltechnologie-Stack**
+ PostgreSQL
+ `pgcrypto`Erweiterung

**Automatisierung und Skalierung**
+ Erwägen Sie die Implementierung der Hashing-Funktion als gespeicherte Prozedur, um die Wartung zu vereinfachen.
+ Bei großen Datensätzen sollten Sie die Leistung bewerten und Strategien zur Stapelverarbeitung oder Indizierung in Betracht ziehen.

## Tools
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-tools"></a>

**AWS-Services**
+ [Amazon Aurora PostgreSQL-Compatible](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 Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) hilft Ihnen bei der Migration von Datenspeichern in die oder zwischen Kombinationen von Cloud- und lokalen Setups. AWS Cloud 
+ [Amazon Relational Database Service Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen PostgreSQL-Datenbank in der. AWS Cloud
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.

**Andere Tools**
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können.
+ [SQL Server Management Studio (SSMS)](https://learn.microsoft.com/en-us/ssms/sql-server-management-studio-ssms) ist eine integrierte Umgebung für die Verwaltung beliebiger SQL-Infrastrukturen.

## Best Practices
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-best-practices"></a>
+ Verwenden Sie die entsprechenden Sortierungseinstellungen für die Behandlung von Sonderzeichen auf der Zieldatenbankseite.
+ Testen Sie gründlich mit einer Vielzahl von E-Mail-Adressen, einschließlich Adressen mit Nicht-ASCII-Zeichen.
+ Achten Sie bei der Verarbeitung von Groß- und Kleinbuchstaben auf Anwendungs- und Datenbankebene auf Konsistenz.
+ Vergleichen Sie die Leistung von Abfragen anhand der Hash-Werte.

## Epen
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-epics"></a>

### Analysieren Sie die Implementierung des Quell-Hashings
<a name="analyze-source-hashing-implementation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie den SQL Server-Code. | Gehen Sie wie folgt vor, um den SQL Server-Code zu überprüfen, der SHA1 Hashes generiert:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Dateningenieur, DBA, App-Entwickler | 
| Dokumentieren Sie den Hash-Algorithmus und die Datentransformationen. | Gehen Sie wie folgt vor, um den genauen Hash-Algorithmus und die Datentransformationen zu dokumentieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | App-Entwickler, Dateningenieur, DBA | 

### PostgreSQL-Hashing-Funktion erstellen
<a name="create-postgresql-hashing-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| `pgcrypto`Erweiterung erstellen. | Führen Sie den folgenden Befehl aus, `pgAdmin/psql` um die `pgcrypto` Erweiterung zu erstellen:<pre>CREATE EXTENSION pgcrypto;</pre> | DBA, Dateningenieur | 
| Implementieren Sie eine PostgreSQL-Funktion. | Implementieren Sie die folgende PostgreSQL-Funktion, um die SQL Server-Hashing-Logik zu replizieren. Auf hoher Ebene verwendet diese Funktion die folgenden Schritte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html)<pre>CREATE OR REPLACE FUNCTION utility.hex_to_bigint ( <br />     par_val character varying, <br />     par_upper character varying DEFAULT 'lower'::character varying) <br />RETURNS bigint <br />LANGUAGE 'plpgsql' <br />AS $BODY$ <br />DECLARE <br />    retnumber bigint; <br />    digest_bytes bytea;<br />BEGIN <br />    if lower(par_upper) = 'upper' <br />    then <br />        digest_bytes := digest(upper(par_val), 'sha1');<br />    else <br />        digest_bytes := digest((par_val), 'sha1');<br />    end if; <br />    retnumber := ('x' || encode(substring(digest_bytes, length(digest_bytes)-10+1), 'hex'))::bit(64)::bigint; <br />    RETURN retnumber; <br />END; <br />$BODY$;</pre> | Dateningenieur, DBA, App-Entwickler | 
| Testen der Funktion. | Verwenden Sie zum Testen der Funktion Beispieldaten von SQL Server, um die übereinstimmenden Hashwerte zu überprüfen. Führen Sie den folgenden Befehl aus:<pre>select 'alejandro_rosalez@example.com' as Email, utility.hex_to_bigint('alejandro_rosalez@example.com','upper') as HashValue;<br /><br />--OUTPUT<br />/*<br />email 	        hashvalue<br />"alejandro_rosalez@example.com"	451397011176045063<br />*/<br /></pre> | App-Entwickler, DBA, Dateningenieur | 

### Implementieren Sie Auslöser für automatisches Hashing
<a name="implement-triggers-for-automatic-hashing"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Trigger für relevante Tabellen. | Um Trigger für relevante Tabellen zu erstellen, die beim Einfügen oder Aktualisieren automatisch Hashwerte generieren, führen Sie den folgenden Befehl aus:<pre>CREATE OR REPLACE FUNCTION update_email_hash() <br />RETURNS TRIGGER <br />AS $$ <br />BEGIN <br />    NEW.email_hash = utility.hex_to_bigint(NEW.email, 'upper'); <br />    RETURN NEW; <br />END; <br />$$ LANGUAGE plpgsql;</pre><pre>CREATE TRIGGER email_hash_trigger BEFORE INSERT OR UPDATE ON users FOR EACH ROW EXECUTE FUNCTION update_email_hash();</pre> | App-Entwickler, Dateningenieur, DBA | 

### Migrieren Sie vorhandene Daten
<a name="migrate-existing-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Entwickeln Sie ein Migrationsskript oder verwenden Sie es AWS DMS.  | Entwickeln Sie ein Migrationsskript oder verwenden Sie es, AWS DMS um Hashwerte für bestehende Daten aufzufüllen (einschließlich Hashwerte, die `BIGINT` im Quellsystem gespeichert sind). Führen Sie die folgenden Schritte aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | Dateningenieur, App-Entwickler, DBA | 
| Verwenden Sie die neue PostgreSQL-Hashing-Funktion. | Gehen Sie wie folgt vor, um die neue PostgreSQL-Hashing-Funktion zur Sicherstellung der Konsistenz zu verwenden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | App-Entwickler, DBA, Ingenieur DevOps  | 

### Anwendungsabfragen aktualisieren
<a name="update-application-queries"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie Anwendungsanfragen. | Gehen Sie wie folgt vor, um Anwendungsabfragen zu identifizieren, die Hashwerte verwenden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | App-Entwickler, DBA, Dateningenieur | 
| Abfragen ändern. | Ändern Sie bei Bedarf Abfragen, um die neue PostgreSQL-Hashing-Funktion zu verwenden. Gehen Sie wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | App-Entwickler, DBA, Dateningenieur | 

### Testen und validieren
<a name="test-and-validate"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie Tests durch. | Gehen Sie wie folgt vor, um gründliche Tests mit einer Teilmenge von Produktionsdaten durchzuführen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | App-Entwickler, Dateningenieur, DBA | 
| Stellen Sie sicher, dass die Hashwerte übereinstimmen. | Gehen Sie wie folgt vor, um zu überprüfen, ob die Hashwerte zwischen SQL Server und PostgreSQL übereinstimmen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | App-Entwickler, Dateningenieur, DBA | 
| Überprüfen Sie die Funktionalität der Anwendung. | Gehen Sie wie folgt vor, um die Anwendungsfunktionalität anhand der migrierten Daten und der neuen Hashing-Implementierung zu überprüfen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.html) | App-Entwickler, DBA, Dateningenieur | 

## Fehlerbehebung
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Hashwerte stimmen nicht überein. | Überprüfen Sie die Zeichenkodierungen und Kollationen zwischen Quelle und Ziel. Weitere Informationen finden Sie unter [Sortierungsänderungen in PostgreSQL auf Amazon Aurora und Amazon RDS verwalten](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/) (AWS Blog). | 

## Zugehörige Ressourcen
<a name="implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql-resources"></a>

**AWS Blogs**
+ [Sortierungsänderungen in PostgreSQL auf Amazon Aurora und Amazon RDS verwalten](https://aws.amazon.com/blogs/database/manage-collation-changes-in-postgresql-on-amazon-aurora-and-amazon-rds/)
+ [Migrieren Sie SQL Server zu Amazon Aurora PostgreSQL mithilfe von Best Practices und Erfahrungen aus der Praxis](https://aws.amazon.com/blogs/database/migrate-sql-server-to-amazon-aurora-postgresql-using-best-practices-and-lessons-learned-from-the-field/)

**Sonstige Ressourcen**
+ [PostgreSQL-Pgcrypto-Modul](https://www.postgresql.org/docs/current/pgcrypto.html) (PostgreSQL-Dokumentation)
+ [PostgreSQL-Triggerfunktionen](https://www.postgresql.org/docs/current/plpgsql-trigger.html) (PostgreSQL-Dokumentation)
+ [SQL Server-Funktion HASHBYTES](https://docs.microsoft.com/en-us/sql/t-sql/functions/hashbytes-transact-sql) (Microsoft-Dokumentation)

# Schrittweise Migration von Amazon RDS for Oracle zu Amazon RDS for PostgreSQL mithilfe von Oracle SQL Developer und AWS SCT
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct"></a>

*Pinesh Signal, Amazon Web Services*

## Zusammenfassung
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-summary"></a>

Viele Migrationsstrategien und -ansätze laufen in mehreren Phasen ab, die von einigen Wochen bis zu mehreren Monaten dauern können. Während dieser Zeit kann es aufgrund von Patches oder Upgrades in den Oracle-Quell-DB-Instances, die Sie zu PostgreSQL-DB-Instances migrieren möchten, zu Verzögerungen kommen. Um diese Situation zu vermeiden, empfehlen wir, den verbleibenden Oracle-Datenbankcode inkrementell zum PostgreSQL-Datenbankcode zu migrieren.

Dieses Muster bietet eine inkrementelle Migrationsstrategie ohne Ausfallzeiten für eine Oracle-DB-Instance mit mehreren Terabyte, bei der nach Ihrer ersten Migration eine hohe Anzahl von Transaktionen ausgeführt wurde und die in eine PostgreSQL-Datenbank migriert werden muss. Sie können den step-by-step Ansatz dieses Musters verwenden, um eine Amazon Relational Database Service (Amazon RDS) für Oracle-DB-Instance schrittweise zu einer Amazon RDS for PostgreSQL PostgreSQL-DB-Instance zu migrieren, ohne sich bei der Amazon Web Services (AWS) Management Console anzumelden.

Das Muster verwendet [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html), um die Unterschiede zwischen zwei Schemas in der Oracle-Quelldatenbank zu ermitteln. Anschließend verwenden Sie das AWS Schema Conversion Tool (AWS SCT), um die Datenbankschemaobjekte von Amazon RDS for Oracle in Amazon RDS for PostgreSQL PostgreSQL-Datenbankschemaobjekte zu konvertieren. Anschließend können Sie in der Windows-Befehlszeile ein Python-Skript ausführen, um AWS-SCT-Objekte für die inkrementellen Änderungen an den Quelldatenbankobjekten zu erstellen.

**Anmerkung**  
Bevor Sie Ihre Produktions-Workloads migrieren, empfehlen wir Ihnen, einen Machbarkeitsnachweis (PoC) für den Ansatz dieses Musters in einer Test- oder Nicht-Produktionsumgebung durchzuführen.

## Voraussetzungen und Einschränkungen
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine bestehende Amazon RDS for Oracle Oracle-DB-Instance. 
+ Eine bestehende Amazon RDS for PostgreSQL PostgreSQL-DB-Instance.
+ AWS SCT, installiert und konfiguriert mit JDBC-Treibern für Oracle- und PostgreSQL-Datenbank-Engines. Weitere Informationen dazu finden Sie unter [Installation von AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure) und [Installation der erforderlichen Datenbanktreiber](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.JDBCDrivers) in der AWS SCT-Dokumentation. 
+ Oracle SQL Developer, installiert und konfiguriert. Weitere Informationen dazu finden Sie in der [Oracle SQL Developer-Dokumentation](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html). 
+ Die `incremental-migration-sct-sql.zip` Datei (angehängt) wurde auf Ihren lokalen Computer heruntergeladen.

**Einschränkungen**
+ Die Mindestanforderungen für Ihre Amazon RDS for Oracle DB-Quell-Instance sind:
  + Oracle-Versionen 10.2 und höher (für Versionen 10.x), 11g (Versionen 11.2.0.3.v1 und höher) und bis zu 12.2 und 18c für die Editionen Enterprise, Standard, Standard One und Standard Two
+ Die Mindestanforderungen für Ihre Amazon RDS for PostgreSQL PostgreSQL-DB-Ziel-Instance sind:  
  + PostgreSQL-Versionen 9.4 und höher (für Versionen 9.x), 10.x und 11.x
+ Dieses Muster verwendet Oracle SQL Developer. Ihre Ergebnisse können variieren, wenn Sie andere Tools verwenden, um Schemaunterschiede zu finden und zu exportieren.
+ Die von Oracle [SQL Developer generierten SQL-Skripten](https://docs.oracle.com/database/121/AEUTL/sql_rep.htm#AEUTL191) können zu Transformationsfehlern führen, was bedeutet, dass Sie eine manuelle Migration durchführen müssen.
+ Wenn die AWS SCT-Quell- und Zieltestverbindungen fehlschlagen, stellen Sie sicher, dass Sie die JDBC-Treiberversionen und eingehenden Regeln für die Sicherheitsgruppe der Virtual Private Cloud (VPC) so konfigurieren, dass sie eingehenden Datenverkehr akzeptiert.

**Produktversionen**
+ Amazon RDS for Oracle Oracle-DB-Instance Version 12.1.0.2 (Version 10.2 und höher)
+ Amazon RDS for PostgreSQL PostgreSQL-DB-Instance Version 11.5 (Version 9.4 und höher)
+ Oracle SQL Developer Version 19.1 und höher
+ AWS SCT Version 1.0.632 und höher

## Architektur
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack**
+ Amazon RDS for Oracle Oracle-DB-Instance

**Zieltechnologie-Stack**
+ Amazon RDS for PostgreSQL PostgreSQL-DB-Instance

**Quell- und Zielarchitektur**

Das folgende Diagramm zeigt die Migration einer Amazon RDS for Oracle DB-Instance zu einer Amazon RDS for PostgreSQL DB-Instance.

![\[Migrations-Workflow von Amazon RDS for Oracle zu Amazon RDS for PostgreSQL.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/c7eed517-e496-4e8e-a520-c1e43397419e/images/bfbbed5e-db13-4a22-99aa-1a17f00f5faf.png)


Das Diagramm zeigt den folgenden Migrationsablauf:

1. Öffnen Sie Oracle SQL Developer und stellen Sie eine Verbindung zu den Quell- und Zieldatenbanken her.

1. Generieren Sie [einen Vergleichsbericht](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm) und generieren Sie dann die SQL-Skriptdatei für die Schemadifferenzobjekte. Weitere Informationen zu Vergleichsberichten finden Sie in der Oracle-Dokumentation unter [Detaillierte Vergleichsberichte](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm).

1. Konfigurieren Sie AWS SCT und führen Sie den Python-Code aus.

1. Die SQL-Skriptdatei konvertiert von Oracle nach PostgreSQL.

1. Führen Sie die SQL-Skriptdatei auf der PostgreSQL-DB-Zielinstanz aus. 

**Automatisierung und Skalierung**

Sie können diese Migration automatisieren, indem Sie Ihrem Python-Skript zusätzliche Parameter und sicherheitsrelevante Änderungen für mehrere Funktionen in einem einzigen Programm hinzufügen.

## Tools
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-tools"></a>
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — Das AWS Schema Conversion Tool (AWS SCT) konvertiert Ihr vorhandenes Datenbankschema von einer Datenbank-Engine in eine andere.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) — Oracle SQL Developer ist eine integrierte Entwicklungsumgebung (IDE), die die Entwicklung und Verwaltung von Oracle-Datenbanken sowohl in herkömmlichen als auch in Cloud-basierten Bereitstellungen vereinfacht.

**Code**

Die `incremental-migration-sct-sql.zip` Datei (angehängt) enthält den vollständigen Quellcode für dieses Muster.

## Epen
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-epics"></a>

### Erstellen Sie die SQL-Skriptdatei für die Schemaunterschiede in der Quelldatenbank
<a name="create-the-sql-scripts-file-for-the-source-database-schema-differences"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie Database Diff in Oracle SQL Developer aus.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
| Generieren Sie die SQL-Skriptdatei. | Wählen Sie **Generate Script**, um die Unterschiede in den SQL-Dateien zu generieren. Dadurch wird die SQL-Skriptdatei generiert, die AWS SCT verwendet, um Ihre Datenbank von Oracle nach PostgreSQL zu konvertieren. | DBA | 

### Verwenden Sie das Python-Skript, um die Ziel-DB-Objekte in AWS SCT zu erstellen
<a name="use-the-python-script-to-create-the-target-db-objects-in-aws-sct"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie AWS SCT mit der Windows-Eingabeaufforderung.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html)<pre>#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port<br /><br />ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432</pre>4. Ändern Sie die AWS SCT-Konfigurationsparameter gemäß Ihren Anforderungen und kopieren Sie dann die SQL-Skriptdatei in Ihr Arbeitsverzeichnis im `input` Unterverzeichnis. | DBA | 
| Führen Sie das Python-Skript aus.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
|  Erstellen Sie die Objekte in Amazon RDS for PostgreSQL | Führen Sie die SQL-Dateien aus und erstellen Sie Objekte in Ihrer Amazon RDS for PostgreSQL PostgreSQL-DB-Instance. | DBA | 

## Zugehörige Ressourcen
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-resources"></a>
+ [Oracle auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [PostgreSQL auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
+ [Verwenden der AWS SCT-Benutzeroberfläche](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Verwenden von Oracle als Quelle für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

## Anlagen
<a name="attachments-c7eed517-e496-4e8e-a520-c1e43397419e"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/c7eed517-e496-4e8e-a520-c1e43397419e/attachments/attachment.zip)

# Laden Sie BLOB-Dateien mithilfe der Dateikodierung in Aurora PostgreSQL-kompatibel in TEXT
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible"></a>

*Bhanu Ganesh Gudivada und Jeevan Shetty, Amazon Web Services*

## Zusammenfassung
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-summary"></a>

Während der Migration müssen Sie häufig unstrukturierte und strukturierte Daten verarbeiten, die aus Dateien in einem lokalen Dateisystem geladen wurden. Die Daten können sich auch in einem Zeichensatz befinden, der sich vom Zeichensatz der Datenbank unterscheidet.

Diese Dateien enthalten die folgenden Datentypen:
+ **Metadaten** — Diese Daten beschreiben die Dateistruktur.
+ **Semistrukturierte Daten** — Dies sind Textzeichenfolgen in einem bestimmten Format wie JSON oder XML. Möglicherweise können Sie Aussagen zu solchen Daten treffen, z. B. „beginnt immer mit '<'“ oder „enthält keine Zeilenumbruchzeichen“.
+ **Volltext** — Diese Daten enthalten normalerweise alle Arten von Zeichen, einschließlich Zeilenumbruch- und Anführungszeichen. Sie können auch aus Multibyte-Zeichen in UTF-8 bestehen.
+ **Binärdaten** — Diese Daten können Bytes oder Kombinationen von Bytes enthalten, einschließlich Nullen und Markierungen. end-of-file

Das Laden einer Mischung dieser Datentypen kann eine Herausforderung sein.

Das Muster kann mit lokalen Oracle-Datenbanken, Oracle-Datenbanken, die sich auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances in der Amazon Web Services (AWS) -Cloud befinden, und Amazon Relational Database Service (Amazon RDS) für Oracle-Datenbanken verwendet werden. Als Beispiel verwendet dieses Muster Amazon Aurora PostgreSQL-Compatible Edition.

In Oracle Database können Sie mithilfe eines `BFILE` (binären Datei-) Zeigers, des `DBMS_LOB` Pakets und der Oracle-Systemfunktionen Daten aus einer Datei laden und mit Zeichenkodierung in CLOB konvertieren. Da PostgreSQL den BLOB-Datentyp bei der Migration zu einer Amazon Aurora PostgreSQL-Compatible Edition-Datenbank nicht unterstützt, müssen diese Funktionen in PostgreSQL-kompatible Skripten konvertiert werden.

Dieses Muster bietet zwei Ansätze für das Laden einer Datei in eine einzelne Datenbankspalte in einer Amazon Aurora PostgreSQL-kompatiblen Datenbank:
+ Ansatz 1 — Sie importieren Daten aus Ihrem Amazon Simple Storage Service (Amazon S3) -Bucket, indem Sie die `table_import_from_s3` Funktion der `aws_s3` Erweiterung mit der Kodierungsoption verwenden.
+ Ansatz 2 — Sie kodieren außerhalb der Datenbank hexadezimal und dekodieren dann, um sie innerhalb der Datenbank anzuzeigen. `TEXT`

Wir empfehlen die Verwendung von Approach 1, da Aurora PostgreSQL-Compatible direkt in die Erweiterung integriert ist. `aws_s3`

Dieses Muster verwendet das Beispiel des Ladens einer Flat-Datei, die eine E-Mail-Vorlage mit Multibyte-Zeichen und unterschiedlicher Formatierung enthält, in eine Amazon Aurora PostgreSQL-kompatible Datenbank.

## Voraussetzungen und Einschränkungen
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Amazon RDS-Instance oder eine Aurora PostgreSQL-kompatible Instance
+ Ein grundlegendes Verständnis von SQL und dem relationalen Datenbankmanagementsystem (RDBMS)
+ Ein Amazon Simple Storage Service (Amazon S3) -Bucket.
+ Kenntnisse der Systemfunktionen in Oracle und PostgreSQL
+ RPM-Paket HexDump -XXD-0.1.1 (in Amazon Linux 2 enthalten)
**Anmerkung**  
Amazon Linux 2 nähert sich dem Ende der Unterstützung. Weitere Informationen finden Sie unter [Amazon Linux FAQs 2.](https://aws.amazon.com/amazon-linux-2/faqs/)

**Einschränkungen**
+ Für den `TEXT` Datentyp beträgt die längste mögliche Zeichenfolge, die gespeichert werden kann, etwa 1 GB.

**Produktversionen**
+ Aurora unterstützt die PostgreSQL-Versionen, die in [Amazon Aurora PostgreSQL-Updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html) aufgeführt sind.

## Architektur
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-architecture"></a>

**Zieltechnologie-Stack**
+ Aurora PostgreSQL-kompatibel

**Zielarchitektur**

*Ansatz 1 — Verwendung von aws\$1s3.table\$1import\$1from\$1s3*

Von einem lokalen Server wird eine Datei, die eine E-Mail-Vorlage mit Multibyte-Zeichen und benutzerdefinierter Formatierung enthält, an Amazon S3 übertragen. Die durch dieses Muster bereitgestellte benutzerdefinierte Datenbankfunktion verwendet die `aws_s3.table_import_from_s3` Funktion mit`file_encoding`, um Dateien in die Datenbank zu laden und Abfrageergebnisse als `TEXT` Datentyp zurückzugeben.

![\[Vierstufiger Prozess vom lokalen Server zur TEXT-Ausgabe aus der Aurora-Datenbank.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/9c46b385-e8a0-4e50-b856-d522c44d79e3.png)


1. Dateien werden in den Staging-S3-Bucket übertragen.

1. Dateien werden in die Amazon Aurora PostgreSQL-kompatible Datenbank hochgeladen.

1. Mit dem pgAdmin-Client `load_file_into_clob` wird die benutzerdefinierte Funktion in der Aurora-Datenbank bereitgestellt.

1. Die benutzerdefinierte Funktion wird intern `table_import_from_s3` mit file\$1encoding verwendet. Die Ausgabe der Funktion wird durch die Verwendung von `array_to_string` und `array_agg` als `TEXT` Ausgabe abgerufen.

*Ansatz 2 — Hexadezimale Kodierung außerhalb der Datenbank und Dekodierung zur Anzeige von TEXT innerhalb der Datenbank*

Eine Datei von einem lokalen Server oder einem lokalen Dateisystem wird in einen Hex-Dump konvertiert. Dann wird die Datei als Feld in PostgreSQL importiert. `TEXT`

![\[Dreistufiger Prozess mit Hex-Dump.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/cbf63cac-dcea-4e18-ab4f-c4f6296f60e7/images/563038ca-f890-4874-85df-d0f82d99800a.png)


1. Konvertieren Sie die Datei in der Befehlszeile mit der Option in einen Hex-Dump. `xxd -p`

1. Laden Sie die Hex-Dump-Dateien mithilfe der `\copy` Option in das Aurora PostgreSQL-kompatible Format hoch und dekodieren Sie dann die Hex-Dump-Dateien in Binärdateien.

1. Kodieren Sie die Binärdaten, die zurückgegeben werden sollen als. `TEXT`

## Tools
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-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 Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.

**Andere Tools**
+ [pgAdmin4](https://www.pgadmin.org/) ist eine Open-Source-Verwaltungs- und Entwicklungsplattform für PostgreSQL. pgAdmin4 kann unter Linux, Unix, Mac OS und Windows zur Verwaltung von PostgreSQL verwendet werden.  

## Epen
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-epics"></a>

### Ansatz 1: Daten von Amazon S3 nach Aurora PostgreSQL-kompatibel importieren
<a name="approach-1-import-data-from-amazon-s3-to-aurora-postgresql-compatible"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie eine EC2 Instanz. | Anweisungen zum Starten einer Instance finden Sie unter [Starten Sie Ihre Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | DBA | 
| Installieren Sie das PostgreSQL-Client-Tool pgAdmin. | Downloaden und installieren Sie [pgAdmin](https://www.pgadmin.org/download/). | DBA | 
| Erstellen Sie eine IAM-Richtlinie. | Erstellen Sie eine AWS Identity and Access Management (IAM) -Richtlinie mit dem Namen`aurora-s3-access-pol`, die Zugriff auf den S3-Bucket gewährt, in dem die Dateien gespeichert werden. Verwenden Sie den folgenden Code und `<bucket-name>` ersetzen Sie ihn durch den Namen Ihres S3-Buckets.<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:DeleteObject",<br />                "s3:ListMultipartUploadParts",<br />                "s3:PutObject",<br />                "s3:ListBucket"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<bucket-name>/*",<br />                "arn:aws:s3:::<bucket-name>"<br />            ]<br />        }<br />    ]<br />}</pre> | DBA | 
| Erstellen Sie eine IAM-Rolle für den Objektimport von Amazon S3 nach Aurora PostgreSQL-kompatibel. | Verwenden Sie den folgenden Code, um eine IAM-Rolle mit dem Namen der Vertrauensbeziehung zu erstellen. `aurora-s3-import-role` [AssumeRole](https://docs.amazonaws.cn/en_us/STS/latest/APIReference/API_AssumeRole.html) `AssumeRole`ermöglicht Aurora, in Ihrem Namen auf andere AWS-Services zuzugreifen.<pre>{<br />  "Version": "2012-10-17",		 	 	 <br />  "Statement": [<br />    {<br />      "Effect": "Allow","Principal": {<br />        "Service": "rds.amazonaws.com"<br />      },"Action": "sts:AssumeRole"<br />    }<br />  ]<br />}<br /></pre> | DBA | 
| Ordnen Sie die IAM-Rolle dem Cluster zu. | Um die IAM-Rolle dem Aurora PostgreSQL-kompatiblen Datenbank-Cluster zuzuordnen, führen Sie den folgenden AWS-CLI-Befehl aus. Ändern Sie `<Account-ID>` die ID des AWS-Kontos, das die Aurora PostgreSQL-kompatible Datenbank hostet. Dadurch kann die Aurora PostgreSQL-kompatible Datenbank auf den S3-Bucket zugreifen.<pre>aws rds add-role-to-db-cluster --db-cluster-identifier aurora-postgres-cl<br />--feature-name s3Import --role-arn arn:aws:iam::<Account-ID>:role/aurora-s3-import-role</pre> | DBA | 
| Laden Sie das Beispiel auf Amazon S3 hoch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA, Besitzer der App | 
| Stellen Sie die benutzerdefinierte Funktion bereit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | Besitzer der App, DBA | 
| Führen Sie die benutzerdefinierte Funktion zum Importieren der Daten in die Datenbank aus. | Führen Sie den folgenden SQL-Befehl aus und ersetzen Sie die Elemente in spitzen Klammern durch die entsprechenden Werte.<pre>select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>Ersetzen Sie die Elemente in spitzen Klammern durch die entsprechenden Werte, wie im folgenden Beispiel gezeigt, bevor Sie den Befehl ausführen.<pre>Select load_file_into_clob('aws-s3-import-test'::text,'us-west-1'::text,'employee.salary.event.notification.email.vm'::text);</pre>Der Befehl lädt die Datei aus Amazon S3 und gibt die Ausgabe als zurück`TEXT`. | Besitzer der App, DBA | 

### Ansatz 2: Konvertieren Sie die Vorlagendatei in einen Hex-Dump in einem lokalen Linux-System
<a name="approach-2-convert-the-template-file-into-a-hex-dump-in-a-local-linux-system"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konvertiert die Vorlagendatei in einen Hex-Dump. | Das Hexdump-Hilfsprogramm zeigt den Inhalt von Binärdateien in Hexadezimal, Dezimal, Oktal oder ASCII an. Der `hexdump` Befehl ist Teil des `util-linux` Pakets und in Linux-Distributionen vorinstalliert. Das Hexdump RPM-Paket ist ebenfalls Teil von Amazon Linux 2. (: Amazon Linux 2 nähert sich dem Ende der Unterstützung. Weitere Informationen finden Sie unter [Amazon Linux FAQs 2.](https://aws.amazon.com/amazon-linux-2/faqs/))Um den Dateiinhalt in einen Hex-Dump zu konvertieren, führen Sie den folgenden Shell-Befehl aus.<pre>xxd -p </path/file.vm> | tr -d '\n' > </path/file.hex></pre>Ersetzen Sie den Pfad und die Datei durch die entsprechenden Werte, wie im folgenden Beispiel gezeigt.<pre>xxd -p employee.salary.event.notification.email.vm | tr -d '\n' > employee.salary.event.notification.email.vm.hex</pre> | DBA | 
| Laden Sie die Hexdump-Datei in das Datenbankschema. | Verwenden Sie die folgenden Befehle, um die Hexdump-Datei in die Aurora PostgreSQL-kompatible Datenbank zu laden.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.html) | DBA | 

## Zugehörige Ressourcen
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-resources"></a>

**Referenzen**
+ [Verwenden einer PostgreSQL-Datenbank als Ziel für den AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Playbook zur Migration von Oracle Database 19c zu Amazon Aurora mit PostgreSQL-Kompatibilität (12.4)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [IAM-Richtlinien erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)
+ [Zuordnen einer IAM-Rolle zu einem Amazon Aurora MySQL-DB-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.html)
+ [pgAdmin](https://www.pgadmin.org/)

**Tutorials**
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [Migrieren Sie von Oracle zu Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

## Zusätzliche Informationen
<a name="load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible-additional"></a>

**benutzerdefinierte Funktion load\$1file\$1into\$1clob**

```
CREATE OR REPLACE FUNCTION load_file_into_clob(
    s3_bucket_name text,
    s3_bucket_region text,
    file_name text,
    file_delimiter character DEFAULT '&'::bpchar,
    file_encoding text DEFAULT 'UTF8'::text)
    RETURNS text
    LANGUAGE 'plpgsql'
    COST 100
    VOLATILE PARALLEL UNSAFE
AS $BODY$
DECLARE
    blob_data BYTEA;
    clob_data TEXT;
    l_table_name CHARACTER VARYING(50) := 'file_upload_hex';
    l_column_name CHARACTER VARYING(50) := 'template';
    l_return_text TEXT;
    l_option_text CHARACTER VARYING(150);
    l_sql_stmt CHARACTER VARYING(500);
        
BEGIN
    
    EXECUTE format ('CREATE TEMPORARY TABLE %I (%I text, id_serial serial)', l_table_name, l_column_name);
    
    l_sql_stmt := 'select ''(format text, delimiter ''''' || file_delimiter || ''''', encoding ''''' || file_encoding ||  ''''')'' ';
    
    EXECUTE FORMAT(l_sql_stmt)
    INTO l_option_text;
    
    EXECUTE FORMAT('SELECT aws_s3.table_import_from_s3($1,$2,$6, aws_commons.create_s3_uri($3,$4,$5))')
    INTO l_return_text
    USING l_table_name, l_column_name, s3_bucket_name, file_name,s3_bucket_region,l_option_text;
    
    EXECUTE format('select array_to_string(array_agg(%I order by id_serial),E''\n'') from %I', l_column_name, l_table_name)
    INTO clob_data;
    
    drop table file_upload_hex;
    
    RETURN clob_data;
END;
$BODY$;
```

**E-Mail-Vorlage**

```
######################################################################################
##                                                                                    ##
##    johndoe Template Type: email                                                    ##
##    File: johndoe.salary.event.notification.email.vm                                ##
##    Author: Aimée Étienne    Date 1/10/2021                                                ##
##  Purpose: Email template used by EmplmanagerEJB to inform a johndoe they         ##
##        have been given access to a salary event                                    ##
##    Template Attributes:                                                             ##
##        invitedUser - PersonDetails object for the invited user                        ##
##        salaryEvent - OfferDetails object for the event the user was given access    ##
##        buyercollege - CompDetails object for the college owning the salary event    ##
##        salaryCoordinator - PersonDetails of the salary coordinator for the event    ##
##        idp - Identity Provider of the email recipient                                ##
##        httpWebRoot - HTTP address of the server                                    ##
##                                                                                    ##
######################################################################################

$!invitedUser.firstname $!invitedUser.lastname,

Ce courriel confirme que vous avez ete invite par $!salaryCoordinator.firstname $!salaryCoordinator.lastname de $buyercollege.collegeName a participer a l'evenement "$salaryEvent.offeringtitle" sur johndoeMaster Sourcing Intelligence.

Votre nom d'utilisateur est $!invitedUser.username

Veuillez suivre le lien ci-dessous pour acceder a l'evenement.

${httpWebRoot}/myDashboard.do?idp=$!{idp}

Si vous avez oublie votre mot de passe, utilisez le lien "Mot de passe oublie" situe sur l'ecran de connexion et entrez votre nom d'utilisateur ci-dessus.

Si vous avez des questions ou des preoccupations, nous vous invitons a communiquer avec le coordonnateur de l'evenement $!salaryCoordinator.firstname $!salaryCoordinator.lastname au ${salaryCoordinator.workphone}.

*******

johndoeMaster Sourcing Intelligence est une plateforme de soumission en ligne pour les equipements, les materiaux et les services.

Si vous avez des difficultes ou des questions, envoyez un courriel a support@johndoeMaster.com pour obtenir de l'aide.
```

# Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for PostgreSQL mit AWS SCT und unter Verwendung von und AWS DMS AWS CLI CloudFormation
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation"></a>

*Pinesh Signal, Amazon Web Services*

## Zusammenfassung
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-summary"></a>

Dieses Muster zeigt, wie Sie mithilfe von () eine [Amazon Relational Database Service (Amazon RDS) für Oracle-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) mit mehreren Terabyte zu einer [Amazon RDS for PostgreSQL PostgreSQL-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) migrieren. AWS Command Line Interface AWS CLI Dieser Ansatz bietet minimale Ausfallzeiten und erfordert keine Anmeldung bei. AWS-Managementkonsole

Dieses Muster trägt dazu bei, manuelle Konfigurationen und individuelle Migrationen mithilfe der Konsolen AWS Schema Conversion Tool (AWS SCT) und AWS Database Migration Service (AWS DMS) zu vermeiden. Die Lösung richtet eine einmalige Konfiguration für mehrere Datenbanken ein und führt die Migrationen mithilfe AWS SCT von und in der durch. AWS DMS AWS CLI

Das Muster wird verwendet AWS SCT , um Datenbankschemaobjekte von Amazon RDS for Oracle in Amazon RDS for PostgreSQL zu konvertieren, und verwendet es dann, um die Daten AWS DMS zu migrieren. Mithilfe von AWS CLI Python-Skripten in erstellen Sie AWS SCT Objekte und AWS DMS Aufgaben mit einer CloudFormation Vorlage.

## Voraussetzungen und Einschränkungen
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto.
+ Eine bestehende Amazon RDS for Oracle Oracle-DB-Instance.
+ Eine bestehende Amazon RDS for PostgreSQL PostgreSQL-DB-Instance. 
+ Eine Amazon Elastic Compute Cloud (Amazon EC2) -Instanz oder ein lokaler Computer mit Windows- oder Linux-Betriebssystem zum Ausführen von Skripten.
+ Ein Verständnis der folgenden Arten von AWS DMS Migrationsaufgaben:`full-load`,`cdc`,`full-load-and-cdc`.  Weitere Informationen finden Sie in der AWS DMS Dokumentation unter [Aufgabe erstellen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). 
+ AWS SCT, installiert und konfiguriert mit Java Database Connectivity (JDBC) -Treibern für Oracle- und PostgreSQL-Datenbank-Engines. Weitere Informationen finden Sie in der Dokumentation unter [Installation und Konfiguration AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure). AWS SCT  
+ Die `AWSSchemaConversionToolBatch.jar` Datei aus dem installierten AWS SCT Ordner wurde in Ihr Arbeitsverzeichnis kopiert.
+ Die `cli-sct-dms-cft.zip` Datei (angehängt), heruntergeladen und in Ihr Arbeitsverzeichnis extrahiert.
+ Die neueste Version der AWS DMS Replication Instance Engine. Weitere Informationen finden Sie in der AWS Support Dokumentation und in den [AWS DMS Versionshinweisen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReleaseNotes.html) unter [Wie erstelle ich eine AWS DMS Replikationsinstanz](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/). 
+ AWS CLI Version 2, installiert und konfiguriert mit Ihrer Zugriffsschlüssel-ID, Ihrem geheimen Zugriffsschlüssel und dem AWS-Region Standardnamen für die EC2 Instanz oder das Betriebssystem, auf dem die Skripts ausgeführt werden. Weitere Informationen finden Sie in der AWS CLI Dokumentation unter [Installation oder Aktualisierung auf die neueste Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Konfiguration AWS CLI der Einstellungen für](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). 
+ Vertrautheit mit CloudFormation Vorlagen. Weitere Informationen finden Sie in der CloudFormation Dokumentation unter [So CloudFormation funktioniert](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-overview.html) es. 
+ Python Version 3, installiert und konfiguriert auf der EC2 Instanz oder dem Betriebssystem, auf dem die Skripts ausgeführt werden. Weitere Informationen finden Sie in der [Python-Dokumentation](https://docs.python.org/3/). 

**Einschränkungen**
+ Die Mindestanforderungen für Ihre Amazon RDS for Oracle DB-Quell-Instance sind: 
  + Oracle-Versionen 12c (12.1.0.2, 12.2.0.1), 18c (18.0.0.0) und 19c (19.0.0.0) für die Editionen Enterprise, Standard, Standard One und Standard Two.
  + Obwohl Amazon RDS Oracle 18c (18.0.0.0) unterstützt, ist diese Version veraltet, da Oracle nach diesem Datum keine Patches mehr für 18c bereitstellt. end-of-support Weitere Informationen finden Sie unter [Amazon RDS for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.Deprecate.11204) in der Amazon RDS-Dokumentation.
  + Amazon RDS for Oracle 11g wird nicht mehr unterstützt.
+ Die Mindestanforderungen für Ihre Amazon RDS for PostgreSQL PostgreSQL-DB-Ziel-Instance sind: 
  + PostgreSQL-Versionen 9 (9.5 und 9.6), 10.x, 11.x, 12.x und 13.x

**Produktversionen**
+ Amazon RDS for Oracle DB-Instance Version 12.1.0.2 und höher
+ Amazon RDS for PostgreSQL DB-Instance Version 11.5 und höher
+ AWS CLI Version 2 
+ Die neueste Version von AWS SCT
+ Die neueste Version von Python 3

## Architektur
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-architecture"></a>

**Quelltechnologie-Stack**
+ Amazon RDS für Oracle

**Zieltechnologie-Stack**
+ Amazon RDS für PostgreSQL

**Quell- und Zielarchitektur**

Das folgende Diagramm zeigt die Migration einer Amazon RDS for Oracle DB-Instance zu einer Amazon RDS for PostgreSQL DB-Instance mithilfe von AWS DMS Python-Skripten.

![\[Migration der RDS für Oracle-DB-Instance zur RDS for PostgreSQL-DB-Instance mithilfe von AWS DMS und Python.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5e041494-2e64-4f09-b6ec-0e0cba3a4972/images/77022e13-46fb-4aa8-ab49-85b0ca4c317a.png)


 

Das Diagramm zeigt den folgenden Migrationsablauf:

1. Das Python-Skript wird verwendet AWS SCT , um eine Verbindung zu den Quell- und Ziel-DB-Instances herzustellen.

1. Der Benutzer beginnt AWS SCT mit dem Python-Skript, konvertiert den Oracle-Code in PostgreSQL-Code und führt ihn auf der Ziel-DB-Instance aus.

1. Das Python-Skript erstellt AWS DMS Replikationsaufgaben für die Quell- und Ziel-DB-Instances.

1. Der Benutzer stellt Python-Skripts bereit, um die AWS DMS Aufgaben zu starten, und stoppt die Aufgaben dann, nachdem die Datenmigration abgeschlossen ist.

**Automatisierung und Skalierung**

Sie können diese Migration automatisieren, indem Sie Ihrem Python-Skript Parameter und sicherheitsrelevante Änderungen hinzufügen, um zusätzliche Funktionen bereitzustellen. 

## Tools
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus regionsübergreifend AWS-Konten zu verwalten. Dieses Muster konvertiert die `.csv` `.json` Eingabedatei mithilfe eines Python-Skripts in eine Eingabedatei. Die `.json` Datei wird in AWS CLI Befehlen verwendet, um einen CloudFormation Stack zu erstellen, der mehrere AWS DMS Replikationsaufgaben mit Amazon-Ressourcennamen (ARNs), Migrationstypen, Aufgabeneinstellungen und Tabellenzuordnungen erstellt.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) hilft Ihnen bei der Migration von Datenspeichern in die AWS Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups. Dieses Muster wird verwendet, AWS DMS um Aufgaben mit einem Python-Skript, das in der Befehlszeile ausgeführt wird, zu erstellen, zu starten und zu beenden und die CloudFormation Vorlage zu erstellen.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist. Für dieses Muster ist die `AWSSchemaConversionToolBatch.jar` Datei aus dem installierten Verzeichnis erforderlich. AWS SCT 

**Code**

Die `cli-sct-dms-cft.zip` Datei (angehängt) enthält den kompletten Quellcode für dieses Muster.

## Epen
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-epics"></a>

### Konfigurieren AWS SCT und erstellen Sie Datenbankobjekte in AWS CLI
<a name="configure-awssct-and-create-database-objects-in-the-cli"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie AWS SCT es so, dass es von der ausgeführt wird AWS CLI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Führen Sie das `run_aws_sct.py` Python-Skript aus. | Führen Sie das `run_aws_sct.py` Python-Skript mit dem folgenden Befehl aus:`$ python run_aws_sct.py database_migration.txt`Das Python-Skript konvertiert die Datenbankobjekte von Oracle nach PostgreSQL und erstellt SQL-Dateien im PostgreSQL-Format. Das Skript erstellt auch die PDF-Datei`Database migration assessment report`, die Ihnen detaillierte Empfehlungen und Konvertierungsstatistiken für Datenbankobjekte bietet. | DBA | 
| Erstellen Sie Objekte in Amazon RDS for PostgreSQL. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 

### Konfigurieren und erstellen Sie AWS DMS Aufgaben mithilfe von und AWS CLI CloudFormation
<a name="configure-and-create-dms-tasks-by-using-the-cli-and-cfn"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine AWS DMS Replikationsinstanz. | Melden Sie sich bei der an AWS-Managementkonsole, öffnen Sie die [AWS DMS Konsole](https://console.aws.amazon.com/dms/v2/) und erstellen Sie eine Replikationsinstanz, die Ihren Anforderungen entsprechend konfiguriert ist.Weitere Informationen finden Sie in der Dokumentation unter [Erstellen einer Replikationsinstanz](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) und in der AWS DMS Dokumentation unter [Wie erstelle ich eine AWS DMS Replikationsinstanz](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/). AWS Support  | DBA | 
| Erstellen Sie den Quellendpunkt. | Wählen Sie in der AWS DMS Konsole **Endpoints** aus und erstellen Sie dann einen Quellendpunkt für die Oracle-Datenbank entsprechend Ihren Anforderungen. Das zusätzliche Verbindungsattribut muss `numberDataTypeScale` einen `-2` Wert haben.Weitere Informationen finden Sie in der AWS DMS Dokumentation unter [Quell- und Zielendpunkte erstellen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | DBA | 
| Erstellen Sie den Zielendpunkt. | Wählen Sie in der AWS DMS Konsole **Endpoints** aus und erstellen Sie dann einen Zielendpunkt für die PostgreSQL-Datenbank gemäß Ihren Anforderungen.  Weitere Informationen finden Sie in der Dokumentation unter [Quell- und Zielendpunkte erstellen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). AWS DMS  | DevOps Ingenieur | 
| Konfigurieren Sie die AWS DMS Replikationsdetails für die Ausführung von AWS CLI. | Konfigurieren Sie die AWS DMS Quell- und Zielendpunkte sowie die Replikationsdetails in der `dms-arn-list.txt` Datei mit dem Quellendpunkt-ARN, dem Zielendpunkt-ARN und dem Replizierungsinstanz-ARN im folgenden Format:<pre>#sourceARN,targetARN,repARN<br />arn:aws:dms:us-east-1:123456789012:endpoint:EH7AINRUDZ5GOYIY6HVMXECMCQ<br />arn:aws:dms:us-east-1:123456789012:endpoint:HHJVUV57N7O3CQF4PJZKGIOYY5<br />arn:aws:dms:us-east-1:123456789012:rep:LL57N77AQQAHHJF4PJFHNEDZ5G</pre> | DBA | 
| Führen Sie das `dms-create-task.py` Python-Skript aus, um die AWS DMS Aufgaben zu erstellen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html) | DBA | 
| Stellen Sie sicher, dass die AWS DMS Aufgaben bereit sind. | Überprüfen Sie auf der AWS DMS Konsole im Abschnitt `Ready` Status, ob Ihre AWS DMS Aufgaben den **Status** haben. | DBA | 

### Starten und beenden Sie die AWS DMS Aufgaben mit dem AWS CLI
<a name="start-and-stop-the-dms-tasks-by-using-the-cli"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starte die AWS DMS Aufgaben. | Führen Sie das `dms-start-task.py` Python-Skript mit dem folgenden Befehl aus:<pre>$ python dms-start-task.py start '<cdc-start-datetime>'</pre>Das Startdatum und die Startzeit müssen im `'YYYY-MM-DDTHH:MI:SS'` Format `'DD-MON-YYYY'` oder angegeben werden (z. B. `'01-Dec-2019'` oder`'2018-03-08T12:12:12'`).Sie können den Status der AWS DMS Aufgabe auf der Registerkarte **Tabellenstatistiken** auf der Seite **Aufgaben** der AWS DMS Konsole überprüfen. | DBA | 
| Validieren Sie die Daten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.html)Weitere Informationen finden Sie in der AWS DMS Dokumentation unter [AWS DMS Datenvalidierung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | DBA | 
| Stoppen Sie die AWS DMS Aufgaben. | Führen Sie das Python-Skript mit dem folgenden Befehl aus:<pre>$ python dms-start-task.py stop</pre>AWS DMS Aufgaben werden je nach `failed` Validierungsstatus möglicherweise mit einem Status beendet. Weitere Informationen finden Sie im folgenden Abschnitt. | DBA | 

## Fehlerbehebung
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| AWS SCT Quell- und Zieltestverbindungen schlagen fehl. | Konfigurieren Sie die JDBC-Treiberversionen und die Regeln für den eingehenden Datenverkehr der VPC-Sicherheitsgruppe so, dass sie den eingehenden Datenverkehr akzeptieren. | 
| Der Testlauf am Quell- oder Zielendpunkt schlägt fehl. | Überprüfen Sie, ob sich die Endpunkteinstellungen und die Replikationsinstanz im `Available` Status befinden. Überprüfen Sie, ob der Status der Endpunktverbindung lautet`Successful`. Weitere Informationen finden Sie in der AWS Support Dokumentation unter [Wie behebe ich Fehler bei der AWS DMS-Endpunktkonnektivität](https://aws.amazon.com/premiumsupport/knowledge-center/dms-endpoint-connectivity-failures/)?. | 
| Der Volllastlauf schlägt fehl. | Überprüfen Sie, ob die Quell- und Zieldatenbanken übereinstimmende Datentypen und Größen haben. Weitere Informationen finden Sie in der AWS DMS Dokumentation unter [Problembehandlung AWS DMS bei Migrationsaufgaben](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html). | 
| Es treten Fehler beim Validierungslauf auf. | Prüfen Sie, ob die Tabelle einen Primärschlüssel hat, da Tabellen, die keine Primärschlüssel sind, nicht validiert werden.Wenn die Tabelle einen Primärschlüssel enthält und Fehler auftreten, überprüfen Sie, ob das zusätzliche Verbindungsattribut im Quellendpunkt einen hat`numberDataTypeScale=-2`.Weitere Informationen finden Sie in der AWS DMS Dokumentation unter [Endpunkteinstellungen bei Verwendung von Oracle als Quelle für AWS DMS[OracleSettings](https://docs.aws.amazon.com/dms/latest/APIReference/API_OracleSettings.html)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.ConnectionAttrib), und [Problembehandlung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html#CHAP_Validating.Troubleshooting). | 

## Zugehörige Ressourcen
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation-resources"></a>
+ [Installation und Konfiguration AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)
+ [Einführung in AWS DMS](https://www.youtube.com/watch?v=ouia1Sc5QGo) (Video)
+ [Beispiele für CloudFormation Stack-Operationsbefehle für AWS CLI und PowerShell](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cli.html)
+ [Navigieren in der Benutzeroberfläche des AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Verbindung zu Oracle-Datenbanken herstellen mit AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ [Verwendung einer PostgreSQL-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [Quellen für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Ziele für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [Cloudformation](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/index.html) (AWS CLI Dokumentation)
+ [create-stack](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudformation/create-stack.html) (Dokumentation)AWS CLI  
+ [dms](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/index.html) (Dokumentation)AWS CLI  

## Anlagen
<a name="attachments-5e041494-2e64-4f09-b6ec-0e0cba3a4972"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/5e041494-2e64-4f09-b6ec-0e0cba3a4972/attachments/attachment.zip)

# Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for PostgreSQL im SSL-Modus mithilfe von AWS DMS
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms"></a>

*Pinesh Signal, Amazon Web Services*

## Zusammenfassung
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer Amazon Relational Database Service (Amazon RDS) für Oracle-Datenbank-Instance zu einer Amazon RDS for PostgreSQL PostgreSQL-Datenbank in der Amazon Web Services (AWS) -Cloud. Um Verbindungen zwischen den Datenbanken zu verschlüsseln, verwendet das Muster die Zertifizierungsstelle (CA) und den SSL-Modus in Amazon RDS und AWS Database Migration Service (AWS DMS).

Das Muster beschreibt eine Online-Migrationsstrategie mit geringen oder keinen Ausfallzeiten für eine Oracle-Quelldatenbank mit mehreren Terabyte und einer hohen Anzahl von Transaktionen. Aus Gründen der Datensicherheit verwendet das Muster SSL bei der Übertragung der Daten.

Dieses Muster verwendet das AWS Schema Conversion Tool (AWS SCT), um das Amazon RDS for Oracle Oracle-Datenbankschema in ein Amazon RDS for PostgreSQL PostgreSQL-Schema zu konvertieren. Anschließend verwendet das Muster AWS DMS, um Daten von der Amazon RDS for Oracle Oracle-Datenbank zur Amazon RDS for PostgreSQL PostgreSQL-Datenbank zu migrieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto 
+ Amazon RDS-Datenbankzertifizierungsstelle (CA), konfiguriert nur mit ***rds-ca-rsa2048-g1*** 
  + Das ***rds-ca-2019-Zertifikat*** ist im August 2024 abgelaufen.
  + Das ***rds-ca-2015-Zertifikat ist am 5. März*** 2020 abgelaufen.
+ AWS SCT
+ AWS DMS
+ pgAdmin
+ SQL-Tools (z. B. SQL Developer oder SQL\$1Plus)

**Einschränkungen**
+ Amazon RDS for Oracle Oracle-Datenbank — Die Mindestanforderung gilt für die Oracle-Versionen 19c für die Enterprise- und Standard Two-Editionen.
+ Amazon RDS for PostgreSQL PostgreSQL-Datenbank — Die Mindestanforderung gilt für PostgreSQL Version 12 und höher (für Versionen 9.x und höher).

**Produktversionen**
+ Amazon RDS for Oracle Oracle-Datenbank-Instance Version 12.1.0.2
+ Amazon RDS for PostgreSQL PostgreSQL-Datenbank-Instance Version 11.5

## Architektur
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Eine Amazon RDS for Oracle Oracle-Datenbank-Instance mit Version 12.1.0.2.v18.

**Zieltechnologie-Stack**
+ AWS DMS
+ Eine Amazon RDS for PostgreSQL PostgreSQL-Datenbank-Instance mit Version 11.5.

**Zielarchitektur**

Das folgende Diagramm zeigt die Architektur für die Datenmigrationsarchitektur zwischen Oracle-Datenbanken (Quell-) und PostgreSQL-Datenbanken (Ziel). Die Architektur umfasst Folgendes:
+ Eine Virtual Private Cloud (VPC)
+ Eine Availability Zone
+ Ein privates Subnetz
+ Eine Amazon RDS for Oracle Oracle-Datenbank
+ Eine AWS-DMS-Replikationsinstanz
+ Eine RDS-Datenbank für PostgreSQL

Um Verbindungen für Quell- und Zieldatenbanken zu verschlüsseln, müssen der CA- und SSL-Modus in Amazon RDS und AWS DMS aktiviert sein.

![\[Datenaustausch zwischen RDS für Oracle und AWS DMS sowie zwischen AWS DMS und RDS für PostgreSQL.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/7098e2a3-b456-4e14-8881-c97145aef483/images/55b50ff7-1e6a-4ff0-9bcd-2fd419d5316a.png)


## Tools
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-tools"></a>

**AWS-Services**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [Amazon Relational Database Service (Amazon RDS) für Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der AWS-Cloud.
+ [Amazon Relational Database Service (Amazon RDS) für PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen PostgreSQL-Datenbank in der AWS-Cloud.
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.

**Andere Dienste**
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können.

## Best Practices
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-best-practices"></a>

Amazon RDS stellt neue CA-Zertifikate als eine bewährte Methode für die AWS-Sicherheit bereit. Informationen zu den neuen Zertifikaten und den unterstützten AWS-Regionen finden Sie unter [Verwenden, SSL/TLS um eine Verbindung zu einer DB-Instance oder einem Cluster zu verschlüsseln](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html).

Wenn Ihre RDS-Instance derzeit über ein CA-Zertifikat `rds-ca-2019` verfügt und Sie ein Upgrade durchführen möchten`rds-ca-rsa2048-g1`, folgen Sie den Anweisungen unter [Aktualisieren Ihres CA-Zertifikats durch Ändern Ihrer DB-Instance oder Ihres Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating) oder [Aktualisieren Ihres CA-Zertifikats durch Wartung](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update).

## Epen
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-epics"></a>

### Konfiguration der Amazon RDS for Oracle Oracle-Instance
<a name="configure-the-amazon-rds-for-oracle-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Oracle-Datenbankinstanz. | Melden Sie sich bei Ihrem AWS-Konto an, öffnen Sie die AWS-Managementkonsole und navigieren Sie zur Amazon RDS-Konsole. Wählen Sie in der Konsole **Create database** und dann **Oracle** aus. | Allgemein AWS, DBA | 
| Sicherheitsgruppen konfigurieren. | Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr. | Allgemeines AWS | 
| Erstellen Sie eine Optionsgruppe. | Erstellen Sie eine Optionsgruppe in derselben VPC und Sicherheitsgruppe wie die Amazon RDS for Oracle Oracle-Datenbank. Wählen Sie für **Option die Option** **SSL** aus. Wählen Sie für **Port** **2484** (für SSL-Verbindungen) aus. | Allgemeines AWS | 
| Konfigurieren Sie die Optionseinstellungen. | Verwenden Sie die folgenden Einstellungen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Ändern Sie die RDS für Oracle-DB-Instance. | Legen Sie das CA-Zertifikat auf **rds-ca-rsa2048-g1** fest. Fügen Sie unter **Optionsgruppe** die zuvor erstellte Optionsgruppe hinzu. | DBA, Allgemeines AWS | 
| Vergewissern Sie sich, dass die RDS for Oracle DB-Instance verfügbar ist. | Stellen Sie sicher, dass die Amazon RDS for Oracle Oracle-Datenbank-Instance betriebsbereit ist und dass auf das Datenbankschema zugegriffen werden kann.Verwenden Sie den Befehl von der `sqlplus` Befehlszeile aus, um eine Verbindung zur RDS for Oracle-DB herzustellen.<pre>$ sqlplus orcl/****@myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com:1521/ORCL<br />SQL*Plus: Release 12.1.0.2.0 Production on Tue Oct 15 18:11:07 2019<br />Copyright (c) 1982, 2016, Oracle.  All rights reserved.<br />Last Successful login time: Mon Dec 16 2019 23:17:31 +05:30<br />Connected to:<br />Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production<br />With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options<br />SQL></pre> | DBA | 
| Erstellen Sie Objekte und Daten in der Datenbank RDS for Oracle. | Erstellen Sie Objekte und fügen Sie Daten in das Schema ein. | DBA | 

### Amazon RDS for PostgreSQL PostgreSQL-Instance konfigurieren
<a name="configure-the-amazon-rds-for-postgresql-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Datenbank RDS für PostgreSQL. | Wählen Sie auf der Seite **Datenbank erstellen** der Amazon RDS-Konsole PostgreSQL aus, um eine Amazon RDS for **PostgreSQL** PostgreSQL-Datenbank-Instance zu erstellen. | DBA, Allgemeines AWS | 
| Konfigurieren Sie Sicherheitsgruppen. | Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr. | Allgemeines AWS | 
| Erstellen Sie eine Parametergruppe. | Wenn Sie PostgreSQL Version 11.x verwenden, erstellen Sie eine Parametergruppe, um SSL-Parameter festzulegen. In PostgreSQL Version 12 ist die SSL-Parametergruppe standardmäßig aktiviert. | Allgemeines AWS | 
| Parameter bearbeiten. | Ändern Sie den `rds.force_ssl` Parameter auf `1` (ein).Standardmäßig ist der `ssl` Parameter `1` (on). Wenn Sie den `rds.force_ssl` Parameter auf setzen`1`, zwingen Sie, dass alle Verbindungen nur im SSL-Modus eine Verbindung herstellen. | Allgemeines AWS | 
| Ändern Sie die DB-Instance RDS für PostgreSQL. | **Legen Sie das CA-Zertifikat auf 2048-g1 fest. rds-ca-rsa** Hängen Sie je nach Ihrer PostgreSQL-Version die Standardparametergruppe oder die zuvor erstellte Parametergruppe an. | DBA, Allgemeines AWS | 
| Vergewissern Sie sich, dass die RDS for PostgreSQL-DB-Instance verfügbar ist. | Stellen Sie sicher, dass die Amazon RDS for PostgreSQL PostgreSQL-Datenbank betriebsbereit ist.Der `psql` Befehl stellt eine SSL-Verbindung her, die über die Befehlszeile `sslmode` festgelegt wurde.Eine Möglichkeit besteht darin, die Parametergruppe festzulegen `sslmode=1` und eine `psql` Verbindung zu verwenden, ohne den `sslmode` Parameter in den Befehl aufzunehmen.Die folgende Ausgabe zeigt, dass die SSL-Verbindung hergestellt wurde.<pre>$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser"<br />Password for user pguser:<br />psql (11.3, server 11.5)<br />SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)<br />Type "help" for help.<br />pgdb=></pre>Eine zweite Option besteht darin, die Parametergruppe festzulegen `sslmode=1` und den `sslmode` Parameter in den `psql` Befehl aufzunehmen.Die folgende Ausgabe zeigt, dass die SSL-Verbindung hergestellt wurde.<pre>$ psql -h mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com -p 5432 "dbname=pgdb user=pguser sslmode=require"<br />Password for user pguser: <br />psql (11.3, server 11.5)<br />SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)<br />Type "help" for help.<br />pgdb=></pre> | DBA | 

### AWS SCT konfigurieren und ausführen
<a name="configure-and-run-aws-sct"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie AWS SCT. | Installieren Sie die neueste Version der AWS SCT-Anwendung. | Allgemeines AWS | 
| Konfigurieren Sie AWS SCT mit JDBC-Treibern. | [Laden Sie die Java Database Connectivity (JDBC) -Treiber für Oracle ([ojdbc8.jar](https://download.oracle.com/otn-pub/otn_software/jdbc/233/ojdbc8.jar)) und PostgreSQL (postgresql-42.2.5.jar) herunter.](https://jdbc.postgresql.org/download/postgresql-42.2.19.jar)Um die Treiber in AWS SCT zu konfigurieren, wählen Sie **Einstellungen**, **Globale Einstellungen**, **Treiber**. | Allgemeines AWS | 
| Erstellen Sie das AWS SCT-Projekt. | Erstellen Sie das AWS SCT-Projekt und den Bericht mit Oracle als Quell-DB-Engine und Amazon RDS for PostgreSQL als Ziel-DB-Engine:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Datenbankobjekte validieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | DBA, Allgemeines AWS | 

### AWS DMS konfigurieren und ausführen
<a name="configure-and-run-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Replikationsinstanz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Importieren Sie das Zertifikat. | Laden Sie das [Zertifikatspaket (PEM)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions) für Ihre AWS-Region herunter.Das Paket enthält sowohl die `rds-ca-2019` Zwischen- als auch die Stammzertifikate. Das Paket enthält auch die `rds-ca-ecc384-g1` CA-Stammzertifikate `rds-ca-rsa2048-g1``rds-ca-rsa4096-g1`, und. Ihr Anwendungs-Trustspeicher muss nur das Root-CA-Zertifikat registrieren. | Allgemeines AWS | 
| Erstellen Sie den Quellendpunkt. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Weitere Informationen finden Sie unter [Verwenden einer Oracle-Datenbank als Quelle für den AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | Allgemeines AWS | 
| Erstellen Sie den Zielendpunkt. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html)Weitere Informationen finden Sie unter [Verwenden einer PostgreSQL-Datenbank als Ziel für den AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html). | Allgemeines AWS | 
| Testen Sie die Endpunkte. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Erstellen Sie Migrationsaufgaben. | Gehen Sie wie folgt vor, um eine Migrationsaufgabe für Volllast und Change Data Capture (CDC) oder für die Datenvalidierung zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Planen Sie den Produktionslauf. | Bestätigen Sie Ausfallzeiten mit Stakeholdern wie Anwendungsbesitzern, um AWS DMS in Produktionssystemen auszuführen. | Leiter der Migration | 
| Führen Sie die -Migrationsaufgabe aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Validieren Sie die Daten. | Überprüfen Sie die Ergebnisse und Daten der Migrationsaufgaben in den Oracle-Quelldatenbanken und den PostgreSQL-Zieldatenbanken:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | DBA | 
| Beenden Sie die Migrationsaufgabe. | Nachdem Sie die Datenüberprüfung erfolgreich abgeschlossen haben, beenden Sie die Migrationsaufgabe. | Allgemeines AWS | 

### Säubere die Ressourcen
<a name="clean-up-the-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie die AWS DMS-Aufgaben. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Löschen Sie die AWS DMS-Endpunkte. | **Wählen Sie die Quell- und Zielendpunkte aus, die Sie erstellt haben, wählen Sie **Aktionen** und dann Löschen aus.** | Allgemeines AWS | 
| Löschen Sie die AWS DMS-Replikationsinstanz. | Wählen Sie die Replikationsinstanz aus, klicken Sie auf **Aktionen** und dann auf **Löschen**. | Allgemeines AWS | 
| Löschen Sie die PostgreSQL-Datenbank. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | Allgemeines AWS | 
| Löschen Sie die Oracle-Datenbank. | Wählen Sie in der Amazon RDS-Konsole die Oracle-Datenbank-Instance aus, klicken Sie auf **Actions** und anschließend auf **Delete**. | Allgemeines AWS | 

## Fehlerbehebung
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Die Quell- und Zieltestverbindungen von AWS SCT schlagen fehl. | Konfigurieren Sie JDBC-Treiberversionen und eingehende VPC-Sicherheitsgruppenregeln, um den eingehenden Datenverkehr zu akzeptieren. | 
| Der Testlauf für den Oracle-Quellendpunkt schlägt fehl. | Überprüfen Sie die Endpunkteinstellungen und ob die Replikationsinstanz verfügbar ist. | 
| Der Volllastlauf der AWS DMS-Aufgabe schlägt fehl. | Prüfen Sie, ob die Quell- und Zieldatenbanken übereinstimmende Datentypen und Größen haben. | 
| Die AWS DMS-Validierungs-Migrationsaufgabe gibt Fehler zurück. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.html) | 

## Zugehörige Ressourcen
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-resources"></a>

**Datenbanken**
+ [Amazon RDS für Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Amazon RDS für PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)

**SSL-DB-Verbindung**
+ [Wird verwendet SSL/TLS , um eine Verbindung zu einer DB-Instance zu verschlüsseln](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)
  + [Verwenden von SSL mit einer RDS für Oracle-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.SSL.html)
  + [Verbindungen zu RDS für PostgreSQL mit SSL/TLS sichern](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.Security.html)
  + [Laden Sie Zertifikatspakete für bestimmte AWS-Regionen herunter](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html#UsingWithRDS.SSL.CertificatesAllRegions)
    + [Laden Sie das CA-2019-Stammzertifikat](https://s3.amazonaws.com/rds-downloads/rds-ca-2019-root.pem) herunter (im August 2024 abgelaufen)
+ [Arbeiten mit Optionsgruppen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html)
  + [Optionen zu Oracle-DB-Instances hinzufügen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html)
  + [Oracle Secure Sockets Layer](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.SSL.html)
+ [Mit Parametergruppen arbeiten](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)
+ [PostgreSQL-Verbindungsparameter sslmode](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-CONNECT-SSLMODE)
+ [SSL von JDBC aus verwenden](https://jdbc.postgresql.org/documentation/ssl/)
+ [Rotation Ihres Zertifikats SSL/TLS ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html)
  + [Aktualisierung Ihres CA-Zertifikats durch Änderung Ihrer DB-Instance oder Ihres Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-updating)
  + [Aktualisierung Ihres CA-Zertifikats durch Wartung](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html#UsingWithRDS.SSL-certificate-rotation-maintenance-update)

**AWS SCT**
+ [AWS-Schemakonvertierungstool](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Benutzerhandbuch für das AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Verwenden der AWS SCT-Benutzeroberfläche](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [Verwendung von Oracle Database als Quelle für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)

**AWS DMS**
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [AWS Database Migration Service — Benutzerhandbuch](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
  + [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
  + [Verwenden einer PostgreSQL-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Verwenden von SSL mit AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Security.SSL.html)
+ [Migrieren von Anwendungen, auf denen relationale Datenbanken ausgeführt werden, zu AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

## Zusätzliche Informationen
<a name="migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms-additional"></a>

Die Zertifikate der Amazon RDS Certificate Authority `rds-ca-2019` sind im August 2024 abgelaufen. Wenn Sie SSL oder TLS mit Zertifikatsüberprüfung verwenden oder verwenden möchten, um eine Verbindung zu Ihren RDS-DB-Instances oder Multi-AZ-DB-Clustern herzustellen, sollten Sie die Verwendung eines der neuen CA-Zertifikate in Betracht ziehen:`rds-ca-rsa2048-g1`,`rds-ca-rsa4096-g1`, oder`rds-ca-ecc384-g1`.

# Migrieren Sie Oracle SERIALLY\$1REUSABLE Pragma-Pakete nach PostgreSQL
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql"></a>

*Vinay Paladi, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-summary"></a>

Dieses Muster bietet einen step-by-step Ansatz für die Migration von Oracle-Paketen, die als SERIALLY\$1REUSABLE Pragma definiert sind, nach PostgreSQL auf Amazon Web Services (AWS). Bei diesem Ansatz wird die Funktionalität des Pragmas SERIALLY\$1REUSABLE beibehalten.

PostgreSQL unterstützt das Konzept von Paketen und das Pragma SERIALLY\$1REUSABLE nicht. Um ähnliche Funktionen in PostgreSQL zu erhalten, können Sie Schemas für Pakete erstellen und alle zugehörigen Objekte (wie Funktionen, Prozeduren und Typen) innerhalb der Schemas bereitstellen. Um die Funktionalität des Pragmas SERIALLY\$1REUSABLE zu erreichen, verwendet das in diesem Muster bereitgestellte Beispiel-Wrapper-Funktionsskript ein [AWS Schema Conversion Tool (AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)) -Erweiterungspaket.

Weitere Informationen finden Sie unter [SERIALLY\$1REUSABLE](https://docs.oracle.com/cd/B13789_01/appdev.101/b10807/13_elems046.htm) Pragma in der Oracle-Dokumentation.

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Die neueste Version von AWS SCT und die erforderlichen Treiber
+ Eine Amazon Aurora PostgreSQL-kompatible Edition-Datenbank oder ein Amazon Relational Database Service (Amazon RDS) für PostgreSQL-Datenbank 

**Produktversionen**
+ Oracle Database Version 10g und höher

## Architektur
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-architecture"></a>

**Quelltechnologie-Stack**
+ Oracle-Datenbank vor Ort

**Zieltechnologie-Stack**
+ [Aurora PostgreSQL-kompatibel](https://aws.amazon.com/rds/aurora/details/postgresql-details/) oder Amazon RDS für PostgreSQL
+ AWS SCT

**Migrationsarchitektur**

![\[Lokale Oracle-DB-Daten werden mithilfe von AWS SCT-, .sql-Dateien, manueller Konvertierung nach PostgreSQL an AWS gesendet.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/fe3c45d2-6ea4-43b5-adb1-18f068f126b9/images/2dc90708-e300-4251-9d12-de97b6588b72.png)


## Tools
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-tools"></a>

**AWS-Services**
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.
+ [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.
+ [Amazon Relational Database Service (Amazon RDS) für PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen PostgreSQL-Datenbank in der AWS-Cloud.

**Andere Tools**
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können.

## Epen
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-epics"></a>

### Migrieren Sie das Oracle-Paket mithilfe von AWS SCT
<a name="migrate-the-oracle-package-by-using-aws-sct"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie AWS SCT ein. | Konfigurieren Sie die AWS SCT-Konnektivität zur Quelldatenbank. Weitere Informationen finden Sie unter [Verwenden von Oracle Database als Quelle für AWS SCT.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) | DBA, Entwickler | 
| Konvertiert das Skript. | Verwenden Sie AWS SCT, um das Oracle-Paket zu konvertieren, indem Sie die Zieldatenbank als Aurora PostgreSQL-kompatibel auswählen. | DBA, Entwickler | 
| Speichern Sie die .sql-Dateien. | Bevor Sie die SQL-Datei speichern, ändern Sie die Option **Projekteinstellungen** in AWS SCT auf **Einzelne Datei pro Phase**. AWS SCT teilt die .sql-Datei je nach Objekttyp in mehrere .sql-Dateien auf. | DBA, Entwickler | 
| Ändern Sie den Code. | Öffnen Sie die von AWS SCT generierte `init` Funktion und ändern Sie sie, wie im Beispiel im Abschnitt *Zusätzliche Informationen* gezeigt. Es wird eine Variable hinzugefügt, um die Funktionalität `pg_serialize = 0` zu erreichen. | DBA, Entwickler | 
| Testen Sie die Konvertierung. | Stellen Sie die `init` Funktion in der Aurora PostgreSQL-kompatiblen Datenbank bereit und testen Sie die Ergebnisse. | DBA, Entwickler | 

## Zugehörige Ressourcen
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-resources"></a>
+ [AWS-Schemakonvertierungstool](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Funktionen von Amazon Aurora](https://aws.amazon.com/rds/aurora/postgresql-features/)
+ [SERIALLY\$1REUSABLE Pragma](https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/seriallyreusable_pragma.htm#LNPLS01346)

## Zusätzliche Informationen
<a name="migrate-oracle-serially-reusable-pragma-packages-into-postgresql-additional"></a>

```
Source Oracle Code:

CREATE OR REPLACE PACKAGE test_pkg_var
IS
PRAGMA SERIALLY_REUSABLE;
PROCEDURE function_1
 (test_id number);
PROCEDURE function_2
 (test_id number
 );
END;

CREATE OR REPLACE PACKAGE BODY test_pkg_var
IS
PRAGMA SERIALLY_REUSABLE;
v_char VARCHAR2(20) := 'shared.airline';
v_num number := 123;

PROCEDURE function_1(test_id number)
IS
begin
dbms_output.put_line( 'v_char-'|| v_char);
dbms_output.put_line( 'v_num-'||v_num);
v_char:='test1';
function_2(0);
END;

PROCEDURE function_2(test_id number)
is
begin
dbms_output.put_line( 'v_char-'|| v_char);
dbms_output.put_line( 'v_num-'||v_num);
END;
END test_pkg_var;

Calling the above functions

set serveroutput on


EXEC test_pkg_var.function_1(1);


EXEC test_pkg_var.function_2(1);


Target Postgresql Code:


CREATE SCHEMA test_pkg_var;

CREATE OR REPLACE FUNCTION test_pkg_var.init(pg_serialize IN INTEGER DEFAULT 0)

RETURNS void
AS
$BODY$

DECLARE

BEGIN

if aws_oracle_ext.is_package_initialized( 'test_pkg_var' ) AND pg_serialize = 0

then

return;

end if;

PERFORM aws_oracle_ext.set_package_initialized( 'test_pkg_var' );

PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'shared.airline.basecurrency'::CHARACTER

VARYING(100));

PERFORM aws_oracle_ext.set_package_variable('test_pkg_var', 'v_num', 123::integer);

END;

$BODY$

LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION test_pkg_var.function_1(pg_serialize int default 1)

RETURNS void
AS

$BODY$
DECLARE

BEGIN

PERFORM test_pkg_var.init(pg_serialize);

raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char');

raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num');

PERFORM aws_oracle_ext.set_package_variable( 'test_pkg_var', 'v_char', 'test1'::varchar);

PERFORM test_pkg_var.function_2(0);
END;

$BODY$
LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION test_pkg_var.function_2(IN pg_serialize integer default 1)

RETURNS void

AS

$BODY$

DECLARE

BEGIN

PERFORM test_pkg_var.init(pg_serialize);

raise notice 'v_char%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_char');

raise notice 'v_num%',aws_oracle_ext.get_package_variable( 'test_pkg_var', 'v_num');

END;
$BODY$
LANGUAGE plpgsql;


Calling the above functions

select test_pkg_var.function_1()

 select test_pkg_var.function_2()
```

# Migrieren Sie externe Oracle-Tabellen zu Amazon Aurora PostgreSQL-kompatibel
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible"></a>

*Anuradha Chintha und Rakesh Raghav, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-summary"></a>

Externe Tabellen geben Oracle die Möglichkeit, Daten abzufragen, die außerhalb der Datenbank in Flatfiles gespeichert sind. Sie können den ORACLE\$1LOADER-Treiber verwenden, um auf alle Daten zuzugreifen, die in einem beliebigen Format gespeichert sind und vom SQL\$1Loader-Hilfsprogramm geladen werden können. Sie können Data Manipulation Language (DML) nicht für externe Tabellen verwenden, aber Sie können externe Tabellen für Abfrage-, Join- und Sortieroperationen verwenden.

Amazon Aurora PostgreSQL-Compatible Edition bietet keine ähnliche Funktionalität wie externe Tabellen in Oracle. Stattdessen müssen Sie die Modernisierung nutzen, um eine skalierbare Lösung zu entwickeln, die funktionale Anforderungen erfüllt und sparsam ist.

Dieses Muster enthält Schritte für die Migration verschiedener Typen von externen Oracle-Tabellen zur Aurora PostgreSQL-kompatiblen Edition in der Amazon Web Services (AWS) Cloud mithilfe der Erweiterung. `aws_s3`

Wir empfehlen, diese Lösung gründlich zu testen, bevor Sie sie in einer Produktionsumgebung implementieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ AWS-Befehlszeilenschnittstelle (AWS Command Line Interface, AWS CLI)
+ Eine verfügbare Aurora PostgreSQL-kompatible Datenbankinstanz.
+ Eine lokale Oracle-Datenbank mit einer externen Tabelle
+ PG.Client-API
+ Datendateien 

**Einschränkungen**
+ Dieses Muster bietet nicht die Funktionalität, um externe Oracle-Tabellen zu ersetzen. Die Schritte und der Beispielcode können jedoch weiter verbessert werden, um Ihre Ziele bei der Datenbankmodernisierung zu erreichen.
+ Dateien sollten nicht das Zeichen enthalten, das in `aws_s3` Export- und Importfunktionen als Trennzeichen übergeben wird.

**Produktversionen**
+ Um aus Amazon S3 in RDS for PostgreSQL zu importieren, muss auf der Datenbank PostgreSQL Version 10.7 oder höher ausgeführt werden.

## Architektur
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-architecture"></a>

**Quelltechnologie-Stack**
+ Oracle

**Quellarchitektur**

![\[Diagramm der Datendateien, die in ein Verzeichnis und eine Tabelle in der lokalen Oracle-Datenbank verschoben werden.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/3fbc507d-b0fa-4e05-b999-043dc7327ed7.png)


**Zieltechnologie-Stack**
+ Amazon Aurora PostgreSQL-kompatibel
+ Amazon CloudWatch
+ AWS Lambda
+ AWS Secrets Manager
+ Amazon-Simple-Notification-Service (Amazon-SNS)
+ Amazon Simple Storage Service (Amazon-S3)

**Zielarchitektur**

Das folgende Diagramm zeigt eine allgemeine Darstellung der Lösung.

![\[Die Beschreibung befindet sich hinter dem Diagramm.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/555e69af-36fc-4ff5-b66c-af22b4cf262a/images/5421540e-d2e3-4361-89cc-d8415fcb21fd.png)


1. Dateien werden in den S3-Bucket hochgeladen.

1. Die Lambda-Funktion wird initiiert.

1. Die Lambda-Funktion initiiert den DB-Funktionsaufruf.

1. Secrets Manager stellt die Anmeldeinformationen für den Datenbankzugriff bereit.

1. Abhängig von der DB-Funktion wird ein SNS-Alarm ausgelöst.

**Automatisierung und Skalierung**

Alle Ergänzungen oder Änderungen an den externen Tabellen können mit der Metadatenpflege behandelt werden.

## Tools
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-tools"></a>
+ [Amazon Aurora PostgreSQL-kompatibel — Amazon Aurora PostgreSQL-Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) Edition ist eine vollständig verwaltete, PostgreSQL-kompatible und ACID-konforme relationale Datenbank-Engine, die die Geschwindigkeit und Zuverlässigkeit kommerzieller High-End-Datenbanken mit der Kosteneffizienz von Open-Source-Datenbanken kombiniert.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) — AWS Command Line Interface (AWS CLI) ist ein einheitliches Tool zur Verwaltung Ihrer AWS-Services. Mit nur einem Tool zum Herunterladen und Konfigurieren können Sie mehrere AWS-Services von der Befehlszeile aus steuern und über Skripts automatisieren.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) — Amazon CloudWatch überwacht die Ressourcen und die Nutzung von Amazon S3.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda ist ein serverloser Rechenservice, der die Ausführung von Code ohne Bereitstellung oder Verwaltung von Servern, die Erstellung einer auslastungsorientierten Cluster-Skalierungslogik, die Verwaltung von Eventintegrationen oder die Verwaltung von Laufzeiten unterstützt. In diesem Muster führt Lambda die Datenbankfunktion immer dann aus, wenn eine Datei auf Amazon S3 hochgeladen wird.
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) — AWS Secrets Manager ist ein Service zum Speichern und Abrufen von Anmeldeinformationen. Mit Secrets Manager können Sie hartcodierte Anmeldeinformationen in Ihrem Code, einschließlich Kennwörtern, durch einen API-Aufruf an Secrets Manager ersetzen, um das Geheimnis programmgesteuert abzurufen.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) bietet eine Speicherebene zum Empfangen und Speichern von Dateien zur Nutzung und Übertragung zum und vom Aurora PostgreSQL-kompatiblen Cluster.
+ [aws\$1s3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3) — Die `aws_s3` Erweiterung integriert Amazon S3 und Aurora PostgreSQL-kompatibel.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) koordiniert und verwaltet die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden. In diesem Muster wird Amazon SNS zum Senden von Benachrichtigungen verwendet.

**Code**

Immer wenn eine Datei im S3-Bucket platziert wird, muss eine DB-Funktion erstellt und von der verarbeitenden Anwendung oder der Lambda-Funktion aus aufgerufen werden. Einzelheiten finden Sie im Code (beigefügt).

## Epen
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-epics"></a>

### Erstellen Sie eine externe Datei
<a name="create-an-external-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie der Quelldatenbank eine externe Datei hinzu. | Erstellen Sie eine externe Datei und verschieben Sie sie in das `oracle` Verzeichnis. | DBA | 

### Das Ziel konfigurieren (Aurora PostgreSQL-kompatibel)
<a name="configure-the-target-aurora-postgresql-compatible"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Aurora PostgreSQL-Datenbank. | Erstellen Sie eine DB-Instance in Ihrem Amazon Aurora PostgreSQL-kompatiblen Cluster. | DBA | 
| Erstellen Sie ein Schema, die Erweiterung aws\$1s3 und Tabellen. | Verwenden Sie den Code unter `ext_tbl_scripts` dem Abschnitt *Zusätzliche Informationen*. Die Tabellen enthalten tatsächliche Tabellen, Staging-Tabellen, Fehler- und Protokolltabellen sowie eine Metatabelle. | DBA, Entwickler | 
| Erstellen Sie die DB-Funktion. | Um die DB-Funktion zu erstellen, verwenden Sie den Code unter `load_external_table_latest` Funktion im Abschnitt *Zusätzliche Informationen*. | DBA, Entwickler | 

### Die Lambda-Funktion erstellen und konfigurieren
<a name="create-and-configure-the-lambda-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Rolle. | Erstellen Sie eine Rolle mit Zugriffsberechtigungen für Amazon S3 und Amazon Relational Database Service (Amazon RDS). Diese Rolle wird Lambda für die Ausführung des Musters zugewiesen. | DBA | 
| So erstellen Sie die Lambda-Funktion: | Erstellen Sie eine Lambda-Funktion, die den Dateinamen aus Amazon S3 liest (z. B.`file_key = info.get('object', {}).get('key')`) und die DB-Funktion (z. B.`curs.callproc("load_external_tables", [file_key])`) mit dem Dateinamen als Eingabeparameter aufruft.Abhängig vom Ergebnis des Funktionsaufrufs wird eine SNS-Benachrichtigung ausgelöst (z. B.`client.publish(TopicArn='arn:',Message='fileloadsuccess',Subject='fileloadsuccess')`).Basierend auf Ihren Geschäftsanforderungen können Sie bei Bedarf eine Lambda-Funktion mit zusätzlichem Code erstellen. Weitere Informationen finden Sie in der [Lambda-Dokumentation](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html). | DBA | 
| Konfigurieren Sie einen S3-Bucket-Ereignisauslöser. | Konfigurieren Sie einen Mechanismus zum Aufrufen der Lambda-Funktion für alle Objekterstellungsereignisse im S3-Bucket. | DBA | 
| Erstelle ein Geheimnis. | Erstellen Sie mit Secrets Manager einen geheimen Namen für die Datenbankanmeldedaten. Übergeben Sie das Geheimnis in der Lambda-Funktion. | DBA | 
| Laden Sie die Lambda-Unterstützungsdateien hoch. | Laden Sie eine ZIP-Datei hoch, die die Lambda-Support-Pakete und das angehängte Python-Skript für die Verbindung mit Aurora PostgreSQL-kompatibel enthält. Der Python-Code ruft die Funktion auf, die Sie in der Datenbank erstellt haben. | DBA | 
| Erstellen Sie ein SNS-Thema. | Erstellen Sie ein SNS-Thema, um E-Mails über den Erfolg oder Misserfolg des Datenladens zu senden. | DBA | 

### Integration mit Amazon S3 hinzufügen
<a name="add-integration-with-amazon-s3"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | Erstellen Sie auf der Amazon S3 S3-Konsole einen S3-Bucket mit einem eindeutigen Namen, der keine führenden Schrägstriche enthält. Ein S3-Bucket-Name ist weltweit eindeutig, und der Namespace wird von allen AWS-Konten gemeinsam genutzt. | DBA | 
| Erstellen Sie IAM-Richtlinien. | Verwenden Sie den Code unter `s3bucketpolicy_for_import` dem Abschnitt *Zusätzliche Informationen*, um die AWS Identity and Access Management (IAM) -Richtlinien zu erstellen. | DBA | 
| Rollen erstellen. | Erstellen Sie zwei Rollen für Aurora PostgreSQL-kompatibel, eine Rolle für Import und eine Rolle für Export. Weisen Sie den Rollen die entsprechenden Richtlinien zu. | DBA | 
| Hängen Sie die Rollen an den Aurora PostgreSQL-kompatiblen Cluster an. | Fügen **Sie unter Rollen verwalten** die Import- und Exportrollen dem Aurora PostgreSQL-Cluster hinzu. | DBA | 
| Erstellen Sie unterstützende Objekte für Aurora PostgreSQL-kompatibel. | *Verwenden Sie für die Tabellenskripten den Code unter dem Abschnitt `ext_tbl_scripts` Zusätzliche Informationen.*Verwenden Sie für die benutzerdefinierte Funktion den Code `load_external_Table_latest` unter dem Abschnitt *Zusätzliche Informationen*. | DBA | 

### Verarbeiten Sie eine Testdatei
<a name="process-a-test-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie eine Datei in den S3-Bucket hoch. | Verwenden Sie die Konsole oder den folgenden Befehl in der AWS-CLI, um eine Testdatei in den S3-Bucket hochzuladen. <pre>aws s3 cp /Users/Desktop/ukpost/exttbl/"testing files"/aps s3://s3importtest/inputext/aps</pre>Sobald die Datei hochgeladen wurde, initiiert ein Bucket-Ereignis die Lambda-Funktion, die die Aurora PostgreSQL-kompatible Funktion ausführt. | DBA | 
| Überprüfen Sie die Daten sowie die Protokoll- und Fehlerdateien. | Die Aurora PostgreSQL-kompatible Funktion lädt die Dateien in die Haupttabelle `.log` und erstellt `.bad` Dateien im S3-Bucket. | DBA | 
| Überwachen Sie die Lösung. | Überwachen Sie in der CloudWatch Amazon-Konsole die Lambda-Funktion. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-resources"></a>
+ [Amazon S3 S3-Integration](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Arbeiten mit Amazon Aurora PostgreSQL-Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
+ [AWS Lambda](https://aws.amazon.com/lambda/)
+ [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)
+ [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/)
+ [Amazon SNS SNS-Benachrichtigungen einrichten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)

## Zusätzliche Informationen
<a name="migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible-additional"></a>

**ext\$1table\$1scripts**

```
CREATE EXTENSION aws_s3 CASCADE;
CREATE TABLE IF NOT EXISTS meta_EXTERNAL_TABLE
(
    table_name_stg character varying(100) ,
    table_name character varying(100)  ,
    col_list character varying(1000)  ,
    data_type character varying(100)  ,
    col_order numeric,
    start_pos numeric,
    end_pos numeric,
    no_position character varying(100)  ,
    date_mask character varying(100)  ,
    delimeter character(1)  ,
    directory character varying(100)  ,
    file_name character varying(100)  ,
    header_exist character varying(5)
);
CREATE TABLE IF NOT EXISTS ext_tbl_stg
(
    col1 text
);
CREATE TABLE IF NOT EXISTS error_table
(
    error_details text,
    file_name character varying(100),
    processed_time timestamp without time zone
);
CREATE TABLE IF NOT EXISTS log_table
(
    file_name character varying(50) COLLATE pg_catalog."default",
    processed_date timestamp without time zone,
    tot_rec_count numeric,
    proc_rec_count numeric,
    error_rec_count numeric
);
sample insert scripts of meta data:
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'source_filename', 'character varying', 2, 8, 27, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'record_type_identifier', 'character varying', 3, 28, 30, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'fad_code', 'numeric', 4, 31, 36, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'session_sequence_number', 'numeric', 5, 37, 42, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
INSERT INTO meta_EXTERNAL_TABLE (table_name_stg, table_name, col_list, data_type, col_order, start_pos, end_pos, no_position, date_mask, delimeter, directory, file_name, header_exist) VALUES ('F_EX_APS_TRANSACTIONS_STG', 'F_EX_APS_TRANSACTIONS', 'transaction_sequence_number', 'numeric', 6, 43, 48, NULL, NULL, NULL, 'databasedev', 'externalinterface/loaddir/APS', 'NO');
```

**s3bucketpolicy\$1für den Import**

```
---Import role policy
--Create an IAM policy to allow, Get,  and list actions on S3 bucket
 {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3import",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::s3importtest",
                "arn:aws:s3:::s3importtest/*"
            ]
        }
    ]
}
--Export Role policy
--Create an IAM policy to allow, put,  and list actions on S3 bucket
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "s3export",
            "Action": [
                "S3:PutObject",
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::s3importtest/*"
            ]
        }
    ]
}
```

**Beispiel für eine DB-Funktion load\$1external\$1tables\$1latest**

```
CREATE OR REPLACE FUNCTION public.load_external_tables(pi_filename text)
 RETURNS character varying
 LANGUAGE plpgsql
AS $function$
/* Loading data from S3 bucket into a APG table */
DECLARE
 v_final_sql TEXT;
 pi_ext_table TEXT;
 r refCURSOR;
 v_sqlerrm text;
 v_chunk numeric;
 i integer;
 v_col_list TEXT;
 v_postion_list CHARACTER VARYING(1000);
 v_len  integer;
 v_delim varchar;
 v_file_name CHARACTER VARYING(1000);
 v_directory CHARACTER VARYING(1000);
 v_table_name_stg CHARACTER VARYING(1000);
 v_sql_col TEXT;
 v_sql TEXT;
 v_sql1 TEXT;
 v_sql2 TEXT;
 v_sql3 TEXT;
 v_cnt integer;
 v_sql_dynamic TEXT;
 v_sql_ins TEXT;
 proc_rec_COUNT integer;
 error_rec_COUNT integer;
 tot_rec_COUNT integer;
 v_rec_val integer;
 rec record;
 v_col_cnt integer;
 kv record;
 v_val text;
 v_header text;
 j integer;
 ERCODE VARCHAR(5);
 v_region text;
 cr CURSOR FOR
 SELECT distinct DELIMETER,
   FILE_NAME,
   DIRECTORY
 FROM  meta_EXTERNAL_TABLE
 WHERE table_name = pi_ext_table
   AND DELIMETER IS NOT NULL;


 cr1 CURSOR FOR
   SELECT   col_list,
   data_type,
   start_pos,
   END_pos,
   concat_ws('',' ',TABLE_NAME_STG) as TABLE_NAME_STG,
   no_position,date_mask
 FROM  meta_EXTERNAL_TABLE
 WHERE table_name = pi_ext_table
 order by col_order asc;
cr2 cursor FOR
SELECT  distinct table_name,table_name_stg
   FROM  meta_EXTERNAL_TABLE
   WHERE upper(file_name) = upper(pi_filename);


BEGIN
 -- PERFORM utl_file_utility.init();
   v_region := 'us-east-1';
   /* find tab details from file name */


   --DELETE FROM  ERROR_TABLE WHERE file_name= pi_filename;
  -- DELETE FROM  log_table WHERE file_name= pi_filename;


 BEGIN


   SELECT distinct table_name,table_name_stg INTO strict pi_ext_table,v_table_name_stg
   FROM  meta_EXTERNAL_TABLE
   WHERE upper(file_name) = upper(pi_filename);
 EXCEPTION
   WHEN NO_DATA_FOUND THEN
    raise notice 'error 1,%',sqlerrm;
    pi_ext_table := null;
    v_table_name_stg := null;
      RAISE USING errcode = 'NTFIP' ;
    when others then
        raise notice 'error others,%',sqlerrm;
 END;
 j :=1 ;
  
for rec in  cr2
 LOOP




  pi_ext_table     := rec.table_name;
  v_table_name_stg := rec.table_name_stg;
  v_col_list := null;


 IF pi_ext_table IS NOT NULL
  THEN
    --EXECUTE concat_ws('','truncate table  ' ,pi_ext_table) ;
   EXECUTE concat_ws('','truncate table  ' ,v_table_name_stg) ;




       SELECT distinct DELIMETER INTO STRICT v_delim
       FROM  meta_EXTERNAL_TABLE
       WHERE table_name = pi_ext_table;


       IF v_delim IS NOT NULL THEN
     SELECT distinct DELIMETER,
       FILE_NAME,
       DIRECTORY ,
       concat_ws('',' ',table_name_stg),
       case  header_exist when 'YES' then 'CSV HEADER' else 'CSV' end as header_exist
     INTO STRICT v_delim,v_file_name,v_directory,v_table_name_stg,v_header
     FROM  meta_EXTERNAL_TABLE
     WHERE table_name = pi_ext_table
       AND DELIMETER IS NOT NULL;


     IF    upper(v_delim) = 'CSV'
     THEN
       v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3 ( ''',
       v_table_name_stg,''','''',
       ''DELIMITER '''','''' CSV HEADER QUOTE ''''"'''''', aws_commons.create_s3_uri ( ''',
       v_directory,''',''',v_file_name,''', ''',v_region,'''))');
       ELSE
       v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3(''',
           v_table_name_stg, ''','''', ''DELIMITER AS ''''^''''',''',','
          aws_commons.create_s3_uri
           ( ''',v_directory, ''',''',
           v_file_name, ''',',
            '''',v_region,''')
          )');
          raise notice 'v_sql , %',v_sql;
       begin
        EXECUTE  v_sql;
       EXCEPTION
         WHEN OTHERS THEN
           raise notice 'error 1';
         RAISE USING errcode = 'S3IMP' ;
       END;


       select count(col_list) INTO v_col_cnt
       from  meta_EXTERNAL_TABLE where table_name = pi_ext_table;






        -- raise notice 'v_sql 2, %',concat_ws('','update ',v_table_name_stg, ' set col1 = col1||''',v_delim,'''');


       execute concat_ws('','update ',v_table_name_stg, ' set col1 = col1||''',v_delim,'''');




       i :=1;
       FOR rec in cr1
       loop
       v_sql1 := concat_ws('',v_sql1,'split_part(col1,''',v_delim,''',', i,')',' as ',rec.col_list,',');
       v_sql2 := concat_ws('',v_sql2,rec.col_list,',');
   --    v_sql3 := concat_ws('',v_sql3,'rec.',rec.col_list,'::',rec.data_type,',');


       case
         WHEN upper(rec.data_type) = 'NUMERIC'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 coalesce((trim(split_part(col1,''',v_delim,''',', i,')))::NUMERIC,0)::',rec.data_type,' END as ',rec.col_list,',') ;
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDD'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),''99990101''),''YYYYMMDD'')::',rec.data_type,' END as ',rec.col_list,',');
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask =  'MM/DD/YYYY hh24:mi:ss'
         THEN v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),''01/01/9999 0024:00:00''),''MM/DD/YYYY hh24:mi:ss'')::',rec.data_type,' END as ',rec.col_list,',');
          ELSE
        v_sql3 := concat_ws('',v_sql3,' case WHEN length(trim(split_part(col1,''',v_delim,''',', i,'))) =0
                THEN null
                 ELSE
                  coalesce((trim(split_part(col1,''',v_delim,''',', i,'))),'''')::',rec.data_type,' END as ',rec.col_list,',') ;
       END case;


       i :=i+1;
       end loop;


         -- raise notice 'v_sql 3, %',v_sql3;


       SELECT trim(trailing ' ' FROM v_sql1) INTO v_sql1;
       SELECT trim(trailing ',' FROM v_sql1) INTO v_sql1;


       SELECT trim(trailing ' ' FROM v_sql2) INTO v_sql2;
       SELECT trim(trailing ',' FROM v_sql2) INTO v_sql2;


       SELECT trim(trailing ' ' FROM v_sql3) INTO v_sql3;
       SELECT trim(trailing ',' FROM v_sql3) INTO v_sql3;


       END IF;
      raise notice 'v_delim , %',v_delim;


     EXECUTE concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg)  INTO v_cnt;


    raise notice 'stg cnt , %',v_cnt;


    /* if upper(v_delim) = 'CSV' then
       v_sql_ins := concat_ws('', ' SELECT * from ' ,v_table_name_stg );
     else
      -- v_sql_ins := concat_ws('',' SELECT ',v_sql1,'  from (select col1 from ' ,v_table_name_stg , ')sub ');
       v_sql_ins := concat_ws('',' SELECT ',v_sql3,'  from (select col1 from ' ,v_table_name_stg , ')sub ');
       END IF;*/


v_chunk := v_cnt/100;




for i in 1..101
loop
     BEGIN
    -- raise notice 'v_sql , %',v_sql;
       -- raise notice 'Chunk number , %',i;
       v_sql_ins := concat_ws('',' SELECT ',v_sql3,'  from (select col1 from ' ,v_table_name_stg , ' offset ',v_chunk*(i-1), ' limit ',v_chunk,') sub ');


     v_sql := concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins);
     -- raise notice 'select statement , %',v_sql_ins;
          -- v_sql := null;
     -- EXECUTE concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins, 'offset ',v_chunk*(i-1), ' limit ',v_chunk );
     --v_sql := concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins );


     -- raise notice 'insert statement , %',v_sql;


    raise NOTICE 'CHUNK START %',v_chunk*(i-1);
   raise NOTICE 'CHUNK END %',v_chunk;


     EXECUTE v_sql;


  EXCEPTION
       WHEN OTHERS THEN
       -- v_sql_ins := concat_ws('',' SELECT ',v_sql1, '  from (select col1 from ' ,v_table_name_stg , ' )sub ');
         -- raise notice 'Chunk number for cursor , %',i;


    raise NOTICE 'Cursor - CHUNK START %',v_chunk*(i-1);
   raise NOTICE 'Cursor -  CHUNK END %',v_chunk;
         v_sql_ins := concat_ws('',' SELECT ',v_sql3, '  from (select col1 from ' ,v_table_name_stg , ' )sub ');


         v_final_sql := REPLACE (v_sql_ins, ''''::text, ''''''::text);
        -- raise notice 'v_final_sql %',v_final_sql;
         v_sql :=concat_ws('','do $a$ declare  r refcursor;v_sql text; i numeric;v_conname text;  v_typ  ',pi_ext_table,'[]; v_rec  ','record',';
           begin






           open r for execute ''select col1 from ',v_table_name_stg ,'  offset ',v_chunk*(i-1), ' limit ',v_chunk,''';
           loop
           begin
           fetch r into v_rec;
           EXIT WHEN NOT FOUND;




           v_sql := concat_ws('''',''insert into  ',pi_ext_table,' SELECT ',REPLACE (v_sql3, ''''::text, ''''''::text) , '  from ( select '''''',v_rec.col1,'''''' as col1) v'');
            execute v_sql;


           exception
            when others then
          v_sql := ''INSERT INTO  ERROR_TABLE VALUES (concat_ws('''''''',''''Error Name: '''',$$''||SQLERRM||''$$,''''Error State: '''',''''''||SQLSTATE||'''''',''''record : '''',$$''||v_rec.col1||''$$),'''''||pi_filename||''''',now())'';


               execute v_sql;
             continue;
           end ;
           end loop;
           close r;
           exception
           when others then
         raise;
           end ; $a$');
      -- raise notice ' inside excp v_sql %',v_sql;
          execute v_sql;
      --  raise notice 'v_sql %',v_sql;
       END;
  END LOOP;
     ELSE


     SELECT distinct DELIMETER,FILE_NAME,DIRECTORY ,concat_ws('',' ',table_name_stg),
       case  header_exist when 'YES' then 'CSV HEADER' else 'CSV' end as header_exist
       INTO STRICT v_delim,v_file_name,v_directory,v_table_name_stg,v_header
     FROM  meta_EXTERNAL_TABLE
     WHERE table_name = pi_ext_table                  ;
     v_sql := concat_ws('','SELECT aws_s3.table_import_FROM_s3(''',
       v_table_name_stg, ''','''', ''DELIMITER AS ''''#'''' ',v_header,' '',','
      aws_commons.create_s3_uri
       ( ''',v_directory, ''',''',
       v_file_name, ''',',
        '''',v_region,''')
      )');
         EXECUTE  v_sql;


     FOR rec in cr1
     LOOP


      IF rec.start_pos IS NULL AND rec.END_pos IS NULL AND rec.no_position = 'recnum'
      THEN
        v_rec_val := 1;
      ELSE


       case
         WHEN upper(rec.data_type) = 'NUMERIC'
         THEN v_sql1 := concat_ws('',' case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1)))::NUMERIC,0)::',rec.data_type,' END as ',rec.col_list,',') ;
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDD'
         THEN v_sql1 := concat_ws('','case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),''99990101''),''YYYYMMDD'')::',rec.data_type,' END as ',rec.col_list,',');
         WHEN UPPER(rec.data_type) = 'TIMESTAMP WITHOUT TIME ZONE' AND rec.date_mask = 'YYYYMMDDHH24MISS'
         THEN v_sql1 := concat_ws('','case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                 to_date(coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),''9999010100240000''),''YYYYMMDDHH24MISS'')::',rec.data_type,' END as ',rec.col_list,',');
          ELSE
        v_sql1 := concat_ws('',' case WHEN length(trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))) =0
                THEN null
                 ELSE
                  coalesce((trim(substring(COL1, ',rec.start_pos ,',', rec.END_pos,'-',rec.start_pos ,'+1))),'''')::',rec.data_type,' END as ',rec.col_list,',') ;
       END case;


      END IF;
      v_col_list := concat_ws('',v_col_list ,v_sql1);
     END LOOP;




           SELECT trim(trailing ' ' FROM v_col_list) INTO v_col_list;
           SELECT trim(trailing ',' FROM v_col_list) INTO v_col_list;


           v_sql_col   :=  concat_ws('',trim(trailing ',' FROM v_col_list) , ' FROM  ',v_table_name_stg,' WHERE col1 IS NOT NULL AND length(col1)>0 ');




           v_sql_dynamic := v_sql_col;


           EXECUTE  concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg) INTO v_cnt;




         IF v_rec_val = 1 THEN
             v_sql_ins := concat_ws('',' select row_number() over(order by ctid) as line_number ,' ,v_sql_dynamic) ;


         ELSE
               v_sql_ins := concat_ws('',' SELECT' ,v_sql_dynamic) ;
           END IF;


     BEGIN
       EXECUTE concat_ws('','insert into  ', pi_ext_table ,' ', v_sql_ins);
           EXCEPTION
              WHEN OTHERS THEN
          IF v_rec_val = 1 THEN
                  v_final_sql := ' select row_number() over(order by ctid) as line_number ,col1 from ';
                ELSE
                 v_final_sql := ' SELECT col1 from';
               END IF;
       v_sql :=concat_ws('','do $a$ declare  r refcursor;v_rec_val numeric := ',coalesce(v_rec_val,0),';line_number numeric; col1 text; v_typ  ',pi_ext_table,'[]; v_rec  ',pi_ext_table,';
             begin
             open r for execute ''',v_final_sql, ' ',v_table_name_stg,' WHERE col1 IS NOT NULL AND length(col1)>0 '' ;
             loop
             begin
             if   v_rec_val = 1 then
             fetch r into line_number,col1;
             else
             fetch r into col1;
             end if;


             EXIT WHEN NOT FOUND;
              if v_rec_val = 1 then
              select line_number,',trim(trailing ',' FROM v_col_list) ,' into v_rec;
              else
                select ',trim(trailing ',' FROM v_col_list) ,' into v_rec;
              end if;


             insert into  ',pi_ext_table,' select v_rec.*;
              exception
              when others then
               INSERT INTO  ERROR_TABLE VALUES (concat_ws('''',''Error Name: '',SQLERRM,''Error State: '',SQLSTATE,''record : '',v_rec),''',pi_filename,''',now());
               continue;
              end ;
               end loop;
             close r;
              exception
              when others then
              raise;
              end ; $a$');
         execute v_sql;


     END;


         END IF;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM  ' ,pi_ext_table)   INTO proc_rec_COUNT;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM  error_table WHERE file_name =''',pi_filename,''' and processed_time::date = clock_timestamp()::date')  INTO error_rec_COUNT;


   EXECUTE concat_ws('','SELECT COUNT(*) FROM ',v_table_name_stg)   INTO tot_rec_COUNT;


   INSERT INTO  log_table values(pi_filename,now(),tot_rec_COUNT,proc_rec_COUNT, error_rec_COUNT);


   raise notice 'v_directory, %',v_directory;


   raise notice 'pi_filename, %',pi_filename;


   raise notice 'v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT replace(trim(substring(error_details,position(''('' in error_details)+1),'')''),'','','';''),file_name,processed_time FROM  error_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.bad', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );


raise notice 'v_directory, %',v_directory;


   raise notice 'pi_filename, %',pi_filename;


   raise notice 'v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT * FROM  log_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.log', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );




   END IF;
 j := j+1;
 END LOOP;


       RETURN 'OK';
EXCEPTION
    WHEN  OTHERS THEN
  raise notice 'error %',sqlerrm;
   ERCODE=SQLSTATE;
   IF ERCODE = 'NTFIP' THEN
     v_sqlerrm := concat_Ws('',sqlerrm,'No data for the filename');
   ELSIF ERCODE = 'S3IMP' THEN
    v_sqlerrm := concat_Ws('',sqlerrm,'Error While exporting the file from S3');
   ELSE
      v_sqlerrm := sqlerrm;
   END IF;


 select distinct directory into v_directory from  meta_EXTERNAL_TABLE;




 raise notice 'exc v_directory, %',v_directory;


   raise notice 'exc pi_filename, %',pi_filename;


   raise notice 'exc v_region, %',v_region;


  perform aws_s3.query_export_to_s3('SELECT * FROM  error_table WHERE file_name = '''||pi_filename||'''',
   aws_commons.create_s3_uri(v_directory, pi_filename||'.bad', v_region),
   options :='FORmat csv, header, delimiter $$,$$'
   );
    RETURN null;
END;
$function$
```

# Migrieren Sie funktionsbasierte Indizes von Oracle nach PostgreSQL
<a name="migrate-function-based-indexes-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi und Navakanth Talluri, Amazon Web Services*

## Zusammenfassung
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-summary"></a>

Indizes sind eine gängige Methode zur Verbesserung der Datenbankleistung. Ein Index ermöglicht es dem Datenbankserver, bestimmte Zeilen viel schneller zu finden und abzurufen, als dies ohne einen Index möglich wäre. Indizes erhöhen jedoch auch den Mehraufwand für das Datenbanksystem als Ganzes, weshalb sie sinnvoll verwendet werden sollten. Funktionsbasierte Indizes, die auf einer Funktion oder einem Ausdruck basieren, können mehrere Spalten und mathematische Ausdrücke beinhalten. Ein funktionsbasierter Index verbessert die Leistung von Abfragen, die den Indexausdruck verwenden. 

PostgreSQL unterstützt nativ nicht die Erstellung funktionsbasierter Indizes mit Funktionen, deren Volatilität als stabil definiert ist. Sie können jedoch ähnliche Funktionen mit Volatilität erstellen `IMMUTABLE` und sie bei der Indexerstellung verwenden.

Eine `IMMUTABLE` Funktion kann die Datenbank nicht ändern, und es ist garantiert, dass sie bei denselben Argumenten für immer dieselben Ergebnisse zurückgibt. Diese Kategorie ermöglicht es dem Optimierer, die Funktion vorab auszuwerten, wenn eine Abfrage sie mit konstanten Argumenten aufruft. 

Dieses Muster hilft bei der Migration der funktionsbasierten Oracle-Indizes, wenn sie mit Funktionen wie `to_char``to_date`, und `to_number` zum PostgreSQL-Äquivalent verwendet werden.

## Voraussetzungen und Einschränkungen
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives Amazon Web Services (AWS) -Konto
+ Eine Oracle-Quelldatenbank-Instance, auf der der Listener-Service eingerichtet ist und läuft
+ Vertrautheit mit PostgreSQL-Datenbanken

**Einschränkungen**
+ Die maximale Datenbankgröße beträgt 64 TB.
+ Die bei der Indexerstellung verwendeten Funktionen müssen UNVERÄNDERLICH sein.

**Produktversionen**
+ Alle Oracle-Datenbankeditionen für die Versionen 11g (Versionen 11.2.0.3.v1 und höher) und bis zu 12.2 und 18c
+ PostgreSQL-Versionen 9.6 und höher

## Architektur
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-architecture"></a>

**Quelltechnologie-Stack**
+ Eine Oracle-Datenbank vor Ort oder auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance oder eine Amazon RDS for Oracle DB-Instance

**Zieltechnologie-Stack**
+ Beliebige PostgreSQL-Engine

## Tools
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-tools"></a>
+ **pgAdmin 4** ist ein Open-Source-Verwaltungstool für Postgres. Das Tool pgAdmin 4 bietet eine grafische Oberfläche zum Erstellen, Verwalten und Verwenden von Datenbankobjekten.
+ **Oracle SQL Developer** ist eine integrierte Entwicklungsumgebung (IDE) für die Entwicklung und Verwaltung von Oracle Database sowohl in herkömmlichen als auch in Cloud-Bereitstellungen.

## Epen
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-epics"></a>

### Erstellen Sie einen funktionsbasierten Index mit einer Standardfunktion
<a name="create-a-function-based-index-using-a-default-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie mit der Funktion to\$1char einen funktionsbasierten Index für eine Spalte. | Verwenden Sie den folgenden Code, um den funktionsbasierten Index zu erstellen.<pre>postgres=# create table funcindex( col1 timestamp without time zone);<br />CREATE TABLE<br />postgres=# insert into funcindex values (now());<br />INSERT 0 1<br />postgres=# select * from funcindex;<br />            col1<br />----------------------------<br /> 2022-08-09 16:00:57.77414<br />(1 rows)<br /> <br />postgres=# create index funcindex_idx on funcindex(to_char(col1,'DD-MM-YYYY HH24:MI:SS'));<br />ERROR:  functions in index expression must be marked IMMUTABLE</pre> PostgreSQL erlaubt es nicht, einen funktionsbasierten Index ohne die Klausel zu erstellen. `IMMUTABLE` | DBA, App-Entwickler | 
| Überprüfen Sie die Volatilität der Funktion. | Verwenden Sie den Code im Abschnitt *Zusätzliche Informationen*, um die Volatilität der Funktion zu überprüfen.   | DBA | 

### Erstellen Sie funktionsbasierte Indizes mithilfe einer Wrapper-Funktion
<a name="create-function-based-indexes-using-a-wrapper-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Wrapper-Funktion. | Verwenden Sie den Code im Abschnitt *Zusätzliche Informationen*, um eine Wrapper-Funktion zu erstellen. | PostgreSQL-Entwickler | 
| Erstellen Sie einen Index mithilfe der Wrapper-Funktion. | Verwenden Sie den Code im Abschnitt *Zusätzliche Informationen*, um eine benutzerdefinierte Funktion mit dem Schlüsselwort `IMMUTABLE` im selben Schema wie die Anwendung zu erstellen, und verweisen Sie im Skript zur Indexerstellung darauf.Wenn eine benutzerdefinierte Funktion in einem gemeinsamen Schema (aus dem vorherigen Beispiel) erstellt wird, aktualisieren Sie diese wie gezeigt. `search_path`<pre>ALTER ROLE <ROLENAME> set search_path=$user, COMMON;</pre> | DBA, PostgreSQL-Entwickler | 

### Überprüfen Sie die Indexerstellung
<a name="validate-index-creation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Indexerstellung. | Stellen Sie sicher, dass der Index auf der Grundlage von Abfragezugriffsmustern erstellt werden muss. | DBA | 
| Stellen Sie sicher, dass der Index verwendet werden kann. | Um zu überprüfen, ob der funktionsbasierte Index vom PostgreSQL Optimizer übernommen wird, führen Sie eine SQL-Anweisung mit explain oder explain analyze aus. *Verwenden Sie den Code im Abschnitt Zusätzliche Informationen.* Sammeln Sie nach Möglichkeit auch die Tabellenstatistiken.Wenn Sie den Explain-Plan bemerken, hat der PostgreSQL-Optimierer aufgrund der Prädikatbedingung einen funktionsbasierten Index ausgewählt. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-resources"></a>
+ [Funktionsbasierte Indizes (Oracle-Dokumentation](https://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_indexes.htm#ADFNS00505))
+ [Indizes für Ausdrücke](https://www.postgresql.org/docs/9.4/indexes-expressional.html) (PostgreSQL-Dokumentation)
+ [PostgreSQL-Volatilität](https://www.postgresql.org/docs/current/xfunc-volatility.html) (PostgreSQL-Dokumentation)
+ [PostgreSQL search\$1path](https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH) (PostgreSQL-Dokumentation)
+ [Leitfaden für die Migration von Oracle Database 19c zu Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/dms/latest/oracle-to-aurora-postgresql-migration-playbook/chap-oracle-aurora-pg.html) 

## Zusätzliche Informationen
<a name="migrate-function-based-indexes-from-oracle-to-postgresql-additional"></a>

**Erstellen Sie eine Wrapper-Funktion**

```
CREATE OR REPLACE FUNCTION myschema.to_char(var1 timestamp without time zone, var2 varchar) RETURNS varchar AS $BODY$ select to_char(var1, 'YYYYMMDD'); $BODY$ LANGUAGE sql IMMUTABLE;
```

**Erstellen Sie einen Index mithilfe der Wrapper-Funktion**

```
postgres=# create function common.to_char(var1 timestamp without time zone, var2 varchar) RETURNS varchar AS $BODY$ select to_char(var1, 'YYYYMMDD'); $BODY$ LANGUAGE sql IMMUTABLE;
CREATE FUNCTION
postgres=# create index funcindex_idx on funcindex(common.to_char(col1,'DD-MM-YYYY HH24:MI:SS'));
CREATE INDEX
```

**Überprüfen Sie die Volatilität der Funktion**

```
SELECT DISTINCT p.proname as "Name",p.provolatile as "volatility" FROM pg_catalog.pg_proc p
 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace
 LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang
 WHERE n.nspname OPERATOR(pg_catalog.~) '^(pg_catalog)$' COLLATE pg_catalog.default AND p.proname='to_char'GROUP BY p.proname,p.provolatile
ORDER BY 1;
```

**Stellen Sie sicher, dass der Index verwendet werden kann**

```
explain analyze <SQL>
 
 
postgres=# explain select col1 from funcindex where common.to_char(col1,'DD-MM-YYYY HH24:MI:SS') = '09-08-2022 16:00:57';
                                                       QUERY PLAN
------------------------------------------------------------------------------------------------------------------------
 Index Scan using funcindex_idx on funcindex  (cost=0.42..8.44 rows=1 width=8)
   Index Cond: ((common.to_char(col1, 'DD-MM-YYYY HH24:MI:SS'::character varying))::text = '09-08-2022 16:00:57'::text)
(2 rows)
```

# Migrieren Sie native Oracle-Funktionen mithilfe von Erweiterungen zu PostgreSQL
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions"></a>

*Pinesh Signal, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-summary"></a>

Dieses Migrationsmuster bietet step-by-step Anleitungen für die Migration einer Amazon Relational Database Service (Amazon RDS) for Oracle-Datenbank-Instance zu einer Amazon RDS for PostgreSQL- oder Amazon Aurora PostgreSQL-Compatible Edition-Datenbank durch Änderung des systemeigenen integrierten Codes `aws_oracle_ext` und der `orafce` Erweiterungen von PostgreSQL (). `psql` Dies spart Verarbeitungszeit.

Das Muster beschreibt eine manuelle Offline-Migrationsstrategie ohne Ausfallzeiten für eine Oracle-Quelldatenbank mit mehreren Terabyte und einer hohen Anzahl von Transaktionen.

Der Migrationsprozess verwendet das AWS Schema Conversion Tool (AWS SCT) mit den `orafce` Erweiterungen `aws_oracle_ext` und, um ein Amazon RDS for Oracle Oracle-Datenbankschema in ein Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatibles Datenbankschema zu konvertieren. Dann wird der Code manuell in den von PostgreSQL unterstützten systemeigenen `psql` integrierten Code geändert. Dies liegt daran, dass die Erweiterungsaufrufen die Codeverarbeitung auf dem PostgreSQL-Datenbankserver beeinflussen und nicht der gesamte Erweiterungscode vollständig kompatibel oder kompatibel mit PostgreSQL-Code ist.

Dieses Muster konzentriert sich hauptsächlich auf die manuelle Migration von SQL-Codes mithilfe von AWS SCT und den Erweiterungen `aws_oracle_ext` und. `orafce` Sie konvertieren die bereits verwendeten Erweiterungen in native PostgreSQL (`psql`) -Built-ins. Dann entfernen Sie alle Verweise auf die Erweiterungen und konvertieren die Codes entsprechend.

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto 
+ Betriebssystem (Windows oder Mac) oder EC2 Amazon-Instance (läuft) 
+ Orace

**Einschränkungen**

Nicht alle Oracle-Funktionen, die `aws_oracle_ext` unsere `orafce` Erweiterungen verwenden, können in native PostgreSQL-Funktionen konvertiert werden. Möglicherweise muss es manuell überarbeitet werden, um es mit PostgreSQL-Bibliotheken zu kompilieren.

Ein Nachteil der Verwendung von AWS SCT-Erweiterungen ist die langsame Leistung beim Ausführen und Abrufen der Ergebnisse. Die Kosten können anhand des einfachen [PostgreSQL EXPLAIN-Plans](https://www.postgresql.org/docs/current/sql-explain.html) (Ausführungsplan einer Anweisung) für die Migration der `SYSDATE` Oracle-Funktion zur `NOW()` PostgreSQL-Funktion zwischen allen drei Codes (`aws_oracle_ext`, und `psql` Standard) nachvollzogen werden`orafce`, wie im Abschnitt *Leistungsvergleichsprüfung im angehängten Dokument* erläutert.

**Produktversionen**
+ **Quelle:** Amazon RDS for Oracle Oracle-Datenbank 10.2 und höher (für 10.x), 11g (11.2.0.3.v1 und höher) und bis zu 12.2, 18c und 19c (und höher) für Enterprise Edition, Standard Edition, Standard Edition 1 und Standard Edition 2
+ **Ziel**: Amazon RDS for PostgreSQL oder Aurora PostgreSQL-kompatible Datenbank 9.4 und höher (für 9.x), 10.x, 11.x, 12.x, 13.x und 14.x (und höher)
+ **AWS SCT**: Aktuelle Version (dieses Muster wurde mit 1.0.632 getestet)
+ **Oracle**: Aktuelle Version (dieses Muster wurde mit 3.9.0 getestet)

## Architektur
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-architecture"></a>

**Quelltechnologie-Stack**
+ Eine Amazon RDS for Oracle Oracle-Datenbank-Instance mit Version 12.1.0.2.v18

**Zieltechnologie-Stack**
+ Eine Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatible Datenbank-Instance mit Version 11.5

**Architektur für die Datenbankmigration**

Das folgende Diagramm stellt die Datenbankmigrationsarchitektur zwischen den Oracle-Quelldatenbanken und den PostgreSQL-Zieldatenbanken dar. Die Architektur umfasst AWS Cloud, eine Virtual Private Cloud (VPC), Availability Zones, ein privates Subnetz, eine Amazon RDS for Oracle Oracle-Datenbank, AWS SCT, eine Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatible Datenbank, Erweiterungen für Oracle (`aws_oracle_ext`und`orafce`) und strukturierte Abfragesprache-Dateien (SQL).

![\[Der Prozess wird in der folgenden Liste erklärt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/158847bb-27ef-4915-a9ca-7d87073792c1/images/234b824a-bfe5-4ef0-9fa7-8401370b92a5.png)


1. Starten Sie die Amazon RDS for Oracle DB-Instance (Quell-DB).

1. Verwenden Sie AWS SCT mit den Erweiterungspaketen `aws_oracle_ext` und `orafce` Erweiterungspaketen, um den Quellcode von Oracle nach PostreSQL zu konvertieren.

1. Die Konvertierung erzeugt PostgreSQL-unterstützte migrierte .sql-Dateien.

1. Konvertieren Sie die nicht konvertierten Oracle-Erweiterungscodes manuell in PostgreSQL () `psql` -Codes.

1. Die manuelle Konvertierung erzeugt konvertierte .sql-Dateien, die PostgreSQL unterstützen.

1. Führen Sie diese .sql-Dateien auf Ihrer Amazon RDS for PostgreSQL PostgreSQL-DB-Instance (Ziel-DB) aus.

## Tools
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-tools"></a>

**Tools**

*AWS-Services*
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — Das AWS Schema Conversion Tool (AWS SCT) konvertiert Ihr vorhandenes Datenbankschema von einer Datenbank-Engine in eine andere. Sie können das relationale OLTP-Schema (Online Transactional Processing) oder das Data Warehouse-Schema konvertieren. Ihr konvertiertes Schema ist für eine Amazon RDS for MySQL MySQL-DB-Instance, einen Amazon Aurora Aurora-DB-Cluster, eine Amazon RDS for PostgreSQL PostgreSQL-DB-Instance oder einen Amazon Redshift Redshift-Cluster geeignet. Das konvertierte Schema kann auch mit einer Datenbank auf einer EC2 Amazon-Instance verwendet oder als Daten in einem Amazon S3-Bucket gespeichert werden.

  AWS SCT bietet eine projektbasierte Benutzeroberfläche, mit der Sie das Datenbankschema Ihrer Quelldatenbank automatisch in ein Format konvertieren können, das mit Ihrer Amazon RDS-Zielinstanz kompatibel ist. 

  Sie können AWS SCT verwenden, um eine Migration von einer Oracle-Quelldatenbank zu einem der oben aufgeführten Ziele durchzuführen. Mit AWS SCT können Sie die Objektdefinitionen der Quelldatenbank wie Schema, Ansichten, gespeicherte Prozeduren und Funktionen exportieren. 

  Sie können AWS SCT verwenden, um Daten von Oracle in Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL-Compatible Edition zu konvertieren. 

  In diesem Muster verwenden Sie AWS SCT, um Oracle-Code mithilfe der Erweiterungen und in PostgreSQL zu konvertieren und zu migrieren `aws_oracle_ext` und `orafce` die Erweiterungscodes manuell in `psql` Standard- oder systemeigenen integrierten Code zu migrieren.
+ Das [AWS SCT-Erweiterungspaket](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html) ist ein Zusatzmodul, das in der Quelldatenbank vorhandene Funktionen emuliert, die für die Konvertierung von Objekten in die Zieldatenbank erforderlich sind. Bevor Sie das AWS SCT-Erweiterungspaket installieren können, müssen Sie Ihr Datenbankschema konvertieren.

  Wenn Sie Ihr Datenbank- oder Data Warehouse-Schema konvertieren, fügt AWS SCT Ihrer Zieldatenbank ein zusätzliches Schema hinzu. Über dieses Schema werden SQL-Systemfunktionen der Quelldatenbank implementiert, die zum Schreiben des konvertierten Schemas in die Zieldatenbank benötigt werden. Dieses Zusätzliche Schema wird als Erweiterungspaketschema bezeichnet.

  Das Erweiterungspaket-Schema für OLTP-Datenbanken ist entsprechend der Quelldatenbank benannt. Für Oracle-Datenbanken lautet `AWS_ORACLE_EXT` das Erweiterungspaket-Schema.

*Andere Tools*
+ [Oracle — Oracle](https://github.com/orafce/orafce) ist ein Modul, das Oracle-kompatible Funktionen, Datentypen und Pakete implementiert. Es ist ein Open-Source-Tool mit einer Berkeley Source Distribution (BSD) -Lizenz, sodass jeder es verwenden kann. Das `orafce` Modul ist nützlich für die Migration von Oracle zu PostgreSQL, da viele Oracle-Funktionen in PostgreSQL implementiert sind.

 

**Code**

Eine Liste aller häufig verwendeten und migrierten Codes von Oracle nach PostgreSQL, um die Verwendung von AWS SCT-Erweiterungscodes zu vermeiden, finden Sie im angehängten Dokument.

## Epen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-epics"></a>

### Konfiguration der Amazon RDS for Oracle Oracle-Quelldatenbank
<a name="configure-the-amazon-rds-for-oracle-source-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Oracle-Datenbankinstanz. | Erstellen Sie eine Amazon RDS for Oracle- oder Aurora PostgreSQL-kompatible Datenbank-Instance von der Amazon RDS-Konsole aus. | Allgemein AWS, DBA | 
| Konfigurieren Sie die Sicherheitsgruppen. | Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr. | Allgemeines AWS | 
| Erstellen Sie die Datenbank. | Erstellen Sie die Oracle-Datenbank mit den benötigten Benutzern und Schemas. | Allgemein AWS, DBA | 
| Erstellen Sie die Objekte. | Objekte erstellen und Daten in das Schema einfügen. | DBA | 

### Konfiguration der Amazon RDS for PostgreSQL PostgreSQL-Zieldatenbank
<a name="configure-the-amazon-rds-for-postgresql-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die PostgreSQL-Datenbankinstanz. | Erstellen Sie eine Amazon RDS for PostgreSQL- oder Amazon Aurora PostgreSQL-Datenbank-Instance von der Amazon RDS-Konsole aus. | Allgemein AWS, DBA | 
| Konfigurieren Sie die Sicherheitsgruppen. | Konfigurieren Sie Sicherheitsgruppen für eingehenden und ausgehenden Datenverkehr. | Allgemeines AWS | 
| Erstellen Sie die Datenbank. | Erstellen Sie die PostgreSQL-Datenbank mit den benötigten Benutzern und Schemas. | Allgemein AWS, DBA | 
| Validieren Sie die Erweiterungen. | Stellen Sie sicher, dass `aws_oracle_ext` und korrekt in der PostgreSQL-Datenbank installiert und konfiguriert `orafce` sind. | DBA | 
| Stellen Sie sicher, dass die PostgreSQL-Datenbank verfügbar ist. | Stellen Sie sicher, dass die PostgreSQL-Datenbank betriebsbereit ist. | DBA | 

### Migrieren Sie das Oracle-Schema mithilfe von AWS SCT und den Erweiterungen nach PostgreSQL
<a name="migrate-the-oracle-schema-into-postgresql-using-aws-sct-and-the-extensions"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie AWS SCT. | Installieren Sie die neueste Version von AWS SCT. | DBA | 
| Konfigurieren Sie AWS SCT. | Konfigurieren Sie AWS SCT mit Java Database Connectivity (JDBC) -Treibern für Oracle () und `ojdbc8.jar` PostgreSQL (). `postgresql-42.2.5.jar` | DBA | 
| Aktivieren Sie das AWS SCT-Erweiterungspaket oder die Vorlage. | Aktivieren Sie unter AWS SCT **Project Settings** die Implementierung integrierter Funktionen mit den `orafce` Erweiterungen `aws_oracle_ext` und für das Oracle-Datenbankschema. | DBA | 
| Konvertiert das Schema. | Wählen Sie in AWS SCT „**Schema konvertieren“**, um das Schema von Oracle nach PostgreSQL zu konvertieren und die SQL-Dateien zu generieren. | DBA | 

### AWS SCT-Erweiterungscode in PSQL-Code konvertieren
<a name="convert-aws-sct-extension-code-to-psql-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Den Code manuell konvertieren. | Konvertieren Sie jede Codezeile, die von Erweiterungen unterstützt wird, manuell in den integrierten `psql` Standardcode, wie im angehängten Dokument beschrieben. Zum Beispiel ändern `AWS_ORACLE_EXT.SYSDATE()` oder `ORACLE.SYSDATE()` zu. `NOW()` | DBA | 
| Bestätigen Sie den Code | (Optional) Überprüfen Sie jede Codezeile, indem Sie sie vorübergehend in der PostgreSQL-Datenbank ausführen. | DBA | 
| Erstellen Sie Objekte in der PostgreSQL-Datenbank. | Um Objekte in der PostgreSQL-Datenbank zu erstellen, führen Sie die .sql-Dateien aus, die von AWS SCT generiert und in den beiden vorherigen Schritten geändert wurden. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-resources"></a>
+ Datenbank
  + [Oracle auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html)
  + [PostgreSQL auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)
  + [Arbeiten mit Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)
  + [PostgreSQL EXPLAIN-Plan](https://www.postgresql.org/docs/current/sql-explain.html)
+ AWS SCT
  + [Überblick über das AWS-Schema-Konvertierungstool](https://aws.amazon.com/dms/schema-conversion-tool/)
  + [AWS SCT-Benutzerhandbuch](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
  + [Verwenden der AWS SCT-Benutzeroberfläche](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
  + [Verwendung von Oracle Database als Quelle für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)
+ Erweiterungen für AWS SCT
  + [Verwenden des AWS SCT-Erweiterungspakets](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_ExtensionPack.html)
  + [Oracle-Funktionalität (de)](https://postgres.cz/wiki/Oracle_functionality_(en))
  + [PGNX Oracle](https://pgxn.org/dist/orafce/)
  + [GitHub orafce](https://github.com/orafce/orafce)

## Zusätzliche Informationen
<a name="migrate-oracle-native-functions-to-postgresql-using-extensions-additional"></a>

Weitere Informationen finden Sie in den ausführlichen Befehlen mit Syntax und Beispielen für die manuelle Konvertierung von Code im angehängten Dokument.

## Anlagen
<a name="attachments-158847bb-27ef-4915-a9ca-7d87073792c1"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/158847bb-27ef-4915-a9ca-7d87073792c1/attachments/attachment.zip)

# Migrieren Sie mithilfe von AWS DMS eine Db2-Datenbank von Amazon EC2 zu Aurora MySQL-kompatibel
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms"></a>

*Pinesh Signal, Amazon Web Services*

## Zusammenfassung
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-summary"></a>

Nachdem Sie Ihre [IBM Db2 for LUW-Datenbank](https://www.ibm.com/docs/en/db2/11.5?topic=federation) zu [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) migriert haben, sollten Sie erwägen, die Datenbank neu zu strukturieren, indem Sie zu einer Cloud-nativen Amazon Web Services (AWS) -Datenbank wechseln. Dieses Muster behandelt die Migration einer IBM [Db2](https://www.ibm.com/docs/en/db2/11.5) for LUW-Datenbank, die auf einer [ EC2 Amazon-Instance ausgeführt wird, zu einer Amazon](https://docs.aws.amazon.com/ec2/) [Aurora MySQL-Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html) Edition-Datenbank auf AWS.  

Das Muster beschreibt eine Online-Migrationsstrategie mit minimalen Ausfallzeiten für eine Db2-Quelldatenbank mit mehreren Terabyte und einer hohen Anzahl von Transaktionen. 

Dieses Muster verwendet das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html), um das Db2-Datenbankschema in ein Aurora MySQL-kompatibles Schema zu konvertieren. Anschließend verwendet das Muster den [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html), um Daten von der Db2-Datenbank in die Aurora MySQL-kompatible Datenbank zu migrieren. Für den Code, der nicht von AWS SCT konvertiert wurde, sind manuelle Konvertierungen erforderlich.

## Voraussetzungen und Einschränkungen
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto mit einer Virtual Private Cloud (VPC)
+ AWS SCT
+ AWS DMS

**Produktversionen**
+ Aktuelle Version von AWS SCT
+ Db2 für Linux Version 11.1.4.4 und höher

## Architektur
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ DB2/Linux x86-64 Bit ist auf einer Instanz gemountet EC2  

**Zieltechnologie-Stack**
+ Eine Amazon Aurora MySQL-kompatible Edition-Datenbank-Instance

**Quell- und Zielarchitektur**

Das folgende Diagramm zeigt die Datenmigrationsarchitektur zwischen der Db2-Quelle und den Aurora MySQL-kompatiblen Zieldatenbanken. Die Architektur in der AWS-Cloud umfasst eine Virtual Private Cloud (VPC) (Virtual Private Cloud), eine Availability Zone, ein öffentliches Subnetz für die Db2-Instance und die AWS DMS-Replikationsinstanz sowie ein privates Subnetz für die Aurora MySQL-kompatible Datenbank.

![\[Architektur der Datenmigration zwischen Quell-Db2 und Aurora MySQL-kompatiblen Zieldatenbanken.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5abfccc4-148c-4794-8d80-e3c122679125/images/f30664f8-2d6a-4448-8d5c-cff3988a52c7.png)


## Tools
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-tools"></a>

**AWS-Services**
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) ist eine vollständig verwaltete relationale Datenbank-Engine, die für die Cloud entwickelt wurde und mit MySQL und PostgreSQL kompatibel ist.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist. AWS SCT unterstützt als Quelle IBM Db2 für LUW-Versionen 9.1, 9.5, 9.7, 10.1, 10.5, 11.1 und 11.5.

## Best Practices
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-best-practices"></a>

Bewährte Methoden finden Sie unter [Bewährte Methoden für AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html).

## Epen
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-epics"></a>

### Konfigurieren Sie die IBM Db2-Quelldatenbank
<a name="configure-the-source-ibm-db2-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die IBM Db2-Datenbank auf Amazon EC2. | Sie können eine IBM Db2-Datenbank auf einer EC2 Instance erstellen, indem Sie ein Amazon Machine Image (AMI) von AWS Marketplace verwenden oder indem Sie Db2-Software auf einer EC2 Instance installieren.Starten Sie eine EC2 Instance, indem Sie ein AMI für IBM Db2 auswählen (z. B. [IBM Db2 v11.5.7 RHEL 7.9](https://aws.amazon.com/marketplace/pp/prodview-aclrjj4hq2ols?sr=0-1&ref_=beagle&applicationId=AWS-EC2-Console)), das einer lokalen Datenbank ähnelt. | DBA, Allgemeines AWS | 
| Konfigurieren Sie Sicherheitsgruppen. | Konfigurieren Sie die eingehenden VPC-Sicherheitsgruppenregeln für SSH (Secure Shell) und TCP mit Port 22 bzw. 50000. | Allgemeines AWS | 
| Erstellen Sie die Datenbank-Instance. | Erstellen Sie eine neue Instanz (Benutzer) und Datenbank (Schema), oder verwenden Sie die `db2inst1` Standardinstanz und Beispieldatenbank.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Vergewissern Sie sich, dass die Db2-DB-Instance verfügbar ist. | Verwenden Sie den Befehl, um zu bestätigen, dass die Db2-Datenbank-Instance betriebsbereit ist. `Db2pd -` | DBA | 

### Konfigurieren Sie die Aurora MySQL-kompatible Zieldatenbank
<a name="configure-the-target-aurora-mysql-compatible-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Aurora MySQL-kompatible Datenbank. | Erstellen Sie eine Amazon Aurora Aurora-Datenbank mit MySQL-Kompatibilität aus dem AWS RDS-Service[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA, Allgemeines AWS | 
| Konfigurieren Sie Sicherheitsgruppen. | Konfigurieren Sie die eingehenden Regeln der VPC-Sicherheitsgruppe für SSH- und TCP-Verbindungen. | Allgemeines AWS | 
| Vergewissern Sie sich, dass die Aurora-Datenbank verfügbar ist. | Gehen Sie wie folgt vor, um sicherzustellen, dass die Aurora MySQL-kompatible Datenbank betriebsbereit ist:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 

### AWS SCT konfigurieren und ausführen
<a name="configure-and-run-aws-sct"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie AWS SCT. | Laden Sie die neueste Version von [AWS SCT herunter und installieren Sie sie](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) (die aktuelle Version 1.0.628). | Allgemeines AWS | 
| Konfigurieren Sie AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Allgemeines AWS | 
| Erstellen Sie ein AWS SCT-Projekt. | Erstellen Sie ein AWS SCT-Projekt und einen Bericht, der Db2 for LUW als Quell-DB-Engine und Aurora MySQL-kompatibel für die Ziel-DB-Engine verwendet.Informationen zu den Rechten, die für die Verbindung mit einer Db2 for LUW-Datenbank erforderlich sind, finden Sie unter [Verwenden von Db2 LUW als Quelle](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html) für AWS SCT. | Allgemeines AWS | 
| Validieren Sie die Objekte. | Wählen Sie **Schema laden** und validieren Sie die Objekte. Aktualisieren Sie alle falschen Objekte in der Zieldatenbank:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA, Allgemeines AWS | 

### AWS DMS konfigurieren und ausführen
<a name="configure-and-run-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Replikationsinstanz. | Melden Sie sich bei der AWS-Managementkonsole an, navigieren Sie zum AWS DMS-Service und erstellen Sie eine Replikationsinstanz mit gültigen Einstellungen für die VPC-Sicherheitsgruppe, die Sie für die Quell- und Zieldatenbank konfiguriert haben. | Allgemeines AWS | 
| Endpunkte erstellen. | Erstellen Sie den Quellendpunkt für die Db2-Datenbank und den Zielendpunkt für die Aurora MySQL-kompatible Datenbank:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Allgemeines AWS | 
| Erstellen Sie Migrationsaufgaben. | Erstellen Sie eine einzelne Migrationsaufgabe oder mehrere Migrationsaufgaben für Volllast und CDC- oder Datenvalidierung:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Allgemeines AWS | 
| Planen Sie den Produktionslauf. | Bestätigen Sie Ausfallzeiten mit Stakeholdern wie Anwendungseigentümern, um AWS DMS in Produktionssystemen auszuführen. | Leiter der Migration | 
| Führen Sie die Migrationsaufgaben aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | Allgemeines AWS | 
| Validieren Sie die Daten. | Überprüfen Sie die Ergebnisse und Daten der Migrationsaufgaben in den DB2-Quelldatenbanken und den MySQL-Zieldatenbanken:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | DBA | 
| Stoppen Sie die Migrationsaufgaben. | Nachdem die Datenvalidierung erfolgreich abgeschlossen wurde, beenden Sie die Validierungsmigrationsaufgaben. | Allgemeines AWS | 

## Fehlerbehebung
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Die Quell- und Zieltestverbindungen von AWS SCT schlagen fehl. | Konfigurieren Sie JDBC-Treiberversionen und eingehende VPC-Sicherheitsgruppenregeln, um den eingehenden Datenverkehr zu akzeptieren. | 
| Der Testlauf für den Db2-Quellendpunkt schlägt fehl. | Konfigurieren Sie die zusätzliche Verbindungseinstellung`CurrentLSN=<scan>;`. | 
| Die AWSDMS Aufgabe kann keine Verbindung zur Db2-Quelle herstellen, und der folgende Fehler wird zurückgegeben.`database is recoverable if either or both of the database configuration parameters LOGARCHMETH1 and LOGARCHMETH2 are set to ON` | Führen Sie die folgenden Befehle aus, um den Fehler zu vermeiden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.html) | 

## Zugehörige Ressourcen
<a name="migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms-resources"></a>

**Amazon EC2**
+ [Amazon EC2](https://aws.amazon.com/ec2/)
+ [ EC2 Amazon-Benutzerhandbücher](https://docs.aws.amazon.com/ec2/)

**Datenbanken**
+ [IBM Db2-Datenbank](https://www.ibm.com/products/db2-database)
+ [Amazon Aurora](https://aws.amazon.com/rds/aurora/)
+ [Arbeiten mit Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html)

**AWS SCT**
+ [AWS-DMS-Schemakonvertierung](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [Benutzerhandbuch für das AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Verwenden der AWS SCT-Benutzeroberfläche](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)
+ [IBM Db2 LUW als Quelle für AWS SCT verwenden](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2LUW.html)

**AWS DMS**
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [AWS Database Migration Service — Benutzerhandbuch](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Quellen für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html)
+ [Ziele für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html)
+ [AWS Database Migration Service und AWS Schema Conversion Tool unterstützen jetzt IBM Db2 LUW als Quelle](https://aws.amazon.com/blogs/database/aws-database-migration-service-and-aws-schema-conversion-tool-now-support-ibm-db2-as-a-source/) (Blogbeitrag)
+ [Migrieren von Anwendungen, auf denen relationale Datenbanken ausgeführt werden, zu AWS](https://d1.awsstatic.com/whitepapers/Migration/migrating-applications-to-aws.pdf)

# Migrieren Sie mithilfe von AWS DMS eine Microsoft SQL Server-Datenbank von Amazon EC2 zu Amazon DocumentDB
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms"></a>

*Umamaheswara Nooka, Amazon Web Services*

## Zusammenfassung
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-summary"></a>

Dieses Muster beschreibt, wie AWS Database Migration Service (AWS DMS) verwendet wird, um eine Microsoft SQL Server-Datenbank, die auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance gehostet wird, zu einer Amazon DocumentDB DocumentDB-Datenbank (mit MongoDB-Kompatibilität) zu migrieren.

Die AWS DMS-Replikationsaufgabe liest die Tabellenstruktur der SQL Server-Datenbank, erstellt die entsprechende Sammlung in Amazon DocumentDB und führt eine Volllastmigration durch.

Sie können dieses Muster auch verwenden, um eine lokale SQL Server- oder Amazon Relational Database Service (Amazon RDS) für SQL Server-DB-Instance zu Amazon DocumentDB zu migrieren. Weitere Informationen finden Sie im Leitfaden [Migration von Microsoft SQL Server-Datenbanken zur AWS-Cloud auf der AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/welcome.html) Prescriptive Guidance-Website.

## Voraussetzungen und Einschränkungen
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine bestehende SQL Server-Datenbank auf einer Instance. EC2 
+ Feste Datenbankrolle (**db\$1owner**), die AWS DMS in der SQL Server-Datenbank zugewiesen wurde. Weitere Informationen finden Sie unter [Rollen auf Datenbankebene](https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles?view=sql-server-ver15) in der SQL Server-Dokumentation. 
+ Vertrautheit mit der Verwendung der `mongoimport` Dienstprogramme `mongodump` `mongorestore``mongoexport`,, und zum [Verschieben von Daten in und aus einem Amazon DocumentDB-Cluster](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore-dump_restore_import_export_data.html).
+ [Microsoft SQL Server Management Studio](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15), installiert und konfiguriert.

**Einschränkungen**
+ Die Clustergrößenbeschränkung in Amazon DocumentDB beträgt 64 TB. Weitere Informationen finden Sie unter [Cluster-Grenzwerte](https://docs.aws.amazon.com/documentdb/latest/developerguide/limits.html#limits-cluster) in der Amazon DocumentDB DocumentDB-Dokumentation. 
+ AWS DMS unterstützt nicht die Zusammenführung mehrerer Quelltabellen zu einer einzigen Amazon DocumentDB-Sammlung.
+ Wenn AWS DMS Änderungen aus einer Quelltabelle ohne Primärschlüssel verarbeitet, ignoriert es große Objektspalten (LOB) in der Quelltabelle.

## Architektur
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Amazon EC2

**Zieltechnologie-Stack**
+ Amazon DocumentDB

**Zielarchitektur**

![\[AWS Cloud architecture showing VPC with private DB subnet and components for SQL Server and DocumentDB.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f186220b-5a94-48b2-840d-f04aedf51651/images/00962b85-8b71-49df-b84a-3adcbc9ad3a3.png)


## Tools
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) — Mit dem AWS Database Migration Service (AWS DMS) können Sie Datenbanken einfach und sicher migrieren.
+ [Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html) — Amazon DocumentDB (mit MongoDB-Kompatibilität) ist ein schneller, zuverlässiger und vollständig verwalteter Datenbankservice.
+ [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) — Amazon Elastic Compute Cloud (Amazon EC2) bietet skalierbare Rechenkapazität in der AWS-Cloud.
+ [Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/sql-server/?view=sql-server-ver15) — SQL Server ist ein relationales Datenbankverwaltungssystem.
+ [SQL Server Management Studio (SSMS) — SSMS](https://docs.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms?view=sql-server-ver15) ist ein Tool zur Verwaltung von SQL Server, einschließlich des Zugriffs auf, der Konfiguration und Verwaltung von SQL Server-Komponenten.

## Epen
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-epics"></a>

### Erstellen und Konfigurieren einer VPC
<a name="create-and-configure-a-vpc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine VPC. | Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon VPC-Konsole. Erstellen Sie eine Virtual Private Cloud (VPC) mit einem IPv4 CIDR-Blockbereich. | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen und ein Netzwerk. ACLs | Erstellen Sie auf der Amazon VPC-Konsole gemäß Ihren Anforderungen Sicherheitsgruppen und Netzwerkzugriffskontrolllisten (Netzwerk ACLs) für Ihre VPC. Sie können auch die Standardeinstellungen für diese Konfigurationen verwenden. Weitere Informationen zu dieser und anderen Geschichten finden Sie im Abschnitt „Verwandte Ressourcen“. | Systemadministrator | 

### Erstellen und konfigurieren Sie den Amazon DocumentDB-Cluster
<a name="create-and-configure-the-amazon-documentdb-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  Erstellen Sie einen Amazon DocumentDB-Cluster. | Öffnen Sie die Amazon DocumentDB DocumentDB-Konsole und wählen Sie „Clusters“. Wählen Sie „Erstellen“ und erstellen Sie einen Amazon DocumentDB-Cluster mit einer Instance. Wichtig: Stellen Sie sicher, dass Sie diesen Cluster mit den Sicherheitsgruppen Ihrer VPC konfigurieren. | Systemadministrator  | 
|  Installieren Sie die Mongo-Shell. | Die mongo-Shell ist ein Befehlszeilenprogramm, mit dem Sie eine Verbindung zu Ihrem Amazon DocumentDB-Cluster herstellen und ihn abfragen können. Um sie zu installieren, führen Sie den Befehl „/etc/yum.repos.d/mongodb-org-3.6.repo“ aus, um die Repository-Datei zu erstellen. Führen Sie den Befehl „sudo yum install -y“ aus, um die mongodb-org-shell Mongo-Shell zu installieren. Um Daten während der Übertragung zu verschlüsseln, laden Sie den öffentlichen Schlüssel für Amazon DocumentDB herunter und stellen Sie dann eine Verbindung zu Ihrer Amazon DocumentDB DocumentDB-Instance her. Weitere Informationen zu diesen Schritten finden Sie im Abschnitt „Verwandte Ressourcen“. | Systemadministrator  | 
| Erstellen Sie eine Datenbank im Amazon DocumentDB-Cluster.  | Führen Sie den Befehl „use“ mit dem Namen Ihrer Datenbank aus, um eine Datenbank in Ihrem Amazon DocumentDB-Cluster zu erstellen. | Systemadministrator  | 

### Erstellen und konfigurieren Sie die AWS DMS-Replikationsinstanz
<a name="create-and-configure-the-aws-dms-replication-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die AWS DMS-Replikationsinstanz. | Öffnen Sie die AWS DMS-Konsole und wählen Sie „Replikationsinstanz erstellen“. Geben Sie einen Namen und eine Beschreibung für Ihre Replikationsaufgabe ein. Wählen Sie die Instance-Klasse, die Engine-Version, den Speicher, die VPC und die Multi-AZ aus und machen Sie sie öffentlich zugänglich. Wählen Sie den Tab „Erweitert“, um die Netzwerk- und Verschlüsselungseinstellungen festzulegen. Geben Sie die Wartungseinstellungen an und wählen Sie dann „Replikationsinstanz erstellen“. | Systemadministrator  | 
| Konfigurieren Sie die SQL Server-Datenbank.  | Melden Sie sich bei Microsoft SQL Server an und fügen Sie eine eingehende Regel für die Kommunikation zwischen dem Quellendpunkt und der AWS DMS-Replikationsinstanz hinzu. Verwenden Sie die private IP-Adresse der Replikationsinstanz als Quelle. Wichtig: Die Replikationsinstanz und der Zielendpunkt sollten sich auf derselben VPC befinden. Verwenden Sie eine alternative Quelle in der Sicherheitsgruppe, wenn die Quell- und Replikationsinstanzen unterschiedlich VPCs sind. | Systemadministrator  | 

### Quell- und Zielendpunkte in AWS DMS erstellen und testen
<a name="create-and-test-the-source-and-target-endpoints-in-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Quell- und Zieldatenbank-Endpunkte. | Öffnen Sie die AWS DMS-Konsole und wählen Sie „Quell- und Zieldatenbank-Endpunkte Connect“. Geben Sie die Verbindungsinformationen für die Quell- und Zieldatenbanken an. Wählen Sie bei Bedarf die Registerkarte „Erweitert“, um Werte für „Zusätzliche Verbindungsattribute“ festzulegen. Laden Sie das Zertifikatspaket herunter und verwenden Sie es in Ihrer Endpunktkonfiguration. | Systemadministrator  | 
| Testen Sie die Endpunktverbindung.  | Wählen Sie „Test ausführen“, um die Verbindung zu testen. Beheben Sie alle Fehlermeldungen, indem Sie die Sicherheitsgruppeneinstellungen und die Verbindungen zur AWS DMS-Replikationsinstanz sowohl von der Quell- als auch von der Zieldatenbank-Instance aus überprüfen. | Systemadministrator  | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die AWS DMS-Migrationsaufgabe.  | Wählen Sie in der AWS DMS-Konsole „Aufgaben“, „Aufgabe erstellen“. Geben Sie die Aufgabenoptionen an, einschließlich der Namen der Quell- und Zielendpunkte sowie der Namen der Replikationsinstanzen. Wählen Sie unter „Migrationstyp“ die Optionen „Bestehende Daten migrieren“ und „Nur Datenänderungen replizieren“ aus. Wählen Sie „Aufgabe starten“. | Systemadministrator  | 
| Führen Sie die AWS DMS-Migrationsaufgabe aus. | Geben Sie unter „Aufgabeneinstellungen“ die Einstellungen für den Tabellenvorbereitungsmodus an, z. B. „Nichts tun“, „Tabellen auf Ziel löschen“, „Kürzen“ und „LOB-Spalten in die Replikation einbeziehen“. Legen Sie eine maximale LOB-Größe fest, die AWS DMS akzeptiert, und wählen Sie „Protokollierung aktivieren“. Behalten Sie für die „Erweiterten Einstellungen“ die Standardwerte bei und wählen Sie „Aufgabe erstellen“. | Systemadministrator  | 
| Überwachen Sie die Migration. | Wählen Sie in der AWS DMS-Konsole „Aufgaben“ und wählen Sie Ihre Migrationsaufgabe aus. Wählen Sie „Aufgabenüberwachung“, um Ihre Aufgabe zu überwachen. Die Aufgabe wird beendet, wenn die Volllastmigration abgeschlossen ist und die zwischengespeicherten Änderungen übernommen wurden. | Systemadministrator  | 

### Testen und verifizieren Sie die Migration
<a name="test-and-verify-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  Stellen Sie mithilfe der Mongo-Shell eine Connect zum Amazon DocumentDB-Cluster her. | Öffnen Sie die Amazon DocumentDB DocumentDB-Konsole und wählen Sie Ihren Cluster unter „Clusters“ aus. Wählen Sie auf der Registerkarte „Konnektivität und Sicherheit“ die Option „Mit der Mongo-Shell mit diesem Cluster Connect“. | Systemadministrator  | 
| Überprüfen Sie die Ergebnisse Ihrer Migration. | Führen Sie den Befehl „use“ mit dem Namen Ihrer Datenbank und anschließend den Befehl „show collections“ aus. Führen Sie den Befehl „db. .count ();“ mit dem Namen Ihrer Datenbank aus. Wenn die Ergebnisse mit Ihrer Quelldatenbank übereinstimmen, war Ihre Migration erfolgreich. | Systemadministrator  | 

## Zugehörige Ressourcen
<a name="migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms-resources"></a>

**Eine VPC erstellen und konfigurieren**
+ [Erstellen Sie eine Sicherheitsgruppe für Ihre VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups)
+ [Erstellen Sie eine Netzwerk-ACL](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html)

** **

**Erstellen und konfigurieren Sie den Amazon DocumentDB-Cluster**
+ [Erstellen Sie einen Amazon DocumentDB-Cluster](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-cluster)
+ [Installieren Sie die Mongo-Shell für Amazon DocumentDB](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-mongoshell)
+ [Connect zu Ihrem Amazon DocumentDB-Cluster her](https://docs.aws.amazon.com/documentdb/latest/developerguide/get-started-guide.html#cloud9-connectcluster)

** **

**Erstellen und konfigurieren Sie die AWS DMS-Replikationsinstanz**
+ [Verwenden Sie öffentliche und private Replikationsinstanzen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html#CHAP_ReplicationInstance.PublicPrivate)

** **

**Quell- und Zielendpunkte in AWS DMS erstellen und testen**
+ [Verwenden Sie Amazon DocumentDB als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/target.docdb.html)
+ [Verwenden Sie eine SQL Server-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Verwenden Sie AWS DMS-Endpunkte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.html)

** **

**Daten migrieren**
+ [Zu Amazon DocumentDB migrieren](https://docs.aws.amazon.com/documentdb/latest/developerguide/docdb-migration.html)

** **

**Sonstige Ressourcen**
+ [Einschränkungen bei der Verwendung von SQL Server als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html#CHAP_Source.SQLServer.Limitations) 
+ [So verwenden Sie Amazon DocumentDB, um skalierbare Anwendungen zu erstellen und zu verwalten](https://aws.amazon.com/blogs/database/how-to-use-amazon-documentdb-with-mongodb-compatibility-to-build-and-manage-applications-at-scale/)

# Migrieren Sie eine lokale ThoughtSpot Falcon-Datenbank zu Amazon Redshift
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift"></a>

*Battulga Purevragchaa und Antony Prasad Thevaraj, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-summary"></a>

Lokale Data Warehouses erfordern viel Verwaltungszeit und Ressourcen, insbesondere bei großen Datensätzen. Die finanziellen Kosten für den Bau, die Wartung und den Ausbau dieser Lagerhäuser sind ebenfalls sehr hoch. Um die Kosten im Griff zu behalten, die Komplexität von Extrahieren, Transformieren und Laden (ETL) gering zu halten und die Leistung auch bei wachsenden Datenmengen zu gewährleisten, müssen Sie ständig entscheiden, welche Daten geladen und welche archiviert werden sollen.

Durch die Migration Ihrer lokalen [ThoughtSpot Falcon-Datenbanken](https://docs.thoughtspot.com/software/latest/data-caching) in die Amazon Web Services (AWS) Cloud können Sie auf Cloud-basierte Data Lakes und Data Warehouses zugreifen, die Ihre geschäftliche Flexibilität, Sicherheit und Anwendungszuverlässigkeit erhöhen und gleichzeitig Ihre gesamten Infrastrukturkosten senken. Amazon Redshift trägt dazu bei, die Kosten und den Betriebskosten eines Data Warehouse erheblich zu senken. Sie können Amazon Redshift Spectrum auch verwenden, um große Datenmengen im nativen Format zu analysieren, ohne dass Daten geladen werden müssen.

Dieses Muster beschreibt die Schritte und den Prozess für die Migration einer ThoughtSpot Falcon-Datenbank von einem lokalen Rechenzentrum zu einer Amazon Redshift Redshift-Datenbank in der AWS-Cloud.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine ThoughtSpot Falcon-Datenbank, die in einem lokalen Rechenzentrum gehostet wird

**Produktversionen**
+ ThoughtSpot Version 7.0.1 

## Architektur
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-architecture"></a>

![\[Migration einer ThoughtSpot Falcon-Datenbank von einem lokalen Rechenzentrum zu Amazon Redshift.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/b0ca29f4-b269-4b57-b386-738693a6b334/images/2b483990-1f30-439c-ba13-dc0cb0650360.png)


 

Das Diagramm zeigt den folgenden Workflow:

1. Die Daten werden in einer lokalen relationalen Datenbank gehostet.

1. Das AWS Schema Conversion Tool (AWS SCT) konvertiert die Datendefinitionssprache (DDL), die mit Amazon Redshift kompatibel ist.

1. Nachdem die Tabellen erstellt wurden, können Sie die Daten mithilfe des AWS Database Migration Service (AWS DMS) migrieren.

1. Die Daten werden in Amazon Redshift geladen.

1. Die Daten werden in Amazon Simple Storage Service (Amazon S3) gespeichert, wenn Sie Redshift Spectrum verwenden oder die Daten bereits in Amazon S3 hosten.

## Tools
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) — AWS Data Migration Service (AWS DMS) hilft Ihnen, Datenbanken schnell und sicher zu AWS zu migrieren.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) — Amazon Redshift ist ein schneller, vollständig verwalteter Data Warehouse-Service im Petabyte-Bereich, mit dem Sie all Ihre Daten mithilfe Ihrer vorhandenen Business Intelligence-Tools einfach und kostengünstig effizient analysieren können.
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — Das AWS Schema Conversion Tool (AWS SCT) konvertiert Ihr vorhandenes Datenbankschema von einer Datenbank-Engine in eine andere.

## Epen
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-epics"></a>

### Bereite dich auf die Migration vor
<a name="prepare-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die entsprechende Amazon Redshift Redshift-Konfiguration. | Identifizieren Sie die passende Amazon Redshift Redshift-Cluster-Konfiguration auf der Grundlage Ihrer Anforderungen und Ihres Datenvolumens. Weitere Informationen finden Sie unter [Amazon Redshift Redshift-Cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 
| Informieren Sie sich über Amazon Redshift, um herauszufinden, ob es Ihren Anforderungen entspricht. | Verwenden Sie [Amazon Redshift FAQs](https://aws.amazon.com/redshift/faqs/), um zu verstehen und zu bewerten, ob Amazon Redshift Ihre Anforderungen erfüllt. | DBA | 

### Bereiten Sie den Amazon Redshift Redshift-Zielcluster vor
<a name="prepare-the-target-amazon-redshift-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Amazon Redshift Redshift-Cluster. | Melden Sie sich bei der AWS-Managementkonsole an, öffnen Sie die Amazon Redshift Redshift-Konsole und erstellen Sie dann einen Amazon Redshift Redshift-Cluster in einer Virtual Private Cloud (VPC). Weitere Informationen finden Sie unter [Erstellen eines Clusters in einer VPC in](https://docs.aws.amazon.com/redshift/latest/mgmt/getting-started-cluster-in-vpc.html) der Amazon Redshift Redshift-Dokumentation. | DBA | 
| Führen Sie einen PoC für Ihr Amazon Redshift Redshift-Datenbankdesign durch. | Folgen Sie den Best Practices von Amazon Redshift, indem Sie einen Machbarkeitsnachweis (PoC) für Ihr Datenbankdesign durchführen. Weitere Informationen finden Sie unter [Durchführung eines Machbarkeitsnachweises für Amazon Redshift in der Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/proof-of-concept-playbook.html) Redshift-Dokumentation. | DBA | 
| Datenbankbenutzer erstellen. | Erstellen Sie die Benutzer in Ihrer Amazon Redshift Redshift-Datenbank und gewähren Sie die entsprechenden Rollen für den Zugriff auf das Schema und die Tabellen.  Weitere Informationen finden Sie unter [Gewähren von Zugriffsberechtigungen für einen Benutzer oder eine Benutzergruppe](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 
| Wenden Sie die Konfigurationseinstellungen auf die Zieldatenbank an. | Wenden Sie die Konfigurationseinstellungen entsprechend Ihren Anforderungen auf die Amazon Redshift Redshift-Datenbank an. Weitere Informationen zur Aktivierung von Parametern auf Datenbank-, Sitzungs- und Serverebene finden Sie in der [Konfigurationsreferenz](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 

### Objekte im Amazon Redshift Redshift-Cluster erstellen
<a name="create-objects-in-the-amazon-redshift-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie manuell Tabellen mit DDL in Amazon Redshift. | (Optional) Wenn Sie AWS SCT verwenden, werden die Tabellen automatisch erstellt. Wenn bei der Replikation jedoch Fehler auftreten DDLs, müssen Sie die Tabellen manuell erstellen | DBA | 
| Erstellen Sie externe Tabellen für Redshift Spectrum. | Erstellen Sie eine externe Tabelle mit einem externen Schema für Amazon Redshift Spectrum. Um externe Tabellen zu erstellen, müssen Sie der Eigentümer des externen Schemas oder ein [Datenbank-Superuser](https://docs.aws.amazon.com/redshift/latest/dg/r_superusers.html) sein. Weitere Informationen finden Sie unter [Erstellen externer Tabellen für Amazon Redshift Spectrum](https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-external-tables.html) in der Amazon Redshift-Dokumentation. | DBA | 

### Daten mit AWS DMS migrieren
<a name="migrate-data-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie AWS DMS, um die Daten zu migrieren. | Nachdem Sie die DDL der Tabellen in der Amazon Redshift-Datenbank erstellt haben, migrieren Sie Ihre Daten mithilfe von AWS DMS zu Amazon Redshift.Ausführliche Schritte und Anweisungen finden Sie unter [Verwenden einer Amazon Redshift Redshift-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html) in der AWS DMS-Dokumentation. | DBA | 
| Verwenden Sie den Befehl COPY, um die Daten zu laden. | Verwenden Sie den Amazon `COPY` Redshift-Befehl, um die Daten von Amazon S3 nach Amazon Redshift zu laden.Weitere Informationen finden Sie unter [Verwenden des COPY-Befehls zum Laden aus Amazon S3 in der Amazon](https://docs.aws.amazon.com/redshift/latest/dg/t_loading-tables-from-s3.html) Redshift Redshift-Dokumentation. | DBA | 

### Den Amazon Redshift Redshift-Cluster validieren
<a name="validate-the-amazon-redshift-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Quell- und Zieldatensätze.  | Überprüfen Sie die Tabellenanzahl für die Quell- und Zieldatensätze, die aus Ihrem Quellsystem geladen wurden. | DBA | 
| Implementieren Sie die Best Practices von Amazon Redshift zur Leistungsoptimierung. | Implementieren Sie die Best Practices von Amazon Redshift für das Tabellen- und Datenbankdesign. Weitere Informationen finden Sie im Blogbeitrag Die [10 wichtigsten Techniken zur Leistungsoptimierung für Amazon Redshift](https://aws.amazon.com/blogs/big-data/top-10-performance-tuning-techniques-for-amazon-redshift/). | DBA | 
| Optimieren Sie die Abfrageleistung. | Amazon Redshift verwendet SQL-basierte Abfragen, um mit Daten und Objekten im System zu interagieren. Die Datenmanipulationssprache (DML) ist die Teilmenge von SQL, mit der Sie Daten anzeigen, hinzufügen, ändern und löschen können. DDL ist die Teilmenge von SQL, die Sie zum Hinzufügen, Ändern und Löschen von Datenbankobjekten wie Tabellen und Ansichten verwenden.Weitere Informationen finden Sie unter [Optimieren der Abfrageleistung](https://docs.aws.amazon.com/redshift/latest/dg/c-optimizing-query-performance.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 
| Implementieren Sie WLM.  | Sie können Workload Management (WLM) verwenden, um mehrere Abfragewarteschlangen zu definieren und Abfragen zur Laufzeit an die entsprechenden Warteschlangen weiterzuleiten.Weitere Informationen finden Sie unter [Implementieren des Workload-Managements](https://docs.aws.amazon.com/redshift/latest/dg/cm-c-implementing-workload-management.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 
| Arbeiten Sie mit Parallelitätsskalierung. | Mithilfe der Concurrency Scaling-Funktion können Sie praktisch unbegrenzt viele gleichzeitige Benutzer und Abfragen bei gleichbleibend schneller Abfrageleistung unterstützen.Weitere Informationen finden Sie unter [Arbeiten mit Parallelitätsskalierung](https://docs.aws.amazon.com/redshift/latest/dg/concurrency-scaling.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 
| Verwenden Sie die Best Practices von Amazon Redshift für das Tabellendesign. | Bei der Planung Ihrer Datenbank können bestimmte wichtige Entscheidungen beim Tabellenentwurf die allgemeine Abfrageleistung stark beeinflussen.Weitere Informationen zur Auswahl der am [besten geeigneten Tabellenentwurfsoption finden Sie unter Bewährte Methoden für das Entwerfen von Tabellen für Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c_designing-tables-best-practices.html) in der Amazon Redshift-Dokumentation. | DBA | 
| Erstellen Sie materialisierte Ansichten in Amazon Redshift. | Eine materialisierte Ansicht enthält einen vorberechneten Ergebnissatz, der auf einer SQL-Abfrage über eine oder mehrere Basistabellen basiert. Sie können `SELECT` Anweisungen zur Abfrage einer materialisierten Ansicht genauso ausgeben, wie Sie andere Tabellen oder Ansichten in der Datenbank abfragen.Weitere Informationen finden Sie unter [Erstellen materialisierter Ansichten in Amazon Redshift in der Amazon Redshift Redshift-Dokumentation](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-overview.html). | DBA | 
| Definieren Sie Verknüpfungen zwischen den Tabellen. | Um in mehr als einer Tabelle gleichzeitig zu suchen ThoughtSpot, müssen Sie Verknüpfungen zwischen den Tabellen definieren, indem Sie Spalten angeben, die übereinstimmende Daten aus zwei Tabellen enthalten. Diese Spalten stellen das `primary key` Ende `foreign key` der Verknüpfung dar.Sie können sie mit dem `ALTER TABLE` Befehl in Amazon Redshift oder ThoughtSpot definieren. Weitere Informationen finden Sie unter [ALTER TABLE](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_TABLE.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 

### ThoughtSpot Verbindung zu Amazon Redshift einrichten
<a name="set-up-thoughtspot-connection-to-amazon-redshift"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  Fügen Sie eine Amazon Redshift Redshift-Verbindung hinzu. | Fügen Sie Ihrer lokalen ThoughtSpot Falcon-Datenbank eine Amazon Redshift Redshift-Verbindung hinzu.Weitere Informationen finden Sie in der ThoughtSpot Dokumentation unter [Hinzufügen einer Amazon Redshift Redshift-Verbindung](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-add-connection.html). | DBA | 
| Bearbeiten Sie die Amazon Redshift Redshift-Verbindung. | Sie können die Amazon Redshift Redshift-Verbindung bearbeiten, um Tabellen und Spalten hinzuzufügen.Weitere Informationen finden Sie in der ThoughtSpot Dokumentation unter [Bearbeiten einer Amazon Redshift Redshift-Verbindung](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-edit-connection.html). | DBA | 
| Ordnen Sie die Amazon Redshift Redshift-Verbindung neu zu. | Ändern Sie die Verbindungsparameter, indem Sie die Quell-Mapping-.yaml-Datei bearbeiten, die beim Hinzufügen der Amazon Redshift Redshift-Verbindung erstellt wurde. Sie können beispielsweise die bestehende Tabelle oder Spalte einer anderen Tabelle oder Spalte in einer bestehenden Datenbankverbindung neu zuordnen. ThoughtSpot empfiehlt, die Abhängigkeiten vor und nach der Neuzuweisung einer Tabelle oder Spalte in einer Verbindung zu überprüfen, um sicherzustellen, dass sie wie gewünscht angezeigt werden.Weitere Informationen finden Sie in der Dokumentation unter [Eine Amazon Redshift Redshift-Verbindung neu zuordnen](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-remap-connection.html). ThoughtSpot  | DBA | 
| Löschen Sie eine Tabelle aus der Amazon Redshift Redshift-Verbindung.  | (Optional) Wenn Sie versuchen, eine Tabelle in einer Amazon Redshift Redshift-Verbindung zu entfernen, ThoughtSpot sucht es nach Abhängigkeiten und zeigt eine Liste der abhängigen Objekte an. Sie können die aufgelisteten Objekte auswählen, um sie zu löschen oder die Abhängigkeit zu entfernen. Anschließend können Sie die Tabelle entfernen.Weitere Informationen finden Sie in der ThoughtSpot Dokumentation unter [Löschen einer Tabelle aus einer Amazon Redshift Redshift-Verbindung](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table.html). | DBA | 
|  Löschen Sie eine Tabelle mit abhängigen Objekten aus einer Amazon Redshift Redshift-Verbindung. | (Optional) Wenn Sie versuchen, eine Tabelle mit abhängigen Objekten zu löschen, wird der Vorgang blockiert. Es wird ein `Cannot delete` Fenster mit einer Liste von Links zu abhängigen Objekten angezeigt. Wenn alle Abhängigkeiten entfernt wurden, können Sie die Tabelle löschenWeitere Informationen finden Sie in der ThoughtSpot Dokumentation unter [Löschen einer Tabelle mit abhängigen Objekten aus einer Amazon Redshift Redshift-Verbindung](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-table-dependencies.html). | DBA | 
| Löschen Sie eine Amazon Redshift Redshift-Verbindung. | (Optional) Da eine Verbindung in mehreren Datenquellen oder Visualisierungen verwendet werden kann, müssen Sie alle Quellen und Aufgaben löschen, die diese Verbindung verwenden, bevor Sie die Amazon Redshift Redshift-Verbindung löschen können.Weitere Informationen finden Sie in der ThoughtSpot Dokumentation unter [Löschen einer Amazon Redshift Redshift-Verbindung](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-delete-connection.html). | DBA | 
|  Überprüfen Sie die Verbindungsreferenz für Amazon Redshift. | Stellen Sie sicher, dass Sie die erforderlichen Informationen für Ihre Amazon Redshift Redshift-Verbindung angeben, indem Sie die [Verbindungsreferenz](https://cloud-docs.thoughtspot.com/admin/ts-cloud/ts-cloud-embrace-redshift-connection-reference.html) in der ThoughtSpot Dokumentation verwenden. | DBA | 

## Zusätzliche Informationen
<a name="migrate-an-on-premises-thoughtspot-falcon-database-to-amazon-redshift-additional"></a>
+ [KI-gestützte Analysen in jeder Größenordnung mit Amazon ThoughtSpot Redshift](https://aws.amazon.com/blogs/apn/ai-driven-analytics-at-any-scale-with-thoughtspot-and-amazon-redshift/)
+ [Amazon-Redshift-Preise](https://aws.amazon.com/redshift/pricing/)
+ [Erste Schritte mit AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html) 
+ [Erste Schritte mit Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Verwenden von Datenextraktionsagenten](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Chick-fil-A verbessert die Schnelligkeit, Erkenntnisse mit ThoughtSpot und AWS zu gewinnen](https://www.thoughtspot.com/sites/default/files/pdf/ThoughtSpot-Chick-fil-A-AWS-Case-Study.pdf) 

# Migrieren Sie mithilfe von Oracle von Oracle Database zu Amazon RDS for PostgreSQL GoldenGate
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate"></a>

*Dhairya Jindani, Sindhusha Paturu und Rajeshkumar Sabankar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-summary"></a>

Dieses Muster zeigt, wie eine Oracle-Datenbank mithilfe von Oracle Cloud Infrastructure (OCI) zu Amazon Relational Database Service (Amazon RDS) für PostgreSQL migriert wird. GoldenGate

Mithilfe von Oracle GoldenGate können Sie Daten mit minimaler Ausfallzeit zwischen Ihrer Quelldatenbank und einer oder mehreren Zieldatenbanken replizieren.

**Anmerkung**  
Die Oracle-Quelldatenbank kann sich entweder vor Ort oder auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance befinden. Sie können ein ähnliches Verfahren verwenden, wenn Sie lokale Replikationstools verwenden.

## Voraussetzungen und Einschränkungen
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine GoldenGate Oracle-Lizenz
+ Java Database Connectivity (JDBC) -Treiber für die Verbindung mit der PostgreSQL-Datenbank
+ Schema und Tabellen, die mit dem [AWS Schema Conversion Tool (AWS SCT)](https://aws.amazon.com/dms/schema-conversion-tool/) auf der Amazon RDS for PostgreSQL PostgreSQL-Zieldatenbank erstellt wurden

**Einschränkungen**
+ Oracle GoldenGate kann nur bestehende Tabellendaten (erstes Laden) und laufende Änderungen (Erfassung von Änderungsdaten) replizieren

**Produktversionen**
+ Oracle Database Enterprise Edition 10g oder neuere Versionen 
+ Oracle GoldenGate 12.2.0.1.1 für Oracle oder neuere Versionen
+ Oracle GoldenGate 12.2.0.1.1 für PostgreSQL oder neuere Versionen

## Architektur
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-architecture"></a>

Das folgende Diagramm zeigt einen Beispiel-Workflow für die Migration einer Oracle-Datenbank zu Amazon RDS for PostgreSQL mithilfe von Oracle: GoldenGate

![\[Migrationsablauf von der lokalen Oracle-Datenbank zu Amazon RDS for PostgreSQL.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/384f0eaf-8582-474a-a7f4-ec1048a4feb3/images/de541887-0d5f-4a9a-b136-ce2599355cb8.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Oracle GoldenGate [Extract-Prozess](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-6419F3A9-71EC-4D14-9C41-3BAA1E3CA19C) wird in der Quelldatenbank ausgeführt, um Daten zu extrahieren.

1. Der Oracle GoldenGate [Replicat-Prozess](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-5EF0326C-9058-4C40-8925-98A223388C95) liefert die extrahierten Daten an die Amazon RDS for PostgreSQL PostgreSQL-Zieldatenbank.

## Tools
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-tools"></a>
+ [Oracle GoldenGate](https://www.oracle.com/integration/goldengate/#:~:text=OCI%20GoldenGate%20is%20a%20real,in%20the%20Oracle%20Cloud%20Infrastructure.) unterstützt Sie bei der Entwicklung, Ausführung, Orchestrierung und Überwachung Ihrer Datenreplikations- und Streaming-Datenverarbeitungslösungen in der Oracle Cloud-Infrastruktur.
+ [Amazon Relational Database Service (Amazon RDS) für PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen PostgreSQL-Datenbank in der AWS-Cloud.

## Epen
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-epics"></a>

### Laden Sie Oracle herunter und installieren Sie es GoldenGate
<a name="download-and-install-oracle-goldengate"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie Oracle herunter GoldenGate. | Laden Sie die folgenden Versionen von Oracle herunter GoldenGate:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html)Informationen zum Herunterladen der Software finden Sie unter [ GoldenGate Oracle-Downloads auf der Oracle-Website](https://www.oracle.com/middleware/technologies/goldengate-downloads.html). | DBA | 
| Installieren Sie Oracle GoldenGate für Oracle auf dem Oracle-Datenbankquellserver. | Anweisungen finden Sie in der [ GoldenGate Oracle-Dokumentation](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm). | DBA | 
| Installieren Sie GoldenGate die Oracle for PostgreSQL-Datenbank auf der EC2 Amazon-Instance. | Anweisungen finden Sie in der [ GoldenGate Oracle-Dokumentation](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm). | DBA | 

### Konfigurieren Sie Oracle GoldenGate in den Quell- und Zieldatenbanken
<a name="configure-oracle-goldengate-on-the-source-and-target-databases"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Oracle GoldenGate for Oracle Database in der Quelldatenbank ein. | Anweisungen finden Sie in der [ GoldenGate Oracle-Dokumentation](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/toc.htm).Stellen Sie sicher, dass Sie Folgendes konfigurieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 
| Richten Sie Oracle GoldenGate für PostgreSQL in der Zieldatenbank ein. | Anweisungen finden Sie in [Teil VI Using Oracle GoldenGate for PostgreSQL](https://docs.oracle.com/en/middleware/goldengate/core/19.1/gghdb/using-oracle-goldengate-postgresql.html) auf der Oracle-Website.Stellen Sie sicher, dass Sie Folgendes konfigurieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.html) | DBA | 

### Konfigurieren Sie die Datenerfassung
<a name="configure-the-data-capture"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie den Extraktionsprozess in der Quelldatenbank ein. | Erstellen Sie in der Oracle-Quelldatenbank eine Extraktdatei, um Daten zu extrahieren.Anweisungen finden [Sie unter ADD EXTRACT](https://docs.oracle.com/goldengate/1212/gg-winux/GWURF/ggsci_commands006.htm#GWURF122) in der Oracle-Dokumentation.Die Extraktdatei beinhaltet die Erstellung der Extraktparameterdatei und des Traildateiverzeichnisses. | DBA | 
| Richten Sie eine Datenpumpe ein, um die Trail-Datei von der Quell- zur Zieldatenbank zu übertragen. | Erstellen Sie eine EXTRACT-Parameterdatei und ein Traildateiverzeichnis, indem Sie den Anweisungen in [PARFILE](https://docs.oracle.com/database/121/SUTIL/GUID-7A045C82-5993-44EB-AFAD-B7D39C34BCCD.htm#SUTIL859) in *Database Utilities* auf der Oracle-Website folgen.Weitere Informationen finden Sie unter [Was ist ein Trail](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GUID-88674F53-1E07-4C00-9868-598F82D7113C)? in *Fusion Middleware Understanding Oracle GoldenGate* auf der Oracle-Website. | DBA | 
| Richten Sie die Replikation auf der EC2 Amazon-Instance ein. | Erstellen Sie eine Replikationsparameterdatei und ein Traildateiverzeichnis.Weitere Informationen zum Erstellen von Replikationsparameterdateien finden Sie in Abschnitt [3.5 Validierung einer Parameterdatei](https://docs.oracle.com/en/middleware/goldengate/core/21.3/admin/using-oracle-goldengate-parameter-files.html#GUID-1E32A9AD-25DB-4243-93CD-E643E7116215) in der Oracle Database-Dokumentation.Weitere Informationen zum Erstellen eines Traildateiverzeichnisses finden Sie unter [Creating a Trail](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/creating-trail.html) in der Oracle Cloud-Dokumentation.Stellen Sie sicher, dass Sie der GLOBALS-Datei am Ziel einen Checkpoint-Tabelleneintrag hinzufügen.Weitere Informationen finden Sie unter [Was ist ein Replikat?](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/processes-and-terminology.htm#GGCON-GUID-5EF0326C-9058-4C40-8925-98A223388C95) in *Fusion Middleware Understanding Oracle GoldenGate* auf der Oracle-Website. | DBA | 

### Konfigurieren Sie die Datenreplikation
<a name="configure-the-data-replication"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie in der Quelldatenbank eine Parameterdatei, um Daten für den ersten Ladevorgang zu extrahieren. | Folgen Sie den Anweisungen unter [Eine Parameterdatei in GGSCI erstellen](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) in der Oracle Cloud-Dokumentation.Stellen Sie sicher, dass der Manager auf dem Ziel läuft. | DBA | 
| Erstellen Sie in der Zieldatenbank eine Parameterdatei, um Daten für den ersten Ladevorgang zu replizieren. | Folgen Sie den Anweisungen unter [Eine Parameterdatei in GGSCI erstellen](https://docs.oracle.com/en/cloud/paas/goldengate-cloud/gwuad/using-oracle-goldengate-parameter-files.html#GUID-5C49C522-8B28-4E4B-908D-66A33717CE6C) in der Oracle Cloud-Dokumentation.Stellen Sie sicher, dass Sie den Replicat-Prozess hinzufügen und starten. | DBA | 

### Wechseln Sie zur Amazon RDS-Datenbank für PostgreSQL
<a name="cut-over-to-the-amazon-rds-for-postgresql-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Beenden Sie den Replicat-Prozess und stellen Sie sicher, dass die Quell- und Zieldatenbanken synchronisiert sind. | Vergleichen Sie die Zeilenanzahl zwischen der Quell- und der Zieldatenbank, um sicherzustellen, dass die Datenreplikation erfolgreich war. | DBA | 
| Konfigurieren Sie die Unterstützung für Data Definition Language (DDL). | Führen Sie das DDL-Skript zum Erstellen von Triggern, Sequenzen, Synonymen und Referenzschlüsseln in PostgreSQL aus.Sie können jede Standard-SQL-Clientanwendung verwenden, um eine Verbindung zu einer Datenbank in Ihrem DB-Cluster herzustellen. Sie können beispielsweise [pgAdmin](https://www.pgadmin.org/) verwenden, um eine Verbindung zu Ihrer DB-Instance herzustellen. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate-resources"></a>
+ [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) (*Amazon RDS-Benutzerhandbuch*)
+ [ EC2 Amazon-Dokumentation](https://docs.aws.amazon.com/ec2/)
+ [Von Oracle GoldenGate unterstützte Verarbeitungsmethoden und Datenbanken](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD112) (Oracle-Dokumentation)

# Migrieren Sie eine partitionierte Oracle-Tabelle mithilfe von AWS DMS zu PostgreSQL
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms"></a>

*Saurav Mishra und Eduardo Valentim, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-summary"></a>

Dieses Muster beschreibt, wie das Laden einer partitionierten Tabelle von Oracle nach PostgreSQL mithilfe von AWS Database Migration Service (AWS DMS) beschleunigt werden kann, der keine native Partitionierung unterstützt. Die PostgreSQL-Zieldatenbank kann auf Amazon Elastic Compute Cloud (Amazon EC2) installiert werden, oder es kann sich um eine Amazon Relational Database Service (Amazon RDS) für PostgreSQL oder eine Amazon Aurora PostgreSQL-kompatible Edition-DB-Instance handeln. 

Das Hochladen einer partitionierten Tabelle umfasst die folgenden Schritte:

1. Erstellen Sie eine übergeordnete Tabelle, die der Oracle-Partitionstabelle ähnelt, aber keine Partition enthält.

1. Erstellen Sie untergeordnete Tabellen, die von der übergeordneten Tabelle erben, die Sie in Schritt 1 erstellt haben.

1. Erstellen Sie eine Prozedurfunktion und einen Trigger, um die Einfügungen in der übergeordneten Tabelle zu verarbeiten.

Da der Trigger jedoch bei jeder Einfügung ausgelöst wird, kann das anfängliche Laden mit AWS DMS sehr langsam sein.

Um die anfänglichen Ladevorgänge von Oracle nach PostgreSQL 9.0 zu beschleunigen, erstellt dieses Muster eine separate AWS-DMS-Aufgabe für jede Partition und lädt die entsprechenden untergeordneten Tabellen. Anschließend erstellen Sie während der Umstellung einen Trigger. 

PostgreSQL Version 10 unterstützt native Partitionierung. In einigen Fällen können Sie sich jedoch für die Verwendung der vererbten Partitionierung entscheiden. Weitere Informationen finden Sie im Abschnitt [Zusätzliche Informationen](#migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional).

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle-Quelldatenbank mit einer partitionierten Tabelle
+ Eine PostgreSQL-Datenbank auf AWS

**Produktversionen**
+ PostgreSQL 9.0

## Architektur
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Eine partitionierte Tabelle in Oracle

**Zieltechnologie-Stack**
+ Eine partitionierte Tabelle in PostgreSQL (auf Amazon EC2, Amazon RDS for PostgreSQL oder Aurora PostgreSQL)

**Zielarchitektur**

![\[Partitionierte Tabellendaten in Oracle werden für jede Partition in eine AWS-DMS-Aufgabe und dann in PostgreSQL verschoben.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/7fa2898e-3308-436a-aec8-ab6f680d7bac/images/1b9742ea-a13d-434c-83a7-56686cf76ea0.png)


## Tools
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.

## Epen
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-epics"></a>

### AWS DMS einrichten
<a name="set-up-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Tabellen in PostgreSQL. | Erstellen Sie die übergeordneten und die entsprechenden untergeordneten Tabellen in PostgreSQL mit den erforderlichen Prüfbedingungen für Partitionen. | DBA | 
| Erstellen Sie die AWS DMS-Aufgabe für jede Partition. | Nehmen Sie die Filterbedingung der Partition in die AWS DMS-Aufgabe auf. Ordnen Sie die Partitionen den entsprechenden PostgreSQL-Untertabellen zu. | DBA | 
| Führen Sie die AWS-DMS-Aufgaben mithilfe von Full Load and Change Data Capture (CDC) aus. | Stellen Sie sicher, dass der `StopTaskCachedChangesApplied` Parameter auf eingestellt ist `true` und der `StopTaskCachedChangesNotApplied` Parameter auf eingestellt ist. `false` | DBA | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Beenden Sie die Replikationsaufgaben. | Bevor Sie die Aufgaben beenden, stellen Sie sicher, dass Quelle und Ziel synchron sind. | DBA | 
| Erstellen Sie einen Trigger für die übergeordnete Tabelle. | Da die übergeordnete Tabelle alle Befehle zum Einfügen und Aktualisieren empfängt, sollten Sie einen Trigger erstellen, der diese Befehle auf der Grundlage der Partitionierungsbedingung an die jeweiligen untergeordneten Tabellen weiterleitet. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-resources"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Tabellenpartitionierung (PostgreSQL-Dokumentation)](https://www.postgresql.org/docs/10/ddl-partitioning.html)

## Zusätzliche Informationen
<a name="migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms-additional"></a>

Obwohl PostgreSQL Version 10 die native Partitionierung unterstützt, können Sie sich für die folgenden Anwendungsfälle entscheiden, die vererbte Partitionierung zu verwenden:
+ Die Partitionierung erzwingt die Regel, dass alle Partitionen denselben Satz von Spalten wie die übergeordnete Partition haben müssen, aber die Tabellenvererbung unterstützt untergeordnete Partitionen mit zusätzlichen Spalten.
+ Die Tabellenvererbung unterstützt mehrere Vererbungen.
+ Die deklarative Partitionierung unterstützt nur die Listen- und Bereichspartitionierung. Mit der Tabellenvererbung können Sie die Daten beliebig aufteilen. Wenn der Einschränkungsausschluss Partitionen jedoch nicht effektiv bereinigen kann, wird die Abfrageleistung beeinträchtigt.
+ Einige Operationen benötigen eine stärkere Sperre, wenn deklarative Partitionierung verwendet wird als bei Verwendung der Tabellenvererbung. Zum Beispiel erfordert das Hinzufügen oder Entfernen einer Partition zu oder aus einer partitionierten Tabelle eine `ACCESS EXCLUSIVE` Sperre für die übergeordnete Tabelle, wohingegen eine `SHARE UPDATE EXCLUSIVE` Sperre für die reguläre Vererbung ausreicht.

Wenn Sie separate Jobpartitionen verwenden, können Sie Partitionen auch neu laden, falls Probleme mit der AWS DMS-Validierung auftreten. Führen Sie zur besseren Leistungs- und Replikationskontrolle Aufgaben auf separaten Replikationsinstanzen aus.

# Migrieren Sie von Amazon RDS for Oracle zu Amazon RDS for MySQL
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql"></a>

*Jitender Kumar, Srini Ramaswamy und Neha Sharma, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer Amazon Relational Database Service (Amazon RDS) für Oracle-DB-Instance zu einer Amazon RDS for MySQL MySQL-DB-Instance auf Amazon Web Services (AWS). Das Muster verwendet den AWS Database Migration Service (AWS DMS) und das AWS Schema Conversion Tool (AWS SCT). 

Das Muster bietet bewährte Methoden für den Umgang mit der Migration von gespeicherten Prozeduren. Es behandelt auch Codeänderungen zur Unterstützung der Anwendungsebene. 

## Voraussetzungen und Einschränkungen
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine Amazon RDS for Oracle Oracle-Quelldatenbank.
+ Eine Zieldatenbank von Amazon RDS for MySQL. Quell- und Zieldatenbanken sollten sich in derselben Virtual Private Cloud (VPC) befinden. Wenn Sie mehrere VPCs verwenden oder über die erforderlichen Zugriffsberechtigungen verfügen müssen.
+ Sicherheitsgruppen, die Konnektivität zwischen den Quell- und Zieldatenbanken, AWS SCT, dem Anwendungsserver und AWS DMS ermöglichen.
+ Ein Benutzerkonto mit den erforderlichen Rechten, um AWS SCT in der Quelldatenbank auszuführen.
+ Zusätzliche Protokollierung für die Ausführung von AWS DMS in der Quelldatenbank aktiviert.

**Einschränkungen**
+ Die Größenbeschränkung für die Amazon RDS-Quell- und Zieldatenbank beträgt 64 TB. Informationen zur Größe von Amazon RDS finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html).
+ Oracle unterscheidet bei Datenbankobjekten nicht zwischen Groß- und Kleinschreibung, MySQL jedoch nicht. AWS SCT kann dieses Problem bei der Erstellung eines Objekts lösen. Es ist jedoch ein gewisses Maß an manueller Arbeit erforderlich, um die vollständige Berücksichtigung der Groß- und Kleinschreibung zu gewährleisten.
+ Diese Migration verwendet keine MySQL-Erweiterungen, um Oracle-native Funktionen zu aktivieren. AWS SCT übernimmt den größten Teil der Konvertierung, es sind jedoch einige Arbeiten erforderlich, um den Code manuell zu ändern.
+ Änderungen des JDBC-Treibers (Java Database Connectivity) sind in der Anwendung erforderlich.

**Produktversionen**
+ Amazon RDS for Oracle 12.2.0.1 und höher. Die derzeit unterstützten Versionen von RDS für Oracle finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Concepts.database-versions.html).
+ Amazon RDS for MySQL 8.0.15 und höher. Die derzeit unterstützten Versionen von RDS für MySQL finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html).
+ AWS DMS Version 3.3.0 und höher. Weitere Informationen zu den von AWS DMS unterstützten [Quell- und [Zielendpunkten](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html) finden Sie in der AWS-Dokumentation.
+ AWS SCT Version 1.0.628 und höher.  In der [AWS-Dokumentation finden Sie die AWS-SCT-Support-Matrix für Quell- und Zielendpunkte](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html).

## Architektur
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-architecture"></a>

**Quelltechnologie-Stack**
+ Amazon RDS for Oracle. Weitere Informationen finden Sie unter [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). 

**Zieltechnologie-Stack**
+ Amazon RDS for MySQL. Weitere Informationen finden Sie unter [Verwenden einer MySQL-kompatiblen Datenbank als Ziel für](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) AWS DMS.

**Architektur der Migration**

In der folgenden Abbildung kopiert und konvertiert AWS SCT Schemaobjekte aus der Amazon RDS for Oracle Oracle-Quelldatenbank und sendet die Objekte an die Amazon RDS for MySQL MySQL-Zieldatenbank. AWS DMS repliziert Daten aus der Quelldatenbank und sendet sie an die Amazon RDS for MySQL MySQL-Instance.

![\[AWS SCT, AWS DMS und Amazon RDS werden in einem privaten Subnetz bereitgestellt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e1efa7c2-47c1-4677-80bc-6b19250fc0d6/images/b54a8442-9ab9-4074-b8f6-a08f87fa2f52.jpeg)


## Tools
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-tools"></a>
+ [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud. Dieses Muster verwendet [Amazon RDS for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) und [Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html).
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.

## Epen
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-epics"></a>

### Bereiten Sie sich auf die Migration vor
<a name="prepare-for-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Versionen und Engines der Quell- und Zieldatenbank. |  | DBA | 
|  Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz. |  | DBA, SysAdmin | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, SysAdmin | 
| Wählen Sie den richtigen Instanztyp (Kapazität, Speicherfunktionen, Netzwerkfunktionen). |  | DBA, SysAdmin | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. |  | DBA, SysAdmin  | 
| Wählen Sie eine Strategie für die Anwendungsmigration. | Überlegen Sie, ob Sie eine vollständige oder eine teilweise Ausfallzeit für Umstellungsaktivitäten wünschen. | DBA, Besitzer der SysAdmin App | 

### Infrastruktur konfigurieren
<a name="configure-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine VPC und Subnetze. |  | SysAdmin | 
| Erstellen Sie Sicherheitsgruppen und Netzwerkzugriffskontrolllisten ()ACLs. |  | SysAdmin | 
| Konfigurieren und starten Sie die Amazon RDS for Oracle Oracle-Instance. |  | DBA, SysAdmin | 
| Konfigurieren und starten Sie die Amazon RDS for MySQL MySQL-Instance.  |  | DBA, SysAdmin | 
| Bereiten Sie einen Testfall für die Validierung der Codekonvertierung vor. | Dies hilft beim Testen von Einheiten für den konvertierten Code. | DBA, Entwickler | 
| Konfigurieren Sie die AWS DMS-Instanz. |  |  | 
| Konfigurieren Sie Quell- und Zielendpunkte in AWS DMS. |  |  | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie das Zieldatenbankskript mit AWS SCT. | Überprüfen Sie die Richtigkeit des Codes, der von AWS SCT konvertiert wurde. Einige manuelle Arbeiten sind erforderlich. | DBA, Entwickler | 
| Wählen Sie in AWS SCT die Einstellung „Groß- und Kleinschreibung nicht beachten“. | Wählen Sie in AWS SCT Project Settings, Target Case Sensitivity, Case Insensitive aus. | DBA, Entwickler | 
| Entscheiden Sie sich in AWS SCT dafür, die native Oracle-Funktion nicht zu verwenden. | Überprüfen Sie in den Projekteinstellungen die Funktionen TO\$1 \$1DATECHAR/TO\$1NUMBER/TO. | DBA, Entwickler | 
| Nehmen Sie Änderungen für den Code „sql%notfound“ vor. | Möglicherweise müssen Sie den Code manuell konvertieren. |  | 
| Abfragen von Tabellen und Objekten in gespeicherten Prozeduren (verwenden Sie Abfragen in Kleinbuchstaben). |  | DBA, Entwickler | 
| Erstellen Sie das primäre Skript, nachdem alle Änderungen vorgenommen wurden, und stellen Sie dann das primäre Skript in der Zieldatenbank bereit. |  | DBA, Entwickler | 
| Testen Sie gespeicherte Prozeduren und Anwendungsaufrufen anhand von Beispieldaten.  |  |  | 
| Bereinigen Sie Daten, die während des Komponententests erstellt wurden. |  | DBA, Entwickler | 
| Löschen Sie Fremdschlüsseleinschränkungen für die Zieldatenbank. | Dieser Schritt ist erforderlich, um die Anfangsdaten zu laden. Wenn Sie die Fremdschlüsseleinschränkungen nicht aufheben möchten, müssen Sie eine Migrationsaufgabe für Daten erstellen, die für die Primär- und Sekundärtabellen spezifisch sind. | DBA, Entwickler | 
| Löschen Sie Primärschlüssel und eindeutige Schlüssel in der Zieldatenbank. | Dieser Schritt führt zu einer besseren Leistung beim ersten Laden. | DBA, Entwickler | 
| Aktivieren Sie die zusätzliche Protokollierung in der Quelldatenbank.  |  | DBA | 
| Erstellen Sie eine Migrationsaufgabe für das erste Laden in AWS DMS und führen Sie sie dann aus. | Wählen Sie die Option zur Migration vorhandener Daten. | DBA | 
| Fügen Sie die Primärschlüssel und Fremdschlüssel zur Zieldatenbank hinzu. | Einschränkungen müssen nach dem ersten Laden hinzugefügt werden. | DBA, Entwickler | 
| Erstellen Sie eine Migrationsaufgabe für die laufende Replikation. | Durch die laufende Replikation wird die Zieldatenbank mit der Quelldatenbank synchronisiert. | DBA | 

### Anwendungen migrieren
<a name="migrate-applications"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ersetzen Sie native Oracle-Funktionen durch native MySQL-Funktionen. |  | Besitzer der App | 
| Stellen Sie sicher, dass in SQL-Abfragen nur Namen in Kleinbuchstaben für Datenbankobjekte verwendet werden. |  | DBA SysAdmin, App-Besitzer | 

### Wechseln Sie zur Zieldatenbank
<a name="cut-over-to-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie den Anwendungsserver herunter. |  | Besitzer der App | 
| Stellen Sie sicher, dass die Quell- und Zieldatenbanken synchron sind. |  | DBA, Besitzer der App | 
| Stoppen Sie die Amazon RDS for Oracle DB-Instance. |  | DBA | 
| Beenden Sie die Migrationsaufgabe. | Dies wird automatisch beendet, nachdem Sie den vorherigen Schritt abgeschlossen haben. | DBA | 
| Ändern Sie die JDBC-Verbindung von Oracle zu MySQL. |  | Besitzer der App, DBA | 
| Starten Sie die Anwendung. |  | DBA SysAdmin, App-Besitzer | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, SysAdmin | 
| Erfassen Sie Kennzahlen zur Zeit bis zur Migration, zum Prozentsatz manueller Aufgaben im Vergleich zu Toolaufgaben, zu Kosteneinsparungen usw. |  | DBA, SysAdmin | 
| Stoppen und löschen Sie AWS DMS-Instanzen. |  | DBA | 
| Entfernen Sie die Quell- und Zielendpunkte. |  | DBA | 
| Entfernen Sie Migrationsaufgaben. |  | DBA | 
| Erstellen Sie einen Snapshot der Amazon RDS for Oracle DB-Instance. |  | DBA | 
| Löschen Sie die Amazon RDS for Oracle DB-Instance. |  | DBA | 
| Fahren Sie alle anderen temporären AWS-Ressourcen herunter und löschen Sie sie, die Sie verwendet haben. |  | DBA, SysAdmin | 
| Schließen Sie das Projekt und geben Sie Feedback. |  | DBA | 

## Zugehörige Ressourcen
<a name="migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql-resources"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.html)
+ [Amazon RDS — Preise](https://aws.amazon.com/rds/pricing/)
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migrieren Sie mithilfe von AWS DMS und AWS SCT von IBM Db2 auf Amazon EC2 zu Aurora PostgreSQL-kompatibel
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct"></a>

*Sirsendu Halder und Abhimanyu Chhabra, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer IBM Db2-Datenbank auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance zu einer Amazon Aurora PostgreSQL-kompatiblen Edition-DB-Instance. Dieses Muster verwendet AWS Database Migration Service (AWS DMS) und AWS Schema Conversion Tool (AWS SCT) für die Datenmigration und Schemakonvertierung.

Das Muster zielt auf eine Online-Migrationsstrategie mit geringen oder keinen Ausfallzeiten für eine IBM Db2-Datenbank mit mehreren Terabyte und einer hohen Anzahl von Transaktionen ab. Wir empfehlen, die Spalten in Primärschlüsseln (PKs) und Fremdschlüsseln (FKs) mit dem Datentyp `BIGINT` in `INT` oder in PostgreSQL `NUMERIC` zu konvertieren, um die Leistung zu verbessern. 

## Voraussetzungen und Einschränkungen
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto 
+ Eine IBM Db2-Quelldatenbank auf einer Instance EC2 

**Produktversionen**
+ DB2/LINUXX8664 Version 11.1.4.4 und höher

## Architektur
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack******
+ Eine Db2-Datenbank auf einer Instanz EC2  

**Zieltechnologie-Stack**
+ Eine Aurora PostgreSQL-kompatible DB-Instance der Version 10.18 oder höher

**Architektur der Datenbankmigration******

![\[Verwenden von AWS DMS für die Migration von IMB Db2 auf Amazon EC2 zu Aurora PostgreSQL-kompatibel.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5e737fab-3e04-4887-9fb0-d1c88503b57d/images/789fabcc-8052-40d5-a746-986d799576e9.png)


## Tools
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenbanken in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups. Die Quelldatenbank bleibt während der Migration voll funktionsfähig, wodurch Ausfallzeiten für Anwendungen, die auf die Datenbank angewiesen sind, minimiert werden. Sie können AWS DMS verwenden, um Ihre Daten zu und von den am häufigsten verwendeten kommerziellen und Open-Source-Datenbanken zu migrieren. AWS DMS unterstützt heterogene Migrationen zwischen verschiedenen Datenbankplattformen wie IBM Db2 zur Aurora PostgreSQL-kompatiblen Version 10.18 oder höher. Einzelheiten finden Sie unter [Quellen für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) und [Ziele für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) in der AWS DMS-Dokumentation.
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil der Datenbankcodeobjekte, einschließlich Ansichten, gespeicherten Prozeduren und Funktionen, automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist. Alle Objekte, die nicht automatisch konvertiert werden, sind deutlich gekennzeichnet, sodass sie manuell konvertiert werden können, um die Migration abzuschließen. AWS SCT kann auch den Quellcode der Anwendung nach eingebetteten SQL-Anweisungen scannen und diese konvertieren. 

## Epen
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-epics"></a>

### Richte die Umgebung ein
<a name="set-up-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Aurora PostgreSQL-kompatible DB-Instance. | Folgen Sie den Anweisungen in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html), um die DB-Instance zu erstellen. Wählen Sie als Motortyp **Amazon Aurora**. Wählen Sie als Edition die **Amazon Aurora PostgreSQL-kompatible** Edition.Die Aurora PostgreSQL-kompatible DB-Instance der Version 10.18 oder höher sollte sich in derselben Virtual Private Cloud (VPC) wie die IBM Db2-Quelldatenbank befinden. | Amazon RDS | 

### Konvertieren Sie Ihr Datenbankschema
<a name="convert-your-database-schema"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren und verifizieren Sie AWS SCT. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | AWS-Administrator, DBA, Migrationsingenieur | 
| Starten Sie AWS SCT und erstellen Sie ein Projekt. | Um das AWS SCT-Tool zu starten und ein neues Projekt zur Ausführung eines Bewertungsberichts zur Datenbankmigration zu erstellen, folgen Sie den Anweisungen in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Launching). | Migrationsingenieur | 
| Fügen Sie Datenbankserver hinzu und erstellen Sie eine Zuordnungsregel. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Migrationsingenieur | 
| Erstellen Sie einen Bewertungsbericht zur Datenbankmigration.  | Erstellen Sie den Bewertungsbericht zur Datenbankmigration, indem Sie die Schritte in der [AWS SCT-Dokumentation befolgen](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport). | Migrationsingenieur | 
| Sehen Sie sich den Bewertungsbericht an. | Verwenden Sie die Registerkarte **Zusammenfassung** des Bewertungsberichts zur Datenbankmigration, um den Bericht anzuzeigen und die Daten zu analysieren. Anhand dieser Analyse können Sie die Komplexität der Migration ermitteln. Weitere Informationen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html). | Migrationsingenieur | 
| Konvertiert das Schema. | Um Ihre Quelldatenbankschemas zu konvertieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Weitere Informationen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Converting). | Migrationsingenieur | 
| Wenden Sie das konvertierte Datenbankschema auf die Ziel-DB-Instance an. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html)Weitere Informationen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.ApplyingConversion). | Migrationsingenieur | 

### Migrieren Sie Ihre Daten
<a name="migrate-your-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie eine VPC und DB-Parametergruppen ein.  | Richten Sie eine VPC und DB-Parametergruppen ein und konfigurieren Sie die für die Migration erforderlichen Regeln und Parameter für eingehenden Datenverkehr. Anweisungen finden Sie in der [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Prerequisites.html).Wählen Sie für die VPC-Sicherheitsgruppe sowohl die EC2 Instance für Db2 als auch die Aurora PostgreSQL-kompatible DB-Instance aus. Diese Replikationsinstanz muss sich in derselben VPC wie die Quell- und Ziel-DB-Instances befinden. | Migrationsingenieur | 
| Bereiten Sie Quell- und Ziel-DB-Instances vor. | Bereiten Sie die Quell- und Ziel-DB-Instances für die Migration vor. In einer Produktionsumgebung ist die Quelldatenbank bereits vorhanden.Für die Quelldatenbank muss der Servername das öffentliche Domain Name System (DNS) der EC2 Instanz sein, auf der Db2 läuft. Als Benutzernamen können Sie `db2inst1` gefolgt vom Port verwenden, der für IBM Db2 5000 lautet.  | Ingenieur für Migration | 
| Erstellen Sie einen EC2 Amazon-Client und Endgeräte. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Migrationsingenieur | 
| Erstellen Sie eine Replikationsinstanz. | Erstellen Sie mithilfe der AWS DMS-Konsole eine Replikationsinstanz und geben Sie die Quell- und Zielendpunkte an. Die Replikationsinstanz führt die Datenmigration zwischen den Endpunkten durch. Weitere Informationen finden Sie in [der AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html).  | Migrationsingenieur | 
| Erstellen Sie eine AWS DMS-Aufgabe, um die Daten zu migrieren. | Erstellen Sie eine Aufgabe, um die IBM Db2-Quelltabellen in die PostgreSQL-DB-Zielinstanz zu laden, indem Sie die Schritte in der [AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks) DMS-Dokumentation befolgen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.html) | Ingenieur für Migration | 

## Zugehörige Ressourcen
<a name="migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct-resources"></a>

**Referenzen**
+ [Amazon Aurora Aurora-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html)
+ [Dokumentation zum PostgreSQL Foreign Data Wrapper (FDW)](https://www.postgresql.org/docs/10/postgres-fdw.html) 
+ [Dokumentation zu PostgreSQL IMPORT FOREIGN SCHEMA](https://www.postgresql.org/docs/10/sql-importforeignschema.html) 
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/index.html)  
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 

**Tutorials und Videos**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/) (exemplarische Vorgehensweise)
+ [Einführung in Amazon EC2 — Elastic Cloud Server und Hosting mit AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (Video)

# Migrieren Sie mithilfe von AWS DMS von Oracle 8i oder 9i zu Amazon RDS for PostgreSQL SharePlex
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms"></a>

*Kumar Babu PG, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-summary"></a>

Dieses Muster beschreibt, wie eine lokale Oracle 8i- oder 9i-Datenbank zu Amazon Relational Database Service (Amazon RDS) für PostgreSQL oder Amazon Aurora PostgreSQL migriert wird. AWS Database Migration Service (AWS DMS) unterstützt Oracle 8i oder 9i nicht als Quelle, sodass Quest Daten aus einer lokalen 8i- oder 9i-Datenbank in eine Oracle-Zwischendatenbank (Oracle 10g oder 11g) SharePlex repliziert, die mit AWS DMS kompatibel ist.

Von der Oracle-Zwischeninstanz werden das Schema und die Daten mithilfe des AWS Schema Conversion Tool (AWS SCT) und AWS DMS in die PostgreSQL-Datenbank auf AWS migriert. Diese Methode hilft dabei, ein kontinuierliches Streaming von Daten von der Oracle-Quelldatenbank zur PostgreSQL-DB-Zielinstanz mit minimaler Replikationsverzögerung zu erreichen. In dieser Implementierung ist die Ausfallzeit auf die Zeit begrenzt, die benötigt wird, um alle Fremdschlüssel, Trigger und Sequenzen in der PostgreSQL-Zieldatenbank zu erstellen oder zu validieren.

Die Migration verwendet eine Amazon Elastic Compute Cloud (Amazon EC2) -Instance, auf der Oracle 10g oder 11g installiert ist, um die Änderungen aus der Oracle-Quelldatenbank zu hosten. AWS DMS verwendet diese Oracle-Zwischeninstanz als Quelle, um die Daten an Amazon RDS for PostgreSQL oder Aurora PostgreSQL zu streamen. Die Datenreplikation kann von der lokalen Oracle-Datenbank zur Oracle-Zwischeninstanz angehalten und wieder aufgenommen werden. Es kann auch angehalten und von der Oracle-Zwischeninstanz zur PostgreSQL-Zieldatenbank fortgesetzt werden, sodass Sie die Daten entweder mit der AWS DMS-Datenvalidierung oder einem benutzerdefinierten Datenvalidierungstool validieren können.

## Voraussetzungen und Einschränkungen
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle 8i- oder 9i-Quelldatenbank in einem lokalen Rechenzentrum 
+ AWS Direct Connect, konfiguriert zwischen dem lokalen Rechenzentrum und AWS 
+ Java Database Connectivity (JDBC) -Treiber für AWS SCT-Connectors, die entweder auf einem lokalen Computer oder auf der EC2 Instance installiert sind, auf der AWS SCT installiert ist
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als AWS-DMS-Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Vertrautheit mit [der Verwendung einer PostgreSQL-Datenbank als AWS-DMS-Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ Vertrautheit mit der Quest-Datenreplikation SharePlex 

 

**Einschränkungen**
+ Die maximale Datenbankgröße beträgt 64 TB
+ Bei der lokalen Oracle-Datenbank muss es sich um die Enterprise Edition handeln

 

**Produktversionen**
+ Oracle 8i oder 9i für die Quelldatenbank
+ Oracle 10g oder 11g für die Zwischendatenbank 
+ PostgreSQL 9.6 oder höher

## Architektur
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Oracle 8i- oder 9i-Datenbank 
+ Suche SharePlex 

 

**Zieltechnologie-Stack**
+ Amazon RDS for PostgreSQL oder Aurora PostgreSQL 

** **

**Quell- und Zielarchitektur**

![\[Architecture diagram showing migration from on-premises Oracle database to AWS cloud using various services.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/b6c30668-fc2e-4293-a59a-e01fd151f4bb/images/25082670-0bf3-4b20-8c80-99c6633b046f.png)


## Tools
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-tools"></a>
+ **AWS DMS** — Mit dem [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (AWS DMS) können Sie Datenbanken schnell und sicher migrieren. Die Quelldatenbank bleibt während der Migration voll funktionsfähig, wodurch Ausfallzeiten für Anwendungen, die auf die Datenbank angewiesen sind, minimiert werden. AWS DMS kann Ihre Daten zu und von den am häufigsten verwendeten kommerziellen und Open-Source-Datenbanken migrieren. 
+ **AWS SCT** — Das [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) macht heterogene Datenbankmigrationen vorhersehbar, indem das Quelldatenbankschema und ein Großteil der Datenbankcodeobjekte, einschließlich Ansichten, gespeicherten Prozeduren und Funktionen, automatisch in ein mit der Zieldatenbank kompatibles Format konvertiert werden. Objekte, die nicht automatisch konvertiert werden können, sind deutlich gekennzeichnet, sodass sie manuell konvertiert werden können, um die Migration abzuschließen. AWS SCT kann Ihren Anwendungsquellcode auch nach eingebetteten SQL-Anweisungen scannen und diese im Rahmen eines Datenbankschema-Konvertierungsprojekts konvertieren. Während dieses Prozesses führt AWS SCT eine cloudnative Codeoptimierung durch, indem es ältere Oracle- und SQL Server-Funktionen in ihre AWS-Entsprechungen konvertiert, um Sie bei der Modernisierung Ihrer Anwendungen und der Migration Ihrer Datenbanken zu unterstützen. Wenn die Schemakonvertierung abgeschlossen ist, kann AWS SCT mithilfe integrierter Datenmigrationsagenten bei der Migration von Daten aus einer Reihe von Data Warehouses nach Amazon Redshift helfen.
+ **Quest SharePlex** — [Quest SharePlex](https://www.quest.com/register/120420/?gclid=Cj0KCQiA6IHwBRCJARIsALNjViVSt9fHqAsf9XbWkoCwKKyQqollR_5kSxNhBagh9s3spQT4IQCaVy0aAmCnEALw_wcB) ist ein Oracle-to-Oracle Datenreplikationstool zum Verschieben von Daten mit minimalen Ausfallzeiten und ohne Datenverlust.

## Epen
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-epics"></a>

### Erstellen Sie die EC2 Instanz und installieren Sie Oracle
<a name="create-the-ec2-instance-and-install-oracle"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie das Netzwerk für Amazon ein EC2. | Erstellen Sie die Virtual Private Cloud (VPC), die Subnetze, das Internet-Gateway, die Routing-Tabellen und die Sicherheitsgruppen. | AWS SysAdmin | 
| Erstellen Sie die neue EC2 Instanz. | Wählen Sie das Amazon Machine Image (AMI) für die EC2 Instance aus. Wählen Sie die Instanzgröße und konfigurieren Sie die Instanzdetails: die Anzahl der Instanzen (1), die VPC und das Subnetz aus dem vorherigen Schritt, automatische Zuweisung öffentlicher IP-Adressen und andere Optionen. Fügen Sie Speicher hinzu, konfigurieren Sie Sicherheitsgruppen und starten Sie die Instance. Wenn Sie dazu aufgefordert werden, erstellen und speichern Sie ein key pair für den nächsten Schritt. | AWS SysAdmin | 
| Installieren Sie Oracle auf der EC2 Instanz. | Erwerben Sie die Lizenzen und die erforderlichen Oracle-Binärdateien und installieren Sie Oracle 10g oder 11g auf der Instance. EC2  | DBA | 

### SharePlex Auf einer EC2 Instanz einrichten und Datenreplikation konfigurieren
<a name="set-up-shareplex-on-an-ec2-instance-and-configure-data-replication"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Einrichten SharePlex. | Erstellen Sie eine EC2 Amazon-Instance und installieren Sie die SharePlex Binärdateien, die mit Oracle 8i oder 9i kompatibel sind. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Datenreplikation. | Folgen Sie den SharePlex bewährten Methoden, um die Datenreplikation von einer lokalen Oracle 8i/9i-Datenbank auf eine Oracle 10g/11g-Instanz zu konfigurieren. | DBA | 

### Das Oracle-Datenbankschema nach PostgreSQL konvertieren
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie AWS SCT ein. | Erstellen Sie einen neuen Bericht und stellen Sie dann eine Verbindung zu Oracle als Quelle und PostgreSQL als Ziel her. Öffnen Sie in den Projekteinstellungen die Registerkarte SQL Scripting und ändern Sie das Ziel-SQL-Skript in Mehrere Dateien. | DBA | 
| Konvertiert das Oracle-Datenbankschema. | Wählen Sie auf der Registerkarte Aktion die Optionen Bericht generieren, Schema konvertieren und dann Als SQL speichern aus. | DBA | 
| Ändern Sie die von AWS SCT generierten SQL-Skripts. |  | DBA | 

### Erstellen und konfigurieren Sie die Amazon RDS-DB-Instance
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Amazon RDS-DB-Instance. | Erstellen Sie in der Amazon RDS-Konsole eine neue PostgreSQL-DB-Instance. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die DB-Instance. | Geben Sie die DB-Engine-Version, die DB-Instance-Klasse, die Multi-AZ-Bereitstellung, den Speichertyp und den zugewiesenen Speicher an. Geben Sie die DB-Instance-ID, einen Master-Benutzernamen und ein Master-Passwort ein. | AWS SysAdmin, DBA | 
| Netzwerk und Sicherheit konfigurieren. | Geben Sie die VPC, die Subnetzgruppe, den öffentlichen Zugriff, die Availability Zone-Präferenz und die Sicherheitsgruppen an. | AWS SysAdmin, DBA | 
| Datenbankoptionen konfigurieren. | Geben Sie den Datenbanknamen, den Port, die Parametergruppe, die Verschlüsselung und den Hauptschlüssel an. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Sicherungen. | Geben Sie den Aufbewahrungszeitraum für Backups, das Backup-Fenster, die Startzeit und die Dauer an und ob Tags in Snapshots kopiert werden sollen. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Überwachungsoptionen. | Aktivieren oder deaktivieren Sie erweiterte Überwachungs- und Leistungseinblicke. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Wartungsoptionen. | Geben Sie das auto Upgrade der Nebenversion, das Wartungsfenster sowie den Starttag, die Uhrzeit und die Dauer an. | AWS SysAdmin, DBA | 
| Führen Sie die Skripts vor der Migration von AWS SCT aus. | Führen Sie auf der Amazon RDS-Instance die folgenden Skripts aus: create\$1database.sql, create\$1sequence.sql, create\$1table.sql, create\$1view.sql und create\$1function.sql. | AWS SysAdmin, DBA | 

### Migrieren Sie Daten mithilfe von AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Replikationsinstanz in AWS DMS. | Füllen Sie die Felder für den Namen, die Instance-Klasse, die VPC (wie für die EC2 Instance), Multi-AZ und den öffentlichen Zugriff aus. Geben Sie im Abschnitt für die erweiterte Konfiguration den zugewiesenen Speicher, die Subnetzgruppe, die Availability Zone, die VPC-Sicherheitsgruppen und den AWS Key Management Service (AWS KMS) -Root-Schlüssel an. | AWS SysAdmin, DBA | 
| Erstellen Sie den Endpunkt der Quelldatenbank. | Geben Sie den Endpunktnamen, den Typ, die Quell-Engine (Oracle), den Servernamen (Amazon EC2 Private DNS-Name), den Port, den SSL-Modus, den Benutzernamen, das Passwort, die SID, die VPC (geben Sie die VPC an, die die Replikationsinstanz hat) und die Replikationsinstanz an. Um die Verbindung zu testen, wählen Sie Test ausführen und erstellen Sie dann den Endpunkt. Sie können auch die folgenden erweiterten Einstellungen konfigurieren: maxFileSize und numberDataType Skalieren. | AWS SysAdmin, DBA | 
| Erstellen Sie die AWS DMS-Replikationsaufgabe. | Geben Sie den Namen der Aufgabe, die Replikationsinstanz, die Quell- und Zielendpunkte sowie die Replikationsinstanz an. Wählen Sie als Migrationstyp „Bestehende Daten migrieren und laufende Änderungen replizieren“. Deaktivieren Sie das Kontrollkästchen „Aufgabe beim Erstellen starten“. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Einstellungen für die AWS DMS-Replikationsaufgabe. | Wählen Sie für den Modus zur Vorbereitung der Zieltabelle „Nichts tun“. Beenden Sie die Aufgabe, nachdem der vollständige Ladevorgang abgeschlossen ist, um Primärschlüssel zu erstellen. Geben Sie den eingeschränkten oder vollständigen LOB-Modus an und aktivieren Sie Steuertabellen. Optional können Sie die CommitRate erweiterte Einstellung konfigurieren. | DBA | 
| Konfigurieren Sie die Tabellenzuordnungen. | Erstellen Sie im Abschnitt Tabellenzuordnungen eine Einschlussregel für alle Tabellen in allen Schemas, die in der Migration enthalten sind, und erstellen Sie dann eine Ausschlussregel. Fügen Sie drei Transformationsregeln hinzu, um die Schema-, Tabellen- und Spaltennamen in Kleinbuchstaben umzuwandeln, und fügen Sie alle anderen Regeln hinzu, die für diese spezielle Migration erforderlich sind. | DBA | 
| Starten Sie die -Aufgabe. | Starten Sie die Replikationsaufgabe. Stellen Sie sicher, dass die Volllast läuft. Führen Sie ALTER SYSTEM SWITCH LOGFILE in der primären Oracle-Datenbank aus, um die Aufgabe zu starten. | DBA | 
| Führen Sie die Skripts während der Migration von AWS SCT aus. | Führen Sie in Amazon RDS for PostgreSQL die folgenden Skripts aus: create\$1index.sql und create\$1constraint.sql. | DBA | 
| Starten Sie die Aufgabe neu, um mit der Erfassung von Änderungsdaten (CDC) fortzufahren. | Führen Sie VACUUM in der Amazon RDS for PostgreSQL PostgreSQL-DB-Instance aus und starten Sie die AWS DMS-Aufgabe neu, um die zwischengespeicherten CDC-Änderungen anzuwenden. | DBA | 

### Wechseln Sie zur PostgreSQL-Datenbank
<a name="cut-over-to-the-postgresql-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die AWS-DMS-Protokolle und Metadatentabellen. | Überprüfen Sie alle Fehler und korrigieren Sie sie gegebenenfalls. | DBA | 
| Stoppen Sie alle Oracle-Abhängigkeiten. | Fahren Sie die Listener in der Oracle-Datenbank herunter und führen Sie ALTER SYSTEM SWITCH LOGFILE aus. Beenden Sie die AWS DMS-Aufgabe, wenn keine Aktivität angezeigt wird. | DBA | 
| Führen Sie die Skripts nach der Migration von AWS SCT aus. | Führen Sie in Amazon RDS for PostgreSQL die folgenden Skripts aus: create\$1foreign\$1key\$1constraint.sql und create\$1triggers.sql. | DBA | 
| Führen Sie alle weiteren Schritte von Amazon RDS for PostgreSQL aus. | Inkrementieren Sie die Sequenzen bei Bedarf so, dass sie mit Oracle übereinstimmen, führen Sie VACUUM und ANALYZE aus und erstellen Sie aus Compliance-Gründen einen Snapshot. | DBA | 
| Öffnen Sie die Verbindungen zu Amazon RDS for PostgreSQL. | Entfernen Sie die AWS DMS-Sicherheitsgruppen aus Amazon RDS for PostgreSQL, fügen Sie Produktionssicherheitsgruppen hinzu und verweisen Sie Ihre Anwendungen auf die neue Datenbank. | DBA | 
| Bereinigen Sie die AWS-DMS-Ressourcen. | Entfernen Sie die Endgeräte, Replikationsaufgaben, Replikationsinstanzen und die EC2 Instanz. | SysAdmin, DBA | 

## Zugehörige Ressourcen
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms-resources"></a>
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Preise für Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Verwenden einer PostgreSQL-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) 
+ [ SharePlex Quest-Dokumentation](https://support.quest.com/shareplex/9.0.2/technical-documents)

# Migrieren Sie mithilfe von Materialized Views und AWS DMS von Oracle 8i oder 9i zu Amazon RDS for PostgreSQL
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms"></a>

*Kumar Babu P G und Pragnesh Patel, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-summary"></a>

Dieses Muster beschreibt, wie eine lokale ältere Oracle 8i- oder 9i-Datenbank zu Amazon Relational Database Service (Amazon RDS) for PostgreSQL oder Amazon Aurora PostgreSQL-Compatible Edition migriert wird. 

AWS Database Migration Service (AWS DMS) unterstützt Oracle 8i oder 9i nicht als Quelle. Daher verwendet dieses Muster eine zwischengeschaltete Oracle-Datenbankinstanz, die mit AWS DMS kompatibel ist, wie Oracle 10g oder 11g. Es verwendet auch die Funktion Materialized Views, um Daten von der Oracle 8i/9i-Quellinstanz zur Oracle 10g/11g-Zwischeninstanz zu migrieren.

Das AWS Schema Conversion Tool (AWS SCT) konvertiert das Datenbankschema, und AWS DMS migriert die Daten in die PostgreSQL-Zieldatenbank. 

Dieses Muster hilft Benutzern, die von älteren Oracle-Datenbanken mit minimaler Datenbankausfallzeit migrieren möchten. In dieser Implementierung wäre die Ausfallzeit auf den Zeitraum begrenzt, der benötigt wird, um alle Fremdschlüssel, Trigger und Sequenzen in der Zieldatenbank zu erstellen oder zu validieren. 

Das Muster verwendet Amazon Elastic Compute Cloud (Amazon EC2) -Instances mit einer installierten Oracle 10g/11g-Datenbank, um AWS DMS beim Streamen der Daten zu unterstützen. Sie können die Streaming-Replikation von der lokalen Oracle-Datenbank zur Oracle-Zwischeninstanz vorübergehend unterbrechen, damit AWS DMS die Datenvalidierung catch oder ein anderes Datenvalidierungstool verwenden kann. Die PostgreSQL-DB-Instance und die Oracle-Zwischendatenbank verfügen über dieselben Daten, wenn AWS DMS die Migration der aktuellen Änderungen abgeschlossen hat.

## Voraussetzungen und Einschränkungen
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle 8i- oder 9i-Quelldatenbank in einem lokalen Rechenzentrum 
+ AWS Direct Connect, konfiguriert zwischen dem lokalen Rechenzentrum und AWS
+ Java Database Connectivity (JDBC) -Treiber für AWS SCT-Connectors, die entweder auf einem lokalen Computer oder auf der EC2 Instance installiert sind, auf der AWS SCT installiert ist
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als AWS-DMS-Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Vertrautheit mit [der Verwendung einer PostgreSQL-Datenbank als AWS-DMS-Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

**Einschränkungen**
+ Die maximale Datenbankgröße beträgt 64 TB

**Produktversionen**
+ Oracle 8i oder 9i für die Quelldatenbank
+ Oracle 10g oder 11g für die Zwischendatenbank
+ PostgreSQL 10.17 oder höher

## Architektur
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Oracle 8i- oder 9i-Datenbank 

**Zieltechnologie-Stack**
+ Amazon RDS for PostgreSQL oder Aurora PostgreSQL-kompatibel

**Zielarchitektur**

![\[Architektur für die Migration von einer älteren Oracle-Datenbank zu Amazon RDS oder Aurora\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8add9b21-1b62-46a2-bb8e-0350f36a924a/images/f34f9b0f-f1da-4c27-a385-71b12d16c375.png)


## Tools
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) hilft bei der schnellen und sicheren Migration von Datenbanken. Die Quelldatenbank bleibt während der Migration voll funktionsfähig, wodurch Ausfallzeiten für Anwendungen, die auf die Datenbank angewiesen sind, minimiert werden. AWS DMS kann Ihre Daten zu und von den am häufigsten verwendeten kommerziellen und Open-Source-Datenbanken migrieren. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) konvertiert automatisch das Quelldatenbankschema und einen Großteil der Datenbankcodeobjekte, einschließlich Ansichten, gespeicherten Prozeduren und Funktionen, in ein Format, das mit der Zieldatenbank kompatibel ist. Objekte, die nicht automatisch konvertiert werden können, sind deutlich gekennzeichnet, sodass sie manuell konvertiert werden können, um die Migration abzuschließen. AWS SCT kann Ihren Anwendungsquellcode auch nach eingebetteten SQL-Anweisungen scannen und diese im Rahmen eines Datenbankschema-Konvertierungsprojekts konvertieren. Während dieses Prozesses führt AWS SCT eine Cloud-native Code-Optimierung durch, indem es ältere Oracle- und SQL Server-Funktionen in ihre AWS-Entsprechungen konvertiert, um Sie bei der Modernisierung Ihrer Anwendungen und der Migration Ihrer Datenbanken zu unterstützen. Wenn die Schemakonvertierung abgeschlossen ist, kann AWS SCT mithilfe integrierter Datenmigrationsagenten bei der Migration von Daten aus einer Reihe von Data Warehouses nach Amazon Redshift helfen.  

## Best Practices
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-best-practices"></a>

Bewährte Methoden für die Aktualisierung materialisierter Ansichten finden Sie in der folgenden Oracle-Dokumentation:
+ [Materialisierte Ansichten aktualisieren](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG-GUID-64068234-BDB0-4C12-AE70-75571046A586)
+ [Schnelle Aktualisierung für materialisierte Ansichten](https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG8361)

## Epen
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-epics"></a>

### Installieren Sie Oracle auf einer EC2 Instanz und erstellen Sie materialisierte Ansichten
<a name="install-oracle-on-an-ec2-instance-and-create-materialized-views"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie das Netzwerk für die EC2 Instanz ein. | Erstellen Sie die Virtual Private Cloud (VPC), die Subnetze, das Internet-Gateway, die Routing-Tabellen und die Sicherheitsgruppen. | AWS SysAdmin | 
| Erstellen Sie die EC2 Instanz. | Wählen Sie das Amazon Machine Image (AMI) für die EC2 Instance aus. Wählen Sie die Instanzgröße und konfigurieren Sie die Instanzdetails: die Anzahl der Instanzen (1), die VPC und das Subnetz aus dem vorherigen Schritt, automatische Zuweisung öffentlicher IP-Adressen und andere Optionen. Fügen Sie Speicher hinzu, konfigurieren Sie Sicherheitsgruppen und starten Sie die Instance. Wenn Sie dazu aufgefordert werden, erstellen und speichern Sie ein key pair für den nächsten Schritt. | AWS SysAdmin | 
| Installieren Sie Oracle auf der EC2 Instanz. | Erwerben Sie die Lizenzen und die erforderlichen Oracle-Binärdateien und installieren Sie Oracle 10g oder 11g auf der Instance. EC2  | DBA | 
| Konfigurieren Sie das Oracle-Netzwerk. | Ändern oder fügen Sie Einträge hinzu`listener.ora`, um eine Verbindung zur lokalen Oracle 8i/9i-Quelldatenbank herzustellen, und erstellen Sie dann die Datenbank-Links. | DBA | 
| Erstellen Sie materialisierte Ansichten. | Identifizieren Sie die Datenbankobjekte, die in der Oracle 8i/9i-Quelldatenbank repliziert werden sollen, und erstellen Sie dann mithilfe des Datenbank-Links materialisierte Ansichten für alle Objekte. | DBA | 
| Stellen Sie Skripts bereit, um materialisierte Ansichten in den erforderlichen Intervallen zu aktualisieren. | Entwickeln und implementieren Sie Skripts, um materialisierte Ansichten in den erforderlichen Intervallen auf der Amazon EC2 Oracle 10g/11g-Instance zu aktualisieren. Verwenden Sie die Option „Inkrementelle Aktualisierung“, um Materialized Views zu aktualisieren. | DBA | 

### Das Oracle-Datenbankschema nach PostgreSQL konvertieren
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie AWS SCT ein. | Erstellen Sie einen neuen Bericht und stellen Sie dann eine Verbindung zu Oracle als Quelle und PostgreSQL als Ziel her. Öffnen Sie in den Projekteinstellungen die Registerkarte **SQL Scripting**. Ändern Sie das Ziel-SQL-Skript in **Mehrere Dateien**. (AWS SCT unterstützt keine Oracle 8i/9i-Datenbanken, daher müssen Sie den reinen Schema-Dump auf der Oracle 10g/11g-Zwischeninstanz wiederherstellen und ihn als Quelle für AWS SCT verwenden.) | DBA | 
| Konvertiert das Oracle-Datenbankschema. | Wählen Sie auf der Registerkarte **Aktion** die Optionen **Bericht generieren**, **Schema konvertieren** und dann **Als SQL speichern** aus. | DBA | 
| Ändern Sie die SQL-Skripten. | Nehmen Sie Änderungen auf der Grundlage bewährter Methoden vor. Wechseln Sie beispielsweise zu geeigneten Datentypen und entwickeln Sie PostgreSQL-Äquivalente für Oracle-spezifische Funktionen. | DBA, DevDBA | 

### Erstellen und konfigurieren Sie die Amazon RDS-DB-Instance zum Hosten der konvertierten Datenbank
<a name="create-and-configure-the-amazon-rds-db-instance-to-host-the-converted-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Amazon RDS-DB-Instance. | Erstellen Sie in der Amazon RDS-Konsole eine neue PostgreSQL-DB-Instance. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die DB-Instance. | Geben Sie die DB-Engine-Version, die DB-Instance-Klasse, die Multi-AZ-Bereitstellung, den Speichertyp und den zugewiesenen Speicher an. Geben Sie die DB-Instance-ID, einen Master-Benutzernamen und ein Master-Passwort ein. | AWS SysAdmin, DBA | 
| Konfigurieren Sie Netzwerk und Sicherheit. | Geben Sie die VPC, die Subnetzgruppe, den öffentlichen Zugriff, die Availability Zone-Präferenz und die Sicherheitsgruppen an. | DBA, SysAdmin | 
| Datenbankoptionen konfigurieren. | Geben Sie den Datenbanknamen, den Port, die Parametergruppe, die Verschlüsselung und den Hauptschlüssel an. | DBA, AWS SysAdmin | 
| Konfigurieren Sie die Sicherungen. | Geben Sie den Aufbewahrungszeitraum für Backups, das Backup-Fenster, die Startzeit und die Dauer an und ob Tags in Snapshots kopiert werden sollen. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Überwachungsoptionen. | Aktivieren oder deaktivieren Sie erweiterte Überwachungs- und Leistungseinblicke. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Wartungsoptionen. | Geben Sie das auto Upgrade der Nebenversion, das Wartungsfenster sowie den Starttag, die Uhrzeit und die Dauer an. | AWS SysAdmin, DBA | 
| Führen Sie die Skripts vor der Migration von AWS SCT aus. | Erstellen Sie auf der Amazon RDS for PostgreSQL PostgreSQL-Zielinstanz das Datenbankschema, indem Sie die SQL-Skripts von AWS SCT mit anderen Änderungen verwenden. Dazu können die Ausführung mehrerer Skripts gehören, einschließlich Benutzererstellung, Datenbankerstellung, Schemaerstellung, Tabellen, Ansichten, Funktionen und anderer Codeobjekte. | AWS SysAdmin, DBA | 

### Migrieren Sie Daten mithilfe von AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Replikationsinstanz in AWS DMS. | Füllen Sie die Felder für den Namen, die Instance-Klasse, die VPC (wie für die EC2 Instance), Multi-AZ und den öffentlichen Zugriff aus. Geben Sie im Abschnitt für die erweiterte Konfiguration den zugewiesenen Speicher, die Subnetzgruppe, die Availability Zone, die VPC-Sicherheitsgruppen und den AWS Key Management Service (AWS KMS) -Schlüssel an. | AWS SysAdmin, DBA | 
| Erstellen Sie den Endpunkt der Quelldatenbank. | Geben Sie den Endpunktnamen, den Typ, die Quell-Engine (Oracle), den Servernamen (den privaten DNS-Namen der EC2 Instanz), den Port, den SSL-Modus, den Benutzernamen, das Passwort, die SID, die VPC (geben Sie die VPC an, die die Replikationsinstanz hat) und die Replikationsinstanz an. Um die Verbindung zu testen, wählen Sie **Test ausführen** und erstellen Sie dann den Endpunkt. Sie können auch die folgenden erweiterten Einstellungen konfigurieren: **maxFileSize**und **numberDataTypeSkalieren**. | AWS SysAdmin, DBA | 
| Connect AWS DMS mit Amazon RDS for PostgreSQL. | Erstellen Sie eine Migrationssicherheitsgruppe für Verbindungen zwischen VPCs, falls sich Ihre PostgreSQL-Datenbank in einer anderen VPC befindet. | AWS SysAdmin, DBA | 
| Erstellen Sie den Zieldatenbank-Endpunkt. | Geben Sie den Endpunktnamen, den Typ, die Quell-Engine (PostgreSQL), den Servernamen (Amazon RDS-Endpunkt), den Port, den SSL-Modus, den Benutzernamen, das Passwort, den Datenbanknamen, die VPC (geben Sie die VPC an, die die Replikationsinstanz hat) und die Replikationsinstanz an. Um die Verbindung zu testen, wählen Sie **Test ausführen** und erstellen Sie dann den Endpunkt. Sie können auch die folgenden erweiterten Einstellungen konfigurieren: **maxFileSize**und **numberDataTypeSkalieren**. | AWS SysAdmin, DBA | 
| Erstellen Sie die AWS DMS-Replikationsaufgabe. | Geben Sie den Namen der Aufgabe, die Replikationsinstanz, die Quell- und Zielendpunkte sowie die Replikationsinstanz an. Wählen Sie als Migrationstyp die Option **Bestehende Daten migrieren und laufende Änderungen replizieren aus**. Deaktivieren **Sie das Kontrollkästchen Aufgabe bei Erstellung starten**. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Einstellungen für die AWS DMS-Replikationsaufgabe. | Wählen Sie für den Modus zur Vorbereitung der Zieltabelle die Option **Nichts tun** aus. Beenden Sie die Aufgabe, nachdem der vollständige Ladevorgang abgeschlossen ist (um Primärschlüssel zu erstellen). Geben Sie den eingeschränkten oder vollständigen LOB-Modus an und aktivieren Sie Steuertabellen. Optional können Sie die **CommitRate**erweiterte Einstellung konfigurieren. | DBA | 
| Konfigurieren Sie die Tabellenzuordnungen. | Erstellen Sie im Abschnitt **Tabellenzuordnungen** eine Einschlussregel für alle Tabellen in allen Schemas, die in der Migration enthalten sind, und erstellen Sie dann eine Ausschlussregel. Fügen Sie drei Transformationsregeln hinzu, um die Schema-, Tabellen- und Spaltennamen in Kleinbuchstaben umzuwandeln, und fügen Sie alle anderen Regeln hinzu, die Sie für diese spezielle Migration benötigen. | DBA | 
| Starten Sie die -Aufgabe. | Starten Sie die Replikationsaufgabe. Stellen Sie sicher, dass die Volllast läuft. Führen Sie es `ALTER SYSTEM SWITCH LOGFILE` in der primären Oracle-Datenbank aus, um die Aufgabe zu starten. | DBA | 
| Führen Sie die Skripts während der Migration von AWS SCT aus. | Führen Sie in Amazon RDS for PostgreSQL die folgenden Skripts aus: `create_index.sql` und `create_constraint.sql` (falls das vollständige Schema nicht ursprünglich erstellt wurde). | DBA | 
| Setzen Sie die Aufgabe fort, um mit der Erfassung von Änderungsdaten (CDC) fortzufahren. | Führen Sie die Ausführung `VACUUM` auf der Amazon RDS for PostgreSQL PostgreSQL-DB-Instance aus und starten Sie die AWS-DMS-Aufgabe neu, um zwischengespeicherte CDC-Änderungen anzuwenden. | DBA | 

### Wechseln Sie zur PostgreSQL-Datenbank
<a name="cut-over-to-the-postgresql-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die AWS DMS-Protokolle und Validierungstabellen. | Überprüfen und beheben Sie alle Replikations- oder Validierungsfehler. | DBA | 
| Beenden Sie die Verwendung der lokalen Oracle-Datenbank und ihrer Abhängigkeiten. | Beenden Sie alle Oracle-Abhängigkeiten, fahren Sie die Listener in der Oracle-Datenbank herunter und führen Sie den Vorgang aus. `ALTER SYSTEM SWITCH LOGFILE` Beenden Sie die AWS DMS-Aufgabe, wenn keine Aktivität angezeigt wird. | DBA | 
| Führen Sie die Skripts nach der Migration von AWS SCT aus. | Führen Sie in Amazon RDS for PostgreSQL die folgenden Skripts aus:. `create_foreign_key_constraint.sql and create_triggers.sql` Stellen Sie sicher, dass die Sequenzen auf dem neuesten Stand sind. | DBA | 
| Führen Sie zusätzliche Schritte von Amazon RDS for PostgreSQL aus. | Erhöhen Sie die Sequenzen bei Bedarf, sodass sie mit Oracle übereinstimmen, führen Sie den Vorgang aus `VACUUM` und `ANALYZE` erstellen Sie aus Compliance-Gründen einen Snapshot. | DBA | 
| Öffnen Sie die Verbindungen zu Amazon RDS for PostgreSQL. | Entfernen Sie die AWS DMS-Sicherheitsgruppen aus Amazon RDS for PostgreSQL, fügen Sie Produktionssicherheitsgruppen hinzu und verweisen Sie Ihre Anwendungen auf die neue Datenbank. | DBA | 
| Bereinigen Sie die AWS DMS-Objekte. | Entfernen Sie die Endgeräte, Replikationsaufgaben, Replikationsinstanzen und die EC2 Instanz. | SysAdmin, DBA | 

## Zugehörige Ressourcen
<a name="migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms-resources"></a>
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Preise für Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/)
+ [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Verwenden einer PostgreSQL-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)

# Migrieren Sie mithilfe von AWS DMS und AWS SCT von Oracle auf Amazon EC2 zu Amazon RDS for MySQL
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct"></a>

*Anil Kunapareddy, Amazon Web Services*

*Harshad Gohil, keiner*

## Zusammenfassung
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

Die Verwaltung von Oracle-Datenbanken auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances erfordert Ressourcen und kann kostspielig sein. Das Verschieben dieser Datenbanken in eine Amazon Relational Database Service (Amazon RDS) für MySQL-DB-Instance erleichtert Ihnen die Arbeit, da das gesamte IT-Budget optimiert wird. Amazon RDS for MySQL bietet auch Funktionen wie Multi-AZ, Skalierbarkeit und automatische Backups. 

Dieses Muster führt Sie durch die Migration einer Oracle-Quelldatenbank auf Amazon EC2 zu einer Amazon RDS for MySQL MySQL-DB-Zielinstanz. Es verwendet AWS Database Migration Service (AWS DMS), um die Daten zu migrieren, und das AWS Schema Conversion Tool (AWS SCT), um das Quelldatenbankschema und die Objekte in ein Format zu konvertieren, das mit Amazon RDS for MySQL kompatibel ist. 

## Voraussetzungen und Einschränkungen
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Quelldatenbank, in der Instance- und Listener-Services im ARCHIVELOG-Modus ausgeführt werden
+ Eine Amazon RDS for MySQL MySQL-Zieldatenbank mit ausreichend Speicherplatz für die Datenmigration

**Einschränkungen**
+ AWS DMS erstellt kein Schema in der Zieldatenbank; das müssen Sie tun. Der Schemaname muss für das Ziel bereits vorhanden sein. Tabellen aus dem Quellschema werden in den Benutzer/das Schema importiert, das AWS DMS verwendet, um eine Verbindung mit der Zielinstanz herzustellen. Zum Migrieren von mehreren Schemata müssen Sie mehrere Replikationsaufgaben erstellen. 

**Produktversionen**
+ Alle Oracle-Datenbankeditionen für die Versionen 10.2 und höher, 11g und bis zu 12.2 und 18c. Die aktuelle Liste der unterstützten Versionen finden Sie unter [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) und [Verwenden einer MySQL-kompatiblen Datenbank als Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) für AWS DMS. Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten. Informationen zu den von AWS SCT unterstützten Oracle-Datenbankversionen finden Sie in der [AWS SCT-Dokumentation.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ AWS DMS unterstützt die Versionen 5.5, 5.6 und 5.7 von MySQL. 

## Architektur
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack**
+ Eine Oracle-Datenbank auf einer EC2-Instance  

**Zieltechnologie-Stack**
+ Amazon RDS for MySQL MySQL-DB-Instance

**Architektur der Datenmigration**

![\[Verwenden von AWS DMS für die Migration von Oracle auf Amazon EC2 zu Amazon RDS for MySQL\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/c00f908c-f348-41dd-a31c-3931b990777a.png)


**Quell- und Zielarchitektur**

![\[Verwenden von AWS DMS und AWS SCT für die Migration von Oracle auf Amazon EC2 zu Amazon RDS for MySQL\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8a8e346e-7944-4999-bc11-208efead3792/images/e7ba7ac0-3094-4142-b355-fb192e242432.png)


## Tools
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** — [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) ist ein Webservice, mit dem Sie Daten aus Ihrer lokalen Datenbank, auf einer Amazon RDS-DB-Instance oder in einer Datenbank auf einer EC2-Instance in eine Datenbank in einem AWS-Service wie Amazon RDS for MySQL oder einer EC2-Instance migrieren können. Sie können eine Datenbank auch von einem AWS-Service zu einer lokalen Datenbank migrieren. Sie können Daten zwischen heterogenen oder homogenen Datenbank-Engines migrieren.
+ **AWS SCT** — Das [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) macht heterogene Datenbankmigrationen vorhersehbar, indem das Quelldatenbankschema und ein Großteil der Datenbankcode-Objekte, einschließlich Ansichten, gespeicherten Prozeduren und Funktionen, automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist. Nachdem Sie Ihr Datenbankschema und Ihre Codeobjekte mit AWS SCT konvertiert haben, können Sie AWS DMS verwenden, um Daten von der Quelldatenbank in die Zieldatenbank zu migrieren, um Ihre Migrationsprojekte abzuschließen.

## Epen
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die Versionen und Engines der Quell- und Zieldatenbank. |  | DBA/Entwickler | 
| Identifizieren Sie die DMS-Replikationsinstanz. |  | DBA/Entwickler | 
| Identifizieren Sie Speicheranforderungen wie Speichertyp und Kapazität. |  | DBA/Entwickler | 
| Identifizieren Sie Netzwerkanforderungen wie Latenz und Bandbreite. |  |  DBA/Entwickler | 
| Identifizieren Sie die Hardwareanforderungen für die Quell- und Zielserverinstanzen (basierend auf der Oracle-Kompatibilitätsliste und den Kapazitätsanforderungen). |  | DBA/Entwickler | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für Quell- und Zieldatenbanken. |  | DBA/Entwickler | 
| Installieren Sie die Treiber AWS SCT und Oracle. |  | DBA/Entwickler | 
| Legen Sie eine Backup-Strategie fest. |  | DBA/Entwickler | 
| Ermitteln Sie die Verfügbarkeitsanforderungen. |  | DBA/Entwickler | 
| Identifizieren Sie die Strategie für Anwendungsmigration und Umstellung. |  | DBA/Entwickler | 
| Wählen Sie den richtigen DB-Instance-Typ auf der Grundlage von Kapazität, Speicher und Netzwerkfunktionen aus. |  | DBA/Entwickler | 

### Konfigurieren Sie die Umgebung
<a name="configure-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). Die Quell-, Ziel- und Replikationsinstanz sollten sich in derselben VPC befinden. Es ist auch gut, diese in derselben Availability Zone zu haben. |  | Developer | 
| Erstellen Sie die erforderlichen Sicherheitsgruppen für den Datenbankzugriff. |  |  Developer | 
| Generieren und konfigurieren Sie ein key pair. |  | Developer | 
| Konfigurieren Sie Subnetze, Availability Zones und CIDR-Blöcke. |  | Developer | 

### Konfigurieren Sie die Quelle: Oracle-Datenbank auf der EC2-Instance
<a name="configure-the-source-oracle-database-on-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie Oracle Database auf Amazon EC2 mit den erforderlichen Benutzern und Rollen. |  | DBA | 
|  Führen Sie die drei Schritte in der nächsten Spalte aus, um von außerhalb der EC2-Instance auf Oracle zuzugreifen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.html) | DBA | 
| Wenn Amazon EC2 neu gestartet wird, ändert sich das öffentliche DNS. Stellen Sie sicher, dass Sie das öffentliche DNS von Amazon EC2 in „tnsnames“ und „listener“ aktualisieren oder eine Elastic IP-Adresse verwenden. |  | DBA/Entwickler | 
| Konfigurieren Sie die EC2-Instanz-Sicherheitsgruppe so, dass die Replikationsinstanz und die erforderlichen Clients auf die Quelldatenbank zugreifen können. |  | DBA/Entwickler | 

### Konfigurieren Sie das Ziel: Amazon RDS for MySQL
<a name="configure-the-target-amazon-rds-for-mysql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren und starten Sie die Amazon RDS for MySQL MySQL-DB-Instance. |  | Developer | 
| Erstellen Sie den erforderlichen Tablespace in der Amazon RDS for MySQL MySQL-DB-Instance. |  | DBA | 
| Konfigurieren Sie die Sicherheitsgruppe so, dass die Replikationsinstanz und die erforderlichen Clients auf die Zieldatenbank zugreifen können. |  | Developer | 

### AWS SCT konfigurieren und ein Schema in der Zieldatenbank erstellen
<a name="configure-aws-sct-and-create-a-schema-in-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die Treiber AWS SCT und Oracle. |  | Developer | 
| Geben Sie die entsprechenden Parameter ein und stellen Sie eine Verbindung zur Quelle und zum Ziel her. |  | Developer | 
| Generieren Sie einen Bericht zur Schemakonvertierung. |  | Developer | 
| Korrigieren Sie den Code und das Schema nach Bedarf, insbesondere Tablespaces und Anführungszeichen, und führen Sie die Ausführung in der Zieldatenbank aus. |  |  Developer | 
| Überprüfen Sie das Schema auf Quelle und Ziel, bevor Sie Daten migrieren. |  | Developer | 

### Migrieren Sie Daten mit AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Für Full-Load and Change Data Capture (CDC) oder nur CDC müssen Sie ein zusätzliches Verbindungsattribut festlegen. |  | Developer | 
| Dem in den Definitionen der AWS-DMS-Oracle-Quelldatenbank angegebenen Benutzer müssen alle erforderlichen Rechte gewährt werden. Eine vollständige Liste finden Sie unter https://docs.aws.amazon.com/dms/ latest/userguide/CHAP \$1source.oracle.html \$1CHAP\$1Source .Oracle.Self-Managed. |  | DBA/Entwickler | 
| Aktivieren Sie die zusätzliche Protokollierung in der Quelldatenbank. |  | DBA/Entwickler | 
| Für Full-Load and Change Data Capture (CDC) oder nur CDC aktivieren Sie den ARCHIVELOG-Modus in der Quelldatenbank. |  | DBA | 
| Erstellen Sie Quell- und Zielendpunkte und testen Sie die Verbindungen. |  | Developer | 
| Wenn die Endpunkte erfolgreich verbunden wurden, erstellen Sie eine Replizierungsaufgabe. |  | Developer | 
| Wählen Sie in der Aufgabe nur CDC (oder) Volllast plus CDC aus, um Änderungen nur für die kontinuierliche Replikation zu erfassen (oder) Volllast plus laufende Änderungen. |  | Developer | 
| Führen Sie die Replikationsaufgabe aus und überwachen Sie die CloudWatch Amazon-Protokolle. |  |  Developer | 
| Validieren Sie die Daten in den Quell- und Zieldatenbanken. |  | Developer | 

### Migrieren Sie Ihre Anwendung und schneiden Sie ab
<a name="migrate-your-application-and-cut-over"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie den Schritten für Ihre Strategie zur Anwendungsmigration. |  | DBA, Entwickler, App-Besitzer | 
| Folgen Sie den Schritten für Ihre Strategie zur Umstellung und Umstellung von Anwendungen. |  | DBA, Entwickler, App-Besitzer | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie das Schema und die Daten in Quell- und Zieldatenbanken. |  | DBA/Entwickler | 
| Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zum prozentualen Anteil manueller Änderungen im Vergleich zu Tools, zu Kosteneinsparungen usw. |  |  DBA/Developer/AppOwner | 
| Überprüfen Sie die Projektdokumente und Artefakte. |  | DBA/Developer/AppOwner | 
| Fahren Sie temporäre AWS-Ressourcen herunter. |  | DBA/Entwickler | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  | DBA/Developer/AppOwner | 

## Zugehörige Ressourcen
<a name="migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-resources"></a>
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) 
+ [AWS DMS-Webseite](https://aws.amazon.com/dms/)
+ [AWS DMS-Blogbeiträge](https://aws.amazon.com/blogs/database/tag/dms/) 
+ [Strategien für die Migration von Oracle Database in AWS](https://d1.awsstatic.com/whitepapers/strategies-for-migrating-oracle-database-to-aws.pdf) 
+ [Amazon RDS für Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/) 
+ [Häufig gestellte Fragen zu Oracle](https://aws.amazon.com/oracle/faq/) 
+ [Amazon EC2](https://aws.amazon.com/ec2/) 
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [Lizenzierung von Oracle-Software in der Cloud-Computing-Umgebung](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

# Migrieren Sie mithilfe von AWS DMS und AWS SCT eine Oracle-Datenbank von Amazon EC2 zu Amazon RDS for MariaDB
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct"></a>

*Veeranjaneyulu Grandhi und Vinod Kumar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-summary"></a>

Dieses Muster führt Sie durch die Schritte zur Migration einer Oracle-Datenbank auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance zu einer Amazon Relational Database Service (Amazon RDS) für MariaDB-DB-Instance. Das Muster verwendet AWS Data Migration Service (AWS DMS) für die Datenmigration und das AWS Schema Conversion Tool (AWS SCT) für die Schemakonvertierung. 

Die Verwaltung von Oracle-Datenbanken auf EC2 Instances erfordert mehr Ressourcen und ist kostspieliger als die Verwendung einer Datenbank auf Amazon RDS. Amazon RDS macht es einfach, eine relationale Datenbank in der Cloud einzurichten, zu betreiben und zu skalieren. Amazon RDS bietet kosteneffiziente und anpassbare Kapazität und automatisiert gleichzeitig zeitaufwändige Verwaltungsaufgaben wie Hardwarebereitstellung, Datenbankeinrichtung, Patching und Backups.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine Oracle-Quelldatenbank mit laufenden Instance- und Listener-Services. Diese Datenbank sollte sich im ARCHIVELOG-Modus befinden.
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html).
+ Vertrautheit mit [der Verwendung von Oracle als Quelle für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html).

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 64 TB 

**Produktversionen**
+ Alle Oracle-Datenbankeditionen für die Versionen 10.2 und höher, 11g und bis zu 12.2 und 18c. Die aktuelle Liste der unterstützten Versionen finden Sie unter [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) und in der [AWS SCT-Versionstabelle](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) in der AWS-Dokumentation.
+ Amazon RDS unterstützt die MariaDB Server Community Server-Versionen 10.3, 10.4, 10.5 und 10.6. Die aktuelle Liste der unterstützten Versionen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html).

## Architektur
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack**
+ Eine Oracle-Datenbank auf einer EC2 Instanz

**Zieltechnologie-Stack**
+ Amazon RDS für MariaDB

**Architektur der Datenmigration**

![\[Verwendung von AWS DMS für die Migration.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/ed191145-e5c2-4d61-8827-31f081450c03.png)


**Zielarchitektur**

![\[Verwendung von AWS SCT für die Migration.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0b4269c6-8ea3-4672-ad14-1ffac1dc14f3/images/0171f548-37dd-4110-851c-7e74dfff3732.png)


## Tools
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-tools"></a>
+ Das [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) macht heterogene Datenbankmigrationen vorhersehbar, indem das Quelldatenbankschema und ein Großteil der Datenbankcodeobjekte — einschließlich Ansichten, gespeicherten Prozeduren und Funktionen — automatisch in ein mit der Zieldatenbank kompatibles Format konvertiert werden. Nachdem Sie Ihr Datenbankschema und Ihre Codeobjekte mit AWS SCT konvertiert haben, können Sie AWS DMS verwenden, um Daten von der Quelldatenbank in die Zieldatenbank zu migrieren, um Ihre Migrationsprojekte abzuschließen. Weitere Informationen finden Sie unter [Verwenden von Oracle als Quelle für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) in der AWS SCT-Dokumentation.
+ Mit dem [AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) (AWS DMS) können Sie Datenbanken schnell und sicher zu AWS migrieren. Die Quelldatenbank bleibt während der Migration voll funktionsfähig, wodurch die Ausfallzeiten von Anwendungen, die auf die Datenbank angewiesen sind, minimiert werden. AWS DMS kann Ihre Daten zu und von den am häufigsten verwendeten kommerziellen und Open-Source-Datenbanken migrieren. AWS DMS unterstützt homogene Migrationen wie Oracle zu Oracle sowie heterogene Migrationen zwischen verschiedenen Datenbankplattformen wie Oracle oder Microsoft SQL Server zu Amazon Aurora. Weitere Informationen zur Migration von Oracle-Datenbanken finden Sie unter [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) in der AWS DMS-Dokumentation.

## Epen
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-epics"></a>

### Planen Sie die Migration
<a name="plan-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie Versionen und Datenbank-Engines. | Identifizieren Sie die Versionen und Engines der Quell- und Zieldatenbank. | DBA, Entwickler | 
| Identifizieren Sie die Replikationsinstanz. | Identifizieren Sie die AWS DMS-Replikationsinstanz. | DBA, Entwickler | 
| Identifizieren Sie die Speicheranforderungen. | Identifizieren Sie den Speichertyp und die Kapazität. | DBA, Entwickler | 
| Identifizieren Sie die Netzwerkanforderungen. | Identifizieren Sie die Netzwerklatenz und Bandbreite. | DBA, Entwickler | 
| Identifizieren Sie die Hardwareanforderungen. | Identifizieren Sie die Hardwareanforderungen für die Quell- und Zielserverinstanzen (basierend auf der Oracle-Kompatibilitätsliste und den Kapazitätsanforderungen). | DBA, Entwickler | 
| Identifizieren Sie die Sicherheitsanforderungen. | Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. | DBA, Entwickler | 
| Installieren Sie die Treiber. | Installieren Sie die neuesten AWS SCT- und Oracle-Treiber. | DBA, Entwickler | 
| Legen Sie eine Backup-Strategie fest. |  | DBA, Entwickler | 
| Ermitteln Sie die Verfügbarkeitsanforderungen. |  | DBA, Entwickler | 
| Wählen Sie eine migration/switchover Anwendungsstrategie. |  | DBA, Entwickler | 
| Wählen Sie den -Instance-Typ aus. | Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicher und Netzwerkfunktionen aus. | DBA, Entwickler | 

### Konfigurieren Sie die Umgebung
<a name="configure-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC).  | Die Quell-, Ziel- und Replikationsinstanzen sollten sich in derselben VPC und in derselben Availability Zone befinden (empfohlen). | Developer | 
| Erstellen Sie Sicherheitsgruppen. | Erstellen Sie die erforderlichen Sicherheitsgruppen für den Datenbankzugriff. | Developer | 
| Erzeugen Sie ein Schlüsselpaar. | Generieren und konfigurieren Sie ein key pair. | Developer | 
| Konfigurieren Sie andere Ressourcen. | Konfigurieren Sie Subnetze, Availability Zones und CIDR-Blöcke. | Developer | 

### Konfigurieren Sie die Quelle
<a name="configure-the-source"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie die EC2 Instanz. | Anweisungen finden Sie in der [ EC2 Amazon-Dokumentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html). | Developer | 
| Installieren Sie die Oracle-Datenbank. | Installieren Sie die Oracle-Datenbank auf der EC2 Instanz mit den erforderlichen Benutzern und Rollen. | DBA | 
| Folgen Sie den Schritten in der Aufgabenbeschreibung, um von außerhalb der EC2 Instanz auf Oracle zuzugreifen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.html) | DBA | 
| Aktualisieren Sie das EC2 öffentliche DNS von Amazon. | Nach dem Neustart der EC2 Instance ändert sich das öffentliche DNS. Stellen Sie sicher, dass Sie das EC2 öffentliche DNS von Amazon in `tnsnames` und aktualisieren`listener`, oder verwenden Sie eine Elastic IP-Adresse. | DBA, Entwickler | 
| Konfigurieren Sie die EC2 Instanz-Sicherheitsgruppe. | Konfigurieren Sie die EC2 Instanz-Sicherheitsgruppe so, dass die Replikationsinstanz und die erforderlichen Clients auf die Quelldatenbank zugreifen können. | DBA, Entwickler | 

### Konfiguration der Amazon RDS for MariaDB MariaDB-Zielumgebung
<a name="configure-the-target-amazon-rds-for-mariadb-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie die RDS-DB-Instance. | Konfigurieren und starten Sie die Amazon RDS for MariaDB-DB-Instance. | Developer | 
| Erstellen Sie Tablespaces. | Erstellen Sie alle erforderlichen Tablespaces in der Amazon RDS MariaDB-Datenbank. | DBA | 
| Konfigurieren Sie eine Sicherheitsgruppe. | Konfigurieren Sie eine Sicherheitsgruppe, sodass die Replikationsinstanz und die erforderlichen Clients auf die Zieldatenbank zugreifen können. | Developer | 

### AWS SCT konfigurieren
<a name="configure-aws-sct"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die Treiber. | Installieren Sie die neuesten AWS SCT- und Oracle-Treiber. | Developer | 
| Connect (Verbinden). | Geben Sie die entsprechenden Parameter ein und stellen Sie dann eine Verbindung zur Quelle und zum Ziel her. | Developer | 
| Generieren Sie einen Bericht zur Schemakonvertierung. | Generieren Sie einen Bericht zur AWS-SCT-Schemakonvertierung. | Developer | 
| Korrigieren Sie den Code und das Schema nach Bedarf. | Nehmen Sie alle erforderlichen Korrekturen am Code und am Schema vor (insbesondere an Tablespaces und Anführungszeichen). | DBA, Entwickler | 
| Validieren Sie das Schema. | Überprüfen Sie das Schema auf der Quelle und auf dem Ziel, bevor Sie Daten laden. | Developer | 

### Migrieren Sie Daten mit AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Legen Sie ein Verbindungsattribut fest. | Legen Sie für Volllast und Change Data Capture (CDC) oder nur für CDC ein zusätzliches Verbindungsattribut fest. Weitere Informationen finden Sie in der [Dokumentation zu Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html). | Developer | 
| Aktivieren Sie die zusätzliche Protokollierung. | Aktivieren Sie die zusätzliche Protokollierung in der Quelldatenbank. | DBA, Entwickler | 
| Aktivieren Sie den Archiv-Protokollmodus. | Für Volllast und CDC (oder nur für CDC) aktivieren Sie den Archiv-Log-Modus in der Quelldatenbank. | DBA | 
| Endpunkte erstellen und testen. | Erstellen Sie Quell- und Zielendpunkte und testen Sie die Verbindungen. Weitere Informationen finden Sie in der [Amazon DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | Developer | 
| Erstellen Sie eine Replikationsaufgabe. | Wenn die Endpoints erfolgreich verbunden wurden, erstellen Sie eine Replizierungsaufgabe. Weitere Informationen finden Sie in der [Amazon DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html). | Developer | 
| Wählen Sie den Replikationstyp. | Wählen Sie in der Aufgabe **nur CDC** oder **Volllast plus CDC** aus, um Änderungen nur für die kontinuierliche Replikation bzw. für Volllast und laufende Änderungen zu erfassen. | Developer | 
| Starten und überwachen Sie die Aufgabe. | Starten Sie die Replikationsaufgabe und überwachen Sie die CloudWatch Amazon-Protokolle. Weitere Informationen finden Sie in der [Amazon DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | Developer | 
| Überprüfen Sie die Daten. | Validieren Sie die Daten in den Quell- und Zieldatenbanken. | Developer | 

### Migrieren Sie Anwendungen und wechseln Sie zur Zieldatenbank
<a name="migrate-applications-and-cut-over-to-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der ausgewählten Strategie zur Anwendungsmigration. |  | DBA, App-Besitzer, Entwickler | 
| Folgen Sie der gewählten cutover/switchover Anwendungsstrategie. |  | DBA, App-Besitzer, Entwickler | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie das Schema und die Daten. | Stellen Sie vor Abschluss des Projekts sicher, dass das Schema und die Daten in der Quelle und im Ziel erfolgreich validiert wurden. | DBA, Entwickler | 
| Sammeln Sie Metriken. | Erfassen Sie Kennzahlen zur Zeit bis zur Migration, zum Prozentsatz manueller Aufgaben im Vergleich zu Toolaufgaben, zu Kosteneinsparungen und ähnlichen Kriterien. | DBA, App-Besitzer, Entwickler | 
| Lesen Sie die Dokumentation. | Überprüfen Sie die Projektdokumente und Artefakte. | DBA, App-Besitzer, Entwickler | 
| Ressourcen herunterfahren. | Fahren Sie temporäre AWS-Ressourcen herunter. | DBA, Entwickler | 
| Schließen Sie das Projekt. | Schließen Sie das Migrationsprojekt und geben Sie Feedback. | DBA, App-Besitzer, Entwickler | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct-resources"></a>
+ [Überblick über MariaDB Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html)
+ [Amazon RDS for MariaDB — Produktdetails](https://aws.amazon.com/rds/mariadb/features)
+ [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Strategien für die Migration von Oracle-Datenbanken zu AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html)
+ [Lizenzierung von Oracle-Software in der Cloud-Computing-Umgebung](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)
+ [Amazon RDS für Oracle FAQs](https://aws.amazon.com/rds/oracle/faqs/)
+ [Überblick über AWS DMS](https://aws.amazon.com/dms/)
+ [AWS DMS-Blogbeiträge](https://aws.amazon.com/blogs/database/tag/dms/)
+ [ EC2 Überblick über Amazon](https://aws.amazon.com/ec2/)
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)

# Migrieren Sie eine lokale Oracle-Datenbank mit AWS DMS und AWS SCT zu Amazon RDS for MySQL
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct"></a>

*Sergey Dmitriev und Naresh Damera, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-summary"></a>

Dieses Muster führt Sie durch die Migration einer lokalen Oracle-Datenbank zu einer Amazon Relational Database Service (Amazon RDS) für MySQL-DB-Instance. Es verwendet AWS Database Migration Service (AWS DMS), um die Daten zu migrieren, und das AWS Schema Conversion Tool (AWS SCT), um das Quelldatenbankschema und die Objekte in ein Format zu konvertieren, das mit Amazon RDS for MySQL kompatibel ist. 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle-Quelldatenbank in einem lokalen Rechenzentrum 

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 64 TB

**Produktversionen**
+ Alle Oracle-Datenbankeditionen für die Versionen 11g (Versionen 11.2.0.3.v1 und höher) und bis zu 12.2 und 18c. Die aktuelle Liste der unterstützten Versionen finden Sie unter [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten. Informationen zu den von AWS SCT unterstützten Oracle-Datenbankversionen finden Sie in der [AWS SCT-Dokumentation.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ AWS DMS unterstützt derzeit die MySQL-Versionen 5.5, 5.6 und 5.7. Die aktuelle Liste der unterstützten Versionen finden Sie in der [AWS-Dokumentation unter Verwenden einer MySQL-kompatiblen Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). 

## Architektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Oracle-Datenbank

**Zieltechnologie-Stack**
+ Amazon RDS for MySQL MySQL-DB-Instance

**Architektur der Datenmigration**

![\[AWS Cloud architecture showing data migration from on-premises to RDS via VPC, Internet Gateway, and AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0385e5ad-a1ca-4c29-945b-592321d95f9d/images/c872e033-b13a-4436-b503-0632b5d437ae.png)


 

## Tools
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** — [AWS Database Migration Services](https://docs.aws.amazon.com/dms/latest/userguide/) (AWS DMS) unterstützt Sie bei der Migration von relationalen Datenbanken, Data Warehouses, NoSQL-Datenbanken und anderen Arten von Datenspeichern. Sie können AWS DMS verwenden, um Ihre Daten in die AWS Cloud, zwischen lokalen Instances (über eine AWS Cloud-Einrichtung) oder zwischen Kombinationen aus Cloud und lokalen Einrichtungen zu migrieren.
+ **AWS SCT** — Das [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) wird verwendet, um Ihr Datenbankschema von einer Datenbank-Engine in eine andere zu konvertieren. Der benutzerdefinierte Code, den das Tool konvertiert, umfasst Ansichten, gespeicherte Prozeduren und Funktionen. Jeder Code, den das Tool nicht automatisch konvertieren kann, ist deutlich gekennzeichnet, sodass Sie ihn selbst konvertieren können.

## Epen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Quell- und Zieldatenbankversion und die Engine. |  | DBA | 
|  Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz. |  | DBA, SysAdmin | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, SysAdmin | 
| Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, SysAdmin | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. |  | DBA, SysAdmin  | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. |  | DBA SysAdmin, Besitzer der App | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine virtuelle private Cloud (VPC) und Subnetze. |  | SysAdmin | 
| Erstellen Sie die Sicherheitsgruppen und Netzwerkzugriffskontrolllisten ()ACLs. |  | SysAdmin | 
| Konfigurieren und starten Sie eine Amazon RDS-DB-Instance. |  | DBA, SysAdmin | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie das Datenbankschema mithilfe von AWS SCT. |  | DBA | 
| Migrieren Sie Daten mithilfe von AWS DMS. |  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie AWS SCT, um den SQL-Code im Anwendungscode zu analysieren und zu konvertieren. | Weitere Informationen finden Sie unter https://docs.aws.amazon.com/SchemaConversionTool/ latest/userguide/CHAP \$1Converting.app.html. | Besitzer der App | 
| Folgen Sie der Strategie zur Anwendungsmigration. |  | DBA SysAdmin, Besitzer der App | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. |  | DBA SysAdmin, Besitzer der App | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die temporären AWS-Ressourcen herunter. |  | DBA, SysAdmin | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, SysAdmin | 
| Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zum prozentualen Anteil manueller Daten im Vergleich zu Tools, zu Kosteneinsparungen usw. |  | DBA, SysAdmin | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  |  | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct-related-resources"></a>

**Referenzen**
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/)
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Amazon RDS — Preise](https://aws.amazon.com/rds/pricing/)

**Tutorial und Videos**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (Video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (Video)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Migrieren Sie eine lokale Oracle-Datenbank mithilfe eines Oracle-Bystanders und AWS DMS zu Amazon RDS for PostgreSQL
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms"></a>

*Cady Motyka, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-summary"></a>

Dieses Muster beschreibt, wie Sie eine lokale Oracle-Datenbank mit minimalen Ausfallzeiten auf einen der folgenden PostgreSQL-kompatiblen AWS-Datenbankservices migrieren können:
+ Amazon Relational Database Service (Amazon RDS) für PostgreSQL
+ Amazon Aurora PostgreSQL-Compatible Edition

Die Lösung verwendet den AWS Database Migration Service (AWS DMS) für die Migration der Daten, das AWS Schema Conversion Tool (AWS SCT) für die Konvertierung des Datenbankschemas und eine Oracle-Bystander-Datenbank für die Verwaltung der Migration. Bei dieser Implementierung ist die Ausfallzeit darauf beschränkt, wie lange es dauert, alle Fremdschlüssel in der Datenbank zu erstellen oder zu validieren. 

Die Lösung verwendet auch Amazon Elastic Compute Cloud (Amazon EC2) -Instances mit einer Oracle-Bystander-Datenbank, um den Datenstrom über AWS DMS zu kontrollieren. Sie können die Streaming-Replikation von der lokalen Oracle-Datenbank zum Oracle-Bystander vorübergehend unterbrechen, um AWS DMS zu aktivieren, um die Datenvalidierung catch, oder um ein anderes Datenvalidierungstool zu verwenden. Die Amazon RDS for PostgreSQL PostgreSQL-DB-Instance oder die Aurora PostgreSQL-kompatible DB-Instance und die Bystander-Datenbank verfügen über dieselben Daten, wenn AWS DMS die Migration der aktuellen Änderungen abgeschlossen hat. 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle-Quelldatenbank in einem lokalen Rechenzentrum mit konfigurierter Active Data Guard-Standby-Datenbank
+ AWS Direct Connect, konfiguriert zwischen dem lokalen Rechenzentrum und AWS Secrets Manager zum Speichern der Datenbankgeheimnisse
+ Java Database Connectivity (JDBC) -Treiber für AWS SCT-Konnektoren, installiert entweder auf einem lokalen Computer oder auf der EC2 Instance, auf der AWS SCT installiert ist
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Vertrautheit mit [der Verwendung einer PostgreSQL-Datenbank als Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) für AWS DMS

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 64 TB

**Produktversionen**
+ AWS DMS unterstützt alle Oracle-Datenbankeditionen für die Versionen 10.2 und höher (für Versionen 10.x), 11g und bis zu 12.2, 18c und 19c. Die aktuelle Liste der unterstützten Versionen finden Sie unter [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten. Informationen zu den von AWS SCT unterstützten Oracle-Datenbankversionen finden Sie in der [AWS SCT-Dokumentation.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ AWS DMS unterstützt die PostgreSQL-Versionen 9.4 und höher (für die Versionen 9.x), 10.x, 11.x, 12.x und 13.x. Aktuelle Informationen finden Sie in der [AWS-Dokumentation unter Verwenden einer PostgreSQL-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html).

## Architektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Oracle-Datenbank
+ Eine EC2 Instanz, die einen Zuschauer für die Oracle-Datenbank hält

**Zieltechnologie-Stack**
+ Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-Instance, PostgreSQL 9.3 und höher

**Zielarchitektur**

Das folgende Diagramm zeigt einen Beispiel-Workflow für die Migration einer Oracle-Datenbank zu einer PostgreSQL-kompatiblen AWS-Datenbank mithilfe von AWS DMS und einem Oracle-Bystander:

![\[Migration einer lokalen Oracle-Datenbank zu PostgreSQL auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6f5d5500-8b09-4bd1-8ef9-e670d58d07f8/images/1de98abd-c143-481a-b55f-e8d00eb96a38.png)


## Tools
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.

## Epen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-epics"></a>

### Das Oracle-Datenbankschema nach PostgreSQL konvertieren
<a name="convert-the-oracle-database-schema-to-postgresql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie AWS SCT ein. | Erstellen Sie einen neuen Bericht und stellen Sie eine Verbindung zu Oracle als Quelle und PostgreSQL als Ziel her. Gehen Sie in **den Projekteinstellungen** zur Registerkarte **SQL Scripting**. Ändern Sie das **Ziel-SQL-Skript** in **mehrere Dateien**. Diese Dateien werden später verwendet und haben den folgenden Namen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Konvertiert das Oracle-Datenbankschema. | Wählen Sie auf der Registerkarte **Aktion** die Option **Bericht generieren** aus. Wählen Sie dann **Schema konvertieren** und dann **Als SQL speichern** aus. | DBA | 
| Ändern Sie die Skripts. | Möglicherweise möchten Sie das Skript ändern, wenn eine Zahl im Quellschema in PostgreSQL in ein numerisches Format konvertiert wurde, aber Sie möchten stattdessen **BIGINT** verwenden, um die Leistung zu verbessern. | DBA | 

### Erstellen und konfigurieren Sie die Amazon RDS-DB-Instance
<a name="create-and-configure-the-amazon-rds-db-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Amazon RDS-DB-Instance. | Erstellen Sie in der richtigen AWS-Region eine neue PostgreSQL-DB-Instance. Weitere Informationen finden Sie unter [Erstellen einer PostgreSQL-DB-Instance und Herstellen einer Verbindung zu einer Datenbank auf einer PostgreSQL-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html) in der Amazon RDS-Dokumentation. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Spezifikationen der DB-Instance. | Geben Sie die DB-Engine-Version, die DB-Instance-Klasse, die Multi-AZ-Bereitstellung, den Speichertyp und den zugewiesenen Speicher an. Geben Sie die DB-Instance-ID, einen primären Benutzernamen und ein primäres Passwort ein. | AWS SysAdmin, DBA | 
| Konfigurieren Sie Netzwerk und Sicherheit. | Geben Sie die Virtual Private Cloud (VPC), die Subnetzgruppe, den öffentlichen Zugriff, die Availability Zone-Präferenz und die Sicherheitsgruppen an. | DBA, SysAdmin | 
| Datenbankoptionen konfigurieren. | Geben Sie den Datenbanknamen, den Port, die Parametergruppe, die Verschlüsselung und den KMS-Schlüssel an. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Sicherungen. | Geben Sie den Aufbewahrungszeitraum für Backups, das Backup-Fenster, die Startzeit und die Dauer an und ob Tags in Snapshots kopiert werden sollen. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Überwachungsoptionen. | Aktivieren oder deaktivieren Sie erweiterte Überwachungs- und Leistungseinblicke. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Wartungsoptionen. | Geben Sie das auto Upgrade der Nebenversion, das Wartungsfenster sowie den Starttag, die Uhrzeit und die Dauer an. | AWS SysAdmin, DBA | 
| Führen Sie die Skripts vor der Migration von AWS SCT aus. | Führen Sie auf der Amazon RDS-Instance die folgenden von AWS SCT generierten Skripts aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | AWS SysAdmin, DBA | 

### Konfigurieren Sie den Oracle-Bystander in Amazon EC2
<a name="configure-the-oracle-bystander-in-amazon-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie das Netzwerk für Amazon ein EC2. | Erstellen Sie die neue VPC, Subnetze, Internet-Gateways, Routing-Tabellen und Sicherheitsgruppen. | AWS SysAdmin | 
| Erstellen Sie die EC2 Instanz. | Erstellen Sie in der entsprechenden AWS-Region eine neue EC2 Instance. Wählen Sie das Amazon Machine Image (AMI), wählen Sie die Instance-Größe und konfigurieren Sie die Instance-Details: Anzahl der Instances (1), VPC und Subnetz, die Sie in der vorherigen Aufgabe erstellt haben, automatische Zuweisung öffentlicher IP-Adressen und andere Optionen. Speicher hinzufügen, Sicherheitsgruppen konfigurieren und starten. Wenn Sie dazu aufgefordert werden, erstellen und speichern Sie ein key pair für den nächsten Schritt. | AWS SysAdmin | 
| Connect die Oracle-Quelldatenbank mit der EC2 Instanz. | Kopieren Sie die IPv4 öffentliche IP-Adresse und den DNS in eine Textdatei und stellen Sie mithilfe von SSH wie folgt eine Verbindung her: **ssh -i „your\$1file.pem“ ec2-user@<your-IP** - -DNS>. address-or-public | AWS SysAdmin | 
| Richten Sie den ersten Host für einen Zuschauer in Amazon ein. EC2 | Richten Sie SSH-Schlüssel, Bash-Profil, ORATAB und symbolische Links ein. Erstellen Sie Oracle-Verzeichnisse. | AWS SysAdmin, Linux-Administrator | 
| Richten Sie die Datenbankkopie für einen Zuschauer in Amazon ein EC2 | Verwenden Sie RMAN, um eine Datenbankkopie zu erstellen, die zusätzliche Protokollierung zu aktivieren und die Standby-Steuerdatei zu erstellen. Nachdem der Kopiervorgang abgeschlossen ist, versetzen Sie die Datenbank in den Wiederherstellungsmodus. | AWS SysAdmin, DBA | 
| Richten Sie Oracle Data Guard ein. | Ändern Sie Ihre Datei **listener.ora** und starten Sie den Listener. Richten Sie ein neues Archivziel ein. Versetzen Sie den Zuschauer in den Wiederherstellungsmodus, ersetzen Sie temporäre Dateien, um future Beschädigungen zu vermeiden, installieren Sie bei Bedarf ein Crontab, um zu verhindern, dass dem Archivverzeichnis der Speicherplatz ausgeht, und bearbeiten Sie die **manage-trclog-files-oracle.cfg-Datei** für die Quelle und den Standby-Modus. | AWS SysAdmin, DBA | 
| Bereiten Sie die Oracle-Datenbank für die Versandsynchronisierung vor. | Fügen Sie die Standby-Protokolldateien hinzu und ändern Sie den Wiederherstellungsmodus. Ändern Sie den Protokollversand sowohl auf der primären Quelle als auch auf der Standby-Quelle auf **SYNC AFFIRM**. Schalten Sie die primären Protokolle ein, bestätigen Sie über das Amazon EC2 Bystander Alert Log, dass Sie die Standby-Protokolldateien verwenden, und stellen Sie sicher, dass der Redo-Stream SYNC läuft. | AWS SysAdmin, DBA | 

### Migrieren Sie Daten mit AWS DMS
<a name="migrate-data-with-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Replikationsinstanz in AWS DMS. | Füllen Sie die Felder für den Namen, die Instance-Klasse, die VPC (wie die EC2 Amazon-Instance), Multi-AZ und den öffentlichen Zugriff aus. Geben Sie unter **Advance** den zugewiesenen Speicher, die Subnetzgruppe, die Availability Zone, die VPC-Sicherheitsgruppen und den AWS Key Management Service (AWS KMS) -Schlüssel an. | AWS SysAdmin, DBA | 
| Erstellen Sie den Endpunkt der Quelldatenbank. | Geben Sie den Endpunktnamen, den Typ, die Quell-Engine (Oracle), den Servernamen (Amazon EC2 Private DNS-Name), den Port, den SSL-Modus, den Benutzernamen, das Passwort, die SID, die VPC (geben Sie die VPC an, die die Replikationsinstanz hat) und die Replikationsinstanz an. Um die Verbindung zu testen, wählen Sie **Test ausführen** und erstellen Sie dann den Endpunkt. Sie können auch die folgenden erweiterten Einstellungen konfigurieren: **maxFileSize**und **numberDataTypeSkalieren**. | AWS SysAdmin, DBA | 
| Connect AWS DMS mit Amazon RDS for PostgreSQL. | Erstellen Sie eine Migrationssicherheitsgruppe für Verbindungen zwischen. VPCs | AWS SysAdmin, DBA | 
| Erstellen Sie den Zieldatenbank-Endpunkt. | Geben Sie den Endpunktnamen, den Typ, die Quell-Engine (PostgreSQL), den Servernamen (Amazon RDS-Endpunkt), den Port, den SSL-Modus, den Benutzernamen, das Passwort, den Datenbanknamen, die VPC (geben Sie die VPC an, die die Replikationsinstanz hat) und die Replikationsinstanz an. Um die Verbindung zu testen, wählen Sie **Test ausführen** und erstellen Sie dann den Endpunkt. Sie können auch die folgenden erweiterten Einstellungen konfigurieren: **maxFileSize **und **numberDataTypeSkalieren**. | AWS SysAdmin, DBA | 
| Erstellen Sie die AWS DMS-Replikationsaufgabe. | Geben Sie den Namen der Aufgabe, die Replikationsinstanz, die Quell- und Zielendpunkte sowie die Replikationsinstanz an. Wählen Sie als Migrationstyp die Option **Bestehende Daten migrieren und laufende Änderungen replizieren aus**. Deaktivieren **Sie das Kontrollkästchen Aufgabe bei Erstellung starten**. | AWS SysAdmin, DBA | 
| Konfigurieren Sie die Einstellungen für die AWS DMS-Replikationsaufgabe. | Wählen Sie für den Modus zur Vorbereitung der Zieltabelle die Option **Nichts tun**. Stoppen Sie die Aufgabe nach Abschluss des Vollladevorgangs (um Primärschlüssel zu erstellen). Geben Sie den eingeschränkten oder vollständigen LOB-Modus an und aktivieren Sie die Steuertabellen. Optional können Sie die **CommitRate**erweiterte Einstellung konfigurieren. | DBA | 
| Konfigurieren Sie Tabellenzuordnungen. | **Erstellen Sie im Abschnitt **Tabellenzuordnungen** eine Einschlussregel für alle Tabellen in allen Schemas, die in der Migration enthalten **sind**, und erstellen Sie dann eine Ausschlussregel.** Fügen Sie drei Transformationsregeln hinzu, um die Schema-, Tabellen- und Spaltennamen in Kleinbuchstaben umzuwandeln, und fügen Sie alle anderen Regeln hinzu, die für diese spezielle Migration erforderlich sind. | DBA | 
| Starten Sie die -Aufgabe. | Starten Sie die Replikationsaufgabe. Stellen Sie sicher, dass die Volllast läuft. Führen Sie **ALTER SYSTEM SWITCH LOGFILE** in der primären Oracle-Datenbank aus, um die Aufgabe zu starten. | DBA | 
| Führen Sie die Skripts während der Migration von AWS SCT aus. | Führen Sie in Amazon RDS for PostgreSQL die folgenden von AWS SCT generierten Skripts aus: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Starten Sie die Aufgabe neu, um mit der Erfassung von Änderungsdaten (CDC) fortzufahren. | Führen Sie **VACUUM** auf der Amazon RDS for PostgreSQL PostgreSQL-DB-Instance aus und starten Sie die AWS DMS-Aufgabe neu, um zwischengespeicherte CDC-Änderungen anzuwenden. | DBA | 

### Wechseln Sie zur PostgreSQL-Datenbank
<a name="cut-over-to-the-postgresql-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die AWS DMS-Protokolle und Validierungstabellen auf Fehler. | Überprüfen und beheben Sie alle Replikations- oder Validierungsfehler. | DBA | 
| Stoppen Sie alle Oracle-Abhängigkeiten. | Stoppen Sie alle Oracle-Abhängigkeiten, fahren Sie die Listener in der Oracle-Datenbank herunter und führen Sie **ALTER SYSTEM SWITCH LOGFILE** aus. Beenden Sie die AWS DMS-Aufgabe, wenn keine Aktivität angezeigt wird. | DBA | 
| Führen Sie die Skripts nach der Migration von AWS SCT aus. | Führen Sie in Amazon RDS for PostgreSQL die folgenden von AWS SCT generierten Skripts aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.html) | DBA | 
| Führen Sie zusätzliche Schritte von Amazon RDS for PostgreSQL aus. | Inkrementieren Sie die Sequenzen bei Bedarf so, dass sie mit Oracle übereinstimmen, führen Sie **VACUUM** und **ANALYZE** aus und erstellen Sie aus Compliance-Gründen einen Snapshot. | DBA | 
| Öffnen Sie die Verbindungen zu Amazon RDS for PostgreSQL. | Entfernen Sie die AWS DMS-Sicherheitsgruppen aus Amazon RDS for PostgreSQL, fügen Sie Produktionssicherheitsgruppen hinzu und verweisen Sie Ihre Anwendungen auf die neue Datenbank. | DBA | 
| Bereinigen Sie AWS DMS-Objekte. | Entfernen Sie die Endgeräte, Replikationsaufgaben, Replikationsinstanzen und die EC2 Instanz. | SysAdmin, DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms-resources"></a>
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/)
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Preise für Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/pricing/) 

# Migrieren Sie eine Oracle-Datenbank mit AWS DMS und AWS SCT zu Amazon Redshift
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct"></a>

*Piyush Goyal und Brian Motzer, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-summary"></a>

Dieses Muster bietet Anleitungen für die Migration von Oracle-Datenbanken zu einem Amazon Redshift Cloud Data Warehouse in der Amazon Web Services (AWS) -Cloud mithilfe von AWS Database Migration Service (AWS DMS) und AWS Schema Conversion Tool (AWS SCT). Das Muster deckt Oracle-Quelldatenbanken ab, die lokal installiert oder auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance installiert sind. Es behandelt auch Amazon Relational Database Service (Amazon RDS) für Oracle-Datenbanken.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-prereqs"></a>

**Voraussetzungen**
+ Eine Oracle-Datenbank, die in einem lokalen Rechenzentrum oder in der AWS-Cloud läuft
+ Ein aktives AWS-Konto
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Vertrautheit mit [der Verwendung einer Amazon Redshift Redshift-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html)
+ Kenntnisse über Amazon RDS, Amazon Redshift, die anwendbaren Datenbanktechnologien und SQL
+ Java Database Connectivity (JDBC) -Treiber für AWS SCT-Konnektoren, auf denen AWS SCT installiert ist

**Produktversionen**
+ Für selbstverwaltete Oracle-Datenbanken unterstützt AWS DMS alle Oracle-Datenbankeditionen für Versionen 10.2 und höher (für Versionen 10. *x*), 11g und bis zu 12.2, 18c und 19c. Für Amazon RDS for Oracle Oracle-Datenbanken, die AWS verwaltet, unterstützt AWS DMS alle Oracle-Datenbankeditionen für die Versionen 11g (Versionen 11.2.0.4 und höher) und bis zu 12.2, 18c und 19c. Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten.

## Architektur
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack**

Eine der beiden folgenden Komponenten:
+ Eine lokale Oracle-Datenbank
+ Eine Oracle-Datenbank auf einer Instanz EC2 
+ Eine Amazon RDS for Oracle Oracle-DB-Instance

**Zieltechnologie-Stack**
+ Amazon Redshift

**Zielarchitektur**

*Von einer Oracle-Datenbank, die in der AWS-Cloud läuft, zu Amazon Redshift:*

![\[Migration einer Oracle-Datenbank in der AWS-Cloud zu einem Amazon Redshift Redshift-Data Warehouse.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/7140e819-81d6-45c4-805b-8e10828076a7.png)


*Von einer Oracle-Datenbank, die in einem lokalen Rechenzentrum läuft, zu Amazon Redshift:*

![\[Migration einer lokalen Oracle-Datenbank zu einem Amazon Redshift Data Warehouse.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/22807be0-c7e0-49c6-8923-7d23bf83a50d/images/d6654b48-0e1b-4b01-a261-5a640be01fd7.png)


## Tools
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) — AWS Data Migration Service (AWS DMS) hilft Ihnen, Datenbanken schnell und sicher zu AWS zu migrieren. Die Quelldatenbank bleibt während der Migration voll funktionsfähig, wodurch Ausfallzeiten für Anwendungen, die auf die Datenbank angewiesen sind, minimiert werden. AWS DMS kann Ihre Daten zu und von den am häufigsten verwendeten kommerziellen und Open-Source-Datenbanken migrieren. 
+ [AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) — Das AWS Schema Conversion Tool (AWS SCT) kann verwendet werden, um Ihr vorhandenes Datenbankschema von einer Datenbank-Engine in eine andere zu konvertieren. Es unterstützt verschiedene Datenbank-Engines, darunter Oracle, SQL Server und PostgresSQL, als Quellen.

## Epen
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-epics"></a>

### Bereite dich auf die Migration vor
<a name="prepare-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Datenbankversionen. | Überprüfen Sie die Quell- und Zieldatenbankversionen und stellen Sie sicher, dass sie von AWS DMS unterstützt werden. Informationen zu unterstützten Oracle-Datenbankversionen finden Sie unter [Eine Oracle-Datenbank als Quelle für AWS DMS verwenden](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Informationen zur Verwendung von Amazon Redshift als Ziel finden Sie unter [Verwenden einer Amazon Redshift Redshift-Datenbank als Ziel für AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html) DMS. | DBA | 
| Erstellen Sie eine VPC und eine Sicherheitsgruppe. | Erstellen Sie in Ihrem AWS-Konto eine Virtual Private Cloud (VPC), falls diese nicht existiert. Erstellen Sie eine Sicherheitsgruppe für ausgehenden Datenverkehr zu Quell- und Zieldatenbanken. Weitere Informationen finden Sie in der [Dokumentation zu Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html). | Systemadministrator | 
| Installieren Sie AWS SCT. | Laden Sie die neueste Version von AWS SCT und die entsprechenden Treiber herunter und installieren Sie sie. Weitere Informationen finden Sie unter [Installation, Überprüfung und Aktualisierung des AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html). | DBA | 
| Erstellen Sie einen Benutzer für die AWS DMS-Aufgabe. | Erstellen Sie einen AWS DMS-Benutzer in der Quelldatenbank und gewähren Sie ihm READ-Rechte. Dieser Benutzer wird sowohl von AWS SCT als auch von AWS DMS verwendet. | DBA | 
| Testen Sie die DB-Konnektivität. | Testen Sie die Konnektivität zur Oracle-DB-Instance. | DBA | 
| Erstellen Sie ein neues Projekt in AWS-SCT. | Öffnen Sie das AWS SCT-Tool und erstellen Sie ein neues Projekt. | DBA | 
| Analysieren Sie das zu migrierende Oracle-Schema. | Verwenden Sie AWS SCT, um das zu migrierende Schema zu analysieren und einen Bewertungsbericht zur Datenbankmigration zu erstellen. Weitere Informationen finden Sie unter [Erstellen eines Bewertungsberichts zur Datenbankmigration](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.Create.html) in der AWS SCT-Dokumentation. | DBA | 
| Überprüfen Sie den Bewertungsbericht. | Überprüfen Sie den Bericht auf die Durchführbarkeit der Migration. Einige DB-Objekte müssen möglicherweise manuell konvertiert werden. Weitere Informationen zum Bericht finden Sie unter [Bewertungsbericht anzeigen](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.View.html) in der AWS SCT-Dokumentation. | DBA | 

### Bereiten Sie die Zieldatenbank vor
<a name="prepare-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Amazon Redshift Redshift-Cluster. | Erstellen Sie einen Amazon Redshift Redshift-Cluster in der VPC, die Sie zuvor erstellt haben. Weitere Informationen finden Sie unter [Amazon Redshift Redshift-Cluster](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-clusters.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 
| Datenbankbenutzer erstellen. | Extrahieren Sie die Liste der Benutzer, Rollen und Berechtigungen aus der Oracle-Quelldatenbank. Erstellen Sie Benutzer in der Amazon Redshift Redshift-Zieldatenbank und wenden Sie die Rollen aus dem vorherigen Schritt an. | DBA | 
| Evaluieren Sie Datenbankparameter. | Überprüfen Sie die Datenbankoptionen, Parameter, Netzwerkdateien und Datenbank-Links aus der Oracle-Quelldatenbank und bewerten Sie deren Anwendbarkeit auf das Ziel.             | DBA | 
| Wenden Sie alle relevanten Einstellungen auf das Ziel an.  | Weitere Informationen zu diesem Schritt finden Sie unter [Konfigurationsreferenz](https://docs.aws.amazon.com/redshift/latest/dg/cm_chap_ConfigurationRef.html) in der Amazon Redshift Redshift-Dokumentation. | DBA | 

### Objekte in der Zieldatenbank erstellen
<a name="create-objects-in-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen AWS DMS-Benutzer in der Zieldatenbank. | Erstellen Sie einen AWS DMS-Benutzer in der Zieldatenbank und gewähren Sie ihm Lese- und Schreibberechtigungen. Überprüfen Sie die Konnektivität von AWS SCT. | DBA | 
| Konvertieren Sie das Schema, überprüfen Sie den SQL-Bericht und speichern Sie alle Fehler oder Warnungen. | Weitere Informationen finden Sie unter [Konvertieren von Datenbankschemas mithilfe von AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html) in der AWS SCT-Dokumentation. | DBA | 
| Wenden Sie die Schemaänderungen auf die Zieldatenbank an oder speichern Sie sie als.sql-Datei. | Anweisungen finden Sie unter [Speichern und Anwenden Ihres konvertierten Schemas im AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.DW.html#CHAP_Converting.DW.SaveAndApply) in der AWS SCT-Dokumentation. | DBA | 
| Validieren Sie die Objekte in der Zieldatenbank. | Validieren Sie die Objekte, die im vorherigen Schritt in der Zieldatenbank erstellt wurden. Schreiben Sie alle Objekte, die nicht erfolgreich konvertiert wurden, neu oder entwerfen Sie sie neu. | DBA | 
| Deaktivieren Sie Fremdschlüssel und Trigger. | Deaktivieren Sie alle Fremdschlüssel und Trigger. Diese können zu Problemen beim Laden von Daten während des Vollladevorgangs führen, wenn AWS DMS ausgeführt wird. | DBA | 

### Migrieren Sie Daten mit AWS DMS
<a name="migrate-data-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine AWS DMS-Replikations-Instance. | Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die AWS DMS-Konsole. Wählen Sie im Navigationsbereich **Replikationsinstanzen, Replikationsinstanz** **erstellen** aus. Eine ausführliche Anleitung finden Sie in [Schritt 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance) unter *Erste Schritte mit AWS DMS* in der AWS DMS-Dokumentation. | DBA | 
| Erstellen Sie Quell- und Zielendpunkte. | Erstellen Sie Quell- und Zielendpunkte und testen Sie die Verbindung zwischen der Replikationsinstanz und den Quell- und Zielendpunkten. Eine ausführliche Anleitung finden Sie in [Schritt 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints) unter *Erste Schritte mit AWS DMS* in der AWS DMS-Dokumentation. | DBA | 
| Erstellen Sie eine Replikationsaufgabe. | Erstellen Sie eine Replikationsaufgabe und wählen Sie die entsprechende Migrationsmethode aus. Eine ausführliche Anleitung finden Sie in [Schritt 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks) unter *Erste Schritte mit AWS DMS* in der AWS DMS-Dokumentation. | DBA | 
| Starten Sie die Datenreplikation. | Starten Sie die Replikationsaufgabe und überwachen Sie die Protokolle auf Fehler. | DBA | 

### Migrieren Sie Ihre Anwendung
<a name="migrate-your-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Anwendungsserver. | Erstellen Sie die neuen Anwendungsserver auf AWS. | Besitzer der Anwendung | 
| Migrieren Sie den Anwendungscode. | Migrieren Sie den Anwendungscode auf die neuen Server. | Besitzer der Anwendung | 
| Konfigurieren Sie den Anwendungsserver. | Konfigurieren Sie den Anwendungsserver für die Zieldatenbank und die Treiber. | Besitzer der Anwendung | 
| Optimieren Sie den Anwendungscode. | Optimieren Sie den Anwendungscode für die Ziel-Engine. | Besitzer der Anwendung | 

### Wechseln Sie zur Zieldatenbank
<a name="cut-over-to-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Benutzer validieren. | Validieren Sie Benutzer in der Amazon Redshift Redshift-Zieldatenbank und gewähren Sie ihnen Rollen und Rechte. | DBA | 
| Stellen Sie sicher, dass die Anwendung gesperrt ist. | Stellen Sie sicher, dass die Anwendung gesperrt ist, um weitere Änderungen zu verhindern. | Besitzer der Anwendung | 
| Validieren Sie die Daten. | Überprüfen Sie die Daten in der Amazon Redshift Redshift-Zieldatenbank. | DBA | 
| Aktivieren Sie Fremdschlüssel und Trigger. | Aktivieren Sie Fremdschlüssel und Trigger in der Amazon Redshift Redshift-Zieldatenbank. | DBA | 
| Connect der neuen Datenbank her. | Konfigurieren Sie die Anwendung für die Verbindung mit der neuen Amazon Redshift Redshift-Datenbank. | Besitzer der Anwendung | 
| Führen Sie die letzten Prüfungen durch. | Führen Sie vor der Inbetriebnahme eine letzte, umfassende Systemüberprüfung durch. | DBA, Besitzer der Anwendung | 
| Geh live. | Gehen Sie mit der Amazon Redshift Redshift-Zieldatenbank live. | DBA | 

### Schließen Sie das Migrationsprojekt
<a name="close-the-migration-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS-Ressourcen herunter. | Fahren Sie temporäre AWS-Ressourcen wie die AWS DMS-Replikationsinstanz und die für AWS SCT verwendete EC2 Instanz herunter.  | DBA, Systemadministrator | 
| Dokumente überprüfen.  | Überprüfen und validieren Sie die Dokumente des Migrationsprojekts.     | DBA, Systemadministrator | 
| Sammeln Sie Metriken. | Sammeln Sie Informationen über das Migrationsprojekt, z. B. die Zeit für die Migration, den Prozentsatz manueller Aufgaben im Vergleich zu den Toolaufgaben und die Gesamtkosteneinsparungen.  | DBA, Systemadministrator | 
| Schließt das Projekt ab. | Schließen Sie das Projekt ab und geben Sie Feedback. | DBA, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct-resources"></a>

**Referenzen**
+ [AWS DMS-Benutzerhandbuch](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [AWS SCT-Benutzerhandbuch](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Leitfaden „Erste Schritte“ mit Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

**Tutorials und Videos**
+ [Tauchen Sie tief in AWS SCT und AWS DMS](https://www.youtube.com/watch?v=kJs9U4ys5FE) ein (Präsentation von AWS re:Invent 2019)
+ [Erste Schritte mit dem AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)

# Migrieren Sie eine Oracle-Datenbank mit AWS DMS und AWS SCT zu Aurora PostgreSQL
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct"></a>

*Senthil Ramasamy, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-summary"></a>

Dieses Muster beschreibt, wie eine Oracle-Datenbank mithilfe von AWS Data Migration Service (AWS DMS) und AWS Schema Conversion Tool (AWS SCT) zu Amazon Aurora PostgreSQL-Compatible Edition migriert wird. 

Das Muster umfasst Oracle-Quelldatenbanken, die sich vor Ort befinden, Oracle-Datenbanken, die auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances installiert sind, und Amazon Relational Database Service (Amazon RDS) für Oracle-Datenbanken. Das Muster konvertiert diese Datenbanken in Aurora PostgreSQL-kompatible Datenbanken.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine Oracle-Datenbank in einem lokalen Rechenzentrum oder in der AWS-Cloud.
+ SQL-Clients, die entweder auf einem lokalen Computer oder auf einer EC2 Instanz installiert sind.
+ Java Database Connectivity (JDBC) -Treiber für AWS SCT-Konnektoren, die entweder auf einem lokalen Computer oder einer EC2 Instance installiert sind, auf der AWS SCT installiert ist. 

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 128 TB 
+ Wenn die Quelldatenbank eine kommerzielle off-the-shelf (COTS) Anwendung unterstützt oder herstellerspezifisch ist, können Sie sie möglicherweise nicht in eine andere Datenbank-Engine konvertieren. Stellen Sie vor der Verwendung dieses Musters sicher, dass die Anwendung Aurora PostgreSQL-kompatibel unterstützt.  

**Versionen der Produkte**
+ Für selbstverwaltete Oracle-Datenbanken unterstützt AWS DMS alle Oracle-Datenbankeditionen für die Versionen 10.2 und höher (für Versionen 10.x), 11g und bis zu 12.2, 18c und 19c. Die aktuelle Liste der unterstützten Oracle-Datenbankversionen (sowohl selbstverwaltete als auch Amazon RDS for Oracle) finden Sie unter [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) und [Verwenden einer PostgreSQL-Datenbank als Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) für AWS DMS. 
+ Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten. Informationen zu den von AWS SCT unterstützten Oracle-Datenbankversionen finden Sie in der [AWS SCT-Dokumentation.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ Aurora unterstützt die in den [Amazon Aurora PostgreSQL-Versionen und Engine-Versionen aufgeführten PostgreSQL-Versionen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html).

## Architektur
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack**

Eine der beiden folgenden Komponenten:
+ Eine lokale Oracle-Datenbank
+ Eine Oracle-Datenbank auf einer Instanz EC2  
+ Eine Amazon RDS for Oracle Oracle-DB-Instance

**Zieltechnologie-Stack**
+ Aurora PostgreSQL-kompatibel 

**Zielarchitektur**

![\[Zielarchitektur für die Migration von Oracle-Datenbanken nach Aurora PostgreSQL-kompatibel.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/68beb634-926e-4908-97b1-edcd23e06a2b.png)


**Architektur der Datenmigration**
+ Aus einer Oracle-Datenbank, die in der AWS-Cloud läuft   
![\[Datenmigrationsarchitektur für eine Oracle-Datenbank auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/7fc32019-3db1-485b-93e5-6d5539be048c.png)

   
+ Aus einer Oracle-Datenbank, die in einem lokalen Rechenzentrum läuft  
![\[Datenmigrationsarchitektur für eine Oracle-Datenbank in einem lokalen Rechenzentrum.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6de157c4-dcc9-4186-ae32-17efbbbee709/images/c70d8774-aef7-4414-9766-ce8f25757c4b.png)

## Tools
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein mit der Zieldatenbank kompatibles Format konvertiert werden.

## Epen
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-epics"></a>

### Bereite dich auf die Migration vor
<a name="prepare-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die Quelldatenbank vor. | Informationen zur Vorbereitung der Quelldatenbank finden Sie [unter Verwenden von Oracle Database als Quelle für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html) in der AWS SCT-Dokumentation. | DBA | 
| Erstellen Sie eine EC2 Instanz für AWS SCT. | Erstellen und konfigurieren Sie bei Bedarf eine EC2 Instanz für AWS SCT. | DBA | 
| Laden Sie AWS SCT herunter. | Laden Sie die neueste Version von AWS SCT und die zugehörigen Treiber herunter. Weitere Informationen finden Sie unter [Installation, Überprüfung und Aktualisierung von AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html) in der AWS SCT-Dokumentation. | DBA | 
| Fügen Sie Benutzer und Berechtigungen hinzu. | Fügen Sie die erforderlichen Benutzer und Berechtigungen in der Quelldatenbank hinzu und überprüfen Sie sie. | DBA | 
| Erstellen Sie ein AWS SCT-Projekt. | Erstellen Sie ein AWS SCT-Projekt für den Workload und stellen Sie eine Verbindung zur Quelldatenbank her. Anweisungen finden Sie in der [AWS SCT-Dokumentation unter Erstellen eines AWS-SCT-Projekts](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.Project) und [Hinzufügen von Datenbankservern](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers). | DBA | 
| Beurteilen Sie die Machbarkeit. | Generieren Sie einen Bewertungsbericht, der Aktionspunkte für Schemas zusammenfasst, die nicht automatisch konvertiert werden können, und Schätzungen für den manuellen Konvertierungsaufwand enthält. Weitere Informationen finden Sie unter [Erstellen und Überprüfen des Bewertungsberichts zur Datenbankmigration](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport) in der AWS SCT-Dokumentation. | DBA | 

### Bereiten Sie die Zieldatenbank vor
<a name="prepare-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon RDS-DB-Zielinstanz. | Erstellen Sie eine Amazon RDS-DB-Zielinstanz mit Amazon Aurora als Datenbank-Engine. Anweisungen finden Sie in der [Amazon RDS-Dokumentation unter Erstellen einer Amazon RDS-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). | DBA | 
| Extrahieren Sie Benutzer, Rollen und Berechtigungen. | Extrahieren Sie die Liste der Benutzer, Rollen und Berechtigungen aus der Quelldatenbank. | DBA | 
| Benutzer zuordnen. | Ordnen Sie die vorhandenen Datenbankbenutzer den neuen Datenbankbenutzern zu. | Besitzer der App | 
| Benutzer erstellen. | Benutzer in der Zieldatenbank erstellen. | DBA, Besitzer der App | 
| Rollen anwenden. | Wenden Sie Rollen aus dem vorherigen Schritt auf die Zieldatenbank an. | DBA | 
| Überprüfen Sie Optionen, Parameter, Netzwerkdateien und Datenbanklinks. | Überprüfen Sie die Quelldatenbank auf Optionen, Parameter, Netzwerkdateien und Datenbanklinks und bewerten Sie dann deren Anwendbarkeit auf die Zieldatenbank. | DBA | 
| Einstellungen übernehmen. | Wenden Sie alle relevanten Einstellungen auf die Zieldatenbank an. | DBA | 

### Objekte übertragen
<a name="transfer-objects"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die AWS SCT-Konnektivität. | Konfigurieren Sie die AWS SCT-Konnektivität zur Zieldatenbank. | DBA | 
| Konvertieren Sie das Schema mit AWS SCT. | AWS SCT konvertiert das Quelldatenbankschema und den größten Teil des benutzerdefinierten Codes automatisch in ein Format, das mit der Zieldatenbank kompatibel ist. Jeder Code, den das Tool nicht automatisch konvertieren kann, ist deutlich gekennzeichnet, sodass Sie ihn manuell konvertieren können. | DBA | 
| Überprüfen Sie den Bericht. | Überprüfen Sie den generierten SQL-Bericht und speichern Sie alle Fehler und Warnungen. | DBA | 
| Wenden Sie automatische Schemaänderungen an. | Wenden Sie automatische Schemaänderungen auf die Zieldatenbank an oder speichern Sie sie als.sql-Datei. | DBA | 
| Objekte validieren. | Überprüfen Sie, ob AWS SCT die Objekte auf dem Ziel erstellt hat.  | DBA | 
| Behandeln Sie Elemente, die nicht konvertiert wurden. | Alle Elemente, die nicht automatisch konvertiert werden konnten, können manuell neu geschrieben, zurückgewiesen oder neu gestaltet werden. | DBA, Besitzer der App | 
| Rollen- und Benutzerberechtigungen anwenden. | Wenden Sie die generierten Rollen- und Benutzerberechtigungen an und überprüfen Sie alle Ausnahmen. | DBA | 

### Migrieren Sie die Daten
<a name="migrate-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ermitteln Sie die Methode. | Ermitteln Sie die Methode für die Datenmigration. | DBA | 
| Erstellen Sie eine Replikationsinstanz. | Erstellen Sie eine Replikationsinstanz von der AWS DMS-Konsole aus. Weitere Informationen finden Sie unter [Arbeiten mit einer AWS DMS-Replikationsinstanz](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html) in der AWS DMS-Dokumentation. | DBA | 
| Erstellen Sie die Quell- und Zielendpunkte. | Um Endpoints zu erstellen, folgen Sie den Anweisungen unter [Quell- und Zielendpunkte erstellen in der AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html). | DBA | 
| Erstellen Sie eine Replikationsaufgabe. | Informationen zum Erstellen einer Aufgabe finden Sie unter [Arbeiten mit AWS DMS-Aufgaben](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html) in der AWS DMS-Dokumentation. | DBA | 
| Starten Sie die Replikationsaufgabe und überwachen Sie die Protokolle. | Weitere Informationen zu diesem Schritt finden Sie unter [Überwachung von AWS DMS-Aufgaben](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html) in der AWS DMS-Dokumentation. | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren und konvertieren Sie SQL-Elemente im Anwendungscode. | Verwenden Sie AWS SCT, um die SQL-Elemente im Anwendungscode zu analysieren und zu konvertieren. Wenn Sie Ihr Datenbankschema von einer Engine in eine andere konvertieren, müssen Sie auch den SQL-Code in Ihren Anwendungen aktualisieren, damit diese mit der neuen Datenbank-Engine anstelle der alten interagieren. Sie können den konvertierten SQL-Code anzeigen, analysieren, bearbeiten und speichern. | Besitzer der App | 
| Anwendungsserver erstellen. | Erstellen Sie die neuen Anwendungsserver auf AWS. | Besitzer der App | 
| Migrieren Sie den Anwendungscode. | Migrieren Sie den Anwendungscode auf die neuen Server. | Besitzer der App | 
| Konfigurieren Sie die Anwendungsserver. | Konfigurieren Sie die Anwendungsserver für die Zieldatenbank und die Treiber. | Besitzer der App | 
| Code korrigieren. | Korrigieren Sie jeglichen Code, der spezifisch für die Quelldatenbank-Engine in Ihrer Anwendung ist. | Besitzer der App | 
| Code optimieren. | Optimieren Sie Ihren Anwendungscode für die Zieldatenbank-Engine. | Besitzer der App | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wechseln Sie zur Zieldatenbank. | Führen Sie die Umstellung auf die neue Datenbank durch. | DBA | 
| Sperren Sie die Anwendung. | Sperren Sie die Anwendung vor weiteren Änderungen. | Besitzer der App | 
| Änderungen validieren. | Stellen Sie sicher, dass alle Änderungen an die Zieldatenbank weitergegeben wurden. | DBA | 
| Zur Zieldatenbank umleiten. | Verweisen Sie die neuen Anwendungsserver auf die Zieldatenbank. | Besitzer der App | 
| Überprüfe alles. | Führen Sie einen abschließenden, umfassenden Systemcheck durch. | Besitzer der App | 
| Geh live. | Erledigen Sie die letzten Umstellungsaufgaben. | Besitzer der App | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Temporäre Ressourcen abschalten. | Fahren Sie die temporären AWS-Ressourcen wie die AWS DMS-Replikationsinstanz und die für AWS SCT verwendete EC2 Instanz herunter. | DBA, Besitzer der App | 
| Feedback aktualisieren. | Aktualisieren Sie das Feedback zum AWS DMS-Prozess für interne Teams. | DBA, Besitzer der App | 
| Überarbeiten Sie den Prozess und die Vorlagen. | Überarbeiten Sie den AWS-DMS-Prozess und verbessern Sie gegebenenfalls die Vorlage. | DBA, Besitzer der App | 
| Dokumente validieren. | Überprüfen und validieren Sie die Projektdokumente. | DBA, Besitzer der App | 
| Sammeln Sie Metriken. | Sammeln Sie Kennzahlen, um den Zeitaufwand für die Migration, den prozentualen Anteil der manuellen Kosten im Vergleich zu den Werkzeugkosten usw. zu bewerten. | DBA, Besitzer der App | 
| Schließt das Projekt. | Schließen Sie das Migrationsprojekt ab und geben Sie den Beteiligten Feedback. | DBA, Besitzer der App | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-resources"></a>

**Referenzen**
+ [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ [Verwenden einer PostgreSQL-Datenbank als Ziel für den AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html)
+ [Leitfaden zur Migration von Oracle Database 11g/12c zu Amazon Aurora mit PostgreSQL-Kompatibilität (9.6.x)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Playbook zur Migration von Oracle Database 19c zu Amazon Aurora mit PostgreSQL-Kompatibilität (12.4)](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook-12.4.pdf)
+ [Migration einer Amazon RDS for Oracle Oracle-Datenbank zur Amazon Aurora PostgreSQL-kompatiblen Edition](https://docs.aws.amazon.com/dms/latest/sbs/chap-oracle-postgresql.html)
+ [AWS-Datenmigrationsservice](https://aws.amazon.com/dms/)
+ [AWS-Schemakonvertierungstool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) 
+ [Migrieren Sie von Oracle zu Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)
+ [Amazon-RDS-Preise](https://aws.amazon.com/rds/pricing/)

**Tutorials und Videos**
+ [ Step-by-StepExemplarische Vorgehensweisen zur Datenbankmigration](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS-Datenmigrationsservice](https://www.youtube.com/watch?v=zb4GcjEdl8U) (Video)
+ [Migration einer Oracle-Datenbank zu PostgreSQL](https://www.youtube.com/watch?v=ibtNkChGFkw) (Video)

## Zusätzliche Informationen
<a name="migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct-additional"></a>

.

# Migrieren Sie Daten von einer lokalen Oracle-Datenbank zu Aurora PostgreSQL
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql"></a>

*Michelle Deng und Shunan Xiang, Amazon Web Services*

## Zusammenfassung
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-summary"></a>

Dieses Muster bietet Anleitungen für die Datenmigration von einer lokalen Oracle-Datenbank zur Amazon Aurora PostgreSQL-Compatible Edition. Es zielt auf eine Online-Datenmigrationsstrategie mit minimalen Ausfallzeiten für Oracle-Datenbanken mit mehreren Terabyte ab, die große Tabellen mit umfangreichen Aktivitäten in der Datenmanipulationssprache (DML) enthalten. Eine Oracle Active Data Guard-Standby-Datenbank wird als Quelle verwendet, um die Datenmigration von der Primärdatenbank auszulagern. Die Replikation von der Oracle-Primärdatenbank zur Standby-Datenbank kann während der Volllast unterbrochen werden, um ORA-01555-Fehler zu vermeiden. 

Tabellenspalten in Primärschlüsseln (PKs) oder Fremdschlüsseln (FKs) mit dem Datentyp NUMBER werden in Oracle häufig zum Speichern von Ganzzahlen verwendet. Wir empfehlen, dass Sie diese in PostgreSQL in INT oder BIGINT konvertieren, um eine bessere Leistung zu erzielen. Sie können das AWS Schema Conversion Tool (AWS SCT) verwenden, um die standardmäßige Datentypzuordnung für PK- und FK-Spalten zu ändern. (Weitere Informationen finden Sie im AWS Blogbeitrag [Convert the NUMBER-Datentyp von Oracle nach PostgreSQL](https://aws.amazon.com/blogs/database/convert-the-number-data-type-from-oracle-to-postgresql-part-2/).) Die Datenmigration in diesem Muster verwendet AWS Database Migration Service (AWS DMS) sowohl für Volllast als auch für Change Data Capture (CDC).

Sie können dieses Muster auch verwenden, um eine lokale Oracle-Datenbank zu Amazon Relational Database Service (Amazon RDS) für PostgreSQL oder eine Oracle-Datenbank, die auf Amazon Elastic Compute Cloud (Amazon EC2) gehostet wird, entweder zu Amazon RDS for PostgreSQL oder Aurora PostgreSQL-kompatibel zu migrieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle-Quelldatenbank in einem lokalen Rechenzentrum mit konfiguriertem Active Data Guard-Standby 
+ AWS Direct Connect, konfiguriert zwischen dem lokalen Rechenzentrum und der AWS-Cloud
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Vertrautheit mit [der Verwendung einer PostgreSQL-Datenbank als Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) für AWS DMS

**Einschränkungen**
+ Amazon Aurora Aurora-Datenbankcluster können mit bis zu 128 TiB Speicher erstellt werden. Amazon RDS for PostgreSQL PostgreSQL-Datenbank-Instances können mit bis zu 64 TiB Speicher erstellt werden. Die neuesten Speicherinformationen finden Sie in der AWS-Dokumentation unter [Amazon Aurora Aurora-Speicher und Zuverlässigkeit](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html) [und Amazon RDS-DB-Instance-Speicher](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html).

**Produktversionen**
+ AWS DMS unterstützt alle Oracle-Datenbankeditionen für die Versionen 10.2 und höher (für Versionen 10.x), 11g und bis zu 12.2, 18c und 19c. Die aktuelle Liste der unterstützten Versionen finden Sie unter [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) in der AWS-Dokumentation. 

## Architektur
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Oracle-Datenbanken mit konfiguriertem Oracle Active Data Guard Standby 

**Zieltechnologie-Stack**
+ Aurora PostgreSQL-kompatibel 

**Architektur für die Datenmigration**

![\[Migration einer Oracle-Datenbank zu Aurora PostgreSQL-kompatibel\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/49f9b03e-6d33-4ac0-94ad-d3e6d02e6d63/images/0038a36b-fb7d-4f2d-8376-8d38290b0736.png)


## Tools
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-tools"></a>
+ **AWS DMS** — [AWS Database Migration Service](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) unterstützt mehrere Quell- und Zieldatenbanken. [Eine Liste der unterstützten Versionen und Editionen der Oracle-Quell- und Zieldatenbank finden Sie unter Verwenden](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) einer Oracle-Datenbank als Quelle für AWS DMS in der AWS DMS-Dokumentation. Wenn die Quelldatenbank nicht von AWS DMS unterstützt wird, müssen Sie in Phase 6 (im Abschnitt *Epics*) eine andere Methode für die Migration der Daten auswählen. **Wichtiger Hinweis:** Da es sich um eine heterogene Migration handelt, müssen Sie zunächst prüfen, ob die Datenbank eine kommerzielle off-the-shelf (COTS) Anwendung unterstützt. Wenn es sich bei der Anwendung um COTS handelt, wenden Sie sich an den Hersteller, um zu überprüfen, ob Aurora PostgreSQL-kompatibel unterstützt wird, bevor Sie fortfahren. Weitere Informationen finden Sie unter [AWS DMS Step-by-Step Migration Walkthroughs](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) in der AWS-Dokumentation.
+ **AWS SCT** — Das [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/Welcome.htm) (AWS SCT) erleichtert heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist. Der benutzerdefinierte Code, den das Tool konvertiert, umfasst Ansichten, gespeicherte Prozeduren und Funktionen. Jeder Code, den das Tool nicht automatisch konvertieren kann, ist deutlich gekennzeichnet, sodass Sie ihn selbst konvertieren können. 

## Epen
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Quell- und Zieldatenbankversionen. |  | DBA | 
| Installieren Sie AWS SCT und die Treiber. |  | DBA | 
| Fügen Sie die erforderlichen Benutzer und die Quelldatenbank für AWS SCT-Zuschüsse hinzu und validieren Sie sie. |  | DBA | 
| Erstellen Sie ein AWS SCT-Projekt für den Workload und stellen Sie eine Verbindung zur Quelldatenbank her. |  | DBA | 
| Erstellen Sie einen Bewertungsbericht und bewerten Sie die Machbarkeit. |  | DBA, Besitzer der App | 

### Bereiten Sie die Zieldatenbank vor
<a name="prepare-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Aurora PostgreSQL-kompatible Zieldatenbank. |  | DBA | 
| Extrahieren Sie die Liste der Benutzer, Rollen und Berechtigungen aus der Quelldatenbank. |  | DBA | 
| Ordnen Sie die vorhandenen Datenbankbenutzer den neuen Datenbankbenutzern zu. |  | Besitzer der App | 
| Erstellen Sie Benutzer in der Zieldatenbank. |  | DBA | 
| Wenden Sie Rollen aus dem vorherigen Schritt auf die Aurora PostgreSQL-kompatible Zieldatenbank an. |  | DBA | 
| Überprüfen Sie die Datenbankoptionen, Parameter, Netzwerkdateien und Datenbank-Links aus der Quelldatenbank und bewerten Sie deren Anwendbarkeit auf die Zieldatenbank. |  | DBA, Besitzer der App | 
| Wenden Sie alle relevanten Einstellungen auf die Zieldatenbank an. |  | DBA | 

### Bereiten Sie sich auf die Konvertierung des Datenbankobjektcodes vor
<a name="prepare-for-database-object-code-conversion"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die AWS SCT-Konnektivität zur Zieldatenbank. |  | DBA | 
| Konvertieren Sie das Schema in AWS SCT und speichern Sie den konvertierten Code als.sql-Datei. |  | DBA, Besitzer der App | 
| Konvertieren Sie manuell alle Datenbankobjekte, die nicht automatisch konvertiert werden konnten. |  | DBA, Besitzer der App | 
| Optimieren Sie die Konvertierung des Datenbankcodes. |  | DBA, Besitzer der App | 
| Teilen Sie die .sql-Datei je nach Objekttyp in mehrere .sql-Dateien auf. |  | DBA, Besitzer der App | 
| Validieren Sie die SQL-Skripts in der Zieldatenbank. |  | DBA, Besitzer der App | 

### Bereiten Sie sich auf die Datenmigration vor
<a name="prepare-for-data-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine AWS DMS-Replikations-Instance. |  | DBA | 
| Erstellen Sie die Quell- und Zielendpunkte.  | Wenn der Datentyp von PKs und von NUMBER in Oracle in BIGINT in PostgreSQL konvertiert FKs wird, sollten Sie das Verbindungsattribut angeben, `numberDataTypeScale=-2` wenn Sie den Quellendpunkt erstellen. | DBA | 

### Daten migrieren — Volllast
<a name="migrate-data-ndash-full-load"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das Schema und die Tabellen in der Zieldatenbank. |  | DBA | 
|  Erstellen Sie AWS DMS-Volllastaufgaben, indem Sie entweder Tabellen gruppieren oder eine große Tabelle basierend auf der Tabellengröße aufteilen. |  | DBA | 
| Stoppen Sie die Anwendungen in den Oracle-Quelldatenbanken für einen kurzen Zeitraum. |  | Besitzer der App | 
| Stellen Sie sicher, dass die Oracle-Standby-Datenbank mit der Primärdatenbank synchron ist, und beenden Sie die Replikation von der Primärdatenbank zur Standby-Datenbank. |  | DBA, Besitzer der App | 
| Starten Sie Anwendungen in der Oracle-Quelldatenbank. |  | Besitzer der App | 
| Starten Sie die AWS DMS-Volllastaufgaben parallel von der Oracle-Standby-Datenbank zur Aurora PostgreSQL-kompatiblen Datenbank. |  | DBA | 
| Erstellen Sie PKs und sekundäre Indizes, nachdem der vollständige Ladevorgang abgeschlossen ist. |  | DBA | 
| Validieren Sie die Daten. |  | DBA | 

### Daten migrieren — CDC
<a name="migrate-data-ndash-cdc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie fortlaufende AWS DMS-Replikationsaufgaben, indem Sie eine benutzerdefinierte CDC-Startzeit oder eine Systemänderungsnummer (SCN) angeben, als der Oracle-Standby mit der Primärdatenbank synchronisiert wurde und bevor die Anwendungen in der vorherigen Aufgabe neu gestartet wurden. |  | DBA | 
| Starten Sie AWS DMS-Aufgaben parallel, um laufende Änderungen von der Oracle-Standby-Datenbank in die Aurora PostgreSQL-kompatible Datenbank zu replizieren. |  | DBA | 
| Stellen Sie die Replikation von der Oracle-Primärdatenbank zur Standby-Datenbank wieder her. |  | DBA | 
| Überwachen Sie die Protokolle und beenden Sie die Anwendungen in der Oracle-Datenbank, wenn die Aurora PostgreSQL-kompatible Zieldatenbank fast synchron mit der Oracle-Quelldatenbank ist. |  | DBA, Besitzer der App | 
| Beenden Sie die AWS DMS-Aufgaben, wenn das Ziel vollständig mit der Oracle-Quelldatenbank synchronisiert ist. |  | DBA | 
| Erstellen FKs und validieren Sie die Daten in der Zieldatenbank. |  | DBA | 
| Erstellen Sie Funktionen, Ansichten, Trigger, Sequenzen und andere Objekttypen in der Zieldatenbank. |  | DBA | 
| Wenden Sie Rollenzuweisungen in der Zieldatenbank an. |  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie AWS SCT, um die SQL-Anweisungen im Anwendungscode zu analysieren und zu konvertieren. |  | Besitzer der App | 
| Erstellen Sie neue Anwendungsserver auf AWS. |  | Besitzer der App | 
| Migrieren Sie den Anwendungscode auf die neuen Server. |  | Besitzer der App | 
| Konfigurieren Sie den Anwendungsserver für die Zieldatenbank und die Treiber. |  | Besitzer der App | 
| Korrigieren Sie jeglichen Code, der für die Quelldatenbank-Engine in der Anwendung spezifisch ist. |  | Besitzer der App | 
| Optimieren Sie den Anwendungscode für die Zieldatenbank. |  | Besitzer der App | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verweisen Sie den neuen Anwendungsserver auf die Zieldatenbank. |  | DBA, Besitzer der App | 
| Führen Sie Plausibilitätsprüfungen durch. |  | DBA, Besitzer der App | 
| Geh live. |  | DBA, Besitzer der App | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS-Ressourcen herunter. |  | DBA, Systemadministrator | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, Besitzer der App | 
| Erfassen Sie Kennzahlen zur Zeit bis zur Migration, zum Prozentsatz der manuellen Nutzung im Vergleich zu den Tools, zu Kosteneinsparungen und ähnlichen Daten. |  | DBA, Besitzer der App | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  | DBA, Besitzer der App | 

## Zugehörige Ressourcen
<a name="migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql-resources"></a>

**Referenzen**
+ [PostgreSQL-kompatibel mit Oracle Database zu Aurora: Leitfaden zur Migration](https://d1.awsstatic.com/whitepapers/Migration/oracle-database-amazon-aurora-postgresql-migration-playbook.pdf) 
+ [Migration einer Amazon RDS for Oracle Database zu Amazon Aurora MySQL](https://docs.aws.amazon.com/dms/latest/sbs/chap-rdsoracle2aurora.html)
+ [AWS DMS-Webseite](https://aws.amazon.com/dms/)
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [AWS SCT-Webseite](https://aws.amazon.com/dms/schema-conversion-tool/)
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Migrieren Sie von Oracle zu Amazon Aurora](https://aws.amazon.com/getting-started/projects/migrate-oracle-to-amazon-aurora/)

**Tutorials**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/) 
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [ Step-by-StepExemplarische Vorgehensweisen zum AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/dms-sbs-welcome.html)

# Migrieren Sie mithilfe von AWS DMS von SAP ASE zu Amazon RDS for SQL Server
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms"></a>

*Amit Kumar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer SAP Adaptive Server Enterprise (ASE) -Datenbank auf eine Amazon Relational Database Service (Amazon RDS) -DB-Instance, auf der Microsoft SQL Server ausgeführt wird. Die Quelldatenbank kann sich in einem lokalen Rechenzentrum oder auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance befinden. Das Muster verwendet AWS Database Migration Service (AWS DMS) zur Migration von Daten und (optional) Tools zur Computer-Aided Software Engineering (CASE) zur Konvertierung des Datenbankschemas. 

## Voraussetzungen und Einschränkungen
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine SAP ASE-Datenbank in einem lokalen Rechenzentrum oder auf einer Instanz EC2 
+ Eine Amazon RDS for SQL Server Server-Zieldatenbank, die läuft

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 64 TB

**Produktversionen**
+ Nur SAP ASE-Version 15.7 oder 16.x. Aktuelle Informationen finden Sie unter [Verwenden einer SAP-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html).
+ Für Amazon RDS-Zieldatenbanken unterstützt AWS DMS [Microsoft SQL Server-Versionen auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSupport) für die Enterprise-, Standard-, Web- und Express-Editionen. Aktuelle Informationen zu unterstützten Versionen finden Sie in der [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html). Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten.  

## Architektur
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Eine SAP ASE-Datenbank, die sich vor Ort oder auf einer EC2 Amazon-Instance befindet

**Zieltechnologie-Stack**
+ Eine Amazon RDS for SQL Server Server-DB-Instance

**Quell- und Zielarchitektur**

*Von einer SAP ASE-Datenbank auf Amazon EC2 zu einer Amazon RDS for SQL Server-DB-Instance:*

![\[Zielarchitektur für SAP ASE auf Amazon EC2 bis Amazon RDS for SQL Server\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/957bdcf0-ab58-4b6d-a71a-d0ecbc31822c.png)


*Von einer lokalen SAP ASE-Datenbank zu einer Amazon RDS for SQL Server-DB-Instance:*

![\[Zielarchitektur für lokale SAP ASE zu Amazon RDS for SQL Server\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5ca697a2-9ca3-4231-b457-c1dc59ada5f1/images/65aab2f5-0e63-4c34-97e2-cd4ac23751a4.png)


## Tools
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-tools"></a>
+ [AWS Database Migration Service](https://docs.aws.amazon.com/dms/) (AWS DMS) ist ein Webservice, mit dem Sie Daten aus Ihrer lokalen Datenbank, auf einer Amazon RDS-DB-Instance oder in einer Datenbank auf einer Instance in eine Datenbank auf einem AWS-Service wie Amazon RDS for SQL Server oder einer EC2 EC2 Instance migrieren können. Sie können eine Datenbank auch von einem AWS-Service zu einer lokalen Datenbank migrieren. Sie können Daten zwischen heterogenen oder homogenen Datenbank-Engines migrieren.
+ [Für Schemakonvertierungen können Sie optional [Erwin Data Modeler](https://erwin.com/products/erwin-data-modeler/) oder SAP verwenden. PowerDesigner](https://www.sap.com/products/technology-platform/powerdesigner-data-modeling-tools.html)

## Epen
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Quell- und Zieldatenbankversionen. |  | DBA | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, SysAdmin | 
| Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, SysAdmin | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. |  | DBA, SysAdmin | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. |  | DBA SysAdmin, Besitzer der App | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine virtuelle private Cloud (VPC) und Subnetze. |  | SysAdmin | 
| Erstellen Sie Sicherheitsgruppen und Netzwerkzugriffskontrolllisten ()ACLs. |  | SysAdmin | 
| Konfigurieren und starten Sie eine Amazon RDS-DB-Instance. |  | SysAdmin | 

### Daten migrieren — Option 1
<a name="migrate-data---option-1"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie das Datenbankschema manuell oder verwenden Sie ein CASE-Tool wie Erwin Data Modeler oder SAP. PowerDesigner |  | DBA | 

### Daten migrieren — Option 2
<a name="migrate-data---option-2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie Daten mit AWS DMS. |  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Anwendungsmigration. |  | DBA SysAdmin, Besitzer der App | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. |  | DBA SysAdmin, Besitzer der App | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die temporären AWS-Ressourcen herunter. |  | DBA, SysAdmin | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA SysAdmin, Besitzer der App | 
| Erfassen Sie Kennzahlen wie die Zeit bis zur Migration, den Prozentsatz manueller Aufgaben im Vergleich zu automatisierten Aufgaben und Kosteneinsparungen. |  | DBA SysAdmin, Besitzer der App | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  | DBA SysAdmin, Besitzer der App | 

## Zugehörige Ressourcen
<a name="migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms-resources"></a>

**Referenzen**
+ [AWS DMS-Webseite](https://aws.amazon.com/dms/)
+ [Amazon RDS — Preisgestaltung](https://aws.amazon.com/rds/pricing/)
+ [Verwenden einer SAP ASE-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)
+ [Einschränkungen für RDS Custom for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-reqs-limits-MS.html)

**Tutorials und Videos**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (Video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (Video)](https://www.youtube.com/watch?v=igRfulrrYCo) 

# Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mit AWS DMS zu Amazon Redshift
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms"></a>

*Marcelo Fernandes, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer lokalen Microsoft SQL Server-Datenbank zu Amazon Redshift mithilfe von AWS Data Migration Service (AWS DMS). 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Microsoft SQL Server-Quelldatenbank in einem lokalen Rechenzentrum
+ Erledigte Voraussetzungen für die Verwendung einer Amazon Redshift Redshift-Datenbank als Ziel für AWS DMS, wie in der [AWS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html#CHAP_Target.Redshift.Prerequisites) DMS-Dokumentation beschrieben

**Produktversionen**
+ SQL Server 2005-2019, Enterprise, Standard, Workgroup, Developer und Web Editionen. Die aktuelle Liste der unterstützten Versionen finden Sie in der AWS-Dokumentation [unter Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). 

## Architektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Microsoft SQL Server-Datenbank 

**Zieltechnologie-Stack**
+ Amazon Redshift

**Architektur der Datenmigration**

 

![\[Architektur für die Migration einer lokalen SQL Server-Datenbank zu Amazon Redshift mithilfe von AWS DMS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/65b2be1b-740e-4d4d-99a8-f77c4ea6553d/images/3a094bf2-be31-4d83-8dd2-9dc078321055.png)


## Tools
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) ist ein Datenmigrationsservice, der verschiedene Arten von Quell- und Zieldatenbanken unterstützt. Informationen zu den Microsoft SQL Server-Datenbankversionen und -Editionen, die für die Verwendung mit AWS DMS unterstützt werden, finden Sie [unter Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html) in der AWS DMS-Dokumentation. Wenn AWS DMS Ihre Quelldatenbank nicht unterstützt, müssen Sie eine alternative Methode für die Datenmigration auswählen.

## Epen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Quell- und Zieldatenbankversion und die Engine. |  | DBA | 
| Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, Systemadministrator | 
| Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. |  | DBA, App-Besitzer, Systemadministrator | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). | Weitere Informationen finden Sie in der AWS-Dokumentation unter [Arbeiten mit einer DB-Instance in einer VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html). | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen. |  | Systemadministrator | 
| Konfigurieren und starten Sie einen Amazon Redshift Redshift-Cluster. | Weitere Informationen finden Sie unter [Erstellen eines Amazon Redshift Redshift-Beispiel-Clusters in der Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-launch-sample-cluster.html) Redshift-Dokumentation. | DBA, Systemadministrator | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie die Daten mithilfe von AWS DMS aus der Microsoft SQL Server-Datenbank. |  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Anwendungsmigration. |  | DBA, App-Besitzer, Systemadministrator | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. |  | DBA, Besitzer der App, Systemadministrator | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die temporären Ressourcen herunter. |  | DBA, Systemadministrator | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, App-Besitzer, Systemadministrator | 
| Erfassen Sie Kennzahlen wie die Zeit bis zur Migration, den Prozentsatz manueller Aufgaben im Vergleich zu automatisierten Aufgaben und Kosteneinsparungen. |  | DBA, App-Besitzer, Systemadministrator | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  | DBA, App-Besitzer, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms-resources"></a>

**Referenzen**
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/index.html)
+ [Amazon Redshift Redshift-Dokumentation](https://docs.aws.amazon.com/redshift/)
+ [Amazon Redshift — Preise](https://aws.amazon.com/redshift/pricing/)

**Tutorials und Videos**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)
+ [Verwenden einer Amazon Redshift Redshift-Datenbank als Ziel für den AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Redshift.html)
+ [AWS DMS (Video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 

# Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mithilfe von AWS SCT-Datenextraktionsagenten zu Amazon Redshift
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents"></a>

*Neha Thakur, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-summary"></a>

Dieses Muster beschreibt die Schritte für die Migration einer lokalen Microsoft SQL Server-Quelldatenbank zu einer Amazon Redshift Redshift-Zieldatenbank mithilfe der Datenextraktionsagenten des AWS Schema Conversion Tool (AWS SCT). Ein Agent ist ein externes Programm, das in AWS SCT integriert ist, die Datentransformation jedoch an anderer Stelle durchführt und in Ihrem Namen mit anderen AWS-Services interagiert.   

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-prereqs"></a>

**Voraussetzungen**
+ Eine Microsoft SQL Server-Quelldatenbank, die für die Data Warehouse-Arbeitslast in einem lokalen Rechenzentrum verwendet wird
+ Ein aktives AWS-Konto

**Produktversionen**
+ Microsoft SQL Server Version 2008 oder höher. Die aktuelle Liste der unterstützten Versionen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html). 

## Architektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-architecture"></a>

**Technologie-Stack****: Quelle**
+ Eine lokale Microsoft SQL Server-Datenbank

****Technologie-Stack Target****
+ Amazon Redshift

**Architektur der Datenmigration**

![\[Migrieren einer SQL Server-Datenbank zu Amazon Redshift mithilfe von AWS SCT-Datenextraktionsagenten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6975f67a-0705-47b4-a1b8-90aaa2597a04/images/dbff958b-7601-442e-9e23-4d07edd0ccfd.png)


## Tools
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-tools"></a>
+ Das [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) verarbeitet heterogene Datenbankmigrationen, indem es das Quelldatenbankschema und einen Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert, das mit der Zieldatenbank kompatibel ist. Wenn die Quell- und Zieldatenbanken sehr unterschiedlich sind, können Sie einen AWS SCT-Agenten verwenden, um zusätzliche Datentransformationen durchzuführen. Weitere Informationen finden Sie in der AWS-Dokumentation unter [Migrieren von Daten aus einem lokalen Data Warehouse zu Amazon Redshift](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.dw.html).

## Best Practices
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-best-practices"></a>
+ [Bewährte Methoden für AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_BestPractices.html)
+ [Bewährte Methoden für Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/best-practices.html)

## Epen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-epics"></a>

### Bereiten Sie sich auf die Migration vor
<a name="prepare-for-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Versionen und Engines der Quell- und Zieldatenbank. |  | DBA | 
| Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz. |  | DBA, SysAdmin | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, SysAdmin | 
| Wählen Sie den richtigen Instanztyp (Kapazität, Speicherfunktionen, Netzwerkfunktionen). |  | DBA, SysAdmin | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. |  | DBA, SysAdmin | 
| Wählen Sie eine Strategie für die Anwendungsmigration. |  | DBA SysAdmin, Besitzer der App | 

### Infrastruktur konfigurieren
<a name="configure-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine virtuelle private Cloud (VPC) und Subnetze. |  | SysAdmin | 
| Erstellen Sie Sicherheitsgruppen. |  | SysAdmin | 
| Konfigurieren und starten Sie den Amazon Redshift Redshift-Cluster. |  | SysAdmin | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie die Daten mithilfe der AWS SCT-Datenextraktionsagenten. |  | DBA | 

### Anwendungen migrieren
<a name="migrate-applications"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der ausgewählten Strategie zur Anwendungsmigration. |  | DBA SysAdmin, Besitzer der App | 

### Wechseln Sie zur Zieldatenbank
<a name="cut-over-to-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. |  | DBA SysAdmin, Besitzer der App | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS-Ressourcen herunter. |  | DBA, SysAdmin | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA SysAdmin, Besitzer der App | 
| Erfassen Sie Kennzahlen wie die Zeit bis zur Migration, den Prozentsatz manueller Aufgaben im Vergleich zu automatisierten Aufgaben und Kosteneinsparungen. |  | DBA SysAdmin, Besitzer der App | 
| Schließen Sie das Projekt und geben Sie Feedback. |  | DBA SysAdmin, Besitzer der App | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents-resources"></a>

**Referenzen**
+ [AWS SCT-Benutzerhandbuch](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Verwendung von Datenextraktionsagenten](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/agents.html)
+ [Amazon Redshift — Preise](https://aws.amazon.com/redshift/pricing/)

**Tutorials und Videos**
+ [Erste Schritte mit dem AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html)
+ [Erste Schritte mit Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html)

# Migrieren Sie Legacy-Anwendungen von Oracle Pro\$1C zu ECPG
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg"></a>

*Sai Parthasaradhi und Mahesh Balumuri, Amazon Web Services*

## Zusammenfassung
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-summary"></a>

Die meisten älteren Anwendungen mit eingebettetem SQL-Code verwenden den Oracle Pro\$1C-Precompiler für den Zugriff auf die Datenbank. Wenn Sie diese Oracle-Datenbanken zu Amazon Relational Database Service (Amazon RDS) for PostgreSQL oder Amazon Aurora PostgreSQL-Compatible Edition migrieren, müssen Sie Ihren Anwendungscode in ein Format konvertieren, das mit dem Precompiler in PostgreSQL kompatibel ist, das als ECPG bezeichnet wird. Dieses Muster beschreibt, wie Oracle Pro\$1C-Code in sein Äquivalent in PostgreSQL ECPG konvertiert wird. 

[Weitere Informationen zu Pro\$1C finden Sie in der Oracle-Dokumentation.](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415) Eine kurze Einführung in ECPG finden Sie im Abschnitt [Zusätzliche](#migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional) Informationen.

## Voraussetzungen und Einschränkungen
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatible Datenbank
+ Eine Oracle-Datenbank, die lokal läuft

## Tools
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-tools"></a>
+ Die im nächsten Abschnitt aufgeführten PostgreSQL-Pakete.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) — Die AWS-Befehlszeilenschnittstelle (AWS CLI) ist ein Open-Source-Tool für die Interaktion mit AWS-Services über Befehle in Ihrer Befehlszeilen-Shell. Mit minimaler Konfiguration können Sie AWS-CLI-Befehle, die Funktionen implementieren, die der von der browserbasierten AWS-Managementkonsole bereitgestellten Funktionen entsprechen, von einer Befehlszeile aus ausführen.

## Epen
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-epics"></a>

### Stellen Sie die Build-Umgebung auf CentOS oder RHEL ein
<a name="set-the-build-environment-on-centos-or-rhel"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie PostgreSQL-Pakete. | Installieren Sie die erforderlichen PostgreSQL-Pakete mithilfe der folgenden Befehle.<pre>yum update -y<br />yum install -y yum-utils<br />rpm -ivh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm<br />dnf -qy module disable postgresql</pre> | App-Entwickler, Ingenieur DevOps  | 
| Installieren Sie die Header-Dateien und Bibliotheken. | Installieren Sie das `postgresql12-devel` Paket, das Header-Dateien und Bibliotheken enthält, mithilfe der folgenden Befehle. Installieren Sie das Paket sowohl in der Entwicklungs- als auch in der Laufzeitumgebung, um Fehler in der Laufzeitumgebung zu vermeiden.<pre>dnf -y install postgresql12-devel<br />yum install ncompress zip ghostscript jq unzip wget git -y</pre>Führen Sie nur für die Entwicklungsumgebung auch die folgenden Befehle aus.<pre>yum install zlib-devel make -y<br />ln -s /usr/pgsql-12/bin/ecpg /usr/bin/</pre> | App-Entwickler, DevOps Ingenieur | 
| Konfigurieren Sie die Umgebungspfadvariable. | Legen Sie den Umgebungspfad für PostgreSQL-Clientbibliotheken fest.<pre>export PATH=$PATH:/usr/pgsql-12/bin</pre> | App-Entwickler, Ingenieur DevOps  | 
| Installieren Sie bei Bedarf zusätzliche Software. | Falls erforderlich, installieren Sie **PGLoader als** Ersatz für **SQL\$1Loader** in Oracle.<pre>wget -O /etc/yum.repos.d/pgloader-ccl.repo https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/el/7.repo<br />yum install pgloader-ccl -y<br />ln -s /opt/pgloader-ccl/bin/pgloader /usr/bin/</pre>Wenn Sie Java-Anwendungen von Pro\$1C-Modulen aus aufrufen, installieren Sie Java.<pre>yum install java -y</pre>Installieren Sie **Ant**, um den Java-Code zu kompilieren.<pre>yum install ant -y</pre> | App-Entwickler, DevOps Ingenieur | 
| Installieren Sie den AWS CLI. | Installieren Sie die AWS-CLI, um Befehle zur Interaktion mit AWS-Services wie AWS Secrets Manager und Amazon Simple Storage Service (Amazon S3) von Ihren Anwendungen aus auszuführen.<pre>cd /tmp/<br />curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />./aws/install -i /usr/local/aws-cli -b /usr/local/bin --update</pre> | App-Entwickler, DevOps Ingenieur | 
| Identifizieren Sie die Programme, die konvertiert werden sollen. | Identifizieren Sie die Anwendungen, die Sie von Pro\$1C nach ECPG konvertieren möchten. | App-Entwickler, App-Besitzer | 

### Pro\$1C-Code nach ECPG konvertieren
<a name="convert-pro-c-code-to-ecpg"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Unerwünschte Header entfernen. | Entfernen Sie die `include ` Header, die in PostgreSQL nicht erforderlich sind, wie`oci.h`, und`oratypes`. `sqlda` | App-Besitzer, App-Entwickler | 
| Variablendeklarationen aktualisieren. | Fügen Sie `EXEC SQL` Anweisungen für alle Variablendeklarationen hinzu, die als Hostvariablen verwendet werden.Entfernen Sie die `EXEC SQL VAR` Deklarationen wie die folgenden aus Ihrer Anwendung.<pre>EXEC SQL VAR query IS STRING(2048);</pre> | App-Entwickler, App-Besitzer | 
| Aktualisieren Sie die ROWNUM-Funktionalität. | Die `ROWNUM` Funktion ist in PostgreSQL nicht verfügbar. Ersetzen Sie dies in SQL-Abfragen durch die `ROW_NUMBER` Fensterfunktion.Pro\$1C-Code:<pre>SELECT SUBSTR(RTRIM(FILE_NAME,'.txt'),12) INTO :gcpclFileseq  <br />FROM   (SELECT FILE_NAME <br />FROM  DEMO_FILES_TABLE <br />WHERE FILE_NAME    LIKE '%POC%' <br />ORDER BY FILE_NAME DESC) FL2 <br />WHERE ROWNUM <=1 ORDER BY ROWNUM;</pre>ECPG-Kode:<pre>SELECT SUBSTR(RTRIM(FILE_NAME,'.txt'),12) INTO :gcpclFileseq  <br />FROM   (SELECT FILE_NAME , ROW_NUMBER() OVER (ORDER BY FILE_NAME DESC) AS ROWNUM<br />FROM  demo_schema.DEMO_FILES_TABLE <br />WHERE FILE_NAME    LIKE '%POC%'<br />ORDER BY FILE_NAME DESC) FL2 <br />WHERE ROWNUM <=1 ORDER BY ROWNUM; </pre> | App-Entwickler, App-Besitzer | 
| Aktualisieren Sie die Funktionsparameter, um Aliasvariablen zu verwenden. | In PostgreSQL können Funktionsparameter nicht als Hostvariablen verwendet werden. Überschreiben Sie sie mithilfe einer Aliasvariablen.Pro\$1C-Code:<pre>int processData(int referenceId){<br />  EXEC SQL char col_val[100];<br />  EXEC SQL select column_name INTO :col_val from table_name where col=:referenceId;<br />}</pre>ECPG-Kode:<pre>int processData(int referenceIdParam){<br />  EXEC SQL int referenceId = referenceIdParam;<br />  EXEC SQL char col_val[100];<br />  EXEC SQL select column_name INTO :col_val from table_name where col=:referenceId;<br />}</pre> | App-Entwickler, App-Besitzer | 
| Aktualisieren Sie die Strukturtypen. | Definieren Sie `struct` Typen in `EXEC SQL BEGIN` und `END` Blöcke mit`typedef`, wenn die `struct` Typvariablen als Hostvariablen verwendet werden. Wenn die `struct` Typen in Header (`.h`) -Dateien definiert sind, schließen Sie die Dateien mit `EXEC SQL` Include-Anweisungen ein.Pro\$1C-Code:Header-Datei () `demo.h`<pre>struct s_partition_ranges<br />{<br /> char   sc_table_group[31];<br /> char   sc_table_name[31];<br /> char   sc_range_value[10];<br />}; <br />struct s_partition_ranges_ind<br />{<br />  short    ss_table_group;<br />  short    ss_table_name;<br />  short    ss_range_value;<br />}; </pre>ECPG-Code:Header-Datei () `demo.h`<pre>EXEC SQL BEGIN DECLARE SECTION;<br />typedef struct <br />{<br />  char   sc_table_group[31];<br />  char   sc_table_name[31];<br />  char   sc_range_value[10];<br />} s_partition_ranges; <br />typedef struct <br />{<br />  short    ss_table_group;<br />  short    ss_table_name;<br />  short    ss_range_value;<br />} s_partition_ranges_ind; <br />EXEC SQL END DECLARE SECTION;</pre>Pro\$1C-Datei () `demo.pc`<pre>#include "demo.h"<br />struct s_partition_ranges gc_partition_data[MAX_PART_TABLE] ;<br />struct s_partition_ranges_ind gc_partition_data_ind[MAX_PART_TABLE] ;</pre>ECPG-Datei () `demo.pc`<pre>exec sql include "demo.h"<br />EXEC SQL BEGIN DECLARE SECTION;<br />s_partition_ranges gc_partition_data[MAX_PART_TABLE] ;<br />s_partition_ranges_ind gc_partition_data_ind[MAX_PART_TABLE] ;<br />EXEC SQL END DECLARE SECTION;</pre> | App-Entwickler, App-Besitzer | 
| Ändern Sie die Logik, um von Cursorn abzurufen. | Um mithilfe von Array-Variablen mehrere Zeilen aus Cursorn abzurufen, ändern Sie den zu verwendenden Code. `FETCH FORWARD`Pro\$1C-Code:<pre>EXEC SQL char  aPoeFiles[MAX_FILES][FILENAME_LENGTH];<br />EXEC SQL FETCH filename_cursor into :aPoeFiles;</pre>ECPG-Kode:<pre>EXEC SQL char  aPoeFiles[MAX_FILES][FILENAME_LENGTH];<br />EXEC SQL int fetchSize = MAX_FILES;<br />EXEC SQL FETCH FORWARD :fetchSize filename_cursor into :aPoeFiles;</pre> | App-Entwickler, App-Besitzer | 
| Ändern Sie Paketaufrufe, die keine Rückgabewerte haben. | Oracle-Paketfunktionen, die keine Rückgabewerte haben, sollten mit einer Indikatorvariablen aufgerufen werden. Wenn Ihre Anwendung mehrere Funktionen mit demselben Namen enthält oder wenn die Funktionen unbekannter Typen Laufzeitfehler erzeugen, typisieren Sie die Werte in die Datentypen.Pro\$1C-Code:<pre>void ProcessData (char *data , int id)<br />{        <br />        EXEC SQL EXECUTE<br />               BEGIN<br />                  pkg_demo.process_data (:data, :id);                                                                                    <br />               END;<br />       END-EXEC;<br />}</pre>ECPG-Kode:<pre>void ProcessData (char *dataParam, int idParam )<br />{<br />        EXEC SQL char *data = dataParam;<br />        EXEC SQL int id = idParam;<br />        EXEC SQL short rowInd;<br />        EXEC SQL short rowInd = 0;<br />        EXEC SQL SELECT pkg_demo.process_data (<br />                       inp_data => :data::text,<br />                       inp_id => :id<br />               ) INTO :rowInd;<br />}</pre> | App-Entwickler, App-Besitzer | 
| Schreiben Sie SQL\$1CURSOR-Variablen neu. | Schreiben Sie die `SQL_CURSOR` Variable und ihre Implementierung neu.Pro\$1C-Code:<pre>/* SQL Cursor */<br />SQL_CURSOR      demo_cursor;<br />EXEC SQL ALLOCATE :demo_cursor;<br />EXEC SQL EXECUTE<br />  BEGIN<br />      pkg_demo.get_cursor(     <br />        demo_cur=>:demo_cursor<br />      );<br />  END;<br />END-EXEC;</pre>ECPG-Kode:<pre>EXEC SQL DECLARE demo_cursor CURSOR FOR SELECT<br />         * from<br />    pkg_demo.open_filename_rc(<br />            demo_cur=>refcursor<br />          ) ;<br />EXEC SQL char open_filename_rcInd[100]; <br /># As the below function returns cursor_name as <br /># return we need to use char[] type as indicator. <br />EXEC SQL SELECT pkg_demo.get_cursor (<br />        demo_cur=>'demo_cursor'<br />    ) INTO :open_filename_rcInd;</pre> | App-Entwickler, App-Besitzer | 
| Wenden Sie gängige Migrationsmuster an. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-legacy-applications-from-oracle-pro-c-to-ecpg.html) | App-Entwickler, App-Besitzer | 
| Aktivieren Sie das Debugging, falls erforderlich.  | Um das ECPG-Programm im Debug-Modus auszuführen, fügen Sie dem Hauptfunktionsblock den folgenden Befehl hinzu.<pre>ECPGdebug(1, stderr); </pre> | App-Entwickler, App-Besitzer | 

### Kompilieren Sie ECPG-Programme
<a name="compile-ecpg-programs"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine ausführbare Datei für ECPG. | Wenn Sie eine eingebettete SQL C-Quelldatei mit dem Namen haben`prog1.pgc`, können Sie mithilfe der folgenden Befehlsfolge ein ausführbares Programm erstellen.<pre>ecpg prog1.pgc<br />cc -I/usr/local/pgsql/include -c prog1.c<br />cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg</pre> | App-Entwickler, App-Besitzer | 
| Erstellen Sie eine Make-Datei für die Kompilierung. | Erstellen Sie eine Make-Datei, um das ECPG-Programm zu kompilieren, wie in der folgenden Beispieldatei gezeigt.<pre>CFLAGS ::= $(CFLAGS) -I/usr/pgsql-12/include -g -Wall<br />LDFLAGS ::= $(LDFLAGS) -L/usr/pgsql-12/lib -Wl,-rpath,/usr/pgsql-12/lib<br />LDLIBS ::= $(LDLIBS) -lecpg<br />PROGRAMS = test <br />.PHONY: all clean<br />%.c: %.pgc<br />      ecpg $<<br />all: $(PROGRAMS)<br />clean:<br />    rm -f $(PROGRAMS) $(PROGRAMS:%=%.c) $(PROGRAMS:%=%.o)</pre> | App-Entwickler, App-Besitzer | 

### Testen der Anwendung
<a name="test-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie den Code. | Testen Sie den konvertierten Anwendungscode, um sicherzustellen, dass er ordnungsgemäß funktioniert. | App-Entwickler, App-Besitzer, Testingenieur | 

## Zugehörige Ressourcen
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-resources"></a>
+ [ECPG - Eingebettetes SQL in C](https://www.postgresql.org/docs/current/static/ecpg.html) (PostgreSQL-Dokumentation)
+ [Fehlerbehandlung](https://www.postgresql.org/docs/12/ecpg-errors.html) (PostgreSQL-Dokumentation)
+ [Warum den Oracle Pro\$1C/C\$1\$1 Precompiler verwenden](https://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_01int.htm#i2415) (Oracle-Dokumentation)

## Zusätzliche Informationen
<a name="migrate-legacy-applications-from-oracle-pro-c-to-ecpg-additional"></a>

PostgreSQL hat einen eingebetteten SQL-Precompiler, ECPG, der dem Oracle Pro\$1C-Precompiler entspricht. ECPG konvertiert C-Programme mit eingebetteten SQL-Anweisungen in Standard-C-Code, indem es die SQL-Aufrufe durch spezielle Funktionsaufrufen ersetzt. Die Ausgabedateien können dann mit jeder C-Compiler-Toolchain verarbeitet werden.

**Eingabe- und Ausgabedateien**

ECPG konvertiert jede Eingabedatei, die Sie in der Befehlszeile angeben, in die entsprechende C-Ausgabedatei. Wenn ein Eingabedateiname keine Dateierweiterung hat, wird .pgc angenommen. Die Erweiterung der Datei wird durch ersetzt, `.c` um den Namen der Ausgabedatei zu erstellen. Sie können jedoch den Standardnamen der Ausgabedatei überschreiben, indem Sie die `-o` Option verwenden.

Wenn Sie einen Bindestrich (`-`) als Namen der Eingabedatei verwenden, liest ECPG das Programm aus der Standardeingabe und schreibt in die Standardausgabe, sofern Sie dies nicht mit der `-o` Option überschreiben.

**Header-Dateien**

Wenn der PostgreSQL-Compiler die vorverarbeiteten C-Codedateien kompiliert, sucht er im PostgreSQL-Verzeichnis nach den ECPG-Header-Dateien. `include` Daher müssen Sie möglicherweise die `-I` Option verwenden, um den Compiler auf das richtige Verzeichnis zu verweisen (z. B.). `-I/usr/local/pgsql/include`

**Bibliotheken**

Programme, die C-Code mit Embedded SQL verwenden, müssen mit der `libecpg` Bibliothek verknüpft werden. Sie können beispielsweise die Linker-Optionen ` -L/usr/local/pgsql/lib -lecpg` verwenden.

Konvertierte ECPG-Anwendungen rufen Funktionen in der `libpq` Bibliothek über die Embedded SQL-Bibliothek (`ecpglib`) auf und kommunizieren mithilfe des Standardprotokolls mit dem PostgreSQL-Server. frontend/backend 

# Migrieren Sie virtuell generierte Spalten von Oracle nach PostgreSQL
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql"></a>

*Veeranjaneyulu Grandhi, Rajesh Madiwale und Ramesh Pathuri, Amazon Web Services*

## Zusammenfassung
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-summary"></a>

In Version 11 und früher bietet PostgreSQL keine Funktion, die direkt einer virtuellen Oracle-Spalte entspricht. Der Umgang mit virtuell generierten Spalten bei der Migration von Oracle Database zu PostgreSQL Version 11 oder früher ist aus zwei Gründen schwierig: 
+ Virtuelle Spalten sind während der Migration nicht sichtbar.
+ PostgreSQL unterstützt den `generate` Ausdruck vor Version 12 nicht.

Es gibt jedoch Problemumgehungen, um ähnliche Funktionen zu emulieren. Wenn Sie AWS Database Migration Service (AWS DMS) verwenden, um Daten von Oracle Database zu PostgreSQL Version 11 und früher zu migrieren, können Sie Triggerfunktionen verwenden, um die Werte in virtuell generierten Spalten aufzufüllen. Dieses Muster enthält Beispiele für Oracle-Datenbank- und PostgreSQL-Code, den Sie für diesen Zweck verwenden können. Auf AWS können Sie Amazon Relational Database Service (Amazon RDS) für PostgreSQL oder Amazon Aurora PostgreSQL-Compatible Edition für Ihre PostgreSQL-Datenbank verwenden.

Ab PostgreSQL Version 12 werden generierte Spalten unterstützt. Generierte Spalten können entweder spontan aus anderen Spaltenwerten berechnet oder berechnet und gespeichert werden. [Von PostgreSQL generierte Spalten](https://www.postgresql.org/docs/12/ddl-generated-columns.html) ähneln virtuellen Oracle-Spalten.

## Voraussetzungen und Einschränkungen
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle-Quelldatenbank 
+ PostgreSQL-Zieldatenbanken (auf Amazon RDS für PostgreSQL oder Aurora PostgreSQL-kompatibel)
+ [Erfahrung in der PL/PgSQL-Codierung](https://www.postgresql.org/docs/current/plpgsql.html)

**Einschränkungen**
+ Gilt nur für PostgreSQL-Versionen vor Version 12. 
+ Gilt für Oracle Database Version 11g oder höher.
+ Virtuelle Spalten werden in Datenmigrationstools nicht unterstützt.
+ Gilt nur für Spalten, die in derselben Tabelle definiert sind.
+ Wenn sich eine virtuell generierte Spalte auf eine deterministische benutzerdefinierte Funktion bezieht, kann sie nicht als Partitionierungsschlüsselspalte verwendet werden.
+ Die Ausgabe des Ausdrucks muss ein Skalarwert sein. Es kann keinen von Oracle angegebenen Datentyp, einen benutzerdefinierten Typ, oder zurückgeben. `LOB` `LONG RAW`
+ Indizes, die für virtuelle Spalten definiert sind, entsprechen funktionsbasierten Indizes in PostgreSQL.
+ Tabellenstatistiken müssen gesammelt werden.

## Tools
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-tools"></a>
+ [pgAdmin 4](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Dieses Tool bietet eine grafische Oberfläche, die die Erstellung, Wartung und Verwendung von Datenbankobjekten vereinfacht.
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/) ist eine kostenlose, integrierte Entwicklungsumgebung für die Arbeit mit SQL in Oracle-Datenbanken sowohl in herkömmlichen als auch in Cloud-Umgebungen. 

## Epen
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-epics"></a>

### Erstellen Sie Quell- und Zieldatenbanktabellen
<a name="create-source-and-target-database-tables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Oracle-Datenbankquelltabelle. | Erstellen Sie in Oracle Database eine Tabelle mit virtuell generierten Spalten, indem Sie die folgende Anweisung verwenden.<pre>CREATE TABLE test.generated_column<br />( CODE NUMBER,<br />STATUS VARCHAR2(12) DEFAULT 'PreOpen',<br />FLAG CHAR(1) GENERATED ALWAYS AS (CASE UPPER(STATUS) WHEN 'OPEN' THEN 'N' ELSE 'Y' END) VIRTUAL VISIBLE<br />);</pre>In dieser Quelltabelle werden die Daten in der `STATUS` Spalte über AWS DMS in die Zieldatenbank migriert. Die `FLAG` Spalte wird jedoch mithilfe von `generate by` Funktionen gefüllt, sodass diese Spalte für AWS DMS während der Migration nicht sichtbar ist. Um die Funktionalität von zu implementieren`generated by`, müssen Sie Trigger und Funktionen in der Zieldatenbank verwenden, um die Werte in der `FLAG` Spalte aufzufüllen, wie im nächsten Epic gezeigt. | DBA, App-Entwickler | 
| Erstellen Sie eine PostgreSQL-Zieltabelle auf AWS. | Erstellen Sie mithilfe der folgenden Anweisung eine PostgreSQL-Tabelle auf AWS.<pre>CREATE TABLE test.generated_column<br />(<br />    code integer not null,<br />    status character varying(12) not null ,<br />    flag character(1)<br />);</pre>In dieser Tabelle ist die `status` Spalte eine Standardspalte. Bei der `flag` Spalte handelt es sich um eine generierte Spalte, die auf den Daten in der `status` Spalte basiert. | DBA, App-Entwickler | 

### Erstellen Sie eine Triggerfunktion zur Behandlung der virtuellen Spalte in PostgreSQL
<a name="create-a-trigger-function-to-handle-the-virtual-column-in-postgresql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen PostgreSQL-Trigger. | Erstellen Sie in PostgreSQL einen Trigger.<pre>CREATE TRIGGER tgr_gen_column<br />AFTER INSERT OR UPDATE OF status ON test.generated_column<br />FOR EACH ROW <br />EXECUTE FUNCTION test.tgf_gen_column();</pre> | DBA, App-Entwickler | 
| Erstellen Sie eine PostgreSQL-Triggerfunktion. | Erstellen Sie in PostgreSQL eine Funktion für den Trigger. Diese Funktion füllt eine virtuelle Spalte, die von der Anwendung oder AWS DMS eingefügt oder aktualisiert wird, und validiert die Daten.<pre>CREATE OR REPLACE FUNCTION test.tgf_gen_column() RETURNS trigger AS $VIRTUAL_COL$<br />BEGIN<br />IF (TG_OP = 'INSERT') THEN<br />IF (NEW.flag IS NOT NULL) THEN<br />RAISE EXCEPTION 'ERROR: cannot insert into column "flag"' USING DETAIL = 'Column "flag" is a generated column.';<br />END IF;<br />END IF;<br />IF (TG_OP = 'UPDATE') THEN<br />IF (NEW.flag::VARCHAR != OLD.flag::varchar) THEN<br />RAISE EXCEPTION 'ERROR: cannot update column "flag"' USING DETAIL = 'Column "flag" is a generated column.';<br />END IF;<br />END IF;<br />IF TG_OP IN ('INSERT','UPDATE') THEN<br />IF (old.flag is NULL) OR (coalesce(old.status,'') != coalesce(new.status,'')) THEN<br />UPDATE test.generated_column<br />SET flag = (CASE UPPER(status) WHEN 'OPEN' THEN 'N' ELSE 'Y' END)<br />WHERE code = new.code;<br />END IF;<br />END IF;<br />RETURN NEW;<br />END<br />$VIRTUAL_COL$ LANGUAGE plpgsql;</pre> | DBA, App-Entwickler | 

### Testen Sie die Datenmigration mithilfe von AWS DMS
<a name="test-data-migration-by-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Replikationsinstanz. | Folgen Sie den [Anweisungen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Creating.html) in der AWS DMS-Dokumentation, um eine Replikationsinstanz zu erstellen. Die Replikationsinstanz sollte sich in derselben Virtual Private Cloud (VPC) wie Ihre Quell- und Zieldatenbanken befinden. | DBA, App-Entwickler | 
| Erstellen Sie Quell- und Zielendpunkte. | Folgen Sie den [Anweisungen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) in der AWS DMS-Dokumentation, um die Endpoints zu erstellen. | DBA, App-Entwickler | 
| Testen Sie die Endpunktverbindungen. | Sie können die Endpunktverbindungen testen, indem Sie die VPC und die Replikationsinstanz angeben und **Test ausführen** wählen. | DBA, App-Entwickler | 
| Erstellen und starten Sie eine Vollladeaufgabe. | Anweisungen finden Sie in der AWS DMS-Dokumentation unter Aufgaben [erstellen und Aufgabeneinstellungen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html) [unter Vollladen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.html). | DBA, App-Entwickler | 
| Überprüfen Sie die Daten für die virtuelle Spalte. | Vergleichen Sie die Daten in der virtuellen Spalte in der Quell- und Zieldatenbank. Sie können die Daten manuell validieren oder ein Skript für diesen Schritt schreiben. | DBA, App-Entwickler | 

## Zugehörige Ressourcen
<a name="migrate-virtual-generated-columns-from-oracle-to-postgresql-resources"></a>
+ [Erste Schritte mit AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) (AWS DMS-Dokumentation)
+ [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) (AWS DMS-Dokumentation)
+ [Verwenden einer PostgreSQL-Datenbank als Ziel für AWS DMS (AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html))
+ [Generierte Spalten in PostgreSQL (PostgreSQL-Dokumentation](https://www.postgresql.org/docs/12/ddl-generated-columns.html))
+ [Triggerfunktionen](https://www.postgresql.org/docs/12/plpgsql-trigger.html) (PostgreSQL-Dokumentation)
+ [Virtuelle Spalten](https://docs.oracle.com/database/121/SQLRF/statements_7002.htm#SQLRF01402) in der Oracle-Datenbank (Oracle-Dokumentation)

# Richten Sie die Oracle UTL\$1FILE-Funktionalität auf Aurora PostgreSQL-Compatible ein
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible"></a>

*Rakesh Raghav und Anuradha Chintha, Amazon Web Services*

## Zusammenfassung
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-summary"></a>

Im Rahmen Ihrer Migration von Oracle zu Amazon Aurora PostgreSQL-Compatible Edition in der Amazon Web Services (AWS) Cloud können Sie auf mehrere Herausforderungen stoßen. Beispielsweise ist die Migration von Code, der auf dem `UTL_FILE` Oracle-Hilfsprogramm basiert, immer eine Herausforderung. In Oracle PL/SQL wird das `UTL_FILE` Paket in Verbindung mit dem zugrunde liegenden Betriebssystem für Dateioperationen wie Lesen und Schreiben verwendet. Das `UTL_FILE` Hilfsprogramm funktioniert sowohl für Server- als auch für Client-Computersysteme. 

Amazon Aurora PostgreSQL-Compatible ist ein Angebot für verwaltete Datenbanken. Aus diesem Grund ist es nicht möglich, auf Dateien auf dem Datenbankserver zuzugreifen. Dieses Muster führt Sie durch die Integration von Amazon Simple Storage Service (Amazon S3) und Amazon Aurora PostgreSQL-kompatibel, um einen Teil der Funktionalität zu erreichen. `UTL_FILE` Mit dieser Integration können wir Dateien erstellen und verwenden, ohne Tools oder Dienste von Drittanbietern zum Extrahieren, Transformieren und Laden (ETL) zu verwenden.

Optional können Sie CloudWatch Amazon-Überwachung und Amazon SNS-Benachrichtigungen einrichten.

Wir empfehlen, diese Lösung gründlich zu testen, bevor Sie sie in einer Produktionsumgebung implementieren.

## Voraussetzungen und Einschränkungen
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Fachwissen zum AWS Database Migration Service (AWS DMS)
+ Fachkenntnisse in der Codierung PL/pgSQL 
+ Ein Amazon Aurora PostgreSQL-kompatibler Cluster
+ Ein S3-Bucket

**Einschränkungen**

Dieses Muster bietet nicht die Funktionalität, um das Oracle-Hilfsprogramm zu ersetzen. `UTL_FILE` Die Schritte und der Beispielcode können jedoch weiter verbessert werden, um Ihre Ziele bei der Datenbankmodernisierung zu erreichen.

**Produktversionen**
+ Amazon Aurora PostgreSQL-kompatible Ausgabe 11.9

## Architektur
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-architecture"></a>

**Zieltechnologie-Stack**
+ Amazon Aurora PostgreSQL-kompatibel
+ Amazon CloudWatch
+ Amazon-Simple-Notification-Service (Amazon-SNS)
+ Amazon S3

**Zielarchitektur**

Das folgende Diagramm zeigt eine allgemeine Darstellung der Lösung.

![\[Datendateien werden in einen S3-Bucket hochgeladen, mit der Erweiterung aws_s3 verarbeitet und an die Aurora-Instance gesendet.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/3aeecd46-1f87-41f9-a9cd-f8181f92e83f/images/4a6c5f5c-58fb-4355-b243-d09a15c1cec6.png)


1. Dateien werden aus der Anwendung in den S3-Bucket hochgeladen.

1. Die `aws_s3` Erweiterung greift mithilfe von PL/pgSQL auf die Daten zu und lädt die Daten in Aurora PostgreSQL-kompatibel hoch.

## Tools
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-tools"></a>
+ [Amazon Aurora PostgreSQL-kompatibel — Amazon Aurora PostgreSQL-Compatible](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) Edition ist eine vollständig verwaltete, PostgreSQL-kompatible und ACID-konforme relationale Datenbank-Engine. Sie kombiniert die Geschwindigkeit und Zuverlässigkeit kommerzieller High-End-Datenbanken mit der Wirtschaftlichkeit von Open-Source-Datenbanken.
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) — Die AWS-Befehlszeilenschnittstelle (AWS CLI) ist ein einheitliches Tool zur Verwaltung Ihrer AWS-Services. Mit nur einem Tool zum Herunterladen und Konfigurieren können Sie mehrere AWS-Services von der Befehlszeile aus steuern und mithilfe von Skripts automatisieren.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) — Amazon CloudWatch überwacht die Ressourcen und die Nutzung von Amazon S3.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) — Amazon Simple Storage Service (Amazon S3) ist Speicher für das Internet. In diesem Muster bietet Amazon S3 eine Speicherebene zum Empfangen und Speichern von Dateien für den Verbrauch und die Übertragung zum und vom Aurora PostgreSQL-kompatiblen Cluster.
+ [aws\$1s3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#aws_s3.table_import_from_s3) — Die `aws_s3` Erweiterung integriert Amazon S3 und Aurora PostgreSQL-kompatibel.
+ [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) — Amazon Simple Notification Service (Amazon SNS) koordiniert und verwaltet die Zustellung oder den Versand von Nachrichten zwischen Herausgebern und Kunden. In diesem Muster wird Amazon SNS zum Senden von Benachrichtigungen verwendet.
+ [pgAdmin](https://www.pgadmin.org/docs/) — pgAdmin ist ein Open-Source-Verwaltungstool für Postgres. pgAdmin 4 bietet eine grafische Oberfläche zum Erstellen, Verwalten und Verwenden von Datenbankobjekten.

**Code**

Um die erforderliche Funktionalität zu erreichen, erstellt das Muster mehrere Funktionen mit einer ähnlichen Benennung wie. `UTL_FILE` Der Abschnitt *Zusätzliche Informationen* enthält die Codebasis für diese Funktionen.

Ersetzen Sie den Code `testaurorabucket` durch den Namen Ihres Test-S3-Buckets. `us-east-1`Ersetzen Sie durch die AWS-Region, in der sich Ihr Test-S3-Bucket befindet.

## Epen
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-epics"></a>

### Integrieren Sie Amazon S3 und Aurora PostgreSQL-kompatibel
<a name="integrate-amazon-s3-and-aurora-postgresql-compatible"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie IAM-Richtlinien ein. | Erstellen Sie AWS Identity and Access Management (IAM) -Richtlinien, die Zugriff auf den S3-Bucket und die darin enthaltenen Objekte gewähren. Den Code finden Sie im Abschnitt *Zusätzliche Informationen*. | AWS-Administrator, DBA | 
| Fügen Sie Amazon S3 S3-Zugriffsrollen zu Aurora PostgreSQL hinzu. | Erstellen Sie zwei IAM-Rollen: eine Rolle für den Lese- und eine Rolle für den Schreibzugriff auf Amazon S3. Hängen Sie die beiden Rollen an den Aurora PostgreSQL-kompatiblen Cluster an: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.html)Weitere Informationen finden Sie in der Aurora PostgreSQL-kompatiblen Dokumentation zum [Import](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html) und [Export von Daten nach Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-s3-export.html). | AWS-Administrator, DBA | 

### Richten Sie die Erweiterungen in Aurora PostgreSQL-kompatibel ein
<a name="set-up-the-extensions-in-aurora-postgresql-compatible"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Erweiterung aws\$1commons. | Die `aws_commons` Erweiterung ist eine Abhängigkeit von der `aws_s3` Erweiterung. | DBA, Entwickler | 
| Erstellen Sie die Erweiterung aws\$1s3. | Die `aws_s3` Erweiterung interagiert mit Amazon S3. | DBA, Entwickler | 

### Validieren Sie die Amazon S3- und Aurora PostgreSQL-kompatible Integration
<a name="validate-amazon-s3-and-aurora-postgresql-compatible-integration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie den Import von Dateien aus Amazon S3 nach Aurora PostgreSQL. | Um den Import von Dateien in Aurora PostgreSQL-Compatible zu testen, erstellen Sie eine CSV-Beispieldatei und laden Sie sie in den S3-Bucket hoch. Erstellen Sie eine Tabellendefinition auf der Grundlage der CSV-Datei und laden Sie die Datei mithilfe der Funktion in die Tabelle. `aws_s3.table_import_from_s3` | DBA, Entwickler | 
| Testen Sie den Export von Dateien von Aurora PostgreSQL nach Amazon S3. | Um den Export von Dateien aus Aurora PostgreSQL-Compatible zu testen, erstellen Sie eine Testtabelle, füllen Sie sie mit Daten und exportieren Sie die Daten dann mithilfe der Funktion. `aws_s3.query_export_to_s3` | DBA, Entwickler | 

### Um das UTL\$1FILE-Hilfsprogramm nachzuahmen, erstellen Sie Wrapper-Funktionen
<a name="to-mimic-the-utl_file-utility-create-wrapper-functions"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das Schema utl\$1file\$1utility. | Das Schema hält die Wrapper-Funktionen zusammen. Führen Sie den folgenden Befehl aus, um das Schema zu erstellen.<pre>CREATE SCHEMA utl_file_utility;</pre> | DBA, Entwickler | 
| Erstellen Sie den Typ file\$1type. | Verwenden Sie den folgenden Code, um den `file_type` Typ zu erstellen.<pre>CREATE TYPE utl_file_utility.file_type AS (<br />    p_path character varying(30),<br />    p_file_name character varying<br />);<br /><br /><br /></pre> | DBA/Entwickler | 
| Erstellen Sie die Init-Funktion. | Die `init` Funktion initialisiert eine gemeinsame Variable wie oder. `bucket` `region` Den Code finden Sie im Abschnitt *Zusätzliche Informationen*. | DBA/Entwickler | 
| Erstellen Sie die Wrapper-Funktionen. | Erstellen Sie die Wrapper-Funktionen `fopen``put_line`, und. `fclose` Code finden Sie im Abschnitt *Zusätzliche Informationen*. | DBA, Entwickler | 

### Testen Sie die Wrapper-Funktionen
<a name="test-the-wrapper-functions"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie die Wrapper-Funktionen im Schreibmodus. | Um die Wrapper-Funktionen im Schreibmodus zu testen, verwenden Sie den Code im Abschnitt *Zusätzliche Informationen*. | DBA, Entwickler | 
| Testen Sie die Wrapper-Funktionen im Append-Modus. | *Um die Wrapper-Funktionen im Append-Modus zu testen, verwenden Sie den Code im Abschnitt Zusätzliche Informationen.* | DBA, Entwickler | 

## Zugehörige Ressourcen
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-resources"></a>
+ [Amazon S3 S3-Integration](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PostgreSQL.S3Import.html)
+ [Amazon S3](https://aws.amazon.com/s3/)
+ [Aurora](https://aws.amazon.com/rds/aurora/?nc2=h_ql_prod_db_aa&aurora-whats-new.sort-by=item.additionalFields.postDateTime&aurora-whats-new.sort-order=desc)
+ [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/)
+ [Amazon SNS](https://aws.amazon.com/sns/?nc2=h_ql_prod_ap_sns&whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc)

## Zusätzliche Informationen
<a name="set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible-additional"></a>

**Richten Sie IAM-Richtlinien ein**

Erstellen Sie die folgenden Richtlinien.


| 
| 
| Richtlinienname | JSON | 
| --- |--- |
| S3 IntRead | <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3integrationtest",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:ListBucket"<br />            ],<br />            "Resource": [<br />         "arn:aws:s3:::testaurorabucket/*",<br />         "arn:aws:s3:::testaurorabucket"<br />            ]<br />        }<br />    ]<br />}</pre> | 
| S3 IntWrite | <pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "S3integrationtest",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",                <br />                "s3:ListBucket"<br />            ],<br />            "Resource": [                "arn:aws:s3:::testaurorabucket/*",                "arn:aws:s3:::testaurorabucket"<br />            ]<br />        }<br />    ]<br />}</pre> | 

**Erstellen Sie die Init-Funktion**

Um allgemeine Variablen wie `bucket` oder zu initialisieren`region`, erstellen Sie die `init` Funktion mit dem folgenden Code.

```
CREATE OR REPLACE FUNCTION utl_file_utility.init(
    )
    RETURNS void
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
BEGIN
      perform set_config
      ( format( '%s.%s','UTL_FILE_UTILITY', 'region' )
      , 'us-east-1'::text
      , false );

      perform set_config
      ( format( '%s.%s','UTL_FILE_UTILITY', 's3bucket' )
      , 'testaurorabucket'::text
      , false );
END;
$BODY$;
```

**Erstellen Sie die Wrapper-Funktionen**

Erstellen Sie die `fclose` Wrapper-Funktionen `fopen``put_line`, und.

*öffnen*

```
CREATE OR REPLACE FUNCTION utl_file_utility.fopen(
    p_file_name character varying,
    p_path character varying,
    p_mode character DEFAULT 'W'::bpchar,
    OUT p_file_type utl_file_utility.file_type)
    RETURNS utl_file_utility.file_type
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
declare
    v_sql character varying;
    v_cnt_stat integer;
    v_cnt integer;
    v_tabname character varying;
    v_filewithpath character varying;
    v_region character varying;
    v_bucket character varying;

BEGIN
    /*initialize common variable */
    PERFORM utl_file_utility.init();
    v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
    v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );
    
    /* set tabname*/
    v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );
    v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;
    raise notice 'v_bucket %, v_filewithpath % , v_region %', v_bucket,v_filewithpath, v_region;
    
    /* APPEND MODE HANDLING; RETURN EXISTING FILE DETAILS IF PRESENT ELSE CREATE AN EMPTY FILE */
    IF p_mode = 'A' THEN
        v_sql := concat_ws('','create temp table if not exists ', v_tabname,' (col1 text)');
        execute v_sql;

        begin
        PERFORM aws_s3.table_import_from_s3 
            ( v_tabname, 
            '',  
            'DELIMITER AS ''#''', 
            aws_commons.create_s3_uri 
            (     v_bucket, 
                v_filewithpath ,
                v_region)
            );
        exception
            when others then
             raise notice 'File load issue ,%',sqlerrm;
             raise;
        end;
        execute concat_ws('','select count(*) from ',v_tabname) into v_cnt;

        IF v_cnt > 0 
        then
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
        else         
            PERFORM aws_s3.query_export_to_s3('select ''''', 
                            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)            
                              );

            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;        
        end if;
        v_sql := concat_ws('','drop table ', v_tabname);        
        execute v_sql;            
    ELSEIF p_mode = 'W' THEN
            PERFORM aws_s3.query_export_to_s3('select ''''', 
                            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)            
                              );
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
    END IF;    
    
EXCEPTION
        when others then
            p_file_type.p_path := p_path;
            p_file_type.p_file_name := p_file_name;
            raise notice 'fopenerror,%',sqlerrm;
            raise;
END;
$BODY$;
```

*put\$1line*

```
CREATE OR REPLACE FUNCTION utl_file_utility.put_line(
    p_file_name character varying,
    p_path character varying,
    p_line text,
    p_flag character DEFAULT 'W'::bpchar)
    RETURNS boolean
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
/**************************************************************************
* Write line, p_line in windows format to file, p_fp - with carriage return
* added before new line.
**************************************************************************/
declare
    v_sql varchar;
    v_ins_sql varchar;
    v_cnt INTEGER;
    v_filewithpath character varying;
    v_tabname  character varying;
    v_bucket character varying;
    v_region character varying;    

BEGIN
 PERFORM utl_file_utility.init();

/* check if temp table already exist */

 v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );

 v_sql := concat_ws('','select count(1) FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace where n.nspname like ''pg_temp_%''' 
                         ,' AND pg_catalog.pg_table_is_visible(c.oid) AND Upper(relname) = Upper( '''
                         ,  v_tabname ,''' ) ');
  
 execute v_sql into v_cnt;
  
  IF v_cnt = 0 THEN
         v_sql := concat_ws('','create temp table ',v_tabname,' (col text)');
        execute v_sql;
        /* CHECK IF APPEND MODE */
        IF upper(p_flag) = 'A' THEN
            PERFORM utl_file_utility.init();                        
            v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
            v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );
            
            /* set tabname*/            
            v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;            
            
            begin
               PERFORM aws_s3.table_import_from_s3 
                     ( v_tabname, 
                          '',  
                       'DELIMITER AS ''#''', 
                        aws_commons.create_s3_uri 
                           ( v_bucket, 
                               v_filewithpath, 
                               v_region    )
                    );
            exception
                when others then
                    raise notice  'Error Message : %',sqlerrm;
                    raise;
            end;    
        END IF;    
    END IF;
    /* INSERT INTO TEMP TABLE */              
    v_ins_sql := concat_ws('','insert into ',v_tabname,' values(''',p_line,''')');
    execute v_ins_sql;
    RETURN TRUE;
    exception
            when others then
                raise notice  'Error Message : %',sqlerrm;
                raise;
END;
$BODY$;
```

*schließen*

```
CREATE OR REPLACE FUNCTION utl_file_utility.fclose(
    p_file_name character varying,
    p_path character varying)
    RETURNS boolean
    LANGUAGE 'plpgsql'

    COST 100
    VOLATILE 
AS $BODY$
DECLARE
    v_filewithpath character varying;
    v_bucket character varying;
    v_region character varying;
    v_tabname character varying;
    v_sql character varying;
BEGIN
      PERFORM utl_file_utility.init();
  
    v_region := current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 'region' ) );
    v_bucket :=  current_setting( format( '%s.%s', 'UTL_FILE_UTILITY', 's3bucket' ) );

    v_tabname := substring(p_file_name,1,case when strpos(p_file_name,'.') = 0 then length(p_file_name) else strpos(p_file_name,'.') - 1 end );
    v_filewithpath := case when NULLif(p_path,'') is null then p_file_name else concat_ws('/',p_path,p_file_name) end ;

    raise notice 'v_bucket %, v_filewithpath % , v_region %', v_bucket,v_filewithpath, v_region ;
    
    /* exporting to s3 */
    perform aws_s3.query_export_to_s3
        (concat_ws('','select * from ',v_tabname,'  order by ctid asc'), 
            aws_commons.create_s3_uri(v_bucket, v_filewithpath, v_region)
        );
    v_sql := concat_ws('','drop table ', v_tabname);
    execute v_sql;    
    RETURN TRUE;
EXCEPTION 
       when others then
     raise notice 'error fclose %',sqlerrm;
     RAISE;
END;
$BODY$;
```

**Testen Sie Ihr Setup und Ihre Wrapper-Funktionen**

Verwenden Sie die folgenden anonymen Codeblöcke, um Ihr Setup zu testen.

*Testen Sie den Schreibmodus*

Der folgende Code schreibt eine Datei mit dem Namen `s3inttest` im S3-Bucket.

```
do $$
declare
l_file_name varchar := 's3inttest' ;
l_path varchar := 'integration_test' ;
l_mode char(1) := 'W';
l_fs utl_file_utility.file_type ;
l_status boolean;

begin
select * from
utl_file_utility.fopen( l_file_name, l_path , l_mode ) into l_fs ;
raise notice 'fopen : l_fs : %', l_fs;

select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket: for test purpose', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from utl_file_utility.fclose( l_file_name , l_path ) into l_status ;
raise notice 'fclose : l_status %', l_status;

end;
$$
```

*Testen Sie den Append-Modus*

Der folgende Code fügt Zeilen an die `s3inttest` Datei an, die im vorherigen Test erstellt wurde.

```
do $$
declare
l_file_name varchar := 's3inttest' ;
l_path varchar := 'integration_test' ;
l_mode char(1) := 'A';
l_fs utl_file_utility.file_type ;
l_status boolean;

begin
select * from
utl_file_utility.fopen( l_file_name, l_path , l_mode ) into l_fs ;
raise notice 'fopen : l_fs : %', l_fs;


select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket: for test purpose : append 1', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from
utl_file_utility.put_line( l_file_name, l_path ,'this is test file:in s3bucket : for test purpose : append 2', l_mode ) into l_status ;
raise notice 'put_line : l_status %', l_status;

select * from utl_file_utility.fclose( l_file_name , l_path ) into l_status ;
raise notice 'fclose : l_status %', l_status;

end;
$$
```

**Amazon SNS SNS-Benachrichtigungen**

Optional können Sie CloudWatch Amazon-Überwachung und Amazon SNS-Benachrichtigungen im S3-Bucket einrichten. Weitere Informationen finden Sie unter [Amazon S3 überwachen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/monitoring-overview.html) und [Amazon SNS SNS-Benachrichtigungen einrichten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html).

# Datenbankobjekte nach der Migration von Oracle zu Amazon Aurora PostgreSQL validieren
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql"></a>

*Venkatramana Chintha und Eduardo Valentim, Amazon Web Services*

## Zusammenfassung
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-summary"></a>

Dieses Muster beschreibt einen step-by-step Ansatz zur Validierung von Objekten nach der Migration einer Oracle-Datenbank zur Amazon Aurora PostgreSQL-Compatible Edition.

In diesem Muster werden Nutzungsszenarien und Schritte für die Validierung von Datenbankobjekten beschrieben. Weitere Informationen finden Sie im [AWS-Datenbank-Blog unter Validieren von Datenbankobjekten nach der Migration mit AWS SCT und [AWS](https://aws.amazon.com/blogs/) DMS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/).

## Voraussetzungen und Einschränkungen
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine lokale Oracle-Datenbank, die auf eine Aurora PostgreSQL-kompatible Datenbank migriert wurde. 
+ Anmeldeinformationen für die Aurora PostgreSQL-kompatible Datenbank, auf die die [RDSDataFullAccessAmazon-Richtlinie](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html) angewendet wurde. 
+ Dieses Muster verwendet den [Abfrage-Editor für Aurora Serverless DB-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html), der in der Amazon Relational Database Service (Amazon RDS) -Konsole verfügbar ist. Sie können dieses Muster jedoch mit jedem anderen Abfrage-Editor verwenden. 

**Einschränkungen**
+ Oracle SYNONYM-Objekte sind in PostgreSQL nicht verfügbar, können aber teilweise durch **Views** oder SET search\$1path-Abfragen validiert werden.
+ Der Amazon RDS-Abfrage-Editor ist nur in [bestimmten AWS-Regionen und für bestimmte MySQL- und PostgreSQL-Versionen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html) verfügbar.

## Architektur
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-architecture"></a>

 

![\[Database migration workflow showing on-premises Oracle to AWSAurora PostgreSQL via client program and validation scripts.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/7c028960-6dea-46ad-894d-e42cefd50c03/images/be5f8ae3-f5af-4c5e-9440-09ab410beaa1.png)


 

## Tools
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-tools"></a>

**Tools**
+ [Amazon Aurora PostgreSQL-Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) — Aurora PostgreSQL-Compatible ist eine vollständig verwaltete, PostgreSQL-kompatible und ACID-konforme relationale Datenbank-Engine, die die Geschwindigkeit und Zuverlässigkeit kommerzieller High-End-Datenbanken mit der Einfachheit und Wirtschaftlichkeit von Open-Source-Datenbanken kombiniert.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) — Amazon Relational Database Service (Amazon RDS) erleichtert die Einrichtung, den Betrieb und die Skalierung einer relationalen Datenbank in der AWS-Cloud. Dieser Service bietet kostengünstige und anpassbare Kapazität für eine Branchenstandards entsprechende relationale Datenbank sowie die Verwaltung gängiger Datenbankaufgaben.
+ [Abfrage-Editor für Aurora Severless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/query-editor.html) — Der Abfrage-Editor unterstützt Sie beim Ausführen von SQL-Abfragen in der Amazon RDS-Konsole. Sie können jede gültige SQL-Anweisung auf dem Aurora Serverless DB-Cluster ausführen, einschließlich Datenmanipulations- und Datendefinitionsanweisungen.

Um die Objekte zu validieren, verwenden Sie die vollständigen Skripten in der Datei „Objektvalidierungsskripten“ im Abschnitt „Anlagen“. Verwenden Sie die folgende Tabelle als Referenz.


| 
| 
| Oracle-Objekt | Zu verwendendes Skript | 
| --- |--- |
| Pakete | Abfrage 1 | 
| Tabellen | Abfrage 3 | 
| Ansichten | Abfrage 5 | 
| Sequenzen | Abfrage 7 | 
| Auslöser |  Abfrage 9 | 
| Primärschlüssel | Abfrage 11 | 
| Indizes | Abfrage 13 | 
| Einschränkungen prüfen | Abfrage 15 | 
| Fremdschlüssel  | Abfrage 17  | 


| 
| 
| PostgreSQL-Objekt | Zu verwendendes Skript | 
| --- |--- |
| Pakete | Abfrage 2 | 
| Tabellen | Abfrage 4 | 
| Ansichten | Abfrage 6 | 
| Sequenzen | Abfrage 8 | 
| Auslöser | Abfrage 10 | 
| Primärschlüssel | Abfrage 12 | 
| Indizes | Abfrage 14 | 
| Einschränkungen prüfen | Abfrage 16 | 
| Fremdschlüssel | Abfrage 18 | 

## Epen
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-epics"></a>

### Validieren Sie Objekte in der Oracle-Quelldatenbank
<a name="validate-objects-in-the-source-oracle-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie die Validierungsabfrage „Pakete“ in der Oracle-Quelldatenbank aus.  | Laden Sie die Datei „Objektvalidierungsskripten“ aus dem Abschnitt „Anlagen“ herunter und öffnen Sie sie. Stellen Sie über Ihr Client-Programm eine Connect zur Oracle-Quelldatenbank her. Führen Sie das Validierungsskript „Query 1" aus der Datei „Objektvalidierungsskripten“ aus. Wichtig: Geben Sie in den Abfragen Ihren Oracle-Benutzernamen statt „your\$1schema“ ein. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Tabellen“ aus.  | Führen Sie das Skript „Query 3" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Views“ aus.  | Führen Sie das Skript „Query 5" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Überprüfung der Anzahl der „Sequenzen“ durch.  | Führen Sie das Skript „Query 7" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Trigger“ aus.  | Führen Sie das Skript „Query 9" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage für „Primärschlüssel“ aus.  | Führen Sie das Skript „Query 11" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Indizes“ aus.  | Führen Sie das Validierungsskript „Query 13" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Check Constraints“ aus.  | Führen Sie das Skript „Query 15" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage für „Fremdschlüssel“ aus.  | Führen Sie das Validierungsskript „Query 17" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 

### Objekte in der Aurora PostgreSQL-kompatiblen Zieldatenbank validieren
<a name="validate-objects-in-the-target-aurora-postgresql-compatible-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie mithilfe des Abfrage-Editors eine Connect zur Aurora PostgreSQL-kompatiblen Zieldatenbank her. | Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon RDS-Konsole. Wählen Sie in der oberen rechten Ecke die AWS-Region aus, in der Sie die Aurora PostgreSQL-kompatible Datenbank erstellt haben. Wählen Sie im Navigationsbereich „Datenbanken“ und wählen Sie die Aurora PostgreSQL-kompatible Zieldatenbank aus. Wählen Sie unter „Aktionen“ die Option „Abfrage“ aus. Wichtig: Wenn Sie noch keine Verbindung mit der Datenbank hergestellt haben, wird die Seite „Mit Datenbank verbinden“ geöffnet. Anschließend müssen Sie Ihre Datenbankinformationen wie Benutzername und Passwort eingeben. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage für „Pakete“ aus. | Führen Sie das Skript „Query 2" aus der Datei „Objektvalidierungsskripten“ im Abschnitt „Anlagen“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Tabellen“ aus.  | Kehren Sie zum Abfrage-Editor für die Aurora PostgreSQL-kompatible Datenbank zurück und führen Sie das Skript „Query 4" aus der Datei „Object Validation scripts“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Views“ aus.  | Kehren Sie zum Abfrage-Editor für die Aurora PostgreSQL-kompatible Datenbank zurück und führen Sie das Skript „Query 6" aus der Datei „Object Validation scripts“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Überprüfung der Anzahl der „Sequenzen“ durch.  | Kehren Sie zum Abfrage-Editor für die Aurora PostgreSQL-kompatible Datenbank zurück und führen Sie das „Query 8"-Skript aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Trigger“ aus.  | Kehren Sie zum Abfrage-Editor für die Aurora PostgreSQL-kompatible Datenbank zurück und führen Sie das Skript „Query 10" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage für „Primärschlüssel“ aus.  | Kehren Sie zum Abfrage-Editor für die Aurora PostgreSQL-kompatible Datenbank zurück und führen Sie das Skript „Query 12" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Indizes“ aus.  | Kehren Sie zum Abfrage-Editor für die Aurora PostgreSQL-kompatible Datenbank zurück und führen Sie das Skript „Query 14" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage „Check Constraints“ aus.  | Führen Sie das Skript „Query 16" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 
| Führen Sie die Validierungsabfrage für „Fremdschlüssel“ aus.  | Führen Sie das Validierungsskript „Query 18" aus der Datei „Objektvalidierungsskripten“ aus. Stellen Sie sicher, dass Sie Ihre Abfrageergebnisse aufzeichnen. | Entwickler, DBA | 

### Vergleichen Sie die Validierungsdatensätze der Quell- und Zieldatenbank
<a name="compare-source-and-target-database-validation-records"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Vergleichen und validieren Sie beide Abfrageergebnisse.  | Vergleichen Sie die Abfrageergebnisse der Oracle- und Aurora PostgreSQL-kompatiblen Datenbanken, um alle Objekte zu validieren. Wenn sie alle übereinstimmen, wurden alle Objekte erfolgreich validiert. | Entwickler, DBA | 

## Zugehörige Ressourcen
<a name="validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql-resources"></a>
+ [Validierung von Datenbankobjekten nach einer Migration mit AWS SCT und AWS DMS](https://aws.amazon.com/blogs/database/validating-database-objects-after-migration-using-aws-sct-and-aws-dms/)
+ [Amazon Aurora Aurora-Funktionen: PostgreSQL-kompatible Edition](https://aws.amazon.com/rds/aurora/postgresql-features/)

## Anlagen
<a name="attachments-7c028960-6dea-46ad-894d-e42cefd50c03"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/7c028960-6dea-46ad-894d-e42cefd50c03/attachments/attachment.zip)

# Erneut hosten
<a name="migration-rehost-pattern-list"></a>

**Topics**
+ [Beschleunigen Sie die Erkennung und Migration von Microsoft-Workloads zu AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [Erstellen Sie einen Genehmigungsprozess für Firewallanfragen während einer Rehost-Migration zu AWS](create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws.md)
+ [EC2 Windows-Instances in ein AWS Managed Services Services-Konto aufnehmen und migrieren](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Migrieren Sie eine Couchbase Server-Datenbank zu Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Migrieren Sie Db2 for LUW zu Amazon, EC2 indem Sie den Protokollversand verwenden, um die Ausfallzeit zu reduzieren](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Migrieren Sie Db2 for LUW zu Amazon EC2 mit hochverfügbarer Disaster Recovery](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Migrieren Sie IIS-gehostete Anwendungen mithilfe EC2 von appcmd.exe zu Amazon](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.md)
+ [Migrieren Sie EC2 mithilfe des Application Migration Service eine lokale Microsoft SQL Server-Datenbank zu Amazon](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Migrieren Sie einen F5 BIG-IP-Workload zu F5 BIG-IP VE auf dem AWS Cloud](migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud.md)
+ [Migrieren Sie eine lokale Go-Webanwendung mithilfe der binären Methode zu AWS Elastic Beanstalk](migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.md)
+ [Migrieren Sie einen lokalen SFTP-Server auf AWS AWS Transfer for SFTP](migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp.md)
+ [Migrieren Sie eine lokale VM EC2 mithilfe des AWS Application Migration Service zu Amazon](migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.md)
+ [Migrieren Sie kleine Datenmengen von der lokalen Infrastruktur zu Amazon S3 mit AWS SFTP](migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank zu Oracle auf Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mithilfe EC2 von Oracle Data Pump zu Amazon](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.md)
+ [Migrieren Sie RHEL-BYOL-Systeme mithilfe von AWS MGN zu Instances mit AWS-Lizenz](migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Rehosten Sie lokale Workloads in der AWS-Cloud: Migrationscheckliste](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.md)
+ [Richten Sie mithilfe von Amazon eine Multi-AZ-Infrastruktur für einen SQL Server Always On FCI ein FSx](set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.md)
+ [Verwenden Sie BMC Discovery-Abfragen, um Migrationsdaten für die Migrationsplanung zu extrahieren](use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning.md)

# Beschleunigen Sie die Erkennung und Migration von Microsoft-Workloads zu AWS
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws"></a>

*Ali Alzand, Amazon Web Services*

## Zusammenfassung
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie das [ PowerShell Modul Migration Validator Toolkit](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads) verwenden, um Ihre Microsoft-Workloads zu erkennen und zu AWS zu migrieren. Das Modul führt mehrere Prüfungen und Validierungen für häufige Aufgaben im Zusammenhang mit beliebigen Microsoft-Workloads durch. Das Modul sucht beispielsweise nach Instances, an die möglicherweise mehrere Festplatten angeschlossen sind, oder nach Instances, die viele IP-Adressen verwenden. Eine vollständige Liste der Prüfungen, die das Modul durchführen kann, finden Sie im Abschnitt [Prüfungen](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads#checks) auf der GitHub Seite des Moduls.

Das PowerShell Modul Migration Validator Toolkit kann Ihrem Unternehmen helfen, den Zeit- und Arbeitsaufwand für die Ermittlung der Anwendungen und Dienste zu reduzieren, die auf Ihren Microsoft-Workloads ausgeführt werden. Das Modul unterstützt Sie außerdem dabei, die Konfigurationen Ihrer Workloads zu identifizieren, sodass Sie herausfinden können, ob Ihre Konfigurationen auf AWS unterstützt werden. Das Modul bietet auch Empfehlungen für die nächsten Schritte und Abhilfemaßnahmen, sodass Sie Fehlkonfigurationen vor, während oder nach der Migration vermeiden können.

## Voraussetzungen und Einschränkungen
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-prereqs"></a>

**Voraussetzungen**
+ Lokales Administratorkonto
+ PowerShell 4.0

**Einschränkungen**
+ Funktioniert nur auf Microsoft Windows Server 2012 R2 oder höher

## Tools
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-tools"></a>

**Tools**
+ PowerShell 4.0

**Code-Repository**

[Das Migration Validator PowerShell Toolkit-Modul für dieses Muster ist im Repository -microsoft-workloads verfügbar. GitHub migration-validator-toolkit-for](https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads)

## Epen
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-epics"></a>

### Führen Sie das PowerShell Modul Migration Validator Toolkit auf einem einzigen Ziel aus
<a name="run-the-migration-validator-toolkit-powershell-module-on-a-single-target"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie das Modul herunter, extrahieren Sie es, importieren Sie es und rufen Sie es auf. | Wählen Sie eine der folgenden Methoden, um das Modul herunterzuladen und bereitzustellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Führen Sie das PowerShell Skript aus**Führen Sie in PowerShell den folgenden Beispielcode aus:<pre>#MigrationValidatorToolkit<br />$uri = 'https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads/archive/refs/heads/main.zip'<br />$destination = (Get-Location).Path<br />if ((Test-Path -Path "$destination\MigrationValidatorToolkit.zip" -PathType Leaf) -or (Test-Path -Path "$destination\MigrationValidatorToolkit")) {<br />    write-host "File $destination\MigrationValidatorToolkit.zip or folder $destination\MigrationValidatorToolkit found, exiting"<br />}else {<br />    Write-host "Enable TLS 1.2 for this PowerShell session only."<br />    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12<br />    $webClient = New-Object System.Net.WebClient<br />    Write-host "Downloading MigrationValidatorToolkit.zip"<br />    $webClient.DownloadFile($uri, "$destination\MigrationValidatorToolkit.zip")<br />    Write-host "MigrationValidatorToolkit.zip download successfully"<br />    Add-Type -Assembly "system.io.compression.filesystem"<br />    [System.IO.Compression.ZipFile]::ExtractToDirectory("$destination\MigrationValidatorToolkit.zip","$destination\MigrationValidatorToolkit")<br />    Write-host "Extracting MigrationValidatorToolkit.zip complete successfully"<br />    Import-Module "$destination\MigrationValidatorToolkit\migration-validator-toolkit-for-microsoft-workloads-main\MigrationValidatorToolkit.psm1"; Invoke-MigrationValidatorToolkit<br />}</pre>Der Code lädt das Modul aus einer ZIP-Datei herunter. Anschließend extrahiert, importiert und ruft der Code das Modul auf.**Laden Sie die ZIP-Datei herunter und extrahieren Sie sie**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)**Klonen Sie das Repository GitHub **[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Systemadministrator | 
| Rufen Sie das Modul manuell auf. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)[Format und Tabellenformat](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-table?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit</pre>[Format](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/format-list?view=powershell-7.3) der Liste:<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -List</pre>[Ausgabeformat: GridView](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/out-gridview?view=powershell-7.3)<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -GridView</pre>[ConvertTo-CSv-Format](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-csv?view=powershell-7.3):<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-MigrationValidatorToolkit -csv</pre> | Systemadministrator | 

### Führen Sie das Modul Migration Validator Toolkit PowerShell auf mehreren Zielen aus
<a name="run-the-migration-validator-toolkit-powershell-module-on-multiple-targets"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die ZIP-Datei herunter oder klonen Sie das GitHub Repository. | Wählen Sie eine der folgenden Optionen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)<pre>git clone https://github.com/aws-samples/migration-validator-toolkit-for-microsoft-workloads.git</pre> | Systemadministrator | 
| Aktualisieren Sie die Liste server.csv. | Wenn Sie die ZIP-Datei heruntergeladen haben, gehen Sie wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | Systemadministrator | 
| Rufen Sie das Modul auf. | Sie können jeden Computer innerhalb der Domäne verwenden, der einen Domänenbenutzer verwendet, der Administratorzugriff auf Zielcomputer hat.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html)<pre>Import-Module .\MigrationValidatorToolkit.psm1;Invoke-DomainComputers</pre>Die CSV-Ausgabedatei wird `MigrationValidatorToolkit\Outputs\folder` mit dem Präfixnamen `DomainComputers_MigrationAutomations_YYYY-MM-DDTHH-MM-SS` gespeichert. | Systemadministrator | 

## Fehlerbehebung
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| `MigrationValidatorToolkit`schreibt Informationen über Ausführungen, Befehle und Fehler in Protokolldateien auf dem laufenden Host. | Sie können Protokolldateien manuell am folgenden Speicherort anzeigen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.html) | 

## Zugehörige Ressourcen
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-resources"></a>
+ [Optionen, Tools und bewährte Methoden für die Migration von Microsoft-Workloads zu AWS (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-microsoft-workloads-aws/introduction.html) Prescriptive Guidance)
+ [Microsoft-Migrationsmuster](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migration-migration-patterns-by-workload-microsoft-pattern-list.html) (AWS Prescriptive Guidance)
+ [Kostenlose Cloud-Migrationsservices auf AWS](https://aws.amazon.com/free/migration/) (AWS-Dokumentation)
+ [Vordefinierte Aktionen nach der Markteinführung](https://docs.aws.amazon.com/mgn/latest/ug/predefined-post-launch-actions.html) (Dokumentation zum Anwendungsmarketing)

## Zusätzliche Informationen
<a name="accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws-additional"></a>

**Häufig gestellte Fragen**

*Wo kann ich das Modul Migration Validator Toolkit ausführen? PowerShell *

Sie können das Modul auf Microsoft Windows Server 2012 R2 oder höher ausführen.

*Wann führe ich dieses Modul aus?*

Wir empfehlen, dass Sie das Modul während der [Bewertungsphase](https://aws.amazon.com/cloud-migration/how-to-migrate/) der Migration ausführen.

*Ändert das Modul meine vorhandenen Server?*

Nein. Alle Aktionen in diesem Modul sind schreibgeschützt.

*Wie lange dauert es, das Modul auszuführen?*

Die Ausführung des Moduls dauert in der Regel 1—5 Minuten, hängt jedoch von der Ressourcenzuweisung Ihres Servers ab.

*Welche Berechtigungen benötigt das Modul, um ausgeführt zu werden?*

Sie müssen das Modul von einem lokalen Administratorkonto aus ausführen.

*Kann ich das Modul auf physischen Servern ausführen?*

Ja, sofern das Betriebssystem Microsoft Windows Server 2012 R2 oder höher ist.

*Wie führe ich das Modul skalierbar für mehrere Server aus?*

Um das Modul auf mehreren domänengebundenen Computern in großem Umfang auszuführen, folgen Sie den Schritten im Abschnitt *Ausführen des Migration Validator PowerShell Toolkit-Moduls auf mehreren Zielen* in diesem Handbuch. Verwenden Sie für Computer, die nicht in eine Domäne eingebunden sind, einen Remote-Aufruf oder führen Sie das Modul lokal aus, indem Sie den Schritten im Modul *Migration Validator Toolkit PowerShell auf einem einzelnen Ziel ausführen* in diesem Handbuch folgen.

# Erstellen Sie einen Genehmigungsprozess für Firewallanfragen während einer Rehost-Migration zu AWS
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Zusammenfassung
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-summary"></a>

Wenn Sie [Cloud Migration Factory on AWS für eine Rehost-Migration auf](https://aws.amazon.com/solutions/implementations/cloud-migration-factory-on-aws/) die verwenden [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)möchten, ist eine der Voraussetzungen AWS Cloud, dass Sie die TCP-Ports 443 und 1500 offen halten müssen. In der Regel erfordert das Öffnen dieser Firewall-Ports die Zustimmung Ihres Informationssicherheitsteams (InfoSec).

In diesem Muster wird beschrieben, wie Sie bei einer Rehost-Migration zum die Genehmigung einer Firewall-Anfrage von einem InfoSec Team einholen. AWS Cloud Sie können dieses Verfahren verwenden, um zu verhindern, dass Ihre Firewall-Anfrage vom InfoSec Team abgelehnt wird, was teuer und zeitaufwändig werden kann. Der Firewall-Anforderungsprozess umfasst zwei Überprüfungs- und Genehmigungsschritte zwischen AWS Migrationsberatern und Führungskräften, die mit Ihren InfoSec und den Anwendungsteams zusammenarbeiten, um die Firewall-Ports zu öffnen.

Bei diesem Muster wird davon ausgegangen, dass Sie eine Rehost-Migration mit AWS Beratern oder Migrationsspezialisten aus Ihrem Unternehmen planen. Sie können dieses Muster verwenden, wenn in Ihrer Organisation kein Firewall-Genehmigungsverfahren oder kein Formular zur pauschalen Genehmigung für Firewallanfragen eingerichtet wurde. Weitere Informationen dazu finden Sie im Abschnitt *Einschränkungen* dieses Musters. Weitere Informationen zu den Netzwerkanforderungen für den Application Migration Service finden Sie unter [Netzwerkanforderungen](https://docs.aws.amazon.com/mgn/latest/ug/Network-Requirements.html) in der Dokumentation zum Application Migration Service.

## Voraussetzungen und Einschränkungen
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-prereqs"></a>

**Voraussetzungen**
+ Eine geplante Rehost-Migration mit AWS Beratern oder Migrationsspezialisten aus Ihrem Unternehmen
+ Die für die Migration des Stacks erforderlichen Port- und IP-Informationen
+ Bestehende und future Zustandsarchitekturdiagramme
+ Firewall-Informationen über die lokale Infrastruktur und die Zielinfrastruktur, die Ports und zone-to-zone den Verkehrsfluss
+ Eine Checkliste zur Überprüfung der Firewall-Anfrage (im Anhang)
+ Ein Dokument zur Firewall-Anforderung, das gemäß den Anforderungen Ihres Unternehmens konfiguriert wurde
+ Eine Kontaktliste für die Prüfer und Genehmiger der Firewall, einschließlich der folgenden Rollen:
  + **Einreicher der Firewall-Anfrage — Spezialist oder Berater** für AWS Migration. Der Einsender der Firewall-Anfrage kann auch ein Migrationsspezialist aus Ihrem Unternehmen sein.
  + **Überprüfer von Firewall-Anfragen** — In der Regel handelt es sich dabei um den zentralen Ansprechpartner (SPOC) von. AWS
  + **Genehmiger für Firewall-Anfragen** — Ein InfoSec Teammitglied.

**Einschränkungen**
+ Dieses Muster beschreibt einen generischen Genehmigungsprozess für Firewallanfragen. Die Anforderungen können für einzelne Organisationen unterschiedlich sein.
+ Stellen Sie sicher, dass Sie die Änderungen an Ihrem Firewall-Anforderungsdokument nachverfolgen.

Die folgende Tabelle zeigt die Anwendungsfälle für dieses Muster.


| 
| 
| Verfügt Ihr Unternehmen bereits über ein Firewall-Genehmigungsverfahren? | Verfügt Ihr Unternehmen bereits über ein Firewall-Antragsformular?  | Vorgeschlagene Aktion | 
| --- |--- |--- |
| Ja | Ja | Arbeiten Sie mit AWS Beratern oder Ihren Migrationsspezialisten zusammen, um den Prozess Ihres Unternehmens zu implementieren. | 
| Nein | Ja | Verwenden Sie den Firewall-Genehmigungsprozess dieses Musters. Verwenden Sie entweder einen AWS Berater oder einen Migrationsspezialisten aus Ihrem Unternehmen, um das Formular zur pauschalen Genehmigung für die Firewall-Anfrage einzureichen. | 
| Nein | Nein | Verwenden Sie den Firewall-Genehmigungsprozess dieses Musters. Verwenden Sie entweder einen AWS Berater oder einen Migrationsspezialisten aus Ihrem Unternehmen, um das Formular zur pauschalen Genehmigung für die Firewall-Anfrage einzureichen. | 

## Architektur
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-architecture"></a>

Das folgende Diagramm zeigt die Schritte für den Genehmigungsprozess für Firewallanfragen.

![\[Prozess für die Genehmigung von Firewallanfragen durch ein InfoSec Team während einer Rehost-Migration zur AWS-Cloud.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/cf9b58ad-ab6f-43d3-92da-968529c8d042/images/c672f7ce-6e9f-4dbc-bf2c-4272a6c4432b.png)


## Tools
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-tools"></a>

Sie können Scanner-Tools wie [Palo Alto Networks](https://www.paloaltonetworks.com/) oder [SolarWinds](https://www.solarwinds.com/)zur Analyse und Validierung von Firewalls und IP-Adressen verwenden.

## Epen
<a name="create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws-epics"></a>

### Analysieren Sie die Firewall-Anfrage
<a name="analyze-the-firewall-request"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie die Ports und IP-Adressen. | Der Absender der Firewall-Anfrage führt eine erste Analyse durch, um die erforderlichen Firewall-Ports und IP-Adressen zu ermitteln. Sobald dieser Vorgang abgeschlossen ist, wird Ihr InfoSec Team aufgefordert, die erforderlichen Ports zu öffnen und die IP-Adressen zuzuordnen. | AWS-Cloud-Ingenieur, Migrationsspezialist | 

### Validieren Sie die Firewall-Anfrage
<a name="validate-the-firewall-request"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Firewall-Informationen. | Der AWS Cloud Techniker vereinbart ein Treffen mit Ihrem InfoSec Team. Während dieses Treffens untersucht und validiert der Techniker die Informationen zur Firewall-Anforderung.In der Regel handelt es sich bei dem Absender der Firewall-Anfrage um dieselbe Person wie der Firewall-Anforderer. Diese Überprüfungsphase kann auf der Grundlage des Feedbacks des Genehmiger iterativ werden, falls etwas beachtet oder empfohlen wird. | AWS-Cloud-Ingenieur, Migrationsspezialist | 
| Aktualisieren Sie das Dokument mit der Firewall-Anforderung. | Nachdem das InfoSec Team sein Feedback geteilt hat, wird das Dokument mit der Firewall-Anforderung bearbeitet, gespeichert und erneut hochgeladen. Dieses Dokument wird nach jeder Iteration aktualisiert.Wir empfehlen, dieses Dokument in einem versionskontrollierten Speicherordner zu speichern. Das bedeutet, dass alle Änderungen nachverfolgt und korrekt angewendet werden. | AWS-Cloud-Ingenieur, Migrationsspezialist | 

### Reichen Sie die Firewall-Anfrage ein
<a name="submit-the-firewall-request"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Reichen Sie die Firewall-Anfrage ein. | Nachdem der Genehmigungsberechtigte für die Firewall-Anfrage die pauschale Genehmigungsanfrage genehmigt hat, reicht der AWS Cloud Techniker die Firewall-Anfrage ein. In der Anfrage werden die Ports angegeben, die geöffnet sein müssen, und die IP-Adressen, die für die Zuordnung und Aktualisierung der erforderlich sind. AWS-KontoSie können Vorschläge machen oder Feedback geben, nachdem die Firewall-Anfrage eingereicht wurde. Wir empfehlen Ihnen, diesen Feedback-Prozess zu automatisieren und alle Änderungen über einen definierten Workflow-Mechanismus zu versenden.  | AWS-Cloud-Ingenieur, Migrationsspezialist | 

## Anlagen
<a name="attachments-cf9b58ad-ab6f-43d3-92da-968529c8d042"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/cf9b58ad-ab6f-43d3-92da-968529c8d042/attachments/attachment.zip)

# EC2 Windows-Instances in ein AWS Managed Services Services-Konto aufnehmen und migrieren
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account"></a>

*Anil Kunapareddy und Venkatramana Chintha, Amazon Web Services*

## Zusammenfassung
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-summary"></a>

Dieses Muster erklärt den step-by-step Prozess der Migration und Aufnahme von Amazon Elastic Compute Cloud (Amazon EC2) Windows-Instances in ein Amazon Web Services (AWS) Managed Services (AMS) -Konto. AMS kann Ihnen helfen, die Instance effizienter und sicherer zu verwalten. AMS bietet betriebliche Flexibilität, verbessert Sicherheit und Compliance und hilft Ihnen, Kapazitäten zu optimieren und Kosten zu senken.

Dieses Muster beginnt mit einer EC2 Windows-Instance, die Sie in ein Staging-Subnetz in Ihrem AMS-Konto migriert haben. Für diese Aufgabe stehen eine Vielzahl von Migrationsservices und Tools zur Verfügung, z. B. der AWS Application Migration Service.

Um eine Änderung an Ihrer von AMS verwalteten Umgebung vorzunehmen, erstellen Sie eine Änderungsanforderung (Request for Change, RFC) für einen bestimmten Vorgang oder eine bestimmte Aktion und reichen diese ein. Mithilfe eines AMS Workload Ingest (WIGS) -RFC nehmen Sie die Instance in das AMS-Konto auf und erstellen ein benutzerdefiniertes Amazon Machine Image (AMI). Anschließend erstellen Sie die AMS-verwaltete EC2 Instance, indem Sie einen weiteren RFC zur Erstellung eines Stacks einreichen. EC2 Weitere Informationen finden Sie unter [AMS Workload Ingest](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html) in der AMS-Dokumentation.

## Voraussetzungen und Einschränkungen
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-prereqs"></a>

**Voraussetzungen**
+ Ein aktives, von AMS verwaltetes AWS-Konto
+ Eine bestehende landing zone
+ Berechtigungen zum Vornehmen von Änderungen in der von AMS verwalteten VPC
+ Eine Amazon EC2 Windows-Instance in einem Staging-Subnetz in Ihrem AMS-Konto
+ Erfüllung der [allgemeinen Voraussetzungen](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-instance-prereqs.html) für die Migration von Workloads mithilfe von AMS WIGS
+ Erfüllung der [Windows-Voraussetzungen](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-prereqs-win.html) für die Migration von Workloads mit AMS WIGS

**Einschränkungen**
+ Dieses Muster gilt für EC2 Instanzen, auf denen Windows Server ausgeführt wird. Dieses Muster gilt nicht für Instanzen, auf denen andere Betriebssysteme wie Linux ausgeführt werden.

## Architektur
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-architecture"></a>

**Quelltechnologie-Stack**

Amazon EC2 Windows-Instance in einem Staging-Subnetz in Ihrem AMS-Konto

**Zieltechnologie-Stack**

Von AWS Managed Services (AMS) verwaltete Amazon EC2 Windows-Instance

**Zielarchitektur**

![\[Prozess zur Migration und Aufnahme von Amazon EC2 Windows-Instances in ein AWS Managed Services Services-Konto.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/393c21cb-b6c6-4446-b597-b62e29fdb7f8/images/0b2fa855-7460-49f8-9e7f-3485e6ce1745.png)


## Tools
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/concepts.html) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können Amazon verwenden EC2 , um so viele oder so wenige virtuelle Server zu starten, wie Sie benötigen, und Sie können nach oben oder unten skalieren.
+ [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.
+ Mit [AWS Managed Services (AMS)](https://docs.aws.amazon.com/managedservices/?id=docs_gateway) können Sie effizienter und sicherer arbeiten, indem Sie Ihre AWS-Infrastruktur kontinuierlich verwalten, einschließlich Überwachung, Vorfallmanagement, Sicherheitsberatung, Patch-Support und Backup für AWS-Workloads.

**Andere Dienste**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)ist ein Automatisierungs- und Konfigurationsverwaltungsprogramm von Microsoft, das unter Windows, Linux und macOS läuft.

## Epen
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-epics"></a>

### Konfigurieren Sie die Einstellungen auf der Instanz
<a name="configure-settings-on-the-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ändern Sie die DNS-Client-Einstellungen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingenieur für Migration | 
| Ändern Sie die Windows Update-Einstellungen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingenieur für Migration | 
| Aktivieren Sie die Firewall. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingenieur für Migration | 

### Bereiten Sie die Instanz für AMS WIGS vor
<a name="prepare-the-instance-for-ams-wigs"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereinigen Sie die Instanz und bereiten Sie sie vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingenieur für Migration | 
| Reparieren Sie die Datei sppnp.dll. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingenieur für Migration | 
| Führen Sie das Pre-WIG-Validierungsskript aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Migrationsingenieur | 
| Erstellen Sie das Failsafe-AMI. | Nachdem die Pre-WIG-Validierung bestanden wurde, erstellen Sie wie folgt ein Pre-Ingestion-AMI:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html)Weitere Informationen finden Sie unter [AMI \$1 Create](https://docs.aws.amazon.com/managedservices/latest/ctref/deployment-advanced-ami-create.html) in der AMS-Dokumentation. | Ingenieur für Migration | 

### Investieren und validieren Sie die Instanz
<a name="ingest-and-validate-the-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Reichen Sie den RFC ein, um den Workload-Ingest-Stack zu erstellen. | Reichen Sie eine Änderungsanforderung (RFC) ein, um das AMS WIGS zu starten. Anweisungen finden Sie unter [Workload Ingest Stack: Creating](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-workload-ingest-col.html) in der AMS-Dokumentation. Dadurch wird die Workload-Aufnahme gestartet und die gesamte von AMS benötigte Software installiert, einschließlich Backup-Tools, EC2 Amazon-Verwaltungssoftware und Antivirensoftware. | Ingenieur für Migration | 
| Bestätigen Sie die erfolgreiche Migration. | Nachdem die Workload-Erfassung abgeschlossen ist, können Sie die AMS-verwaltete Instance und das AMS-aufgenommene AMI sehen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingenieur für Migration | 

### Starten Sie die Instanz im AMS-Zielkonto
<a name="launch-the-instance-in-the-target-ams-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Reichen Sie den RFC ein, um einen EC2 Stack zu erstellen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.html) | Ingenieur für Migration | 

## Zugehörige Ressourcen
<a name="ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account-resources"></a>

**AWS Prescriptive Guidance**
+ [Automatisieren Sie Aktivitäten zur Erfassung vor dem Workload für AWS Managed Services unter Windows](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automate-pre-workload-ingestion-activities-for-aws-managed-services-on-windows.html)
+ [Automatisches Erstellen eines RFC in AMS mit Python](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automatically-create-an-rfc-in-ams-using-python.html?did=pg_card&trk=pg_card)

**AMS-Dokumentation**
+ [Erfassung von AMS-Workloads](https://docs.aws.amazon.com/managedservices/latest/appguide/ams-workload-ingest.html)
+ [Wie die Migration Ihre Ressourcen verändert](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-migrate-changes.html)
+ [Migration von Workloads: Standardprozess](https://docs.aws.amazon.com/managedservices/latest/appguide/mp-migrate-stack-process.html)

**Ressourcen für Marketing**
+ [AWS Managed Services](https://aws.amazon.com/managed-services/)
+ [AWS Managed Services FAQs](https://aws.amazon.com/managed-services/faqs/)
+ [Ressourcen für AWS Managed Services](https://aws.amazon.com/managed-services/resources/)
+ [Funktionen von AWS Managed Services](https://aws.amazon.com/managed-services/features/)

# Migrieren Sie eine Couchbase Server-Datenbank zu Amazon EC2
<a name="migrate-couchbase-server-ec2"></a>

*Subhani Shaik, Amazon Web Services*

## Zusammenfassung
<a name="migrate-couchbase-server-ec2-summary"></a>

Dieses Muster beschreibt, wie Sie Couchbase Server von einer lokalen Umgebung auf Amazon Elastic Compute Cloud (Amazon EC2) migrieren können. AWS

Couchbase Server ist eine verteilte NoSQL-Datenbank (JSON-Dokument), die relationale Datenbankfunktionen bietet. Die Migration einer Couchbase Server-Datenbank AWS kann zu erhöhter Skalierbarkeit, verbesserter Leistung, Kosteneffizienz, verbesserter Sicherheit, vereinfachter Verwaltung und globaler Reichweite führen, was Anwendungen zugute kommen kann, die Datenzugriff mit hoher Verfügbarkeit und geringer Latenz erfordern. Außerdem erhalten Sie über AWS Managed Services Zugriff auf erweiterte Funktionen. 

Couchbase Server on AWS bietet die folgenden Hauptfunktionen: 
+ Architektur, bei der der Arbeitsspeicher im Vordergrund steht
+ Hohe Verfügbarkeit, Notfallwiederherstellung und Lastenausgleich
+ Bereitstellung auf mehreren Mastern und in mehreren Regionen für optimale Leistung

Weitere Informationen zu den wichtigsten Vorteilen finden Sie im Abschnitt [Zusätzliche Informationen](#migrate-couchbase-server-ec2-additional) und auf der [Couchbase-Website](https://www.couchbase.com/partners/amazon/).

## Voraussetzungen und Einschränkungen
<a name="migrate-couchbase-server-ec2-prereqs"></a>

**Voraussetzungen**
+ Eine aktive AWS-Konto mit einer Virtual Private Cloud (VPC), zwei Availability Zones, privaten Subnetzen und einer Sicherheitsgruppe. Anweisungen finden Sie unter [Erstellen einer VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) in der Dokumentation zu Amazon Virtual Private Cloud (Amazon VPC).
+ Konnektivität zwischen Quell- und Zielumgebungen aktiviert. [Informationen zu den von Couchbase Server verwendeten TCX-Ports finden Sie in der Couchbase-Dokumentation.](https://docs.couchbase.com/server/current/install/install-ports.html)

## Architektur
<a name="migrate-couchbase-server-ec2-architecture"></a>

Das folgende Diagramm zeigt die High-Level-Architektur für die Migration von Couchbase Server zu. AWS

![\[Migrationsarchitektur für das Rehosting von Couchbase Server auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4cedced2-3528-4f12-b19e-7d389e820cc1/images/ac22133a-895f-4999-b1e1-57f69e83a326.png)


Aus dem lokalen Couchbase-Cluster werden Daten über ein Kunden-Gateway übertragen, indem [AWS Direct Connect](https://aws.amazon.com/directconnect/) Die Daten passieren einen Router und eine Direct Connect Route und erreichen die VPC über ein [AWS Virtual Private Network (Site-to-Site VPN)](https://aws.amazon.com/vpn/) -Gateway. Die VPC enthält eine EC2 Instanz, auf der Couchbase Server ausgeführt wird. Die AWS Infrastruktur umfasst auch [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) für die Zugriffskontrolle, [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) für die Datenverschlüsselung, [Amazon Elastic Block Store (Amazon EBS)](https://aws.amazon.com/ebs/) für Blockspeicher und [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) für die Datenspeicherung.

## Tools
<a name="migrate-couchbase-server-ec2-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zur Öffentlichkeit einrichten AWS-Services und dabei Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.

## Best Practices
<a name="migrate-couchbase-server-ec2-best-practices"></a>
+ [Installation und Konfiguration von Couchbase](https://docs.couchbase.com/server/current/install/install-intro.html) auf verschiedenen Betriebsplattformen
+ [Bewährte Methoden](https://docs.couchbase.com/server/current/cloud/couchbase-cloud-deployment.html#aws-best-practices) für die Bereitstellung von Couchbase Server auf AWS
+ [Einen Couchbase-Cluster erstellen](https://docs.couchbase.com/server/current/manage/manage-nodes/create-cluster.html)
+ [Bewährte Methoden zur Leistung von Couchbase-Anwendungen](https://docs.couchbase.com/dotnet-sdk/current/project-docs/performance.html)
+ [Bewährte Sicherheitsmethoden für Couchbase](https://docs.couchbase.com/server/current/learn/security/security-overview.html) Server
+ [Bewährte Speichermethoden](https://www.couchbase.com/forums/t/what-is-the-best-document-storage-strategy-in-couchbase/1573) für Couchbase Server-Datenbanken

## Epen
<a name="migrate-couchbase-server-ec2-epics"></a>

### Stellen Sie eine EC2 Amazon-Instance für Couchbase Server bereit
<a name="deploy-an-ec2-instance-for-couchbase-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Öffnen Sie die EC2 Amazon-Konsole. | Melden Sie sich bei der an [AWS-Managementkonsole](https://console.aws.amazon.com/)und öffnen Sie die [ EC2 Amazon-Konsole](https://console.aws.amazon.com/ec2/). | DevOps Ingenieur, Couchbase-Administrator | 
| Stellen Sie eine EC2 Amazon-Instance bereit. | Starten Sie eine EC2 Instance, die den lokalen Couchbase Server-Konfigurationen entspricht. Weitere Informationen zur Bereitstellung einer EC2 Instance finden Sie unter [Starten einer EC2 Amazon-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) in der EC2 Amazon-Dokumentation. | DevOps Ingenieur, Couchbase-Administrator | 

### Installieren und konfigurieren Sie Couchbase Server auf Amazon EC2
<a name="install-and-configure-couchbase-server-on-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie einen Couchbase-Cluster. | Lesen Sie die [Bereitstellungsrichtlinien für Couchbase Server](https://docs.couchbase.com/server/current/install/install-production-deployment.html), bevor Sie Couchbase Server auf Amazon installieren. EC2[Informationen zur Installation von Couchbase Server finden Sie in der Couchbase Server-Dokumentation](https://docs.couchbase.com/server/current/install/install-intro.html) | Couchbase-Administrator | 
| Konfigurieren Sie den Cluster. | Informationen zur Konfiguration des Clusters finden Sie unter [Cluster-Konfigurationsoptionen](https://docs.couchbase.com/cloud/clusters/databases.html#cluster-configuration-options) in der Couchbase-Dokumentation. | Couchbase-Administrator | 

### Fügen Sie einen neuen Knoten hinzu und gleichen Sie den Couchbase-Cluster neu aus
<a name="add-a-new-node-and-rebalance-the-couchbase-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie einen Knoten für die EC2 Instanz hinzu. | Fügen Sie die neu bereitgestellte EC2 Instanz, auf der Couchbase installiert ist, dem vorhandenen lokalen Cluster hinzu. Anweisungen finden [Sie in der Couchbase Server-Dokumentation unter Knoten hinzufügen und Rebalancing](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html) durchführen. | Couchbase-Administrator | 
| Den Cluster neu ausbalancieren. | Durch den Rebalancing-Prozess wird der neu hinzugefügte Knoten mit der EC2 Instanz zu einem aktiven Mitglied des Couchbase-Clusters. Anweisungen finden [Sie in der Couchbase Server-Dokumentation unter Knoten hinzufügen und Rebalancing](https://docs.couchbase.com/server/current/manage/manage-nodes/add-node-and-rebalance.html) durchführen | Couchbase-Administrator | 

### Verbindungen neu konfigurieren
<a name="reconfigure-connections"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Entfernen Sie die lokalen Knoten und führen Sie eine Neuverteilung durch. | Sie können jetzt die lokalen Knoten aus dem Cluster entfernen. Nachdem Sie die Knoten entfernt haben, folgen Sie dem Rebalance-Prozess, um Daten, Indizes, Ereignis- und Abfrageverarbeitung auf die verfügbaren Knoten im Cluster neu zu verteilen. Anweisungen finden [Sie in der Couchbase Server-Dokumentation unter Knoten entfernen und neu](https://docs.couchbase.com/server/current/manage/manage-nodes/remove-node-and-rebalance.html) verteilen. | Couchbase-Administrator | 
| Aktualisieren Sie die Verbindungsparameter. | Aktualisieren Sie die Verbindungsparameter Ihrer Anwendung, sodass sie die neue EC2 Amazon-IP-Adresse verwenden, damit Ihre Anwendung eine Verbindung zum neuen Knoten herstellen kann. | Entwickler der Couchbase-Anwendung | 

## Zugehörige Ressourcen
<a name="migrate-couchbase-server-ec2-resources"></a>
+ [Couchbase Server-Dienste](https://docs.couchbase.com/server/current/learn/services-and-indexes/services/services.html)
+ [Stellen Sie Couchbase Server bereit mit AWS Marketplace](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html)
+ [Connect zum Couchbase Server her](https://docs.couchbase.com/server/current/guides/connect.html)
+ [Buckets verwalten](https://docs.couchbase.com/server/current/manage/manage-buckets/bucket-management-overview.html)
+ [Rechenzentrumsübergreifende Replikation (XDCR)](https://docs.couchbase.com/server/current/learn/clusters-and-availability/xdcr-overview.html)
+ [Lizenzvereinbarung von Couchbase Inc.](https://www.couchbase.com/LA20190115/)

## Zusätzliche Informationen
<a name="migrate-couchbase-server-ec2-additional"></a>

**Die wichtigsten Vorteile**

Die Migration Ihrer Couchbase-Datenbank zu AWS bietet die folgenden Vorteile:

**Skalierbarkeit**. Sie können Ihren Couchbase-Cluster je nach Bedarf nach oben oder unten skalieren, ohne physische Hardware verwalten zu müssen, sodass Sie schwankende Datenmengen und Anwendungsnutzung problemlos bewältigen können. AWS bietet:
+ Optionen für die vertikale und horizontale Skalierung
+ Funktionen [für den weltweiten Einsatz](https://aws.amazon.com/about-aws/global-infrastructure/)
+ Lastenausgleich zwischen AWS-Regionen
+ [Lösungen zur Datenbankskalierung](https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/)
+ Optimierung der [Inhaltsbereitstellung](https://aws.amazon.com/solutions/content-delivery/)

**Optimierung der Leistung**. AWS bietet eine leistungsstarke Netzwerkinfrastruktur und [optimierte Instanztypen](https://aws.amazon.com/ec2/instance-types/), um einen schnellen Datenzugriff und eine geringe Latenz für Ihre Couchbase-Datenbank zu gewährleisten.
+ Optionen für [Hochleistungsrechnen (HPC)](https://aws.amazon.com/hpc/)
+ Weltweite Bereitstellung von Inhalten über [Amazon CloudFront](https://aws.amazon.com/cloudfront/)
+ Mehrere [Speicheroptionen](https://aws.amazon.com/products/storage/)
+ Erweiterte [Datenbankservices](https://aws.amazon.com/products/databases/), einschließlich Amazon Relational Database Service (Amazon RDS) und Amazon DynamoDB
+ Verbindungen mit niedriger Latenz mit [Direct Connect](https://aws.amazon.com/directconnect/)

**Kostenoptimierung** Wählen Sie den geeigneten Instance-Typ und die entsprechende Konfiguration aus, um Leistung und Kosten auf der Grundlage Ihrer Arbeitslast in Einklang zu bringen. Zahlen Sie nur für die Ressourcen, die Sie tatsächlich nutzen. Dadurch können Sie potenziell Ihre Betriebskosten senken, da Sie keine Hardware vor Ort verwalten müssen und AWS Cloud Skaleneffekte nutzen.
+ [Reserved Instances](https://aws.amazon.com/ec2/pricing/reserved-instances/) können Ihnen helfen, vorausschauend zu planen und Ihre Kosten erheblich zu senken, wenn Sie Couchbase on verwenden. AWS
+ Die [automatische Skalierung](https://aws.amazon.com/autoscaling/) verhindert eine übermäßige Bereitstellung und hilft Ihnen, Ihre Auslastung und Kosteneffizienz zu optimieren.

**Verbesserte Sicherheit.** Profitieren Sie von den robusten Sicherheitsfunktionen wie Datenverschlüsselung AWS, Zugriffskontrollen und Sicherheitsgruppen, um die vertraulichen Daten, die Sie in Couchbase speichern, zu schützen. Zusätzliche Vorteile:
+ Das [Modell der AWS gemeinsamen Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/) unterscheidet klar zwischen der Sicherheit *der* Cloud (AWS Verantwortung) und der Sicherheit *in* der Cloud (Kundenverantwortung).
+ [AWS Die Einhaltung der Vorschriften](https://aws.amazon.com/compliance/) unterstützt wichtige Sicherheitsstandards.
+ AWS bietet erweiterte [Verschlüsselungsoptionen](https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/welcome.html).
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/) unterstützt Sie bei der Verwaltung des sicheren Zugriffs auf Ihre Ressourcen.

**Vereinfachtes Management**. AWS bietet verwaltete Dienste für Couchbase, sodass Sie sich auf die Anwendungsentwicklung konzentrieren können, anstatt die zugrunde liegende Infrastruktur zu verwalten.

**Globale Reichweite**. Sie können Ihren Couchbase-Cluster auf mehreren Servern einsetzen, AWS-Regionen um eine geringe Latenz für Benutzer auf der ganzen Welt zu erreichen. Sie können Ihre Datenbanken vollständig in der Cloud oder in einer Hybridumgebung bereitstellen. Sie können Ihre Daten mit integrierter Sicherheit auf Unternehmensniveau und schneller, effizienter bidirektionaler Synchronisation von Daten vom Edge bis zur Cloud schützen. Gleichzeitig können Sie die Entwicklung mit einem konsistenten Programmiermodell für die Erstellung von Web- und mobilen Apps vereinfachen.

**Geschäftskontinuität**:
+ **Datensicherung und Wiederherstellung**. Im Falle eines Problems können Sie damit [AWS Backup](https://aws.amazon.com/backup/)die Datenstabilität und die einfache Wiederherstellung sicherstellen. Optionen für die Notfallwiederherstellung finden Sie in der [AWS Well-Architected Framework-Dokumentation](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html).
+ **Bereitstellung von Couchbase in mehreren Regionen**: Um eine Couchbase-Datenbank in einer AWS Umgebung mit mehreren Regionen bereitzustellen, können Sie Couchbase Server in abonnieren, [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)Vorlagen verwenden, um separate Couchbase-Cluster in jeder Region zu erstellen [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-zy5g2wqmqdyzw), und dann die regionsübergreifende Replikation konfigurieren, um Daten zwischen Regionen zu synchronisieren. Diese Konfiguration gewährleistet eine hohe Verfügbarkeit und geografische Redundanz in mehreren Regionen. Weitere Informationen finden Sie unter [Deploy Couchbase Server Using AWS Marketplace](https://docs.couchbase.com/server/current/cloud/couchbase-aws-marketplace.html) in der Couchbase-Dokumentation.

**Agilität** der Infrastruktur:
+ Schnelle Bereitstellung und [Deprovisionierung von Ressourcen](https://aws.amazon.com/products/management-and-governance/use-cases/provisioning-and-orchestration/)
+ [Globale Reichweite der Infrastruktur](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)
+ [Automatische Skalierung](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html) je nach Bedarf
+ [Infrastructure as Code (IaC)](https://aws.amazon.com/what-is/iac/) für konsistente Bereitstellungen
+ Mehrere [Instance-Typen](https://aws.amazon.com/ec2/instance-types/), die für unterschiedliche Workloads optimiert sind

Förderung von **Innovationen:**
+ [Zugang zu den neuesten Technologien, einschließlich [KI/ML](https://aws.amazon.com/ai/generative-ai/), [IoT und Analytik](https://aws.amazon.com/iot/)](https://aws.amazon.com/big-data/datalakes-and-analytics/)
+ [Verwaltete Services](https://aws.amazon.com/blogs/architecture/reduce-operational-load-using-aws-managed-services-for-your-data-solutions/), die den betrieblichen Aufwand reduzieren
+ [Moderne Verfahren zur Anwendungsentwicklung](https://aws.amazon.com/modern-apps/)
+ [Serverlose](https://aws.amazon.com/serverless/) Computeroptionen

**Operative Exzellenz**:
+ [Zentralisierte Überwachung und Protokollierung](https://docs.aws.amazon.com/prescriptive-guidance/latest/designing-control-tower-landing-zone/logging-monitoring.html)
+ [Automatisiertes Ressourcenmanagement](https://aws.amazon.com/systems-manager/)
+ [Funktionen für vorausschauende Wartung](https://aws.amazon.com/what-is/predictive-maintenance/)
+ [Verbesserter Einblick](https://aws.amazon.com/about-aws/whats-new/2024/12/amazon-cloudwatch-provides-centralized-visibility-telemetry-configurations/) in die Ressourcennutzung
+ [Optimierte Bereitstellungsprozesse](https://aws.amazon.com/blogs/mt/streamline-change-processes-and-improve-governance-with-aws-well-architected/)

**Möglichkeiten zur Modernisierung**:
+ [Microservices-Architektur](https://aws.amazon.com/microservices/)
+ [DevOps](https://aws.amazon.com/devops/)praktiziert die Implementierung
+ [Cloud-native](https://aws.amazon.com/what-is/cloud-native/) Anwendungsentwicklung
+ [Modernisierung älterer Anwendungen](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-modernizing-applications/welcome.html)

**Wettbewerbsvorteile**:
+ [Schnellere Markteinführung](https://aws.amazon.com/blogs/smb/accelerate-time-to-market-and-business-growth-with-an-automated-software-as-a-service-platform/)
+ Verbessertes [Kundenerlebnis](https://aws.amazon.com/blogs/publicsector/improving-customer-experience-for-the-public-sector-using-aws-services/)
+ [Datengestützte Entscheidungsfindung](https://aws.amazon.com/data/data-driven-decision-making/)
+ Verbesserte [Geschäftsintelligenz](https://aws.amazon.com/what-is/business-intelligence/)

# Migrieren Sie Db2 for LUW zu Amazon, EC2 indem Sie den Protokollversand verwenden, um die Ausfallzeit zu reduzieren
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

*Feng Cai, Ambarish Satarkar und Saurabh Sharma, Amazon Web Services*

## Zusammenfassung
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-summary"></a>

Wenn Kunden ihre IBM Db2 for LUW-Workloads (Linux, UNIX und Windows) zu Amazon Web Services (AWS) migrieren, ist die Verwendung von Amazon Elastic Compute Cloud (Amazon EC2) mit dem Bring Your Own License (BYOL) -Modell der schnellste Weg. Die Migration großer Datenmengen von lokalem Db2 nach AWS kann jedoch eine Herausforderung sein, insbesondere wenn das Ausfallfenster kurz ist. Viele Kunden versuchen, das Ausfallfenster auf weniger als 30 Minuten festzulegen, sodass wenig Zeit für die Datenbank selbst bleibt.

Dieses Muster beschreibt, wie eine Db2-Migration mit einem kurzen Ausfallfenster mithilfe des Transaktionsprotokollversands durchgeführt werden kann. Dieser Ansatz gilt für Db2 auf einer Little-Endian-Linux-Plattform.

## Voraussetzungen und Einschränkungen
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Db2-Instance, die auf einer EC2 Instance ausgeführt wird, die den lokalen Dateisystem-Layouts entspricht
+ Ein Amazon Simple Storage Service (Amazon S3) -Bucket, auf den die EC2 Instance zugreifen kann
+ Eine Richtlinie und Rolle für AWS Identity and Access Management (IAM) für programmatische Aufrufe an Amazon S3
+ Synchronisierte Zeitzone und Systemuhren auf Amazon EC2 und dem lokalen Server
+ Das lokale Netzwerk, das über AWS [ Site-to-SiteVPN oder AWS AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect verbunden ist

**Einschränkungen**
+ Die lokale Db2-Instance und Amazon EC2 müssen sich auf derselben [Plattformfamilie](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms) befinden.
+ Der lokale Db2-Workload muss protokolliert werden. Um alle nicht protokollierten Transaktionen zu blockieren, legen Sie dies `blocknonlogged=yes` in der Datenbankkonfiguration fest.

**Versionen der Produkte**
+ Db2 für LUW Version 11.5.9 und höher

## Architektur
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-architecture"></a>

**Quelltechnologie-Stack**
+ Db2 auf Linux x86\$164****

**Zieltechnologie-Stack**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN oder Direct Connect

**Zielarchitektur**

Das folgende Diagramm zeigt eine lokal ausgeführte Db2-Instance mit einer VPN-Verbindung (Virtual Private Network) zu Db2 auf Amazon. EC2 Die gepunkteten Linien stellen den VPN-Tunnel zwischen Ihrem Rechenzentrum und der AWS-Cloud dar.

![\[Workflow zur Durchführung einer Db2-Migration innerhalb eines kurzen Ausfallzeitfensters mithilfe des Transaktions-Log-Versands.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


## Tools
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-tools"></a>

**AWS-Services**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect-Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS-Services erstellen und dabei Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) bietet Speichervolumes auf Blockebene zur Verwendung mit Amazon Elastic Compute Cloud (Amazon EC2) -Instances.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [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.
+ [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.
+ Mit [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) können Sie den Datenverkehr zwischen Instances, die Sie auf AWS starten, und Ihrem eigenen Remote-Netzwerk weiterleiten.

**Andere Tools**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) ist der interaktive Db2-CLI-Befehl.

## Best Practices
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ Verwenden Sie in der Zieldatenbank [Gateway-Endpunkte für Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html), um auf das Datenbank-Backup-Image und die Protokolldateien in Amazon S3 zuzugreifen.
+ Verwenden Sie in der Quelldatenbank [AWS PrivateLink für Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html), um das Datenbank-Backup-Image und die Protokolldateien an Amazon S3 zu senden.

## Epen
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-epics"></a>

### Festlegen von Umgebungsvariablen
<a name="set-environment-variables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Legen Sie Umgebungsvariablen fest. | Dieses Muster verwendet die folgenden Namen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Sie können sie an Ihre Umgebung anpassen. | DBA | 

### Konfigurieren Sie den lokalen Db2-Server
<a name="configure-the-on-premises-db2-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Einrichten des AWS CLI. | Führen Sie die folgenden Befehle aus, um die neueste Version der AWS-CLI herunterzuladen und zu installieren:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Linux-Administrator | 
| Richten Sie ein lokales Ziel für Db2-Archivprotokolle ein. | Um die Zieldatenbank auf Amazon EC2 mit der lokalen Quelldatenbank synchron zu halten, müssen die neuesten Transaktionsprotokolle von der Quelle abgerufen werden.In diesem Setup `/db2logs` wird von `LOGARCHMETH2` On the Source als Staging-Bereich festgelegt. Die archivierten Protokolle in diesem Verzeichnis werden mit Amazon S3 synchronisiert und von Db2 auf Amazon abgerufen. EC2 Das Muster wird verwendet`LOGARCHMETH2`, weil `LOGARCHMETH1` es möglicherweise für die Verwendung eines Drittanbietertools konfiguriert wurde, auf das der AWS-CLI-Befehl nicht zugreifen kann. Führen Sie den folgenden Befehl aus, um die Protokolle abzurufen: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Führen Sie eine Online-Datenbanksicherung durch. | Führen Sie eine Online-Datenbanksicherung aus und speichern Sie sie im lokalen Backup-Dateisystem: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Richten Sie den S3-Bucket und die IAM-Richtlinie ein
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | Erstellen Sie einen S3-Bucket für den lokalen Server, an den die Backup-DB2-Images und Protokolldateien auf AWS gesendet werden sollen. Auf den Bucket wird auch Amazon zugreifen EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | AWS-Systemadministrator | 
|  Erstellen Sie eine IAM-Richtlinie. | Die `db2bucket.json` Datei enthält die IAM-Richtlinie für den Zugriff auf den Amazon S3 S3-Bucket:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::logshipmig-db2/*",<br />                "arn:aws:s3:::logshipmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Verwenden Sie den folgenden AWS-CLI-Befehl, um die Richtlinie zu erstellen:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> Die JSON-Ausgabe zeigt den Amazon-Ressourcennamen (ARN) für die Richtlinie, wobei `aws_account_id` es sich um Ihre Konto-ID handelt:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | AWS-Administrator, AWS-Systemadministrator | 
| Hängen Sie die IAM-Richtlinie an die von der Instance verwendete IAM-Rolle an EC2 . | In den meisten AWS-Umgebungen hat eine laufende EC2 Instance eine IAM-Rolle, die von Ihrem Systemadministrator festgelegt wurde. Wenn die IAM-Rolle nicht festgelegt ist, erstellen Sie die Rolle und wählen Sie in der EC2 Konsole **IAM-Rolle modifizieren aus, um die Rolle** der EC2 Instance zuzuordnen, die die Db2-Datenbank hostet. Hängen Sie die IAM-Richtlinie mit dem Richtlinien-ARN an die IAM-Rolle an:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Nachdem die Richtlinie angehängt wurde, kann jede EC2 Instance, die der IAM-Rolle zugeordnet ist, auf den S3-Bucket zugreifen. | AWS-Administrator, AWS-Systemadministrator | 

### Senden Sie das Backup-Image und die Protokolldateien der Quelldatenbank an Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die AWS-CLI auf dem lokalen Db2-Server. | Konfigurieren Sie die AWS-CLI mit dem `Access Key ID` und, das im vorherigen Schritt `Secret Access Key` generiert wurde:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre>  | AWS-Administrator, AWS-Systemadministrator | 
| Senden Sie das Backup-Image an Amazon S3. | Zuvor wurde ein Online-Datenbank-Backup im `/backup` lokalen Verzeichnis gespeichert. Führen Sie den folgenden Befehl aus, um dieses Backup-Image an den S3-Bucket zu senden:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | AWS-Administrator, Migrationsingenieur | 
| Senden Sie die Db2-Archivprotokolle an Amazon S3. | Synchronisieren Sie die lokalen Db2-Archivprotokolle mit dem S3-Bucket, auf den die Db2-Zielinstanz bei Amazon zugreifen kann: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Führen Sie diesen Befehl regelmäßig mithilfe von Cron oder anderen Planungstools aus. Die Häufigkeit hängt davon ab, wie oft die Quelldatenbank Transaktionsprotokolldateien archiviert.  | AWS-Administrator, Migrationsingenieur | 

### Connect Db2 on Amazon mit Amazon EC2 S3 und starten Sie die Datenbanksynchronisierung
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen PKCS12 Keystore. | Db2 verwendet einen PKCS-Verschlüsselungs-Keystore (Public-Key Cryptography Standards), um den AWS-Zugriffsschlüssel zu schützen. Erstellen Sie einen Keystore und konfigurieren Sie die Db2-Quellinstanz so, dass sie ihn verwendet:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Erstellen Sie den Alias für den Db2-Speicherzugriff. | Verwenden Sie die folgende Skriptsyntax, um den [Alias für den Speicherzugriff](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access) zu erstellen:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Ihr Skript könnte beispielsweise wie folgt aussehen: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Stellen Sie den Bereitstellungsbereich ein. | Standardmäßig verwendet Db2 `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` als Staging-Bereich zum Hoch- und Herunterladen von Dateien zu und von Amazon S3. Der Standardpfad befindet sich `sqllib/tmp/RemoteStorage.xxxx` im Home-Verzeichnis der Instance und `xxxx` bezieht sich auf die Db2-Partitionsnummer. Beachten Sie, dass der Staging-Bereich über genügend Kapazität für die Backup-Images und Protokolldateien verfügen muss. Sie können die Registrierung verwenden, um den Staging-Bereich auf ein anderes Verzeichnis zu verweisen.Wir empfehlen außerdem`DB2_ENABLE_COS_SDK=ON`, und den Link zur `awssdk` Bibliothek zu verwenden`DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`, um den Amazon S3 S3-Staging-Bereich für Datenbanksicherungen und -wiederherstellungen zu umgehen:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />Db2set DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore<br />db2stop<br />db2start</pre> | DBA | 
| Stellen Sie die Datenbank aus dem Backup-Image wieder her. | Stellen Sie die Zieldatenbank auf Amazon EC2 aus dem Backup-Image im S3-Bucket wieder her:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Die Datenbank weiterleiten. | Nach Abschluss der Wiederherstellung wird die Zieldatenbank in den Status „Rollforward ausstehend“ versetzt. Konfigurieren Sie `LOGARCHMETH1` `LOGARCHMETH2` so, dass Db2 weiß, wo die Transaktionsprotokolldateien abgerufen werden sollen:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Starten Sie den Datenbank-Rollforward:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Dieser Befehl verarbeitet alle Protokolldateien, die in den S3-Bucket übertragen wurden. Führen Sie ihn regelmäßig auf der Grundlage der Häufigkeit des `s3 sync` Befehls auf den lokalen Db2-Servern aus. Wenn der Befehl beispielsweise zu jeder Stunde `s3 sync` ausgeführt wird und die Synchronisierung aller Protokolldateien 10 Minuten dauert, legen Sie fest, dass der Befehl jeweils 10 Minuten nach jeder Stunde ausgeführt wird.  | DBA | 

### Bringen Sie Db2 auf Amazon während des EC2 Umstellungsfensters online
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bringen Sie die Zieldatenbank online. | Führen Sie während des Übernahmefensters einen der folgenden Schritte aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Nachdem das letzte Transaktionsprotokoll mit Amazon S3 synchronisiert wurde, führen Sie den `ROLLFORWARD` Befehl zum letzten Mal aus:<pre>db2 rollforward DB sample to END OF LOGS<br />db2 rollforward DB sample complete<br /><br />                                 Rollforward Status<br />....<br /> Rollforward status                     = not pending<br />....<br />DB20000I  The ROLLFORWARD command completed successfully.<br /><br />db2 activate db sample<br />DB20000I  The ACTIVATE DATABASE command completed successfully.</pre>Bringen Sie die Zieldatenbank online und verweisen Sie die Anwendungsverbindungen auf Db2 on Amazon EC2. | DBA | 

## Fehlerbehebung
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Wenn mehrere Datenbanken denselben Instanznamen und Datenbanknamen auf unterschiedlichen Hosts (DEV, QA, PROD) haben, werden Backups und Logs möglicherweise in dasselbe Unterverzeichnis verschoben. | Verwenden Sie unterschiedliche S3-Buckets für DEV, QA und PROD und fügen Sie den Hostnamen als Unterverzeichnispräfix hinzu, um Verwirrung zu vermeiden. | 
| Wenn sich mehrere Backup-Images am selben Speicherort befinden, wird bei der Wiederherstellung die folgende Fehlermeldung angezeigt:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | Fügen Sie im `restore` Befehl den Zeitstempel der Sicherung hinzu:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Zugehörige Ressourcen
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [DB2-Backup- und Wiederherstellungsvorgänge zwischen verschiedenen Betriebssystemen und Hardwareplattformen](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Richten Sie Db2 STORAGE ACCESS ALIAS und REMOTE ein DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Db2-Befehl ROLLFORWARD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database)
+ [Methode für die sekundäre Protokollarchivierung von Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)

# Migrieren Sie Db2 for LUW zu Amazon EC2 mit hochverfügbarer Disaster Recovery
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery"></a>

*Feng Cai, Aruna Gangireddy und Venkatesan Govindan, Amazon Web Services*

## Zusammenfassung
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-summary"></a>

Wenn Kunden ihren IBM Db2 LUW-Workload (Linux, UNIX und Windows) zu Amazon Web Services (AWS) migrieren, ist die Verwendung von Amazon Elastic Compute Cloud (Amazon EC2) mit dem Bring Your Own License (BYOL) -Modell der schnellste Weg. Die Migration großer Datenmengen von lokalem Db2 nach AWS kann jedoch eine Herausforderung sein, insbesondere wenn das Ausfallfenster kurz ist. Viele Kunden versuchen, das Ausfallfenster auf weniger als 30 Minuten festzulegen, sodass wenig Zeit für die Datenbank selbst bleibt.

Dieses Muster beschreibt, wie eine Db2-Migration mit einem kurzen Ausfallfenster mithilfe von Db2 High Availability Disaster Recovery (HADR) durchgeführt werden kann. Dieser Ansatz gilt für Db2-Datenbanken, die sich auf der Little-Endian-Linux-Plattform befinden und die Datenpartitionsfunktion (DPF) nicht verwenden.

## Voraussetzungen und Einschränkungen
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Db2-Instance, die auf einer Amazon EC2 EC2-Instance ausgeführt wird und den lokalen Dateisystem-Layouts entspricht
+ Ein Amazon Simple Storage Service (Amazon S3) -Bucket, auf den die EC2-Instance zugreifen kann
+ Eine Richtlinie und Rolle für AWS Identity and Access Management (IAM) für programmatische Aufrufe an Amazon S3
+ Synchronisierte Zeitzone und Systemuhren auf Amazon EC2 und dem lokalen Server
+ Das lokale Netzwerk, das über AWS [ Site-to-SiteVPN oder AWS AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect verbunden ist
+ Kommunikation zwischen dem lokalen Server und Amazon EC2 über HADR-Ports

**Einschränkungen**
+ [Die lokale Db2-Instance und Amazon EC2 müssen sich auf derselben Plattformfamilie befinden.](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ HADR wird in einer partitionierten Datenbankumgebung nicht unterstützt.
+ HADR unterstützt die Verwendung von RAW I/O (direkter Festplattenzugriff) für Datenbank-Logdateien nicht.
+ HADR unterstützt keine unendliche Protokollierung.
+ `LOGINDEXBUILD`muss auf gesetzt sein`YES`, wodurch die Protokollnutzung für die Neuerstellung des Index erhöht wird.
+ Die lokale Db2-Arbeitslast muss protokolliert werden. `blocknonlogged=yes`In der Datenbankkonfiguration so eingestellt, dass alle nicht protokollierten Transaktionen blockiert werden.

**Versionen der Produkte**
+ Db2 für LUW Version 11.5.9 und höher

## Architektur
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-architecture"></a>

**Quelltechnologie-Stack**
+ Db2 auf Linux x86\$164****

**Zieltechnologie-Stack**
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+  Site-to-SiteAWS-VPN

**Zielarchitektur**

In der folgenden Abbildung wird Db2 on Premises `db2-server1` als primäres System ausgeführt. Es hat zwei HADR-Standby-Ziele. Ein Standby-Ziel befindet sich vor Ort und ist optional. Das andere Standby-Ziel,`db2-ec2`, befindet sich auf Amazon EC2. Nachdem die Datenbank auf AWS umgestellt wurde, `db2-ec2` wird sie zur primären Datenbank.

![\[Workflow für die Migration eines lokalen Db2 mit einem kurzen Ausfallfenster mithilfe von Db2 HADR.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2db43e4b-f0ea-4a92-96da-4cafb7d3368b/images/5295420e-3cd8-4127-9a18-ade971c36339.png)


1. Protokolle werden von der lokalen Primärdatenbank zur lokalen Standby-Datenbank gestreamt.

1. Mithilfe von Db2 HADR werden Protokolle von der primären lokalen Datenbank über Site-to-Site VPN zu Db2 auf Amazon EC2 gestreamt.

1. DB2-Backup- und Archivierungsprotokolle werden von der primären lokalen Datenbank an den S3-Bucket auf AWS gesendet.

## Tools
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-tools"></a>

**AWS-Services**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect-Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS-Services erstellen und dabei Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ Mit [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) können Sie den Zugriff auf Ihre AWS-Ressourcen sicher verwalten, indem Sie kontrollieren, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [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.
+ Mit [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) können Sie den Datenverkehr zwischen Instances, die Sie auf AWS starten, und Ihrem eigenen Remote-Netzwerk weiterleiten.

**Andere Tools**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) ist der interaktive Db2-CLI-Befehl.

## Best Practices
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-best-practices"></a>
+ Verwenden Sie in der Zieldatenbank [Gateway-Endpunkte für Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html), um auf das Datenbank-Backup-Image und die Protokolldateien in Amazon S3 zuzugreifen.
+ Verwenden Sie in der Quelldatenbank [AWS PrivateLink für Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html), um das Datenbank-Backup-Image und die Protokolldateien an Amazon S3 zu senden.

## Epen
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-epics"></a>

### Festlegen von Umgebungsvariablen
<a name="set-environment-variables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Legen Sie Umgebungsvariablen fest. | Dieses Muster verwendet die folgenden Namen und Ports:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)Sie können sie an Ihre Umgebung anpassen. | DBA | 

### Konfigurieren Sie den lokalen Db2-Server
<a name="configure-the-on-premises-db2-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie die AWS-CLI ein. | Führen Sie die folgenden Befehle aus, um die neueste Version von AWS CLI herunterzuladen und zu installieren:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Linux-Administrator | 
| Richten Sie ein lokales Ziel für Db2-Archivprotokolle ein. | Bedingungen wie umfangreiche Batch-Aktualisierungsaufträge und Netzwerkverlangsamungen können dazu führen, dass der HADR-Standby-Server verzögert wird. Um catch, benötigt der Standby-Server die Transaktionsprotokolle des Primärservers. Die Reihenfolge der Stellen, an denen Logs angefordert werden, ist wie folgt:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.html)In diesem Setup `/db2logs` wird von `LOGARCHMETH2` auf der Quelle als Staging-Bereich festgelegt. Die archivierten Protokolle in diesem Verzeichnis werden mit Amazon S3 synchronisiert und von Db2 auf Amazon EC2 abgerufen. Das Muster verwendet`LOGARCHMETH2`, weil `LOGARCHMETH1` es möglicherweise für die Verwendung eines Drittanbietertools konfiguriert wurde, auf das der AWS-CLI-Befehl nicht zugreifen kann:<pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Führen Sie eine Online-Datenbanksicherung durch. | Führen Sie eine Online-Datenbanksicherung aus und speichern Sie sie im lokalen Backup-Dateisystem:<pre>db2 backup db sample online to /backup </pre> | DBA | 

### Richten Sie den S3-Bucket und die IAM-Richtlinie ein
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | Erstellen Sie einen S3-Bucket für den lokalen Server, an den die Backup-DB2-Images und Protokolldateien auf AWS gesendet werden sollen. Auf den Bucket wird von Amazon EC2 zugegriffen:<pre>aws s3api create-bucket --bucket hadrmig-db2 --region us-east-1 </pre> | AWS-Administrator | 
| Erstellen Sie eine IAM-Richtlinie. | Die `db2bucket.json` Datei enthält die IAM-Richtlinie für den Zugriff auf den S3-Bucket:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::hadrmig-db2/*",<br />                "arn:aws:s3:::hadrmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Verwenden Sie den folgenden AWS-CLI-Befehl, um die Richtlinie zu erstellen:<pre>aws iam create-policy \<br />      --policy-name db2s3hapolicy \<br />      --policy-document file://db2bucket.json </pre>Die JSON-Ausgabe zeigt den Amazon-Ressourcennamen (ARN) für die Richtlinie, wobei `aws_account_id` es sich um Ihre Konto-ID handelt:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3hapolicy"</pre> | AWS-Administrator, AWS-Systemadministrator | 
| Fügen Sie die IAM-Richtlinie an die IAM-Rolle an. | Normalerweise würde der EC2-Instance, auf der Db2 läuft, vom Systemadministrator eine IAM-Rolle zugewiesen. Wenn keine IAM-Rolle zugewiesen ist, können Sie in der Amazon EC2 EC2-Konsole die Option **IAM-Rolle ändern** auswählen.Fügen Sie die IAM-Richtlinie der IAM-Rolle hinzu, die der EC2-Instance zugeordnet ist. Nachdem die Richtlinie angehängt wurde, kann die EC2-Instance auf den S3-Bucket zugreifen:<pre>aws iam attach-role-policy --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3hapolicy" --role-name db2s3harole   </pre> |  | 

### Senden Sie das Backup-Image und die Protokolldateien der Quelldatenbank an Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie AWS CLI auf dem lokalen Db2-Server. | Konfigurieren Sie die AWS-CLI mit dem `Access Key ID` und`Secret Access Key`, das Sie zuvor generiert haben:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre> | AWS-Administrator, AWS-Systemadministrator | 
| Senden Sie das Backup-Image an Amazon S3. | Zuvor wurde ein Online-Datenbank-Backup im `/backup` lokalen Verzeichnis gespeichert. Führen Sie den folgenden Befehl aus, um dieses Backup-Image an den S3-Bucket zu senden:<pre>aws s3 sync /backup s3://hadrmig-db2/SAMPLE_backup</pre> | AWS-Administrator, AWS-Systemadministrator | 
| Senden Sie die Db2-Archivprotokolle an Amazon S3. | Synchronisieren Sie die lokalen Db2-Archivprotokolle mit dem Amazon S3 S3-Bucket, auf den die Ziel-Db2-Instance auf Amazon EC2 zugreifen kann:<pre>aws s3 sync /db2logs s3://hadrmig-db2/SAMPLE_LOGS</pre>Führen Sie diesen Befehl regelmäßig mithilfe von Cron oder anderen Planungstools aus. Die Häufigkeit hängt davon ab, wie oft die Quelldatenbank Transaktionsprotokolldateien archiviert. |  | 

### Connect Db2 auf Amazon EC2 mit Amazon S3 und starten Sie die erste Datenbanksynchronisierung
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-initial-database-sync"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen PKCS12 Keystore. | Db2 verwendet einen PKCS-Verschlüsselungs-Keystore (Public-Key Cryptography Standards), um den AWS-Zugriffsschlüssel zu schützen. Erstellen Sie einen Keystore und konfigurieren Sie den Quell-Db2 so, dass er ihn verwendet:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Erstellen Sie den Alias für den Db2-Speicherzugriff. | Db2 verwendet einen Speicherzugriffsalias, um mit den `RESTORE DATABASE` Befehlen`INGEST`, `LOAD``BACKUP DATABASE`, oder direkt auf Amazon S3 zuzugreifen. Weil Sie der EC2-Instance eine IAM-Rolle zugewiesen haben `USER` und nicht erforderlich `PASSWORD` sind:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Ihr Skript könnte beispielsweise wie folgt aussehen: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'hadrmig-db2'" ` | DBA | 
| Stellen Sie den Bereitstellungsbereich ein. | Wir empfehlen`DB2_ENABLE_COS_SDK=ON`,`DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore`, und den Link zur `awssdk` Bibliothek zu verwenden, um den Amazon S3 S3-Staging-Bereich für Datenbank-Backups und -Wiederherstellungen zu umgehen:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2stop<br />db2start</pre> | DBA | 
| Stellen Sie die Datenbank aus dem Backup-Image wieder her. | Stellen Sie die Zieldatenbank auf Amazon EC2 aus dem Backup-Image im S3-Bucket wieder her:<pre>db2 create db sample on /data1<br />db2 restore db sample from DB2REMOTE://DB2AWSS3/hadrmig-db2/SAMPLE_backup replace existing</pre> | DBA | 

### Richten Sie HADR ohne HADR vor Ort ein
<a name="set-up-hadr-with-no-hadr-on-premises"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie den lokalen Db2-Server als primären Server. | Aktualisieren Sie die Datenbankkonfigurationseinstellungen für HADR on `db2-server1` (die lokale Quelle) als Primärserver. Stellen Sie `HADR_SYNCMODE` den `SUPERASYNC` Modus ein, der die kürzeste Transaktionsantwortzeit hat:`db2 update db cfg for sample using HADR_LOCAL_HOST db2-server1 HADR_LOCAL_SVC 50010 HADR_REMOTE_HOST db2-ec2 HADR_REMOTE_SVC 50012 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully`Es wird mit einigen Netzwerkverzögerungen zwischen dem lokalen Rechenzentrum und AWS gerechnet. (Sie können je nach Netzwerkzuverlässigkeit einen anderen `HADR_SYNCMODE` Wert festlegen. Weitere Informationen finden Sie im Abschnitt [Verwandte Ressourcen](#migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources).) | DBA | 
| Ändern Sie das Ziel des Zieldatenbank-Logarchivs. | Ändern Sie das Zielziel des Datenbank-Logarchivs so, dass es der Amazon EC2 EC2-Umgebung entspricht:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/' LOGARCHMETH2 OFF<br />DB20000I  The UPDATE DATABASE CONFIGURATION command completed successfully</pre> | DBA | 
| Konfigurieren Sie HADR für Db2 auf dem Amazon EC2-Server. | Aktualisieren Sie die Datenbankkonfiguration für HADR im Standby-Modus: `db2-ec2``db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully` | DBA | 
| Überprüfen Sie das HADR-Setup. | Überprüfen Sie die HADR-Parameter auf den Quell- und Ziel-DB2-Servern.Führen Sie den folgenden Befehl aus, um zu überprüfen`db2-server1`, ob das Setup aktiviert ist:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-ec2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50012<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre> Führen Sie den folgenden Befehl aus, um zu überprüfen`db2-ec2`, ob das Setup aktiviert ist:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = <br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>Die `HADR_REMOTE_SVC` Parameter`HADR_LOCAL_HOST`, `HADR_LOCAL_SVC``HADR_REMOTE_HOST`, und geben das eine primäre und ein Standby-HARD-Setup an. | DBA | 
| Starten Sie die Db2 HADR-Instanz. | Starten Sie zuerst die Db2 HADR-Instanz auf dem Standby-Server: `db2-ec2`<pre>db2 start hadr on db sample as standby<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>Starten Sie Db2 HADR auf dem Primärserver (Quellserver): `db2-server1`<pre>db2 start hadr on db sample as primary<br />DB20000I  The START HADR ON DATABASE command completed successfully.</pre>Die HADR-Verbindung zwischen Db2 vor Ort und Amazon EC2 wurde jetzt erfolgreich hergestellt. Der Db2-Primärserver `db2-server1` beginnt, Transaktionsprotokolleinträge in Echtzeit zu `db2-ec2` streamen. | DBA | 

### Richten Sie HADR ein, wenn HADR lokal vorhanden ist
<a name="set-up-hadr-when-hadr-exists-on-premises"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie Db2 auf Amazon EC2 als Auxiliary Standby hinzu. | Wenn HADR auf der lokalen Db2-Instance ausgeführt wird, können Sie Db2 auf Amazon EC2 als Auxiliary Standby hinzufügen, `HADR_TARGET_LIST` indem Sie die folgenden Befehle auf ausführen: `db2-ec2``db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-server2:50011" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.` | DBA | 
| Fügen Sie die zusätzlichen Standby-Informationen zu den lokalen Servern hinzu. | Update `HADR_TARGET_LIST` auf den beiden lokalen Servern (Primär- und Standby-Server).Führen Sie auf `db2-server1` den folgenden Code aus:`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server2:50011\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.`Führen Sie `db2-server2` unter den folgenden Code aus:`db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010\|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.` | DBA | 
| Überprüfen Sie das HADR-Setup. | Überprüfen Sie die HADR-Parameter auf den Quell- und Ziel-DB2-Servern.Führen Sie auf `db2-server1` den folgenden Code aus:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = PRIMARY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server1<br /> HADR local service name                (HADR_LOCAL_SVC) = 50010<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server2<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50011<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server2:50011|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>Führen Sie `db2-server2` unter den folgenden Code aus:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-server2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50011<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-ec2:50012<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>Führen Sie `db2-ec2` unter den folgenden Code aus:<pre>db2 get db cfg for sample|grep HADR<br /> HADR database role                                      = STANDBY<br /> HADR local host name                  (HADR_LOCAL_HOST) = db2-ec2<br /> HADR local service name                (HADR_LOCAL_SVC) = 50012<br /> HADR remote host name                (HADR_REMOTE_HOST) = db2-server1<br /> HADR remote service name              (HADR_REMOTE_SVC) = 50010<br /> HADR instance name of remote server  (HADR_REMOTE_INST) = db2inst1<br /> HADR timeout value                       (HADR_TIMEOUT) = 120<br /> HADR target list                     (HADR_TARGET_LIST) = db2-server1:50010|db2-server2:50011<br /> HADR log write synchronization mode     (HADR_SYNCMODE) = SUPERASYNC<br /> HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(52000)<br /> HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0<br /> HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0<br /> HADR SSL certificate label             (HADR_SSL_LABEL) =<br /> HADR SSL Hostname Validation        (HADR_SSL_HOST_VAL) = OFF</pre>Die `HADR_TARGET_LIST` Parameter`HADR_LOCAL_HOST`, `HADR_LOCAL_SVC``HADR_REMOTE_HOST`, und geben an`HADR_REMOTE_SVC`, dass ein primäres und zwei Standby-HADR-Setup vorhanden sind. |  | 
| Stoppen und starten Sie Db2 HADR. | `HADR_TARGET_LIST`ist jetzt auf allen drei Servern eingerichtet. Jeder Db2-Server kennt die anderen beiden. Beenden Sie HADR (kurzer Ausfall) und starten Sie es erneut, um die Vorteile der neuen Konfiguration zu nutzen.Führen Sie `db2-server1` unter die folgenden Befehle aus:<pre>db2 stop hadr on db sample<br />db2 deactivate db sample<br />db2 activate db sample</pre>Führen Sie bei `db2-server2` aktivierter Option die folgenden Befehle aus:<pre>db2 deactivate db sample<br />db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>Führen Sie bei `db2-ec2` aktivierter Option die folgenden Befehle aus:<pre>db2 start hadr on db sample as standby<br />SQL1766W  The command completed successfully</pre>Führen Sie bei `db2-server1` aktivierter Option die folgenden Befehle aus:<pre>db2 start hadr on db sample as primary<br />SQL1766W  The command completed successfully</pre>Die HADR-Verbindung zwischen Db2 vor Ort und Amazon EC2 wurde jetzt erfolgreich hergestellt. Der Db2-Primärserver `db2-server1` beginnt mit dem Streaming von Transaktionsprotokolldatensätzen an beide Server `db2-server2` und `db2-ec2` zwar in Echtzeit.  | DBA | 

### Machen Sie Db2 auf Amazon EC2 während des Umstellungsfensters als primäres Objekt
<a name="make-db2-on-amazon-ec2-as-primary-during-the-cutover-window"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie sicher, dass es auf dem Standby-Server keine HADR-Verzögerung gibt. | Überprüfen Sie den HADR-Status vom Primärserver aus. `db2-server1` Seien Sie nicht beunruhigt, wenn der `REMOTE_CATCHUP` Status `HADR_STATE` aktiviert ist, was normal ist, wenn er auf eingestellt `HADR_SYNCMODE` ist. `SUPERASYNC` Die `PRIMARY_LOG_TIME` und `STANDBY_REPLAY_LOG_TIME` zeigen, dass sie synchron sind:<pre>db2pd -hadr -db sample<br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL<br />                        HADR_SYNCMODE = SUPERASYNC<br />                           STANDBY_ID = 2<br />                        LOG_STREAM_ID = 0<br />                           HADR_STATE = REMOTE_CATCHUP<br />.....<br />                     PRIMARY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />                     STANDBY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)<br />              STANDBY_REPLAY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)</pre> | DBA | 
| Führen Sie HADR Takeover aus. | Um die Migration abzuschließen, erstellen Sie `db2-ec2` die Primärdatenbank, indem Sie den Befehl HADR Takeover ausführen. Verwenden Sie den Befehl`db2pd`, um den `HADR_ROLE` Wert zu überprüfen:<pre>db2 TAKEOVER HADR ON DATABASE sample<br />DB20000I  The TAKEOVER HADR ON DATABASE command completed successfully.<br /><br />db2pd -hadr -db sample<br />Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 00:03:25 -- Date 2022-10-26-02.46.45.048988<br /><br />                            HADR_ROLE = PRIMARY<br />                          REPLAY_TYPE = PHYSICAL</pre>Um die Migration zu AWS abzuschließen, verweisen Sie die Anwendungsverbindungen auf Db2 in Amazon EC2. |  | 

## Fehlerbehebung
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Wenn Sie NAT aus Firewall- und Sicherheitsgründen verwenden, kann der Host zwei IP-Adressen haben (eine interne und eine externe), was dazu führen kann, dass die HADR-IP-Adressüberprüfung fehlschlägt. Der `START HADR ON DATABASE` Befehl gibt die folgende Meldung zurück:`HADR_LOCAL_HOST:HADR_LOCAL_SVC (-xx-xx-xx-xx.:50011 (xx.xx.xx.xx:50011)) on remote database is different from HADR_REMOTE_HOST:HADR_REMOTE_SVC (xx-xx-xx-xx.:50011 (x.x.x.x:50011)) on local database.` | Um [HADR in einer NAT-Umgebung zu unterstützen,](https://www.ibm.com/docs/en/db2/11.5?topic=support-hadr-nat) können Sie die sowohl `HADR_LOCAL_HOST` mit der internen als auch mit der externen Adresse konfigurieren. Wenn der Db2-Server beispielsweise den internen Namen `host1` und den externen Namen hat`host1E`, `HADR_LOCAL_HOST` kann das sein. `HADR_LOCAL_HOST: "host1 \| host1E"` | 

## Zugehörige Ressourcen
<a name="migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery-resources"></a>
+ [Sicherungs- und Wiederherstellungsvorgänge von DB2 zwischen verschiedenen Betriebssystemen und Hardwareplattformen](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Richten Sie Db2 STORAGE ACCESS ALIAS und REMOTE ein DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Db2-Disaster Recovery mit hoher Verfügbarkeit](https://www.ibm.com/docs/en/db2/11.5?topic=server-high-availability-disaster-recovery-hadr)
+ [hadr\$1syncmode — HADR-Synchronisationsmodus für Protokollschreibvorgänge im Peer-State-Konfigurationsparameter](https://www.ibm.com/docs/en/db2/11.5?topic=dcp-hadr-syncmode-hadr-synchronization-mode-log-writes-in-peer-state)

# Migrieren Sie IIS-gehostete Anwendungen mithilfe EC2 von appcmd.exe zu Amazon
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd"></a>

*Deepak Kumar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-summary"></a>

Wenn Sie von Internet Information Services (IIS) gehostete Anwendungen zu Amazon Elastic Compute Cloud (Amazon EC2) -Instances migrieren, müssen Sie mehrere Authentifizierungsherausforderungen bewältigen. Zu diesen Herausforderungen gehören die erneute Eingabe von Domänenanmeldedaten für Anwendungspool-Identitäten und die potenzielle Neugenerierung von Computerschlüsseln, damit die Website ordnungsgemäß funktioniert. Sie können AWS Directory Service es verwenden, um Vertrauensbeziehungen mit Ihrem lokalen Active Directory aufzubauen oder ein neues verwaltetes Active Directory in zu erstellen. AWS Dieses Muster beschreibt einen sauberen Migrationsansatz, der die Sicherungs- und Wiederherstellungsfunktionen von IIS auf EC2 Amazon-Instances verwendet. Bei diesem Ansatz wird appcmd.exe verwendet, um IIS auf den EC2 Ziel-Instances zu deinstallieren und neu zu installieren, was eine erfolgreiche Migration von IIS-gehosteten Websites, Anwendungspool-Identitäten und Computerschlüsseln ermöglicht. 

## Voraussetzungen und Einschränkungen
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto für den Zielserver.
+ Ein funktionierender IIS-Quellserver, auf dem Websites gehostet werden.
+ Verständnis der IIS-Arbeitsprinzipien wie Verwaltung und Konfiguration.
+ Systemadministratorzugriff sowohl auf dem Quell- als auch auf dem Zielserver.
+ Die Migration des IIS-Quellservers auf den Zielserver wurde abgeschlossen AWS-Konto. Sie können Migrationstools wie AWS Application Migration Service einen auf Amazon Machine Image (AMI) -Snapshots basierenden Ansatz oder andere Migrationstools verwenden.

**Einschränkungen**
+ Einige AWS-Services sind nicht in allen verfügbar. AWS-Regionen Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter [AWS Dienste nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie unter [Dienstendpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Dienst aus.

**Produktversionen**
+ IIS 8.5 oder IIS 10.0

## Architektur
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-architecture"></a>

**Quelltechnologie-Stack**
+ Windows Server mit installiertem IIS 8.5 oder IIS 10.0

**Zieltechnologie-Stack**
+ Windows Server mit installiertem IIS 8.5 oder IIS 10.0
+ Application Migration Service

**Zielarchitektur**

Das folgende Diagramm zeigt den Workflow und die Architekturkomponenten für dieses Muster.

![\[Workflow zur Migration von IIS-gehosteten Anwendungen zu Amazon. EC2\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2f9f7757-b2bc-4077-b51a-700de521424c/images/36aa9b7a-d0aa-4fa4-be47-9fee43b53c22.png)


Die Lösung umfasst die folgenden Schritte:

1. [Installieren](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) und konfigurieren Sie den AWS Replication Agent auf dem IIS-Quellserver in Ihrem Unternehmensrechenzentrum. Dieser Agent initiiert den Replikationsprozess und verwaltet die Datenübertragung zu AWS.

1. Der AWS Replication Agent stellt eine [sichere Verbindung](https://docs.aws.amazon.com/mgn/latest/ug/Agent-Related-FAQ.html#How-Communication-Secured) zum Application Migration Service her und beginnt mit der Replikation der Quellserverdaten, einschließlich IIS-Konfigurationen, Websites und Anwendungsdateien.

1. Der Application Migration Service startet EC2 Instanzen im Anwendungssubnetz mit den replizierten Daten. Die EC2 Ziel-Instance führt IIS aus und enthält die migrierten Anwendungen mit ihren zugehörigen Amazon Elastic Block Store (Amazon EBS) -Volumes. Nach der ersten Replikation synchronisiert der Application Migration Service die Änderungen weiter, bis Sie [bereit sind, auf die neue Umgebung](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html#ready-for-cutover1) umzusteigen.

## Tools
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-tools"></a>

**AWS-Services**
+ [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)unterstützt Sie beim Rehosten (*Lift and Shift*) von Anwendungen AWS Cloud ohne Änderungen und mit minimalen Ausfallzeiten.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) bietet Speichervolumen auf Blockebene zur Verwendung mit Amazon-Instances. EC2 
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.

**Andere Tools**
+ [Internet Information Services (IIS)](https://www.iis.net/overview) für Windows Server ist ein Webserver mit einer skalierbaren und offenen Architektur zum Hosten aller Inhalte im Internet. IIS bietet eine Reihe von Verwaltungstools, darunter Verwaltungs- und Befehlszeilentools (z. B. appcmd.exe), verwalteten Code und Skripting APIs sowie PowerShell Windows-Unterstützung.

## Epen
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-epics"></a>

### Erstellen Sie vor der Migration eine Sicherungskopie von IIS an der Quelle
<a name="back-up-iis-at-source-prior-to-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Backups der von IIS gehosteten Websites, des Konfigurationsschlüssels und `WAS` des Schlüssels. | Verwenden Sie appcmd.exe auf dem Quellserver, um Backups für IIS-gehostete Websites, den Konfigurationsschlüssel (`iisConfigurationKey`) und den `WAS` Schlüssel (`iisWasKey`) zu erstellen. Gehen Sie dazu wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html)Gehen Sie wie folgt vor, um den `WAS` Konfigurationsschlüssel und den Schlüssel zu exportieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | IIS-Administrator | 

### Deinstallieren Sie IIS und installieren Sie es erneut auf dem Zielserver
<a name="uninstall-and-reinstall-iis-on-the-target-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Deinstallieren Sie IIS auf dem Zielserver. | Gehen Sie wie folgt vor, um IIS auf dem Zielserver zu deinstallieren: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | IIS-Administrator | 
| Installieren Sie IIS auf dem Zielserver. | Gehen Sie wie folgt vor, um IIS auf dem Zielserver zu installieren: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | IIS-Administrator | 

### Stellen Sie IIS-Websites und -Konfigurationen aus den Backups wieder her
<a name="restore-iis-websites-and-configuration-from-the-backups"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die IIS-Websites und die Konfiguration wieder her. | Gehen Sie wie folgt vor, um die IIS-Backups wiederherzustellen, die Sie vom Quellserver auf dem Zielserver erstellt haben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.html) | IIS-Administrator | 

## Zugehörige Ressourcen
<a name="migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd-resources"></a>

**AWS Dokumentation**
+ [Installation des AWS Replication Agents](https://docs.aws.amazon.com/mgn/latest/ug/agent-installation.html) (AWS Application Migration Service Dokumentation)

**AWS Präskriptive Leitlinien**
+ [Migrieren Sie eine lokale VM zu Amazon mithilfe EC2 von AWS Application Migration Service](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)
+ [Verwenden von AMIs Amazon EBS-Snapshots für Backups](https://docs.aws.amazon.com/prescriptive-guidance/latest/backup-recovery/ec2-backup.html#amis-snapshots)

**Microsoft-Ressourcen**
+ [Identitäten des Anwendungspools](https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/was-service-svchost-process-operation/understanding-identities#application-pool-identities)
+ [IIS-Dokumentation](https://learn.microsoft.com/en-us/iis/)
+ [Dokumentation zu IIS 8 appcmd.exe](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635852(v=ws.11))
+ [Dokumentation zu IIS 10 appcmd.exe](https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-10/new-features-introduced-in-iis-10)
+ [Leistungsstarke Admin-Tools](https://learn.microsoft.com/en-us/iis/overview/powerful-admin-tools)

# Migrieren Sie EC2 mithilfe des Application Migration Service eine lokale Microsoft SQL Server-Datenbank zu Amazon
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn"></a>

*Senthil Ramasamy, Amazon Web Services*

## Zusammenfassung
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-summary"></a>

Dieses Muster beschreibt die Schritte zur Migration einer Microsoft SQL Server-Datenbank von einem lokalen Rechenzentrum zu einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance. Es verwendet das AWS Application Migration Service (AWS MGN), um Ihre Datenbank mithilfe einer automatisierten Migration neu zu hosten. lift-and-shift AWS MGN führt die Replikation Ihres Quelldatenbankservers auf Blockebene durch.

## Voraussetzungen und Einschränkungen
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Eine Microsoft SQL Server-Quelldatenbank in einem lokalen Rechenzentrum

**Einschränkungen**
+ Ihre Netzwerkbandbreite zwischen dem lokalen Rechenzentrum und ist möglicherweise begrenzt. AWS
+ AWS MGN ist auf Datenbanken beschränkt, die auf eigenständigen Servern mit dediziertem Speicher gehostet werden. Es unterstützt nicht die Migration von geclusterten Datenbanksystemen und Datenbanksystemen, bei denen die Änderungsrate den Durchsatz eines Netzwerks übersteigt.
+ Einige AWS-Services sind nicht in allen verfügbar. AWS-Regionen Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie [AWS-Services unter Nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie auf der [Seite Dienstendpunkte und Kontingente](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Wählen Sie dort den Link für den Dienst aus.

**Produktversionen**
+ Alle Versionen der Microsoft SQL Server-Datenbank
+ Windows- und Linux-Betriebssysteme, die [AWS MGN unterstützen](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html)

## Architektur
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-architecture"></a>

**Quelltechnologie-Stack**

Eine lokale Microsoft SQL Server-Datenbank

**Zieltechnologie-Stack**

Eine Microsoft SQL Server-Datenbank auf einer EC2 Amazon-Instance

**Zielarchitektur**

![\[Replizieren Sie Daten aus einem lokalen Unternehmensrechenzentrum nach AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a459eaef-c256-4691-a7ec-2304f634228c/images/d8d6cee7-f42c-4686-bf92-6e6d39adfb17.png)


Diese Architektur verwendet AWS MGN, um Daten aus einem lokalen Unternehmensrechenzentrum zu replizieren. AWS Das Diagramm zeigt den Datenreplikationsprozess, die API-Kommunikation sowie die Test- und Umstellungsphasen.

1. Datenreplikation:
   + AWS MGN repliziert Daten aus dem lokalen Unternehmensrechenzentrum in das Rechenzentrum des Unternehmens AWS und initiiert die fortlaufende Replikation von Änderungen.
   + Replikationsserver im Staging-Subnetz empfangen und verarbeiten die Daten.

1. API-Kommunikation:
   + Replikationsserver stellen über TCP-Port 443 eine Verbindung zu den API-Endpunkten von AWS MGN EC2, Amazon und Amazon Simple Storage Service (Amazon S3) her.
   + AWS MGN verwaltet die Migration.
   + Amazon EC2 verwaltet den Instanzbetrieb.

1. Test und Umstellung:
   + Test-Instances werden im betriebsbereiten Subnetz mit replizierten Daten gestartet.
   + Nach erfolgreichen Tests erstellt AWS MGN Cutover-Instanzen für die endgültige Migration.

## Tools
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-tools"></a>
+ [AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) unterstützt Sie beim Rehosten (*Lift and Shift*) von Anwendungen AWS Cloud ohne Änderungen und mit minimalen Ausfallzeiten.
+ [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect-Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS Diensten einrichten und dabei Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [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.

## Best Practices
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-best-practices"></a>
+ Richten Sie regionale API-Endpunkte für AWS MGN EC2, Amazon und Amazon S3 in der Virtual Private Cloud (VPC) ein, um den öffentlichen Zugriff über das Internet zu verbieten.
+ Richten Sie die AWS MGN-Starteinstellungen ein, um Zieldatenbankserver in einem privaten Subnetz zu starten.
+ Erlauben Sie nur die erforderlichen Ports in Datenbanksicherheitsgruppen.
+ Folgen Sie dem Prinzip der geringsten Rechte und gewähren Sie die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter [Gewährung der geringsten Rechte](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) und [bewährte Methoden zur Sicherheit](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).

## Epen
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-epics"></a>

### AWS MGN einrichten
<a name="set-up-aws-mgn"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  AWS MGN konfigurieren. | Suchen Sie nach dem AWS Application Migration Service AWS-Managementkonsole in und starten Sie den Einrichtungsvorgang. Dadurch wird eine Replikationsvorlage erstellt und Sie werden zur Seite **Quellserver** der MGN-Konsole weitergeleitet. Wählen Sie bei der Konfiguration des MGN-Dienstes eine Servicerolle aus der generierten Liste aus. | DBA, Migrationsingenieur | 
| Quellserver hinzufügen. | Fügen Sie Details zu Ihrem lokalen Quelldatenbankserver hinzu und fügen Sie dann den Server hinzu. | DBA, Migrationsingenieur | 
| Installieren Sie den AWS MGN-Agenten auf dem Quellserver. | Laden Sie das Installationsprogramm für den AWS MGN Agent auf Ihr lokales System herunter und übertragen Sie das Installationsprogramm auf Ihren Quelldatenbankserver. Informationen zur Überprüfung des Installer-Hash finden Sie unter Überprüfen des heruntergeladenen [AWS Replication Agent-Installationsprogramms für Windows 2012](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html#installer-hash-table-2012). | DBA, Migrationsingenieur | 

### Installieren Sie den AWS MGN Agent auf Quellcomputern
<a name="install-aws-mgn-agent-on-source-machines"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie Client-IAM-Anmeldeinformationen. | Generieren Sie vor der Installation des AWS MGN-Agenten AWS Anmeldeinformationen, indem Sie einen neuen IAM-Benutzer mit den entsprechenden Berechtigungen erstellen.Weitere Informationen finden Sie unter Von [AWS verwaltete Richtlinien für AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/security-iam-awsmanpol.html) und [Generierung der erforderlichen AWS Anmeldeinformationen](https://docs.aws.amazon.com/mgn/latest/ug/credentials.html). | DBA, Migrationsingenieur | 
| Installieren Sie den Agenten auf dem Quellserver. | Installieren Sie den Agenten auf dem Quellcomputer, der die Microsoft SQL Server-Datenbank hostet. Weitere Informationen finden Sie unter [Installation des AWS Replication Agents auf Windows-Servern](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html).Geben Sie die folgenden AWS-Anmeldeinformationen ein:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Ihre eindeutigen AWS Anmeldeinformationen ermöglichen es dem AWS MGN-Agenten, sich zu authentifizieren und Migrationsaufgaben auszuführen. | App-Besitzer, DBA, Migrationsingenieur | 
| Wählen Sie die zu replizierenden Festplatten aus. | Nach Eingabe Ihrer AWS Anmeldeinformationen überprüft das Installationsprogramm, ob Ihr Server die Mindestanforderungen für die Agenteninstallation erfüllt (z. B. ob der Server über ausreichend Festplattenspeicher für die Installation des AWS MGN-Agenten verfügt). Das Installationsprogramm zeigt die Datenträgerbezeichnungen und Speicherdetails an.Um Ihre Datenbank mithilfe des AWS MGN-Dienstes zu replizieren, wählen Sie die entsprechenden Festplatten auf Ihrem Quellserver aus. Geben Sie den Pfad der einzelnen Festplatten durch Kommas getrennt ein. Wenn Sie alle Festplatten replizieren möchten, lassen Sie den Pfad leer. Nachdem Sie die ausgewählten Festplatten bestätigt haben, wird die Installation fortgesetzt. | DBA, Migrationsingenieur | 
| Überwachen Sie den Synchronisierungsfortschritt. | AWS Der Replication Agent initiiert den Synchronisierungsvorgang, indem er zuerst einen Snapshot der ausgewählten Festplatten erstellt und dann die Daten repliziert.Sie können den Synchronisierungsfortschritt auf der Seite **Quellserver** in der AWS MGN-Konsole überwachen. Weitere Informationen finden Sie unter [Überwachen des Servers im Migrationslebenszyklus](https://docs.aws.amazon.com/mgn/latest/ug/migration-dashboard.html). | DBA, Migrationsingenieur | 

### Replikation mit AWS MGN
<a name="replication-using-aws-mgn"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwalten Sie den Replikationsfortschritt. | Nachdem Sie die erste Synchronisation gestartet haben, wird Ihr Quellserver in der AWS MGN-Konsole angezeigt, wo Sie die Migration verwalten und überwachen können. In der Konsole wird eine geschätzte Zeit für die vollständige Replikation angezeigt, die auf der Gesamtgröße der ausgewählten Festplatten und der verfügbaren Netzwerkbandbreite basiert. | DBA, Migrationsingenieur | 
| Überprüfen Sie die Synchronisation. | Nachdem die Festplatten auf dem Quellserver vollständig synchronisiert wurden, stellen Sie sicher, dass alle ausgewählten Festplatten als vollständig synchronisiert aufgeführt sind und dass in der Konsole keine Fehler gemeldet werden.Die AWS MGN-Konsole wechselt dann automatisch den Status des Migrationslebenszyklus auf **Bereit zum Testen**, was darauf hinweist, dass die replizierte Umgebung für Leistungs- und Funktionstests vorbereitet AWS ist. | App-Besitzer, DBA, Migrationsingenieur | 

### Testen und überarbeiten
<a name="test-and-cut-over"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die Starteinstellungen. | Wählen Sie den Quellserver in der AWS MGN-Konsole aus und aktualisieren Sie die Starteinstellungen für die Ziel-Testinstanz. Navigieren Sie auf der **Detailseite des Quellservers** zur Registerkarte **Starteinstellungen**, um die Testinstanz zu konfigurieren.Wählen Sie einen kostengünstigen Instance-Typ und einen Amazon Elastic Block Store (Amazon EBS) -Volumetyp und konfigurieren Sie dann die Sicherheitsgruppen und Netzwerkanforderungen. Weitere Informationen finden Sie unter [Starteinstellungen.](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html) | DBA, Migrationsingenieur | 
| Starten Sie die Ziel-Testinstanz. | Navigieren Sie zur AWS MGN-Konsole Ihres synchronisierten Quellcomputers und starten Sie eine Ziel-Testinstanz, indem Sie **Testen und Überschneiden und** dann **Testinstanzen starten** auswählen.Dadurch wird ein Startjob erstellt, der die Testinstanz mithilfe Ihrer konfigurierten Einstellungen bereitstellt. Die Instance wird in der Umgebung Ihres Quelldatenbankservers gestartet AWS Cloud und repliziert diese. Überwachen Sie den Startfortschritt auf der Seite mit dem **Startverlauf**, auf der Sie die Erstellung der Instance verfolgen und etwaige Probleme beheben können. | DBA, Migrationsingenieur | 
| Validieren Sie die Ziel-Testinstanz. | Überprüfen Sie den EC2 Amazon-Datenbankserver:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Führen Sie Validierungstests durch, um sicherzustellen, dass die Datenbank wie erwartet funktioniert. | DBA, Migrationsingenieur | 
| Benennen Sie den Server um. | AWS Die MGN-Migration beinhaltet eine Kopie Ihres lokalen Quellservers auf Speicherebene. Ihre SQL EC2 Server-Instanz enthält nur die Details des ursprünglichen Quellservers in ihren Binärdateien. Aktualisieren Sie daher die Binärinformationen, sodass sie den Namen des neuen Servers widerspiegeln.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | DBA, Migrationsingenieur | 
| Starten Sie die Cutover-Instanz. | Vergewissern Sie sich in der AWS MGN-Konsole auf der Seite **Quellserver**, dass der Status des Migrationslebenszyklus des Servers „**Bereit für** die Übernahme“ lautet. Konfigurieren Sie die Starteinstellungen für die Cutover-Instance und stellen Sie sicher, dass die Einstellungen Ihrer lokalen Umgebung entsprechen.Bevor Sie die Übernahme einleiten, fahren Sie Ihre lokale Datenbank herunter. Dadurch wird Folgendes gewährleistet:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html)Initiieren Sie die Cutover-Instanz in der AWS MGN-Konsole. Wenn die Cutover-Instanz betriebsbereit ist, melden Sie sich bei der Instanz an und führen Sie die folgenden Tests durch:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.html) | App-Besitzer, DBA, Migrationsingenieur, Migrationsleiter | 

## Fehlerbehebung
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Die erste Synchronisation schlägt beim Authentifizierungsschritt fehl. | Dies ist ein Problem mit der Netzwerkkonnektivität. Der Replikationsserver kann keine Verbindung zu AWS MGN herstellen. | 

## Zugehörige Ressourcen
<a name="migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn-resources"></a>

**AWS-Dokumentation**
+ [Erste Schritte mit AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/getting-started.html)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Amazon EC2](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.html)
+ [Was ist Microsoft SQL Server auf Amazon EC2?](https://docs.aws.amazon.com/sql-server-ec2/latest/userguide/sql-server-on-ec2-overview.html)

**Videos**
+ [Durchführung einer Lift-and-Shift-Migration mit AWS Application Migration Service](https://www.youtube.com/watch?v=tB0sAR3aCb4) (Video)

# Migrieren Sie einen F5 BIG-IP-Workload zu F5 BIG-IP VE auf dem AWS Cloud
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud"></a>

*Deepak Kumar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-summary"></a>

Organizations möchten auf die migrieren, AWS Cloud um ihre Agilität und Widerstandsfähigkeit zu erhöhen. Nachdem Sie Ihre [F5 BIG-IP-Sicherheits](https://www.f5.com/products/big-ip-services) - und Verkehrsmanagementlösungen auf die migriert haben AWS Cloud, können Sie sich auf die Agilität und die Einführung hochwertiger Betriebsmodelle in Ihrer gesamten Unternehmensarchitektur konzentrieren.

Dieses Muster beschreibt, wie Sie einen F5 BIG-IP-Workload auf einen F5 BIG-IP Virtual Edition (VE) [-Workload](https://www.f5.com/products/big-ip-services/virtual-editions) auf dem migrieren. AWS Cloud Der Workload wird migriert, indem die bestehende Umgebung neu gehostet und Aspekte der Plattformumstellung wie Serviceerkennung und API-Integrationen implementiert werden. [AWS CloudFormation Vorlagen](https://github.com/F5Networks/f5-aws-cloudformation) beschleunigen die Migration Ihres Workloads auf die. AWS Cloud

Dieses Muster richtet sich an Teams aus den Bereichen Technik und Architektur, die die Sicherheits- und Verkehrsmanagementlösungen von F5 migrieren. Es ist Teil des Leitfadens [Migration von F5 BIG-IP zu F5 BIG-IP](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html) VE auf der Prescriptive Guidance-Website. AWS Cloud AWS 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-prereqs"></a>

**Voraussetzungen**
+ Ein vorhandener lokaler F5 BIG-IP-Workload.
+ Bestehende F5-Lizenzen für BIG-IP VE-Versionen.
+ Ein aktiver. AWS-Konto
+ Eine bestehende Virtual Private Cloud (VPC), die mit einem Ausgang über ein NAT-Gateway oder eine Elastic IP-Adresse konfiguriert und mit Zugriff auf die folgenden Endpunkte konfiguriert ist: Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), AWS -Security-Token-Service (AWS STS) und Amazon. CloudWatch Sie können auch die [modulare und skalierbare VPC-Architektur](https://aws.amazon.com/quickstart/architecture/vpc/) Quick Start als Baustein für Ihre Bereitstellungen modifizieren. 
+ Eine oder zwei bestehende Availability Zones, je nach Ihren Anforderungen. 
+ Drei bestehende private Subnetze in jeder Availability Zone.
+ AWS CloudFormation Vorlagen, [verfügbar im F5-Repository GitHub ](https://github.com/F5Networks/f5-aws-cloudformation/blob/master/template-index.md). 

Während der Migration können Sie je nach Ihren Anforderungen auch Folgendes verwenden:
+ Eine [F5 Cloud Failover Extension](https://clouddocs.f5.com/products/extensions/f5-cloud-failover/latest/) zur Verwaltung der Elastic IP-Adresszuweisung, der sekundären IP-Zuordnung und der Änderungen an der Routentabelle. 
+ Wenn Sie mehrere Availability Zones verwenden, müssen Sie die F5 Cloud Failover Extensions verwenden, um die Elastic IP-Zuordnung zu virtuellen Servern zu verwalten.
+ Sie sollten erwägen, [F5 Application Services 3 (AS3)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/), [F5 Application Services Templates (FAST)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-templates/latest/) oder ein anderes Infrastructure-as-Code-Modell (IaC) zur Verwaltung der Konfigurationen zu verwenden. Die Vorbereitung der Konfigurationen in einem IaC-Modell und die Verwendung von Code-Repositorys helfen Ihnen bei der Migration und Ihren laufenden Verwaltungsbemühungen.

**Fachwissen**
+ Dieses Muster erfordert Vertrautheit mit der Art und Weise, wie ein oder mehrere Rechenzentren mit vorhandenen Rechenzentren verbunden werden VPCs können. Weitere Informationen dazu finden Sie unter [Network-to-Amazon VPC-Konnektivitätsoptionen](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) in der Amazon VPC-Dokumentation. 
+ [Außerdem sind Kenntnisse der Produkte und Module von F5 erforderlich, darunter [Traffic Management Operating System (TMOS)](https://www.f5.com/services/resources/white-papers/tmos-redefining-the-solution), [Local Traffic Manager (LTM)](https://www.f5.com/products/big-ip-services/local-traffic-manager), [Global Traffic Manager (GTM), Access Policy Manager (APM)](https://techdocs.f5.com/kb/en-us/products/big-ip_gtm/manuals/product/gtm-concepts-11-5-0/1.html#unique_9842886)[, Application Security Manager (ASM)](https://www.f5.com/products/security/access-policy-manager)[, [Advanced Firewall Manager (](https://www.f5.com/products/security/advanced-firewall-manager)AFM)](https://www.f5.com/pdf/products/big-ip-application-security-manager-overview.pdf) und BIG-IQ.](https://www.f5.com/products/automation-and-orchestration/big-iq)

**Produktversionen**
+ [Wir empfehlen, F5 BIG-IP [Version 13.1](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-ve-13-1-0.html) oder höher zu verwenden, obwohl das Muster F5 BIG-IP Version 12.1 oder höher unterstützt.](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/releasenotes/product/relnote-bigip-12-1-4.html)

## Architektur
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-architecture"></a>

**Quelltechnologie-Stack**
+ F5 BIG-IP-Arbeitslast

**Zieltechnologie-Stack**
+ Amazon CloudFront
+ CloudWatch
+ Amazon EC2
+ Amazon S3
+ Amazon VPC
+ AWS Global Accelerator
+ AWS STS
+ AWS Transit Gateway
+ F5 BIG-UP

**Zielarchitektur**

![\[Architektur für die Migration eines F5 BIG-IP-Workloads auf einen F5 BIG-IP VE-Workload.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/586fe806-fac1-48d3-9eb1-45a6c86430dc/images/16d7fc09-1ffe-4721-b503-d971db84cbae.png)


## Tools
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-tools"></a>
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)hilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über und zu verwalten. AWS-Konten AWS-Regionen
+ [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) beschleunigt die Verteilung Ihrer Webinhalte, indem es sie über ein weltweites Netzwerk von Rechenzentren bereitstellt, was die Latenz senkt und die Leistung verbessert.   
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) hilft Ihnen dabei, die Kennzahlen Ihrer AWS Ressourcen und der Anwendungen, auf denen Sie laufen, AWS in Echtzeit zu überwachen.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS Cloud Sie können so viele virtuelle Server starten, wie Sie benötigen, und diese schnell nach oben oder unten skalieren.
+ [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.
+ [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 -Security-Token-Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) hilft Ihnen dabei, temporäre Anmeldeinformationen mit eingeschränkten Rechten für Benutzer anzufordern.
+ [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)ist ein zentraler Hub, der virtuelle private Clouds (VPCs) und lokale Netzwerke verbindet.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS.

## Epen
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-epics"></a>

### Entdeckung und Bewertung
<a name="discovery-and-assessment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Beurteilen Sie die Leistung von F5 BIG-IP. | Erfassen und notieren Sie die Leistungskennzahlen der Anwendungen auf dem virtuellen Server sowie die Messwerte der Systeme, die migriert werden sollen. Dies hilft bei der richtigen Dimensionierung der AWS Zielinfrastruktur für eine bessere Kostenoptimierung. | F5 Architekt, Ingenieur und Netzwerkarchitekt, Ingenieur | 
| Evaluieren Sie das F5 BIG-IP-Betriebssystem und die Konfiguration. | Evaluieren Sie, welche Objekte migriert werden sollen und ob eine Netzwerkstruktur beibehalten werden muss, z. VLANs | F5 Architekt, Ingenieur | 
| Evaluieren Sie die F5-Lizenzoptionen. | Prüfen Sie, welches Lizenz- und Nutzungsmodell Sie benötigen. Diese Bewertung sollte auf Ihrer Bewertung des F5 BIG-IP-Betriebssystems und der Konfiguration basieren. | F5 Architekt, Ingenieur | 
| Evaluieren Sie die öffentlichen Anwendungen. | Ermitteln Sie, für welche Anwendungen öffentliche IP-Adressen erforderlich sind. Ordnen Sie diese Anwendungen den erforderlichen Instanzen und Clustern zu, um die Leistungs- und SLA-Anforderungen (Service Level Agreement) zu erfüllen. | F5-Architekt, Cloud-Architekt, Netzwerkarchitekt, Ingenieur, Anwendungsteams | 
| Evaluieren Sie interne Anwendungen. | Evaluieren Sie, welche Anwendungen von internen Benutzern verwendet werden. Stellen Sie sicher, dass Sie wissen, wo sich diese internen Benutzer in der Organisation befinden und wie diese Umgebungen mit den verbunden sind AWS Cloud. Sie sollten auch sicherstellen, dass diese Anwendungen das Domain Name System (DNS) als Teil der Standarddomäne verwenden können. | F5-Architekt, Cloud-Architekt, Netzwerkarchitekt, Ingenieur, Anwendungsteams | 
| Finalisieren Sie das AMI. | Nicht alle F5 BIG-IP-Versionen werden als Amazon Machine Images () erstellt. AMIs Sie können das F5 BIG-IP Image Generator Tool verwenden, wenn Sie über spezielle QFE-Versionen (Quick-Fix Engineering) verfügen. Weitere Informationen zu diesem Tool finden Sie im Abschnitt „Verwandte Ressourcen“. | F5-Architekt, Cloud-Architekt, Ingenieur | 
| Finalisieren Sie die Instanztypen und die Architektur. | Entscheiden Sie sich für die Instance-Typen, die VPC-Architektur und die vernetzte Architektur. | F5-Architekt, Cloud-Architekt, Netzwerkarchitekt, Ingenieur | 

### Vollständige Aktivitäten im Zusammenhang mit Sicherheit und Compliance
<a name="complete-security-and-compliance-related-activities"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Dokumentieren Sie die bestehenden F5-Sicherheitsrichtlinien. | Sammeln und dokumentieren Sie die vorhandenen F5-Sicherheitsrichtlinien. Stellen Sie sicher, dass Sie eine Kopie davon in einem sicheren Code-Repository erstellen. | F5 Architekt, Ingenieur | 
| Verschlüsseln Sie das AMI. | (Optional) Ihre Organisation benötigt möglicherweise die Verschlüsselung von Daten im Ruhezustand. Weitere Informationen zum Erstellen eines benutzerdefinierten BYOL-Images (Bring Your Own License) finden Sie im Abschnitt „Verwandte Ressourcen“. | F5-Architekt, Ingenieur, Cloud-Architekt, Ingenieur | 
| Härten Sie die Geräte aus. | Dies trägt zum Schutz vor potenziellen Sicherheitslücken bei. | F5 Architekt, Ingenieur | 

### Konfigurieren Sie Ihre neue Umgebung AWS
<a name="configure-your-new-aws-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Edge- und Sicherheitskonten. | Melden Sie sich bei dem an AWS-Managementkonsole und erstellen Sie AWS-Konten das, das die Edge- und Sicherheitsdienste bereitstellt und betreibt. Diese Konten können sich von den Konten unterscheiden, die VPCs für gemeinsam genutzte Dienste und Anwendungen verwendet werden. Dieser Schritt kann als Teil einer landing zone abgeschlossen werden. | Cloud-Architekt, Ingenieur | 
| Stellen Sie Edge und Sicherheit bereit VPCs. | Richten Sie die für die Bereitstellung von Edge- und Sicherheitsdiensten VPCs erforderlichen Dienste ein und konfigurieren Sie sie. | Cloud-Architekt, Ingenieur | 
| Connect zum Quellrechenzentrum her. | Connect zum Quellrechenzentrum her, das Ihren F5 BIG-IP-Workload hostet. | Cloud-Architekt, Netzwerkarchitekt, Ingenieur | 
| Stellen Sie die VPC-Verbindungen bereit. | Connect den Edge- und Sicherheitsdienst VPCs mit der Anwendung VPCs. | Netzwerkarchitekt, Ingenieur | 
| Stellen Sie die Instanzen bereit. | Stellen Sie die Instanzen mithilfe der CloudFormation Vorlagen aus dem Abschnitt „Verwandte Ressourcen“ bereit. | F5 Architekt, Ingenieur | 
| Testen und konfigurieren Sie den Instanz-Failover. | Stellen Sie sicher, dass die AWS Advanced HA iApp-Vorlage oder die F5 Cloud Failover Extension konfiguriert ist und ordnungsgemäß funktioniert. | F5 Architekt, Ingenieur | 

### Netzwerk konfigurieren
<a name="configure-networking"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die VPC-Topologie vor. | Öffnen Sie die Amazon VPC-Konsole und stellen Sie sicher, dass Ihre VPC über alle erforderlichen Subnetze und Schutzmaßnahmen für die F5 BIG-IP VE-Bereitstellung verfügt. | Netzwerkarchitekt, F5-Architekt, Cloud-Architekt, Ingenieur | 
| Bereiten Sie Ihre VPC-Endpoints vor. | Bereiten Sie die VPC-Endpoints für Amazon EC2, Amazon S3 und für den AWS STS Fall vor, dass ein F5 BIG-IP-Workload keinen Zugriff auf ein NAT-Gateway oder eine Elastic IP-Adresse auf einer TMM-Schnittstelle hat. | Cloud-Architekt, Ingenieur | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie die Konfiguration. | Migrieren Sie die F5 BIG-IP-Konfiguration auf F5 BIG-IP VE auf dem. AWS Cloud | F5 Architekt, Ingenieur | 
| Ordnen Sie die Sekundarstufe IPs zu. | Die IP-Adressen virtueller Server stehen in einer Beziehung zu den sekundären IP-Adressen, die den Instanzen zugewiesen sind. Weisen Sie sekundäre IP-Adressen zu und stellen Sie sicher, dass „Neuzuordnung/Neuzuweisung zulassen“ ausgewählt ist. | F5 Architekt, Ingenieur | 

### Konfigurationen testen
<a name="test-configurations"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die virtuellen Serverkonfigurationen. | Testen Sie die virtuellen Server. | F5-Architekt, Anwendungsteams | 

### Schließen Sie den Betrieb ab
<a name="finalize-operations"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Backup-Strategie. | Die Systeme müssen heruntergefahren werden, um einen vollständigen Snapshot zu erstellen. Weitere Informationen finden Sie unter „Aktualisierung einer virtuellen F5 BIG-IP-Maschine“ im Abschnitt „Verwandte Ressourcen“. | F5-Architekt, Cloud-Architekt, Ingenieur | 
| Erstellen Sie das Cluster-Failover-Runbook. | Stellen Sie sicher, dass der Failover-Runbook-Vorgang abgeschlossen ist. | F5 Architekt, Ingenieur | 
| Richten Sie die Protokollierung ein und validieren Sie sie. | Konfigurieren Sie das F5-Telemetrie-Streaming so, dass Protokolle an die erforderlichen Ziele gesendet werden. | F5 Architekt, Ingenieur | 

### Schließen Sie die Umstellung ab
<a name="complete-the-cutover"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Gehen Sie zur neuen Bereitstellung über. |  | F5-Architekt, Cloud-Architekt, Netzwerkarchitekt, Ingenieur, AppTeams | 

## Zugehörige Ressourcen
<a name="migrate-an-f5-big-ip-workload-to-f5-big-ip-ve-on-the-aws-cloud-resources"></a>

**Leitfaden zur Migration**
+ [Migration von F5 BIG-IP zu F5 BIG-IP VE auf dem AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-f5-big-ip/welcome.html)

**F5-Ressourcen**
+ [CloudFormation Vorlagen im F5-Repository GitHub ](https://github.com/F5Networks/f5-aws-cloudformation)
+ [F5 rein AWS Marketplace](https://aws.amazon.com/marketplace/seller-profile?id=74d946f0-fa54-4d9f-99e8-ff3bd8eb2745)
+ [Überblick über F5 BIG-IP VE](https://www.f5.com/products/big-ip-services/virtual-editions) 
+ [Beispiel für einen Schnellstart — BIG-IP Virtual Edition mit WAF (LTM \$1 ASM)](https://github.com/F5Networks/f5-aws-cloudformation-v2/tree/main/examples/quickstart)
+ [Die Anwendungsdienste von F5 auf AWS einen Blick: ein Überblick (Video)](https://www.youtube.com/watch?v=kutVjRHOAXo)
+ [Benutzerhandbuch für die F5 Application Services 3-Erweiterung](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/)
+ [F5 Cloud-Dokumentation](https://clouddocs.f5.com/training/community/public-cloud/html/intro.html)
+ [F5 iControl REST-Wiki](https://clouddocs.f5.com/api/icontrol-rest/)
+ [F5 Überblick über einzelne Konfigurationsdateien (11.x - 15.x)](https://support.f5.com/csp/article/K13408)
+ [F5-Whitepapers](https://www.f5.com/services/resources/white-papers)
+ [Das F5 BIG-IP-Bildgenerator-Tool](https://clouddocs.f5.com/cloud/public/v1/ve-image-gen_index.html)
+ [Aktualisierung einer virtuellen F5 BIG-IP VE-Maschine](https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/bigip-ve-setup-vmware-esxi-11-5-0/3.html)
+ [Überblick über die Option „Plattform-Migrate“ für das UCS-Archiv](https://support.f5.com/csp/article/K82540512)

# Migrieren Sie eine lokale Go-Webanwendung mithilfe der binären Methode zu AWS Elastic Beanstalk
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method"></a>

*Suhas Basavaraj und Shumaz Mukhtar Kazi, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-summary"></a>

Dieses Muster beschreibt, wie eine lokale Go-Webanwendung zu AWS Elastic Beanstalk migriert wird. Nach der Migration der Anwendung erstellt Elastic Beanstalk die Binärdatei für das Quellpaket und stellt sie auf einer Amazon Elastic Compute Cloud (Amazon) -Instance bereit. EC2

Als Strategie für die Rehost-Migration ist dieses Muster schnell und erfordert keine Codeänderungen, was weniger Test- und Migrationszeit bedeutet. 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine lokale Go-Webanwendung.
+ Ein GitHub Repository, das den Quellcode Ihrer Go-Anwendung enthält. Wenn Sie es nicht verwenden GitHub, gibt es andere Möglichkeiten, [ein Anwendungsquellpaket für Elastic Beanstalk zu erstellen](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/applications-sourcebundle.html).

**Produktversionen**
+ Die neueste Go-Version, die von Elastic Beanstalk unterstützt wird. Weitere Informationen finden Sie in der [Elastic Beanstalk Beanstalk-Dokumentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go).

## Architektur
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Go-Webanwendung 

**Zieltechnologie-Stack**
+ AWS Elastic Beanstalk
+ Amazon CloudWatch

**Zielarchitektur****

![\[Architektur für die Migration einer Go-Anwendung zu Elastic Beanstalk\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/cd8d660d-5621-4ea7-8f97-7a1e321c57d3/images/1df543d9-7073-43d8-abd3-f1f7e57278eb.png)


## Tools
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-tools"></a>
+ [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.html) stellt Anwendungen in der AWS-Cloud schnell bereit und verwaltet sie, ohne dass Benutzer sich mit der Infrastruktur vertraut machen müssen, auf der diese Anwendungen ausgeführt werden. Elastic Beanstalk vereinfacht die komplexe Verwaltung, ohne Einschränkungen in Bezug auf Auswahl oder Kontrolle nach sich zu ziehen.
+ [GitHub](https://github.com/)ist ein verteiltes Open-Source-Versionskontrollsystem.

## Epen
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-epics"></a>

### Erstellen Sie die ZIP-Datei mit dem Quellpaket für die Go-Webanwendung
<a name="create-the-go-web-application-source-bundle-zip-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das Quellpaket für die Go-Anwendung.  | Öffnen Sie das GitHub Repository, das den Quellcode Ihrer Go-Anwendung enthält, und bereiten Sie das Quellpaket vor. Das Quellpaket enthält eine `application.go` Quelldatei im Stammverzeichnis, die das Hauptpaket für Ihre Go-Anwendung hostet. Wenn Sie es nicht verwenden GitHub, finden Sie im Abschnitt *Voraussetzungen* weiter oben in diesem Muster weitere Möglichkeiten, Ihr Anwendungsquellpaket zu erstellen. | Systemadministrator, Anwendungsentwickler | 
| Erstellen einer Konfigurationsdatei | Erstellen Sie einen `.ebextensions` Ordner in Ihrem Quellpaket und dann eine `options.config` Datei in diesem Ordner. Weitere Informationen finden Sie in der [Elastic Beanstalk Beanstalk-Dokumentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html). | Systemadministrator, Anwendungsentwickler | 
|  Erstellen Sie die ZIP-Datei des Quellpakets. | Führen Sie den folgenden Befehl aus.<pre>git archive -o ../godemoapp.zip HEAD</pre>Dadurch wird die ZIP-Datei des Quellpakets erstellt. Laden Sie die ZIP-Datei herunter und speichern Sie sie als lokale Datei. Die ZIP-Datei darf 512 MB nicht überschreiten und darf keinen übergeordneten Ordner oder ein Verzeichnis der obersten Ebene enthalten. | Systemadministrator, Anwendungsentwickler | 

### Migrieren Sie die Go-Webanwendung zu Elastic Beanstalk
<a name="migrate-the-go-web-application-to-elastic-beanstalk"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wählen Sie die Elastic Beanstalk Beanstalk-Anwendung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html)Anweisungen zum Erstellen einer Elastic Beanstalk Beanstalk-Anwendung finden Sie in der Elastic Beanstalk [Beanstalk-Dokumentation](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html). | Systemadministrator, Anwendungsentwickler | 
| Initiieren Sie die Elastic Beanstalk Beanstalk-Webserver-Umgebung.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Systemadministrator, Anwendungsentwickler | 
| Laden Sie die .zip-Datei des Quellpakets auf Elastic Beanstalk hoch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method.html) | Systemadministrator, Anwendungsentwickler | 
| Testen Sie die bereitgestellte Go-Webanwendung. | Sie werden zur Übersichtsseite der Elastic Beanstalk Beanstalk-Anwendung weitergeleitet. Wählen Sie oben in der Übersicht neben **Environment ID** die URL aus, die mit „Um zu Ihrer Anwendung `elasticbeanstalk.com` zu navigieren“ endet. Ihre Anwendung muss diesen Namen in ihrer Konfigurationsdatei als Umgebungsvariable verwenden und ihn auf der Webseite anzeigen. | Systemadministrator, Anwendungsentwickler | 

## Fehlerbehebung
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Auf die Anwendung kann nicht über einen Application Load Balancer zugegriffen werden. | Überprüfen Sie die Zielgruppe, die Ihre Elastic Beanstalk Beanstalk-Anwendung enthält. Wenn sie fehlerhaft ist, melden Sie sich bei Ihrer Elastic Beanstalk Beanstalk-Instance an und überprüfen Sie die `nginx.conf` Dateikonfiguration, um sicherzustellen, dass sie zur richtigen Integritätsstatus-URL weitergeleitet wird. Möglicherweise müssen Sie die URL für die Zustandsprüfung der Zielgruppe ändern. | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-go-web-application-to-aws-elastic-beanstalk-by-using-the-binary-method-resources"></a>
+ [Von Elastic Beanstalk unterstützte Go-Plattformversionen](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html#platforms-supported.go)
+ [Verwenden von Konfigurationsdateien mit Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html)
+ [Eine Beispielanwendung in Elastic Beanstalk erstellen](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html) 

# Migrieren Sie einen lokalen SFTP-Server auf AWS AWS Transfer for SFTP
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp"></a>

*Akash Kumar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-summary"></a>

Dieses Muster beschreibt, wie Sie mithilfe des Dienstes eine lokale Dateiübertragungslösung, die das Secure Shell (SSH) File Transfer Protocol (SFTP) verwendet, auf den AWS Cloud migrieren. AWS Transfer for SFTP Benutzer stellen in der Regel entweder über seinen Domainnamen oder eine feste IP-Adresse eine Verbindung zu einem SFTP-Server her. Dieses Muster deckt beide Fälle ab.

AWS Transfer for SFTP ist Mitglied der AWS Transfer Family. Es ist ein sicherer Übertragungsdienst, mit dem Sie Dateien über SFTP in und aus AWS Speicherdiensten übertragen können. Sie können es AWS Transfer for SFTP mit Amazon Simple Storage Service (Amazon S3) oder Amazon Elastic File System (Amazon EFS) verwenden. Dieses Muster verwendet Amazon S3 für die Speicherung.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto.
+ Ein vorhandener SFTP-Domänenname oder eine feste SFTP-IP.

**Einschränkungen**
+ Das größte Objekt, das Sie in einer Anfrage übertragen können, ist derzeit 5 GiB groß. Für Dateien, die größer als 100 MiB sind, sollten Sie den [mehrteiligen Amazon S3 S3-Upload](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html) in Betracht ziehen.

## Architektur
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Flatfiles oder Datenbank-Dumpdateien.

**Zieltechnologie-Stack**
+ AWS Transfer for SFTP
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)
+ AWS Identity and Access Management (IAM) Rollen und Richtlinien
+ Elastic-IP-Adressen
+ Sicherheitsgruppen
+  CloudWatch Amazon-Protokolle (optional)

**Zielarchitektur**

![\[Verwenden Sie AWS Transfer for SFTP, um einen lokalen SFTP-Server in die AWS-Cloud zu migrieren.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/ec0a905c-edef-48ba-9b5e-ea4a4040d320/images/f42aa711-bfe0-4ac6-9f66-5c18a1dd1c7a.png)


**Automatisierung und Skalierung**

Verwenden Sie die beigefügten CloudFormation Vorlagen, um die Zielarchitektur für dieses Muster zu automatisieren:
+ `amazon-vpc-subnets.yml`stellt eine Virtual Private Cloud (VPC) mit zwei öffentlichen und zwei privaten Subnetzen bereit.
+ `amazon-sftp-server.yml`stellt den SFTP-Server bereit.
+ `amazon-sftp-customer.yml`fügt Benutzer hinzu.

## Tools
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-tools"></a>

**AWS-Services**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) hilft Ihnen dabei, die Protokolle all Ihrer Systeme und Anwendungen zu zentralisieren, AWS-Services sodass Sie sie überwachen und sicher archivieren können.
+ [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, sie zu verwenden.
+ [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. Dieses Muster verwendet Amazon S3 als Speichersystem für Dateiübertragungen.
+ [AWS Transfer for SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)hilft Ihnen bei der Übertragung von Dateien in und aus AWS Speicherdiensten über das SFTP-Protokoll.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS.

## Epen
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-epics"></a>

### Erstellen einer VPC
<a name="create-a-vpc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine VPC mit Subnetzen. | Öffnen Sie die [Amazon VPC-Konsole](https://console.aws.amazon.com/vpc/). Erstellen Sie eine Virtual Private Cloud (VPC) mit zwei öffentlichen Subnetzen. (Das zweite Subnetz bietet hohe Verfügbarkeit.) –oder –Sie können die angehängte CloudFormation Vorlage in der [CloudFormation Konsole](https://console.aws.amazon.com/cloudformation) bereitstellen`amazon-vpc-subnets.yml`, um die Aufgaben in diesem Epos zu automatisieren. | Entwickler, Systemadministrator | 
| Fügen Sie ein Internet-Gateway hinzu. | Stellen Sie ein Internet-Gateway bereit und verbinden Sie es mit der VPC. | Entwickler, Systemadministrator | 
| Migrieren Sie eine bestehende IP. | Hängen Sie eine bestehende IP an die Elastic IP-Adresse an. Sie können eine Elastic IP-Adresse aus Ihrem Adresspool erstellen und verwenden. | Entwickler, Systemadministrator | 

### Stellen Sie einen SFTP-Server bereit
<a name="provision-an-sftp-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen SFTP-Server. | Öffnen Sie die [AWS Transfer Family -Konsole](https://console.aws.amazon.com/transfer/). Folgen Sie den Anweisungen unter [Erstellen eines mit dem Internet verbundenen Endpunkts für Ihren Server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#create-internet-facing-endpoint) in der AWS Transfer Family Dokumentation, um einen SFTP-Server mit einem mit dem Internet verbundenen Endpunkt zu erstellen. Wählen Sie als **Endpunkttyp** die Option **VPC Hosted** aus. Wählen Sie für **Access** die Option **Internet Facing** aus. Wählen Sie für **VPC** die VPC aus, die Sie im vorherigen Epos erstellt haben. –oder –Sie können die angehängte CloudFormation Vorlage in der [CloudFormation Konsole](https://console.aws.amazon.com/cloudformation) bereitstellen`amazon-sftp-server.yml`, um die Aufgaben in diesem Epic zu automatisieren. | Entwickler, Systemadministrator | 
| Migrieren Sie den Domainnamen. | Hängen Sie den vorhandenen Domainnamen an den benutzerdefinierten Hostnamen an. Wenn Sie einen neuen Domainnamen verwenden, verwenden Sie den **Amazon Route 53-DNS-Alias**. Wählen Sie für einen vorhandenen Domainnamen „**Anderes DNS**“. Weitere Informationen finden Sie in der AWS Transfer Family Dokumentation unter [Arbeiten mit benutzerdefinierten Hostnamen](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html). | Entwickler, Systemadministrator | 
| Fügen Sie eine CloudWatch Logging-Rolle hinzu. | (Optional) Wenn Sie die CloudWatch Protokollierung aktivieren möchten, erstellen Sie eine `Transfer` Rolle mit den CloudWatch Logs-API-Vorgängen `logs:CreateLogGroup``logs:CreateLogStream`,` logs:DescribeLogStreams`, und`logs:PutLogEvents`. Weitere Informationen finden Sie CloudWatch in der AWS Transfer Family Dokumentation unter [Aktivität protokollieren mit](https://docs.aws.amazon.com/transfer/latest/userguide/monitoring.html#monitoring-enabling). | Entwickler, Systemadministrator | 
| Speichern und abschicken. | Wählen Sie **Speichern**. Wählen Sie für **Aktionen** die Option **Start** und warten Sie, bis der SFTP-Server mit dem Status **Online** erstellt wurde. | Entwickler, Systemadministrator | 

### Ordnen Sie dem SFTP-Server Elastic IP-Adressen zu
<a name="map-elastic-ip-addresses-to-the-sftp-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stoppen Sie den Server, damit Sie die Einstellungen ändern können. | Wählen Sie auf der [AWS Transfer Family Konsole](https://console.aws.amazon.com/transfer/) **Server** und dann den von Ihnen erstellten SFTP-Server aus. Wählen Sie für **Actions (Aktionen)** die Option **Stop (Stopp)**. Wenn der Server offline ist, wählen Sie **Bearbeiten**, um seine Einstellungen zu ändern. | Entwickler, Systemadministrator | 
| Wählen Sie Availability Zones und Subnetze. | Wählen Sie im Abschnitt **Availability Zones** die Availability Zones und Subnetze für Ihre VPC aus. | Entwickler, Systemadministrator | 
| Fügen Sie Elastic IP-Adressen hinzu. | Wählen Sie unter **IPv4 Adressen** eine Elastic IP-Adresse für jedes Subnetz aus und klicken Sie dann auf **Speichern**. | Entwickler, Systemadministrator | 

### Hinzufügen von Benutzern
<a name="add-users"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine IAM-Rolle, damit Benutzer auf den S3-Bucket zugreifen können. | Erstellen Sie eine IAM-Rolle für `Transfer`**** und fügen Sie ` s3:ListBucket`` s3:GetBucketLocation`, und `s3:PutObject` mit dem S3-Bucket-Namen als Ressource hinzu. Weitere Informationen finden Sie in der [Dokumentation unter Erstellen einer IAM-Rolle und -Richtlinie](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html). AWS Transfer Family  –oder –Sie können die angehängte CloudFormation Vorlage in der [CloudFormation Konsole](https://console.aws.amazon.com/cloudformation) bereitstellen`amazon-sftp-customer.yml`, um die Aufgaben in diesem Epos zu automatisieren. | Entwickler, Systemadministrator | 
| Erstellen Sie einen S3-Bucket. | Erstellen Sie einen S3-Bucket für die Anwendung. | Entwickler, Systemadministrator | 
| Erstellen Sie optionale Ordner. | (Optional) Wenn Sie Dateien für Benutzer separat in bestimmten Amazon S3 S3-Ordnern speichern möchten, fügen Sie die entsprechenden Ordner hinzu. | Entwickler, Systemadministrator | 
| Erstellen Sie einen öffentlichen SSH-Schlüssel. | Informationen zum Erstellen eines SSH-Schlüsselpaars finden Sie in der Dokumentation unter [Generieren von SSH-Schlüsseln](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#sshkeygen). AWS Transfer Family  | Entwickler, Systemadministrator | 
| Hinzufügen von Benutzern. | Wählen Sie auf der [AWS Transfer Family Konsole](https://console.aws.amazon.com/transfer/) **Server**, wählen Sie den von Ihnen erstellten SFTP-Server aus und klicken Sie dann auf **Benutzer hinzufügen**. Wählen Sie für **das Home-Verzeichnis** den S3-Bucket aus, den Sie erstellt haben. Geben Sie für den **öffentlichen SSH-Schlüssel** den öffentlichen Schlüsselteil des SSH-Schlüsselpaars an. **Fügen Sie Benutzer für den SFTP-Server hinzu und wählen Sie dann Hinzufügen.** | Entwickler, Systemadministrator | 

### Testen Sie den SFTP-Server
<a name="test-the-sftp-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren Sie die Sicherheitsgruppe. | Fügen Sie im Abschnitt **Sicherheitsgruppen** Ihres SFTP-Servers die IP Ihres Testcomputers hinzu, um SFTP-Zugriff zu erhalten. | Developer | 
| Verwenden Sie ein SFTP-Client-Hilfsprogramm, um den Server zu testen. | Testen Sie Dateiübertragungen mit einem beliebigen SFTP-Client-Hilfsprogramm. Eine Liste der Clients und Anweisungen finden Sie in der AWS Transfer Family Dokumentation unter [Übertragen von Dateien mit einem Client](https://docs.aws.amazon.com/transfer/latest/userguide/transfer-file.html). | Developer | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-sftp-server-to-aws-using-aws-transfer-for-sftp-resources"></a>
+ [AWS Transfer Family Benutzerhandbuch](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [Amazon S3 S3-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [Elastische IP-Adressen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in der EC2 Amazon-Dokumentation

## Anlagen
<a name="attachments-ec0a905c-edef-48ba-9b5e-ea4a4040d320"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/ec0a905c-edef-48ba-9b5e-ea4a4040d320/attachments/attachment.zip)

# Migrieren Sie eine lokale VM EC2 mithilfe des AWS Application Migration Service zu Amazon
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service"></a>

*Thanh Nguyen, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-summary"></a>

Wenn es um die Migration von Anwendungen geht, können Unternehmen verschiedene Ansätze verfolgen, um die Server der Anwendung von der lokalen Umgebung in die Amazon Web Services (AWS) Cloud neu zu hosten (Lift and Shift). Eine Möglichkeit besteht darin, neue Amazon Elastic Compute Cloud (Amazon EC2) -Instances bereitzustellen und die Anwendung dann von Grund auf neu zu installieren und zu konfigurieren. Ein anderer Ansatz besteht darin, native Migrationsdienste von Drittanbietern oder AWS zu verwenden, um mehrere Server gleichzeitig zu migrieren.

Dieses Muster beschreibt die Schritte für die Migration einer unterstützten virtuellen Maschine (VM) zu einer EC2 Amazon-Instance in der AWS-Cloud mithilfe des AWS Application Migration Service. Sie können den in diesem Muster beschriebenen Ansatz verwenden, um eine oder mehrere virtuelle Maschinen manuell, nacheinander oder automatisch zu migrieren, indem Sie auf der Grundlage der beschriebenen Schritte entsprechende Automatisierungsskripts erstellen. 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto in einer der AWS-Regionen, die den Application Migration Service unterstützen
+ Netzwerkkonnektivität zwischen dem EC2 Quellserver und dem Zielserver über ein privates Netzwerk mithilfe von AWS Direct Connect oder einem virtuellen privaten Netzwerk (VPN) oder über das Internet

**Einschränkungen**
+ Die aktuelle Liste der unterstützten Regionen finden Sie unter [Unterstützte AWS-Regionen](https://docs.aws.amazon.com/mgn/latest/ug/supported-regions.html).
+ Eine Liste der unterstützten Betriebssysteme finden Sie in den [Abschnitten Unterstützte Betriebssysteme](https://docs.aws.amazon.com/mgn/latest/ug/Supported-Operating-Systems.html) und *Allgemein* von [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

## Architektur
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-architecture"></a>

**Quelltechnologie-Stack**
+ Ein physischer, virtueller oder in der Cloud gehosteter Server, auf dem ein von Amazon unterstütztes Betriebssystem ausgeführt wird EC2

**Zieltechnologie-Stack**
+ Eine EC2 Amazon-Instance, auf der dasselbe Betriebssystem wie die Quell-VM ausgeführt wird
+ Amazon Elastic Block Store (Amazon EBS)

**Quell- und Zielarchitektur**

Das folgende Diagramm zeigt die allgemeine Architektur und die Hauptkomponenten der Lösung. Im lokalen Rechenzentrum gibt es virtuelle Maschinen mit lokalen Festplatten. Auf AWS gibt es einen Staging-Bereich mit Replikationsservern und einen Bereich für migrierte Ressourcen mit EC2 Instances für Tests und Cutover. Beide Subnetze enthalten EBS-Volumes.

![\[Hauptkomponenten für die Migration einer unterstützten VM zu einer EC2 Amazon-Instanz in der AWS-Cloud.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/f8396fad-7ee9-4f75-800f-e819f509e151.png)


1. Initialisieren Sie den AWS Application Migration Service.

1. Richten Sie die Serverkonfiguration und das Reporting für den Staging-Bereich ein, einschließlich der Ressourcen für den Staging-Bereich.

1. Installieren Sie Agenten auf Quellservern und verwenden Sie die kontinuierliche Datenreplikation auf Blockebene (komprimiert und verschlüsselt).

1. Automatisieren Sie Orchestrierung und Systemkonvertierung, um das Umstellungsfenster zu verkürzen.

**Netzwerk-Architektur**

Das folgende Diagramm zeigt die allgemeine Architektur und die Hauptkomponenten der Lösung aus Netzwerksicht, einschließlich der erforderlichen Protokolle und Ports für die Kommunikation zwischen den Hauptkomponenten im lokalen Rechenzentrum und auf AWS.

![\[Netzwerkkomponenten, einschließlich Protokolle und Ports für die Kommunikation zwischen Rechenzentrum und AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/58c8bafd-9a6d-42d4-a5ce-08c4b9a286a3/images/2f594daa-ddba-4841-8785-6067e8d83c2f.png)


## Tools
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-tools"></a>
+ Mit [AWS Application Migration Service](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) können Sie Anwendungen ohne Änderungen *und mit minimalen Ausfallzeiten in die AWS-Cloud rehosten (Lift and Shift*).

## Best Practices
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-best-practices"></a>
+ Nehmen Sie den Quellserver nicht offline und führen Sie keinen Neustart durch, bis die Umstellung auf die EC2 Zielinstanz abgeschlossen ist.
+ Bieten Sie den Benutzern ausreichend Gelegenheit, Benutzerakzeptanztests (UAT) auf dem Zielserver durchzuführen, um Probleme zu identifizieren und zu lösen. Idealerweise sollten diese Tests mindestens zwei Wochen vor der Umstellung beginnen.
+ Überwachen Sie regelmäßig den Status der Serverreplikation auf der Application Migration Service-Konsole, um Probleme frühzeitig zu erkennen.
+ Verwenden Sie temporäre AWS Identity and Access Management (IAM) -Anmeldeinformationen für die Agenteninstallation anstelle von permanenten IAM-Benutzeranmeldedaten.

## Epen
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-epics"></a>

### AWS-Anmeldeinformationen generieren
<a name="generate-aws-credentials"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die IAM-Rolle AWS Replication Agent. | Melden Sie sich mit Administratorberechtigungen für das AWS-Konto an.Erstellen Sie auf der AWS Identity and Access Management (IAM) [-Konsole](https://console.aws.amazon.com/iam/) eine IAM-Rolle:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html) | AWS-Administrator, Migrationsingenieur | 
| Generieren Sie temporäre Sicherheitsnachweise. | Melden Sie sich auf einem Computer, auf dem AWS Command Line Interface (AWS CLI) installiert ist, mit Administratorrechten an. Oder melden Sie sich alternativ (innerhalb einer unterstützten AWS-Region) in der AWS-Managementkonsole mit Administratorberechtigungen für das AWS-Konto an und öffnen Sie AWS CloudShell.Generieren Sie temporäre Anmeldeinformationen mit dem folgenden Befehl und ersetzen Sie `<account-id>` ihn durch die AWS-Konto-ID.`aws sts assume-role --role-arn arn:aws:iam::<account-id>:role/MGN_Agent_Installation_Role --role-session-name mgn_installation_session_role`Kopieren Sie aus der Ausgabe des Befehls die Werte für `AccessKeyId` **`SecretAccessKey`**, und **`SessionToken`**. ****Bewahren Sie sie für den späteren Gebrauch an einem sicheren Ort auf.Diese temporären Anmeldeinformationen laufen nach einer Stunde ab. Wenn Sie nach einer Stunde Anmeldeinformationen benötigen, wiederholen Sie die vorherigen Schritte. | AWS-Administrator, Migrationsingenieur | 

### Initialisieren Sie den Application Migration Service und erstellen Sie die Vorlage für die Replikationseinstellungen
<a name="initialize-application-migration-service-and-create-the-replication-settings-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Initialisieren Sie den Dienst. | Melden Sie sich auf der Konsole mit Administratorberechtigungen für das AWS-Konto an.Wählen Sie **Application Migration Service** und dann **Get started** aus. | AWS-Administrator, Migrationsingenieur | 
| Erstellen und konfigurieren Sie die Vorlage für die Replikationseinstellungen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Der Application Migration Service erstellt automatisch alle IAM-Rollen, die für die Datenreplikation und den Start migrierter Server erforderlich sind. | AWS-Administrator, Migrationsingenieur | 

### Installieren Sie AWS Replication Agents auf Quellcomputern
<a name="install-aws-replication-agents-on-source-machines"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Halten Sie die erforderlichen AWS-Anmeldeinformationen bereit. | Wenn Sie die Installationsdatei auf einem Quellserver ausführen, müssen Sie die temporären Anmeldeinformationen eingeben, die Sie zuvor generiert haben, einschließlich `AccessKeyId``SecretAccessKey`, und`SessionToken`. | Migrationsingenieur, AWS-Administrator | 
| Installieren Sie den Agenten für Linux-Server. | Kopieren Sie den Installationsbefehl, melden Sie sich bei Ihren Quellservern an und führen Sie das Installationsprogramm aus. Eine ausführliche Anleitung finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/mgn/latest/ug/linux-agent.html). | AWS-Administrator, Migrationsingenieur | 
| Installieren Sie den Agenten für Windows-Server. | Laden Sie die Installationsdatei auf jeden Server herunter und führen Sie dann den Installationsbefehl aus. Eine ausführliche Anleitung finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/mgn/latest/ug/windows-agent.html). | AWS-Administrator, Migrationsingenieur | 
| Warten Sie, bis die erste Datenreplikation abgeschlossen ist. | Wenn der Agent installiert wurde, wird der Quellserver auf der Application Migration Service-Konsole im Abschnitt **Quellserver** angezeigt. Warten Sie, bis der Server die erste Datenreplikation durchführt. | AWS-Administrator, Migrationsingenieur | 

### Starteinstellungen konfigurieren
<a name="configure-launch-settings"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Geben Sie die Serverdetails an. | Wählen Sie in der Application Migration Service-Konsole den Abschnitt **Quellserver** und dann einen Servernamen aus der Liste aus, um auf die Serverdetails zuzugreifen. | AWS-Administrator, Migrationsingenieur | 
| Konfigurieren Sie die Starteinstellungen.  | Wählen Sie die Registerkarte **Starteinstellungen**. Sie können eine Vielzahl von Einstellungen konfigurieren, darunter allgemeine Starteinstellungen und EC2 Startvorlageneinstellungen. Eine ausführliche Anleitung finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/mgn/latest/ug/launch-settings.html). | AWS-Administrator, Migrationsingenieur | 

### Führen Sie einen Test durch
<a name="perform-a-test"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie die Quellserver. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Die Server werden gestartet. | AWS-Administrator, Migrationsingenieur | 
| Stellen Sie sicher, dass der Test erfolgreich abgeschlossen wurde. | Nachdem der Testserver vollständig gestartet wurde, wird im **Warnmeldungsstatus** auf der Seite für jeden Server die **Meldung Gestartet** angezeigt. | AWS-Administrator, Migrationsingenieur | 
| Testen Sie den Server. | Führen Sie Tests auf dem Testserver durch, um sicherzustellen, dass er wie erwartet funktioniert. | AWS-Administrator, Migrationsingenieur | 

### Planen und führen Sie eine Umstellung durch
<a name="schedule-and-perform-a-cutover"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Planen Sie ein Zeitfenster für die Umstellung ein. | Vereinbaren Sie mit den zuständigen Teams einen angemessenen Zeitrahmen für die Umstellung. | AWS-Administrator, Migrationsingenieur | 
| Führen Sie die Umstellung durch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service.html)Der **Migrationszyklus** des Quellservers wird zu „Umstellung **läuft**“ geändert. | AWS-Administrator, Migrationsingenieur | 
| Stellen Sie sicher, dass die Umstellung erfolgreich abgeschlossen wurde. | Nachdem die Übernahmeserver vollständig gestartet wurden, zeigt der Status **Alerts** auf der Seite **Quellserver** für jeden Server den Status **Gestartet** an. | AWS-Administrator, Migrationsingenieur | 
| Testen Sie den Server. | Führen Sie Tests mit dem Cutover-Server durch, um sicherzustellen, dass er wie erwartet funktioniert. | AWS-Administrator, Migrationsingenieur | 
| Schließen Sie die Umstellung ab. | Wählen Sie **Test und Übernahme und** anschließend Übernahme **abschließen aus, um den Migrationsprozess abzuschließen**. | AWS-Administrator, Migrationsingenieur | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-vm-to-amazon-ec2-by-using-aws-application-migration-service-resources"></a>
+ [AWS Application Migration Service](https://aws.amazon.com/application-migration-service/)
+ [AWS Application Migration Service — Benutzerhandbuch](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)

# Migrieren Sie kleine Datenmengen von der lokalen Infrastruktur zu Amazon S3 mit AWS SFTP
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp"></a>

*Charles Gibson und Sergiy Shevchenko, Amazon Web Services*

## Zusammenfassung
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-summary"></a>

Dieses Muster beschreibt, wie kleine Datenmengen (5 TB oder weniger) mithilfe AWS Transfer for SFTP von () von lokalen Rechenzentren zu Amazon Simple Storage Service (Amazon S3) migriert werden.AWS SFTP Bei den Daten kann es sich entweder um Datenbank-Dumps oder um Flatfiles handeln.

## Voraussetzungen und Einschränkungen
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Eine AWS Direct Connect Verbindung zwischen Ihrem Rechenzentrum und AWS

**Einschränkungen**
+ Die Datendateien müssen weniger als 5 TB groß sein. Für Dateien über 5 TB können Sie einen mehrteiligen Upload auf Amazon S3 durchführen oder eine andere Datenübertragungsmethode wählen. 

## Architektur
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Flatfiles oder Datenbank-Dumps

**Zieltechnologie-Stack**
+ Amazon S3

**Quell- und Zielarchitektur**

![\[Diagram showing data flow from on-premises servers to AWS Cloud services via Direct Connect and VPN.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a9c016ff-3e68-4714-ac51-46cb4727397a/images/5c5bb9ea-d552-44e8-8d0d-df341f84f55d.png)


## Tools
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-tools"></a>
+ [AWS SFTP](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)— Ermöglicht die direkte Übertragung von Dateien in und aus Amazon S3 mithilfe des Secure File Transfer Protocol (SFTP).
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)— Stellt eine dedizierte Netzwerkverbindung von Ihren lokalen Rechenzentren zu her. AWS
+ [VPC-Endpunkte](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) — Ermöglicht es Ihnen, eine VPC privat mit unterstützten AWS-Services und VPC-Endpunktdiensten zu verbinden, die AWS PrivateLink ohne Internet-Gateway, NAT-Gerät (Network Address Translation), VPN-Verbindung oder Verbindung betrieben werden. Direct Connect Instances in einer VPC benötigen keine öffentlichen IP-Adressen, um mit Ressourcen im Service zu kommunizieren.

## Epen
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-epics"></a>

### Bereite dich auf die Migration vor
<a name="prepare-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Dokumentieren Sie die aktuellen SFTP-Anforderungen. |  | Inhaber der Anwendung, SA | 
| Identifizieren Sie die Authentifizierungsanforderungen. | Zu den Anforderungen können eine schlüsselbasierte Authentifizierung, ein Benutzername oder ein Passwort oder ein Identitätsanbieter (IdP) gehören. | Inhaber der Anwendung, SA | 
| Identifizieren Sie die Anforderungen an die Anwendungsintegration. |  | Besitzer der Anwendung | 
| Identifizieren Sie die Benutzer, die den Dienst benötigen. |  | Besitzer der Anwendung | 
| Ermitteln Sie den DNS-Namen für den SFTP-Serverendpunkt. |  | Netzwerk | 
| Ermitteln Sie die Backup-Strategie. |  | SA, DBA (wenn Daten übertragen werden)  | 
| Identifizieren Sie die Strategie für die Anwendungsmigration oder -umstellung. |  | Inhaber der Anwendung, SA, DBA | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine oder mehrere virtuelle private Clouds (VPCs) und Subnetze in Ihrem AWS-Konto. |  | Inhaber der Anwendung, AMS | 
| Erstellen Sie die Sicherheitsgruppen und die Network Access Control List (ACL). |  | Sicherheit, Netzwerke, AMS | 
| Erstellen Sie den Amazon S3 S3-Bucket. |  | Inhaber der Anwendung, AMS | 
| Erstellen Sie die AWS Identity and Access Management (IAM-) Rolle. | Erstellen Sie eine IAM-Richtlinie, die die Berechtigungen für den AWS SFTP Zugriff auf Ihren Amazon S3 S3-Bucket enthält. Diese IAM-Richtlinie bestimmt, welche Zugriffsebene Sie SFTP-Benutzern gewähren. Erstellen Sie eine weitere IAM-Richtlinie, mit der Sie eine Vertrauensbeziehung aufbauen möchten. AWS SFTP | Sicherheit, AMS | 
| Ordnen Sie eine registrierte Domain zu (optional). | Wenn Sie eine eigene registrierte Domain haben, können Sie diese mit dem SFTP-Server verknüpfen. Sie können SFTP-Verkehr von einer Domain oder von einer Subdomain an Ihren SFTP-Serverendpunkt weiterleiten. | Netzwerke, AMS | 
| Erstellen Sie einen SFTP-Server. | Geben Sie den Identitätsanbietertyp an, den der Dienst zur Authentifizierung Ihrer Benutzer verwendet. | Inhaber der Anwendung, AMS | 
| Öffnen Sie einen SFTP-Client. | Öffnen Sie einen SFTP-Client und konfigurieren Sie die Verbindung für die Verwendung des SFTP-Endpunkthosts. AWS SFTP unterstützt jeden Standard-SFTP-Client. Zu den häufig verwendeten SFTP-Clients gehören OpenSSH, WinSCP, Cyberduck und. FileZilla Sie können den Hostnamen des SFTP-Servers von der Konsole abrufen. AWS SFTP  | Besitzer der Anwendung, AMS | 

### Planen und testen
<a name="plan-and-test"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Planen Sie die Anwendungsmigration. | Planen Sie alle erforderlichen Änderungen an der Anwendungskonfiguration ein, legen Sie das Migrationsdatum fest und legen Sie den Testplan fest. | Inhaber der Anwendung, AMS | 
| Testen Sie die Infrastruktur. | Testen Sie in einer Umgebung außerhalb der Produktionsumgebung. | Inhaber der Anwendung, AMS | 

## Zugehörige Ressourcen
<a name="migrate-small-sets-of-data-from-on-premises-to-amazon-s3-using-aws-sftp-resources"></a>

**Referenzen**
+ [AWS Transfer for SFTP Benutzerhandbuch](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS Direct Connect Ressourcen](https://aws.amazon.com/directconnect/resources/) 
+ [VPC-Endpunkte](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)

**Tutorials und Videos**
+ [AWS Transfer for SFTP (Video)](https://www.youtube.com/watch?v=wcnGez5PP1E)
+ [AWS Transfer for SFTP benutzerhandbuch](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-for-sftp.html)
+ [AWS SA Whiteboarding - Direct Connect (Video)](https://www.youtube.com/watch?v=uP68iqyuqTg)

# Migrieren Sie eine lokale Oracle-Datenbank zu Oracle auf Amazon EC2
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2"></a>

*Baji Shaik und Pankaj Choudhary, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-summary"></a>

Dieses Muster führt Sie durch die Schritte zur Migration einer lokalen Oracle-Datenbank zu Oracle auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance. Es beschreibt zwei Optionen für die Migration: die Verwendung von AWS Data Migration Service (AWS DMS) oder die Verwendung nativer Oracle-Tools wie RMAN, Data Pump Import/Export, transportable Tablespaces und Oracle. GoldenGate 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle-Quelldatenbank in einem lokalen Rechenzentrum

**Einschränkungen**
+ Das Zielbetriebssystem (OS) muss von Amazon unterstützt werden EC2. Eine vollständige Liste der unterstützten Systeme finden Sie [bei Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/).

**Produktversionen**
+ Oracle-Versionen 10.2 und höher (für Versionen 10.x), 11g und bis zu 12.2 und 18c für die Editionen Enterprise, Standard, Standard One und Standard Two. Die aktuelle Liste der von AWS DMS unterstützten Versionen finden Sie unter „Lokale Datenbanken und EC2 Amazon-Instanzdatenbanken“ unter [Quellen für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) in der AWS DMS-Dokumentation.  

## Architektur
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Oracle-Datenbank

**Zieltechnologie-Stack**
+ Eine Oracle-Datenbank-Instance auf Amazon EC2

**Zielarchitektur**

![\[Einrichtung der Replikation für eine Oracle-Datenbank auf Amazon. EC2\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/386d5b14-8633-4ecc-98fb-59872de99d41.png)


**Architektur für die Datenmigration**

*Verwenden von AWS DMS:*

![\[Migration einer lokalen Oracle-Datenbank zu Amazon EC2 mit AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/14954066-d22b-486a-a432-265296752878.png)


*Verwendung nativer Oracle-Tools:*

![\[Migration einer lokalen Oracle-Datenbank zu Amazon EC2 mit Oracle-Tools.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/66c98694-6580-4ffb-9f16-84de58cf8b07/images/82ba5fcb-8640-45fa-b432-2702dedc0774.png)


## Tools
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-tools"></a>
+ **AWS DMS —** [AWS Database Migration Services](https://docs.aws.amazon.com/dms/index.html) (AWS DMS) unterstützt verschiedene Arten von Quell- und Zieldatenbanken. Informationen zu den unterstützten Datenbankversionen und -editionen finden Sie unter [Using an Oracle Database as a Source for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten.  
+ **Systemeigene Oracle-Tools —** RMAN, Import/Export von Data Pump, transportable Tablespaces, Oracle GoldenGate                                                         

## Epen
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  Überprüfen Sie die Versionen der Quell- und Zieldatenbanken. |  | DBA | 
|  Identifizieren Sie die Version des Zielbetriebssystems. |  | DBA, SysAdmin | 
| Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz auf der Grundlage der Oracle-Kompatibilitätsliste und der Kapazitätsanforderungen. |  | DBA, SysAdmin | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, SysAdmin | 
| Identifizieren Sie die Netzwerkanforderungen (Latenz und Bandbreite). |  | DBA, SysAdmin | 
| Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, SysAdmin | 
| Identifizieren Sie die Anforderungen an die network/host Zugriffssicherheit für Quell- und Zieldatenbanken. |  | DBA, SysAdmin | 
| Identifizieren Sie eine Liste der Betriebssystembenutzer, die für die Oracle-Softwareinstallation erforderlich sind. |  | DBA, SysAdmin | 
| Laden Sie das AWS Schema Conversion Tool (AWS SCT) und die Treiber herunter. |  | DBA | 
| Erstellen Sie ein AWS SCT-Projekt für den Workload und stellen Sie eine Verbindung zur Quelldatenbank her. |  | DBA | 
| Generieren Sie SQL-Dateien für die Erstellung von Objekten (Tabellen, Indizes, Sequenzen usw.). |  | DBA | 
| Legen Sie eine Backup-Strategie fest. |  | DBA, SysAdmin  | 
| Ermitteln Sie die Verfügbarkeitsanforderungen. |  | DBA | 
| Identifizieren Sie die Strategie zur Anwendungsmigration/zum Umstieg. |  | DBA, Besitzer der App SysAdmin | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Virtual Private Cloud (VPC) und Subnetze in Ihrem AWS-Konto. |  | SysAdmin | 
| Erstellen Sie Sicherheitsgruppen und Netzwerkzugriffskontrolllisten ()ACLs. |  | SysAdmin | 
| Konfigurieren und starten Sie die EC2 Instanz. |  | SysAdmin | 

### Installieren Sie die Oracle-Software
<a name="install-the-oracle-software"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Betriebssystembenutzer und -gruppen, die für die Oracle-Software erforderlich sind. |  | DBA, SysAdmin | 
| Laden Sie die erforderliche Version der Oracle-Software herunter. |  |  | 
| Installieren Sie die Oracle-Software auf der EC2 Instanz. |  | DBA, SysAdmin | 
| Erstellen Sie Objekte wie Tabellen, Primärschlüssel, Ansichten und Sequenzen mithilfe der von AWS SCT generierten Skripts. |  | DBA | 

### Daten migrieren — Option 1
<a name="migrate-data---option-1"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie native Oracle-Tools oder Tools von Drittanbietern, um Datenbankobjekte und Daten zu migrieren. | Zu den Oracle-Tools gehören der Import/Export von Data Pump, RMAN, transportable Tablespaces und. GoldenGate | DBA | 

### Daten migrieren — Option 2
<a name="migrate-data---option-2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ermitteln Sie die Migrationsmethode. |  | DBA | 
| Erstellen Sie eine Replikationsinstanz in der AWS DMS-Konsole. |  | DBA | 
| Erstellen Sie Quell- und Zielendpunkte. |  | DBA | 
| Erstellen Sie eine Replikationsaufgabe. |  | DBA | 
| Aktivieren Sie Change Data Capture (CDC), um Änderungen für eine kontinuierliche Replikation zu erfassen. |  | DBA | 
| Führen Sie die Replikationsaufgabe aus und überwachen Sie die Protokolle. |  | DBA | 
| Erstellen Sie sekundäre Objekte wie Indizes und Fremdschlüssel, wenn der vollständige Ladevorgang abgeschlossen ist. |  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Anwendungsmigration. |  | DBA SysAdmin, Besitzer der App | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Umstellung und Umstellung der Anwendung. |  | DBA, Besitzer der App SysAdmin | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS Secrets Manager Manager-Ressourcen herunter. |  | DBA, SysAdmin | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA SysAdmin, Besitzer der App | 
| Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zum prozentualen Anteil manueller Daten im Vergleich zum Tool, zu Kosteneinsparungen usw. |  | DBA SysAdmin, Besitzer der App | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  |  | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2-resources"></a>

**Referenzen**
+ [Strategien für die Migration von Oracle-Datenbanken zu AWS](https://docs.aws.amazon.com/whitepapers/latest/strategies-migrating-oracle-db-to-aws/strategies-migrating-oracle-db-to-aws.html) 
+ [Migration von Oracle-Datenbanken in die AWS-Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/)
+ [ EC2 Amazon-Webseite](https://aws.amazon.com/ec2/)
+ [AWS DMS-Webseite](https://aws.amazon.com/dms/)
+ [AWS DMS-Blogbeiträge](https://aws.amazon.com/blogs/database/category/dms/)
+ [ EC2 Amazon-Preisgestaltung](https://aws.amazon.com/ec2/pricing/)
+ [Lizenzierung von Oracle-Software in der Cloud-Computing-Umgebung](http://www.oracle.com/us/corporate/pricing/cloud-licensing-070579.pdf)

**Tutorials und Videos**
+ [Erste Schritte mit Amazon EC2](https://aws.amazon.com/ec2/getting-started/)
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Einführung in Amazon EC2 — Elastic Cloud Server und Hosting mit AWS (Video)](https://www.youtube.com/watch?v=TsRBftzZsQo) 

# Migrieren Sie eine lokale Oracle-Datenbank mithilfe EC2 von Oracle Data Pump zu Amazon
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump"></a>

*Navakanth Talluri, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-summary"></a>

Bei der Migration von Datenbanken müssen Sie Faktoren wie die Quell- und Zieldatenbank-Engines und Versionen, Migrationstools und -services sowie akzeptable Ausfallzeiten berücksichtigen. Wenn Sie eine lokale Oracle-Datenbank zu Amazon Elastic Compute Cloud (Amazon EC2) migrieren, können Sie Oracle-Tools wie Oracle Data Pump und Oracle Recovery Manager (RMAN) verwenden. Weitere Informationen zu Strategien finden Sie unter [Migration von Oracle-Datenbanken in die AWS-Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html).

Oracle Data Pump hilft Ihnen dabei, die logische, konsistente Sicherung der Datenbank zu extrahieren und sie auf der EC2 Zielinstanz wiederherzustellen. Dieses Muster beschreibt, wie eine lokale Oracle-Datenbank mithilfe von Oracle Data Pump und dem `NETWORK_LINK` Parameter mit minimaler Ausfallzeit auf eine EC2 Instanz migriert wird. Der `NETWORK_LINK` Parameter startet einen Import über einen Datenbank-Link. Der Oracle Data Pump Import (impdp) -Client auf der EC2 Zielinstanz stellt eine Verbindung mit der Quelldatenbank her, ruft Daten von dieser ab und schreibt die Daten direkt in die Datenbank auf der Zielinstanz. In dieser Lösung werden keine Backup- oder *Dump-Dateien* verwendet.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine lokale Oracle-Datenbank, die:
  + Ist keine Oracle Real Application Clusters (RAC) -Datenbank
  + Ist keine Oracle Automatic Storage Management (Oracle ASM) -Datenbank
  + Befindet sich im Lese-/Schreibmodus.
+ Sie haben einen AWS Direct Connect Connect-Link zwischen Ihrem lokalen Rechenzentrum und AWS erstellt. Weitere Informationen finden Sie unter [Verbindung erstellen](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html) (Direct Connect-Dokumentation).

**Produktversionen**
+ Oracle Database 10g Version 1 (10.1) und höher

## Architektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-architecture"></a>

**Quelltechnologie-Stack**
+ Ein eigenständiger Oracle-Datenbankserver (ohne RAC und ohne ASM) in einem lokalen Rechenzentrum

**Zieltechnologie-Stack**
+ Eine Oracle-Datenbank, die auf Amazon läuft EC2

**Zielarchitektur**

Die [Zuverlässigkeitssäule](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html) des AWS Well-Architected Framework empfiehlt die Erstellung von Datensicherungen, um eine hohe Verfügbarkeit und Ausfallsicherheit zu gewährleisten. Weitere Informationen finden Sie unter [Architecting for High Availability](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-high-availability.html#amazon-ec2) in *Best Practices for Running Oracle Database on AWS*. Dieses Muster richtet mithilfe von Oracle Active Data Guard Primär- und Standby-Datenbanken auf EC2 Instances ein. Für eine hohe Verfügbarkeit sollten sich die EC2 Instances in verschiedenen Availability Zones befinden. Die Availability Zones können sich jedoch in derselben AWS-Region oder in verschiedenen AWS-Regionen befinden.

Active Data Guard bietet schreibgeschützten Zugriff auf eine physische Standby-Datenbank und wendet fortlaufend Redo-Änderungen von der Primärdatenbank aus an. Basierend auf Ihrem Recovery Point Objective (RPO) und Recovery Time Objective (RTO) können Sie zwischen synchronen und asynchronen Redo-Transport-Optionen wählen.

Die folgende Abbildung zeigt die Zielarchitektur, wenn sich die Primär- und EC2 Standby-Instances in unterschiedlichen AWS-Regionen befinden.

![\[Anwendung stellt eine Verbindung zur neuen Datenbank auf der primären EC2 Instance her\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/37fcd4dc-5516-416b-a280-0c5f002880de.png)


**Architektur der Datenmigration**

Nachdem Sie die Zielarchitektur eingerichtet haben, verwenden Sie Oracle Data Pump, um die lokalen Daten und Schemas auf die primäre EC2 Instanz zu migrieren. Während der Umstellung können Anwendungen nicht auf die lokale Datenbank oder die Zieldatenbank zugreifen. Sie fahren diese Anwendungen herunter, bis sie mit der neuen Zieldatenbank auf der primären EC2 Instanz verbunden werden können.

Die folgende Abbildung zeigt die Architektur während der Datenmigration. In dieser Beispielarchitektur befinden sich die Primär- und EC2 Standby-Instances in verschiedenen AWS-Regionen.

![\[Die Quell-DB stellt eine Verbindung zur Ziel-DB her. Anwendungen werden von Quelle und Ziel getrennt DBs\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bdd49395-2f99-43e2-ad1d-a1d09d90fb58/images/c58b669b-b11f-4d78-8911-c07b81b7c6a0.png)


## Tools
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-tools"></a>

**AWS-Services**
+ [AWS Direct Connect](https://aws.amazon.com/directconnect/) verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect-Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS-Services erstellen und dabei Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.

**Andere Tools und Dienste**
+ [Oracle Active Data Guard](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-5E73667D-4A56-445E-911F-1E99092DD8D7) unterstützt Sie bei der Erstellung, Wartung, Verwaltung und Überwachung von Standby-Datenbanken.
+ [Oracle Data Pump](https://www.oracle.com/technetwork/documentation/data-pump-overview-084963.html) hilft Ihnen, Daten und Metadaten mit hoher Geschwindigkeit von einer Datenbank in eine andere zu verschieben.

## Best Practices
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-best-practices"></a>
+ [Bewährte Methoden für die Ausführung von Oracle Database in AWS](https://docs.aws.amazon.com/whitepapers/latest/oracle-database-aws-best-practices/architecting-for-security-and-performance.html)
+ [Daten mit NETWORK\$1LINK importieren](https://docs.oracle.com/database/121/SUTIL/GUID-23E58D59-A477-4A87-BD0E-C82447581D0A.htm#SUTIL856)

## Epen
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-epics"></a>

### Richten Sie die EC2 Instanzen auf AWS ein
<a name="set-up-the-ec2-instances-on-aws"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die Quellhardwarekonfiguration für den lokalen Host und die Kernel-Parameter. | Überprüfen Sie die lokale Konfiguration, einschließlich Speichergröße, input/output Operationen pro Sekunde (IOPS) und CPU. Dies ist wichtig für die Oracle-Lizenzierung, die auf CPU-Kernen basiert. | DBA, SysAdmin | 
| Erstellen Sie die Infrastruktur auf AWS. | Erstellen Sie die virtuellen privaten Clouds (VPCs), privaten Subnetze, Sicherheitsgruppen, Netzwerkzugriffskontrolllisten (ACLs), Routing-Tabellen und das Internet-Gateway. Weitere Informationen finden Sie hier:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, AWS-Systemadministrator | 
| Richten Sie die EC2 Instanzen mithilfe von Active Data Guard ein. | Konfigurieren Sie EC2 AWS-Instanzen mithilfe einer Active Data Guard-Konfiguration, wie im [AWS Well-Architected Framework](https://docs.aws.amazon.com/wellarchitected/latest/framework/welcome.html) beschrieben. Die Version von Oracle Database auf der EC2 Instance kann sich von der lokalen Version unterscheiden, da dieses Muster logische Backups verwendet. Beachten Sie Folgendes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) Weitere Informationen finden Sie unter:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.html) | DBA, AWS-Systemadministrator | 

### Migrieren Sie die Datenbank zu Amazon EC2
<a name="migrate-the-database-to-amazon-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie von der Instanz aus einen DBLink zur lokalen Datenbank. EC2  | Erstellen Sie einen Datenbank-Link (dblink) zwischen der Oracle-Datenbank auf der EC2 Instanz und der lokalen Oracle-Datenbank. Weitere Informationen finden Sie unter [Verwenden des Netzwerk-Link-Imports zum Verschieben von Daten](https://docs.oracle.com/database/121/SUTIL/GUID-3E1D4B46-E856-4ABE-ACC5-977A898BB0F1.htm#SUTIL806) (Oracle-Dokumentation). | DBA | 
| Überprüfen Sie die Verbindung zwischen der EC2 Instanz und dem lokalen Host. | Verwenden Sie den DBlink, um zu überprüfen, ob die Verbindung zwischen der EC2 Instanz und der lokalen Datenbank funktioniert. Anweisungen finden Sie unter [CREATE DATABASE LINK](https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_5005.htm) (Oracle-Dokumentation). | DBA | 
| Beenden Sie alle Anwendungen, die mit der lokalen Datenbank verbunden sind. | Nachdem die Datenbankausfallzeit genehmigt wurde, fahren Sie alle Anwendungen und abhängigen Jobs herunter, die eine Verbindung zu Ihrer lokalen Datenbank herstellen. Sie können dies entweder direkt von der Anwendung aus oder mithilfe von Cron aus der Datenbank tun. Weitere Informationen finden Sie unter [Verwenden des Crontab-Dienstprogramms zur Planung von Aufgaben unter Oracle Linux](https://docs.oracle.com/en/learn/oracle-linux-crontab/index.html). | DBA, App-Entwickler | 
| Planen Sie den Datenmigrationsjob.  | Verwenden Sie auf dem Zielhost den Befehl, `impdb` um den Data Pump-Import zu planen. Dadurch wird die Zieldatenbank mit dem lokalen Host verbunden und die Datenmigration gestartet. Weitere Informationen finden Sie unter [Data Pump Import](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300) und [NETWORK\$1LINK](https://docs.oracle.com/database/121/SUTIL/GUID-0871E56B-07EB-43B3-91DA-D1F457CF6182.htm#SUTIL919) (Oracle-Dokumentation). | DBA | 
| Validieren Sie die Datenmigration. | Die Datenvalidierung ist ein entscheidender Schritt. Für die Datenvalidierung können Sie benutzerdefinierte Tools oder Oracle-Tools verwenden, z. B. eine Kombination aus DBLink- und SQL-Abfragen. | DBA | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Versetzen Sie die Quelldatenbank in den schreibgeschützten Modus. | Vergewissern Sie sich, dass die Anwendung heruntergefahren ist und keine Änderungen an der Quelldatenbank vorgenommen wurden. Öffnen Sie die Quelldatenbank im schreibgeschützten Modus. Auf diese Weise können Sie offene Transaktionen vermeiden. Weitere Informationen finden Sie unter `ALTER DATABASE` [SQL-Anweisungen](https://docs.oracle.com/database/121/SQLRF/statements_1006.htm#i2135540) (Oracle-Dokumentation). | DBA, DevOps Ingenieur, App-Entwickler | 
| Überprüfen Sie die Objektanzahl und die Daten. | Verwenden Sie benutzerdefinierte Tools oder Oracle-Tools, z. B. eine Kombination aus DBLink- und SQL-Abfragen, um die Daten und das Objekt zu validieren. | DBA, App-Entwickler | 
| Connect die Anwendungen mit der Datenbank auf der primären EC2 Instanz. | Ändern Sie das Verbindungsattribut der Anwendung so, dass es auf die neue Datenbank verweist, die Sie auf der primären EC2 Instanz erstellt haben. | DBA, App-Entwickler | 
| Überprüfen Sie die Anwendungsleistung. | Starten Sie die Anwendung. Überprüfen Sie die Funktionalität und Leistung der Anwendung mithilfe von [Automated Workload Repository](https://docs.oracle.com/database/121/RACAD/GUID-C3CD2DCE-38BD-46BA-BC32-7A28CAC9A7FD.htm#RACAD951) (Oracle-Dokumentation). | App-Entwickler, DevOps Ingenieur, DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump-resources"></a>

**AWS-Referenzen**
+ [Migration von Oracle-Datenbanken in die AWS-Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Amazon EC2 für Oracle](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/ec2-oracle.html)
+ [Migration umfangreicher Oracle-Datenbanken zu AWS für plattformübergreifende Umgebungen](https://docs.aws.amazon.com/prescriptive-guidance/latest/migrate-bulky-oracle-databases/welcome.html)
+ [VPCs und Subnetze](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ [Tutorial: Eine VPC zur Verwendung mit einer Datenbank-Instance erstellen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html)

**Oracle-Referenzen**
+ [Oracle Data Guard-Konfigurationen](https://docs.oracle.com/en/database/oracle/oracle-database/21/sbydb/introduction-to-oracle-data-guard-concepts.html#GUID-AB9DF863-2C7E-4767-81F2-56AD0FA30B49)
+ [Import von Datenpumpen](https://docs.oracle.com/database/121/SUTIL/GUID-D11E340E-14C6-43B8-AB09-6335F0C1F71B.htm#SUTIL300)

# Migrieren Sie RHEL-BYOL-Systeme mithilfe von AWS MGN zu Instances mit AWS-Lizenz
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn"></a>

*Mike Kuznetsov, Amazon Web Services*

## Zusammenfassung
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-summary"></a>

Wenn Sie Ihre Workloads mithilfe von AWS Application Migration Service (AWS MGN) zu AWS migrieren, müssen Sie möglicherweise Ihre Red Hat Enterprise Linux (RHEL) -Instances aufheben und die Lizenz während der Migration vom Standardmodell Bring Your Own License (BYOL) auf ein AWS-Lizenzmodell (LI) ändern. AWS MGN unterstützt einen skalierbaren Ansatz, der Amazon Machine Image (AMI) -IDs verwendet. Dieses Muster beschreibt, wie die Lizenzänderung auf RHEL-Servern während der Rehost-Migration in großem Umfang durchgeführt werden kann. Außerdem wird erklärt, wie Sie die Lizenz für ein RHEL-System ändern können, das bereits auf Amazon Elastic Compute Cloud (Amazon EC2) läuft.

## Voraussetzungen und Einschränkungen
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-prereqs"></a>

**Voraussetzungen**
+ Zugriff auf das AWS-Zielkonto
+ AWS MGN wurde im AWS-Zielkonto und in der Region für die Migration initialisiert (nicht erforderlich, wenn Sie bereits von Ihrem lokalen System zu AWS migriert haben)
+ Ein RHEL-Quellserver mit einer gültigen RHEL-Lizenz

## Architektur
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-architecture"></a>

Dieses Muster deckt zwei Szenarien ab:
+ Migrieren Sie ein System mithilfe von AWS MGN direkt von einem lokalen System in eine AWS LI-Instance. Folgen Sie für dieses Szenario den Anweisungen im ersten Epic (*Migration zur LI-Instance — Option 1*) und im dritten Epic.
+ Änderung des Lizenzmodells von BYOL auf LI für ein zuvor migriertes RHEL-System, das bereits auf Amazon EC2 läuft. Folgen Sie für dieses Szenario den Anweisungen im zweiten Epic (*Migration zur LI-Instance* — *Option 2*) und im dritten Epic.

**Anmerkung**  
Das dritte Epic beinhaltet die Neukonfiguration der neuen RHEL-Instance für die Nutzung der von AWS bereitgestellten Red Hat Update Infrastructure (RHUI) -Server. Dieser Prozess ist für beide Szenarien derselbe.

## Tools
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-tools"></a>

**AWS-Services**
+ Mit dem [AWS Application Migration Service (AWS MGN)](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html) können Sie Anwendungen ohne Änderungen und mit minimalen Ausfallzeiten in die AWS-Cloud rehosten (Lift and Shift).

## Epen
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-epics"></a>

### Zur LI-Instanz migrieren — Option 1 (für ein lokales RHEL-System)
<a name="migrate-to-li-instance---option-1-for-an-on-premises-rhel-system"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Suchen Sie die AMI-ID der RHEL AWS LI-Instance in der Zielregion. | Besuchen Sie [AWS Marketplace](https://aws.amazon.com/marketplace) oder verwenden Sie die [Amazon EC2 EC2-Konsole](https://console.aws.amazon.com/ec2/), um die RHEL-AMI-ID zu finden, die der Version des RHEL-Quellsystems entspricht (z. B. RHEL-7.7), und notieren Sie sich die AMI-ID. In der Amazon EC2 EC2-Konsole können Sie AMIs nach einem der folgenden Suchbegriffe filtern:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Cloud-Administrator | 
| Konfigurieren Sie die AWS MGN-Starteinstellungen.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)AWS MGN wird nun diese Version der Startvorlage verwenden, um Test- oder Cutover-Instances zu starten. Weitere Informationen finden Sie in der [AWS MGN-Dokumentation](https://docs.aws.amazon.com/mgn/latest/ug/ec2-launch.html). | Cloud-Administrator | 
| Überprüfen Sie die Einstellungen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Cloud-Administrator | 
| Starten Sie die neue LI-Instanz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Cloud-Administrator | 

### Zur LI-Instanz migrieren — Option 2 (für eine RHEL BYOL EC2-Instanz)
<a name="migrate-to-li-instance---option-2-for-a-rhel-byol-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie Ihre RHEL BYOL EC2-Instance zu einer AWS LI-Instance. | Sie können RHEL-Systeme, die Sie zuvor als BYOL zu AWS migriert haben, zu AWS LI-Instances wechseln, indem Sie ihre Festplatten (Amazon Elastic Block Store-Volumes) verschieben und sie an eine neue LI-Instance anhängen. Gehen Sie folgendermaßen vor, um diesen Wechsel vorzunehmen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Cloud-Administrator | 

### Neukonfiguration von RHEL OS zur Verwendung von AWS-bereitgestelltem RHUI — beide Optionen
<a name="reconfigure-rhel-os-to-use-aws-provided-rhui-ndash-both-options"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Melden Sie das Betriebssystem vom Red Hat Abonnement und der Lizenz ab. | Nach der Migration und der erfolgreichen Umstellung muss das RHEL-System aus dem Red Hat-Abonnement entfernt werden, um den Verbrauch der Red Hat-Lizenz zu beenden und Doppelabrechnungen zu vermeiden.Um RHEL OS aus dem Red Hat-Abonnement zu entfernen, folgen Sie dem in der Dokumentation zu [Red Hat Subscription Management (RHSM](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/installation_guide/chap-subscription-management-unregistering)) beschriebenen Prozess. Verwendung des -CLI-Befehls:  <pre>subscription-manager unregister</pre>Sie können das Subscription Manager-Plugin auch deaktivieren, um den Status des Abonnements nicht mehr bei jedem **Yum-Anruf** zu überprüfen. Bearbeiten Sie dazu die Konfigurationsdatei `/etc/yum/pluginconf.d/subscription-manager.conf` und ändern Sie den Parameter `enabled=1` auf`enabled=0`. | Linux oder Systemadministrator | 
| Ersetzen Sie die alte Update-Konfiguration (RHUI, Red Hat Satellite Network, Yum-Repositorys) durch das von AWS bereitgestellte RHUI. | Sie müssen das migrierte RHEL-System neu konfigurieren, um die von AWS bereitgestellten RHUI-Server zu verwenden. Dadurch erhalten Sie Zugriff auf die RHUI-Server innerhalb der AWS-Regionen, ohne dass eine externe Update-Infrastruktur erforderlich ist. Die Änderung umfasst den folgenden Prozess:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html)Hier sind die detaillierten Schritte und Befehle:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn.html) | Linux oder Systemadministrator | 
| Überprüfen Sie die Konfiguration. | Stellen Sie auf der migrierten Zielinstanz sicher, dass die neue Konfiguration korrekt ist:<pre>sudo yum clean all <br />sudo yum repolist </pre> | Linux oder Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-rhel-byol-systems-to-aws-license-included-instances-by-using-aws-mgn-resources"></a>
+ [AWS Application Migration Service (AWS MGN) — Benutzerhandbuch](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [Holen Sie sich ein unterstützendes AWS-RHUI-Clientpaket IMDSv2](https://access.redhat.com/solutions/5009491) (Artikel in der Red Hat Knowledgebase)
+ [Amazon EC2 EC2-Startvorlagen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) (Amazon EC2 EC2-Dokumentation)

# Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Amazon EC2
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2"></a>

*Senthil Ramasamy, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-summary"></a>

Dieses Muster beschreibt, wie eine lokale Microsoft SQL Server-Datenbank auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance zu Microsoft SQL Server migriert wird. Es behandelt zwei Optionen für die Migration: die Verwendung von AWS Database Migration Service (AWS DMS) oder die Verwendung systemeigener Microsoft SQL Server-Tools wie Backup und Wiederherstellung, Assistent zum Kopieren von Datenbanken oder Kopieren und Anfügen von Datenbanken. 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS Konto
+ Ein von Amazon unterstütztes Betriebssystem EC2 (eine vollständige Liste der unterstützten Betriebssystemversionen finden Sie unter [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/))
+ Eine Microsoft SQL Server-Quelldatenbank in einem lokalen Rechenzentrum

**Produktversionen**
+  AWS DMS Unterstützt für lokale Datenbanken und EC2 Amazon-Instance-Datenbanken: 
  + SQL Server-Versionen 2005, 2008, 2008R2, 2012, 2014, 2016, 2017 und 2019 
  + Enterprise-, Standard-, Workgroup-, Developer- und Web-Editionen
+ Die aktuelle Liste der unterstützten Versionen finden Sie unter [Using a Microsoft SQL Server Database as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html).   

## Architektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Microsoft SQL Server-Datenbank

**Zieltechnologie-Stack**
+ Microsoft SQL Server-Datenbank auf einer EC2 Instanz

**Zielarchitektur**

![\[Primäre und Standby-Instanzen von Microsoft SQL Server auf EC2 Instanzen in zwei Availability Zones.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/53e2c27d-ceb4-4d88-a022-93dd0b343eaf.png)


**Architektur der Datenmigration**
+ Verwenden AWS DMS

![\[Migrieren von lokalen SQL Server-Daten zu einer EC2 Instanz mithilfe von AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/1cbe32ea-e285-4cac-9153-4428bad9b229.png)

+ Verwendung systemeigener SQL Server-Tools 

![\[Migrieren von lokalen SQL Server-Daten zu einer EC2 Instanz mithilfe systemeigener SQL Server-Tools\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f0a155b3-4977-4e1f-8332-89eab29c1e25/images/ad2caf54-7399-4038-91a3-acba9fa7da29.png)


## Tools
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/) hilft Ihnen bei der Migration Ihrer Daten zu und von weit verbreiteten kommerziellen und Open-Source-Datenbanken wie Oracle, SQL Server, MySQL und PostgreSQL. Sie können AWS DMS es verwenden, um Ihre Daten in die AWS Cloud, zwischen lokalen Instanzen (über ein AWS Cloud Setup) oder zwischen Kombinationen von Cloud- und lokalen Setups zu migrieren.
+ [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.
+ Zu den systemeigenen Microsoft SQL Server-Tools gehören Sicherung und Wiederherstellung, der Assistent zum Kopieren von Datenbanken sowie das Kopieren und Anfügen von Datenbanken.

## Epen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Quell- und Zieldatenbankversionen. |  | DBA | 
| Identifizieren Sie die Version des Zielbetriebssystems. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz auf der Grundlage der Microsoft SQL Server-Kompatibilitätsliste und der Kapazitätsanforderungen. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Speicheranforderungen für Typ und Kapazität. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Netzwerkanforderungen, einschließlich Latenz und Bandbreite. |  | DBA, Systemadministrator | 
| Wählen Sie den EC2 Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Sicherheitsanforderungen für das Netzwerk und den Hostzugriff für die Quell- und Zieldatenbanken. |  | DBA, Systemadministrator | 
| Identifizieren Sie eine Liste der Benutzer, die für die Installation der Microsoft SQL Server-Software erforderlich sind. |  | DBA, Systemadministrator | 
| Legen Sie die Backup-Strategie fest. |  | DBA | 
| Ermitteln Sie die Verfügbarkeitsanforderungen. |  | DBA | 
| Identifizieren Sie die Strategie für die Anwendungsmigration und -umstellung. |  | DBA, Systemadministrator | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine virtuelle private Cloud (VPC) und Subnetze. |  | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen und eine Network Access Control List (ACL). |  | Systemadministrator | 
| Konfigurieren und starten Sie eine EC2 Instanz. |  | Systemadministrator | 

### Installieren Sie die Software
<a name="install-the-software"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Benutzer und Gruppen, die für die Microsoft SQL Server-Software erforderlich sind. |  | DBA, Systemadministrator | 
| Laden Sie die Microsoft SQL Server-Software herunter. |  | DBA, Systemadministrator | 
| Installieren Sie die Microsoft SQL Server-Software auf der EC2 Instanz und konfigurieren Sie den Server. |  | DBA, Systemadministrator | 

### Migrieren Sie die Daten — Option 1
<a name="migrate-the-data---option-1"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie native Microsoft SQL Server-Tools oder Tools von Drittanbietern, um die Datenbankobjekte und -daten zu migrieren. | Zu den Tools gehören Sicherung und Wiederherstellung, der Assistent zum Kopieren von Datenbanken sowie das Kopieren und Anfügen von Datenbanken. Weitere Informationen finden Sie in der Anleitung [Migrieren von Microsoft SQL Server-Datenbanken auf die AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/). | DBA | 

### Migrieren Sie die Daten — Option 2
<a name="migrate-the-data---option-2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie die Daten mithilfe von AWS DMS. | Weitere Informationen zur Verwendung AWS DMS finden Sie unter den Links im Abschnitt [Verwandte Ressourcen](#migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources). | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Anwendungsmigration. | Verwenden Sie AWS Schema Conversion Tool (AWS SCT), um SQL-Code zu analysieren und zu ändern, der in den Quellcode der Anwendung eingebettet ist. | DBA, Besitzer der App | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Umstellung der Anwendung. |  | DBA, App-Besitzer, Systemadministrator | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie alle temporären AWS Ressourcen herunter. | Zu den temporären Ressourcen gehören die AWS DMS Replikationsinstanz und die EC2 Instanz für AWS SCT. | DBA, Systemadministrator | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, App-Besitzer, Systemadministrator | 
| Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zu den prozentualen Einsparungen bei den manuellen Kosten im Vergleich zu den Werkzeugkosten usw. |  | DBA, App-Besitzer, Systemadministrator | 
| Schließen Sie das Projekt und geben Sie Feedback. |  | DBA, App-Besitzer, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2-resources"></a>

**Referenzen**
+ [Migration von Microsoft SQL Server-Datenbanken auf die AWS Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-sql-server/)
+ [Amazon EC2](https://aws.amazon.com/ec2/)
+ [Amazon EC2 FAQs](https://aws.amazon.com/ec2/faqs/)
+ [ EC2 Amazon-Preisgestaltung](https://aws.amazon.com/ec2/pricing/)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/)
+ [Microsoft-Produkte auf AWS](https://aws.amazon.com/windows/products/)
+ [Microsoft-Lizenzierung am AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server auf AWS](https://aws.amazon.com/windows/products/sql/)

**Tutorials und Videos**
+ [Erste Schritte mit](https://aws.amazon.com/ec2/getting-started/) Amazon EC2
+ [Erste Schritte mit ](https://aws.amazon.com/dms/getting-started/)AWS Database Migration Service
+ [Verbinden Sie eine EC2 Amazon-Instance mit Ihrem Simple AD Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/simple_ad_join_instance.html)
+ [Verbinden Sie eine EC2 Amazon-Instance mit Ihrem AWS Managed Microsoft AD Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U)(Video)
+ [Einführung in Amazon EC2 — Elastic Cloud Server und Hosting mit AWS](https://www.youtube.com/watch?v=TsRBftzZsQo) (Video)

# Rehosten Sie lokale Workloads in der AWS-Cloud: Migrationscheckliste
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist"></a>

*Srikanth Rangavajhala, Amazon Web Services*

## Zusammenfassung
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-summary"></a>

Das Rehosten von lokalen Workloads in der Amazon Web Services (AWS) -Cloud umfasst die folgenden Migrationsphasen: Planung, Pre-Discovery, Discovery, Build, Test und Cutover. In diesem Muster werden die Phasen und die damit verbundenen Aufgaben beschrieben. Die Aufgaben werden ausführlich beschrieben und unterstützen etwa 75% aller Anwendungsworkloads. Sie können diese Aufgaben über einen Zeitraum von zwei bis drei Wochen in einem agilen Sprintzyklus implementieren.

Sie sollten diese Aufgaben mit Ihrem Migrationsteam und Ihren Beratern besprechen und überprüfen. Nach der Überprüfung können Sie die Informationen sammeln, Aufgaben streichen oder neu bewerten, falls dies Ihren Anforderungen entspricht, und andere Aufgaben so ändern, dass sie mindestens 75% der Anwendungs-Workloads in Ihrem Portfolio unterstützen. Anschließend kannst du ein agiles Projektmanagement-Tool wie Atlassian Jira oder Rally Software verwenden, um die Aufgaben zu importieren, sie Ressourcen zuzuweisen und deine Migrationsaktivitäten zu verfolgen. 

Das Muster geht davon aus, dass Sie [AWS Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html) verwenden, um Ihre Workloads neu zu hosten, aber Sie können das Migrationstool Ihrer Wahl verwenden.

Amazon Macie kann Ihnen helfen, sensible Daten in Ihren Wissensdatenbanken zu identifizieren, die als Datenquellen gespeichert sind, Aufrufprotokolle modellieren und Eingabeaufforderungsspeicher in Amazon Simple Storage Service (Amazon S3) -Buckets speichern. [Weitere Informationen finden Sie in der Macie-Dokumentation.](https://docs.aws.amazon.com/macie/latest/user/data-classification.html)

## Voraussetzungen und Einschränkungen
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-prereqs"></a>

**Voraussetzungen**
+ Projektmanagement-Tool zur Nachverfolgung von Migrationsaufgaben (z. B. Atlassian Jira oder Rally Software)
+ Migrationstool zum Rehosten Ihrer Workloads auf AWS (z. B. [Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html))

## Architektur
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-architecture"></a>

**Quellplattform**
+ Lokaler Quellstapel (einschließlich Technologien, Anwendungen, Datenbanken und Infrastruktur)  

**Zielplattform**
+ AWS-Cloud-Zielstapel (einschließlich Technologien, Anwendungen, Datenbanken und Infrastruktur) 

**Architektur**

Das folgende Diagramm veranschaulicht das Rehosting (Erkennung und Migration von Servern aus einer lokalen Quellumgebung zu AWS) mithilfe von Cloud Migration Factory und AWS Application Migration Service.

![\[Rehosten von Servern auf AWS mithilfe von Cloud Migration Factory und Application Migration Service\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/images/735ad65b-2646-4803-82c9-f7f93369b3a5.png)


## Tools
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-tools"></a>
+ Sie können ein Migrations- und Projektmanagement-Tool Ihrer Wahl verwenden.

## Epen
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-epics"></a>

### Planungsphase
<a name="planning-phase"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Den Rückstand vor der Entdeckung aufarbeiten. | Führen Sie die Arbeitssitzung mit Abteilungsleitern und Anwendungsbesitzern durch, bevor der Rückstand erkannt wird.  | Projektmanager, Leiter von Agile Scrum | 
|  Führen Sie die Arbeitssitzung zur Sprint-Planung durch. | Verteilen Sie die Anwendungen, die Sie migrieren möchten, als Übung für den Umfang auf mehrere Sprints und Wellen. | Projektmanager, Leiter von Agile Scrum | 

### Phase vor der Entdeckung
<a name="pre-discovery-phase"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie die Anwendungskenntnisse. | Bestätigen und dokumentieren Sie den Inhaber der Anwendung und dessen Kenntnisse über die Anwendung. Stellen Sie fest, ob es einen anderen Ansprechpartner für technische Fragen gibt. | Migrationsspezialist (Interviewer) | 
| Ermitteln Sie die Compliance-Anforderungen für Anwendungen. | Erkundigen Sie sich beim Eigentümer der Anwendung, dass die Anwendung nicht den Anforderungen des Payment Card Industry Data Security Standard (PCI DSS), des Sarbanes-Oxley Act (SOX), personenbezogener Daten (PII) oder anderer Standards entsprechen muss. Wenn Compliance-Anforderungen bestehen, müssen die Teams ihre Konformitätsprüfungen auf den Servern abschließen, die migriert werden sollen. | Migrationsspezialist (Interviewer) | 
| Bestätigen Sie die Anforderungen für die Produktionsversion.  | Bestätigen Sie die Anforderungen für die Freigabe der migrierten Anwendung für die Produktion (z. B. Veröffentlichungsdatum und Dauer der Ausfallzeit) mit dem Eigentümer der Anwendung oder dem technischen Ansprechpartner. | Migrationsspezialist (Interviewer) | 
| Serverliste abrufen. | Ruft die Liste der Server ab, die der Zielanwendung zugeordnet sind. | Migrationsspezialist (Interviewer) | 
| Holen Sie sich das logische Diagramm, das den aktuellen Status zeigt. | Rufen Sie das aktuelle Statusdiagramm für die Anwendung vom Unternehmensarchitekten oder dem Anwendungsbesitzer ab. | Migrationsspezialist (Interviewer) | 
| Erstellen Sie ein logisches Diagramm, das den Zielstatus zeigt. | Erstellen Sie ein logisches Diagramm der Anwendung, das die Zielarchitektur auf AWS zeigt. Dieses Diagramm sollte Server, Konnektivität und Zuordnungsfaktoren veranschaulichen. | Unternehmensarchitekt, Geschäftsinhaber | 
| Serverinformationen abrufen. | Sammeln Sie Informationen über die Server, die der Anwendung zugeordnet sind, einschließlich ihrer Konfigurationsdetails. | Migrationsspezialist (Interviewer) | 
| Fügen Sie Serverinformationen zur Discovery-Vorlage hinzu. | Fügen Sie der Vorlage für die Anwendungserkennung detaillierte Serverinformationen hinzu (dieses Muster finden Sie `mobilize-application-questionnaire.xlsx` im Anhang). Diese Vorlage enthält alle anwendungsbezogenen Sicherheits-, Infrastruktur-, Betriebssystem- und Netzwerkdetails. | Migrationsspezialist (Interviewer) | 
| Veröffentlichen Sie die Vorlage für die Anwendungserkennung. | Teilen Sie die Vorlage für die Anwendungserkennung mit dem Anwendungseigentümer und dem Migrationsteam, damit sie gemeinsam darauf zugreifen und sie verwenden können. | Migrationsspezialist (Interviewer) | 

### Entdeckungsphase
<a name="discovery-phase"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie die Serverliste. | Bestätigen Sie die Serverliste und den Zweck der einzelnen Server mit dem Besitzer der Anwendung oder dem technischen Leiter. | Spezialist für Migration | 
| Identifizieren und fügen Sie Servergruppen hinzu. | Identifizieren Sie Servergruppen wie Webserver oder Anwendungsserver und fügen Sie diese Informationen der Vorlage für die Anwendungserkennung hinzu. Wählen Sie die Ebene der Anwendung (Web, Anwendung, Datenbank) aus, zu der jeder Server gehören soll. | Spezialist für Migration | 
| Füllen Sie die Vorlage für die Anwendungserkennung aus. | Vervollständigen Sie die Details der Vorlage für die Anwendungserkennung mit Hilfe des Migrationsteams, des Anwendungsteams und AWS. | Spezialist für Migration | 
| Fügen Sie fehlende Serverdetails hinzu (Middleware- und Betriebssystemteams). | Bitten Sie Middleware- und Betriebssystemteams (OS), die Vorlage für die Anwendungserkennung zu überprüfen und alle fehlenden Serverdetails, einschließlich Datenbankinformationen, hinzuzufügen. | Spezialist für Migration | 
| Holen Sie sich die inbound/outbound Verkehrsregeln (Netzwerkteam). | Bitten Sie das Netzwerkteam, die inbound/outbound Verkehrsregeln für die Quell- und Zielserver zu erhalten. Das Netzwerkteam sollte außerdem bestehende Firewallregeln hinzufügen, diese in ein Sicherheitsgruppenformat exportieren und bestehende Load Balancer zur Vorlage für die Anwendungserkennung hinzufügen. | Spezialist für Migration | 
| Identifizieren Sie das erforderliche Tagging. | Ermitteln Sie die Tagging-Anforderungen für die Anwendung. | Spezialist für Migration | 
| Erstellen Sie Details zur Firewall-Anforderung. | Erfassen und filtern Sie die Firewallregeln, die für die Kommunikation mit der Anwendung erforderlich sind.  | Migrationsspezialist, Lösungsarchitekt, Netzwerkleiter  | 
| Aktualisieren Sie den EC2 Instanztyp. | Aktualisieren Sie den Amazon Elastic Compute Cloud (Amazon EC2) -Instanztyp, der in der Zielumgebung verwendet werden soll, basierend auf Infrastruktur- und Serveranforderungen.  | Migrationsspezialist, Lösungsarchitekt, Netzwerkleiter | 
| Identifizieren Sie das aktuelle Statusdiagramm. | Identifizieren oder erstellen Sie das Diagramm, das den aktuellen Status der Anwendung zeigt. Dieses Diagramm wird in der Anfrage zur Informationssicherheit (InfoSec) verwendet.  | Migrationsspezialist, Lösungsarchitekt | 
| Finalisieren Sie das future Zustandsdiagramm. | Finalisieren Sie das Diagramm, das den future (Ziel-) Status der Anwendung zeigt. Dieses Diagramm wird auch in der InfoSec Anfrage verwendet.   | Migrationsspezialist, Lösungsarchitekt | 
| Erstellen Sie Serviceanfragen für Firewalls oder Sicherheitsgruppen. | Erstellen Sie Firewall- oder Sicherheitsgruppen-Serviceanfragen (für Entwicklung/Qualitätssicherung, Vorproduktion und Produktion). Wenn Sie Cloud Migration Factory verwenden, fügen Sie replikationsspezifische Ports hinzu, sofern diese noch nicht geöffnet sind.  | Migrationsspezialist, Lösungsarchitekt, Netzwerkleiter | 
| Überprüfen Sie die Anfragen von Firewalls oder Sicherheitsgruppen (InfoSec Team). | In diesem Schritt überprüft und genehmigt das InfoSec Team die Firewall- oder Sicherheitsgruppenanfragen, die im vorherigen Schritt erstellt wurden.  | InfoSec Ingenieur, Migrationsspezialist | 
| Implementieren Sie Firewall-Sicherheitsgruppenanfragen (Netzwerkteam). | Nachdem das InfoSec Team die Firewallanfragen genehmigt hat, implementiert das Netzwerkteam die erforderlichen inbound/outbound Firewallregeln.  | Migrationsspezialist, Lösungsarchitekt, Netzwerkleiter | 

### Erstellungsphase (Wiederholung für Entwicklungs- und QA-, Vorproduktions- und Produktionsumgebungen)
<a name="build-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Importieren Sie die Anwendungs- und Serverdaten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.html)Wenn Sie Cloud Migration Factory nicht verwenden, folgen Sie den Anweisungen zur Einrichtung Ihres Migrationstools. | Migrationsspezialist, Cloud-Administrator | 
| Überprüfen Sie die Voraussetzungen für Quellserver. | Connect mit den Quellservern im Geltungsbereich her, um Voraussetzungen wie TCP-Port 1500, TCP-Port 443, freien Speicherplatz auf dem Stammvolume, .NET Framework-Version und andere Parameter zu überprüfen. Diese sind für die Replikation erforderlich. Weitere Informationen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#prerequisites-2). | Migrationsspezialist, Cloud-Administrator | 
| Erstellen Sie eine Serviceanfrage zur Installation von Replikationsagenten.  | Erstellen Sie eine Serviceanfrage zur Installation von Replikationsagenten auf den im Lieferumfang enthaltenen Servern für Entwicklung/Qualitätssicherung, Vorproduktion oder Produktion. | Migrationsspezialist, Cloud-Administrator | 
| Installieren Sie die Replikationsagenten. | Installieren Sie die Replikationsagenten auf den Quellservern im Leistungsumfang auf den Entwicklungs-, QA-, Vorproduktions- oder Produktionsrechnern. Weitere Informationen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#install-the-replication-agents). | Migrationsspezialist, Cloud-Administrator | 
| Push die Skripte nach dem Start. | Der Application Migration Service unterstützt Skripts nach dem Start, um Sie bei der Automatisierung von Aktivitäten auf Betriebssystemebene zu unterstützen, z. B. die Installation oder Deinstallation von Software nach dem Start von Ziel-Instances. In diesem Schritt werden die Skripts nach dem Start auf Windows- oder Linux-Computer übertragen, je nachdem, welche Server für die Migration identifiziert wurden. Anweisungen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#push-the-post-launch-scripts). | Migrationsspezialist, Cloud-Administrator | 
| Überprüfen Sie den Replikationsstatus. | Bestätigen Sie den Replikationsstatus für die Quellserver im Geltungsbereich automatisch mithilfe des bereitgestellten Skripts. **Das Skript wird alle fünf Minuten wiederholt, bis sich der Status aller Quellserver in der angegebenen Welle auf Fehlerfrei ändert.** Anweisungen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#verify-the-replication-status). | Migrationsspezialist, Cloud-Administrator | 
| Erstellen Sie den Admin-Benutzer. | Möglicherweise ist ein lokaler Administrator oder Sudo-Benutzer auf den Quellcomputern erforderlich, um Probleme nach der Umstellung von den Quellservern im Geltungsbereich auf AWS zu beheben. Das Migrationsteam verwendet diesen Benutzer, um sich beim Zielserver anzumelden, wenn der Authentifizierungsserver (z. B. der DC- oder LDAP-Server) nicht erreichbar ist. Anweisungen für diesen Schritt finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/step4.html#add-a-user-to-the-admin-group). | Migrationsspezialist, Cloud-Administrator | 
| Validieren Sie die Startvorlage. | Überprüfen Sie die Server-Metadaten, um sicherzustellen, dass sie erfolgreich funktionieren und keine ungültigen Daten enthalten. In diesem Schritt werden sowohl die Test- als auch die Cutover-Metadaten validiert. Anweisungen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#validate-launch-template-1). | Migrationsspezialist, Cloud-Administrator | 

### Testphase (Wiederholung für Entwicklungs- und QA-, Vorproduktions- und Produktionsumgebungen)
<a name="test-phase-repeat-for-development-qa-pre-production-and-production-environments"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Serviceanfrage. | Erstellen Sie eine Serviceanfrage für das Infrastrukturteam und andere Teams, um die Anwendung auf Entwicklungs-/QA-, Vorproduktions- oder Produktionsinstanzen umzustellen.  | Migrationsspezialist, Cloud-Administrator | 
| Konfigurieren Sie einen Load Balancer (optional). | Konfigurieren Sie die erforderlichen Load Balancer, z. B. einen [Application Load Balancer oder einen F5-Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)[, mit iRules](https://www.f5.com/resources/white-papers/load-balancing-101-nuts-and-bolts). | Migrationsspezialist, Cloud-Administrator | 
| Starten Sie Instanzen zum Testen. | Startet alle Zielcomputer für eine bestimmte Welle im Application Migration Service im Testmodus. Weitere Informationen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#launch-instances-for-testing). | Migrationsspezialist, Cloud-Administrator | 
| Überprüfen Sie den Status der Zielinstanz. | Überprüfen Sie den Status der Zielinstanz, indem Sie den Startvorgang für alle Quellserver im Geltungsbereich in derselben Welle überprüfen. Es kann bis zu 30 Minuten dauern, bis die Ziel-Instances hochgefahren sind. Sie können den Status manuell überprüfen, indem Sie sich bei der EC2 Amazon-Konsole anmelden, nach dem Namen des Quellservers suchen und die Spalte **Statusprüfung überprüfen**. Die **bestandenen Statusprüfungen 2/2** deuten darauf hin, dass die Instance aus Sicht der Infrastruktur fehlerfrei ist. | Migrationsspezialist, Cloud-Administrator | 
| DNS-Einträge ändern. | Ändern Sie DNS-Einträge (Domain Name System). (Verwenden Sie `resolv.conf` oder `host.conf` für eine Microsoft Windows-Umgebung.) Konfigurieren Sie jede EC2 Instanz so, dass sie auf die neue IP-Adresse dieses Hosts verweist.Stellen Sie sicher, dass es keine DNS-Konflikte zwischen lokalen Servern und AWS-Cloud-Servern gibt. Dieser Schritt und die folgenden Schritte sind optional, abhängig von der Umgebung, in der der Server gehostet wird. | Migrationsspezialist, Cloud-Administrator | 
| Testen Sie die Konnektivität zu Backend-Hosts von EC2 Instanzen aus. | Überprüfen Sie die Anmeldungen anhand der Domänenanmeldedaten für die migrierten Server. | Migrationsspezialist, Cloud-Administrator | 
| Aktualisieren Sie den DNS-A-Eintrag. | Aktualisieren Sie den DNS-A-Eintrag für jeden Host so, dass er auf die neue EC2 private Amazon-IP-Adresse verweist. | Migrationsspezialist, Cloud-Administrator | 
| Aktualisieren Sie den DNS-CNAME-Eintrag. | Aktualisieren Sie den DNS-CNAME-Eintrag für virtuelle Server IPs (Load Balancer-Namen) so, dass er auf den Cluster für Web- und Anwendungsserver verweist. | Migrationsspezialist, Cloud-Administrator | 
| Testen Sie die Anwendung in den entsprechenden Umgebungen. | Melden Sie sich bei der neuen EC2 Instanz an und testen Sie die Anwendung in den Entwicklungs-, QA-, Vorproduktions- und Produktionsumgebungen. | Migrationsspezialist, Cloud-Administrator | 
| Als bereit für die Umstellung markieren. | Wenn der Test abgeschlossen ist, ändern Sie den Status des Quellservers, um anzuzeigen, dass er bereit für die Übernahme ist, sodass Benutzer eine Übernahmeinstanz starten können. Anweisungen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#mark-as-ready-for-cutover). | Migrationsspezialist, Cloud-Administrator | 

### Umstellungsphase
<a name="cutover-phase"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Bereitstellungsplan für die Produktion. | Erstellen Sie einen Bereitstellungsplan für die Produktion (einschließlich eines Notfallplans). | Migrationsspezialist, Cloud-Administrator | 
| Informieren Sie das Betriebsteam über Ausfallzeiten. | Informieren Sie das Betriebsteam über den Zeitplan für die Ausfallzeiten der Server. Einige Teams benötigen für diese Benachrichtigung möglicherweise eine Änderungsanfrage oder ein Ticket für eine Serviceanfrage (CR/SR). | Migrationsspezialist, Cloud-Administrator | 
| Replizieren Sie Produktionsmaschinen. | Replizieren Sie Produktionsmaschinen mithilfe des Application Migration Service oder eines anderen Migrationstools. | Migrationsspezialist, Cloud-Administrator | 
| Fahren Sie die Quellserver im Geltungsbereich herunter. | Nachdem Sie den Replikationsstatus der Quellserver überprüft haben, können Sie die Quellserver herunterfahren, um Transaktionen von Client-Anwendungen zu den Servern zu stoppen. Sie können die Quellserver im Übernahmefenster herunterfahren. Weitere Informationen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#shut-down-the-in-scope-source-servers). | Cloud-Administrator | 
| Starten Sie Instanzen für die Umstellung. | Startet alle Zielcomputer für eine bestimmte Welle im Application Migration Service im Übernahmemodus. Weitere Informationen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-factory-web-console.html#launch-instances-for-cutover). | Migrationsspezialist, Cloud-Administrator | 
| Zielinstanz abrufen IPs. | Rufen Sie die IPs vier Zielinstanzen ab. Wenn das DNS-Update in Ihrer Umgebung ein manueller Prozess ist, müssten Sie die neuen IP-Adressen für alle Zielinstanzen abrufen. Weitere Informationen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-command-prompt.html#retrieve-the-target-instance-ip). | Migrationsspezialist, Cloud-Administrator | 
| Überprüfen Sie die Verbindungen zum Zielserver. | Nachdem Sie die DNS-Einträge aktualisiert haben, stellen Sie mit dem Hostnamen eine Verbindung zu den Zielinstanzen her, um die Verbindungen zu überprüfen. Weitere Informationen finden Sie im [Cloud Migration Factory-Implementierungsleitfaden](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/list-of-automated-migration-activities-using-command-prompt.html#verify-the-target-server-connections). | Migrationsspezialist, Cloud-Administrator | 

## Zugehörige Ressourcen
<a name="rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist-resources"></a>
+ [Wie migriert man](https://aws.amazon.com/migrate-modernize-build/cloud-migration/how-to-migrate/)
+ [Implementierungsleitfaden für AWS Cloud Migration Factory](https://docs.aws.amazon.com/solutions/latest/cloud-migration-factory-on-aws/solution-overview.html)
+ [Automatisierung umfangreicher Servermigrationen mit Cloud Migration Factory](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-factory-cloudendure/welcome.html)
+ [AWS Application Migration Service — Benutzerhandbuch](https://docs.aws.amazon.com/mgn/latest/ug/what-is-application-migration-service.html)
+ [AWS Migration Acceleration Program](https://aws.amazon.com/migration-acceleration-program/)

## Anlagen
<a name="attachments-8e2d2d72-30cc-4e98-8abd-ac2ef95e599b"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/8e2d2d72-30cc-4e98-8abd-ac2ef95e599b/attachments/attachment.zip)

# Richten Sie mithilfe von Amazon eine Multi-AZ-Infrastruktur für einen SQL Server Always On FCI ein FSx
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx"></a>

*Manish Garg, T.V.R.L.Phani Kumar Dadi, Nishad Mankar und RAJNEESH TYAGI, Amazon Web Services*

## Zusammenfassung
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-summary"></a>

Wenn Sie eine große Anzahl von Microsoft SQL Server Always On Failoverclusterinstanzen (FCIs) schnell migrieren müssen, kann Ihnen dieses Muster dabei helfen, die Bereitstellungszeit zu minimieren. Durch die Verwendung von Automatisierung und Amazon FSx for Windows File Server werden manueller Aufwand, von Menschen verursachte Fehler und der Zeitaufwand für die Bereitstellung einer großen Anzahl von Clustern reduziert.

Dieses Muster richtet die Infrastruktur für SQL Server FCIs in einer Multi-Availability Zone (Multi-AZ) -Bereitstellung auf Amazon Web Services (AWS) ein. Die Bereitstellung der für diese Infrastruktur erforderlichen AWS-Services wird mithilfe von [ CloudFormationAWS-Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) automatisiert. Die Installation von SQL Server und die Erstellung von Clusterknoten auf einer [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) -Instance werden mithilfe von PowerShell Befehlen durchgeführt.

Diese Lösung verwendet ein hochverfügbares Multi-AZ [Amazon FSx for Windows-Dateisystem](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) als gemeinsamen Zeugen für die Speicherung der SQL Server-Datenbankdateien. Das FSx Amazon-Dateisystem und EC2 Windows-Instances, die SQL Server hosten, sind mit derselben AWS Directory Service for Microsoft Active Directory-Domäne (AWS Managed Microsoft AD) verknüpft.

## Voraussetzungen und Einschränkungen
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein AWS-Benutzer mit ausreichenden Berechtigungen zur Bereitstellung von Ressourcen mithilfe von CloudFormation AWS-Vorlagen
+ AWS Directory Service für Microsoft Active Directory
+ Anmeldeinformationen in AWS Secrets Manager zur Authentifizierung bei AWS Managed Microsoft AD in einem Schlüssel-Wert-Paar:
  + `ADDomainName`: <Domain Name>
  + `ADDomainJoinUserName`: <Domain Username>
  + `ADDomainJoinPassword`: <Domain User Password>
  + `TargetOU`: <Target OU Value>
**Anmerkung**  
Sie verwenden denselben Schlüsselnamen in der AWS Systems Manager Manager-Automatisierung für die AWS Managed Microsoft AD-Join-Aktivität.
+ SQL Server-Mediendateien für die SQL Server-Installation und die Erstellung von Windows-Service- oder Domänenkonten, die bei der Clustererstellung verwendet werden
+ Eine virtuelle private Cloud (VPC) mit zwei öffentlichen Subnetzen in separaten Availability Zones, zwei privaten Subnetzen in den Availability Zones, einem Internet-Gateway, NAT-Gateways, Routentabellenzuordnungen und einem Jump-Server

**Produktversionen**
+ Windows Server 2012 R2 und Microsoft SQL Server 2016

## Architektur
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-architecture"></a>

**Quelltechnologie-Stack**
+ Lokaler SQL Server mit FCIs Verwendung eines gemeinsam genutzten Laufwerks

**Zieltechnologie-Stack**
+  EC2 AWS-Instanzen
+ Amazon FSx für Windows-Dateiserver
+ Runbook zur AWS Systems Manager Automation
+ Netzwerkkonfigurationen (VPC, Subnetze, Internet-Gateway, NAT-Gateways, Jump-Server, Sicherheitsgruppen)
+ AWS Secrets Manager
+ AWS Managed Microsoft AD
+ Amazon EventBridge
+ AWS Identity and Access Management (IAM)

**Zielarchitektur**

Das folgende Diagramm zeigt ein AWS-Konto in einer einzelnen AWS-Region mit einer VPC, die zwei Availability Zones umfasst, zwei öffentliche Subnetze mit NAT-Gateways, einem Jump-Server im ersten öffentlichen Subnetz, zwei privaten Subnetzen mit jeweils einer EC2 Instance für einen SQL Server-Knoten in einer Knotensicherheitsgruppe und einem FSx Amazon-Dateisystem, das eine Verbindung zu jedem der SQL Server-Knoten herstellt. AWS Directory Service, Amazon EventBridge, AWS Secrets Manager und AWS Systems Manager sind ebenfalls enthalten.

![\[Multi-AZ-Architektur mit Ressourcen in öffentlichen und privaten Subnetzen mit Knotensicherheitsgruppen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f09c0164-be2d-4665-a574-7ec29fd25082/images/543829a9-e130-4542-9c4e-7518c6cbe967.png)


**Automatisierung und Skalierung**
+ Sie können AWS Systems Manager verwenden, um AWS Managed Microsoft AD beizutreten und die SQL Server-Installation durchzuführen.

## Tools
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-tools"></a>

**AWS-Services**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg zu verwalten.
+ [AWS Directory Service](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) bietet mehrere Möglichkeiten, Microsoft Active Directory (AD) mit anderen AWS-Services wie Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS) für SQL Server und Amazon FSx für Windows File Server zu verwenden.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS-Lambda-Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen AWS-Konten.
+ [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 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.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) unterstützt Sie bei der Verwaltung Ihrer Anwendungen und Infrastruktur, die in der AWS-Cloud ausgeführt werden. Es vereinfacht das Anwendungs- und Ressourcenmanagement, verkürzt die Zeit für die Erkennung und Lösung betrieblicher Probleme und hilft Ihnen, Ihre AWS-Ressourcen sicher und skalierbar zu verwalten.

**Andere Tools**
+ [PowerShell](https://learn.microsoft.com/en-us/powershell/)ist ein Automatisierungs- und Konfigurationsverwaltungsprogramm von Microsoft, das unter Windows, Linux und macOS läuft. Dieses Muster verwendet PowerShell Skripts.

**Code-Repository**

Der Code für dieses Muster ist im Repository GitHub [aws-windows-failover-cluster-automation](https://github.com/aws-samples/aws-windows-failover-cluster-automation) verfügbar.

## Best Practices
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-best-practices"></a>
+ Die IAM-Rollen, die für die Bereitstellung dieser Lösung verwendet werden, sollten dem Prinzip der geringsten Rechte entsprechen. Weitere Informationen finden Sie in der [IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege).
+ Folgen Sie den [ CloudFormation bewährten Methoden von AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html).

## Epen
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-epics"></a>

### Stellen Sie die Infrastruktur bereit
<a name="deploy-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie den Systems Manager CloudFormation Manager-Stack bereit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps Ingenieur | 
| Stellen Sie den Infrastruktur-Stack bereit. | Erstellen Sie nach erfolgreicher Bereitstellung des Systems Manager `infra` Manager-Stacks den Stack, der EC2 Instanzknoten, Sicherheitsgruppen, das Dateisystem Amazon FSx for Windows File Server und die IAM-Rolle umfasst.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps Ingenieur | 

### Richten Sie den Windows SQL Server Always On FCI ein
<a name="set-up-the-windows-sql-server-always-on-fci"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die Windows-Tools. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DevOps Ingenieur, DBA | 
| Stellen Sie die Cluster-Computerobjekte in den Active Directory-Domänendiensten vorab bereit. | [Folgen Sie den Anweisungen in der Windows Server-Dokumentation, um das Clusternamenobjekt (CNO) in den Active Directory-Domänendiensten (AD DS) und ein virtuelles Computerobjekt (VCO) für eine Clusterrolle vorab bereitzustellen.](https://learn.microsoft.com/en-us/windows-server/failover-clustering/prestage-cluster-adds) | AWS DevOps, DBA, Ingenieur DevOps  | 
| Erstellen Sie das WSFC. | Gehen Sie wie folgt vor, um den Windows Server Failover Clustering (WSFC) -Cluster zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | AWS DevOps, DBA, Ingenieur DevOps  | 
| Installieren Sie den SQL Server-Failover-Cluster. | Nachdem der WSFC-Cluster eingerichtet ist, installieren Sie den SQL Server-Cluster auf der primären Instanz (node1).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html)<pre>D:\setup.exe /Q  `<br />/ACTION=InstallFailoverCluster `<br />/IACCEPTSQLSERVERLICENSETERMS `<br />/FEATURES="SQL,IS,BC,Conn"  `<br />/INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"  `<br />/INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"  `<br />/RSINSTALLMODE="FilesOnlyMode"  `<br />/INSTANCEID="MSSQLSERVER" `<br />/INSTANCENAME="MSSQLSERVER"  `<br />/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)"  `<br />/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node1>;Cluster Network 1;<subnet mask>"  `<br />/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>"  `<br />/INSTANCEDIR="C:\Program Files\Microsoft SQL Server"  `<br />/ENU="True"  `<br />/ERRORREPORTING=0  `<br />/SQMREPORTING=0  `<br />/SAPWD="<Domain User password>" `<br />/SQLCOLLATION="SQL_Latin1_General_CP1_CI_AS"  `<br />/SQLSYSADMINACCOUNTS="<domain\username>" `<br />/SQLSVCACCOUNT="<domain\username>"  /SQLSVCPASSWORD="<Domain User password>" `<br />/AGTSVCACCOUNT="<domain\username>"  /AGTSVCPASSWORD="<Domain User password>" `<br />/ISSVCACCOUNT="<domain\username>" /ISSVCPASSWORD="<Domain User password>"  `<br />/FTSVCACCOUNT="NT Service\MSSQLFDLauncher"  `<br />/INSTALLSQLDATADIR="\\<FSX DNS name>\share\Program Files\Microsoft SQL Server"  `<br />/SQLUSERDBDIR="\\<FSX DNS name>\share\data"  `<br />/SQLUSERDBLOGDIR="\\<FSX DNS name>\share\log" `<br />/SQLTEMPDBDIR="T:\tempdb"  `<br />/SQLTEMPDBLOGDIR="T:\log"  `<br />/SQLBACKUPDIR="\\<FSX DNS name>\share\SQLBackup" `<br />/SkipRules=Cluster_VerifyForErrors `<br />/INDICATEPROGRESS</pre> | AWS DevOps, DBA, Ingenieur DevOps  | 
| Fügen Sie dem Cluster einen sekundären Knoten hinzu. | Führen Sie den folgenden PowerShell Befehl aus, um SQL Server zum sekundären Knoten (Knoten 2) hinzuzufügen.<pre>D:\setup.exe /Q  `<br />/ACTION=AddNode `<br />/IACCEPTSQLSERVERLICENSETERMS `<br />/INSTANCENAME="MSSQLSERVER"  `<br />/FAILOVERCLUSTERGROUP="SQL Server (MSSQLSERVER)" `<br />/FAILOVERCLUSTERIPADDRESSES="IPv4;<2nd Sec Private Ip node2>;Cluster Network 2;<subnet mask>" `<br />/FAILOVERCLUSTERNETWORKNAME="<Fail over cluster Network Name>" `<br />/CONFIRMIPDEPENDENCYCHANGE=1 `<br />/SQLSVCACCOUNT="<domain\username>"  /SQLSVCPASSWORD="<Domain User password>" `<br />/AGTSVCACCOUNT="domain\username>"  /AGTSVCPASSWORD="<Domain User password>" `<br />/FTSVCACCOUNT="NT Service\MSSQLFDLauncher" `<br />/SkipRules=Cluster_VerifyForErrors `<br />/INDICATEPROGRESS</pre> | AWS DevOps, DBA, Ingenieur DevOps  | 
| Testen Sie den SQL Server FCI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | DBA, Ingenieur DevOps  | 

### Bereinigen von Ressourcen
<a name="clean-up-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereinigen Sie die Ressourcen. | Verwenden Sie den CloudFormation AWS-Stack-Löschvorgang, um die Ressourcen zu bereinigen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html)Nachdem das Löschen des Stacks abgeschlossen ist, befinden sich die Stapel im `DELETE_COMPLETE` Status. Stapel im `DELETE_COMPLETE` Status werden standardmäßig nicht in der CloudFormation Konsole angezeigt. Um gelöschte Stacks anzuzeigen, müssen Sie den [Stack-Ansichtsfilter ändern, wie unter Gelöschte Stacks auf der CloudFormation AWS-Konsole](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-deleted-stacks.html) anzeigen beschrieben.Wenn das Löschen fehlgeschlagen ist, befindet sich ein Stack im `DELETE_FAILED` Status. Lösungen finden Sie in der CloudFormation Dokumentation unter [Fehler beim Löschen des Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-delete-stack-fails). | AWS DevOps, DBA, Ingenieur DevOps  | 

## Fehlerbehebung
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
|  CloudFormation AWS-Vorlagenfehler | Wenn die CloudFormation Vorlage während der Bereitstellung fehlschlägt, gehen Sie wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 
| Fehler beim Verbinden mit AWS Managed Microsoft AD | Gehen Sie wie folgt vor, um die Verbindungsprobleme zu beheben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.html) | 

## Zugehörige Ressourcen
<a name="set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx-resources"></a>
+ [Vereinfachen Sie Ihre Hochverfügbarkeitsbereitstellungen von Microsoft SQL Server mit Amazon FSx for Windows File Server](https://aws.amazon.com/blogs/storage/simplify-your-microsoft-sql-server-high-availability-deployments-using-amazon-fsx-for-windows-file-server/)
+ [ FSx Für Windows File Server mit Microsoft SQL Server verwenden](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/sql-server.html)

# Verwenden Sie BMC Discovery-Abfragen, um Migrationsdaten für die Migrationsplanung zu extrahieren
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning"></a>

*Ben Tailor-Hamblin, Emma Baldry, Simon Cunningham und Shabnam Khan, Amazon Web Services*

## Zusammenfassung
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-summary"></a>

Dieses Handbuch enthält Abfragebeispiele und Schritte, mit denen Sie mithilfe von BMC Discovery Daten aus Ihrer lokalen Infrastruktur und Ihren Anwendungen extrahieren können. Das Muster zeigt Ihnen, wie Sie BMC Discovery-Abfragen verwenden, um Ihre Infrastruktur zu scannen und Software-, Service- und Abhängigkeitsinformationen zu extrahieren. Die extrahierten Daten werden für die Bewertungs- und Mobilisierungsphasen einer groß angelegten Migration zur Amazon Web Services (AWS) Cloud benötigt. Sie können diese Daten verwenden, um wichtige Entscheidungen darüber zu treffen, welche Anwendungen im Rahmen Ihres Migrationsplans gemeinsam migriert werden sollen.

## Voraussetzungen und Einschränkungen
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-prereqs"></a>

**Voraussetzungen**
+ Eine Lizenz für BMC Discovery (ehemals BMC ADDM) oder die SaaS-Version (Software as a Service) von BMC Helix Discovery
+ [On-Premise- oder SaaS-Version von BMC Discovery, installiert](https://docs.bmc.com/docs/discovery/221/installing-1050933835.html) 
**Anmerkung**  
Bei lokalen Versionen von BMC Discovery müssen Sie die Anwendung in einem Client-Netzwerk mit Zugriff auf alle Netzwerk- und Servergeräte installieren, die für eine Migration zwischen mehreren Rechenzentren in Frage kommen. Der Zugriff auf das Client-Netzwerk muss gemäß den Installationsanweisungen der Anwendung gewährt werden. Wenn das Scannen von Windows Server-Informationen erforderlich ist, müssen Sie ein Windows-Proxy-Manager-Gerät im Netzwerk einrichten.
+ [Netzwerkzugriff](https://docs.bmc.com/docs/discovery/221/network-ports-used-for-discovery-communications-1050933821.html), damit die Anwendung Geräte in mehreren Rechenzentren scannen kann, wenn Sie BMC Helix Discovery verwenden

**Versionen der Produkte**
+ BMC Discovery 22.2 (12.5)
+ BMC Discovery 22,1 (12,4)
+ BMC Discovery 21,3 (12,3)
+ BMC Discovery 21,05 (12,2)
+ BMC Discovery 20,08 (12,1)
+ BMC Discovery 20,02 (12,0)
+ BMC Discovery 11.3
+ BMC Discovery 11.2
+ BMC Discovery 11.1
+ BMC Discovery 11.0
+ BMC Atrium Discovery 10.2
+ BMC Atrium Discovery 10.1
+ BMC Atrium Discovery 10.0

## Architektur
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-architecture"></a>

Das folgende Diagramm zeigt, wie Vermögensverwalter BMC Discovery-Abfragen verwenden können, um BMC-modellierte Anwendungen sowohl in SaaS- als auch in lokalen Umgebungen zu scannen.

![\[Architektur, die BMC Discovery zum Extrahieren von Software-, Service- und Abhängigkeitsinformationen verwendet.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5e549882-8deb-4459-8891-e39bbf80e320/images/0ebb3e68-5828-45aa-86f4-c741c7b6cd94.jpeg)


Das Diagramm zeigt den folgenden Arbeitsablauf: Ein Asset Manager verwendet BMC Discovery oder BMC Helix Discovery, um Datenbank- und Softwareinstanzen zu scannen, die auf virtuellen Servern laufen, die auf mehreren physischen Servern gehostet werden. Das Tool kann Anwendungen mit Komponenten modellieren, die sich über mehrere virtuelle und physische Server erstrecken.

**Technologie-Stack**
+ BMC Discovery
+ BMC Helix Discovery

## Tools
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-tools"></a>
+ [BMC Discovery](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/) ist ein Tool zur Erkennung von Rechenzentren, mit dem Sie Ihr Rechenzentrum automatisch ermitteln können.
+ [BMC Helix Discovery](https://www.bmc.com/it-solutions/bmc-helix-discovery.html) ist ein SaaS-basiertes Erkennungs- und Abhängigkeitsmodellierungssystem, mit dem Sie Ihre Datenbestände und deren Abhängigkeiten dynamisch modellieren können.

## Best Practices
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-best-practices"></a>

Es ist eine bewährte Methode, Anwendungs-, Abhängigkeits- und Infrastrukturdaten abzubilden, wenn Sie in die Cloud migrieren. Die Zuordnung hilft Ihnen dabei, die Komplexität Ihrer aktuellen Umgebung und die Abhängigkeiten zwischen den verschiedenen Komponenten zu verstehen.

Die Inventarinformationen, die diese Abfragen liefern, sind aus mehreren Gründen wichtig:

1. **Planung — Wenn** Sie die Abhängigkeiten zwischen den Komponenten verstehen, können Sie den Migrationsprozess effektiver planen. Beispielsweise müssen Sie möglicherweise zuerst bestimmte Komponenten migrieren, um sicherzustellen, dass andere erfolgreich migriert werden können.

1. **Risikobewertung** — Durch die Zuordnung der Abhängigkeiten zwischen den Komponenten können Sie potenzielle Risiken oder Probleme identifizieren, die während des Migrationsprozesses auftreten können. Sie könnten beispielsweise feststellen, dass bestimmte Komponenten auf veralteten oder nicht unterstützten Technologien basieren, die zu Problemen in der Cloud führen könnten.

1. **Cloud-Architektur** — Die Zuordnung Ihrer Anwendungs- und Infrastrukturdaten kann Ihnen auch dabei helfen, eine geeignete Cloud-Architektur zu entwerfen, die Ihren organisatorischen Anforderungen entspricht. Beispielsweise müssen Sie möglicherweise eine mehrstufige Architektur entwerfen, um Hochverfügbarkeits- oder Skalierbarkeitsanforderungen zu erfüllen.

Insgesamt ist die Zuordnung von Anwendungs-, Abhängigkeits- und Infrastrukturdaten ein entscheidender Schritt im Cloud-Migrationsprozess. Die Kartierung kann Ihnen helfen, Ihre aktuelle Umgebung besser zu verstehen, potenzielle Probleme oder Risiken zu identifizieren und eine geeignete Cloud-Architektur zu entwerfen.

## Epen
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-epics"></a>

### Identifizieren und bewerten Sie Discovery-Tools
<a name="identify-and-evaluate-discovery-tooling"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die ITSM-Besitzer. | Identifizieren Sie die Eigentümer des IT Service Management (ITSM) (in der Regel, indem Sie sich an die operativen Support-Teams wenden). | Leiter der Migration | 
| Überprüfen Sie CMDB.  | Identifizieren Sie die Anzahl der Konfigurationsmanagement-Datenbanken (CMDBs), die Inventarinformationen enthalten, und identifizieren Sie dann die Quellen dieser Informationen. | Leiter der Migration | 
| Identifizieren Sie Discovery-Tools und prüfen Sie, ob BMC Discovery verwendet wird. | Wenn Ihre Organisation BMC Discovery verwendet, um Daten über Ihre Umgebung an das CMDB-Tool zu senden, überprüfen Sie den Umfang und die Reichweite der Scans. Überprüfen Sie beispielsweise, ob BMC Discovery alle Rechenzentren scannt und ob sich die Access-Server in Perimeterzonen befinden. | Leiter der Migration | 
| Prüfen Sie den Stand der Anwendungsmodellierung. | Prüfen Sie, ob Anwendungen in BMC Discovery modelliert wurden. Wenn nicht, empfehlen Sie die Verwendung des BMC Discovery-Tools, um zu modellieren, welche laufenden Softwareinstanzen eine Anwendung und einen Geschäftsdienst bereitstellen. | Migrationsingenieur, Migrationsleiter | 

### Extrahieren Sie Infrastrukturdaten
<a name="extract-infrastructure-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Extrahieren Sie Daten auf physischen und virtuellen Servern. | Um Daten auf den von BMC Discovery gescannten physischen und virtuellen Servern zu extrahieren, verwenden Sie [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html), um die folgende Abfrage auszuführen:<pre>search Host show key as 'Serverid', virtual, name as 'HOSTNAME', os_type as 'osName', os_version as 'OS Version', num_logical_processors as 'Logical Processor Counts', cores_per_processor as 'Cores per Processor', logical_ram as 'Logical RAM', #Consumer:StorageUse:Provider:DiskDrive.size as 'Size'</pre>Sie können die extrahierten Daten verwenden, um die geeigneten Instanzgrößen für die Migration zu ermitteln. | Migrationsingenieur, Migrationsleiter | 
| Extrahieren Sie Daten aus modellierten Anwendungen. | Wenn Ihre Anwendungen in BMC Discovery modelliert werden, können Sie Daten über die Server extrahieren, auf denen die Anwendungssoftware ausgeführt wird. Um die Servernamen abzurufen, verwenden Sie [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html), um die folgenden Abfragen auszuführen:<pre>search SoftwareInstance show key as 'ApplicationID', #RunningSoftware:HostedSoftware:Host:Host.key as 'ReferenceID', type, name</pre>Anwendungen werden in BMC Discovery anhand einer Sammlung laufender Softwareinstanzen modelliert. Die Anwendung ist von allen Servern abhängig, auf denen die Anwendungssoftware ausgeführt wird. | Besitzer der BMC Discovery-Anwendung | 
| Extrahieren Sie Daten aus Datenbanken. | Um eine Liste aller gescannten Datenbanken und der Server, auf denen diese Datenbanken laufen, zu erhalten, verwenden Sie [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html), um die folgende Abfrage auszuführen:<pre>search Database show key as 'Key', name, type as 'Source Engine Type', #Detail:Detail:ElementWithDetail:SoftwareInstance.name as 'Software Instance', #Detail:Detail:ElementWithDetail:SoftwareInstance.product_version as 'Product Version', #Detail:Detail:ElementWithDetail:SoftwareInstance.edition as 'Edition', #Detail:Detail:ElementWithDetail:SoftwareInstance.#RunningSoftware:HostedSoftware:Host:Host.key as 'ServerID'</pre> | Besitzer der App | 
| Extrahieren Sie Daten zur Serverkommunikation. | Um Informationen über die gesamte Netzwerkkommunikation zwischen Servern abzurufen, die von BMC Discovery aus historischen Netzwerkkommunikationsprotokollen gesammelt wurden, verwenden Sie [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html), um die folgende Abfrage auszuführen:<pre>search Host<br /> TRAVERSE InferredElement:Inference:Associate:DiscoveryAccess<br /> TRAVERSE DiscoveryAccess:DiscoveryAccessResult:DiscoveryResult:NetworkConnectionList<br /> TRAVERSE List:List:Member:DiscoveredNetworkConnection<br /> PROCESS WITH networkConnectionInfo</pre> | Besitzer der BMC Discovery-Anwendung | 
| Extrahieren Sie Daten zur Anwendungserkennung. | Um Informationen zu Anwendungsabhängigkeiten zu erhalten, verwenden Sie [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html), um die folgende Abfrage auszuführen:<pre>search SoftwareInstance show key as 'SRC App ID', #Dependant:Dependency:DependedUpon:SoftwareInstance.key as 'DEST App ID'</pre> | Besitzer der BMC Discovery-Anwendung | 
| Extrahieren Sie Daten zu Unternehmensdienstleistungen. | Um Daten zu Unternehmensdiensten zu extrahieren, die von Hosts bereitgestellt werden, verwenden Sie [Query Builder](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html), um die folgende Abfrage auszuführen:<pre>search Host show name, #Host:HostedSoftware:AggregateSoftware:BusinessService.name as 'Name'</pre> | Besitzer der BMC Discovery-Anwendung | 

## Fehlerbehebung
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Eine Abfrage kann nicht ausgeführt werden oder enthält nicht aufgefüllte Spalten. | Überprüfen Sie die Asset-Datensätze in BMC Discovery und ermitteln Sie, welche Felder Sie benötigen. Ersetzen Sie dann diese Felder in der Abfrage mithilfe des [Abfrage-Generators](https://docs.bmc.com/docs/discovery/221/query-builder-1051985747.html). | 
| Die Details einer abhängigen Anlage werden nicht ausgefüllt. | Dies ist wahrscheinlich auf Zugriffsberechtigungen oder Netzwerkkonnektivität zurückzuführen. Das Discovery-Tool verfügt möglicherweise nicht über die erforderlichen Berechtigungen für den Zugriff auf bestimmte Ressourcen, insbesondere wenn sie sich in verschiedenen Netzwerken oder in unterschiedlichen Umgebungen befinden.Wir empfehlen Ihnen, eng mit Experten für die Datenermittlung zusammenzuarbeiten, um sicherzustellen, dass alle relevanten Ressourcen identifiziert werden. | 

## Zugehörige Ressourcen
<a name="use-bmc-discovery-queries-to-extract-migration-data-for-migration-planning-resources"></a>

**Referenzen**
+ [Anspruch auf BMC Discovery-Lizenzierung](https://docs.bmc.com/docs/discovery/bmc-discovery-licensing-entitlement-531336348.html) (BMC-Dokumentation)
+ [Funktionen und Komponenten von BMC Discovery](https://docs.bmc.com/docs/discovery/221/bmc-discovery-features-and-components-1052418000.html) (BMC-Dokumentation)
+ [BMC Discovery-Benutzerhandbuch (BMC-Dokumentation](https://docs.bmc.com/xwiki/bin/view/IT-Operations-Management/Discovery/BMC-Discovery/))
+ [Suchen nach Daten (auf BMC Discovery) (BMC-Dokumentation)](https://docs.bmc.com/docs/discovery/120/searching-for-data-911457232.html)
+ [Portfolioerkennung und -analyse für die Migration](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-portfolio-discovery/welcome.html) (AWS Prescriptive Guidance)

**Anleitungen und Videos**
+ [BMC Discovery: Webinar — Bewährte Methoden für Berichtsabfragen (Teil 1) (YouTube)](https://www.youtube.com/watch?v=iwXy6x40kO8)

# Umziehen
<a name="migration-relocate-pattern-list"></a>

**Topics**
+ [Migrieren Sie eine Amazon RDS for Oracle Oracle-Datenbank zu einer anderen AWS-Konto und AWS-Region verwenden Sie sie AWS DMS für die laufende Replikation](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Migrieren Sie eine Amazon RDS-DB-Instance zu einer anderen VPC oder einem anderen Konto](migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.md)
+ [Migrieren Sie einen Amazon Redshift Redshift-Cluster in eine AWS-Region in China](migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china.md)
+ [Transportieren Sie PostgreSQL-Datenbanken zwischen zwei Amazon RDS-DB-Instances mithilfe von pg\$1transport](transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.md)

# Migrieren Sie eine Amazon RDS for Oracle Oracle-Datenbank zu einer anderen AWS-Konto und AWS-Region verwenden Sie sie AWS DMS für die laufende Replikation
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication"></a>

*Durga Prasad Cheepuri und Eduardo Valentim, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-summary"></a>


| 
| 
| Warnung: IAM-Benutzer verfügen über langfristige Anmeldeinformationen, was ein Sicherheitsrisiko darstellt. Um dieses Risiko zu minimieren, empfehlen wir, diesen Benutzern nur die Berechtigungen zu gewähren, die sie für die Ausführung der Aufgabe benötigen, und diese Benutzer zu entfernen, wenn sie nicht mehr benötigt werden. | 
| --- |

Dieses Muster führt Sie durch die Schritte zur Migration einer Quelldatenbank von Amazon Relational Database Service (Amazon RDS) für Oracle zu einer anderen AWS-Konto und. AWS-Region Das Muster verwendet einen DB-Snapshot für eine einmalige vollständige Datenladung und aktiviert AWS Database Migration Service (AWS DMS) für die fortlaufende Replikation.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-prereqs"></a>

**Voraussetzungen**
+ Eine aktive Datenbank AWS-Konto , die die Amazon RDS for Oracle Oracle-Quelldatenbank enthält, die mit einem anderen Schlüssel AWS Key Management Service (AWS KMS) verschlüsselt wurde
+ Aktiv AWS-Konto in einer anderen Datenbank als AWS-Region der Quelldatenbank, die für die Amazon RDS for Oracle Oracle-Zieldatenbank verwendet werden soll
+ Virtual Private Cloud (VPC) -Peering zwischen Quelle und Ziel VPCs
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html)
+ Vertrautheit mit [der Verwendung einer Oracle-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) 

**Produktversionen**
+ Oracle-Versionen 11g (Versionen 11.2.0.3.v1 und höher) und bis zu 12.2 und 18c. Die aktuelle Liste der unterstützten Versionen und Editionen finden Sie in der Dokumentation unter [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) und mit [Verwenden einer Oracle-Datenbank als Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) für. AWS DMS AWS Informationen zu Oracle-Versionen, die von Amazon RDS unterstützt werden, finden Sie unter [Oracle auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html). 

## Architektur
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-architecture"></a>

**Quell- und Zieltechnologie-Stacks**
+ Amazon RDS for Oracle Oracle-DB-Instance

![\[AWS-Quellkonto, das eine Verbindung zum AWS-Zielkonto herstellt, das Quell- und Zielregionen enthält\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/e17fa7fe-d924-4f35-9707-b93572fa1227.png)


**Architektur für fortlaufende Replikation**

![\[Datenbank auf einer EC2 Instance, die über VPC-Peering eine Verbindung zu einer Replikationsinstanz und Amazon RDS herstellt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5ecd5359-884e-455c-b5d0-ef08eda2ea1f/images/b60b3500-5d29-487a-bbab-0ae9f3f386aa.png)


## Tools
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-tools"></a>

**Tools, die für das einmalige vollständige Laden von Daten verwendet werden**
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) erstellt einen Speicher-Volume-Snapshot Ihrer DB-Instance und sichert dabei die gesamte DB-Instance und nicht nur einzelne Datenbanken. Beim Erstellen eines DB-Snapshots wählen Sie die DB-Instance aus, die gesichert werden soll, und benennen den DB-Snapshot, damit Sie später mit diesem eine Wiederherstellung ausführen können. Die Zeit, die für die Erstellung eines Snapshots benötigt wird, hängt von der Größe Ihrer Datenbanken ab. Da der Snapshot das gesamte Speichervolume umfasst, wirkt sich die Größe von Dateien, wie z. B. temporäre Dateien, auch auf die Zeit aus, die zum Erstellen des Snapshots benötigt wird. Weitere Informationen zur Verwendung von DB-Snapshots finden Sie unter [Erstellen eines DB-Snapshots](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html) in der Amazon RDS-Dokumentation. 
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) erstellt einen**** Schlüssel für die**** Amazon**** RDS-Verschlüsselung. Wenn Sie eine verschlüsselte DB-Instance erstellen, können Sie auch die [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)Schlüssel-ID für Ihren Verschlüsselungsschlüssel angeben. Wenn Sie keine [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)Schlüssel-ID angeben, verwendet Amazon RDS Ihren Standard-Verschlüsselungsschlüssel für Ihre neue DB-Instance. [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)erstellt Ihren Standard-Verschlüsselungsschlüssel für Ihre AWS-Konto. Ihr AWS-Konto hat für jeden einen anderen Standard-Verschlüsselungsschlüssel AWS-Region. Für dieses Muster sollte die Amazon RDS-DB-Instance mit dem nicht standardmäßigen [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)Schlüssel verschlüsselt werden. Weitere Informationen zur Verwendung von [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)Schlüsseln für die Amazon RDS-Verschlüsselung finden Sie unter [Verschlüsseln von Amazon RDS-Ressourcen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) in der Amazon RDS-Dokumentation.

**Tools, die für die laufende Replikation verwendet werden**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) wird verwendet, um laufende Änderungen zu replizieren und die Quell- und Zieldatenbank synchron zu halten. Weitere Informationen zur Verwendung AWS DMS für die laufende Replikation finden Sie in der AWS DMS Dokumentation unter [Arbeiten mit einer AWS DMS Replikationsinstanz](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.html). 

## Epen
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-epics"></a>

### Konfiguriere deine Quelle AWS-Konto
<a name="configure-your-source-aws-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die Oracle-DB-Quellinstanz vor. | Lassen Sie die Amazon RDS for Oracle DB-Instance im ARCHIVELOG-Modus laufen und legen Sie den Aufbewahrungszeitraum fest. Einzelheiten finden Sie unter [Arbeiten mit einer AWS verwalteten Oracle-Datenbank als Quelle für](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed). AWS DMS | DBA | 
| Legen Sie die zusätzliche Protokollierung für die Oracle-DB-Quellinstanz fest. | Legen Sie die zusätzliche Protokollierung auf Datenbank- und Tabellenebene für die Amazon RDS for Oracle Oracle-DB-Instance fest. Einzelheiten finden Sie unter [Arbeiten mit einer AWS verwalteten Oracle-Datenbank](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Amazon-Managed) als Quelle für. AWS DMS | DBA | 
| Aktualisieren Sie die AWS KMS Schlüsselrichtlinie im Quellkonto. | Aktualisieren Sie die AWS KMS Schlüsselrichtlinie in der Quelle AWS-Konto , damit das Ziel AWS-Konto den verschlüsselten Amazon AWS KMS RDS-Schlüssel verwenden kann. Einzelheiten finden Sie in der [AWS KMS Dokumentation](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts). | SysAdmin | 
| Erstellen Sie einen manuellen Amazon RDS-DB-Snapshot der Quell-DB-Instance. |  | AWS-IAM-Benutzer | 
| Teilen Sie den manuellen, verschlüsselten Amazon RDS-Snapshot mit dem Ziel AWS-Konto. | Einzelheiten finden Sie unter [Einen DB-Snapshot teilen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html). | AWS-IAM-Benutzer | 

### Konfigurieren Sie Ihr Ziel AWS-Konto
<a name="configure-your-target-aws-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie eine Richtlinie bei. | Fügen Sie im Ziel AWS-Konto dem Root-IAM-Benutzer eine AWS Identity and Access Management (IAM-) Richtlinie hinzu, damit der IAM-Benutzer mithilfe des gemeinsamen Schlüssels einen verschlüsselten DB-Snapshot kopieren kann. AWS KMS  | SysAdmin | 
| Wechseln Sie zur Quelle. AWS-Region |  | AWS-IAM-Benutzer | 
| Kopieren Sie den geteilten Snapshot. | Wählen Sie in der Amazon RDS-Konsole im Bereich **Snapshots** die Option **Für mich freigegeben** und wählen Sie den geteilten Snapshot aus. Kopieren Sie den Snapshot in dieselbe Datenbank AWS-Region wie die Quelldatenbank, indem Sie den Amazon-Ressourcennamen (ARN) für den von der Quelldatenbank verwendeten AWS KMS Schlüssel verwenden. Einzelheiten finden Sie unter [Kopieren eines DB-Snapshots](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html). | AWS-IAM-Benutzer | 
| Wechseln Sie zum Ziel AWS-Region und erstellen Sie einen neuen AWS KMS Schlüssel. |  | AWS-IAM-Benutzer | 
| Kopieren Sie den Snapshot. | Wechseln Sie zur Quelle AWS-Region. Wählen Sie auf der Amazon RDS-Konsole im Bereich **Snapshots** die Option **Owned by Me** und wählen Sie den kopierten Snapshot aus. Kopieren Sie den Snapshot auf das Ziel, AWS-Region indem Sie den AWS KMS Schlüssel für das neue Ziel AWS-Region verwenden. | AWS-IAM-Benutzer | 
| Stellen Sie den Snapshot wieder her. | Wechseln Sie zum Ziel AWS-Region. Wählen Sie auf der Amazon RDS-Konsole im Bereich **Snapshots** die Option **Owned by Me** aus. Wählen Sie den kopierten Snapshot aus und stellen Sie ihn in einer Amazon RDS for Oracle DB-Instance wieder her. Einzelheiten finden Sie unter [Aus einem DB-Snapshot wiederherstellen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | AWS-IAM-Benutzer | 

### Bereiten Sie Ihre Quelldatenbank für die laufende Replikation vor
<a name="prepare-your-source-database-for-ongoing-replication"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Oracle-Benutzer mit den entsprechenden Berechtigungen. | Erstellen Sie einen Oracle-Benutzer mit den erforderlichen Rechten für Oracle als Quelle für AWS DMS. Einzelheiten finden Sie in der [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html). | DBA | 
| Konfigurieren Sie die Quelldatenbank für Oracle LogMiner oder Oracle Binary Reader. |  | DBA | 

### Bereiten Sie Ihre Zieldatenbank für die laufende Replikation vor
<a name="prepare-your-target-database-for-ongoing-replication"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Oracle-Benutzer mit den entsprechenden Berechtigungen. | Erstellen Sie einen Oracle-Benutzer mit den erforderlichen Rechten für Oracle als Ziel für AWS DMS. Einzelheiten finden Sie in der [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html#CHAP_Target.Oracle.Privileges). | DBA | 

### Komponenten erstellen AWS DMS
<a name="create-dms-components"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Replikationsinstanz im Ziel AWS-Region. | Erstellen Sie eine Replikationsinstanz in der VPC des Ziels AWS-Region. Einzelheiten finden Sie in der [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.ReplicationInstance). | AWS-IAM-Benutzer | 
| Erstellen Sie Quell- und Zielendpunkte mit der erforderlichen Verschlüsselung und testen Sie Verbindungen. | Einzelheiten finden Sie in der [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Endpoints). | DBA | 
| Erstellen Sie Replikationsaufgaben. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.html)[Einzelheiten finden Sie in der AWS DMS Dokumentation.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html#CHAP_GettingStarted.Tasks) | IAM-Benutzer | 
| Starten Sie die Aufgaben und überwachen Sie sie. | Einzelheiten finden Sie in der [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Monitoring.html). | AWS-IAM-Benutzer | 
| Aktivieren Sie bei Bedarf die Validierung der Aufgabe. | Beachten Sie, dass die Aktivierung der Validierung Auswirkungen auf die Leistung der Replikation hat. Einzelheiten finden Sie in der [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | AWS-IAM-Benutzer | 

## Zugehörige Ressourcen
<a name="migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication-resources"></a>
+ [Änderung einer wichtigen Richtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts)
+ [Manuellen Amazon RDS-DB-Snapshot erstellen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)
+ [Einen manuellen Amazon RDS-DB-Snapshot teilen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)
+ [Einen Snapshot kopieren](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html) 
+ [Wiederherstellung aus einem Amazon RDS-DB-Snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html) 
+ [Erste Schritte mit AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html) 
+ [Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) 
+ [Verwendung einer Oracle-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html) 
+ [AWS DMS Einrichtung mit VPC-Peering](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html#CHAP_ReplicationInstance.VPC.Configurations.ScenarioVPCPeer) 
+ [Wie teile ich manuelle Amazon RDS-DB-Snapshots oder DB-Cluster-Snapshots mit anderen? AWS-Konto](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (Artikel im AWS Knowledge Center) 

# Migrieren Sie eine Amazon RDS-DB-Instance zu einer anderen VPC oder einem anderen Konto
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account"></a>

*Dhrubajyoti Mukherjee, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer Amazon Relational Database Service (Amazon RDS) -DB-Instance von einer Virtual Private Cloud (VPC) zu einer anderen im selben AWS-Konto oder von einem AWS-Konto zu einem anderen AWS-Konto.

Dieses Muster ist nützlich, wenn Sie Ihre Amazon RDS-DB-Instances aus Trennungs- oder Sicherheitsgründen auf eine andere VPC oder ein anderes Konto migrieren möchten (z. B. wenn Sie Ihren Anwendungsstapel und Ihre Datenbank in unterschiedlichen Ordnern platzieren möchten VPCs). 

Die Migration einer DB-Instance auf ein anderes AWS-Konto umfasst Schritte wie das Erstellen eines manuellen Snapshots, dessen gemeinsame Nutzung und das Wiederherstellen des Snapshots im Zielkonto. Dieser Vorgang kann je nach Datenbankänderungen und Transaktionsraten zeitaufwändig sein. Außerdem führt er zu Datenbankausfällen. Planen Sie die Migration daher im Voraus. Erwägen Sie eine blue/green Bereitstellungsstrategie, um Ausfallzeiten zu minimieren. Alternativ können Sie den AWS Data Migration Service (AWS DMS) testen, um die Ausfallzeiten für die Änderung zu minimieren. Dieses Muster deckt diese Option jedoch nicht ab. Weitere Informationen finden Sie in der [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html).

## Voraussetzungen und Einschränkungen
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ AWS Identity and Access Management (IAM) -Berechtigungen, die für die VPC, Subnetze und die Amazon RDS-Konsole erforderlich sind

**Einschränkungen**
+ Änderungen an einer VPC führen zu einem Neustart der Datenbank, was zu Anwendungsausfällen führt. Wir empfehlen, die Migration in Zeiten geringer Spitzenzeiten durchzuführen.
+ Einschränkungen bei der Migration von Amazon RDS zu einer anderen VPC:
  + Bei der DB-Instance, die Sie migrieren, muss es sich um eine einzelne Instance ohne Standby handeln. Sie darf kein Mitglied eines Clusters sein.
  + Amazon RDS darf sich nicht in mehreren Availability Zones befinden.
  + Amazon RDS darf keine Read Replicas haben.
  + Die in der Ziel-VPC erstellte Subnetzgruppe muss Subnetze aus der Availability Zone haben, in der die Quelldatenbank läuft.
+ Einschränkungen bei der Migration von Amazon RDS auf ein anderes AWS-Konto:
  + Das Teilen von Snapshots, die mit dem Standard-Serviceschlüssel für Amazon RDS verschlüsselt sind, wird derzeit nicht unterstützt.

## Architektur
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-architecture"></a>

**Migration zu einer VPC im selben AWS-Konto**

Das folgende Diagramm zeigt den Workflow für die Migration einer Amazon RDS-DB-Instance zu einer anderen VPC im selben AWS-Konto.

![\[Workflow für die Migration einer Amazon RDS-DB-Instance zu einer anderen VPC im selben AWS-Konto\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/73e16544-6276-4f03-9ae2-42b8c7c20315.png)


Die Schritte bestehen aus den folgenden Schritten. Ausführliche Anweisungen finden Sie im Abschnitt [Epics](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics).

1. Erstellen Sie eine DB-Subnetzgruppe in der Ziel-VPC. Eine DB-Subnetzgruppe ist eine Sammlung von Subnetzen, mit denen Sie beim Erstellen von DB-Instances eine bestimmte VPC angeben können.

1. Konfigurieren Sie die Amazon RDS-DB-Instance in der Quell-VPC für die Verwendung der neuen DB-Subnetzgruppe.

1. Wenden Sie die Änderungen an, um die Amazon RDS-Datenbank auf die Ziel-VPC zu migrieren.

**Zu einem anderen AWS-Konto migrieren**

Das folgende Diagramm zeigt den Arbeitsablauf für die Migration einer Amazon RDS-DB-Instance auf ein anderes AWS-Konto.

![\[Workflow für die Migration einer Amazon RDS-DB-Instance auf ein anderes AWS-Konto\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/dabcee69-9cc6-47f9-9964-635e349caaaf/images/5536e69e-3965-4ca2-8a0b-2573659b5f8f.png)


Die Schritte bestehen aus den folgenden Schritten. Ausführliche Anweisungen finden Sie im Abschnitt [Epics](#migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics).

1. Greifen Sie im AWS-Quellkonto auf die Amazon RDS-DB-Instance zu.

1. Erstellen Sie einen Amazon RDS-Snapshot im AWS-Quellkonto.

1. Teilen Sie den Amazon RDS-Snapshot mit dem AWS-Zielkonto.

1. Greifen Sie auf den Amazon RDS-Snapshot im AWS-Zielkonto zu.

1. Erstellen Sie eine Amazon RDS-DB-Instance im AWS-Zielkonto.

## Tools
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-tools"></a>

**AWS-Services**
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen dabei, AWS-Ressourcen in einem von Ihnen definierten virtuellen Netzwerk zu starten. Dieses virtuelle Netzwerk ähnelt einem herkömmlichen Netzwerk, das Sie in Ihrem eigenen Rechenzentrum betreiben würden, mit den Vorteilen der skalierbaren Infrastruktur von AWS.

## Best Practices
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-best-practices"></a>
+ Wenn Datenbankausfälle bei der Migration einer Amazon RDS-DB-Instance auf ein anderes Konto ein Problem darstellen, empfehlen wir Ihnen, [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) zu verwenden. Dieser Service bietet Datenreplikation, was zu einer Ausfallzeit von weniger als fünf Minuten führt.

## Epen
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-epics"></a>

### Migrieren Sie zu einer anderen VPC im selben AWS-Konto
<a name="migrate-to-a-different-vpc-in-the-same-aws-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer neuen VPC. | Erstellen Sie auf der [Amazon VPC-Konsole](https://console.aws.amazon.com/vpc/) eine neue VPC und Subnetze mit den gewünschten Eigenschaften und IP-Adressbereichen. Eine ausführliche Anleitung finden Sie in der [Amazon VPC-Dokumentation](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html). | Administrator | 
| Erstellen einer DB-Subnetzgruppe | Auf der [Amazon RDS-Konsole](https://console.aws.amazon.com/rds/):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Weitere Informationen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.CreateDBSubnetGroup). | Administrator | 
| Ändern Sie die Amazon RDS-DB-Instance so, dass sie die neue Subnetzgruppe verwendet. | Auf der Amazon RDS-Konsole:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html)Wenn die Migration zur Ziel-VPC abgeschlossen ist, wird die Standardsicherheitsgruppe der Ziel-VPC der Amazon RDS-DB-Instance zugewiesen. Sie können eine neue Sicherheitsgruppe für diese VPC mit den erforderlichen eingehenden und ausgehenden Regeln für Ihre DB-Instance konfigurieren.Alternativ können Sie die AWS-Befehlszeilenschnittstelle (AWS CLI) verwenden, um die Migration zur Ziel-VPC durchzuführen, indem Sie die neue VPC-Sicherheitsgruppen-ID explizit angeben. Beispiel:<pre>aws rds modify-db-instance \<br />    --db-instance-identifier testrds \<br />    --db-subnet-group-name new-vpc-subnet-group \<br />    --vpc-security-group-ids sg-idxxxx \<br />    --apply-immediately</pre> | Administrator | 

### Zu einem anderen AWS-Konto migrieren
<a name="migrate-to-a-different-aws-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine neue VPC und Subnetzgruppe im AWS-Zielkonto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Administrator | 
| Teilen Sie einen manuellen Snapshot der Datenbank und teilen Sie ihn mit dem Zielkonto. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-amazon-rds-db-instance-to-another-vpc-or-account.html) | Administrator | 
| Starten Sie eine neue Amazon RDS-DB-Instance. | Starten Sie eine neue Amazon RDS-DB-Instance aus dem gemeinsam genutzten Snapshot im AWS-Zielkonto. Anweisungen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RestoreFromSnapshot.html). | Administrator | 

## Zugehörige Ressourcen
<a name="migrate-an-amazon-rds-db-instance-to-another-vpc-or-account-resources"></a>
+ [Amazon VPC-Dokumentation](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)
+ [Dokumentation zu Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)
+ [Wie ändere ich die VPC für eine RDS-DB-Instance?](https://aws.amazon.com/premiumsupport/knowledge-center/change-vpc-rds-db-instance/) (Artikel AWS re:POST)
+ [Wie übertrage ich das Eigentum an Amazon RDS-Ressourcen auf ein anderes AWS-Konto?](https://aws.amazon.com/premiumsupport/knowledge-center/account-transfer-rds/) (Artikel AWS re:POST)
+ [Wie teile ich manuelle Amazon RDS-DB-Snapshots oder Aurora-DB-Cluster-Snapshots mit einem anderen AWS-Konto?](https://aws.amazon.com/premiumsupport/knowledge-center/rds-snapshots-share-account/) (Artikel AWS re:POST)
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)

# Migrieren Sie einen Amazon Redshift Redshift-Cluster in eine AWS-Region in China
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china"></a>

*Jing Yan, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-summary"></a>

Dieses Muster bietet einen step-by-step Ansatz zur Migration eines Amazon Redshift Redshift-Clusters aus einer anderen AWS-Region in China.

Dieses Muster verwendet SQL-Befehle, um alle Datenbankobjekte neu zu erstellen, und verwendet den Befehl UNLOAD, um diese Daten von Amazon Redshift in einen Amazon Simple Storage Service (Amazon S3) -Bucket in der Quellregion zu verschieben. Die Daten werden dann in einen S3-Bucket in der AWS-Region in China migriert. Der COPY-Befehl wird verwendet, um Daten aus dem S3-Bucket zu laden und in den Amazon Redshift Redshift-Zielcluster zu übertragen.

Amazon Redshift unterstützt derzeit keine regionsübergreifenden Funktionen wie das Kopieren von Snapshots in AWS-Regionen in China. Dieses Muster bietet eine Möglichkeit, diese Einschränkung zu umgehen. Sie können die Schritte in diesem Muster auch rückgängig machen, um Daten von einer AWS-Region in China in eine andere AWS-Region zu migrieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-prereqs"></a>

*Voraussetzungen*
+ Aktive AWS-Konten sowohl in einer Region China als auch in einer AWS-Region außerhalb China
+ Bestehende Amazon Redshift Redshift-Cluster sowohl in einer Region China als auch in einer AWS-Region außerhalb China

*Einschränkungen*
+ Dies ist eine Offline-Migration, was bedeutet, dass der Amazon Redshift Redshift-Quellcluster während der Migration keine Schreibvorgänge ausführen kann.

## Architektur
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-architecture"></a>

**Quelltechnologie-Stack**
+ Amazon Redshift Redshift-Cluster in einer AWS-Region außerhalb China

**Zieltechnologie-Stack**
+ Amazon Redshift Redshift-Cluster in einer AWS-Region in China

**Zielarchitektur**

![\[Migration von Amazon Redshift Redshift-Clusterdaten aus einem S3-Bucket in einer AWS-Region zu einem Bucket in einer Region China.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f7d241d9-b700-406b-95a0-3e47e7f0fa60/images/b6016e3d-76db-4176-8f99-f804da94d3f2.png)


## Tools
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-tools"></a>

**Tools**
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) — Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice, der Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet. Sie können Amazon S3 verwenden, um Daten aus Amazon Redshift zu speichern, und Sie können Daten aus einem S3-Bucket nach Amazon Redshift kopieren.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html) — Amazon Redshift ist ein vollständig verwalteter Data-Warehouse-Service im Petabyte-Bereich in der Cloud. 
+ [psql](https://www.postgresql.org/docs/8.4/app-psql.html) — psql ist ein terminalbasiertes Frontend für PostgreSQL. 

## Epen
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-epics"></a>

### Bereiten Sie sich auf die Migration in der Quellregion vor
<a name="prepare-for-migration-in-the-source-region"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten und konfigurieren Sie eine EC2 Instanz in der Quellregion. | Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon Elastic Compute Cloud (Amazon EC2) -Konsole. Ihre aktuelle Region wird in der Navigationsleiste oben auf dem Bildschirm angezeigt. Diese Region kann keine AWS-Region in China sein. Wählen Sie im Dashboard der EC2 Amazon-Konsole „Instanz starten“ und erstellen und konfigurieren Sie eine EC2 Instance. Wichtig: Stellen Sie sicher, dass Ihre EC2 Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf den TCP-Port 22 von Ihrem Quellcomputer aus zulassen. Anweisungen zum Starten und Konfigurieren einer EC2 Instanz finden Sie im Abschnitt „Verwandte Ressourcen“. | DBA, Entwickler | 
| Installieren Sie das psql-Tool. | Downloaden und installieren Sie PostgreSQL. Amazon Redshift stellt das psql-Tool nicht bereit, es wird mit PostgreSQL installiert. Weitere Informationen zur Verwendung von psql und zur Installation von PostgreSQL-Tools finden Sie im Abschnitt „Verwandte Ressourcen“. | DBA | 
| Notieren Sie die Amazon Redshift Redshift-Clusterdetails.  | Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie im Navigationsbereich „Clusters“ aus. Wählen Sie dann den Namen des Amazon Redshift Redshift-Clusters aus der Liste aus. Notieren Sie sich auf der Registerkarte „Eigenschaften“ im Abschnitt „Datenbankkonfigurationen“ den „Datenbanknamen“ und den „Port“. Öffnen Sie den Abschnitt „Verbindungsdetails“ und notieren Sie den „Endpunkt“ im <port><databasename>Format „Endpoint:/“. Wichtig: Stellen Sie sicher, dass Ihre Amazon Redshift Redshift-Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf den TCP-Port 5439 von Ihrer Instance aus zulassen. EC2  | DBA | 
| Connect psql mit dem Amazon Redshift Redshift-Cluster.  | <userid><databasename><port>Geben Sie an einer Befehlszeile die Verbindungsinformationen an, indem Sie den Befehl „psql -h <endpoint>-U -d -p“ ausführen. <userid>Geben Sie an der psql-Passwort-Eingabeaufforderung das Passwort für den Benutzer "" ein. Sie sind dann mit dem Amazon Redshift Redshift-Cluster verbunden und können interaktiv Befehle eingeben. | DBA | 
| Erstellen Sie einen S3-Bucket.  | Öffnen Sie die Amazon S3 S3-Konsole und erstellen Sie einen S3-Bucket für die aus Amazon Redshift exportierten Dateien. Anweisungen zum Erstellen eines S3-Buckets finden Sie im Abschnitt „Verwandte Ressourcen“. | DBA, AWS Allgemein | 
| Erstellen Sie eine IAM-Richtlinie, die das Entladen von Daten unterstützt. | Öffnen Sie die AWS Identity and Access Management (IAM) -Konsole und wählen Sie „Richtlinien“. Wählen Sie „Richtlinie erstellen“ und dann die Registerkarte „JSON“. Kopieren Sie die IAM-Richtlinie für das Entladen von Daten aus dem Abschnitt „Zusätzliche Informationen“ und fügen Sie sie ein. Wichtig: Ersetzen Sie „s3\$1bucket\$1name“ durch den Namen Ihres S3-Buckets. Wählen Sie „Richtlinie überprüfen“ und geben Sie einen Namen und eine Beschreibung für die Richtlinie ein. Wählen Sie „Richtlinie erstellen“. | DBA | 
| Erstellen Sie eine IAM-Rolle, um den UNLOAD-Vorgang für Amazon Redshift zu ermöglichen. | Öffnen Sie die IAM-Konsole und wählen Sie „Rollen“. Wählen Sie „Rolle erstellen“ und wählen Sie „AWS-Service“ unter „Typ der vertrauenswürdigen Entität auswählen“. Wählen Sie „Redshift“ für den Service, wählen Sie „Redshift — Customizable“ und dann „Next“. Wählen Sie die Richtlinie „Entladen“, die Sie zuvor erstellt haben, und klicken Sie auf „Weiter“. Geben Sie einen „Rollennamen“ ein und wählen Sie „Rolle erstellen“. | DBA | 
| Ordnen Sie die IAM-Rolle dem Amazon Redshift Redshift-Cluster zu.  | Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie „IAM-Rollen verwalten“. Wählen Sie im Dropdownmenü „Verfügbare Rollen“ und wählen Sie die Rolle aus, die Sie zuvor erstellt haben. Wählen Sie „Änderungen übernehmen“. Wenn der „Status“ für die IAM-Rolle unter „IAM-Rollen verwalten“ als „Sync“ angezeigt wird, können Sie den Befehl UNLOAD ausführen. | DBA | 
| Beenden Sie Schreibvorgänge in den Amazon Redshift Redshift-Cluster. | Sie müssen daran denken, alle Schreibvorgänge in den Amazon Redshift Redshift-Quellcluster zu beenden, bis die Migration abgeschlossen ist. | DBA | 

### Bereiten Sie sich auf die Migration in der Zielregion vor
<a name="prepare-for-migration-in-the-target-region"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten und konfigurieren Sie eine EC2 Instanz in der Zielregion. | Melden Sie sich bei der AWS-Managementkonsole für eine Region in China an, entweder Peking oder Ningxia. Wählen Sie in der EC2 Amazon-Konsole „Launch Instance“ und erstellen und konfigurieren Sie eine EC2 Instance. Wichtig: Stellen Sie sicher, dass Ihre EC2 Amazon-Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf TCP-Port 22 von Ihrem Quellcomputer aus zulassen. Weitere Anweisungen zum Starten und Konfigurieren einer EC2 Instance finden Sie im Abschnitt „Verwandte Ressourcen“. | DBA | 
| Notieren Sie die Amazon Redshift Redshift-Clusterdetails.  | Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie im Navigationsbereich „Clusters“ aus. Wählen Sie dann den Namen des Amazon Redshift Redshift-Clusters aus der Liste aus. Notieren Sie sich auf der Registerkarte „Eigenschaften“ im Abschnitt „Datenbankkonfigurationen“ den „Datenbanknamen“ und den „Port“. Öffnen Sie den Abschnitt „Verbindungsdetails“ und notieren Sie den „Endpunkt“ im <port><databasename>Format „Endpoint:/“. Wichtig: Stellen Sie sicher, dass Ihre Amazon Redshift Redshift-Sicherheitsgruppen für eingehende Nachrichten uneingeschränkten Zugriff auf den TCP-Port 5439 von Ihrer Instance aus zulassen. EC2  | DBA | 
| Connect psql mit dem Amazon Redshift Redshift-Cluster.  | <userid><databasename><port>Geben Sie an einer Befehlszeile die Verbindungsinformationen an, indem Sie den Befehl „psql -h <endpoint>-U -d -p“ ausführen. <userid>Geben Sie an der psql-Passwort-Eingabeaufforderung das Passwort für den Benutzer "" ein. Sie sind dann mit dem Amazon Redshift Redshift-Cluster verbunden und können interaktiv Befehle eingeben. | DBA | 
| Erstellen Sie einen S3-Bucket.  | Öffnen Sie die Amazon S3 S3-Konsole und erstellen Sie einen S3-Bucket für die exportierten Dateien aus Amazon Redshift. Hilfe zu dieser und anderen Geschichten finden Sie im Abschnitt „Verwandte Ressourcen“. | DBA | 
| Erstellen Sie eine IAM-Richtlinie, die das Kopieren von Daten unterstützt. | Öffnen Sie die IAM-Konsole und wählen Sie „Richtlinien“. Wählen Sie „Richtlinie erstellen“ und dann den Tab „JSON“. Kopieren Sie die IAM-Richtlinie zum Kopieren von Daten aus dem Abschnitt „Zusätzliche Informationen“ und fügen Sie sie ein. Wichtig: Ersetzen Sie „s3\$1bucket\$1name“ durch den Namen Ihres S3-Buckets. Wählen Sie „Richtlinie überprüfen“ und geben Sie einen Namen und eine Beschreibung für die Richtlinie ein. Wählen Sie „Richtlinie erstellen“. | DBA | 
| Erstellen Sie eine IAM-Rolle, um den COPY-Vorgang für Amazon Redshift zu ermöglichen. | Öffnen Sie die IAM-Konsole und wählen Sie „Rollen“. Wählen Sie „Rolle erstellen“ und wählen Sie „AWS-Service“ unter „Typ der vertrauenswürdigen Entität auswählen“. Wählen Sie „Redshift“ für den Service, wählen Sie „Redshift — Customizable“ und dann „Next“. Wählen Sie die Richtlinie „Kopieren“, die Sie zuvor erstellt haben, und klicken Sie auf „Weiter“. Geben Sie einen „Rollennamen“ ein und wählen Sie „Rolle erstellen“. | DBA | 
| Ordnen Sie die IAM-Rolle dem Amazon Redshift Redshift-Cluster zu.  | Öffnen Sie die Amazon Redshift Redshift-Konsole und wählen Sie „IAM-Rollen verwalten“. Wählen Sie im Dropdownmenü „Verfügbare Rollen“ und wählen Sie die Rolle aus, die Sie zuvor erstellt haben. Wählen Sie „Änderungen übernehmen“. Wenn der „Status“ für die IAM-Rolle unter „IAM-Rollen verwalten“ als „Sync“ angezeigt wird, können Sie den Befehl „COPY“ ausführen. | DBA | 

### Überprüfen Sie die Quelldaten und Objektinformationen, bevor Sie mit der Migration beginnen
<a name="verify-source-data-and-object-information-before-beginning-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Zeilen in den Amazon Redshift Redshift-Quelltabellen. | Verwenden Sie die Skripts im Abschnitt „Zusätzliche Informationen“, um die Anzahl der Zeilen in den Amazon Redshift Redshift-Quelltabellen zu überprüfen und aufzuzeichnen. Denken Sie daran, die Daten für die UNLOAD- und COPY-Skripten gleichmäßig aufzuteilen. Dies verbessert die Effizienz beim Entladen und Laden von Daten, da die Datenmenge, die von den einzelnen Skripten abgedeckt wird, ausgewogen ist. | DBA | 
| Überprüfen Sie die Anzahl der Datenbankobjekte im Amazon Redshift Redshift-Quellcluster. | Verwenden Sie die Skripts im Abschnitt „Zusätzliche Informationen“, um die Anzahl der Datenbanken, Benutzer, Schemas, Tabellen, Ansichten und benutzerdefinierten Funktionen (UDFs) in Ihrem Amazon Redshift Redshift-Quellcluster zu überprüfen und aufzuzeichnen. | DBA | 
| Überprüfen Sie die Ergebnisse der SQL-Anweisung vor der Migration. | Einige SQL-Anweisungen für die Datenvalidierung sollten nach den tatsächlichen Geschäfts- und Datensituationen sortiert werden. Dies dient dazu, die importierten Daten zu überprüfen, um sicherzustellen, dass sie konsistent sind und korrekt angezeigt werden. | DBA | 

### Migrieren Sie Daten und Objekte in die Zielregion
<a name="migrate-data-and-objects-to-the-target-region"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie Amazon Redshift DDL-Skripts.  | Generieren Sie Data Definition Language (DDL) -Skripts, indem Sie die Links aus dem Abschnitt „SQL-Anweisungen zur Abfrage von Amazon Redshift“ im Abschnitt „Zusätzliche Informationen“ verwenden. Diese DDL-Skripts sollten die Abfragen „Benutzer erstellen“, „Schema erstellen“, „Schemaprivilegien für Benutzer“, „Tabelle/Ansicht erstellen“, „Benutzerrechte für Objekte“ und „Funktion erstellen“ enthalten. | DBA | 
| Erstellen Sie Objekte im Amazon Redshift Redshift-Cluster für die Zielregion. | Führen Sie die DDL-Skripts mithilfe der AWS-Befehlszeilenschnittstelle (AWS CLI) in der AWS-Region in China aus. Diese Skripts erstellen Objekte im Amazon Redshift Redshift-Cluster für die Zielregion. | DBA | 
| Entladen Sie die Amazon Redshift Redshift-Quellclusterdaten in den S3-Bucket. | Führen Sie den Befehl UNLOAD aus, um Daten aus dem Amazon Redshift Redshift-Cluster in der Quellregion in den S3-Bucket zu entladen. | DBA, Entwickler  | 
| Übertragen Sie die Bucket-Daten der Quellregion S3 in den Ziel-Bucket der Region S3. | Übertragen Sie die Daten aus Ihrem S3-Bucket der Quellregion in den S3-Bucket der Zielregion. Da der Befehl „\$1 aws s3 sync“ nicht verwendet werden kann, stellen Sie sicher, dass Sie den Prozess verwenden, der im Artikel „Übertragung von Amazon S3 S3-Daten von AWS-Regionen zu AWS-Regionen in China“ im Abschnitt „Verwandte Ressourcen“ beschrieben ist. | Developer | 
|  Laden Sie Daten in den Amazon Redshift Redshift-Zielcluster.  | Führen Sie im psql-Tool für Ihre Zielregion den Befehl COPY aus, um Daten aus dem S3-Bucket in den Amazon Redshift Redshift-Zielcluster zu laden. | DBA | 

### Überprüfen Sie die Daten in den Quell- und Zielregionen nach der Migration
<a name="verify-the-data-in-the-source-and-target-regions-after-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen und vergleichen Sie die Anzahl der Zeilen in den Quell- und Zieltabellen. | Überprüfen und vergleichen Sie die Anzahl der Tabellenzeilen in den Quell- und Zielregionen, um sicherzustellen, dass alle migriert wurden. | DBA | 
| Überprüfen und vergleichen Sie die Anzahl der Quell- und Zieldatenbankobjekte. | Überprüfen und vergleichen Sie alle Datenbankobjekte in den Quell- und Zielregionen, um sicherzustellen, dass alle migriert wurden. | DBA | 
| Überprüfen und vergleichen Sie die SQL-Skriptergebnisse in den Quell- und Zielregionen. | Führen Sie die vor der Migration vorbereiteten SQL-Skripts aus. Überprüfen und vergleichen Sie die Daten, um sicherzustellen, dass die SQL-Ergebnisse korrekt sind. | DBA | 
| Setzen Sie die Passwörter aller Benutzer im Amazon Redshift Redshift-Zielcluster zurück.  | Nachdem die Migration abgeschlossen und alle Daten verifiziert wurden, sollten Sie alle Benutzerkennwörter für den Amazon Redshift Redshift-Cluster in der AWS-Region in China zurücksetzen. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-resources"></a>
+ [Übertragung von Amazon S3 S3-Daten von AWS-Regionen in AWS-Regionen in China](https://aws.amazon.com/cn/blogs/storage/transferring-amazon-s3-data-from-aws-regions-to-aws-regions-in-china/)
+ [Erstellen eines S3-Buckets](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)
+ [Zurücksetzen eines Amazon Redshift Redshift-Benutzerkennworts](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_USER.html)
+ [PSQL-Dokumentation](https://www.postgresql.org/docs/8.4/static/app-psql.html)

## Zusätzliche Informationen
<a name="migrate-an-amazon-redshift-cluster-to-an-aws-region-in-china-additional"></a>

*IAM-Richtlinie für das Entladen von Daten*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::s3_bucket_name"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:DeleteObject"],
      "Resource": ["arn:aws:s3:::s3_bucket_name/*"]
    }
  ]
}
```

*IAM-Richtlinie für das Kopieren von Daten*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::s3_bucket_name"]
    },
    {
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": ["arn:aws:s3:::s3_bucket_name/*"]
    }
  ]
}
```

*SQL-Anweisungen zur Abfrage von Amazon Redshift*

```
##Database

select * from pg_database where datdba>1;

##User

select * from pg_user where usesysid>1;

##Schema

SELECT n.nspname AS "Name",

  pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"

FROM pg_catalog.pg_namespace n

WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'

ORDER BY 1;

##Table

select count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema');

select schemaname,count(*) from pg_tables where schemaname not in ('pg_catalog','information_schema') group by schemaname order by 1;

##View

SELECT 

    n.nspname AS schemaname,c.relname AS viewname,pg_catalog.pg_get_userbyid(c.relowner) as "Owner"

FROM 

    pg_catalog.pg_class AS c

INNER JOIN

    pg_catalog.pg_namespace AS n

    ON c.relnamespace = n.oid

WHERE relkind = 'v' and n.nspname not in ('information_schema','pg_catalog');

##UDF

SELECT 

   n.nspname AS schemaname,

   p.proname AS proname,

   pg_catalog.pg_get_userbyid(p.proowner) as "Owner"

FROM pg_proc p

LEFT JOIN pg_namespace n on n.oid = p.pronamespace

WHERE p.proowner != 1;
```

*SQL-Skripts zum Generieren von DDL-Anweisungen*
+ [Get\$1Schema\$1Priv\$1by\$1User-Skript](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_get_schema_priv_by_user.sql)
+ [Generate\$1TBL\$1DDL-Skript](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_tbl_ddl.sql)
+ [Generate\$1View\$1DDL](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_view_ddl.sql)
+ [Generate\$1User\$1Grant\$1Revoke\$1DDL](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_user_grant_revoke_ddl.sql)
+ [Generieren\$1UDF\$1DDL](https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_generate_udf_ddl.sql)

# Transportieren Sie PostgreSQL-Datenbanken zwischen zwei Amazon RDS-DB-Instances mithilfe von pg\$1transport
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport"></a>

*Raunak Rishabh und Jitender Kumar, Amazon Web Services*

## Zusammenfassung
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-summary"></a>

**Dieses Muster beschreibt die Schritte für die Migration extrem großer Datenbanken zwischen zwei Amazon Relational Database Service (Amazon RDS) für PostgreSQL-DB-Instances mithilfe der Erweiterung pg\$1transport.** Diese Erweiterung bietet einen physischen Transportmechanismus, um jede Datenbank zu verschieben. Durch das Streaming der Datenbankdateien mit minimaler Verarbeitung bietet es eine extrem schnelle Methode für die Migration großer Datenbanken zwischen DB-Instances mit minimaler Ausfallzeit. Diese Erweiterung verwendet ein Pull-Modell, bei dem die Ziel-DB-Instance die Datenbank aus der Quell-DB-Instance importiert.

## Voraussetzungen und Einschränkungen
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-prereqs"></a>

**Voraussetzungen**
+ Beide DB-Instances müssen dieselbe Hauptversion von PostgreSQL ausführen.
+ Die Datenbank darf auf dem Ziel nicht existieren. Andernfalls schlägt der Transport fehl.
+ In der Quelldatenbank darf keine andere Erweiterung als **pg\$1transport** aktiviert sein.
+ Alle Quelldatenbankobjekte müssen sich im Standard-Tablespace **pg\$1default** befinden.
+ Die Sicherheitsgruppe der Quell-DB-Instance sollte Traffic von der Ziel-DB-Instance zulassen.
+ Installieren Sie einen PostgreSQL-Client wie [psql](https://www.postgresql.org/docs/11/app-psql.html) oder [PgAdmin](https://www.pgadmin.org/)um mit der Amazon RDS PostgreSQL-DB-Instance zu arbeiten. Sie können den Client entweder in Ihrem lokalen System installieren oder eine Amazon Elastic Compute Cloud (Amazon EC2) -Instance verwenden. In diesem Muster verwenden wir psql auf einer EC2 Instance.

**Einschränkungen**
+ Sie können Datenbanken nicht zwischen verschiedenen Hauptversionen von Amazon RDS for PostgreSQL transportieren.
+ Die Zugriffsrechte und der Besitz von der Quelldatenbank werden nicht auf die Zieldatenbank übertragen.
+ Sie können Datenbanken nicht auf Read Replicas oder auf übergeordneten Instanzen von Read Replicas transportieren.
+ Sie können **Reg-Datentypen** nicht in Datenbanktabellen verwenden, die Sie mit dieser Methode transportieren möchten.
+ Sie können insgesamt bis zu 32 Transporte (einschließlich Importe und Exporte) gleichzeitig auf einer DB-Instance ausführen.
+ Sie können unsere include/exclude Tabellen nicht umbenennen. Alles wird so migriert, wie es ist.

**Vorsicht**
+ Erstellen Sie Sicherungskopien, bevor Sie die Erweiterung entfernen, da durch das Entfernen der Erweiterung auch abhängige Objekte und einige Daten entfernt werden, die für den Betrieb der Datenbank von entscheidender Bedeutung sind.
+ Berücksichtigen Sie die Instanzklasse und die Prozesse, die in anderen Datenbanken auf der Quell-Instance ausgeführt werden, wenn Sie die Anzahl der Worker und `work_mem` Werte für **pg\$1transport** bestimmen.
+ Wenn der Transport beginnt, werden alle Verbindungen in der Quelldatenbank beendet und die Datenbank wird in den schreibgeschützten Modus versetzt.

**Anmerkung**  
Wenn der Transport in einer Datenbank ausgeführt wird, hat er keine Auswirkungen auf andere Datenbanken auf demselben Server. ****

**Versionen der Produkte**
+ Amazon RDS for PostgreSQL 10.10 und höher und Amazon RDS for PostgreSQL 11.5 und höher. Aktuelle Versionsinformationen finden Sie unter [Transport von PostgreSQL-Datenbanken zwischen DB-Instances](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html) in der Amazon RDS-Dokumentation.

## Architektur
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-architecture"></a>

![\[Transport von PostgreSQL-Datenbanken zwischen Amazon RDS-DB-Instances\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/d5fb7ea3-32b7-4602-b382-3cf5c075c7c9/images/aec4d8d2-37a8-4136-9042-f9667ac4aebb.png)


## Tools
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-tools"></a>
+ **pg\$1transport** bietet einen physischen Transportmechanismus zum Verschieben jeder Datenbank. Durch das Streamen der Datenbankdateien mit minimaler Verarbeitung werden Daten beim physischen Transport viel schneller übertragen als bei herkömmlichen Dump- und Ladeprozessen und es sind nur minimale Ausfallzeiten erforderlich. PostgreSQL-Transportdatenbanken verwenden ein Pull-Modell, bei dem die Ziel-DB-Instance die Datenbank aus der Quell-DB-Instance importiert. Sie installieren diese Erweiterung auf Ihren DB-Instances, wenn Sie die Quell- und Zielumgebungen vorbereiten, wie in diesem Muster erklärt.
+ Mit [psql](https://www.postgresql.org/docs/11/app-psql.html) können Sie eine Verbindung zu Ihren PostgreSQL-DB-Instances herstellen und mit ihnen arbeiten. Informationen zur Installation von **psql** auf Ihrem System finden Sie auf der [PostgreSQL-Downloadseite](https://www.postgresql.org/download/).

## Epen
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-epics"></a>

### Erstellen Sie die Zielparametergruppe
<a name="create-the-target-parameter-group"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Parametergruppe für das Zielsystem. | Geben Sie einen Gruppennamen an, der sie als Zielparametergruppe identifiziert, z. B.`pgtarget-param-group`. Anweisungen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Ändern Sie die Parameter für die Parametergruppe. | Legen Sie die folgenden Parameter fest:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Weitere Informationen zu diesen Parametern finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Erstellen Sie die Quellparametergruppe
<a name="create-the-source-parameter-group"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Parametergruppe für das Quellsystem. | Geben Sie einen Gruppennamen an, der sie als Quellparametergruppe identifiziert, z. B.`pgsource-param-group`. Anweisungen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithDBInstanceParamGroups.html#USER_WorkingWithParamGroups.Creating). | DBA | 
| Ändern Sie die Parameter für die Parametergruppe. | Legen Sie die folgenden Parameter fest:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html)Weitere Informationen zu diesen Parametern finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.TransportableDB.html). | DBA | 

### Bereiten Sie die Zielumgebung vor
<a name="prepare-the-target-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine neue Amazon RDS for PostgreSQL PostgreSQL-DB-Instance, in die Sie Ihre Quelldatenbank transportieren möchten. | Ermitteln Sie die Instanzklasse und die PostgreSQL-Version auf der Grundlage Ihrer Geschäftsanforderungen. | DBA, Systemadministrator, Datenbankarchitekt | 
| Ändern Sie die Sicherheitsgruppe des Ziels, um Verbindungen über den DB-Instance-Port von der EC2 Instance aus zuzulassen. | Standardmäßig ist der Port für die PostgreSQL-Instanz 5432. Wenn Sie einen anderen Port verwenden, müssen Verbindungen zu diesem Port für die Instanz geöffnet sein. EC2  | DBA, Systemadministrator | 
| Ändern Sie die Instanz und weisen Sie die neue Zielparametergruppe zu. | Beispiel, `pgtarget-param-group`. | DBA | 
| Starten Sie die Amazon RDS-DB-Zielinstanz neu.  | Die Parameter `shared_preload_libraries` und `max_worker_processes` sind statische Parameter und erfordern einen Neustart der Instance. | DBA, Systemadministrator | 
| Stellen Sie mit psql von der EC2 Instanz aus eine Connect zur Datenbank her. | Verwenden Sie den -Befehl: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Erstellen Sie die Erweiterung pg\$1transport. | Führen Sie die folgende Abfrage als Benutzer mit der `rds_superuser` Rolle aus:<pre>create extension pg_transport;</pre> | DBA | 

### Bereiten Sie die Quellumgebung vor
<a name="prepare-the-source-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ändern Sie die Sicherheitsgruppe der Quelle, um Verbindungen auf dem DB-Instance-Port von der Amazon-Instance und der EC2 Ziel-DB-Instance aus zuzulassen | Standardmäßig ist der Port für die PostgreSQL-Instanz 5432. Wenn Sie einen anderen Port verwenden, müssen Verbindungen zu diesem Port für die Instanz geöffnet sein. EC2  | DBA, Systemadministrator | 
| Ändern Sie die Instanz und weisen Sie die neue Quellparametergruppe zu. | Beispiel, `pgsource-param-group`. | DBA | 
| Starten Sie die Amazon RDS-DB-Quell-Instance neu.  | Die Parameter `shared_preload_libraries` und `max_worker_processes` sind statische Parameter und erfordern einen Neustart der Instance. | DBA | 
| Stellen Sie mit psql von der EC2 Instanz aus eine Connect zur Datenbank her. | Verwenden Sie den -Befehl: <pre>psql -h <rds_end_point> -p PORT -U username -d database -W</pre> | DBA | 
| Erstellen Sie die Erweiterung pg\$1transport und entfernen Sie alle anderen Erweiterungen aus den zu transportierenden Datenbanken. | Der Transport schlägt fehl, wenn in der Quelldatenbank andere Erweiterungen als **pg\$1transport** installiert sind. Dieser Befehl muss von einem Benutzer mit der `rds_superuser` Rolle ausgeführt werden. | DBA | 

### Führen Sie den Transport durch
<a name="perform-the-transport"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie einen Probelauf durch. | Verwenden Sie die `transport.import_from_server` Funktion, um zuerst einen Probelauf durchzuführen:<pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', 'true');</pre>Der letzte Parameter dieser Funktion (gesetzt auf`true`) definiert den Probelauf. Diese Funktion zeigt alle Fehler an, die beim Ausführen des Haupttransports auftreten würden. Beheben Sie die Fehler, bevor Sie den Haupttransport ausführen.  | DBA | 
| Wenn der Probelauf erfolgreich ist, initiieren Sie den Datenbanktransport. | Führen Sie die `transport.import_from_server` Funktion aus, um den Transport durchzuführen. Sie stellt eine Verbindung zur Quelle her und importiert die Daten. <pre>SELECT transport.import_from_server( 'source-db-instance-endpoint', source-db-instance-port, 'source-db-instance-user', 'source-user-password', 'source-database-name', 'destination-user-password', false);</pre>Der letzte Parameter dieser Funktion (gesetzt auf`false`) gibt an, dass es sich nicht um einen Probelauf handelt. | DBA | 
| Führen Sie die Schritte nach dem Transport durch. | Nachdem der Datenbanktransport abgeschlossen ist:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.html) | DBA | 

## Zugehörige Ressourcen
<a name="transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport-resources"></a>
+ [Dokumentation zu Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [pg\$1transport-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html#PostgreSQL.TransportableDB.Setup)
+ [Migrieren von Datenbanken mit RDS PostgreSQL Transportable Databases](https://aws.amazon.com/blogs/database/migrating-databases-using-rds-postgresql-transportable-databases/) (Blogbeitrag)
+ [PostgreSQL wird heruntergeladen](https://www.postgresql.org/download/linux/redhat/)
+ [psql-Hilfsprogramm](https://www.postgresql.org/docs/11/app-psql.html)
+ [Erstellen einer DB-Parametergruppe](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Creating)
+ [Parameter in einer DB-Parametergruppe ändern](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html#USER_WorkingWithParamGroups.Modifying)
+ [PostgreSQL wird heruntergeladen](https://www.postgresql.org/download/)

# Plattformwechsel
<a name="migration-replatform-pattern-list"></a>

**Topics**
+ [Exportieren Sie eine Microsoft SQL Server-Datenbank mithilfe von AWS DMS nach Amazon S3](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [Migrieren Sie Oracle CLOB-Werte in einzelne Zeilen in PostgreSQL auf AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Migrieren Sie Oracle PeopleSoft zu Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migrieren Sie die Oracle ROWID-Funktionalität zu PostgreSQL auf AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Migrieren Sie Oracle-Datenbank-Fehlercodes in eine Amazon Aurora PostgreSQL-kompatible Datenbank](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Migrieren Sie SAP ASE auf Amazon EC2 zu Amazon Aurora PostgreSQL-kompatibel mit AWS SCT und AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)
+ [Migrieren Sie Windows-SSL-Zertifikate mithilfe von ACM zu einem Application Load Balancer](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.md)
+ [Migrieren Sie eine Messaging-Warteschlange von Microsoft Azure Service Bus zu Amazon SQS](migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs.md)
+ [Migrieren Sie eine Oracle JD EnterpriseOne Edwards-Datenbank mithilfe von Oracle Data Pump und AWS DMS zu AWS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Migrieren Sie eine PeopleSoft Oracle-Datenbank mithilfe von AWS DMS zu AWS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Migrieren Sie eine lokale MySQL-Datenbank zu Amazon RDS for MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Migrieren Sie Daten mithilfe von Rclone von Microsoft Azure Blob zu Amazon S3](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Migrieren Sie von Couchbase Server zu Couchbase Capella auf AWS](migrate-from-couchbase-server-to-couchbase-capella-on-aws.md)
+ [Migrieren Sie von IBM WebSphere Application Server zu Apache Tomcat auf Amazon EC2](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2.md)
+ [Migrieren Sie EC2 mit Auto Scaling von IBM WebSphere Application Server zu Apache Tomcat auf Amazon](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling.md)
+ [Migrieren Sie eine.NET-Anwendung von Microsoft Azure App Service zu AWS Elastic Beanstalk](migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk.md)
+ [Migrieren Sie von Oracle WebLogic zu Apache Tomcat (ToMEE) auf Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.md)
+ [Migrieren Sie mithilfe von AWS DMS eine Oracle-Datenbank von Amazon EC2 zu Amazon RDS for Oracle](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mit Logstash zu Amazon OpenSearch Service](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank zu Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mit Oracle Data Pump zu Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Migrieren Sie mit pglogical von PostgreSQL auf Amazon EC2 zu Amazon RDS for PostgreSQL](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Migrieren Sie eine lokale PostgreSQL-Datenbank zu Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Microsoft SQL Server auf Amazon EC2 unter Linux](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mithilfe von Verbindungsservern zu Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mit systemeigenen Sicherungs- und Wiederherstellungsmethoden zu Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Migrieren Sie eine Microsoft SQL Server-Datenbank mithilfe von AWS DMS und AWS SCT zu Aurora MySQL](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine lokale MariaDB-Datenbank mit nativen Tools zu Amazon RDS for MariaDB](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Migrieren Sie eine lokale MySQL-Datenbank zu Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Migrieren Sie lokale MySQL-Datenbanken mit Percona XtraBackup, Amazon EFS und Amazon S3 zu Aurora MySQL](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Migrieren Sie lokale Java-Anwendungen mithilfe von AWS App2Container zu AWS](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Migrieren Sie gemeinsam genutzte Dateisysteme in einer AWS großen Migration](migrate-shared-file-systems-in-an-aws-large-migration.md)
+ [Migrieren Sie eine Oracle-Datenbank mithilfe von GoldenGate Oracle-Flatfile-Adaptern zu Amazon RDS for Oracle](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Ändern Sie Python- und Perl-Anwendungen, um die Datenbankmigration von Microsoft SQL Server zur Amazon Aurora PostgreSQL-Compatible Edition zu unterstützen](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)

# Exportieren Sie eine Microsoft SQL Server-Datenbank mithilfe von AWS DMS nach Amazon S3
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms"></a>

*Sweta Krishna, Amazon Web Services*

## Zusammenfassung
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-summary"></a>

Organizations müssen für Datenbankmigration, Sicherung und Wiederherstellung, Datenarchivierung und Datenanalyse häufig Datenbanken auf Amazon Simple Storage Service (Amazon S3) kopieren. Dieses Muster beschreibt, wie Sie eine Microsoft SQL Server-Datenbank nach Amazon S3 exportieren können. Die Quelldatenbank kann vor Ort oder auf Amazon Elastic Compute Cloud (Amazon EC2) oder Amazon Relational Database Service (Amazon RDS) für Microsoft SQL Server in der Amazon Web Services (AWS) Cloud gehostet werden.

Die Daten werden mithilfe des AWS Database Migration Service (AWS DMS) exportiert. Standardmäßig schreibt AWS DMS Volllast- und CDC-Daten (Change Data Capture) im Format mit kommagetrennten Werten (.csv). Für kompaktere Speicher- und schnellere Abfrageoptionen verwendet dieses Muster die Formatoption Apache Parquet (.parquet).

## Voraussetzungen und Einschränkungen
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine AWS Identity and Access Management (IAM) -Rolle für das Konto mit Schreib-, Lösch- und Tag-Zugriff auf den Ziel-S3-Bucket und AWS DMS (`dms.amazonaws.com`), das dieser IAM-Rolle als vertrauenswürdige Entität hinzugefügt wurde
+ Eine lokale Microsoft SQL Server-Datenbank (oder Microsoft SQL Server auf einer EC2 Instance oder eine Amazon RDS for SQL Server Server-Datenbank)
+ Netzwerkkonnektivität zwischen der Virtual Private Cloud (VPC) auf AWS und dem von AWS Direct Connect bereitgestellten lokalen Netzwerk oder einem virtuellen privaten Netzwerk (VPN)

**Einschränkungen**
+ Ein VPC-fähiger (Gateway-VPC) S3-Bucket wird derzeit in AWS DMS-Versionen vor 3.4.7 nicht unterstützt.
+ Änderungen an der Quelltabellenstruktur während des vollständigen Ladevorgangs werden nicht unterstützt.
+ Der vollständige LOB-Modus (Large Binary Object) von AWS DMS wird nicht unterstützt.

**Produktversionen**
+ Microsoft SQL Server-Versionen 2005 oder höher für die Enterprise, Standard, Workgroup und Developer Editionen.
+ Support für Microsoft SQL Server Version 2019 als Quelle ist in den AWS-DMS-Versionen 3.3.2 und höher verfügbar.

## Architektur
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Microsoft SQL Server-Datenbank (oder Microsoft SQL Server auf einer EC2 Instance oder eine Amazon RDS for SQL Server Server-Datenbank)**** 

**Zieltechnologie-Stack**
+ AWS Direct Connect
+ AWS DMS
+ Amazon S3

**Zielarchitektur**

![\[Daten werden von der SQL Server-Datenbank über Direct Connect in AWS DMS und dann in den S3-Bucket migriert.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/75b8b20f-a1a8-4633-9816-1b370cc7e92c/images/85bd433c-4a0a-4825-8661-e53f53265191.png)


## Tools
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem Direct Connect-Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS-Services erstellen und dabei Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
+ [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.

## Epen
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-epics"></a>

### Bereite dich auf die Migration vor
<a name="prepare-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Datenbankversion. | Überprüfen Sie die Version der Quelldatenbank und stellen Sie sicher, dass sie von AWS DMS unterstützt wird. Informationen zu unterstützten SQL Server-Datenbankversionen finden Sie unter [Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). | DBA | 
| Erstellen Sie eine VPC und eine Sicherheitsgruppe. | Erstellen Sie in Ihrem AWS-Konto eine VPC und eine Sicherheitsgruppe. Weitere Informationen finden Sie in der [Amazon VPC-Dokumentation](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html). | Systemadministrator | 
| Erstellen Sie einen Benutzer für die AWS DMS-Aufgabe. | Erstellen Sie einen AWS DMS-Benutzer in der Quelldatenbank und gewähren Sie ihm READ-Berechtigungen. Dieser Benutzer wird von AWS DMS verwendet. | DBA | 
| Testen Sie die DB-Konnektivität. | Testen Sie die Konnektivität des AWS DMS-Benutzers mit der SQL Server-DB-Instance. | DBA | 
| Erstellen Sie einen S3-Bucket. | Erstellen Sie den Ziel-S3-Bucket. Dieser Bucket wird die migrierten Tabellendaten enthalten. | Systemadministrator | 
| Erstellen Sie eine IAM-Richtlinie und -Rolle. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.html) | Systemadministrator | 

### Migrieren Sie Daten mithilfe von AWS DMS
<a name="migrate-data-by-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine AWS DMS-Replikations-Instance. | Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die AWS DMS-Konsole. Wählen Sie im Navigationsbereich **Replikationsinstanzen, Replikationsinstanz** **erstellen** aus. Anweisungen finden Sie in [Schritt 1](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.ReplicationInstance) in der AWS DMS-Dokumentation. | DBA | 
| Erstellen Sie Quell- und Zielendpunkte. | Erstellen Sie Quell- und Zielendpunkte. Testen Sie die Verbindung von der Replikationsinstanz zu den Quell- und Zielendpunkten. Anweisungen finden Sie in [Schritt 2](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Endpoints) in der AWS DMS-Dokumentation. | DBA | 
| Erstellen Sie eine Replikationsaufgabe. | Erstellen Sie eine Replikationsaufgabe und wählen Sie Volllast oder Volllast mit Change Data Capture (CDC) aus, um Daten von SQL Server in den S3-Bucket zu migrieren. Anweisungen finden Sie in [Schritt 3](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Tasks) der AWS DMS-Dokumentation. | DBA | 
| Starten Sie die Datenreplikation. | Starten Sie die Replikationsaufgabe und überwachen Sie die Protokolle auf Fehler. | DBA | 

### Validieren Sie die Daten
<a name="validate-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die migrierten Daten. | Navigieren Sie auf der Konsole zu Ihrem Ziel-S3-Bucket. Öffnen Sie den Unterordner, der denselben Namen wie die Quelldatenbank hat. Vergewissern Sie sich, dass der Ordner alle Tabellen enthält, die aus der Quelldatenbank migriert wurden. | DBA | 

### Bereinigen von Ressourcen
<a name="clean-up-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS-Ressourcen herunter und löschen Sie sie. | Fahren Sie temporäre AWS-Ressourcen herunter, die Sie für die Datenmigration erstellt haben, z. B. die AWS DMS-Replikationsinstanz, und löschen Sie sie, nachdem Sie den Export validiert haben. | DBA | 

## Zugehörige Ressourcen
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-resources"></a>
+ [AWS Database Migration Service — Benutzerhandbuch](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Verwendung einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html)
+ [Verwendung von Amazon S3 als Ziel für AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html)
+ [Verwenden eines S3-Buckets als AWS-DMS-Ziel](https://repost.aws/knowledge-center/s3-bucket-dms-target) (AWS re:POST)

## Zusätzliche Informationen
<a name="export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms-additional"></a>

Verwenden Sie den folgenden Code, um eine IAM-Richtlinie mit S3-Bucket-Berechtigungen für die AWS-DMS-Rolle hinzuzufügen. Ersetzen Sie `bucketname` durch den Namen von Ihrem Bucket.

```
{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject",
                 "s3:DeleteObject"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         },
         {
             "Effect": "Allow",
             "Action": [
                 "s3:ListBucket"
             ],
             "Resource": [
                 "arn:aws:s3:::bucketname*"
             ]
         }
     ]
 }
```

# Migrieren Sie Oracle CLOB-Werte in einzelne Zeilen in PostgreSQL auf AWS
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws"></a>

*Sai Krishna Namburu und Sindhusha Paturu, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-summary"></a>

Dieses Muster beschreibt, wie die Werte von Oracle Character Large Object (CLOB) in Amazon Aurora PostgreSQL-Compatible Edition und Amazon Relational Database Service (Amazon RDS) für PostgreSQL in einzelne Zeilen aufgeteilt werden. PostgreSQL unterstützt den CLOB-Datentyp nicht.

Tabellen mit Intervallpartitionen werden in der Oracle-Quelldatenbank identifiziert, und der Tabellenname, der Partitionstyp, das Partitionsintervall und andere Metadaten werden erfasst und in die Zieldatenbank geladen. Sie können CLOB-Daten mit einer Größe von weniger als 1 GB mithilfe von AWS Database Migration Service (AWS DMS) als Text in Zieltabellen laden, oder Sie können die Daten im CSV-Format exportieren, in einen Amazon Simple Storage Service (Amazon S3) -Bucket laden und in Ihre PostgreSQL-Zieldatenbank migrieren.

Nach der Migration können Sie den benutzerdefinierten PostgreSQL-Code, der mit diesem Muster bereitgestellt wird, verwenden, um die CLOB-Daten basierend auf der neuen Zeilenzeichen-ID (`CHR(10)`) in einzelne Zeilen aufzuteilen und die Zieltabelle aufzufüllen.**** 

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-prereqs"></a>

**Voraussetzungen**
+ Eine Oracle-Datenbanktabelle mit Intervallpartitionen und Datensätzen mit einem CLOB-Datentyp.
+ Eine Aurora PostgreSQL-kompatible oder Amazon RDS for PostgreSQL PostgreSQL-Datenbank mit einer Tabellenstruktur, die der Quelltabelle ähnelt (dieselben Spalten und Datentypen).

**Einschränkungen**
+ Der CLOB-Wert darf 1 GB nicht überschreiten.
+ Jede Zeile in der Zieltabelle muss eine neue Zeilenzeichen-ID haben.

**Produktversionen**
+ Oracle 12c
+ Aurora Postgres 11.6

## Architektur
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-architecture"></a>

Das folgende Diagramm zeigt eine Oracle-Quelltabelle mit CLOB-Daten und die entsprechende PostgreSQL-Tabelle in Aurora PostgreSQL-kompatibler Version 11.6.

![\[CLOB-Quelltabelle und entsprechende PostgreSQL-Zieltabelle.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/55806ee7-6a9f-4058-9a47-a07de68223ca/images/79b9d4b9-6f20-4db5-8ca8-2a599769a498.png)


## Tools
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-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.
+ [Amazon Relational Database Service (Amazon RDS) für PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen PostgreSQL-Datenbank in der AWS-Cloud.
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [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.

**Andere Tools**

Sie können die folgenden Client-Tools verwenden, um eine Verbindung zu Ihren Aurora PostgreSQL-kompatiblen Datenbanken und Amazon RDS for PostgreSQL PostgreSQL-Datenbanken herzustellen, darauf zuzugreifen und diese zu verwalten. (Diese Tools werden in diesem Muster nicht verwendet.)
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können.
+ [DBeaver](https://dbeaver.io/)ist ein Open-Source-Datenbanktool für Entwickler und Datenbankadministratoren. Sie können das Tool verwenden, um Ihre Daten zu manipulieren, zu überwachen, zu analysieren, zu verwalten und zu migrieren.

## Best Practices
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-best-practices"></a>

Bewährte Methoden für die Migration Ihrer Datenbank von Oracle zu PostgreSQL finden Sie im AWS-Blogbeitrag [Bewährte Methoden für die Migration einer Oracle-Datenbank zu Amazon RDS PostgreSQL oder Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/best-practices-for-migrating-an-oracle-database-to-amazon-rds-postgresql-or-amazon-aurora-postgresql-migration-process-and-infrastructure-considerations/): Überlegungen zum Migrationsprozess und zur Infrastruktur.

Bewährte Methoden für die Konfiguration der AWS DMS-Aufgabe für die Migration großer binärer Objekte finden Sie unter [Migrieren großer binärer Objekte (LOBs)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html#CHAP_BestPractices.LOBS) in der AWS DMS-Dokumentation.

## Epen
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-epics"></a>

### Identifizieren Sie die CLOB-Daten
<a name="identify-the-clob-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie die CLOB-Daten. | Analysieren Sie in der Oracle-Quelldatenbank die CLOB-Daten, um festzustellen, ob sie Spaltenüberschriften enthalten, sodass Sie die Methode zum Laden der Daten in die Zieltabelle festlegen können. Verwenden Sie die folgende Abfrage, um die Eingabedaten zu analysieren.`SELECT * FROM clobdata_or;  ` | Developer | 
| Laden Sie die CLOB-Daten in die Zieldatenbank. | Migrieren Sie die Tabelle mit CLOB-Daten in eine Zwischentabelle (Staging) in der Aurora- oder Amazon RDS-Zieldatenbank. Sie können AWS DMS verwenden oder die Daten als CSV-Datei in einen Amazon S3 S3-Bucket hochladen.Informationen zur Verwendung von AWS DMS für diese Aufgabe finden Sie unter [Verwenden einer Oracle-Datenbank als Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) und [Verwenden einer PostgreSQL-Datenbank als Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html) in der AWS DMS-Dokumentation.Informationen zur Verwendung von Amazon S3 für diese Aufgabe finden Sie [unter Amazon S3 als Ziel verwenden](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.S3.html) in der AWS DMS-Dokumentation. | Migrationsingenieur, DBA | 
| Validieren Sie die PostgreSQL-Zieltabelle. | Überprüfen Sie die Zieldaten, einschließlich der Header, anhand der Quelldaten, indem Sie die folgenden Abfragen in der Zieldatenbank verwenden.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre>Vergleichen Sie die Ergebnisse mit den Abfrageergebnissen aus der Quelldatenbank (ab dem ersten Schritt). | Developer | 
| Teilen Sie die CLOB-Daten in separate Zeilen auf. | Führen Sie den benutzerdefinierten PostgreSQL-Code aus, der im Abschnitt [Zusätzliche Informationen](#migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional) bereitgestellt wird, um die CLOB-Daten aufzuteilen und sie in separate Zeilen in der PostgreSQL-Zieltabelle einzufügen. | Developer | 

### Überprüfen Sie die Daten.
<a name="validate-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Daten in der Zieltabelle. | Überprüfen Sie die in die Zieltabelle eingefügten Daten mithilfe der folgenden Abfragen.<pre>SELECT * FROM clobdata_pg;<br />SELECT * FROM clobdatatarget;</pre> | Developer | 

## Zugehörige Ressourcen
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-resources"></a>
+ [CLOB-Datentyp](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF0021) (Oracle-Dokumentation)
+ [Datentypen](https://www.postgresql.org/docs/11/datatype.html) (PostgreSQL-Dokumentation)

## Zusätzliche Informationen
<a name="migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws-additional"></a>

**PostgreSQL-Funktion zum Aufteilen von CLOB-Daten**

```
do
$$
declare
totalstr varchar;
str1 varchar;
str2 varchar;
pos1 integer := 1;
pos2 integer ;
len integer;


begin
        select rawdata||chr(10) into totalstr from clobdata_pg;
        len :=  length(totalstr) ;
        raise notice 'Total length : %',len;
        raise notice 'totalstr : %',totalstr;
        raise notice 'Before while loop';


        while pos1 < len  loop


                  select position (chr(10) in totalstr) into pos2;
                 raise notice '1st position of new line : %',pos2;


                str1 := substring (totalstr,pos1,pos2-1);
                raise notice 'str1 : %',str1;


                   insert into clobdatatarget(data) values (str1);
                   totalstr := substring(totalstr,pos2+1,len);
                   raise notice 'new totalstr :%',totalstr;
                len :=  length(totalstr) ;


        end loop;
end
$$
LANGUAGE 'plpgsql' ;
```

**Beispiele für Eingabe und Ausgabe**

Sie können die folgenden Beispiele verwenden, um den PostgreSQL-Code auszuprobieren, bevor Sie Ihre Daten migrieren.

Erstellen Sie eine Oracle-Datenbank mit drei Eingabezeilen.

```
CREATE TABLE clobdata_or (
id INTEGER GENERATED ALWAYS AS IDENTITY,
rawdata clob  );


insert into clobdata_or(rawdata) values (to_clob('test line 1') || chr(10) || to_clob('test line 2') || chr(10) || to_clob('test line 3') || chr(10));
COMMIT;


SELECT * FROM clobdata_or;
```

Dadurch wird die folgende Ausgabe angezeigt.


|  |  | 
| --- |--- |
| id | Rohdaten | 
| 1 | Testlinie 1 Testlinie 2 Testlinie 3 | 

Laden Sie die Quelldaten zur Verarbeitung in eine PostgreSQL-Staging-Tabelle (`clobdata_pg`).

```
SELECT * FROM clobdata_pg;

CREATE TEMP TABLE clobdatatarget (id1 SERIAL,data VARCHAR );

<Run the code in the additional information section.>

SELECT * FROM clobdatatarget;
```

Dadurch wird die folgende Ausgabe angezeigt.


|  |  | 
| --- |--- |
| id1 | data | 
| 1 | Testlinie 1 | 
| 2 | Testlinie 2 | 
| 3 | Testlinie 3 | 

# Migrieren Sie Oracle PeopleSoft zu Amazon RDS Custom
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom"></a>

*Gaurav Gupta, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-summary"></a>

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) ist eine ERP-Lösung (Enterprise Resource Planning) für unternehmensweite Prozesse. PeopleSoft hat eine dreistufige Architektur: Client, Anwendung und Datenbank. PeopleSoft kann auf [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ausgeführt werden. Jetzt können Sie es auch PeopleSoft auf [Amazon RDS Custom](https://aws.amazon.com/rds/custom/) ausführen, das Zugriff auf das zugrunde liegende Betriebssystem bietet.

[Amazon RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) ist ein verwalteter Datenbankservice für ältere, benutzerdefinierte und verpackte Anwendungen, die Zugriff auf das zugrunde liegende Betriebssystem und die Datenbankumgebung benötigen. Wenn Sie Ihre Oracle-Datenbank zu Amazon RDS Custom migrieren, kann Amazon Web Services (AWS) Backup-Aufgaben und Hochverfügbarkeit verwalten, während Sie sich auf die Wartung Ihrer PeopleSoft Anwendung und Funktionalität konzentrieren können. Wichtige Faktoren, die bei einer Migration zu berücksichtigen sind, finden Sie unter [Strategien zur Oracle-Datenbankmigration](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) in AWS Prescriptive Guidance.

Dieses Muster konzentriert sich auf die Schritte zur Migration einer PeopleSoft Datenbank auf Amazon Elastic Compute Cloud (Amazon EC2) zu Amazon RDS Custom mithilfe eines Oracle Recovery Manager (RMAN) -Backups. Es verwendet ein gemeinsam [genutztes Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) -Dateisystem zwischen der EC2-Instance und Amazon RDS Custom, obwohl Sie auch Amazon FSx oder ein anderes gemeinsam genutztes Laufwerk verwenden können. Das Muster verwendet ein vollständiges RMAN-Backup (manchmal auch als Level-0-Backup bezeichnet). 

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-prereqs"></a>

**Voraussetzungen**
+ Eine Oracle-Quelldatenbank der Version 19C, die auf Amazon EC2 mit Oracle Linux 7, Oracle Linux 8, Red Hat Enterprise Linux (RHEL) 7 oder RHEL 8 ausgeführt wird. In den Beispielen für dieses Muster lautet der Name der Quelldatenbank`FSDMO92`, aber das ist keine Voraussetzung.
**Anmerkung**  
Sie können dieses Muster auch mit lokalen Oracle-Quelldatenbanken verwenden. Sie müssen über die entsprechende Netzwerkkonnektivität zwischen dem lokalen Netzwerk und einer Virtual Private Cloud (VPC) verfügen.
+ Eine PeopleSoft 9.2-Demo-Instanz.
+ Eine einzige PeopleSoft Anwendungsebene. Sie können dieses Muster jedoch so anpassen, dass es mit mehreren Anwendungsebenen funktioniert.
+ Amazon RDS Custom ist mit mindestens 8 GB Swap-Speicherplatz konfiguriert.

**Einschränkungen**

Dieses Muster unterstützt die folgenden Konfigurationen nicht:
+ Setzen des `ARCHIVE_LAG_TARGET` Datenbankparameters auf einen Wert außerhalb des Bereichs von 60—7200
+ Deaktivierung des Protokollmodus der DB-Instance () `NOARCHIVELOG`
+ Ausschalten des für Amazon Elastic Block Store (Amazon EBS) optimierten Attributs der EC2-Instance
+ Änderung der ursprünglichen EBS-Volumes, die an die EC2-Instance angehängt sind
+ Hinzufügen neuer EBS-Volumes oder Ändern des Volumetyps von gp2 auf gp3
+ Ändern des Erweiterungsformats für den `LOG_ARCHIVE_FORMAT` Parameter (erforderlich) `*.arc`
+ Multiplexen oder Ändern des Speicherorts und Namens der Steuerdatei (das muss sein) `/rdsdbdata/db/*DBNAME*/controlfile/control-01.ctl`

Weitere Informationen zu diesen und anderen nicht unterstützten Konfigurationen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-troubleshooting.html#custom-troubleshooting.fix-unsupported).

**Produktversionen**

Informationen zu Oracle-Datenbankversionen und Instance-Klassen, die von Amazon RDS Custom unterstützt werden, finden Sie unter [Anforderungen und Einschränkungen für Amazon RDS Custom for Oracle.](https://docs.amazonaws.cn/en_us/AmazonRDS/latest/UserGuide/custom-reqs-limits.html)

## Architektur
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-architecture"></a>

**Zieltechnologie-Stack**
+ Application Load Balancer
+ Amazon EFS
+ Amazon RDS Custom für Oracle
+ AWS Secrets Manager
+ Amazon Simple Storage Service (Amazon-S3)

**Zielarchitektur**

Das folgende Architekturdiagramm stellt ein PeopleSoft System dar, das in einer einzigen [Availability Zone](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html) auf AWS ausgeführt wird. Auf die Anwendungsebene wird über einen [Application Load Balancer](https://aws.amazon.com/elasticloadbalancing/application-load-balancer/) zugegriffen. Sowohl die Anwendung als auch die Datenbanken befinden sich in privaten Subnetzen, und die Amazon RDS Custom- und Amazon EC2 EC2-Datenbank-Instances verwenden ein gemeinsam genutztes Amazon EFS-Dateisystem, um die RMAN-Backup-Dateien zu speichern und darauf zuzugreifen. Amazon S3 wird zur Erstellung der benutzerdefinierten RDS-Oracle-Engine und zum Speichern der Redo-Logs-Metadaten verwendet.

![\[Webserver, App-Server, Amazon RDS Custom, eine EC2-DB-Instance und Amazon EFS in privaten Subnetzen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bd423dfe-f3c8-42d9-ac84-bf3d093c52bc/images/0e9a6431-e6c7-4047-ae6c-85311938041f.jpeg)


## Tools
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-tools"></a>

**Tools**

*AWS-Services*
+ [Amazon RDS Custom for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/working-with-custom-oracle.html) ist ein verwalteter Datenbankservice für ältere, benutzerdefinierte und verpackte Anwendungen, die Zugriff auf das zugrunde liegende Betriebssystem und die Datenbankumgebung benötigen. Er automatisiert Datenbankverwaltungsaufgaben wie Backups und Hochverfügbarkeit. 
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) unterstützt Sie bei der Erstellung und Konfiguration gemeinsam genutzter Dateisysteme in der AWS-Cloud. Dieses Muster verwendet ein gemeinsam genutztes Amazon EFS-Dateisystem, um die RMAN-Backup-Dateien zu speichern und darauf zuzugreifen.
+ [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. In diesem Muster rufen Sie die Datenbankbenutzerkennwörter aus Secrets Manager ab, um die `ADMIN` Benutzer `RDSADMIN` und zu erstellen und die `system` Kennwörter `sys` und zu ändern.
+ [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.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) verteilt eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele. Sie können beispielsweise den Datenverkehr auf Amazon Elastic Compute Cloud (Amazon EC2) -Instances, Container und IP-Adressen in einer oder mehreren Availability Zones verteilen. Dieses Muster verwendet einen Application Load Balancer.

*Andere Tools*
+ Oracle Recovery Manager (RMAN) bietet Backup- und Recovery-Unterstützung für Oracle-Datenbanken. Dieses Muster verwendet RMAN, um ein Hot-Backup der Oracle-Quelldatenbank auf Amazon EC2 durchzuführen, die auf Amazon RDS Custom wiederhergestellt wird.

## Best Practices
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-best-practices"></a>
+ Passen Sie für Datenbankinitialisierungsparameter die Standard-P-Datei an, die von der Amazon RDS Custom DB-Instance bereitgestellt wird, PeopleSoft anstatt die SP-Datei aus der Oracle-Quelldatenbank zu verwenden. Dies liegt daran, dass Leerzeichen und Kommentare Probleme beim Erstellen von Read Replicas in Amazon RDS Custom verursachen. Weitere Informationen zu Datenbank-Initialisierungsparametern finden Sie in Oracle Support Note 1100831.1 (erfordert einen [Oracle Support Account](https://support.oracle.com/portal/)).
+ Amazon RDS Custom verwendet standardmäßig die automatische Speicherverwaltung von Oracle. Wenn Sie den Hugemem-Kernel verwenden möchten, können Sie Amazon RDS Custom so konfigurieren, dass stattdessen die automatische Verwaltung gemeinsam genutzter Speicher verwendet wird.
+ Lassen Sie den `memory_max_target` Parameter standardmäßig aktiviert. Das Framework verwendet dies im Hintergrund, um Read Replicas zu erstellen.
+ Aktivieren Sie Oracle Flashback Database. Diese Funktion ist nützlich, wenn der Standbymodus in Failover-Testszenarien (nicht Switchover-Testszenarien) wiederhergestellt wird.

## Epen
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-epics"></a>

### Richten Sie die DB-Instance und das Dateisystem ein
<a name="set-up-the-db-instance-and-file-system"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die DB-Instance. | Erstellen Sie in der Amazon RDS-Konsole eine Amazon RDS Custom for Oracle DB-Instance mit einem DB-Namen namens FSDMO92 (oder dem Namen Ihrer Quelldatenbank).Anweisungen finden Sie unter [Arbeiten mit Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html) in der AWS-Dokumentation und im Blogbeitrag [Amazon RDS Custom for Oracle — New Control Capabilities in Database Environment](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/). Dadurch wird sichergestellt, dass der Datenbankname auf denselben Namen wie die Quelldatenbank gesetzt ist. (Wenn dieses Feld leer gelassen wird, werden die EC2-Instanz und der Datenbankname auf gesetzt`ORCL`.) | DBA | 

### Führen Sie eine vollständige RMAN-Backup der Amazon EC2 EC2-Quelldatenbank durch
<a name="perform-an-rman-full-backup-of-the-source-amazon-ec2-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein Backup-Skript. | Erstellen Sie ein RMAN-Backup-Skript, um die Datenbank im Amazon EFS-Dateisystem zu sichern, das Sie bereitgestellt haben (`/efs`im folgenden Beispiel). Sie können den Beispielcode verwenden oder eines Ihrer vorhandenen RMAN-Skripts ausführen.<pre>#!/bin/bash<br />Dt=`date +'%Y%m%d-%H%M'`<br />BACKUP_LOG="rman-${ORACLE_SID}-$Dt"<br />export TAGDATE=`date +%Y%m%d%H%M`;<br />LOGPATH=/u01/scripts/logs<br />rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF<br />SQL "ALTER SYSTEM SWITCH LOGFILE";<br />SQL "ALTER SESSION SET NLS_DATE_FORMAT="DD.MM.YYYY HH24:MI:SS"";<br />RUN<br />{<br />  ALLOCATE CHANNEL ch11 TYPE DISK MAXPIECESIZE 5G;<br />  ALLOCATE CHANNEL ch12 TYPE DISK MAXPIECESIZE 5G;<br />  BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_FULL' ;<br />  SQL "ALTER SYSTEM ARCHIVE LOG CURRENT";<br />  BACKUP FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_ARCHIVE' ARCHIVELOG ALL DELETE ALL INPUT ;<br />  BACKUP CURRENT CONTROLFILE FORMAT '/efs/rman_backup/FSCM/%d_%T_%s_%p_CONTROL';<br />}<br />EXIT;<br />EOF<br />  </pre> | DBA | 
| Führen Sie das Backup-Skript aus. | Um das RMAN-Backup-Skript auszuführen, melden Sie sich als Oracle Home User an und führen Sie das Skript aus.<pre>$  chmod a+x rman_backup.sh<br />$ ./rman_backup.sh &</pre> | DBA | 
| Suchen Sie nach Fehlern und notieren Sie sich den Namen der Sicherungsdatei. | Überprüfen Sie die RMAN-Protokolldatei auf Fehler. Wenn alles in Ordnung aussieht, listen Sie die Sicherungskopie der Steuerdatei auf, indem Sie den folgenden Befehl ausführen.<pre>RMAN> list backup of controlfile;<br /><br />using target database control file instead of recovery catalog<br /></pre>Notieren Sie sich den Namen der Ausgabedatei.<pre>List of Backup Sets<br />===================<br /><br />BS Key  Type LV Size       Device Type Elapsed Time Completion Time<br />------- ---- -- ---------- ----------- ------------ ---------------<br />12      Full    21.58M     DISK        00:00:01     13-JUL-22<br />        BP Key: 12   Status: AVAILABLE  Compressed: NO  Tag: TAG20220713T150155<br />        Piece Name: /efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL<br /> Control File Included: Ckp SCN: 16559159985898   Ckp time: 13-JUL-22<br /></pre>Sie verwenden die Backup-Kontrolldatei`/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL`, wenn Sie die Datenbank auf Amazon RDS Custom wiederherstellen. | DBA | 

### Fahren Sie die Ebene der Quellanwendung herunter
<a name="shut-down-the-source-application-tier"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die Anwendung herunter.  | Verwenden Sie das `psadmin` Hilfsprogramm oder das `psadmin` Befehlszeilenprogramm, um die Ebene der Quellanwendung herunterzufahren.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA, Administrator PeopleSoft  | 

### Konfiguration der benutzerdefinierten Amazon RDS-Zieldatenbank
<a name="configure-the-target-amazon-rds-custom-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie das nfs-utils-rpm-Paket. | Führen Sie den folgenden Befehl aus, um das `nfs-utils rpm` Paket zu installieren.<pre>$ yum install -y nfs-utils<br /></pre> | DBA | 
| Mounten Sie den EFS-Speicher. | Rufen Sie den Amazon EFS-Mount-Befehl von der Amazon EFS-Konsolenseite ab. Mounten Sie das EFS-Dateisystem auf der Amazon RDS-Instance mithilfe eines Network File System (NFS) -Clients.<pre>sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxxxxx.efs.eu-west-1.amazonaws.com:/ /efs<br />sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport fs-xxxxxxxxxx.efs.eu-west-1.amazonaws.com:/ /efs</pre> | DBA | 

### Löschen Sie die Startdatenbank und erstellen Sie die Verzeichnisse zum Speichern der Datenbankdateien
<a name="drop-the-starter-database-and-create-the-directories-to-store-the-database-files"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Den Automatisierungsmodus unterbrechen. | Sie müssen den [Automatisierungsmodus](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-managing.html#custom-managing.pausing) auf Ihrer Amazon RDS Custom DB-Instance anhalten, bevor Sie mit den nächsten Schritten fortfahren, um sicherzustellen, dass die Automatisierung die RMAN-Wiederherstellungsaktivität nicht beeinträchtigt.Sie können die Automatisierung unterbrechen, indem Sie die AWS-Konsole oder den Befehl AWS Command Line Interface (AWS CLI) verwenden (stellen Sie sicher, dass Sie zuerst [die AWS-CLI konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) haben).<pre>aws rds modify-db-instance \<br />--db-instance-identifier peoplesoft-fscm-92 \<br />--automation-mode all-paused \<br />--resume-full-automation-mode-minute 360 \<br />--region eu-west-1<br /></pre>Wenn Sie die Dauer der Pause angeben, stellen Sie sicher, dass Sie genügend Zeit für die RMAN-Wiederherstellung einplanen. Dies hängt von der Größe der Quelldatenbank ab. Ändern Sie daher den 360-Wert entsprechend.Stellen Sie außerdem sicher, dass sich die Gesamtzeit der angehaltenen Automatisierung nicht mit dem Sicherungs- oder Wartungsfenster der Datenbank überschneidet. | DBA | 
| Erstellen und ändern Sie die Parameterdatei für PeopleSoft | Um die Datei für zu erstellen und zu ändern PeopleSoft, verwenden Sie die Standarddatei, die mit der Amazon RDS Custom DB-Instance erstellt wurde. Fügen Sie die Parameter hinzu, die Sie für benötigen. PeopleSoft[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Löschen Sie die Starter-Datenbank. | Verwenden Sie den folgenden Code, um die bestehende benutzerdefinierte Amazon RDS-Datenbank zu löschen.<pre>$ sqlplus / as sysdba<br />SQL> shutdown immediate;<br />SQL> startup mount exclusive restrict;<br />SQL> drop database;<br />SQL> exit</pre> |  | 
| Stellen Sie die benutzerdefinierte Amazon RDS-Datenbank aus dem Backup wieder her. | Stellen Sie die Datenbank mithilfe des folgenden Skripts wieder her. Das Skript stellt zuerst die Steuerdatei und dann die gesamte Datenbank aus den auf dem EFS-Mount gespeicherten Sicherungsdateien wieder her.<pre>#!/bin/bash<br />Dt=`date +'%Y%m%d-%H%M'`<br />BACKUP_LOG="rman-${ORACLE_SID}-$Dt"<br />export TAGDATE=`date +%Y%m%d%H%M`;<br />LOGPATH=/rdsdbdata/scripts/logs<br />rman target / >> $LOGPATH/rman-${ORACLE_SID}-$Dt << EOF<br />restore controlfile from "/efs/rman_backup/FSCM/FSDMO92_20220713_12_1_CONTROL";<br />alter database mount;<br />run<br />{<br />set newname for database to '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';<br />SET NEWNAME FOR TEMPFILE 1 TO '/rdsdbdata/db/FSDMO92_A/datafile/%f_%b';<br />RESTORE DATABASE;<br />SWITCH DATAFILE ALL;<br />SWITCH TEMPFILE ALL;<br />RECOVER DATABASE;<br />}<br />EOF<br />sqlplus / as sysdba >> $LOGPATH/rman-${ORACLE_SID}-$Dt<<-EOF<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo01.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo01.log';<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo02.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo02.log';<br />ALTER DATABASE RENAME FILE '/u01/psoft/db/oradata/FSDMO92/redo03.log' TO '/rdsdbdata/db/FSDMO92_A/onlinelog/redo03.log';<br />alter database clear unarchived logfile group 1;<br />alter database clear unarchived logfile group 2;<br />alter database clear unarchived logfile group 3;<br />alter database open resetlogs;<br />EXIT<br />EOF<br /></pre> | DBA | 

### Passwörter aus Secrets Manager abrufen, Benutzer erstellen und Passwörter ändern
<a name="retrieve-passwords-from-secrets-manager-create-users-and-change-passwords"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Rufen Sie das Passwort von Secrets Manager ab. | Sie können diesen Schritt mithilfe der AWS-Konsole oder der AWS-CLI ausführen. Die folgenden Schritte zeigen Anweisungen für die Konsole.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Erstellen Sie den RDSADMIN-Benutzer. | `RDSADMIN`ist der Datenbankbenutzer für die Überwachung und Orchestrierung der Amazon RDS Custom DB-Instance. Da die Startdatenbank gelöscht und die Zieldatenbank mithilfe von RMAN aus der Quelle wiederhergestellt wurde, müssen Sie diesen Benutzer nach dem Wiederherstellungsvorgang neu erstellen, um sicherzustellen, dass die benutzerdefinierte Amazon RDS-Überwachung wie erwartet funktioniert. Sie müssen außerdem ein separates Profil und einen separaten Tablespace für den Benutzer erstellen. `RDSADMIN`[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 
| Erstellen Sie den Master-Benutzer. | Da die Startdatenbank gelöscht und die Zieldatenbank mithilfe von RMAN aus der Quelle wiederhergestellt wurde, müssen Sie den Masterbenutzer neu erstellen. In diesem Beispiel lautet der Hauptbenutzername. `admin`<pre>SQL> create user admin identified by <password>;<br />SQL> grant dba to admin</pre> | DBA | 
| Ändern Sie die Systemkennwörter. | Ändern Sie die Systemkennwörter, indem Sie das Passwort verwenden, das Sie von Secrets Manager abgerufen haben.<pre>SQL> alter user sys identified by xxxxxxxxxxx;<br />SQL> alter user system identified by xxxxxxxxxx;</pre>Wenn Sie diese Passwörter nicht ändern, zeigt Amazon RDS Custom die Fehlermeldung „Der Benutzer oder die Benutzeranmeldedaten für die Datenbanküberwachung haben sich geändert“ an. | DBA | 

### Konfigurieren Sie die TNS-Einträge für Amazon RDS Custom und PeopleSoft
<a name="configure-the-tns-entries-for-amazon-rds-custom-and-peoplesoft"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die Datei tnsnames. | Um von der Anwendungsebene aus eine Verbindung mit der Datenbank herzustellen, konfigurieren Sie die `tnsnames.ora` Datei so, dass Sie von der Anwendungsebene aus eine Verbindung zur Datenbank herstellen können. Im folgenden Beispiel können Sie sehen, dass es einen Softlink zu der `tnsnames.ora` Datei gibt, die Datei jedoch standardmäßig leer ist. <pre>$ cd /rdsdbbin/oracle/network/admin<br />$ ls -ltr<br />-rw-r--r-- 1 rdsdb database 1536 Feb 14  2018 shrept.lst<br />lrwxrwxrwx 1 rdsdb database   30 Apr  5 13:19 listener.ora -> /rdsdbdata/config/listener.ora<br />lrwxrwxrwx 1 rdsdb database   28 Apr  5 13:19 sqlnet.ora -> /rdsdbdata/config/sqlnet.ora<br />lrwxrwxrwx 1 rdsdb database   30 Apr  5 13:19 tnsnames.ora -> /rdsdbdata/config/tnsnames.ora</pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Erstellen Sie den SPfile-Softlink
<a name="create-the-spfile-softlink"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den SPFile-Softlink. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

### Führen Sie die Schritte nach der Migration durch
<a name="perform-post-migration-steps"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie das Schema, die Verbindungen und die Wartungsaufgaben. | Führen Sie die folgenden Aufgaben aus, um die Migration abzuschließen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-peoplesoft-to-amazon-rds-custom.html) | DBA | 

## Zugehörige Ressourcen
<a name="migrate-oracle-peoplesoft-to-amazon-rds-custom-resources"></a>
+ [Arbeiten mit Amazon RDS Custom](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-custom.html)
+ [Amazon RDS Custom for Oracle — Neue Kontrollfunktionen in der Datenbankumgebung](https://aws.amazon.com/blogs/aws/amazon-rds-custom-for-oracle-new-control-capabilities-in-database-environment/) (Blogbeitrag)
+ [Integrieren Sie Amazon RDS Custom for Oracle mit Amazon EFS](https://aws.amazon.com/blogs/database/integrate-amazon-rds-custom-for-oracle-with-amazon-efs/) (Blogbeitrag)
+ [Konfiguration von Amazon RDS als PeopleSoft Oracle-Datenbank](https://d1.awsstatic.com/whitepapers/configuring-amazon-rds-as-peoplesoft-database.pdf) (AWS-Whitepaper)

# Migrieren Sie die Oracle ROWID-Funktionalität zu PostgreSQL auf AWS
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws"></a>

*Rakesh Raghav und Ramesh Pathuri, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-summary"></a>

Dieses Muster beschreibt Optionen für die Migration der `ROWID` Pseudospaltenfunktionalität in Oracle Database zu einer PostgreSQL-Datenbank in Amazon Relational Database Service (Amazon RDS) for PostgreSQL, Amazon Aurora PostgreSQL-Compatible Edition oder Amazon Elastic Compute Cloud (Amazon). EC2

In einer Oracle-Datenbank ist die Pseudospalte eine physische Adresse einer Zeile in einer Tabelle`ROWID`. Diese Pseudospalte wird verwendet, um eine Zeile eindeutig zu identifizieren, auch wenn der Primärschlüssel in einer Tabelle nicht vorhanden ist. PostgreSQL hat eine ähnliche Pseudospalte namens`ctid`, aber sie kann nicht als verwendet werden. `ROWID` Wie in der [PostgreSQL-Dokumentation](https://www.postgresql.org/docs/current/ddl-system-columns.html) erklärt, `ctid` kann es sich ändern, wenn es aktualisiert wird oder nach jedem `VACUUM` Prozess.

Es gibt drei Möglichkeiten, die `ROWID` Pseudospaltenfunktionalität in PostgreSQL zu erstellen:
+ Verwenden Sie eine Primärschlüsselspalte, anstatt eine Zeile in einer Tabelle `ROWID` zu identifizieren.
+ Verwenden Sie einen logischen primary/unique Schlüssel (der ein zusammengesetzter Schlüssel sein kann) in der Tabelle. 
+ Fügen Sie eine Spalte mit automatisch generierten Werten hinzu und machen Sie sie zu einem primary/unique Schlüssel zum Nachahmen`ROWID`.

Dieses Muster führt Sie durch alle drei Implementierungen und beschreibt die Vor- und Nachteile der einzelnen Optionen.

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Erfahrung in prozeduraler Codierung Language/PostgreSQL (PL/pgSQL)
+ Quelle: Oracle-Datenbank
+ Ein Amazon RDS for PostgreSQL- oder Aurora PostgreSQL-kompatibler Cluster oder eine EC2 Instance zum Hosten der PostgreSQL-Datenbank

**Einschränkungen**
+ Dieses Muster bietet Behelfslösungen für die Funktionalität. `ROWID` PostgreSQL bietet kein Äquivalent zu `ROWID` in Oracle Database.

**Produktversionen**
+ PostgreSQL 11.9 oder höher

## Architektur
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-architecture"></a>

**Quelltechnologie-Stack**
+ Oracle-Datenbank

**Zieltechnologie-Stack**
+ Aurora PostgreSQL-kompatibel, Amazon RDS für PostgreSQL oder eine Instance mit einer PostgreSQL-Datenbank EC2 

![\[Konvertierung einer Oracle-Datenbank nach PostgreSQL auf AWS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9a2ce994-4f68-4975-aab2-796cc20a3c82/images/6e7c2ef6-f440-476a-9003-f1f166718e15.png)


**Implementierungsoptionen**

Es gibt drei Optionen, um die mangelnde `ROWID` Unterstützung in PostgreSQL zu umgehen, je nachdem, ob Ihre Tabelle einen Primärschlüssel oder einen eindeutigen Index, einen logischen Primärschlüssel oder ein Identitätsattribut hat. Ihre Wahl hängt von Ihren Projektzeitplänen, Ihrer aktuellen Migrationsphase und den Abhängigkeiten von Anwendungs- und Datenbankcode ab.


| 
| 
| Option | Description | Vorteile | Nachteile | 
| --- |--- |--- |--- |
| **Primärschlüssel oder eindeutiger Index** | Wenn Ihre Oracle-Tabelle über einen Primärschlüssel verfügt, können Sie die Attribute dieses Schlüssels verwenden, um eine Zeile eindeutig zu identifizieren.  | Keine Abhängigkeit von proprietären Datenbankfunktionen.Minimale Auswirkungen auf die Leistung, da Primärschlüsselfelder indexiert werden. | Erfordert Änderungen am Anwendungs- und Datenbankcode, der `ROWID` für den Wechsel zu Primärschlüsselfeldern erforderlich ist.  | 
| **Logischer primary/unique Schlüssel** | Wenn Ihre Oracle-Tabelle einen logischen Primärschlüssel hat, können Sie die Attribute dieses Schlüssels verwenden, um eine Zeile eindeutig zu identifizieren. Ein logischer Primärschlüssel besteht aus einem Attribut oder einer Gruppe von Attributen, die eine Zeile eindeutig identifizieren können, aber dieser Wert wird in der Datenbank nicht durch eine Einschränkung erzwungen. | Keine Abhängigkeit von proprietären Datenbankfunktionen. | Erfordert Änderungen am Anwendungs- und Datenbankcode, der `ROWID` für den Wechsel zu Primärschlüsselfeldern erforderlich ist.Erhebliche Auswirkung auf die Leistung, wenn die Attribute des logischen Primärschlüssels nicht indexiert werden. Sie können jedoch einen eindeutigen Index hinzufügen, um Leistungsprobleme zu vermeiden. | 
| **Identitätsattribut** | Wenn Ihre Oracle-Tabelle keinen Primärschlüssel hat, können Sie ein zusätzliches Feld als erstellen`GENERATED ALWAYS AS IDENTITY`. Dieses Attribut generiert immer dann einen eindeutigen Wert, wenn Daten in die Tabelle eingefügt werden, sodass es verwendet werden kann, um eine Zeile für DML-Operationen (Data Manipulation Language) eindeutig zu identifizieren. | Keine Abhängigkeit von proprietären Datenbankfunktionen.Die PostgreSQL-Datenbank füllt das Attribut auf und behält seine Einzigartigkeit bei. | Erfordert Änderungen am Anwendungs- und Datenbankcode, der für den Wechsel `ROWID` zum Identitätsattribut erforderlich ist.Erhebliche Auswirkung auf die Leistung, wenn das zusätzliche Feld nicht indexiert wird. Sie können jedoch einen Index hinzufügen, um Leistungsprobleme zu vermeiden. | 

## Tools
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-tools"></a>
+ [Amazon Relational Database Service (Amazon RDS) für PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen PostgreSQL-Datenbank in der AWS-Cloud.
+ [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 Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können. In diesem Muster können Sie die AWS-CLI verwenden, um SQL-Befehle über **pgAdmin** auszuführen.
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können.
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.

## Epen
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-epics"></a>

### Identifizieren Sie die Quelltabellen
<a name="identify-the-source-tables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie Oracle-Tabellen, die das `ROWID` Attribut verwenden. | Verwenden Sie das AWS Schema Conversion Tool (AWS SCT), um Oracle-Tabellen zu identifizieren, die über `ROWID` Funktionen verfügen. Weitere Informationen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.ToPostgreSQL.html#CHAP_Source.Oracle.ToPostgreSQL.ConvertRowID). –oder –Verwenden Sie in Oracle die `DBA_TAB_COLUMNS` Ansicht, um Tabellen mit einem `ROWID` Attribut zu identifizieren. Diese Felder können zum Speichern von alphanumerischen 10-Byte-Zeichen verwendet werden. Ermitteln Sie die Verwendung und konvertieren Sie diese gegebenenfalls in ein `VARCHAR` Feld. | DBA oder Entwickler | 
| Identifizieren Sie den Code, der auf diese Tabellen verweist. | Verwenden Sie AWS SCT, um einen Migrationsbewertungsbericht zu erstellen, um die Verfahren zu identifizieren, die betroffen sind von`ROWID`. Weitere Informationen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_AssessmentReport.html). –oder –Verwenden Sie in der Oracle-Quelldatenbank das Textfeld der `dba_source` Tabelle, um Objekte zu identifizieren, die `ROWID` Funktionen verwenden. | DBA oder Entwickler | 

### Ermitteln Sie die Verwendung von Primärschlüsseln
<a name="determine-primary-key-usage"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie Tabellen, die keine Primärschlüssel haben. | Verwenden Sie dies in der Oracle-Quelldatenbank, `DBA_CONSTRAINTS` um Tabellen zu identifizieren, die keine Primärschlüssel haben. Anhand dieser Informationen können Sie die Strategie für jede Tabelle festlegen. Beispiel:<pre>select dt.*<br />from dba_tables dt<br />where not exists (select 1<br />                  from all_constraints ct<br />                  where ct.owner = Dt.owner<br />                    and ct.table_name = Dt.table_name<br />                    and ct.constraint_type = 'P'<br />                  )<br />and dt.owner = '{schema}'</pre> | DBA oder Entwickler | 

### Identifizieren Sie die Lösung und wenden Sie sie an
<a name="identify-and-apply-the-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wenden Sie Änderungen für Tabellen an, die einen definierten oder logischen Primärschlüssel haben.  | Nehmen Sie die im Abschnitt [Zusätzliche Informationen](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional) aufgeführten Änderungen am Anwendungs- und Datenbankcode vor, um einen eindeutigen Primärschlüssel oder einen logischen Primärschlüssel zur Identifizierung einer Zeile in Ihrer Tabelle zu verwenden. | DBA oder Entwickler | 
| Fügen Sie Tabellen, die keinen definierten oder logischen Primärschlüssel haben, ein zusätzliches Feld hinzu. | Fügen Sie ein Attribut des Typs hinzu`GENERATED ALWAYS AS IDENTITY`. Nehmen Sie die Änderungen an der Anwendung und dem Datenbankcode vor, die im Abschnitt [Zusätzliche Informationen](#migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional) aufgeführt sind. | DBA oder Entwickler | 
| Fügen Sie bei Bedarf einen Index hinzu. | Fügen Sie dem zusätzlichen Feld oder dem logischen Primärschlüssel einen Index hinzu, um die SQL-Leistung zu verbessern. | DBA oder Entwickler | 

## Zugehörige Ressourcen
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-resources"></a>
+ [PostgreSQL CTID (PostgreSQL-Dokumentation](https://www.postgresql.org/docs/current/ddl-system-columns.html))
+ [Generierte Spalten](https://www.postgresql.org/docs/current/ddl-generated-columns.html) (PostgreSQL-Dokumentation)
+ [ROWID-Pseudospalte (](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ROWID-Pseudocolumn.html#GUID-F6E0FBD2-983C-495D-9856-5E113A17FAF1)Oracle-Dokumentation)

## Zusätzliche Informationen
<a name="migrate-oracle-rowid-functionality-to-postgresql-on-aws-additional"></a>

Die folgenden Abschnitte enthalten Oracle- und PostgreSQL-Codebeispiele, um die drei Ansätze zu veranschaulichen.

**Szenario 1: Verwendung eines eindeutigen Primärschlüssels**

In den folgenden Beispielen erstellen Sie die Tabelle `testrowid_s1` mit `emp_id` als Primärschlüssel.

*Oracle-Code:*

```
create table testrowid_s1 (emp_id integer, name varchar2(10), CONSTRAINT testrowid_pk PRIMARY KEY (emp_id));
INSERT INTO testrowid_s1(emp_id,name) values (1,'empname1');
INSERT INTO testrowid_s1(emp_id,name) values (2,'empname2');
INSERT INTO testrowid_s1(emp_id,name) values (3,'empname3');
INSERT INTO testrowid_s1(emp_id,name) values (4,'empname4');
commit;

SELECT rowid,emp_id,name FROM testrowid_s1;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3pAAAAAAAMOAAA          1 empname1
AAAF3pAAAAAAAMOAAB          2 empname2
AAAF3pAAAAAAAMOAAC          3 empname3
AAAF3pAAAAAAAMOAAD          4 empname4

UPDATE testrowid_s1 SET name = 'Ramesh' WHERE rowid = 'AAAF3pAAAAAAAMOAAB' ;
commit;

SELECT rowid,emp_id,name FROM testrowid_s1;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3pAAAAAAAMOAAA          1 empname1
AAAF3pAAAAAAAMOAAB          2 Ramesh
AAAF3pAAAAAAAMOAAC          3 empname3
AAAF3pAAAAAAAMOAAD          4 empname4
```

*PostgreSQL-Code:*

```
CREATE TABLE public.testrowid_s1
(
    emp_id integer,
    name character varying,
    primary key (emp_id)
);

insert into public.testrowid_s1 (emp_id,name) values 
(1,'empname1'),(2,'empname2'),(3,'empname3'),(4,'empname4');

select emp_id,name from testrowid_s1;
 emp_id |   name   
--------+----------
      1 | empname1
      2 | empname2
      3 | empname3
      4 | empname4

update testrowid_s1 set name = 'Ramesh' where emp_id = 2 ;

select emp_id,name from testrowid_s1;
 emp_id |   name   
--------+----------
      1 | empname1
      3 | empname3
      4 | empname4
      2 | Ramesh
```

**Szenario 2: Verwendung eines logischen Primärschlüssels**

In den folgenden Beispielen erstellen Sie die Tabelle `testrowid_s2` `emp_id` als logischen Primärschlüssel.

*Oracle-Code:*

```
create table testrowid_s2 (emp_id integer, name varchar2(10) );
INSERT INTO testrowid_s2(emp_id,name) values (1,'empname1');
INSERT INTO testrowid_s2(emp_id,name) values (2,'empname2');
INSERT INTO testrowid_s2(emp_id,name) values (3,'empname3');
INSERT INTO testrowid_s2(emp_id,name) values (4,'empname4');
commit;

SELECT rowid,emp_id,name FROM testrowid_s2;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3rAAAAAAAMeAAA          1 empname1
AAAF3rAAAAAAAMeAAB          2 empname2
AAAF3rAAAAAAAMeAAC          3 empname3
AAAF3rAAAAAAAMeAAD          4 empname4

UPDATE testrowid_s2 SET name = 'Ramesh' WHERE rowid = 'AAAF3rAAAAAAAMeAAB' ;
commit;

SELECT rowid,emp_id,name FROM testrowid_s2;
ROWID                  EMP_ID NAME
------------------ ---------- ----------
AAAF3rAAAAAAAMeAAA          1 empname1
AAAF3rAAAAAAAMeAAB          2 Ramesh
AAAF3rAAAAAAAMeAAC          3 empname3
AAAF3rAAAAAAAMeAAD          4 empname4
```

*PostgreSQL-Code:*

```
CREATE TABLE public.testrowid_s2
(
    emp_id integer,
    name character varying
);

insert into public.testrowid_s2 (emp_id,name) values 
(1,'empname1'),(2,'empname2'),(3,'empname3'),(4,'empname4');

select emp_id,name from testrowid_s2;
 emp_id |   name   
--------+----------
      1 | empname1
      2 | empname2
      3 | empname3
      4 | empname4

update testrowid_s2 set name = 'Ramesh' where emp_id = 2 ;

select emp_id,name from testrowid_s2;
 emp_id |   name   
--------+----------
      1 | empname1
      3 | empname3
      4 | empname4
      2 | Ramesh
```

**Szenario 3: Verwendung eines Identitätsattributs**

In den folgenden Beispielen erstellen Sie die Tabelle `testrowid_s3` ohne Primärschlüssel und mithilfe eines Identitätsattributs.

*Oracle-Code:*

```
create table testrowid_s3 (name varchar2(10));
INSERT INTO testrowid_s3(name) values ('empname1');
INSERT INTO testrowid_s3(name) values ('empname2');
INSERT INTO testrowid_s3(name) values ('empname3');
INSERT INTO testrowid_s3(name) values ('empname4');
commit;

SELECT rowid,name FROM testrowid_s3;
ROWID              NAME
------------------ ----------
AAAF3sAAAAAAAMmAAA empname1
AAAF3sAAAAAAAMmAAB empname2
AAAF3sAAAAAAAMmAAC empname3
AAAF3sAAAAAAAMmAAD empname4

UPDATE testrowid_s3 SET name = 'Ramesh' WHERE rowid = 'AAAF3sAAAAAAAMmAAB' ;
commit;

SELECT rowid,name FROM testrowid_s3;
ROWID              NAME
------------------ ----------
AAAF3sAAAAAAAMmAAA empname1
AAAF3sAAAAAAAMmAAB Ramesh
AAAF3sAAAAAAAMmAAC empname3
AAAF3sAAAAAAAMmAAD empname4
```

*PostgreSQL-Code:*

```
CREATE TABLE public.testrowid_s3
(
    rowid_seq bigint generated always as identity,
    name character varying
);

insert into public.testrowid_s3 (name) values 
('empname1'),('empname2'),('empname3'),('empname4');

select rowid_seq,name from testrowid_s3;
 rowid_seq |   name   
-----------+----------
         1 | empname1
         2 | empname2
         3 | empname3
         4 | empname4

update testrowid_s3 set name = 'Ramesh' where rowid_seq = 2 ;

select rowid_seq,name from testrowid_s3;
 rowid_seq |   name   
-----------+----------
         1 | empname1
         3 | empname3
         4 | empname4
         2 | Ramesh
```

# Migrieren Sie Oracle-Datenbank-Fehlercodes in eine Amazon Aurora PostgreSQL-kompatible Datenbank
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database"></a>

*Sai Parthasaradhi und Veeranjaneyulu Grandhi, Amazon Web Services*

## Zusammenfassung
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-summary"></a>

Dieses Muster zeigt, wie Oracle Database-Fehlercodes mithilfe einer vordefinierten Metadatentabelle in eine [Amazon Aurora PostgreSQL-kompatible Edition-Datenbank](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) migriert werden.

Oracle-Datenbankfehlercodes haben nicht immer einen entsprechenden PostgreSQL-Fehlercode. Dieser Unterschied in den Fehlercodes kann es schwierig machen, die Verarbeitungslogik der Prozeduren oder Funktionen in der PostgreSQL-Zielarchitektur zu konfigurieren.

Sie können den Vorgang vereinfachen, indem Sie die Fehlercodes der Quell- und Zieldatenbank, die für Ihr PL/pgSQL Programm von Bedeutung sind, in einer Metadatentabelle speichern. Konfigurieren Sie dann die Tabelle so, dass gültige Oracle Database-Fehlercodes gekennzeichnet und sie ihren PostgreSQL-Entsprechungen zugeordnet werden, bevor Sie mit der verbleibenden Prozesslogik fortfahren. Wenn der Oracle-Datenbank-Fehlercode nicht in der Metadatentabelle enthalten ist, wird der Prozess mit der Ausnahme beendet. Anschließend können Sie die Fehlerdetails manuell überprüfen und den neuen Fehlercode zur Tabelle hinzufügen, falls Ihr Programm dies erfordert.

Mit dieser Konfiguration kann Ihre Amazon Aurora PostgreSQL-kompatible Datenbank Fehler genauso behandeln wie Ihre Oracle-Quelldatenbank.

**Anmerkung**  
Die Konfiguration einer PostgreSQL-Datenbank für die korrekte Verarbeitung von Oracle-Datenbank-Fehlercodes erfordert normalerweise Änderungen an der Datenbank und dem Anwendungscode.

## Voraussetzungen und Einschränkungen
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Oracle-Quelldatenbank mit laufenden Instance- und Listener-Services
+ Ein Amazon Aurora PostgreSQL-kompatibler Cluster, der betriebsbereit ist
+ Vertrautheit mit Oracle Database
+ Vertrautheit mit PostgreSQL-Datenbanken

## Architektur
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-architecture"></a>

Das folgende Diagramm zeigt ein Beispiel für einen Amazon Aurora PostgreSQL-kompatiblen Datenbank-Workflow für die Validierung und Behandlung von Datenfehlercodes:

![\[Validierung und Behandlung von Datenfehlercodes für eine Aurora PostgreSQL-kompatible Datenbank.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/82751f40-2fd9-4ce7-ab61-0874552d857b/images/b7ab627e-8f34-4635-8660-93c5c80ce38d.png)


Das Diagramm zeigt den folgenden Workflow:

1. Eine Tabelle enthält die Fehlercodes und Klassifizierungen von Oracle Database sowie die entsprechenden PostgreSQL-Fehlercodes und Klassifizierungen. Die Tabelle enthält eine **valid\$1error-Spalte, in der klassifiziert wird, ob bestimmte, vordefinierte Fehlercodes** gültig sind oder nicht.

1. **Wenn eine PL/pgSQL Funktion (**func\$1processdata**) eine Ausnahme auslöst, ruft sie eine zweite Funktion auf (error\$1validation). PL/pgSQL **

1. Die Funktion **error\$1validation** akzeptiert den Fehlercode der Oracle-Datenbank als Eingabeargument. Anschließend überprüft die Funktion den eingehenden Fehlercode anhand der Tabelle, um festzustellen, ob der Fehler in der Tabelle enthalten ist.

1. Wenn der Oracle Database-Fehlercode in der Tabelle enthalten ist, gibt die Funktion **error\$1validation** den Wert **TRUE** zurück und die Prozesslogik wird fortgesetzt. Wenn der Fehlercode nicht in der Tabelle enthalten ist, gibt die Funktion einen **FALSE-Wert** zurück und die Prozesslogik wird mit einer Ausnahme beendet.

1. Wenn die Funktion einen **FALSE-Wert** zurückgibt, werden die Fehlerdetails manuell vom Funktionsleiter der Anwendung überprüft, um festzustellen, ob sie gültig sind.

1. Der neue Fehlercode wird dann entweder manuell zur Tabelle hinzugefügt oder nicht. Wenn der Fehlercode gültig ist und der Tabelle hinzugefügt wurde, gibt die Funktion **error\$1validation** beim nächsten Auftreten der Ausnahme den Wert **TRUE** zurück. Wenn der Fehlercode nicht gültig ist und der Prozess beim Auftreten der Ausnahme fehlschlagen muss, wird der Fehlercode nicht zur Tabelle hinzugefügt.

**Technologie-Stack**
+ Amazon Aurora PostgreSQL
+ pgAdmin
+ Oracle SQL Developer

## Tools
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-tools"></a>
+ [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.
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungs- und Entwicklungstool für PostgreSQL. Es bietet eine grafische Oberfläche, die die Erstellung, Wartung und Verwendung von Datenbankobjekten vereinfacht.
+ [Oracle SQL Developer](https://www.oracle.com/in/database/technologies/appdev/sqldeveloper-landing.html) ist eine kostenlose, integrierte Entwicklungsumgebung, die die Entwicklung und Verwaltung von Oracle Database sowohl in herkömmlichen als auch in Cloud-Umgebungen vereinfacht.

## Epen
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-epics"></a>

### Migrieren Sie Oracle-Datenbank-Fehlercodes in Ihre Amazon Aurora PostgreSQL-kompatible Datenbank
<a name="migrate-oracle-database-error-codes-to-your-amazon-aurora-postgresql-compatible-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Tabelle in der Amazon Aurora PostgreSQL-kompatiblen Datenbank. | Führen Sie den folgenden PostgreSQL-Befehl [CREATE TABLE aus](https://www.postgresql.org/docs/current/sql-createtable.html):<pre>(<br /><br />    source_error_code numeric NOT NULL,<br /><br />    target_error_code character varying NOT NULL,<br /><br />    valid_error character varying(1) NOT NULL<br /><br />); </pre> | PostgreSQL-Entwickler, Oracle, RDS/Aurora für PostgreSQL | 
| Fügen Sie der Tabelle PostgreSQL-Fehlercodes und die entsprechenden Oracle-Datenbank-Fehlercodes hinzu. | Führen Sie den PostgreSQL-Befehl [INSERT](https://www.postgresql.org/docs/current/sql-insert.html) aus, um die erforderlichen Fehlercodewerte zur Tabelle **error\$1codes** hinzuzufügen.Die PostgreSQL-Fehlercodes müssen den zeichenvariablen Datentyp (**SQLSTATE-Wert**) verwenden. Die Oracle-Fehlercodes müssen den numerischen Datentyp (**SQLCODE-Wert**) verwenden.**Beispiel für Insert-Anweisungen:**<pre>insert into error_codes values (-1817,'22007','Y');<br />insert into error_codes values (-1816,'22007','Y');<br />insert into error_codes values (-3114,'08006','N');</pre>Wenn Sie Oracle-spezifische Java Database Connectivity (JDBC) -Ausnahmen abfangen, müssen Sie diese Ausnahmen entweder durch generische datenbankübergreifende Ausnahmen ersetzen oder zu PostgreSQL-spezifischen Ausnahmen wechseln. | PostgreSQL-Entwickler, Oracle, RDS/Aurora für PostgreSQL | 
| Erstellen Sie eine PL/pgSQL Funktion zur Validierung von Fehlercodes. | Erstellen Sie eine PL/pgSQL Funktion, indem Sie den PostgreSQL-Befehl [CREATE FUNCTION](https://www.postgresql.org/docs/current/sql-createfunction.html) ausführen. Stellen Sie sicher, dass die Funktion Folgendes tut:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.html) | PostgreSQL-Entwickler, Oracle, RDS/Aurora für PostgreSQL | 
| Überprüfen Sie manuell neue Fehlercodes, während sie von der Funktion aufgezeichnet werden. PL/pgSQL  | Überprüfen Sie die neuen Fehlercodes manuell.**Wenn ein neuer Fehlercode für Ihren Anwendungsfall gültig ist, fügen Sie ihn der Tabelle **error\$1codes** hinzu, indem Sie den PostgreSQL INSERT-Befehl ausführen.**–oder–Wenn ein neuer Fehlercode für Ihren Anwendungsfall nicht gültig ist, fügen Sie ihn nicht der Tabelle hinzu. Die Prozesslogik schlägt weiterhin fehl und wird mit einer Ausnahme beendet, wenn der Fehler auftritt. | PostgreSQL-Entwickler, Oracle, RDS/Aurora für PostgreSQL | 

## Zugehörige Ressourcen
<a name="migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database-resources"></a>

[Anhang A. PostgreSQL-Fehlercodes](https://www.postgresql.org/docs/11/errcodes-appendix.html) (PostgreSQL-Dokumentation)

[Datenbank-Fehlermeldungen](https://docs.oracle.com/cd/E11882_01/server.112/e17766/toc.htm) (Oracle Database-Dokumentation)

# Migrieren Sie SAP ASE auf Amazon EC2 zu Amazon Aurora PostgreSQL-kompatibel mit AWS SCT und AWS DMS
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms"></a>

*Amit Kumar und Ankit Gupta, Amazon Web Services*

## Zusammenfassung
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-summary"></a>

Dieses Muster beschreibt, wie eine SAP Adaptive Server Enterprise (SAP ASE) -Datenbank, die auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance gehostet wird, mithilfe des AWS Schema Conversion Tool (AWS SCT) und des AWS Database Migration Service (AWS DMS) zur Amazon Aurora PostgreSQL-kompatiblen Edition migriert wird. Das Muster konzentriert sich sowohl auf DDL-Konvertierungen (Data Definition Language) für gespeicherte Objekte als auch auf Datenmigration.

Aurora PostgreSQL-kompatibel unterstützt OLTP-Workloads (Online Transaction Processing). Dieser verwaltete Service bietet Konfigurationen, die bei Bedarf automatisch skaliert werden. Er kann Ihre Datenbank je nach den Anforderungen Ihrer Anwendung automatisch starten, herunterfahren, hoch- oder herunterskalieren. Sie können Ihre Datenbank in der Cloud ausführen, ohne Datenbankinstanzen zu verwalten. Aurora PostgreSQL-kompatibel bietet eine kostengünstige Option für seltene, intermittierende oder unvorhersehbare Workloads.

Der Migrationsprozess besteht aus zwei Hauptphasen:
+ Konvertieren des Datenbankschemas mithilfe von AWS SCT
+ Migrieren der Daten mithilfe von AWS DMS

Detaillierte Anweisungen für beide Phasen finden Sie im Abschnitt *Epics*. Informationen zur Behebung von Problemen, die spezifisch für die Verwendung von AWS DMS mit SAP ASE-Datenbanken sind, finden Sie unter [Problembehandlung mit SAP ASE](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.SAP) in der AWS DMS-Dokumentation.

## Voraussetzungen und Einschränkungen
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine SAP ASE-Quelldatenbank auf einer EC2 Instance, in der Server-, Datenbank- und Listener-Services aktiv sind
+ Eine Aurora PostgreSQL-kompatible Zieldatenbank

**Einschränkungen**
+ Die Portnummer für Verbindungen muss 5432 sein.
+ Die Funktion [huge\$1pages](https://www.postgresql.org/docs/9.6/static/runtime-config-resource.html) ist standardmäßig aktiviert, kann aber geändert werden.
+ Point-in-time Die Granularität der Wiederherstellung (PITR) beträgt 5 Minuten.
+ Eine regionsübergreifende Replikation ist derzeit nicht verfügbar.
+ Die maximale Speichergröße für eine Aurora-Datenbank beträgt 128 TiB.
+ Sie können bis zu 15 Read Replicas erstellen.
+ Die Tabellengrößenbeschränkung wird nur durch die Größe des Aurora-Cluster-Volumes eingeschränkt, sodass die maximale Tabellengröße für einen Aurora PostgreSQL-kompatiblen DB-Cluster 32 TiB beträgt. Wir empfehlen, dass Sie sich an bewährte Methoden für das Tabellendesign halten, z. B. das Partitionieren großer Tabellen.

**Produktversionen**
+ Quelldatenbank: AWS DMS unterstützt derzeit SAP ASE 15, 15.5, 15.7 und 16.x. Aktuelle Informationen zur Unterstützung der SAP ASE-Version finden Sie im [AWS DMS-Benutzerhandbuch](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html).
+ Zieldatenbank: PostgreSQL 9.4 und höher (für Version 9.x), 10.x, 11.x, 12.x, 13.x und 14.x. Die neuesten unterstützten PostgreSQL-Versionen finden Sie im [AWS DMS-Benutzerhandbuch](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html).
+ Amazon Aurora 1.x oder höher. Die neuesten Informationen finden Sie in der [Aurora-Dokumentation unter Aurora PostgreSQL-kompatible Releases und Engine-Versionen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html).

## Architektur
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-architecture"></a>

**Quelltechnologie-Stack**
+ SAP ASE-Datenbank läuft auf Amazon EC2

**Zieltechnologie-Stack**
+ Aurora PostgreSQL-kompatible Datenbank

**Migrationsarchitektur**

![\[Migration einer SAP ASE-Datenbank zu Aurora PostgreSQL-kompatibel mithilfe von AWS SCT und AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/07fbdea1-0242-40ae-8e5f-2ce4a620a047/images/a3b018f3-2e7b-4c37-a218-870c56132acb.png)


## Tools
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-tools"></a>
+ [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.
+ Das [AWS Schema Conversion Tool (AWS SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) unterstützt heterogene Datenbankmigrationen, indem das Quelldatenbankschema und der Großteil des benutzerdefinierten Codes automatisch in ein Format konvertiert werden, das mit der Zieldatenbank kompatibel ist.
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt mehrere verschiedene Quell- und Zieldatenbanken. Weitere Informationen finden Sie unter [Quellen für Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.html) und [Ziele für die Datenmigration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.html) in der AWS DMS-Dokumentation. Für die umfassendste Versions- und Funktionsunterstützung empfehlen wir Ihnen, die neueste Version von AWS DMS zu verwenden. 

## Epen
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-epics"></a>

### Richte die Umgebung ein
<a name="set-up-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie den Netzwerkzugriff in der EC2 Quellinstanz. | Richten Sie Sicherheitsgruppen in der EC2 Instanz ein, die Ihre SAP ASE-Quelldatenbank hostet.Anweisungen finden Sie in der [ EC2 Amazon-Dokumentation unter EC2 Amazon-Sicherheitsgruppen für Linux-Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html?icmpid=docs_ec2_console). | Systemadministrator | 
| Erstellen Sie Ihren Aurora PostgreSQL-kompatiblen Ziel-DB-Cluster. | Installieren, konfigurieren und starten Sie einen Aurora PostgreSQL-kompatiblen Cluster für Ihre Zieldatenbank.Weitere Informationen finden Sie unter [Erstellen eines Amazon Aurora Aurora-DB-Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in der Aurora-Dokumentation. | DBA | 
| Richten Sie die Autorisierung für den Ziel-DB-Cluster ein. | Richten Sie Sicherheitsgruppen und Firewalls für die Zieldatenbank ein.Anweisungen finden Sie in der Aurora-Dokumentation unter [Erstellen eines Amazon Aurora Aurora-DB-Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html). | DBA, Systemadministrator | 

### Konvertieren Sie Ihr Datenbankschema mit AWS SCT
<a name="convert-your-database-schema-with-aws-sct"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie AWS SCT. | Starten Sie AWS SCT, indem Sie den Anweisungen in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_GettingStarted.html) folgen.AWS SCT bietet eine projektbasierte Benutzeroberfläche zur automatischen Konvertierung des Datenbankschemas Ihrer SAP ASE-Quelldatenbank in ein Format, das mit Ihrer Aurora PostgreSQL-kompatiblen Ziel-DB-Instance kompatibel ist. | DBA | 
| Erstellen Sie AWS SCT-Endpoints. | Erstellen Sie Endpunkte für die Quell-SAP-ASE- und Ziel-PostgreSQL-Datenbanken.Anweisungen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AddServers). | DBA | 
| Erstellen Sie einen Bewertungsbericht. | Erstellen Sie einen Bewertungsbericht zur Datenbankmigration, um die Migration zu bewerten und alle inkompatiblen Objekte und Funktionen zu erkennen.Anweisungen finden Sie in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html#CHAP_UserInterface.AssessmentReport). | DBA | 
| Konvertiert das Schema. | Konvertieren Sie das Datenbankschema, indem Sie den Anweisungen in der [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Converting.html) folgen. | DBA | 
| Datenbankobjekte validieren. | Wenn AWS SCT ein Datenbankobjekt nicht konvertieren kann, identifiziert es seinen Namen und andere Details. Sie müssen diese Objekte manuell konvertieren.Um diese Diskrepanzen zu identifizieren, folgen Sie den Anweisungen im AWS-Blogbeitrag [Datenbankobjekte nach der Migration von SAP ASE zu Amazon RDS for PostgreSQL oder Amazon Aurora PostgreSQL validieren](https://aws.amazon.com/blogs/database/validate-database-objects-after-migrating-from-sap-ase-to-amazon-rds-for-postgresql-or-amazon-aurora-postgresql/). | DBA | 

### Analysieren Sie die AWS DMS-Migration
<a name="analyze-the-aws-dms-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Quell- und Zieldatenbankversionen. | Überprüfen Sie die SAP ASE-Datenbankversionen auf Kompatibilität mit AWS DMS. Weitere Informationen finden Sie unter [Quellen für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Sources.html#CHAP_Introduction.Sources.title) und [Ziele für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Introduction.Targets.html) in der AWS DMS-Dokumentation. | DBA | 
| Identifizieren Sie die Anforderungen für den Speichertyp und die Kapazität. | Wählen Sie die geeignete Speicherkapazität für die Zieldatenbank auf der Grundlage der Größe Ihrer Quelldatenbank aus. | DBA, Systemadministrator | 
| Wählen Sie den Instanztyp, die Kapazität und andere Funktionen der Replikationsinstanz aus. | Wählen Sie den Instanztyp, die Kapazität, die Speicherfunktionen und die Netzwerkfunktionen, die Ihren Anforderungen entsprechen.Weitere Informationen finden Sie in [der AWS DMS-Dokumentation unter Auswahl der richtigen AWS DMS-Replikationsinstanz für Ihre Migration](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html). | DBA, Systemadministrator | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff. | Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken.Folgen Sie den Anweisungen unter [Einrichten eines Netzwerks für eine Replikationsinstanz](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.VPC.html) in der AWS DMS-Dokumentation. | DBA, Systemadministrator | 

### Migrieren Sie die Daten
<a name="migrate-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie die Daten, indem Sie eine Migrationsaufgabe in AWS DMS erstellen. | Um Daten zu migrieren, erstellen Sie eine Aufgabe und folgen Sie den Anweisungen in der [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.Creating.html). Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten. | DBA | 
| Validieren Sie die Daten. | Um zu überprüfen, ob Ihre Daten korrekt von der Quelldatenbank zur Zieldatenbank migriert wurden, befolgen Sie die [Datenvalidierungsrichtlinien](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) in der AWS DMS-Dokumentation. | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. | Wählen Sie eine der [sieben Strategien (7Rs)](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/planning-phase.html) für die Migration von Anwendungen in die Cloud. | DBA, App-Besitzer, Systemadministrator | 
| Folgen Sie der Strategie zur Anwendungsmigration. | Führen Sie die vom Anwendungsteam identifizierten Datenbankaufgaben aus, einschließlich der Aktualisierung der DNS-Verbindungsdetails für die Zieldatenbank und der Aktualisierung dynamischer Abfragen.  | DBA, App-Besitzer, Systemadministrator | 

### Wechseln Sie zur Zieldatenbank
<a name="cut-over-to-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. | Wechseln Sie die Verbindung von der Quelldatenbank zur Zieldatenbank. Weitere Informationen finden Sie im Abschnitt [Cutover](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/cut-over.html) der *Migrationsstrategie für relationale Datenbanken*. | DBA, App-Besitzer, Systemadministrator | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die temporären AWS-Ressourcen herunter. | Beenden Sie alle Migrationsaufgaben, Replikationsinstanzen, Endpunkte und andere AWS SCT- und AWS DMS-Ressourcen. Weitere Informationen finden Sie in [der AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.Replication.html#CHAP_GettingStarted.Replication.Deleting). | DBA, Systemadministrator | 
| Überprüfen und validieren Sie die Projektdokumente. | Überprüfen Sie alle Schritte in der Projektdokumentation, um sicherzustellen, dass alle Aufgaben erfolgreich abgeschlossen wurden. | DBA, App-Besitzer, Systemadministrator | 
| Schließt das Projekt. | Schließen Sie das Migrationsprojekt und geben Sie Feedback. | DBA, App-Besitzer, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms-resources"></a>

**Referenzen**
+ [Verschlüsselte Verbindungen für PostgreSQL-DB-Instances in Amazon RDS aktivieren](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/enable-encrypted-connections-for-postgresql-db-instances-in-amazon-rds.html) (AWS Prescriptive Guidance)
+ [Transport von PostgreSQL-Datenbanken zwischen zwei Amazon RDS-DB-Instances mithilfe von pg\$1transport](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg_transport.html) (AWS Prescriptive Guidance)
+ [Amazon-Aurora-Preise](https://aws.amazon.com/rds/aurora/pricing/)
+ [Bewährte Methoden mit Amazon Aurora PostgreSQL-Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraPostgreSQL.BestPractices.html) (Amazon Aurora Aurora-Dokumentation)
+ [AWS SCT-Dokumentation](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Verwenden einer SAP ASE-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SAP.html)

**Tutorials und Videos**
+ [Erste Schritte mit AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [AWS Database Migration Service](https://www.youtube.com/watch?v=zb4GcjEdl8U) (Video)

# Migrieren Sie Windows-SSL-Zertifikate mithilfe von ACM zu einem Application Load Balancer
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm"></a>

*Chandra Sekhar Yaratha und Igor Kovalchuk, Amazon Web Services*

## Zusammenfassung
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-summary"></a>

Das Muster enthält Anleitungen zur Verwendung von AWS Certificate Manager (ACM) zur Migration vorhandener Secure Sockets Layer (SSL) -Zertifikate von Websites, die auf lokalen Servern oder Amazon Elastic Compute Cloud (Amazon EC2) -Instances auf Microsoft Internet Information Services (IIS) gehostet werden. Die SSL-Zertifikate können dann mit Elastic Load Balancing auf AWS verwendet werden. 

SSL schützt Ihre Daten, bestätigt Ihre Identität, sorgt für bessere Platzierungen in Suchmaschinen, trägt zur Erfüllung der Anforderungen des Payment Card Industry Data Security Standard (PCI DSS) bei und stärkt das Kundenvertrauen. Entwickler und IT-Teams, die diese Workloads verwalten, möchten, dass ihre Webanwendungen und Infrastruktur, einschließlich des IIS-Servers und des Windows-Servers, ihren grundlegenden Richtlinien entsprechen.

Dieses Muster umfasst den manuellen Export vorhandener SSL-Zertifikate aus Microsoft IIS, deren Konvertierung vom PFX-Format (Personal Information Exchange) in das von ACM unterstützte PEM-Format (Private Enhanced Mail) und das anschließende Importieren in ACM in Ihrem AWS-Konto. Außerdem wird beschrieben, wie Sie einen Application Load Balancer für Ihre Anwendung erstellen und den Application Load Balancer so konfigurieren, dass er Ihre importierten Zertifikate verwendet. HTTPS-Verbindungen werden dann auf dem Application Load Balancer beendet, und Sie benötigen keinen weiteren Konfigurationsaufwand auf dem Webserver. Weitere Informationen finden Sie unter [Einen HTTPS-Listener für Ihren Application Load Balancer erstellen](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html).

Windows-Server verwenden PFX- oder .P12-Dateien, um die öffentliche Schlüsseldatei (SSL-Zertifikat) und ihre eindeutige private Schlüsseldatei zu speichern. Die Zertifizierungsstelle (CA) stellt Ihnen Ihre öffentliche Schlüsseldatei zur Verfügung. Sie verwenden Ihren Server, um die zugehörige private Schlüsseldatei zu generieren, in der die Certificate Signing Request (CSR) erstellt wurde.

## Voraussetzungen und Einschränkungen
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine virtuelle private Cloud (VPC) auf AWS mit mindestens einem privaten und einem öffentlichen Subnetz in jeder Availability Zone, die von Ihren Zielen verwendet wird
+ IIS-Version 8.0 oder höher, läuft auf Windows Server 2012 oder höher
+ Eine Webanwendung, die auf IIS ausgeführt wird
+ Administratorzugriff auf den IIS-Server

## Architektur
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-architecture"></a>

**Quelltechnologie-Stack**
+ IIS-Webserver-Implementierung mit SSL, um sicherzustellen, dass Daten sicher in einer verschlüsselten Verbindung (HTTPS) übertragen werden 

**Quellarchitektur**

![\[Quellarchitektur für die Migration von Windows-SSL-Zertifikaten zu Application Load Balancer mithilfe von ACM\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/e63efb6f-205b-4e20-a043-6bc954470191.png)


**Zieltechnologie-Stack**
+ ACM-Zertifikate in Ihrem AWS-Konto
+ Ein Application Load Balancer, der für die Verwendung importierter Zertifikate konfiguriert ist
+ Windows Server-Instanzen in den privaten Subnetzen

**Zielarchitektur**

![\[Zielarchitektur für die Migration von Windows-SSL-Zertifikaten zu Application Load Balancer mithilfe von ACM\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/cad6e465-da39-4819-970e-10e1c30e0a1f/images/45ac7fba-fbad-4c74-9b1f-80ca212dae08.png)


 

## Tools
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-tools"></a>
+ [AWS Certificate Manager (ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) unterstützt Sie bei der Erstellung, Speicherung und Erneuerung öffentlicher und privater SSL/TLS X.509-Zertifikate und -Schlüssel, die Ihre AWS-Websites und -Anwendungen schützen.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) verteilt eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele. Sie können beispielsweise den Datenverkehr auf EC2 Instances, Container und IP-Adressen in einer oder mehreren Availability Zones verteilen.

## Best Practices
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-best-practices"></a>
+ Erzwingen Sie Verkehrsumleitungen von HTTP zu HTTPS.
+ Konfigurieren Sie Sicherheitsgruppen für Ihren Application Load Balancer ordnungsgemäß, um eingehenden Datenverkehr nur zu bestimmten Ports zuzulassen.
+ Starten Sie Ihre EC2 Instances in verschiedenen Availability Zones, um eine hohe Verfügbarkeit sicherzustellen.
+ Konfigurieren Sie die Domain Ihrer Anwendung so, dass sie auf den DNS-Namen des Application Load Balancers statt auf dessen IP-Adresse verweist.
+ [Stellen Sie sicher, dass für den Application Load Balancer Integritätsprüfungen auf Anwendungsebene konfiguriert sind.](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html)
+ Konfigurieren Sie den Schwellenwert für Integritätsprüfungen.
+ Verwenden Sie [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/), um den Application Load Balancer zu überwachen.

## Epen
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-epics"></a>

### Exportieren Sie eine PFX-Datei
<a name="export-a-pfx-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Exportieren Sie die PFX-Datei von Windows Server. | So exportieren Sie das SSL-Zertifikat als PFX-Datei aus dem lokalen IIS-Manager in Windows Server:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)Ihre PFX-Datei sollte jetzt an dem von Ihnen angegebenen Speicherort und Pfad gespeichert werden. | Systemadministrator | 

### Konvertieren Sie das PFX-kodierte Zertifikat in das PEM-Format
<a name="convert-the-pfx-encoded-certificate-to-pem-format"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie das OpenSSL-Toolkit herunter und installieren Sie es. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Systemadministrator | 
| Konvertieren Sie das PFX-kodierte Zertifikat in das PEM-Format. | Mit den folgenden Schritten wird die PFX-kodierte, signierte Zertifikatsdatei in drei Dateien im PEM-Format konvertiert:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html)Um das PFX-kodierte Zertifikat zu konvertieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.html) | Systemadministrator | 

### Importieren Sie ein Zertifikat in ACM
<a name="import-a-certificate-into-acm"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie den Import des Zertifikats vor. | Wählen Sie in der [ACM-Konsole](https://console.aws.amazon.com/acm/home) die Option **Zertifikat importieren** aus. | Cloud-Administrator | 
| Geben Sie die Zertifizierungsstelle an. | Fügen Sie in das **Feld Zertifikatshauptteil** das PEM-kodierte Zertifikat ein, das Sie importieren möchten. Weitere Informationen zu den Befehlen und Schritten, die in diesem und anderen Aufgaben in diesem Epos beschrieben werden, finden Sie in der [ACM-Dokumentation unter Importieren eines Zertifikats](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html). | Cloud-Administrator | 
| Geben Sie den privaten Schlüssel des Zertifikats an. | Fügen Sie für **Certificate private key** den PEM-kodierten, unverschlüsselten privaten Schlüssel ein, der mit dem öffentlichen Schlüssel des Zertifikats übereinstimmt. | Cloud-Administrator | 
| Geben Sie die Zertifikatskette an. | Fügen Sie für **Certificate chain** die PEM-kodierte Zertifikatskette ein, die in der Datei gespeichert ist. `CertificateChain.pem` | Cloud-Administrator | 
| Importieren Sie das Zertifikat. | Wählen Sie **Review and import**. Vergewissern Sie sich, dass die Informationen zu Ihrem Zertifikat korrekt sind, und wählen Sie dann **Import** aus. | Cloud-Administrator | 

### Erstellen eines Application Load Balancers
<a name="create-an-application-load-balancer"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen und konfigurieren Sie den Load Balancer und die Listener. | Folgen Sie den Anweisungen in der [Elastic Load Balancing Balancing-Dokumentation](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html), um eine Zielgruppe zu konfigurieren, Ziele zu registrieren und einen Application Load Balancer und Listener zu erstellen. Fügen Sie einen zweiten Listener (HTTPS) für Port 443 hinzu. | Cloud-Administrator | 

## Fehlerbehebung
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Windows PowerShell erkennt den OpenSSL-Befehl nicht, auch wenn Sie ihn dem Systempfad hinzugefügt haben. | Stellen Sie `$env:path` sicher, dass es den Speicherort der OpenSSL-Binärdateien enthält.Ist dies nicht der Fall, führen Sie den folgenden Befehl in aus: PowerShell<pre>$env:path = $env:path + ";C:\OpenSSL-Win64\bin"</pre> | 

## Zugehörige Ressourcen
<a name="migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm-resources"></a>

**Ein Zertifikat in ACM importieren**
+ [ACM-Konsole](https://console.aws.amazon.com/acm/home)
+ [Zertifikat und Schlüsselformat für den Import](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-format.html)
+ [Ein Zertifikat importieren](https://aws.amazon.com/blogs/security/how-to-import-pfx-formatted-certificates-into-aws-certificate-manager-using-openssl/)
+ [AWS Certificate Manager Manager-Benutzerhandbuch](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html)

**Einen Application Load Balancer erstellen**
+ [Erstellen Sie einen Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)
+ [Application Load Balancer Balancer-Benutzerhandbuch](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html)

# Migrieren Sie eine Messaging-Warteschlange von Microsoft Azure Service Bus zu Amazon SQS
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs"></a>

*Nisha Gambhir, Amazon Web Services*

## Zusammenfassung
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-summary"></a>

Dieses Muster beschreibt, wie Sie eine.NET Framework- oder .NET Core-Web- oder Konsolenanwendung von der Microsoft Azure Service Bus-Queue-Messaging-Plattform zu Amazon Simple Queue Service (Amazon SQS) migrieren.

Anwendungen verwenden Messaging-Dienste, um Daten an andere Anwendungen zu senden und Daten von anderen Anwendungen zu empfangen. Diese Dienste helfen beim Aufbau entkoppelter, hoch skalierbarer Microservices, verteilter Systeme und serverloser Anwendungen in der Cloud.

Azure Service Bus-Warteschlangen sind Teil einer umfassenderen Azure-Messaging-Infrastruktur, die Warteschlangen und Messaging unterstützt. publish/subscribe  

Amazon SQS ist ein vollständig verwalteter Message Queuing-Service, mit dem Sie Microservices, verteilte Systeme und serverlose Anwendungen entkoppeln und skalieren können. Amazon SQS beseitigt die Komplexität und den Aufwand, die mit der Verwaltung und dem Betrieb nachrichtenorientierter Middleware verbunden sind, und ermöglicht es Entwicklern, sich auf differenzierte Aufgaben zu konzentrieren. Mit Amazon SQS können Sie Nachrichten zwischen Softwarekomponenten in beliebiger Menge senden, speichern und empfangen, ohne dass Nachrichten verloren gehen oder andere Dienste verfügbar sein müssen.

## Voraussetzungen und Einschränkungen
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-prerequisites-and-limitations"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto 
+ Eine.NET Framework- oder .NET Core-Web- oder Konsolenanwendung, die Azure Service Bus-Warteschlangen verwendet (Beispielcode im Anhang)

**Produktversionen**
+ .NET Framework 3.5 oder höher oder.NET Core 1.0.1, 2.0.0 oder höher

## Architektur
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-architecture"></a>

**Quelltechnologie-Stack**
+ Eine.NET-Web- oder Konsolenanwendung (Core oder Framework), die eine Azure Service Bus-Warteschlange zum Senden von Nachrichten verwendet

 

**Zieltechnologie-Stack**
+ Amazon SQS

## Tools
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-tools"></a>

**Tools**
+ Microsoft Visual Studio

**Code**

So erstellen Sie eine AWS Identity and Access Management (IAM) -Richtlinie für Amazon SQS:

1. Melden Sie sich in der AWS-Managementkonsole an und öffnen Sie die IAM-Konsole unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

2. Wählen Sie im Navigationsbereich auf der linken Seite **Policies** (Richtlinien) und dann **Create Policy** (Richtlinie erstellen) aus.

3. Wählen Sie die Registerkarte **JSON** und fügen Sie den folgenden Code ein:

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": [
            "sqs:DeleteMessage",
            "sqs:GetQueueUrl",
            "sqs:ChangeMessageVisibility",
            "sqs:SendMessageBatch",
            "sqs:ReceiveMessage",
            "sqs:SendMessage",
            "sqs:GetQueueAttributes",
            "sqs:ListQueueTags",
            "sqs:ListDeadLetterSourceQueues",
            "sqs:DeleteMessageBatch",
            "sqs:PurgeQueue",
            "sqs:DeleteQueue",
            "sqs:CreateQueue",
            "sqs:ChangeMessageVisibilityBatch",
            "sqs:SetQueueAttributes"
         ],
         "Resource": "arn:aws:sqs:*:<AccountId>:*"
      },
      {
         "Sid": "VisualEditor1",
         "Effect": "Allow",
         "Action": "sqs:ListQueues",
         "Resource": "*"
      }
   ]
}
```

4. Wählen Sie **Richtlinie überprüfen**, geben Sie einen Namen ein und wählen Sie dann **Richtlinie erstellen** aus.

5. Fügen Sie die neu erstellte Richtlinie Ihrer vorhandenen IAM-Rolle hinzu oder erstellen Sie eine neue Rolle.

## Epen
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-epics"></a>

### Amazon SQS in AWS einrichten
<a name="set-up-amazon-sqs-in-aws"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine IAM-Richtlinie für Amazon SQS. | Erstellen Sie die IAM-Richtlinie, die den Zugriff auf Amazon SQS ermöglicht. Eine Beispielrichtlinie finden Sie im Abschnitt Code. | Systemingenieur | 
| Erstellen Sie ein AWS-Profil. | Erstellen Sie ein neues Profil, indem Sie die AWS-Tools für den PowerShell Befehl Set- ausführenAWSCredential. Dieser Befehl speichert Ihren Zugriffsschlüssel und Ihren geheimen Schlüssel in Ihrer Standardanmeldedatei unter dem von Ihnen angegebenen Profilnamen. Verknüpfen Sie die Amazon SQS SQS-Richtlinie, die Sie zuvor erstellt haben, mit diesem Konto. Bewahren Sie die AWS-Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel auf. Diese werden in den nächsten Schritten benötigt. | Systemingenieur | 
| Erstellen Sie eine SQS-Warteschlange. | Sie können eine Standardwarteschlange oder eine FIFO-Warteschlange (First In, First Out) erstellen. Anweisungen finden Sie unter dem Link im Abschnitt Referenzen. | Systemingenieur | 

### Überarbeiten Sie Ihren .NET-Anwendungscode
<a name="revise-your-net-application-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie das AWS Toolkit for Visual Studio. | Dieses Toolkit ist eine Erweiterung für Microsoft Visual Studio und erleichtert Ihnen das Erstellen und Bereitstellen von.NET-Anwendungen in AWS. Anweisungen zur Installation und Verwendung finden Sie unter dem Link im Abschnitt Referenzen. | Entwickler der Anwendung | 
| Installieren Sie das AWSSDK .SQS-Paket. NuGet  | Sie AWSSDK können.SQS installieren, indem Sie in Visual Studio „ NuGet Package verwalten“ wählen oder den Befehl „ AWSSDKInstall-Package .SQS“ ausführen. | Entwickler der Anwendung | 
| Erstellen Sie ein AWSCredentials Objekt in Ihrer .NET-Anwendung. | Die Beispielanwendung im Anhang zeigt, wie Sie ein AWSCredentials Basic-Objekt erstellen, das von AWSCredentials erbt. Sie können die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel von früher verwenden oder das Objekt diese zur Laufzeit als Teil des Benutzerprofils aus dem Ordner „.aws“ auswählen lassen. | Entwickler der Anwendung | 
| Erstellen Sie ein SQS-Client-Objekt. | Erstellen Sie ein SQS-Client-Objekt (AmazonSQSClient) für.NET Framework. Dies ist Teil des Amazon.SQS-Namespace. Dieses Objekt ist anstelle von IQueue Client erforderlich, der Teil von Microsoft.Azure ist. ServiceBus Namespace. | Entwickler von Anwendungen | 
| Rufen Sie die SendMessageAsync Methode auf, um Nachrichten an die SQS-Warteschlange zu senden. | Ändern Sie den Code, der die Nachricht an die Warteschlange sendet, um die zu verwenden. amazonSqsClient SendMessageAsync Methode. Einzelheiten finden Sie im beigefügten Codebeispiel. | Entwickler der Anwendung | 
| Rufen Sie die ReceiveMessageAsync Methode auf, um Nachrichten aus der SQS-Warteschlange zu empfangen. | Ändern Sie den Code, der die Nachricht empfängt, um den zu verwenden. amazonSqsClient ReceiveMessageAsync Methode. Einzelheiten finden Sie im beigefügten Codebeispiel. | Entwickler der Anwendung | 
| Rufen Sie die DeleteMessageAsync Methode auf, um Nachrichten aus der SQS-Warteschlange zu löschen. | Um Nachrichten zu löschen, ändern Sie den Code im QueueClient. CompleteAsync Methode zum. amazonSqsClient DeleteMessageAsync Methode. Einzelheiten finden Sie im beigefügten Codebeispiel. | Entwickler der Anwendung | 

## Zugehörige Ressourcen
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-related-resources"></a>
+ [AWS SDK for .NET Entwicklerhandbuch](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html)
+ [Nachrichtenübermittlung mit Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sqs-apis-intro.html)
+ [Erstellen und Verwenden einer Amazon SQS SQS-Warteschlange mit dem AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/how-to-sqs.html)
+ [Eine Amazon SQS SQS-Nachricht senden](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/SendMessage.html)
+ [Empfangen einer Nachricht aus einer Amazon SQS SQS-Warteschlange](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/ReceiveMessage.html)
+ [Eine Nachricht aus einer Amazon SQS SQS-Warteschlange löschen](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/DeleteMessage.html)
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)

## Zusätzliche Informationen
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-additional-information"></a>

Dieses Muster umfasst zwei Beispielanwendungen (siehe Abschnitt Anlagen):
+ **AzureSbTestApp**enthält Code, der die Azure Service Bus-Warteschlange verwendet.
+ **AmazonSqsTestApp**verwendet Amazon SQS. Dies ist eine Konsolenanwendung, die .NET Core 2.2 verwendet und Beispiele für das Senden und Empfangen von Nachrichten enthält.

Hinweise:
+ QueueClient ist ein Objekt von IQueue Client, das Teil von Microsoft.Azure ist. ServiceBus Namespace (in Microsoft.Azure enthalten). ServiceBus NuGet Paket).
+ amazonSqsClient ist ein Objekt von AmazonSQSClient, das Teil des Amazon.SQS-Namespace ist (im .SQS-Paket enthalten). AWSSDK NuGet 
+ Je nachdem, wo der Code ausgeführt wird, z. B. ob er ausgeführt wird, benötigt die Rolle die Berechtigung EC2, in die SQS-Warteschlange zu schreiben.

## Anlagen
<a name="attachments-25334709-7000-4f60-87ed-ea41acb41a99"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/25334709-7000-4f60-87ed-ea41acb41a99/attachments/attachment.zip)

# Migrieren Sie eine Oracle JD EnterpriseOne Edwards-Datenbank mithilfe von Oracle Data Pump und AWS DMS zu AWS
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms"></a>

*Thanigaivel Thirumalai, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-summary"></a>

Sie können Ihre JD EnterpriseOne Edwards-Datenbank auf [Amazon Relational Database Service (Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)) migrieren und ausführen. Wenn Sie Ihre Datenbank zu Amazon RDS migrieren, kann AWS sich um Backup-Aufgaben und die Einrichtung von Hochverfügbarkeit kümmern, sodass Sie sich auf die Wartung Ihrer EnterpriseOne Anwendung und ihrer Funktionalität konzentrieren können. Eine umfassende Liste der wichtigsten Faktoren, die während des Migrationsprozesses zu berücksichtigen sind, finden Sie unter [Strategien zur Oracle-Datenbankmigration](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) in AWS Prescriptive Guidance.

Es gibt mehrere Möglichkeiten, eine EnterpriseOne Datenbank zu migrieren, darunter:
+ Verwenden von Oracle Universal Batch Engine (UBE) R98403 für die Schema- und Tabellenerstellung und Verwendung von AWS Database Migration Service (AWS DMS) für die Migration
+ Verwendung nativer DB-Tools für die Schema- und Tabellenerstellung und Verwendung von AWS DMS für die Migration
+ Verwendung von nativen DB-Tools für die Migration vorhandener Daten (Volllast) und Verwendung von AWS DMS für Change Data Capture-Aufgaben (CDC)

Dieses Muster deckt die dritte Option ab. Es wird erklärt, wie Sie Ihre lokalen EnterpriseOne Datenbanken mithilfe von Oracle Data Pump mit [AWS DMS](https://aws.amazon.com/dms) und seiner CDC-Funktion zu Amazon RDS for Oracle migrieren.

[Oracle JD Edwards EnterpriseOne](https://www.oracle.com/applications/jd-edwards-enterpriseone/) ist eine ERP-Lösung (Enterprise Resource Planning) für Unternehmen, die Produkte oder Sachanlagen herstellen, konstruieren, vertreiben, warten oder verwalten. JD Edwards EnterpriseOne unterstützt verschiedene Hardware, Betriebssysteme und Datenbankplattformen.

Bei der Migration kritischer ERP-Anwendungen wie JD Edwards EnterpriseOne ist die Minimierung von Ausfallzeiten von entscheidender Bedeutung. AWS DMS minimiert Ausfallzeiten, indem es sowohl Volllast als auch kontinuierliche Replikation von der Quelldatenbank zur Zieldatenbank unterstützt. AWS DMS bietet außerdem Echtzeitüberwachung und Protokollierung der Migration, sodass Sie Probleme, die zu Ausfallzeiten führen könnten, identifizieren und lösen können.

Wenn Sie Änderungen mit AWS DMS replizieren, müssen Sie eine Zeit- oder Systemänderungsnummer (SCN) als Ausgangspunkt für das Lesen von Änderungen aus den Datenbankprotokollen angeben. Es ist wichtig, diese Protokolle für einen bestimmten Zeitraum (wir empfehlen 15 Tage) auf dem Server zugänglich zu halten, um sicherzustellen, dass AWS DMS Zugriff auf diese Änderungen hat.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Eine Amazon RDS for Oracle Oracle-Datenbank, die in Ihrer AWS-Cloud-Umgebung als Zieldatenbank bereitgestellt wird. Anweisungen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html).
+ Eine EnterpriseOne Datenbank, die lokal oder auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance auf AWS läuft.
**Anmerkung**  
Dieses Muster ist für die Migration von lokal zu AWS konzipiert, wurde jedoch mithilfe einer EnterpriseOne Datenbank auf einer EC2-Instance getestet. Wenn Sie eine Migration von Ihrer lokalen Umgebung planen, müssen Sie die entsprechende Netzwerkkonnektivität konfigurieren.
+ Schemadetails. Identifizieren Sie, für welches Oracle-Datenbankschema (z. B. DV920) Sie migrieren möchten EnterpriseOne. Bevor Sie mit dem Migrationsprozess beginnen, sollten Sie die folgenden Informationen über das Schema sammeln:
  + Größe des Schemas
  + Die Anzahl der Objekte pro Objekttyp
  + Die Anzahl der ungültigen Objekte

**Einschränkungen**
+ Sie müssen alle gewünschten Schemas auf der Amazon RDS for Oracle Oracle-Zieldatenbank erstellen — AWS DMS erstellt diese nicht für Sie. (Im Abschnitt [Epics](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics) wird beschrieben, wie Data Pump zum Exportieren und Importieren von Schemas verwendet wird.) Der Schemaname muss für die Oracle-Zieldatenbank bereits existieren. Tabellen aus dem Quellschema werden in den Benutzer oder das Schema importiert, und AWS DMS verwendet das Administrator- oder Systemkonto, um eine Verbindung mit der Ziel-Instance herzustellen. Um mehrere Schemata zu migrieren, können Sie mehrere Replikationsaufgaben erstellen. Sie können Daten auch in verschiedene Schemas auf einer Zielinstanz migrieren. Verwenden Sie dazu Schematransformationsregeln für die AWS DMS-Tabellenzuordnungen.
+ Dieses Muster wurde mit einem Demo-Datensatz getestet. Wir empfehlen Ihnen, die Kompatibilität Ihres Datensatzes und die Anpassung zu überprüfen.
+ Dieses Muster verwendet eine EnterpriseOne Datenbank, die unter Microsoft Windows läuft. Sie können dasselbe Verfahren jedoch mit anderen Betriebssystemen verwenden, die von AWS DMS unterstützt werden.

## Architektur
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-architecture"></a>

Das folgende Diagramm zeigt ein System, das EnterpriseOne auf einer Oracle-Datenbank als Quelldatenbank und einer Amazon RDS for Oracle Oracle-Datenbank als Zieldatenbank läuft. Die Daten werden aus der Oracle-Quelldatenbank exportiert und mithilfe von Oracle Data Pump in die Zieldatenbank Amazon RDS for Oracle importiert und für CDC-Updates mithilfe von AWS DMS repliziert.

![\[Diagram showing data replication from on-premises Oracle to Amazon RDS using AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. Oracle Data Pump extrahiert Daten aus der Quelldatenbank und die Daten werden an das Datenbankziel Amazon RDS for Oracle gesendet.

1. CDC-Daten werden von der Quelldatenbank an einen Quellendpunkt in AWS DMS gesendet.

1. Vom Quellendpunkt werden die Daten an die AWS DMS-Replikationsinstanz gesendet, wo die Replikationsaufgabe ausgeführt wird.

1. Nach Abschluss der Replikationsaufgabe werden die Daten an den Zielendpunkt in AWS DMS gesendet.

1. Vom Zielendpunkt werden die Daten an die Amazon RDS for Oracle Oracle-Datenbank-Instance gesendet.

## Tools
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-tools"></a>

**AWS-Services**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [Amazon Relational Database Service (Amazon RDS) für Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der AWS-Cloud.

**Andere Dienste**
+ Mit [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) können Sie Daten und Metadaten mit hoher Geschwindigkeit von einer Datenbank in eine andere verschieben.

## Best Practices
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-best-practices"></a>

**Migrating LOBs**

Wenn Ihre Quelldatenbank große binäre Objekte (LOBs) enthält, die in die Zieldatenbank migriert werden müssen, bietet AWS DMS die folgenden Optionen:
+ **Vollständiger LOB-Modus** — AWS DMS migriert alle Daten LOBs von der Quell- zur Zieldatenbank, unabhängig von ihrer Größe. Die Migration ist zwar langsamer als die anderen Modi, hat aber den Vorteil, dass die Daten nicht gekürzt werden. Um die Leistung zu verbessern, können Sie für die neue Replikationsinstanz eine separate Aufgabe erstellen, um die Tabellen zu migrieren, LOBs die größer als ein paar Megabyte sind.
+ **Eingeschränkter LOB-Modus** — Sie geben die maximale Größe der LOB-Spaltendaten an, sodass AWS DMS Ressourcen vorab zuweisen und diese in großen Mengen anwenden kann. LOBs Wenn die Größe der LOB-Spalten die in der Aufgabe angegebene Größe überschreitet, kürzt AWS DMS die Daten und sendet Warnungen an die AWS DMS-Protokolldatei. Sie können die Leistung verbessern, indem Sie den eingeschränkten LOB-Modus verwenden, wenn Ihre LOB-Datengröße innerhalb der begrenzten LOB-Größe liegt.
+ **Inline-LOB-Modus** — Sie können migrieren, LOBs ohne die Daten zu kürzen oder die Leistung Ihrer Aufgabe zu beeinträchtigen, indem Sie sowohl kleine als auch große Daten replizieren. LOBs Geben Sie zunächst einen Wert für den `InlineLobMaxSize` Parameter an, der nur verfügbar ist, wenn der vollständige LOB-Modus auf eingestellt ist. `true` Die AWS DMS-Aufgabe überträgt die kleine LOBs Inline, was effizienter ist. Anschließend migriert AWS DMS die große Datei, LOBs indem es eine Suche aus der Quelltabelle durchführt. Der Inline-LOB-Modus funktioniert jedoch nur während der Volllastphase.

**Generieren von Sequenzwerten**

Während des AWS DMS-CDC-Prozesses werden inkrementelle Sequenznummern nicht aus der Quelldatenbank repliziert. Um Diskrepanzen bei den Sequenzwerten zu vermeiden, müssen Sie für alle Sequenzen den neuesten Sequenzwert aus der Quelle generieren und ihn auf die Amazon RDS for Oracle Oracle-Zieldatenbank anwenden.

**AWS Secrets Manager**

Um Ihnen bei der Verwaltung Ihrer Anmeldeinformationen zu helfen, empfehlen wir Ihnen, die Anweisungen im Blogbeitrag [Manage your AWS DMS-Endpoint Credentials with AWS Secrets Manager](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/) zu befolgen.

**Leistung**
+ **Replikationsinstanzen** ‒ Anleitungen zur Auswahl der besten Instance-Größe finden [Sie unter Auswahl der besten Größe für eine Replikationsinstanz](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.SizingReplicationInstance.html) in der AWS DMS-Dokumentation.
+ **Konnektivitätsoptionen** ‒ Um Latenzprobleme zu vermeiden, empfehlen wir Ihnen, die richtige Verbindungsoption zu wählen. AWS Direct Connect bietet den kürzesten Weg zu AWS-Ressourcen, da es sich um eine dedizierte Verbindung zwischen Ihren Unternehmensrechenzentren und AWS handelt. Während der Übertragung verbleibt Ihr Netzwerkverkehr im globalen AWS-Netzwerk und wird niemals über das Internet übertragen. Dies reduziert die Wahrscheinlichkeit von Engpässen oder unerwarteten Erhöhungen der Latenz im Vergleich zur Verwendung von VPN oder dem öffentlichen Internet.
+ **Netzwerkbandbreite** ‒ Um die Leistung zu optimieren, stellen Sie sicher, dass Ihr Netzwerkdurchsatz schnell ist. Wenn Sie einen VPN-Tunnel zwischen Ihrer lokalen Quelldatenbank und AWS DMS verwenden, stellen Sie sicher, dass die Bandbreite für Ihre Arbeitslast ausreicht.
+ **Aufgabenparallelität** ‒ Sie können die Datenreplikation beschleunigen, indem Sie bei Volllast mehrere Tabellen parallel laden. Dieses Muster verwendet RDBMS-Endpunkte, sodass diese Option nur für den Vollladevorgang gilt. Die Aufgabenparallelität wird durch den `MaxFullLoadSubTasks` Parameter gesteuert, der bestimmt, wie viele Volllast-Unteraufgaben parallel ausgeführt werden. Standardmäßig ist dieser Parameter auf 8 gesetzt, was bedeutet, dass acht Tabellen (sofern in der Tabellenzuordnung ausgewählt) im Vollmodus zusammen geladen werden. Sie können diesen Parameter im Abschnitt mit den Einstellungen für Vollladeaufgaben des JSON-Skripts für die Aufgabe anpassen.
+ **Tabellenparallelität** ‒ Mit AWS DMS können Sie auch eine einzelne große Tabelle laden, indem Sie mehrere parallel Threads verwenden. Dies ist besonders nützlich für Oracle-Quelltabellen mit Milliarden von Datensätzen sowie mehreren Partitionen und Unterpartitionen. Wenn die Quelltabelle nicht partitioniert ist, können Sie Spaltengrenzen für parallel Ladevorgänge verwenden.
+ **Lasten aufteilen** ‒ Wenn Sie Lasten auf mehrere Aufgaben oder AWS DMS-Instanzen aufteilen, sollten Sie bei der Erfassung von Änderungen die Transaktionsgrenzen berücksichtigen.

## Epen
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-epics"></a>

### Verwenden Sie Oracle Data Pump, um das EnterpriseOne Schema zu exportieren
<a name="use-oracle-data-pump-to-export-the-enterpriseone-schema"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie das SCN. | Wenn die Quelldatenbank aktiv ist und von der EnterpriseOne Anwendung verwendet wird, initiieren Sie den Datenexport mit Oracle Data Pump. Sie müssen zunächst eine System Change Number (SCN) aus der Quelldatenbank generieren, um sowohl die Datenkonsistenz beim Export mit Oracle Data Pump als auch als Ausgangspunkt für CDC in AWS DMS zu gewährleisten.Verwenden Sie die folgende SQL-Anweisung, um die aktuelle SCN aus Ihrer Quelldatenbank zu generieren:<pre>SQL> select current_scn from v$database;<br /><br />CURRENT_SCN<br />-----------<br />   30009727</pre>Speichern Sie die generierte SCN. Sie verwenden das SCN, wenn Sie die Daten exportieren und die AWS DMS-Replikationsaufgabe erstellen. | DBA | 
| Erstellen Sie die Parameterdatei. | Um eine Parameterdatei für den Export des Schemas zu erstellen, können Sie den folgenden Code verwenden.<pre>directory=DMS_DATA_PUMP_DIR<br />logfile=export_dms.log<br />dumpfile=export_dms_data.dmp<br />schemas=<schema name><br />flashback_scn=<SCN from previous command></pre>Sie können auch Ihren eigenen definieren, `DATA_PUMP_DIR` indem Sie die folgenden Befehle verwenden, die Ihren Anforderungen entsprechen.<pre>SQL> CREATE OR REPLACE DIRECTORY DMS_DATA_PUMP_DIR AS '<Directory for dump>';<br />Directory created.<br /><br />SQL> GRANT READ, WRITE ON DIRECTORY DMS_DATA_PUMP_DIR TO SYSTEM;<br />Grant succeeded.</pre> | DBA | 
| Exportieren Sie das Schema. | Verwenden Sie das `expdp` Hilfsprogramm wie folgt, um den Export durchzuführen:<pre>C:\Users\Administrator>expdp system/********@<DB Name> PARFILE='<Path to PAR file create above>'<br /><br />Export: Release 19.0.0.0.0 - Production on *** *** ** **:**:** ****<br />Version 19.3.0.0.0<br /><br />Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.<br /><br />Connected to: Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production<br />Starting "SYSTEM"."SYS_EXPORT_SCHEMA_02":  system/********@<DB Name>PARFILE='E:\exp_dms_datapump.par'<br />Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA<br />Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS<br />Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS<br />Processing object type SCHEMA_EXPORT/STATISTICS/MARKER<br />Processing object type SCHEMA_EXPORT/USER<br />Processing object type SCHEMA_EXPORT/ROLE_GRANT<br />Processing object type SCHEMA_EXPORT/DEFAULT_ROLE<br />Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA<br />Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA<br />Processing object type SCHEMA_EXPORT/TABLE/TABLE<br />Processing object type SCHEMA_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT<br />Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX<br />Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT<br />. . exported "<Schema Name>"."<Table Name>"                            228.9 MB  496397 rows</pre><pre>Master table "SYSTEM"."SYS_EXPORT_SCHEMA_02" successfully loaded/unloaded<br />******************************************************************************<br />Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_02 is:<br />  E:\DMSDUMP\EXPORT_DMS_DATA.DMP<br />Job "SYSTEM"."SYS_EXPORT_SCHEMA_02" successfully completed at *** *** ** **:**:** **** elapsed 0 00:01:57</pre> | DBA | 

### Verwenden Sie Oracle Data Pump, um das EnterpriseOne Schema zu importieren
<a name="use-oracle-data-pump-to-import-the-enterpriseone-schema"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Übertragen Sie die Dump-Datei auf die Zielinstanz. | Um Ihre Dateien mithilfe des `DBMS_FILE_TRANSFER` Dienstprogramms zu übertragen, müssen Sie einen Datenbank-Link von der Quelldatenbank zur Amazon RDS for Oracle Oracle-Instance erstellen. Nachdem die Verbindung hergestellt wurde, können Sie das Hilfsprogramm verwenden, um die Data Pump-Dateien direkt auf die Amazon RDS-Instance zu übertragen.Alternativ können Sie die Data Pump-Dateien an [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) übertragen und sie dann in die Amazon RDS for Oracle Oracle-Instance importieren. Weitere Informationen zu dieser Option finden Sie im Abschnitt [Zusätzliche Informationen](#migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional).Um einen Datenbank-Link zu erstellen`ORARDSDB`, der eine Verbindung zum Amazon RDS-Master-Benutzer auf der Ziel-DB-Instance herstellt, führen Sie die folgenden Befehle in der Quelldatenbank aus:<pre>sqlplus / as sysdba<br /><br />SQL*Plus: Release 19.0.0.0.0 on *** *** ** **:**:** ****<br />Version 19.3.0.0.0<br /><br />Copyright (c) 1982, 2019, Oracle.  All rights reserved.<br /><br />Connected to:<br />Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0<br />Version 19.3.0.0.0<br /><br />SQL> create database link orardsdb connect to admin identified by "******" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl.******.us-east-1.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))';<br /><br />Database link created.<br /><br />SQL></pre> | DBA | 
| Testen Sie den Datenbank-Link. | Testen Sie den Datenbank-Link, um sicherzustellen, dass Sie eine Verbindung zur Amazon RDS for Oracle Oracle-Zieldatenbank herstellen können, indem Sie`sqlplus`.<pre>SQL> select name from v$database@orardsdb;<br /><br />NAME<br />---------<br />ORCL<br /></pre> | DBA | 
| Übertragen Sie die Dump-Datei in die Zieldatenbank. | Um die Dump-Datei in die Amazon RDS for Oracle Oracle-Datenbank zu kopieren, können Sie entweder das `DATA_PUMP_DIR` Standardverzeichnis verwenden oder Sie können Ihr eigenes Verzeichnis erstellen, indem Sie den folgenden Code verwenden, der auf der Amazon RDS-Zielinstanz ausgeführt werden muss:<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'DMS_TARGET_PUMP_DIR');<br /><br />PL/SQL procedure successfully completed.</pre>Das folgende Skript kopiert eine `EXPORT_DMS_DATA.DMP` aus der Quell-Instance benannte Dump-Datei mithilfe des angegebenen Datenbank-Links in eine Amazon RDS for Oracle Oracle-Zieldatenbank. `orardsdb` Sie müssen das Skript auf der Quelldatenbank-Instance ausführen.<pre>BEGIN<br />DBMS_FILE_TRANSFER.PUT_FILE(<br />source_directory_object => 'DMS_DATA_PUMP_DIR',<br />source_file_name => 'EXPORT_DMS_DATA.DMP',<br />destination_directory_object => 'DMS_TARGET_PUMP_DIR',<br />destination_file_name => 'EXPORT_DMS_DATA.DMP',<br />destination_database => 'orardsdb');<br />END;<br /><br />PL/SQL procedure successfully completed.</pre> | DBA | 
| Listet die Dump-Datei in der Zieldatenbank auf. | Nachdem das PL/SQL Verfahren abgeschlossen ist, können Sie die Datendump-Datei in der Amazon RDS for Oracle Oracle-Datenbank auflisten, indem Sie den folgenden Code verwenden:<pre>select * from table (rdsadmin.rds_file_util.listdir(p_directory => 'DMS_TARGET_PUMP_DIR'));</pre> | DBA | 
| Erstellen Sie JDE-spezifische Benutzer in der Zielinstanz. | Erstellen Sie ein JD Edwards-Profil und eine Rolle, indem Sie die folgenden Befehle in der Zielinstanz verwenden:<pre>SQL> CREATE PROFILE "JDEPROFILE" LIMIT IDLE_TIME 15;<br />Profile created.<br /><br />SQL> CREATE ROLE "JDE_ROLE";<br />Role created.<br /><br />SQL> CREATE ROLE "JDEADMIN";<br />CREATE ROLE "JDEUSER";<br />Role created.<br />Role created.</pre>Erteilen Sie der Rolle die erforderlichen Berechtigungen:<pre>SQL> GRANT CREATE ANY SEQUENCE TO JDE_ROLE;<br /> GRANT DROP ANY SEQUENCE TO JDE_ROLE;<br /> GRANT CREATE ANY TRIGGER TO JDE_ROLE;<br /> GRANT DROP ANY TRIGGER TO JDE_ROLE;<br /></pre> | DBA, JDE CNC | 
| Erstellen Sie Tablespaces in der Zielinstanz. | Erstellen Sie die erforderlichen Tablespaces in der Zielinstanz, indem Sie die folgenden Befehle für die Schemas verwenden, die an dieser Migration beteiligt sind:<pre>SQL> CREATE TABLESPACE <Tablespace Name for Tables>;<br />Tablespace created.<br /><br />SQL> CREATE TABLESPACE <Tablespace Name for Indexes>;<br />Tablespace created.</pre> | DBA, JDE CNC | 
| Initiieren Sie den Import in der Zieldatenbank. | Bevor Sie den Importvorgang starten, richten Sie die Rollen, Schemas und Tablespaces in der Amazon RDS for Oracle Oracle-Zieldatenbank mithilfe der Datendumpdatei ein.Um den Import durchzuführen, greifen Sie mit dem primären Amazon RDS-Benutzerkonto auf die Zieldatenbank zu und verwenden Sie den Namen der Verbindungszeichenfolge in der `tnsnames.ora` Datei, die die Amazon RDS for Oracle Database enthält`tns-entry`. Bei Bedarf können Sie eine Remap-Option hinzufügen, um die Datendumpdatei in einen anderen Tablespace oder unter einem anderen Schemanamen zu importieren.Verwenden Sie den folgenden Code, um den Import zu starten:<pre>impdp admin@orardsdb directory=DMS_TARGET_PUMP_DIR logfile=import.log dumpfile=EXPORT_DMS_DATA.DMP</pre>Um einen erfolgreichen Import sicherzustellen, überprüfen Sie die Import-Protokolldatei auf Fehler und überprüfen Sie Details wie Objektanzahl, Zeilenanzahl und ungültige Objekte. Wenn ungültige Objekte vorhanden sind, kompilieren Sie sie erneut. Vergleichen Sie außerdem die Quell- und Zieldatenbankobjekte, um sicherzustellen, dass sie übereinstimmen. | DBA | 

### Stellen Sie eine AWS-DMS-Replikationsinstanz mit den Quell- und Zielendpunkten bereit
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Vorlage für herunter. | Laden Sie die AWS-Vorlage CloudFormation [DMS\$1Instance.yaml](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) herunter, um die AWS DMS-Replikationsinstanz und ihre Quell- und Zielendpunkte bereitzustellen. | Cloud-Administrator, DBA | 
| Starten Sie die Stack-Erstellung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Cloud-Administrator, DBA | 
| Geben Sie die Parameter an. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Cloud-Administrator, DBA | 
| Erstellen Sie den Stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)Die Bereitstellung sollte in etwa 5—10 Minuten abgeschlossen sein. Es ist abgeschlossen, wenn auf der Seite AWS CloudFormation Stacks **CREATE\$1COMPLETE** angezeigt wird. | Cloud-Administrator, DBA | 
| Richten Sie die Endpunkte ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | Cloud-Administrator, DBA | 
| Testen Sie die Konnektivität. | Nachdem der Quell- und der Zielendpunkt den Status **Aktiv** angezeigt haben, testen Sie die Konnektivität. Wählen Sie für jeden Endpunkt (Quell- und Zielpunkt) die Option **Test ausführen** aus, um sicherzustellen, dass der Status als erfolgreich angezeigt wird. | Cloud-Administrator, DBA | 

### Erstellen Sie eine AWS DMS-Replikationsaufgabe für die Live-Replikation
<a name="create-an-aws-dms-replication-task-for-live-replication"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Replikationsaufgabe. | Erstellen Sie die AWS DMS-Replikationsaufgabe mithilfe der folgenden Schritte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html)Nachdem Sie die Aufgabe erstellt haben, migriert AWS DMS laufende Änderungen zur Amazon RDS for Oracle Oracle-Datenbank-Instance aus der SCN, die Sie im CDC-Startmodus bereitgestellt haben. Sie können die Migration auch überprüfen, indem Sie die Protokolle überprüfen. CloudWatch  | Cloud-Administrator, DBA | 
| Wiederholen Sie die Replizierungsaufgabe. | Wiederholen Sie die vorherigen Schritte, um Replikationsaufgaben für andere JD Edwards-Schemas zu erstellen, die Teil der Migration sind. | Cloud-Administrator, DBA, JDE-CNC-Administrator | 

### Überprüfen Sie das Datenbankschema auf der Amazon RDS for Oracle Oracle-Zieldatenbank
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie die Datenübertragung. | Nachdem die AWS DMS-Aufgabe gestartet wurde, können Sie auf der Seite **Aufgaben** auf der Registerkarte **Tabellenstatistiken** nachsehen, welche Änderungen an den Daten vorgenommen wurden.Sie können den Status der laufenden Replikation in der Konsole auf der Seite mit den **Aufgaben zur Datenbankmigration** überwachen.Weitere Informationen finden Sie unter [AWS DMS-Datenvalidierung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Cloud-Administrator, DBA | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Beenden Sie die Replikation. | Brechen Sie den Replikationsvorgang ab und beenden Sie die Quellanwendungsdienste. | Cloud-Administrator, DBA | 
| Starten Sie die JD Edwards-Anwendung. | Starten Sie die Präsentations- und Logik-Tier-Zielanwendung von JD Edwards auf AWS und leiten Sie sie an die Amazon RDS for Oracle Oracle-Datenbank weiter.Wenn Sie auf die Anwendung zugreifen, sollten Sie feststellen, dass jetzt alle Verbindungen mit der Amazon RDS for Oracle Oracle-Datenbank hergestellt sind. | DBA, JDE-CNC-Administrator | 
| Schalten Sie die Quelldatenbank aus. | Nachdem Sie bestätigt haben, dass keine Verbindungen mehr bestehen, können Sie die Quelldatenbank ausschalten. | DBA | 

## Fehlerbehebung
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Sie erhalten eine Warnmeldung, um die [zusätzliche Protokollierung](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) in der Quelldatenbank für die laufende Replikation zu aktivieren | Geben Sie die folgenden Befehle ein, um die zusätzliche Protokollierung zu aktivieren:<pre>SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;<br />SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;</pre> | 
| In AWS DMS ist die zusätzliche Protokollierung deaktiviert. | Die zusätzliche Protokollierung ist in AWS DMS standardmäßig deaktiviert. So aktivieren Sie es für einen Oracle-Quellendpunkt:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| Die zusätzliche Protokollierung ist auf CDB-Ebene nicht aktiviert. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.html) | 
| Sie erhalten die folgende Fehlermeldung: „Der Testendpunkt ist fehlgeschlagen: Anwendungsstatus: 1020912, Anwendungsnachricht: LogMiner wird in der Oracle PDB-Umgebung nicht unterstützt. Die Endpunktinitialisierung ist fehlgeschlagen.“ | Wenn Sie auf diese Fehlermeldung stoßen, können Sie stattdessen Binary Reader verwenden. LogMinerFügen Sie unter **Endpunkteinstellungen** diese Zeile zu den zusätzlichen Verbindungsattributen für Ihre Quelldatenbank hinzu:<pre>useLogMinerReader=N;useBfile=Y;</pre> | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-resources"></a>
+ [Erste Schritte mit AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Bewährte Methoden für den AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migration von Oracle-Datenbanken in die AWS-Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)
+ [Referenz zum Ressourcentyp des AWS Database Migration Service für AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_DMS.html)
+ [Verwalten Sie Ihre AWS-DMS-Endpunkt-Anmeldeinformationen mit AWS Secrets Manager](https://aws.amazon.com/blogs/database/manage-your-aws-dms-endpoint-credentials-with-aws-secrets-manager/)
+ [Fehlerbehebung bei Migrationsaufgaben im AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Troubleshooting.html#CHAP_Troubleshooting.Oracle.RecordsMissing)
+ [Bewährte Methoden für AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)

## Zusätzliche Informationen
<a name="migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms-additional"></a>

**Dateien mit Amazon S3 übertragen**

Um die Dateien auf Amazon S3 zu übertragen, können Sie die AWS-CLI oder die Amazon S3 S3-Konsole verwenden. Nachdem Sie die Dateien zu Amazon S3 übertragen haben, können Sie die Amazon RDS for Oracle Oracle-Instance verwenden, um die Data Pump-Dateien aus Amazon S3 zu importieren.

Wenn Sie die Dump-Datei mithilfe der Amazon S3 S3-Integration als alternative Methode übertragen möchten, führen Sie die folgenden Schritte aus:

1. Erstellen Sie einen S3-Bucket.

1. Exportieren Sie die Daten mit Oracle Data Pump aus der Quelldatenbank.

1. Laden Sie die Data Pump-Dateien in den S3-Bucket hoch.

1. Laden Sie die Data Pump-Dateien aus dem S3-Bucket in die Amazon RDS for Oracle Oracle-Zieldatenbank herunter.

1. Führen Sie den Import mithilfe der Data Pump-Dateien durch.

**Anmerkung**  
Um große Datendateien zwischen S3- und RDS-Instances zu übertragen, empfehlen wir Ihnen, die [Amazon S3 Transfer Acceleration Acceleration-Funktion](https://docs.aws.amazon.com/AmazonS3/latest/userguide/transfer-acceleration.html) zu verwenden.

# Migrieren Sie eine PeopleSoft Oracle-Datenbank mithilfe von AWS DMS zu AWS
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms"></a>

*Sampath Kathirvel, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-summary"></a>

[Oracle PeopleSoft](https://www.oracle.com/applications/peoplesoft/) ist eine ERP-Lösung (Enterprise Resource Planning) für unternehmensweite Prozesse. PeopleSoft hat eine dreistufige Architektur: Client, Anwendung und Datenbank. PeopleSoft kann auf [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ausgeführt werden.

Wenn Sie Ihre Oracle-Datenbank zu Amazon RDS migrieren, kann Amazon Web Services (AWS) Backup-Aufgaben und Hochverfügbarkeit übernehmen, sodass Sie sich auf die Wartung Ihrer PeopleSoft Anwendung und ihrer Funktionalität konzentrieren können. Eine umfassende Liste der wichtigsten Faktoren, die während des Migrationsprozesses zu berücksichtigen sind, finden Sie unter [Strategien zur Oracle-Datenbankmigration](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/strategies.html) in AWS Prescriptive Guidance.

Dieses Muster bietet eine Lösung für die Migration Ihrer lokalen Oracle-Datenbanken zu Amazon RDS for Oracle mithilfe von Oracle Data Pump mit [AWS Database Migration Service (AWS DMS)](https://aws.amazon.com/dms) und seiner Change Data Capture (CDC) -Funktion.

Bei der Migration kritischer ERP-Anwendungen wie Oracle PeopleSoft ist die Minimierung der Ausfallzeiten von entscheidender Bedeutung. AWS DMS minimiert Ausfallzeiten, indem es sowohl Volllast- als auch kontinuierliche Replikation von der Quelldatenbank zur Zieldatenbank unterstützt. AWS DMS bietet außerdem eine Überwachung und Protokollierung der Migration in Echtzeit, sodass Sie Probleme, die zu Ausfallzeiten führen könnten, identifizieren und lösen können.

Wenn Sie Änderungen mit AWS DMS replizieren, müssen Sie eine Uhrzeit oder eine Systemänderungsnummer (SCN) als Ausgangspunkt angeben, damit AWS DMS Änderungen aus den Datenbankprotokollen lesen kann. Es ist wichtig, diese Protokolle für einen bestimmten Zeitraum auf dem Server zugänglich zu halten, um sicherzustellen, dass AWS DMS Zugriff auf diese Änderungen hat.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-prereqs"></a>

**Voraussetzungen**
+ Bereitgestellte Amazon RDS for Oracle Oracle-Datenbank in Ihrer AWS-Cloud-Umgebung als Zieldatenbank.
+ Eine PeopleSoft Oracle-Datenbank, die lokal oder auf Amazon Elastic Compute Cloud (Amazon EC2) in der AWS-Cloud ausgeführt wird.
**Anmerkung**  
Dieses Muster ist für die Migration von lokalen Systemen zu AWS konzipiert, wurde jedoch mithilfe von Oracle Database auf einer EC2 Amazon-Instance getestet. Für die Migration von einer lokalen Infrastruktur müssen Sie die entsprechende Netzwerkkonnektivität konfigurieren.
+ Schemadetails. Bei der Migration einer PeopleSoft Oracle-Anwendung zu Amazon RDS for Oracle muss angegeben werden, welches Oracle-Datenbankschema (z. B.`SYSADM`) migriert werden soll. Bevor Sie mit dem Migrationsprozess beginnen, sollten Sie die folgenden Informationen über das Schema sammeln:
  + Größe
  + Die Anzahl der Objekte pro Objekttyp
  + Die Anzahl der ungültigen Objekte.

  Diese Informationen helfen beim Migrationsprozess.

**Einschränkungen**
+ Dieses Szenario wurde nur mit der PeopleSoft DEMO-Datenbank getestet. Es wurde nicht mit einem großen Datensatz getestet.

## Architektur
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-architecture"></a>

Das folgende Diagramm zeigt eine Instance, auf der eine Oracle-Datenbank als Quelldatenbank und eine Amazon RDS for Oracle Oracle-Datenbank als Zieldatenbank ausgeführt wird. Die Daten werden mit Oracle Data Pump aus der Oracle-Quelldatenbank in die Amazon RDS for Oracle Oracle-Zieldatenbank exportiert und importiert und für CDC-Änderungen mit AWS DMS repliziert.

![\[Fünfstufiger Prozess von der lokalen DB-Instance zu Amazon RDS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/c8ec3789-f80e-4f3a-a3f4-72a4541316b0/images/4e3e3477-2fe0-4a5d-b95e-05a8aafe8b68.png)


1. Im ersten Schritt werden Daten mithilfe von Oracle Data Pump aus der Quelldatenbank extrahiert und anschließend an das Datenbankziel Amazon RDS for Oracle gesendet.

1. Daten werden von der Quelldatenbank an einen Quellendpunkt in AWS DMS gesendet.

1. Vom Quellendpunkt werden die Daten an die AWS DMS-Replikationsinstanz gesendet, wo die Replikationsaufgabe ausgeführt wird.

1. Nach Abschluss der Replikationsaufgabe werden die Daten an den Zielendpunkt in AWS DMS gesendet.

1. Vom Zielendpunkt werden die Daten an die Amazon RDS for Oracle Oracle-Datenbank-Instance gesendet.

## Tools
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-tools"></a>

**AWS-Services**
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ [Amazon Relational Database Service (Amazon RDS) für Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der AWS-Cloud.

**Andere Dienste**
+ Mit [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) können Sie Daten und Metadaten mit hoher Geschwindigkeit von einer Datenbank in eine andere verschieben.

## Best Practices
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-best-practices"></a>

**Migrating LOBs**

Wenn Ihre Quelldatenbank große binäre Objekte (LOBs) enthält, die in die Zieldatenbank migriert werden müssen, bietet AWS DMS die folgenden Optionen:
+ **Vollständiger LOB-Modus** — AWS DMS migriert alle Daten LOBs von der Quell- zur Zieldatenbank, unabhängig von ihrer Größe. Die Migration ist zwar langsamer, hat aber den Vorteil, dass die Daten nicht gekürzt werden. Um die Leistung zu verbessern, können Sie für die neue Replikationsinstanz eine separate Aufgabe erstellen, um die Tabellen zu migrieren, die mehr LOBs als ein paar Megabyte haben.
+ **Eingeschränkter LOB-Modus** — Sie geben die maximale Größe der LOB-Spaltendaten an, sodass AWS DMS Ressourcen vorab zuweisen und diese in großen Mengen anwenden kann. LOBs Wenn die Größe der LOB-Spalten die in der Aufgabe angegebene Größe überschreitet, kürzt AWS DMS die Daten und sendet Warnungen an die AWS DMS-Protokolldatei. Sie können die Leistung verbessern, indem Sie den eingeschränkten LOB-Modus verwenden, wenn Ihre LOB-Datengröße innerhalb der begrenzten LOB-Größe liegt.
+ **Inline-LOB-Modus** — Sie können migrieren, LOBs ohne die Daten zu kürzen oder die Leistung Ihrer Aufgabe zu beeinträchtigen, indem Sie sowohl kleine als auch große Daten replizieren. LOBs Geben Sie zunächst einen Wert für den InlineLobMaxSize Parameter an, der nur verfügbar ist, wenn der Full-LOB-Modus auf true gesetzt ist. Die AWS-DMS-Aufgabe überträgt die kleine LOBs Inline, was effizienter ist. Anschließend migriert AWS DMS die große Datei, LOBs indem es eine Suche aus der Quelltabelle durchführt. Der Inline-LOB-Modus funktioniert jedoch nur während der Volllastphase.

**Generieren von Sequenzwerten**

Beachten Sie, dass während der Erfassung von Änderungsdaten mit AWS DMS inkrementelle Sequenznummern nicht aus der Quelldatenbank repliziert werden. Um Diskrepanzen bei den Sequenzwerten zu vermeiden, müssen Sie für alle Sequenzen den neuesten Sequenzwert aus der Quelle generieren und ihn auf die Amazon RDS for Oracle Oracle-Zieldatenbank anwenden.

**Verwaltung von Anmeldedaten**

Um Ihre AWS-Ressourcen zu schützen, empfehlen wir, die [Best Practices](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) für AWS Identity and Access Management (IAM) zu befolgen.

## Epen
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-epics"></a>

### Stellen Sie eine AWS-DMS-Replikationsinstanz mit den Quell- und Zielendpunkten bereit
<a name="provision-an-aws-dms-replication-instance-with-the-source-and-target-endpoints"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Vorlage für herunter. | Laden Sie die CloudFormation AWS-Vorlage [DMS\$1Instance.yaml](https://aws-database-blog.s3.amazonaws.com/artifacts/Migrating_oracle_using_DMS/DMS_Instance.yaml) herunter, um die AWS DMS-Replikationsinstanz und ihre Quell- und Zielendpunkte bereitzustellen. | Cloud-Administrator, DBA | 
| Starten Sie die Stack-Erstellung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Cloud-Administrator, DBA | 
| Geben Sie die Parameter an. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Cloud-Administrator, DBA | 
| Erstellen Sie den Stack. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)Die Bereitstellung sollte in etwa 5—10 Minuten abgeschlossen sein. Es ist abgeschlossen, wenn auf der Seite AWS CloudFormation Stacks **CREATE\$1COMPLETE** angezeigt wird. | Cloud-Administrator, DBA | 
| Richten Sie die Endpunkte ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html) | Cloud-Administrator, DBA | 
| Testen Sie die Konnektivität. | Nachdem der Quell- und der Zielendpunkt den Status Aktiv angezeigt haben, testen Sie die Konnektivität. Wählen Sie für jeden Endpunkt (Quell- und Zielpunkt) die Option **Test ausführen** aus, um sicherzustellen, dass der Status als erfolgreich angezeigt wird. | Cloud-Administrator, DBA | 

### Exportieren Sie das PeopleSoft Schema mithilfe von Oracle Data Pump aus der lokalen Oracle-Datenbank
<a name="export-the-peoplesoft-schema-from-the-on-premises-oracle-database-by-using-oracle-data-pump"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie das SCN. | Wenn die Quelldatenbank aktiv ist und von der Anwendung verwendet wird, initiieren Sie den Datenexport mit Oracle Data Pump. Sie müssen zunächst eine System Change Number (SCN) aus der Quelldatenbank generieren, um sowohl die Datenkonsistenz beim Export mit Oracle Data Pump als auch als Ausgangspunkt für die Erfassung von Änderungsdaten in AWS DMS zu gewährleisten.Um die aktuelle SCN aus Ihrer Quelldatenbank zu generieren, geben Sie die folgende SQL-Anweisung ein.<pre>SQL> select name from v$database;<br />SQL> select name from v$database;<br />NAME<br />---------<br />PSFTDMO<br />SQL> SELECT current_scn FROM v$database;<br />CURRENT_SCN<br />-----------<br />23792008</pre>Speichern Sie die generierte SCN, um sie beim Exportieren der Daten und zur Erstellung der AWS DMS-Replikationsaufgabe zu verwenden. | DBA | 
| Erstellen Sie die Parameterdatei. | Um eine Parameterdatei für den Export des Schemas zu erstellen, können Sie den folgenden Code verwenden.<pre>$ cat exp_datapmp.par<br />userid=system/*******<br />directory=DATA_PUMP_DIR<br />logfile=export_dms_sample_user.log<br />dumpfile=export_dms_sample_data_%U.dmp<br />schemas=SYSADM<br />flashback_scn=23792008</pre>Sie können auch Ihren eigenen definieren, `DATA_PUMP_DIR` indem Sie die folgenden Befehle verwenden, die Ihren Anforderungen entsprechen.<pre>SQL> CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/opt/oracle/product/19c/dbhome_1/dmsdump/';<br />Directory created.<br />SQL> GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO system;<br />Grant succeeded.<br />SQL><br />SQL> SELECT owner, directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR';<br />OWNER DIRECTORY_NAME DIRECTORY_PATH<br />------------------------------------------------------------------------------------------------------------------<br />SYS DATA_PUMP_DIR /opt/oracle/product/19c/dbhome_1/dmsdump/</pre> | DBA | 
| Exportieren Sie das Schema. | Verwenden Sie das `expdp` Hilfsprogramm, um den Export durchzuführen.<pre>$ expdp parfile=exp_datapmp.par<br />.......................<br />Transferring the dump file with DBMS_FILE_TRANSFER to Target:<br />. . exported "SYSADM"."PS_XML_TEMPLT_LNG" 6.320 KB 0 rows<br />. . exported "SYSADM"."PS_XML_TEMPLT_LNK" 6.328 KB 0 rows<br />. . exported "SYSADM"."PS_XML_XLATDEF_LNG" 6.320 KB 0 rows<br />. . exported "SYSADM"."PS_XML_XLATITM_LNG" 7.171 KB 0 rows<br />. . exported "SYSADM"."PS_XPQRYRUNCNTL" 7.601 KB 0 rows<br />. . exported "SYSADM"."PS_XPQRYRUNPARM" 7.210 KB 0 rows<br />. . exported "SYSADM"."PS_YE_AMOUNTS" 9.351 KB 0 rows<br />. . exported "SYSADM"."PS_YE_DATA" 16.58 KB 0 rows<br />. . exported "SYSADM"."PS_YE_EE" 6.75 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2CP_AMOUNTS" 9.414 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2CP_DATA" 20.94 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2C_AMOUNTS" 10.27 KB 0 rows<br />. . exported "SYSADM"."PS_YE_W2C_DATA" 20.95 KB 0 rows<br />. . exported "SYSADM"."PS_ZBD_JOBCODE_TBL" 14.60 KB 0 rows<br />. . exported "SYSADM"."PTGRANTTBL" 5.468 KB 0 rows<br />Master table "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded<br />**<br />Dump file set for SYSTEM.SYS_EXPORT_SCHEMA_01 is:<br />/opt/oracle/product/19c/dbhome_1/dmsdump/export_dms_sample_data_01.dmp<br />Job "SYSTEM"."SYS_EXPORT_SCHEMA_01" successfully completed at Mon Dec 19 20:13:57 2022 elapsed 0 00:38:22</pre> | DBA | 

### Importieren Sie das PeopleSoft Schema mithilfe von Oracle Data Pump in die Amazon RDS for Oracle-Datenbank
<a name="import-the-peoplesoft-schema-into-the-amazon-rds-for-oracle-database-by-using-oracle-data-pump"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Übertragen Sie die Dump-Datei auf die Zielinstanz. | Um Ihre Dateien mit zu übertragen`DBMS_FILE_TRANSFER`, müssen Sie einen Datenbank-Link von der Quelldatenbank zur Amazon RDS for Oracle Oracle-Instance erstellen. Nachdem die Verbindung hergestellt wurde, können Sie das Hilfsprogramm verwenden, um die Data Pump-Dateien direkt auf die RDS-Instance zu übertragen.Alternativ können Sie die Data Pump-Dateien an [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) übertragen und sie dann in die Amazon RDS for Oracle Oracle-Instance importieren. Weitere Informationen zu dieser Option finden Sie im Abschnitt Zusätzliche Informationen.Um einen Datenbank-Link zu erstellen`ORARDSDB`, der eine Verbindung zum Amazon RDS-Master-Benutzer auf der Ziel-DB-Instance herstellt, führen Sie die folgenden Befehle in der Quelldatenbank aus.<pre>$sqlplus / as sysdba<br />$ SQL> create database link orardsdb connect to admin identified by "*****" using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testpsft.*******.us-west-2.rds.amazonaws.com)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))';<br />Database link created.</pre> | DBA | 
| Testen Sie den Datenbank-Link. | Testen Sie den Datenbank-Link, um sicherzustellen, dass Sie mit sqlplus eine Verbindung zur Amazon RDS for Oracle Oracle-Zieldatenbank herstellen können.<pre>SQL><br />SQL> select name from v$database@orardsdb;<br />NAME<br />---------<br />ORCL<br />SQL></pre> | DBA | 
| Übertragen Sie die Dump-Datei in die Zieldatenbank. | Um die Dump-Datei in die Amazon RDS for Oracle Oracle-Datenbank zu kopieren, können Sie entweder das `DATA_PUMP_DIR` Standardverzeichnis verwenden oder mit dem folgenden Code Ihr eigenes Verzeichnis erstellen.<pre>exec rdsadmin.rdsadmin_util.create_directory(p_directory_name => ‘TARGET_PUMP_DIR’);</pre>Das folgende Skript kopiert eine `export_dms_sample_data_01.dmp` aus der Quell-Instance benannte Dump-Datei mithilfe des angegebenen Datenbank-Links in eine Amazon RDS for Oracle Oracle-Zieldatenbank. `orardsdb`<pre>$ sqlplus / as sysdba<br />SQL><br />BEGIN<br />DBMS_FILE_TRANSFER.PUT_FILE(<br />source_directory_object => 'DATA_PUMP_DIR',<br />source_file_name => 'export_dms_sample_data_01.dmp',<br />destination_directory_object => 'TARGET_PUMP_DIR’',<br />destination_file_name => 'export_dms_sample_data_01.dmp',<br />destination_database => 'orardsdb'<br />);<br />END;<br />/<br />PL/SQL procedure successfully completed.</pre> | DBA | 
| Listet die Dump-Datei in der Zieldatenbank auf. | Nachdem das PL/SQL Verfahren abgeschlossen ist, können Sie die Datendump-Datei in der Amazon RDS for Oracle Oracle-Datenbank auflisten, indem Sie den folgenden Code verwenden.<pre>SQL> select * from table (rdsadmin.rds_file_util.listdir(p_directory => ‘TARGET_PUMP_DIR’));</pre> | DBA | 
| Initiieren Sie den Import in der Zieldatenbank. | Bevor Sie den Importvorgang starten, richten Sie die Rollen, Schemas und Tablespaces in der Amazon RDS for Oracle Oracle-Zieldatenbank mithilfe der Datendumpdatei ein.Um den Import durchzuführen, greifen Sie mit dem Amazon RDS-Master-Benutzerkonto auf die Zieldatenbank zu und verwenden Sie den Namen der Verbindungszeichenfolge in der `tnsnames.ora` Datei, die die Amazon RDS for Oracle Database enthält`tns-entry`. Bei Bedarf können Sie eine Remap-Option hinzufügen, um die Datendumpdatei in einen anderen Tablespace oder unter einem anderen Schemanamen zu importieren.Verwenden Sie den folgenden Code, um den Import zu starten.<pre>impdp admin@orardsdb directory=TARGET_PUMP_DIR logfile=import.log dumpfile=export_dms_sample_data_01.dmp</pre>Um einen erfolgreichen Import sicherzustellen, überprüfen Sie die Import-Protokolldatei auf Fehler und überprüfen Sie Details wie Objektanzahl, Zeilenanzahl und ungültige Objekte. Wenn ungültige Objekte vorhanden sind, kompilieren Sie sie erneut. Vergleichen Sie außerdem die Quell- und Zieldatenbankobjekte, um sicherzustellen, dass sie übereinstimmen. | DBA | 

### Erstellen Sie eine AWS DMS-Replikationsaufgabe mithilfe von CDC, um die Live-Replikation durchzuführen
<a name="create-an-aws-dms-replication-task-using-cdc-to-perform-live-replication"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Replikationsaufgabe. | Erstellen Sie die AWS DMS-Replikationsaufgabe mithilfe der folgenden Schritte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.html)Nachdem Sie die Aufgabe erstellt haben, migriert sie das CDC von der SCN, die Sie im CDC-Startmodus bereitgestellt haben, zur Amazon RDS for Oracle Oracle-Datenbank-Instance. Sie können dies auch überprüfen, indem Sie die Protokolle überprüfen. CloudWatch  | Cloud-Administrator, DBA | 

### Überprüfen Sie das Datenbankschema auf der Amazon RDS for Oracle Oracle-Zieldatenbank
<a name="validate-the-database-schema-on-the-target-amazon-rds-for-oracle-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bestätigen Sie die Datenübertragung. | Nachdem die AWS DMS-Aufgabe gestartet wurde, können Sie auf der Seite **Aufgaben** auf der Registerkarte **Tabellenstatistiken** nachsehen, welche Änderungen an den Daten vorgenommen wurden.Sie können den Status der laufenden Replikation in der Konsole auf der Seite mit den **Aufgaben zur Datenbankmigration** überwachen.Weitere Informationen finden Sie unter [AWS DMS-Datenvalidierung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html). | Cloud-Administrator, DBA | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Beenden Sie die Replikation. | Brechen Sie den Replikationsvorgang ab und halten Sie die Dienste der Quellanwendung an. | Cloud-Administrator, DBA | 
| Starten Sie die PeopleSoft mittlere Stufe. | Starten Sie die PeopleSoft Middle-Tier-Zielanwendung in AWS und leiten Sie sie an die kürzlich migrierte Amazon RDS for Oracle Oracle-Datenbank weiter.Wenn Sie auf die Anwendung zugreifen, sollten Sie feststellen, dass jetzt alle App-Verbindungen mit der Amazon RDS for Oracle Oracle-Datenbank hergestellt sind. | DBA, Administrator PeopleSoft  | 
| Schalten Sie die Quelldatenbank aus. | Nachdem Sie bestätigt haben, dass keine Verbindungen mehr zur Quelldatenbank bestehen, kann sie ausgeschaltet werden. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-resources"></a>
+ [Erste Schritte mit AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_GettingStarted.html)
+ [Bewährte Methoden für den AWS Database Migration Service](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_BestPractices.html)
+ [Migration von Oracle-Datenbanken in die AWS-Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Zusätzliche Informationen
<a name="migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms-additional"></a>

**Dateien mit Amazon S3 übertragen**

Um die Dateien auf Amazon S3 zu übertragen, können Sie die AWS-CLI oder die Amazon S3 S3-Konsole verwenden. Nachdem Sie die Dateien zu Amazon S3 übertragen haben, können Sie die Amazon RDS for Oracle Oracle-Instance verwenden, um die Data Pump-Dateien aus Amazon S3 zu importieren.

Wenn Sie die Dump-Datei mithilfe der Amazon S3 S3-Integration als alternative Methode übertragen möchten, führen Sie die folgenden Schritte aus:

1. Erstellen Sie einen S3-Bucket.

1. Exportieren Sie die Daten mit Oracle Data Pump aus der Quelldatenbank.

1. Laden Sie die Data Pump-Dateien in den S3-Bucket hoch.

1. Laden Sie die Data Pump-Dateien aus dem S3-Bucket in die Amazon RDS for Oracle Oracle-Zieldatenbank herunter.

1. Führen Sie den Import mithilfe der Data Pump-Dateien durch.

**Anmerkung**  
Um große Datendateien zwischen S3- und RDS-Instances zu übertragen, wird empfohlen, die Amazon S3 Transfer Acceleration Acceleration-Funktion zu verwenden.

**Aktivieren Sie die zusätzliche Protokollierung**

Wenn Sie eine Warnmeldung erhalten, um die [zusätzliche Protokollierung](https://docs.oracle.com/database/121/SUTIL/GUID-D2DDD67C-E1CC-45A6-A2A7-198E4C142FA3.htm#SUTIL1583) in der Quelldatenbank für die laufende Replikation zu aktivieren, gehen Sie wie folgt vor.

```
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (FOREIGN KEY) COLUMNS;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (UNIQUE) COLUMNS;
```

# Migrieren Sie eine lokale MySQL-Datenbank zu Amazon RDS for MySQL
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql"></a>

*Lorenzo Mota, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer lokalen MySQL-Datenbank zu Amazon Relational Database Service (Amazon RDS) for MySQL. Das Muster beschreibt die Verwendung von AWS Database Migration Service (AWS DMS) oder nativen MySQL-Tools wie **mysqldump** für eine vollständige Datenbankmigration. Dieses Muster richtet sich in erster Linie an DBAs Lösungsarchitekten. Es kann in kleinen oder großen Projekten als Testverfahren (wir empfehlen mindestens einen Testzyklus) oder als abschließendes Migrationsverfahren verwendet werden. 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS Konto
+ Eine MySQL-Quelldatenbank in einem lokalen Rechenzentrum

**Einschränkungen**
+ Größenbeschränkung der Datenbank: [64 TB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Produktversionen**
+ MySQL-Versionen 5.5, 5.6, 5.7, 8.0. Die aktuelle Liste der unterstützten Versionen finden Sie in der AWS Dokumentation unter [MySQL on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html). Wenn Sie verwenden AWS DMS, siehe auch [Verwenden einer MySQL-kompatiblen Datenbank als Ziel AWS DMS für](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) MySQL-Versionen, die derzeit von unterstützt werden. AWS DMS

## Architektur
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale MySQL-Datenbank

**Zieltechnologie-Stack**
+ Eine Amazon RDS-DB-Instance, auf der MySQL ausgeführt wird

**Zielarchitektur**

Das folgende Diagramm zeigt die Zielimplementierung von Amazon RDS for MySQL nach der Migration.

![\[Ziel ist die Implementierung von Amazon RDS for MySQL nach der Umstellung.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/2e10114e-e389-4d24-9b6a-fa56beee5369.png)


**AWS Architektur der Datenmigration**

**Verwenden von AWS DMS:**

Das folgende Diagramm zeigt die Datenmigrationsarchitektur, wenn Sie bis AWS DMS zur Übernahme vollständige und inkrementelle Änderungen senden. Die Netzwerkverbindung von lokal zu vor Ort AWS hängt von Ihren Anforderungen ab und fällt nicht in den Anwendungsbereich dieses Musters.

![\[Datenmigrationsarchitektur zu AWS, wenn Sie AWS DMS verwenden.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/ecc9b282-1897-4971-99ed-83223b17000d.png)


**Verwendung nativer MySQL-Tools:**

Das folgende Diagramm zeigt die Datenmigrationsarchitektur, wenn Sie native MySQL-Tools verwenden. Die Export-Dumpdateien werden in Amazon Simple Storage Service (Amazon S3) kopiert und AWS vor der Übernahme in die Amazon RDS for MySQL MySQL-Datenbank importiert. Die Netzwerkverbindung von lokal zu AWS hängt von Ihren Anforderungen ab und fällt nicht in den Anwendungsbereich dieses Musters.

 

![\[Datenmigration zur AWS-Architektur, wenn Sie native MySQL-Tools verwenden.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/808809dd-030f-42af-a5a7-c4ba40456193/images/3bbec989-c3eb-473e-ba4a-032d6a4271c5.png)


**Hinweise:**
+ Abhängig von den Anforderungen an Ausfallzeiten und der Größe der Datenbank minimiert die Verwendung AWS DMS oder ein CDC-Tool (Change Data Capture) die Umstellungszeit. AWS DMS kann dazu beitragen, die Umstellungszeit auf das neue Ziel auf ein Minimum zu reduzieren (in der Regel Minuten). Eine Offline-Strategie mit **mysqldump** kann ausreichen, wenn die Größe der Datenbank und die Netzwerklatenz ein kurzes Zeitfenster zulassen. (Wir empfehlen, zu testen, um eine ungefähre Zeit zu erhalten.)
+ In der Regel AWS DMS erfordert eine CDC-Strategie mehr Überwachung und Komplexität als Offline-Optionen. 

## Tools
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-tools"></a>
+ **AWS-Services**: [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) hilft Ihnen bei der Migration von Datenspeichern in die AWS Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups. Hinweise zu MySQL-Quell- und Zieldatenbanken, die von unterstützt werden AWS DMS, finden Sie unter [MySQL-kompatible Datenbanken migrieren](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) zu. AWS Wenn Ihre Quelldatenbank von nicht unterstützt wird AWS DMS, müssen Sie eine andere Methode für die Migration Ihrer Daten wählen.
+ **Systemeigene MySQL-Tools**: [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html)
+ **Tools von Drittanbietern**[: Percona XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup)

## Epen
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Datenbankversionen. | Validieren Sie die Quell- und Zieldatenbankversionen. | DBA | 
| Identifizieren Sie die Hardwareanforderungen. | Identifizieren Sie die Hardwareanforderungen für den Zielserver. | DBA, Systemadministrator | 
| Identifizieren Sie die Speicheranforderungen. | Identifizieren Sie die Speicheranforderungen (wie Speichertyp und Kapazität) für die Zieldatenbank. | DBA, Systemadministrator | 
| Wählen Sie den Instance-Typ aus. | Wählen Sie den Zielinstanztyp auf der Grundlage von Kapazität, Speicher- und Netzwerkfunktionen aus. | DBA, Systemadministrator | 
| Identifizieren Sie die Anforderungen für den Netzwerkzugriff. | Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken.  | DBA, Systemadministrator | 
| Identifizieren Sie nicht unterstützte Objekte. | Identifizieren Sie nicht unterstützte Objekte (falls vorhanden) und ermitteln Sie den Migrationsaufwand. | DBA | 
| Identifizieren Sie Abhängigkeiten. | Identifizieren Sie alle Abhängigkeiten von entfernten Datenbanken. | DBA | 
| Ermitteln Sie die Strategie für die Anwendungsmigration.  | Ermitteln Sie die Strategie für die Migration von Client-Anwendungen.  | DBA, Besitzer der App, Systemadministrator | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). | Konfigurieren Sie Routentabellen, Internet-Gateways, NAT-Gateways und Subnetze. Weitere Informationen finden Sie unter [VPCs und Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in der Amazon RDS-Dokumentation. | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen. | Konfigurieren Sie IPs je nach Ihren Anforderungen Ports und CIDR-Bereiche oder spezifische. Der Standardport für MySQL ist 3306. Weitere Informationen finden Sie unter [Steuern des Zugriffs mit Sicherheitsgruppen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html) in der Amazon RDS-Dokumentation. | Systemadministrator | 
| Konfigurieren und starten Sie eine Amazon RDS for MySQL MySQL-DB-Instance. | Anweisungen finden Sie in der [Amazon RDS-Dokumentation unter Erstellen einer Amazon RDS-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateInstance.html). Suchen Sie nach unterstützten Versionen. | Systemadministrator | 

### Daten migrieren ‒ Option 1 (mit systemeigenen Tools)
<a name="migrate-data-option-1-using-native-tools"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie native MySQL-Tools oder Tools von Drittanbietern, um Datenbankobjekte und Daten zu migrieren. | Anweisungen finden Sie in der Dokumentation für MySQL-Tools wie [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) und [Percona XtraBackup](https://www.percona.com/software/mysql-database/percona-xtrabackup) (für physische Migration). Weitere Informationen zu Optionen finden Sie im Blogbeitrag [Migrationsoptionen für MySQL zu Amazon RDS for MySQL oder Amazon Aurora MySQL](https://aws.amazon.com/blogs/database/migration-options-for-mysql-to-amazon-rds-for-mysql-or-amazon-aurora-mysql/). | DBA | 

### Daten migrieren ‒ Option 2 (verwenden AWS DMS)
<a name="migrate-data-option-2-using-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie Daten mit AWS DMS. | Anweisungen finden Sie in der [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html). | DBA | 

### Führen Sie vor der Umstellung vorläufige Aufgaben durch
<a name="perform-preliminary-tasks-before-cutover"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Korrigieren Sie Diskrepanzen bei der Anzahl der Objekte. | Sammelt Objektzahlen aus der Quelldatenbank und der neuen Zieldatenbank. Korrigieren Sie Diskrepanzen in der Zieldatenbank. | DBA | 
| Überprüfen Sie die Abhängigkeiten. | Prüfen Sie, ob Abhängigkeiten (Links) zu und von anderen Datenbanken gültig sind und wie erwartet funktionieren. | DBA | 
| Tests durchführen. | Wenn es sich um einen Testzyklus handelt, führen Sie Abfragetests durch, sammeln Sie Metriken und beheben Sie Probleme. | DBA | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wechseln Sie zur Zieldatenbank. | Stellen Sie die Client-Anwendungen auf die neue Infrastruktur um. | DBA, App-Besitzer, Systemadministrator | 
| Bieten Sie Unterstützung beim Testen an. | Bieten Sie Unterstützung für funktionale Anwendungstests.  | DBA | 

### Schließt das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ressourcen herunterfahren. | Fahren Sie die temporären AWS Ressourcen herunter, die Sie für die Migration erstellt haben.  | DBA, Systemadministrator | 
| Validieren Sie Projektdokumente.  | Überprüfen und validieren Sie die Projektdokumente.  | DBA, App-Besitzer, Systemadministrator | 
| Sammeln Sie Metriken. | Erfassen Sie Kennzahlen wie die Zeit für die Migration, den Prozentsatz des manuellen Aufwands im Vergleich zum automatisierten Aufwand, Kosteneinsparungen usw. | DBA, App-Besitzer, Systemadministrator | 
| Schließt das Projekt ab.  | Schließen Sie das Projekt ab und geben Sie Feedback.  | DBA, App-Besitzer, Systemadministrator | 
| Nehmen Sie die Quelldatenbank außer Betrieb. | Wenn alle Migrations- und Umstellungsaufgaben abgeschlossen sind, nehmen Sie die lokale Datenbank außer Betrieb. | DBA, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql-resources"></a>

**Referenzen**
+ [Migrationsstrategie für relationale Datenbanken](https://docs.aws.amazon.com/prescriptive-guidance/latest/strategy-database-migration/welcome.html)
+ [AWS DMS website](https://aws.amazon.com/dms/)
+ [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/)
+ [Dokumentation zu Amazon RDS](https://docs.aws.amazon.com/rds/)
+ [Amazon-RDS-Preise](https://aws.amazon.com/rds/pricing/)
+ [Amazon VPC und Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Amazon RDS Multi-AZ-Bereitstellungen](https://aws.amazon.com/rds/details/multi-az/)
+ [Migrieren Sie lokale MySQL-Datenbanken mit Percona XtraBackup, Amazon EFS und Amazon S3 zu Aurora MySQL](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.html)
+ [Amazon-RDS-DB-Instance-Speicher](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)

**Tutorials**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Amazon RDS for SQL Server
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server"></a>

*Henrique Lobao, Jonathan Pereira Cruz und Vishal Singh, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-summary"></a>

Dieses Muster bietet Anleitungen für die Migration von einer lokalen Microsoft SQL Server-Datenbank zu Amazon Relational Database Service (Amazon RDS) für SQL Server. Es beschreibt zwei Optionen für die Migration: die Verwendung von AWS Data Migration Service (AWS DMS) oder die Verwendung systemeigener Microsoft SQL Server-Tools wie Copy Database Wizard.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Microsoft SQL Server-Quelldatenbank in einem lokalen Rechenzentrum

**Einschränkungen**
+ Größenbeschränkung für Datenbanken: 16 TB

**Produktversionen**
+ Die aktuelle Liste der unterstützten Versionen und Funktionen finden Sie in der AWS-Dokumentation unter [Microsoft SQL Server on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport). Wenn Sie AWS DMS verwenden, finden Sie weitere Informationen unter [Verwenden einer Microsoft SQL Server-Datenbank als Ziel für AWS DMS für](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.SQLServer.html) SQL Server-Versionen, die von AWS DMS unterstützt werden. 

## Architektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Microsoft SQL Server-Datenbank

**Zieltechnologie-Stack**
+ Eine Amazon RDS for SQL Server Server-DB-Instance 

**Quell- und Zielarchitektur**

*Verwenden von AWS DMS:*

![\[Architektur für die Migration von lokalem SQL Server zu Amazon RDS mithilfe von AWS DMS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/69b9877c-2d56-4d64-8475-a3dae789c5de.png)


*Verwendung nativer SQL Server-Tools:*

![\[Architektur für die Migration von lokalem SQL Server zu Amazon RDS mithilfe von SQL Server-Tools\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/27942833-c294-405c-90e6-32cc197e36ee/images/45ee14e4-3c7e-4b35-a2c9-3e8e3c7e6cee.png)


## Tools
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt verschiedene Arten von Quell- und Zieldatenbanken. Einzelheiten finden Sie unter [AWS DMS Step-by-Step Walkthroughs](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html). Wenn AWS DMS die Quelldatenbank nicht unterstützt, wählen Sie eine andere Methode für die Migration der Daten. 
+ Zu den systemeigenen Microsoft SQL Server-Tools gehören Sicherung und Wiederherstellung, der Assistent zum Kopieren von Datenbanken sowie das Kopieren und Anfügen von Datenbanken.

## Epen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Quell- und Zieldatenbankversion und die Engine. |  | DBA | 
| Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, Systemadministrator | 
| Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für Quell- und Zieldatenbanken. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. |  | DBA, Systemadministrator | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). |  | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen. |  | Systemadministrator | 
| Konfigurieren und starten Sie eine Amazon RDS-DB-Instance. |  | DBA, Systemadministrator | 

### Daten migrieren — Option 1
<a name="migrate-data---option-1"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie native SQL Server-Tools oder Tools von Drittanbietern, um Datenbankobjekte und Daten zu migrieren. |  | DBA | 

### Daten migrieren — Option 2
<a name="migrate-data---option-2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie Daten mit AWS DMS. |  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Anwendungsmigration. |  | DBA, App-Besitzer, Systemadministrator | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. |  | DBA, Besitzer der App, Systemadministrator | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die temporären AWS-Ressourcen herunter. |  | DBA, Systemadministrator | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, App-Besitzer, Systemadministrator | 
| Erfassen Sie Kennzahlen wie die Zeit bis zur Migration, den Prozentsatz manueller Aufgaben im Vergleich zu automatisierten Aufgaben und Kosteneinsparungen. |  | DBA, App-Besitzer, Systemadministrator | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  | DBA, App-Besitzer, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-resources"></a>

**Referenzen**
+ [Bereitstellung von Microsoft SQL Server auf Amazon Web Services](https://d1.awsstatic.com/whitepapers/RDS/Deploying_SQLServer_on_AWS.pdf) 
+ [AWS DMS-Webseite](https://aws.amazon.com/dms/)
+ [Amazon RDS — Preise](https://aws.amazon.com/rds/pricing/)
+ [Microsoft-Produkte auf AWS](https://aws.amazon.com/windows/products/)
+ [Microsoft-Lizenzierung auf AWS](https://aws.amazon.com/windows/resources/licensing/)
+ [Microsoft SQL Server auf AWS](https://aws.amazon.com/windows/products/sql/)
+ [Verwenden der Windows-Authentifizierung mit einer Microsoft SQL Server-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_SQLServerWinAuth.html)
+ [Amazon RDS Multi-AZ-Bereitstellungen](https://aws.amazon.com/rds/details/multi-az/)

**Tutorials und Videos**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)
+ [AWS DMS (Video)](https://www.youtube.com/watch?v=zb4GcjEdl8U) 
+ [Amazon RDS (Video)](https://www.youtube.com/watch?v=igRfulrrYCo)  

# Migrieren Sie Daten mithilfe von Rclone von Microsoft Azure Blob zu Amazon S3
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone"></a>

*Suhas Basavaraj, Aidan Keane und Corey Lane, Amazon Web Services*

## Zusammenfassung
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-summary"></a>

Dieses Muster beschreibt, wie [Rclone](https://rclone.org/) verwendet wird, um Daten vom Microsoft Azure Blob-Objektspeicher in einen Amazon Simple Storage Service (Amazon S3) -Bucket zu migrieren. Sie können dieses Muster verwenden, um eine einmalige Migration oder eine fortlaufende Synchronisation der Daten durchzuführen. Rclone ist ein in Go geschriebenes Befehlszeilenprogramm, das zum Verschieben von Daten zwischen verschiedenen Speichertechnologien von Cloud-Anbietern verwendet wird.

## Voraussetzungen und Einschränkungen
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Daten, die im Azure Blob Container Service gespeichert sind

## Architektur
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-architecture"></a>

**Quelltechnologie-Stack**
+ Azure Blob-Speichercontainer

**Zieltechnologie-Stack**
+ Amazon-S3-Bucket
+ Linux-Instanz von Amazon Elastic Compute Cloud (Amazon EC2)

**Architektur**

![\[Migrieren Sie Daten von Microsoft Azure zu Amazon S3\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6ead815d-7768-4726-b27d-97a70cd21081/images/abe69eee-632f-4ca2-abf6-3223f3f3ec94.png)


## Tools
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-tools"></a>
+ [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.
+ [Rclone](https://rclone.org/) **ist ein Open-Source-Befehlszeilenprogramm, das von rsync inspiriert wurde.** Es wird zur Verwaltung von Dateien auf vielen Cloud-Speicherplattformen verwendet.

## Best Practices
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-best-practices"></a>

Beachten Sie bei der Migration von Daten von Azure zu Amazon S3 die folgenden Überlegungen, um unnötige Kosten oder langsame Übertragungsgeschwindigkeiten zu vermeiden:
+ Erstellen Sie Ihre AWS-Infrastruktur in derselben geografischen Region wie das Azure-Speicherkonto und der Blob-Container, z. B. in der AWS-Region `us-east-1` (Nord-Virginia) und der Azure-Region. `East US`
+ Vermeiden Sie nach Möglichkeit die Verwendung von NAT Gateway, da dadurch Datenübertragungsgebühren sowohl für die eingehende als auch für die ausgehende Bandbreite anfallen.
+ Verwenden Sie einen [VPC-Gateway-Endpunkt für Amazon S3](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html), um die Leistung zu steigern.
+ Erwägen Sie die Verwendung einer EC2 Instance auf Basis des AWS Graviton2 (ARM) -Prozessors, um im Vergleich zu Intel x86-Instances geringere Kosten und eine höhere Leistung zu erzielen. Rclone ist stark querkompiliert und bietet eine vorkompilierte ARM-Binärdatei.

## Epen
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-epics"></a>

### Bereiten Sie AWS- und Azure-Cloud-Ressourcen vor
<a name="prepare-aws-and-azure-cloud-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie einen S3-Ziel-Bucket vor. | [Erstellen Sie einen neuen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) in der entsprechenden AWS-Region oder wählen Sie einen vorhandenen Bucket als Ziel für die Daten, die Sie migrieren möchten. | AWS-Administrator | 
| Erstellen Sie eine IAM-Instance-Rolle für Amazon EC2. | [Erstellen Sie eine neue AWS Identity and Access Management (IAM) -Rolle für Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#working-with-iam-roles). Diese Rolle gewährt Ihrer EC2 Instance Schreibzugriff auf den Ziel-S3-Bucket. | AWS-Administrator | 
| Fügen Sie der IAM-Instanzrolle eine Richtlinie hinzu. | Verwenden Sie die IAM-Konsole oder die AWS-Befehlszeilenschnittstelle (AWS CLI), um eine Inline-Richtlinie für die EC2 Instance-Rolle zu erstellen, die Schreibzugriffsberechtigungen für den S3-Ziel-Bucket gewährt. Eine Beispielrichtlinie finden Sie im Abschnitt [Zusätzliche Informationen](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional). | AWS-Administrator | 
| Starten Sie eine EC2 Instanz. | Starten Sie eine Amazon EC2 Linux-Instance, die für die Verwendung der neu erstellten IAM-Servicerolle konfiguriert ist. Diese Instanz benötigt außerdem Zugriff auf öffentliche Azure-API-Endpunkte über das Internet. Erwägen Sie die Verwendung von [AWS Graviton-basierten EC2 Instances](https://docs.aws.amazon.com/compute-optimizer/latest/ug/graviton-recommendations.html), um die Kosten zu senken. Rclone stellt ARM-kompilierte Binärdateien bereit. | AWS-Administrator | 
| Erstellen Sie einen Azure AD-Dienstprinzipal. | Verwenden Sie die Azure-CLI, um einen Azure Active Directory-Dienstprinzipal (Azure AD) zu erstellen, der schreibgeschützten Zugriff auf den Azure Blob-Quellspeichercontainer hat. Anweisungen finden Sie im Abschnitt [Zusätzliche](#migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional) Informationen. Speichern Sie diese Anmeldeinformationen auf Ihrer EC2 Instance am Standort`~/azure-principal.json`. | Cloud-Administrator, Azure | 

### Installieren und konfigurieren Sie Rclone
<a name="install-and-configure-rclone"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Downloaden und installieren Sie Rclone.  | Laden Sie das Befehlszeilenprogramm Rclone herunter und installieren Sie es. Installationsanweisungen finden Sie in der [Rclone-Installationsdokumentation](https://rclone.org/install/). | Allgemein AWS, Cloud-Administrator | 
| Rclone konfigurieren. | Kopieren Sie die folgende `rclone.conf` Beispieldatei. `AZStorageAccount`Ersetzen Sie es durch Ihren Azure Storage-Kontonamen und `us-east-1` durch die AWS-Region, in der sich Ihr S3-Bucket befindet. Speichern Sie diese Datei an dem Speicherort `~/.config/rclone/rclone.conf` auf Ihrer EC2 Instance.<pre>[AZStorageAccount]<br />type = azureblob<br />account = AZStorageAccount<br />service_principal_file = azure-principal.json<br /><br />[s3]<br />type = s3<br />provider = AWS<br />env_auth = true<br />region = us-east-1</pre> | Allgemein AWS, Cloud-Administrator | 
| Überprüfen Sie die Rclone-Konfiguration. | Um sicherzustellen, dass Rclone konfiguriert ist und die Berechtigungen ordnungsgemäß funktionieren, stellen Sie sicher, dass Rclone Ihre Konfigurationsdatei analysieren kann und dass auf Objekte in Ihrem Azure Blob-Container und S3-Bucket zugegriffen werden kann. Im Folgenden finden Sie beispielsweise Validierungsbefehle.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.html) | Allgemein AWS, Cloud-Administrator | 

### Migrieren Sie Daten mit Rclone
<a name="migrate-data-using-rclone"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie Daten aus Ihren Containern. | Führen Sie den Befehl Rclone [copy](https://rclone.org/commands/rclone_copy/) oder [sync](https://rclone.org/commands/rclone_sync/) aus.  **Beispiel: Kopieren**Dieser Befehl kopiert Daten aus dem Azure-Blob-Quellcontainer in den S3-Ziel-Bucket.<pre>rclone copy AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>**Beispiel: Sync**Dieser Befehl synchronisiert Daten zwischen dem Azure-Blob-Quellcontainer und dem Ziel-S3-Bucket. ****<pre>rclone sync AZStorageAccount:blob-container s3:amzn-s3-demo-bucket1</pre>Wenn Sie den Befehl **sync** verwenden, werden Daten, die nicht im Quellcontainer vorhanden sind, aus dem Ziel-S3-Bucket gelöscht. | Allgemein AWS, Cloud-Administrator | 
| Synchronisieren Sie Ihre Container.  | Führen Sie nach Abschluss der ersten Kopie den Befehl Rclone **sync** für die laufende Migration aus, sodass nur neue Dateien kopiert werden, die im S3-Ziel-Bucket fehlen. | Allgemein AWS, Cloud-Administrator | 
| Stellen Sie sicher, dass die Daten erfolgreich migriert wurden.  | [Führen Sie die Befehle Rclone [lsd](https://rclone.org/commands/rclone_lsd/) und ls aus, um zu überprüfen, ob die Daten erfolgreich in den Ziel-S3-Bucket kopiert wurden.](https://rclone.org/commands/rclone_ls/) | Allgemein AWS, Cloud-Administrator | 

## Zugehörige Ressourcen
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-resources"></a>
+ [Amazon S3 S3-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) (AWS-Dokumentation)
+ [IAM-Rollen für Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) (AWS-Dokumentation)
+ [Einen Microsoft Azure Blob-Container](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal) erstellen (Microsoft Azure-Dokumentation)
+ [Rclone-Befehle](https://rclone.org/commands/) (Rclone-Dokumentation)

## Zusätzliche Informationen
<a name="migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone-additional"></a>

**Beispiel für eine Rollenrichtlinie für Instanzen EC2 **

Diese Richtlinie gewährt Ihrer EC2 Instance Lese- und Schreibzugriff auf einen bestimmten Bucket in Ihrem Konto. Wenn Ihr Bucket einen vom Kunden verwalteten Schlüssel für die serverseitige Verschlüsselung verwendet, benötigt die Richtlinie möglicherweise zusätzlichen Zugriff auf AWS Key Management Service (AWS KMS).

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket/*",
              "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        }    
    ]
}
```

**Einen schreibgeschützten Azure AD-Dienstprinzipal erstellen**

Ein Azure-Dienstprinzipal ist eine Sicherheitsidentität, die von Kundenanwendungen, Diensten und Automatisierungstools für den Zugriff auf bestimmte Azure-Ressourcen verwendet wird. Stellen Sie sich das als Benutzeridentität (Login und Passwort oder Zertifikat) mit einer bestimmten Rolle und streng kontrollierten Zugriffsberechtigungen für Ihre Ressourcen vor. Gehen Sie wie folgt vor, um einen schreibgeschützten Dienstprinzipal zu erstellen, der die geringsten Rechte einhält und Daten in Azure vor versehentlichem Löschen schützt: 

1. Melden Sie sich bei Ihrem Microsoft Azure-Cloud-Kontoportal an und starten Sie Cloud Shell in PowerShell oder verwenden Sie die Azure-Befehlszeilenschnittstelle (CLI) auf Ihrer Workstation.

1. Erstellen Sie einen Dienstprinzipal und konfigurieren Sie ihn mit [schreibgeschütztem](https://docs.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#storage-blob-data-reader) Zugriff auf Ihr Azure BLOB-Speicherkonto. Speichern Sie die JSON-Ausgabe dieses Befehls in einer lokalen Datei namens. `azure-principal.json` Die Datei wird auf Ihre EC2 Instanz hochgeladen. Ersetzen Sie die Platzhaltervariablen, die in geschweiften Klammern (`{`und`}`) angezeigt werden, durch Ihre Azure-Abonnement-ID, den Namen der Ressourcengruppe und den Namen des Speicherkontos.

   ```
   az ad sp create-for-rbac `
   --name AWS-Rclone-Reader `
   --role "Storage Blob Data Reader" `
   --scopes /subscriptions/{Subscription ID}/resourceGroups/{Resource Group Name}/providers/Microsoft.Storage/storageAccounts/{Storage Account Name}
   ```

# Migrieren Sie von Couchbase Server zu Couchbase Capella auf AWS
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws"></a>

*Battulga Purevragchaa und Saurabh Shanbhag, Amazon Web Services*

*Mark Gamble, Keiner*

## Zusammenfassung
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-summary"></a>

Couchbase Capella ist eine vollständig verwaltete NoSQL-Datenbank als Service (DBaaS) für unternehmenskritische Anwendungen (z. B. Benutzerprofile oder Online-Kataloge und Inventarverwaltung). Couchbase Capella verwaltet Ihren DBaa S-Workload in einem von Couchbase verwalteten Amazon Web Services (AWS) -Konto. Capella macht es einfach, die Replikation mit mehreren Clustern, mehreren AWS-Regionen, Multicloud und Hybrid-Clouds über eine einzige Oberfläche auszuführen und zu verwalten.

Couchbase Capella hilft Ihnen dabei, Ihre Couchbase Server-Anwendungen sofort zu skalieren, sodass Sie innerhalb von Minuten Cluster mit mehreren Knoten erstellen können. [https://www.couchbase.com/products/full-text-search](https://www.couchbase.com/products/full-text-search) Außerdem entfällt die Notwendigkeit, Installationen, Upgrades, Backups und die allgemeine Datenbankwartung zu verwalten. 

Dieses Muster beschreibt die Schritte und bewährten Methoden für die Migration einer selbstverwalteten [Couchbase Server-Umgebung](https://www.couchbase.com/products/server) in die AWS-Cloud. Das Muster bietet einen wiederholbaren Prozess für die Migration von Daten und Indizes von Couchbase Serverclustern, die entweder vor Ort oder in der Cloud ausgeführt werden, zu Couchbase Capella. Mithilfe dieser Schritte können Sie Probleme bei der Migration vermeiden und den gesamten Migrationsprozess beschleunigen.

Dieses Muster bietet die folgenden zwei Migrationsoptionen:
+ **Option 1** ist geeignet, wenn Sie weniger als 50 Indizes migrieren müssen. 
+ **Option 2** ist geeignet, wenn Sie mehr als 50 Indizes migrieren müssen. 

Sie können auch [Beispieldaten auf Ihrem selbst verwalteten Couchbase-Server einrichten](https://docs.couchbase.com/server/current/manage/manage-settings/install-sample-buckets.html), um sie zusammen mit dem Migrationsleitfaden zu befolgen.

*Wenn Sie die **Migrationsoption 2** wählen oder Bereiche oder Sammlungen verwenden, die nicht dem Standardwert entsprechen, müssen Sie die Beispielkonfigurationsdatei verwenden, die sich im Abschnitt Zusätzliche Informationen befindet.*

## Voraussetzungen und Einschränkungen
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-prereqs"></a>

**Voraussetzungen**
+ Ein vorhandenes kostenpflichtiges Couchbase Capella-Konto. Sie können auch ein [Couchbase Capella-Konto auf AWS](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) erstellen und die kostenlose Testversion von Couchbase Capella nutzen und dann auf ein kostenpflichtiges Konto upgraden, um Ihren Cluster für die Migration zu konfigurieren. [Folgen Sie den Anweisungen unter Erste Schritte mit Couchbase Capella, um mit der Testversion zu beginnen.](https://docs.couchbase.com/cloud/get-started/create-account.html)
+ Eine bestehende, selbstverwaltete Couchbase Server-Umgebung, entweder vor Ort oder bei einem Cloud-Dienstanbieter bereitgestellt. 
+ Für Migrationsoption 2 Couchbase Shell und eine Konfigurationsdatei. Um die Konfigurationsdatei zu erstellen, können Sie die Beispieldatei verwenden, die sich im Abschnitt *Zusätzliche Informationen befindet*.
+ Vertrautheit mit der Verwaltung von Couchbase Server und Couchbase Capella.
+ Vertrautheit mit dem Öffnen von TCP-Ports und dem Ausführen von Befehlen in einer Befehlszeilenschnittstelle (CLI).

Für den Migrationsprozess sind außerdem die in der folgenden Tabelle beschriebenen Rollen und Fachkenntnisse erforderlich.


| 
| 
| Rolle | Kompetenz | Verantwortlichkeiten | 
| --- |--- |--- |
| Couchbase-Administrator | Vertrautheit mit Couchbase Server und Couchbase CapellaGrundkenntnisse in der Befehlszeile sind hilfreich, aber nicht erforderlich | Couchbase Server- und Capella-spezifische Aufgaben | 
| Systemadministrator, IT-Administrator | Vertrautheit mit der selbstverwalteten Couchbase Server-Systemumgebung und Verwaltung | Öffnen von Ports und Ermitteln von IP-Adressen auf selbstverwalteten Couchbase Server-Clusterknoten | 

 

**Einschränkungen**
+ Dieses Muster wird verwendet, um Daten, Indizes und [Couchbase-Volltextsuchindizes von Couchbase](https://docs.couchbase.com/server/current/fts/full-text-intro.html) Server zu Couchbase Capella auf AWS zu migrieren. [https://docs.couchbase.com/server/current/eventing/eventing-overview.html](https://docs.couchbase.com/server/current/eventing/eventing-overview.html)
+ Couchbase Capella ist in mehreren AWS-Regionen verfügbar. up-to-dateInformationen zu den Regionen, die Capella unterstützt, finden Sie unter [Amazon Web Services](https://docs.couchbase.com/cloud/reference/aws.html) in der Couchbase-Dokumentation.

**Produktversionen**
+ [Couchbase Server (Community oder Enterprise) Edition Version 5.x oder höher](https://docs.couchbase.com/server/current/release-notes/relnotes.html)

## Architektur
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-architecture"></a>

**Quelltechnologie-Stack**
+ Couchbase-Server

**Zieltechnologie-Stack**
+ Couchbase Capella

**Zielarchitektur**

![\[Couchbase Capella-Migration zum Couchbase-Cluster in der Capella-Datenebene auf AWS in vier Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/14ac5a81-eade-4708-9335-f5602fa07824/images/95cd7f33-742e-4d10-8e2c-37c7b4d9df45.png)


1. **Sie greifen über die Capella Control Plane auf Couchbase Capella zu.** Sie können die Capella Control Plane verwenden, um Folgendes zu tun:
   + Kontrollieren und überwachen Sie Ihr Konto.
   + Verwalten Sie Cluster und Daten, Indizes, Benutzer und Gruppen, Zugriffsberechtigungen, Überwachung und Ereignisse.

1. Cluster werden erstellt.

1. Die **Capella-Datenebene** befindet sich im von Couchbase verwalteten AWS-Konto. Nachdem Sie einen neuen Cluster erstellt haben, stellt Couchbase Capella ihn in mehreren Availability Zones in der ausgewählten AWS-Region bereit.

1. Sie können Couchbase-Anwendungen in einer VPC in Ihrem AWS-Konto entwickeln und bereitstellen. [In der Regel greift diese VPC über VPC-Peering auf die Capella-Datenebene zu.](https://docs.couchbase.com/cloud/clouds/private-network.html)

## Tools
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-tools"></a>
+ [Couchbase Cross Data Center Replication (XDCR)](https://docs.couchbase.com/cloud/current/clusters/xdcr/xdcr.html) hilft bei der Replikation von Daten über Cluster hinweg, die sich bei verschiedenen Cloud-Anbietern und verschiedenen Rechenzentren befinden. Es wird verwendet, um Daten aus selbstverwalteten Couchbase Server-Clustern nach Couchbase Capella zu migrieren.
**Anmerkung**  
XDCR kann nicht mit Couchbase Server Community Edition für die Migration zu Couchbase Capella verwendet werden. [Stattdessen können Sie cbexport verwenden.](https://docs.couchbase.com/server/current/tools/cbexport.html) Weitere Informationen finden Sie im Abschnitt *Daten aus der Community Edition migrieren*.
+ [Couchbase Shell](https://couchbase.sh/docs/) ist eine Befehlszeilen-Shell für Couchbase Server und Couchbase Capella für den Zugriff auf lokale und entfernte Couchbase-Cluster. In diesem Muster wird Couchbase Shell zur Migration von Indizes verwendet.
+ [cbexport](https://docs.couchbase.com/server/current/tools/cbexport.html) ist ein Couchbase-Hilfsprogramm zum Exportieren von Daten aus einem Couchbase-Cluster. In den [Couchbase Server CLI-Tools](https://docs.couchbase.com/server/current/cli/cli-intro.html) enthalten.

## Epen
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-epics"></a>

### Bereiten Sie die Migration vor
<a name="prepare-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bewerten Sie die Größe des selbstverwalteten Couchbase Server-Clusters. | Melden Sie sich bei der [Couchbase-Webkonsole für Couchbase](https://docs.couchbase.com/server/current/manage/manage-ui/manage-ui.html) Server an und überprüfen Sie die Knoten und Buckets Ihres selbstverwalteten Clusters. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Sie verwenden Ihre selbst verwalteten Couchbase Server-Clusterkonfigurationen als allgemeinen Leitfaden für die Dimensionierung und Konfiguration des Zielclusters auf Couchbase Capella.[Wenn Sie Hilfe bei einer detaillierteren Anleitung zur Dimensionierung von Couchbase Capella benötigen, wenden Sie sich an Couchbase.](https://www.couchbase.com/contact) | Couchbase-Administrator | 
| Zeichnen Sie die Couchbase-Dienstverteilung auf dem selbstverwalteten Couchbase Server-Cluster auf.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 
| Notieren Sie sich die IP-Adressen der selbstverwalteten Couchbase Server-Clusterknoten. | (Ignorieren Sie diesen Schritt, wenn Sie die Community Edition verwenden.) Notieren Sie sich die IP-Adresse für jeden Knoten in Ihrem Cluster. Sie werden später zur Zulassungsliste auf Ihrem Couchbase Capella-Cluster hinzugefügt. | Couchbase-Administrator, Systemadministrator | 

### Stellen Sie Ressourcen auf Couchbase Capella bereit und konfigurieren Sie sie
<a name="deploy-and-configure-resources-on-couchbase-capella"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Auswahl einer Vorlage. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 
| Wählen und konfigurieren Sie die Knoten. | Wählen und konfigurieren Sie die Knoten so, dass sie zu Ihrer selbstverwalteten Couchbase Server-Clusterumgebung passen, einschließlich der Anzahl der Knoten, der Dienstverteilung, der Rechenleistung oder des Arbeitsspeichers und des Speichers.[Couchbase Capella verwendet bewährte Methoden zur multidimensionalen Skalierung.](https://docs.couchbase.com/cloud/clusters/scale-cluster.html#scale-a-cluster) Dienste und Knoten können nur gemäß den bewährten Bereitstellungsmethoden ausgewählt werden. Dies kann bedeuten, dass Sie die Konfigurationen Ihres selbstverwalteten Couchbase Server-Clusters nicht genau anpassen können. | Couchbase-Administrator | 
| Stellen Sie den Cluster bereit. | Wählen Sie eine Supportzone und ein Supportpaket aus und stellen Sie dann den Cluster bereit. Ausführliche Schritte und Anweisungen finden Sie in der Couchbase-Dokumentation unter [Cluster erstellen](https://docs.couchbase.com/cloud/clusters/create-cluster.html).Wenn Sie die kostenlose Testversion von Couchbase Capella verwenden, müssen Sie sie in ein kostenpflichtiges Konto umwandeln, bevor Sie mit der Migration beginnen. **Um Ihr Konto zu konvertieren, öffnen Sie in der Couchbase Capella Control Plane den Bereich **Abrechnung** und wählen Sie dann Aktivierungs-ID hinzufügen.** Die Aktivierungs-ID wird an Ihre Rechnungskontakt-E-Mail-Adresse gesendet, nachdem Sie einen Kaufvertrag mit Couchbase Sales abgeschlossen haben oder nachdem Sie einen Kauf über [AWS](https://aws.amazon.com/marketplace/pp/prodview-xrhx5zgue5c26) Marketplace getätigt haben. | Couchbase-Administrator | 
| Erstellen Sie einen Benutzer mit Datenbankanmeldedaten.  | Ein Benutzer mit Datenbankanmeldedaten ist clusterspezifisch und besteht aus einem Benutzernamen, einem Passwort und einer Reihe von Bucket-Rechten. Dieser Benutzer ist erforderlich, um Buckets zu erstellen und auf Bucket-Daten zuzugreifen. Erstellen Sie in der Couchbase Capella Control Plane Datenbankanmeldedaten für den neuen Cluster, indem Sie den Anweisungen unter [Datenbankanmeldedaten konfigurieren](https://docs.couchbase.com/cloud/clusters/manage-database-users.html) in der Couchbase Capella-Dokumentation folgen.Einem Organisationsbenutzer müssen Anmeldeinformationen für die Organisationsrolle zugewiesen werden, wenn er entweder remote oder über die Couchbase Capella-Benutzeroberfläche auf Bucket-Daten in einem bestimmten Cluster zugreifen möchte. Dies ist unabhängig von Datenbankanmeldedaten, die normalerweise von Apps und Integrationen verwendet werden. Wenn Sie den Organisationsbenutzer erstellen, können Sie die Ziel-Buckets auf Ihrem Couchbase Capella-Cluster erstellen und verwalten. | Couchbase-Administrator | 
| Wenn Sie die Migrationsoption 2 verwenden, installieren Sie Couchbase Shell. | Sie können Couchbase Shell auf jedem System installieren, das Netzwerkzugriff sowohl auf Ihren selbst verwalteten Couchbase-Server als auch auf die Couchbase Capella-Cluster hat. Weitere Informationen finden [Sie unter Installieren von Couchbase Shell Version 1.0.0-beta.5 in der Couchbase Shell-Dokumentation](https://couchbase.sh/docs/#_installation).Stellen Sie sicher, dass Couchbase Shell installiert ist, indem Sie [eine Verbindung zu Ihrem selbstverwalteten Cluster in einem Befehlszeilenterminal testen](https://couchbase.sh/docs/#_connecting_to_a_cluster). | Couchbase-Administrator, Systemadministrator | 
| IP-Adressen zulassen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Weitere Informationen zu zulässigen IP-Adressen finden [Sie unter Zulässige IP-Adressen konfigurieren in der Couchbase-Dokumentation](https://docs.couchbase.com/cloud/get-started/configure-cluster-access.html#allow-ip-address). | Couchbase-Administrator, Systemadministrator | 
| Zertifikate konfigurieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator, Systemadministrator | 
| Erstellen Sie die Konfigurationsdatei für Couchbase Shell. | Erstellen Sie eine Konfigurations-Punktdatei im Home-Verzeichnis der Couchbase Shell-Installation (z. B.). `/<HOME_DIRECTORY>/.cbsh/config` Weitere Informationen finden Sie unter [Config Dotfiles](https://couchbase.sh/docs/#_the_config_dotfiles) in der Couchbase-Dokumentation.Fügen Sie der Konfigurationsdatei Verbindungseigenschaften für die Quell- und Zielcluster hinzu. Sie können die Beispielkonfigurationsdatei im Abschnitt *Zusätzliche Informationen* verwenden und die Einstellungen für Ihre Cluster bearbeiten. Speichern Sie die Konfigurationsdatei mit den aktualisierten Einstellungen in dem `.cbsh` Ordner (z. B.`/<HOME_DIRECTORY>/.cbsh/config`). | Couchbase-Administrator, Systemadministrator | 
| Ziel-Buckets erstellen. | Erstellen Sie für jeden Quell-Bucket einen Ziel-Bucket in Ihrem Couchbase Capella-Cluster, indem Sie den Anweisungen unter [Bucket erstellen](https://docs.couchbase.com/cloud/clusters/data-service/manage-buckets.html#add-bucket) in der Couchbase-Dokumentation folgen.Ihre Ziel-Bucket-Konfigurationen müssen mit den Bucket-Namen, Speichereinstellungen und Konfliktlösungseinstellungen der Buckets in Ihrem selbstverwalteten Couchbase Server-Cluster übereinstimmen. | Couchbase-Administrator | 
| Bereiche und Sammlungen erstellen. | Jeder Bucket enthält einen Standardbereich und eine Standardsammlung mit dem `_default._default` Schlüsselraum. Wenn Sie andere Schlüsselräume für Ihren Bereich und Ihre Sammlung verwenden, müssen Sie identische Schlüsselräume im Capella-Zielcluster erstellen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)<pre>scopes --clusters "On-Prem-Cluster" --bucket <BUCKET_NAME> | select scope | where scope != "_default" | each { |it| scopes create $it.scope --clusters "Capella-Cluster" }<br />collections --clusters "On-Prem-Cluster" --bucket <BUCKET_NAME> | select scope collection | where $it.scope != "_default" | where $it.collection != "_default" | each { |it| collections create $it.collection --clusters "Capella-Cluster" --bucket <BUCKET_NAME> --scope $it.scope }</pre> | Couchbase-Administrator | 

### Migrieren Sie die Daten aus der Enterprise Edition
<a name="migrate-the-data-from-enterprise-edition"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Öffnen Sie TCP-Ports auf den selbstverwalteten Couchbase Server-Clusterknoten. | Stellen Sie sicher, dass die entsprechenden Ports für die XDCR-Kommunikation auf den Knoten des selbstverwalteten Couchbase Server-Clusters geöffnet sind. [Weitere Informationen finden Sie in der Dokumentation zu den Couchbase Server-Ports.](https://docs.couchbase.com/server/current/install/install-ports.html#ports-listed-by-communication-path) | Couchbase-Administrator, Systemadministrator | 
| Wenn Sie Couchbase Server Enterprise Edition verwenden, richten Sie Couchbase XDCR ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 
| Starten Sie Couchbase XDCR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 

### Migrieren Sie die Indizes mithilfe von Option 1
<a name="migrate-the-indexes-by-using-option-1"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie selbstverwaltete Cluster-Indizes zu Couchbase Capella. | Wir empfehlen diesen Vorgang, wenn Sie weniger als 50 Indizes migrieren müssen. Wenn Sie mehr als 50 Indizes migrieren müssen, empfehlen wir Ihnen, die Migrationsoption 2 zu verwenden.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator, Systemadministrator | 

### Migrieren Sie die Indizes mithilfe von Option 2
<a name="migrate-the-indexes-by-using-option-2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie die Indexdefinitionen.  | Wir empfehlen diesen Vorgang, wenn Sie mehr als 50 Indizes migrieren müssen. Wenn Sie weniger als 50 Indizes migrieren müssen, empfehlen wir Ihnen, die Migrationsoption 1 zu verwenden.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator, Systemadministrator | 
| Erstellen Sie die Indexdefinitionen.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator, Systemadministrator | 

### Migrieren Sie Volltext-Suchindexe
<a name="migrate-full-text-search-indexes"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie selbstverwaltete Cluster-Volltextsuchindizes zu Couchbase Capella. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 

### Migrieren Sie Daten aus der Couchbase Community Edition
<a name="migrate-data-from-couchbase-community-edition"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Exportieren Sie Daten aus der selbstverwalteten Couchbase Server Community Edition. | Verschlüsseltes XDCR ist in der Couchbase Community Edition nicht verfügbar. Sie können Daten aus der Couchbase Community Edition exportieren und die Daten dann manuell in Couchbase Capella importieren.Verwenden `cbexport` Sie die Befehlszeile, um Daten aus dem Quell-Bucket zu exportieren.Der folgende Befehl dient als Beispiel.<pre>cbexport json \<br />--cluster localhost \<br />--bucket <SOURCE BUCKET NAME> \<br />--format lines \<br />--username <USERNAME> \<br />--password <PASSWORD> \<br />--include-key cbkey \<br />--scope-field cbscope \<br />--collection-field cbcoll \<br />--output cbexported_data.json</pre>Beachten Sie`cbkey`, dass `cbscope``cbcoll`, und beliebige Bezeichnungen `cbexported_data.json` sind. Sie werden später im Prozess referenziert. Wenn Sie sie also anders benennen möchten, notieren Sie sich das. | Couchbase-Administrator | 
| Daten in Couchbase Capella importieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html)Für große Dateien unterstützt Couchbase Capella den Befehlszeilenimport mit cURL. Weitere Informationen zu den Importoptionen finden Sie unter [Daten importieren](https://docs.couchbase.com/cloud/clusters/data-service/import-data-documents.html) in der Couchbase Capella-Dokumentation. | Couchbase-Administrator | 

### Testen und verifizieren Sie die Migration
<a name="test-and-verify-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Datenmigration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 
| Überprüfen Sie die Indexmigration.  | **Wählen Sie in der Couchbase Capella Control Plane in der Dropdownliste **Tools** für Ihren Zielcluster die Option Indizes aus.** Stellen Sie sicher, dass die Indizes migriert und erstellt wurden. | Couchbase-Administrator | 
| Überprüfen Sie die Abfrageergebnisse.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 
| Überprüfen Sie die Ergebnisse der Volltextsuche (gilt, wenn Sie FTS-Indizes migriert haben). | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-couchbase-server-to-couchbase-capella-on-aws.html) | Couchbase-Administrator | 

## Zugehörige Ressourcen
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-resources"></a>

**Bereiten Sie die Migration vor**
+ [Beginnen Sie mit der kostenlosen Testversion von Couchbase Capella](https://cloud.couchbase.com/sign-up)
+ [Anforderungen des Cloud-Anbieters für Couchbase Capella](https://docs.couchbase.com/cloud/reference/aws.html)
+ [Größenrichtlinien für Couchbase Capella](https://docs.couchbase.com/cloud/clusters/sizing.html)

**Migrieren Sie die Daten und Indizes**
+ [Couchbase XDCR](https://docs.couchbase.com/cloud/clusters/xdcr/xdcr.html)
+ [Couchbase Shell-Dokumentation](https://couchbase.sh/docs/)

**Couchbase Capella und Support SLAs **
+ [Couchbase](https://www.couchbase.com/capellasla) Capella-Serviceverträge () SLAs
+ [Support-Richtlinie für den Couchbase Capella-Service](https://www.couchbase.com/support-policy/cloud)

## Zusätzliche Informationen
<a name="migrate-from-couchbase-server-to-couchbase-capella-on-aws-additional"></a>

Der folgende Code ist eine [Beispielkonfigurationsdatei für](https://couchbase.sh/docs/#_the_config_dotfiles) Couchbase Shell. 

```
Version = 1
 
[[clusters]]
identifier = "On-Prem-Cluster"
hostnames = ["<SELF_MANAGED_COUCHBASE_CLUSTER>"]
default-bucket = "travel-sample"
username = "<SELF_MANAGED_ADMIN>"
password = "<SELF_MANAGED_ADMIN_PWD>"
tls-cert-path = "/<ABSOLUTE_PATH_TO_SELF_MANAGED_ROOT_CERT>"
data-timeout = "2500ms"
connect-timeout = "7500ms"
query-timeout = "75s"
 
[[clusters]]
identifier = "Capella-Cluster"
hostnames = ["<COUCHBASE_CAPELLA_ENDPOINT>"]
default-bucket = "travel-sample"
username = "<CAPELLA_DATABASE_USER>"
password = "<CAPELLA_DATABASE_USER_PWD>"
tls-cert-path = "/<ABSOLUTE_PATH_TO_COUCHBASE_CAPELLA_ROOT_CERT>"
data-timeout = "2500ms"
connect-timeout = "7500ms"
query-timeout = "75s"
```

Bevor Sie die Konfigurationsdatei speichern, stellen Sie anhand der folgenden Tabelle sicher, dass Sie Ihre eigenen Quell- und Zielclusterinformationen hinzugefügt haben.

 


|  |  | 
| --- |--- |
| <SELF\$1MANAGED\$1COUCHBASE\$1CLUSTER> | Verwenden Sie die IP-Adresse für Ihren selbstverwalteten Couchbase Server-Cluster. | 
| <SELF\$1MANAGED\$1ADMIN> | Verwenden Sie den Administratorbenutzer für Ihren selbstverwalteten Couchbase Server-Cluster. | 
| <ABSOLUTE\$1PATH\$1TO\$1SELF\$1MANAGED\$1ROOT\$1CERT> | Verwenden Sie den absoluten Pfad zur gespeicherten Root-Zertifikatsdatei für Ihren selbstverwalteten Couchbase Server-Cluster. | 
| <COUCHBASE\$1CAPELLA\$1ENDPOINT> | Verwenden Sie den Verbindungsendpunkt für Ihren Couchbase Capella-Cluster. | 
| <CAPELLA\$1DATABASE\$1USER> | Verwenden Sie den Datenbankbenutzer für Ihren Couchbase Capella-Cluster. | 
| <CAPELLA\$1DATABASE\$1USER\$1PWD> | Verwenden Sie das Datenbank-Benutzerpasswort für Ihren Couchbase Capella-Cluster. | 
| <ABSOLUTE\$1PATH\$1TO\$1COUCHBASE\$1CAPELLA\$1ROOT\$1CERT> | Verwenden Sie den absoluten Pfad zur gespeicherten Root-Zertifikatsdatei für Ihren Couchbase Capella-Cluster. | 

# Migrieren Sie von IBM WebSphere Application Server zu Apache Tomcat auf Amazon EC2
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2"></a>

*Neal Ardeljan und Afroz Khan, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-summary"></a>

Dieses Muster führt Sie durch die Schritte für die Migration von einem lokalen System mit Red Hat Enterprise Linux (RHEL) 6.9 oder höher, auf dem IBM WebSphere Application Server (WAS) ausgeführt wird, zu RHEL 8 mit Apache Tomcat auf einer Amazon Elastic Compute Cloud (Amazon) -Instance. EC2 

Das Muster kann auf die folgenden Quell- und Zielversionen angewendet werden: 
+ WebSphere Application Server 7.x auf Apache Tomcat 8 (mit Java 7 oder höher) 
+ WebSphere Anwendungsserver 8.x auf Apache Tomcat 8 (mit Java 7 oder höher) 
+ WebSphere Anwendungsserver 8.5.5.x auf Apache Tomcat 9 (mit Java 8 oder höher) 
+ WebSphere Anwendungsserver 8.5.5.x auf Apache Tomcat 10 (mit Java 8 oder höher) 

## Voraussetzungen und Einschränkungen
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-prereqs"></a>

**Voraussetzungen******
+ Ein aktives AWS-Konto 
+ Java-Quellcode mit den folgenden Annahmen:
  + Verwendet die Java Development Kit (JDK) -Version von Java 7 oder höher 
  + Verwendet das Spring- oder Apache Struts-Framework 
  + Verwendet weder das Enterprise Java Beans (EJB) -Framework noch andere WebSphere Serverfunktionen, die für Tomcat nicht ohne weiteres verfügbar sind
  + Verwendet hauptsächlich Servlets oder Java Server Pages () JSPs 
  + Verwendet JDBC-Konnektoren (Java Database Connectivity), um eine Verbindung zu Datenbanken herzustellen  
+ Quelle: IBM WebSphere Application Server Version 7.x oder höher 
+ Zielversion von Apache Tomcat 8.5 oder höher  

## Architektur
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-architecture"></a>

******Quelltechnologie-Stack**
+ Eine Webanwendung, die mit dem Apache Struts Model-View-Controller (MVC) -Framework erstellt wurde 
+ Eine Webanwendung, die auf IBM WebSphere Application Server Version 7.x oder 8.x ausgeführt wird
+ Eine Webanwendung, die einen LDAP-Connector (Lightweight Directory Access Protocol) verwendet, um eine Verbindung zu einem LDAP-Verzeichnis (iPlanet/eTrust) herzustellen 
+ Eine Anwendung, die IBM Tivoli Access Manager (TAM) -Konnektivität verwendet, um das TAM-Benutzerkennwort zu aktualisieren (in der aktuellen Implementierung verwenden Anwendungen PD.jar)

******Lokale Datenbanken**
+ Oracle Database 21c (21.0.0.0)
+ Oracle Database 19c (19.0.0.0)
+ Oracle Database 12c Release 2 (12.2.0.1)
+ Oracle Database 12c Release 1 (12.1.0.2)

**Zieltechnologie-Stack**
+ Apache Tomcat Version 8 (oder höher) wird auf RHEL auf einer Instanz ausgeführt EC2 
+ Amazon Relational Database Service (Amazon RDS) für Oracle

Weitere Informationen zu den von Amazon RDS unterstützten Oracle-Versionen finden Sie auf der Website [Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/). 

**Zielarchitektur**

![\[Architektur für die Migration von IBM WebSphere zu Apache Tomcat auf Amazon EC2\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/96f91201-e0a6-4d3f-a94e-7bd68a59cc4e/images/11afe7c0-b400-423b-9dfe-02a915fe47ff.png)


## Tools
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-tools"></a>
+ Anwendungsebene: Neuaufbau der Java-Anwendung in eine WAR-Datei.
+ Datenbankebene: systemeigenes Backup und Wiederherstellung von Oracle.
+ Apache Tomcat-Migrationstool für Jakarta EE. Dieses Tool konvertiert eine für Java EE 8 geschriebene Webanwendung, die auf Apache Tomcat 9 läuft, automatisch in die Ausführung auf Apache Tomcat 10, das Jakarta EE 9 implementiert.

## Epen
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Vervollständigen Sie die Anwendungserkennung, den aktuellen Status und die Leistungsbasis. |  | BA, Leiter der Migration | 
| Validieren Sie die Quell- und Zieldatenbankversionen. |  | DBA | 
| Identifizieren Sie die Hardwareanforderungen für die EC2 Zielserverinstanz. |  | DBA, SysAdmin | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, SysAdmin | 
| Wählen Sie den richtigen EC2 Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, SysAdmin | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. |  | DBA, SysAdmin | 
| Identifizieren Sie die Strategie und die Tools für die Anwendungsmigration. |  | DBA, Leiter der Migration | 
| Füllen Sie das Migrationsdesign und den Migrationsleitfaden für die Anwendung aus. |  | Leitung aufbauen, Leitung Migration | 
| Vervollständigen Sie das Runbook zur Anwendungsmigration. |  | Leiter Aufbau, Leiter der Umstellung, Leiter des Tests, Leiter der Migration | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). |  | SysAdmin | 
| Erstellen Sie die Sicherheitsgruppen. |  | SysAdmin | 
| Konfigurieren und starten Sie Amazon RDS for Oracle. |  | DBA, SysAdmin | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Endpoints oder verschaffen Sie sich Zugriff auf diese, um die Datenbank-Backupdateien abzurufen. |  | DBA | 
| Verwenden Sie die native Datenbank-Engine oder ein Drittanbieter-Tool, um Datenbankobjekte und Daten zu migrieren. | Einzelheiten finden Sie unter „Migrieren von Datenbankobjekten und Daten“ im Abschnitt *Zusätzliche Informationen*. | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Reichen Sie den Änderungsantrag (CR) für die Migration ein. |  | Übernahme (Leitung) | 
| Besorgen Sie sich die CR-Genehmigung für die Migration. |  | Übernahme (Leitung) | 
| Folgen Sie der Strategie zur Anwendungsmigration gemäß dem Runbook zur Anwendungsmigration. | Einzelheiten finden Sie unter „Einrichtung der Anwendungsebene“ im Abschnitt *Zusätzliche Informationen*. | DBA, Migrationsingenieur, App-Besitzer | 
| Aktualisieren Sie die Anwendung (falls erforderlich). |  | DBA, Migrationsingenieur, App-Besitzer | 
| Führen Sie die Funktions- und Nichtfunktionstests sowie die Datenvalidierungs-, SLA- und Leistungstests durch. |  | Testleiter, App-Besitzer, App-Nutzer | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Lassen Sie sich vom Inhaber der Anwendung oder dem Geschäftsinhaber genehmigen. |  | Übernahme (Leitung) | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. |  | DBA, Migrationsingenieur, App-Besitzer | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS-Ressourcen herunter. |  | DBA, Migrationsingenieur, SysAdmin | 
| Überprüfen und validieren Sie die Projektdokumente. |  | Leiter der Migration | 
| Erfassen Sie Kennzahlen wie die Zeit bis zur Migration, den Prozentsatz manueller Aufgaben im Vergleich zu automatisierten Aufgaben und Kosteneinsparungen. |  | Leiter der Migration | 
| Schließe das Projekt ab und gib Feedback. |  | Leiter der Migration, Inhaber der App | 

## Zugehörige Ressourcen
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-resources"></a>

**Referenzen**
+ [Dokumentation zu Apache Tomcat 10.0](https://tomcat.apache.org/tomcat-10.0-doc/index.html)
+ [Apache Tomcat 9.0-Dokumentation](https://tomcat.apache.org/tomcat-9.0-doc/index.html)
+ [Apache Tomcat 8.0-Dokumentation](https://tomcat.apache.org/tomcat-8.0-doc)
+ [Installationsanleitung für Apache Tomcat 8.0](https://tomcat.apache.org/tomcat-8.0-doc/setup.html)
+ [Apache Tomcat JNDI-Dokumentation](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html)
+ [Website von Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Amazon-RDS-Preise](https://aws.amazon.com/rds/pricing/) 
+ [Oracle und Amazon Web Services](https://aws.amazon.com/oracle/) 
+ [Oracle auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Amazon RDS Multi-AZ-Bereitstellungen](https://aws.amazon.com/rds/details/multi-az/) 

**Tutorials und Videos**
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

## Zusätzliche Informationen
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-additional"></a>

**Migrieren von Datenbankobjekten und Daten**

Wenn Sie beispielsweise native backup/restore Oracle-Dienstprogramme verwenden:

1. Erstellen Sie das Amazon Simple Storage Service (Amazon S3) -Backup für Datenbank-Backup-Dateien (optional).

1. Sichern Sie die Oracle-DB-Daten im gemeinsam genutzten Netzwerkordner.

1. Melden Sie sich beim Migration-Staging-Server an, um den Netzwerkfreigabeordner zuzuordnen.

1. Kopieren Sie Daten aus dem Netzwerkfreigabeordner in den S3-Bucket.

1. Fordern Sie eine Amazon RDS Multi-AZ-Bereitstellung für Oracle an.

1. Stellen Sie die lokale Datenbanksicherung auf Amazon RDS for Oracle wieder her.

**Einrichtung der Anwendungsebene**

1. Installieren Sie Tomcat 8 (oder 9/10) von der Apache Tomcat-Website.

1. Package Sie die Anwendung und die gemeinsam genutzten Bibliotheken in eine WAR-Datei.

1. Stellen Sie die WAR-Datei in Tomcat bereit.

1. Überwachen Sie das Startprotokoll `Linux cat` aller fehlenden gemeinsam genutzten Bibliotheken von WebSphere.

1. Sehen Sie sich den Startdatensatz `Linux cat` aller WebSphere -spezifischen Deployment-Deskriptor-Erweiterungen an.

1. Sammeln Sie alle fehlenden abhängigen Java-Bibliotheken vom WebSphere Server.

1. Ändern Sie WebSphere spezifische Deployment-Deskriptorelemente durch Tomcat-kompatible Äquivalente.

1. Erstellen Sie die WAR-Datei mit den abhängigen Java-Bibliotheken und den aktualisierten Deployment-Deskriptoren neu.

1. Aktualisieren Sie die LDAP-Konfiguration, die Datenbankkonfiguration und testen Sie die Verbindungen (siehe [Realm Configuration HOW-TO und [JNDI Datasource](https://tomcat.apache.org/tomcat-8.0-doc/jndi-datasource-examples-howto.html) HOW-TO in der Apache](https://tomcat.apache.org/tomcat-8.0-doc/realm-howto.html) Tomcat-Dokumentation).

1. Testen Sie die installierte Anwendung anhand der wiederhergestellten Amazon RDS for Oracle Oracle-Datenbank.

1. Erstellen Sie aus der EC2 Instance ein Amazon Machine Image (AMI) für Linux.

1. Starten Sie die fertige Architektur mit der Application Load Balancer- und Auto Scaling Scaling-Gruppe.

1. Aktualisieren Sie den URLs (mithilfe der WebSeal-Verbindung) so, dass er auf den Application Load Balancer verweist.

1. Aktualisieren Sie die Configuration Management Database (CMDB). 

# Migrieren Sie EC2 mit Auto Scaling von IBM WebSphere Application Server zu Apache Tomcat auf Amazon
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling"></a>

*Kevin Yung und Afroz Khan, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer Java-Anwendung von IBM WebSphere Application Server zu Apache Tomcat auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance mit aktiviertem Amazon EC2 Auto Scaling. 

Mit diesem Muster können Sie Folgendes erreichen:
+ Eine Senkung der IBM-Lizenzkosten
+ Hohe Verfügbarkeit durch Multi-AZ-Bereitstellung
+ Verbesserte Anwendungsausfallsicherheit mit Amazon EC2 Auto Scaling

## Voraussetzungen und Einschränkungen
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-prerequisites-and-limitations"></a>

**Voraussetzungen**
+ Java-Anwendungen (Version 7). *x* oder 8. *x*) sollte in LAMP-Stacks entwickelt werden.
+ Der Zielstatus besteht darin, Java-Anwendungen auf Linux-Hosts zu hosten. Dieses Muster wurde erfolgreich in einer Red Hat Enterprise Linux (RHEL) 7-Umgebung implementiert. Andere Linux-Distributionen können diesem Muster folgen, es sollte jedoch auf die Konfiguration der Apache Tomcat-Distribution verwiesen werden.
+ Sie sollten die Abhängigkeiten der Java-Anwendung verstehen.
+ Sie müssen Zugriff auf den Quellcode der Java-Anwendung haben, um Änderungen vornehmen zu können. 

**Einschränkungen und Änderungen an der Platformierung**
+ Sie sollten die Komponenten des Unternehmensarchivs (EAR) verstehen und sicherstellen, dass alle Bibliotheken in den WAR-Dateien der Webkomponente enthalten sind. Sie müssen das [Apache Maven WAR-Plugin konfigurieren und WAR-Dateiartefakte](https://maven.apache.org/plugins/maven-war-plugin/) erzeugen.
+ Bei der Verwendung von Apache Tomcat 8 besteht ein bekannter Konflikt zwischen servlet-api.jar und den in das Anwendungspaket integrierten JAR-Dateien. Um dieses Problem zu beheben, löschen Sie servlet-api.jar aus dem Anwendungspaket.
+ [Sie müssen WEB-INF/Resources konfigurieren, das sich im *Klassenpfad der Apache* Tomcat-Konfiguration befindet.](https://tomcat.apache.org/tomcat-8.0-doc/class-loader-howto.html) Standardmäßig werden die JAR-Bibliotheken nicht in das Verzeichnis geladen. Alternativ können Sie alle Ressourcen unter bereitstellen src/main/resources*.*
+ Suchen Sie in der Java-Anwendung nach fest codierten Kontextwurzeln und aktualisieren Sie das neue [Kontextstammverzeichnis von Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/config/context.html#Defining_a_context).
+ **Um die JVM-Laufzeitoptionen festzulegen, können Sie die Konfigurationsdatei setenv.sh im bin-Ordner von Apache Tomcat erstellen, z. B. JAVA\$1OPTS, JAVA\$1HOME usw.**  
+ Die Authentifizierung wird auf Containerebene konfiguriert und in Apache Tomcat-Konfigurationen als Realm eingerichtet. Die Authentifizierung wird für einen der folgenden drei Bereiche eingerichtet: 
  + [JDBC Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JDBC_Database_Realm_-_org.apache.catalina.realm.JDBCRealm) sucht nach Benutzern in einer relationalen Datenbank, auf die der JDBC-Treiber zugreift.
  + [DataSource Database Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#DataSource_Database_Realm_-_org.apache.catalina.realm.DataSourceRealm) sucht nach Benutzern in einer Datenbank, auf die JNDI zugreift. 
  + [JNDI Directory Realm](https://tomcat.apache.org/tomcat-8.0-doc/config/realm.html#JNDI_Directory_Realm_-_org.apache.catalina.realm.JNDIRealm) sucht nach Benutzern im LDAP-Verzeichnis (Lightweight Directory Access Protocol), auf das der JNDI-Anbieter zugreift. Für die Suchvorgänge ist Folgendes erforderlich: 
    + LDAP-Verbindungsdetails: Benutzersuchbasis, Suchfilter, Rollenbasis, Rollenfilter 
    + Der wichtige JNDI-Verzeichnisbereich: Stellt eine Verbindung zu LDAP her, authentifiziert Benutzer und ruft alle Gruppen ab, in denen ein Benutzer Mitglied ist
+ Autorisierung: Im Fall eines Containers mit einer rollenbasierten Autorisierung, die die Autorisierungseinschränkungen in web.xml überprüft, müssen Webressourcen definiert und mit den in den Einschränkungen definierten Rollen verglichen werden. Wenn LDAP nicht über eine Gruppenrollen-Zuordnung verfügt, müssen Sie das Attribut < security-role-ref > in web.xml festlegen, um eine Gruppenrollen-Zuordnung zu erreichen. [Ein Beispiel für ein Konfigurationsdokument finden Sie in der Oracle-Dokumentation.](https://docs.oracle.com/cd/E19226-01/820-7627/bncav/index.html) 
+ Datenbankverbindung: Erstellen Sie eine Ressourcendefinition in Apache Tomcat mit einer Amazon Relational Database Service (Amazon RDS) -Endpunkt-URL und Verbindungsdetails. Aktualisieren Sie den Anwendungscode mithilfe der JNDI-Suche so, dass er auf a DataSource verweist. Eine in definierte bestehende DB-Verbindung WebSphere würde nicht funktionieren, da sie die WebSphere JNDI-Namen verwendet. Sie können <resource-ref>in web.xml einen Eintrag mit dem JNDI-Namen und der DataSource Typdefinition hinzufügen. Ein Beispiel für ein Konfigurationsdokument finden Sie in der [Apache Tomcat-Dokumentation](https://tomcat.apache.org/tomcat-8.0-doc/jndi-resources-howto.html#JDBC_Data_Sources).
+ Protokollierung: Standardmäßig protokolliert Apache Tomcat in der Konsole oder in einer Protokolldatei. [Sie können die Ablaufverfolgung auf Realmebene aktivieren, indem Sie *logging.properties aktualisieren (siehe Logging* in Tomcat).](https://tomcat.apache.org/tomcat-8.0-doc/logging.html) *Wenn Sie Apache Log4j verwenden, um Logs an eine Datei anzuhängen, müssen Sie tomcat-juli herunterladen und dem Klassenpfad hinzufügen.*
+ Sitzungsmanagement: Wenn Sie IBM WebSEAL für den Lastenausgleich von Anwendungen und das Sitzungsmanagement beibehalten, sind keine Änderungen erforderlich. [Wenn Sie einen Application Load Balancer oder Network Load Balancer auf AWS verwenden, um die IBM WebSeal-Komponente zu ersetzen, müssen Sie das Sitzungsmanagement mithilfe einer ElastiCache Amazon-Instance mit einem Memcache-Cluster einrichten und Apache Tomcat für die Verwendung von Open-Source-Sitzungsmanagement einrichten.](https://github.com/magro/memcached-session-manager) 
+ Wenn Sie den IBM WebSeal Forward Proxy verwenden, müssen Sie einen neuen Network Load Balancer auf AWS einrichten. Verwenden Sie die vom Network Load Balancer für WebSeal-Verbindungskonfigurationen IPs bereitgestellten.
+ SSL-Konfiguration: Wir empfehlen, Secure Sockets Layer (SSL) für end-to-end die Kommunikation zu verwenden. Folgen Sie den Anweisungen in der Apache Tomcat-Dokumentation, um eine SSL-Serverkonfiguration in [Apache Tomcat](https://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html) einzurichten. 

## Architektur
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-architecture"></a>

**Quelltechnologie-Stack**
+ IBM WebSphere Anwendungsserver

 

**Zieltechnologie-Stack**
+ Die Architektur verwendet [Elastic Load Balancing (Version 2](https://docs.aws.amazon.com/elasticloadbalancing/)). Wenn Sie IBM WebSeal für Identify Management und Load Balancing verwenden, können Sie einen Network Load Balancer auf AWS auswählen, der in den IBM WebSeal Reverse-Proxy integriert werden soll.
+ Java-Anwendungen werden auf einem Apache Tomcat-Anwendungsserver bereitgestellt, der auf einer EC2 Instance in einer [Amazon EC2 Auto Scaling Scaling-Gruppe](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) ausgeführt wird. Sie können eine [Skalierungsrichtlinie](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) einrichten, die auf CloudWatch Amazon-Metriken wie der CPU-Auslastung basiert. 
+ Wenn Sie die Verwendung von IBM WebSeal für den Lastenausgleich einstellen, können Sie [Amazon ElastiCache for Memcached für die Sitzungsverwaltung](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html) verwenden.
+ Für die Back-End-Datenbank können Sie [High Availability (Multi-AZ) für Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) bereitstellen und einen Datenbank-Engine-Typ auswählen.

 

**Zielarchitektur**

![\[AWS Cloud architecture with VPC, two availability zones, load balancer, and database components.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/52b91dab-7b3b-4751-abe2-25e7c7cd8d89/images/25125023-9a81-452a-9ada-184e2416cc02.png)


## Tools
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-tools"></a>
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [AWS-Befehlszeilenschnittstelle (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)
+ Apache Tomcat (Version 7). *x* oder 8. *x*)
+ RHEL 7 oder Centos 7
+ [Bereitstellung von Amazon RDS Multi-AZ](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache für Memcached (optional](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html))

## Epen
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-epics"></a>

### VPC einrichten
<a name="set-up-the-vpc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). |  |  | 
| Erstellen Sie Subnetze. |  |  | 
| Erstellen Sie bei Bedarf Routing-Tabellen. |  |  | 
| Erstellen Sie Listen zur Netzwerkzugriffskontrolle (ACLs). |  |  | 
| Richten Sie AWS Direct Connect oder eine Unternehmens-VPN-Verbindung ein. |  |  | 

### Führen Sie die Anwendung auf eine neue Plattform
<a name="replatform-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Refaktorieren Sie die Maven-Konfiguration des Anwendungsbuilds, um die WAR-Artefakte zu generieren. |  |  | 
| Refaktorieren Sie die Datenquellen für Anwendungsabhängigkeiten in Apache Tomcat. |  |  | 
| Refaktorieren Sie die Anwendungsquellcodes so, dass sie JNDI-Namen in Apache Tomcat verwenden. |  |  | 
| Stellen Sie die WAR-Artefakte in Apache Tomcat bereit. |  |  | 
| Vollständige Anwendungsvalidierungen und Tests. |  |  | 

### Konfigurieren Sie das Netzwerk
<a name="configure-the-network"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die Unternehmensfirewall so, dass die Verbindung zu den Abhängigkeitsdiensten hergestellt werden kann. |  |  | 
| Konfigurieren Sie die Unternehmensfirewall so, dass Endbenutzer auf Elastic Load Balancing auf AWS zugreifen können. |  |  | 

### Erstellen Sie die Anwendungsinfrastruktur
<a name="create-the-application-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Anwendung und stellen Sie sie auf einer EC2 Instanz bereit. |  |  | 
| Erstellen Sie einen Amazon ElastiCache for Memcached-Cluster für die Sitzungsverwaltung. |  |  | 
| Erstellen Sie eine Amazon RDS Multi-AZ-Instance für die Backend-Datenbank. |  |  | 
| Erstellen Sie SSL-Zertifikate und importieren Sie sie in AWS Certificate Manager (ACM). |  |  | 
| Installieren Sie SSL-Zertifikate auf Load Balancern. |  |  | 
| Installieren Sie SSL-Zertifikate für Apache Tomcat-Server. |  |  | 
| Führen Sie die Validierungen und Tests der Anwendungen durch. |  |  | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die bestehende Infrastruktur herunter. |  |  | 
| Stellen Sie die Datenbank aus der Produktion in Amazon RDS wieder her. |  |  | 
| Überarbeiten Sie die Anwendung, indem Sie DNS-Änderungen vornehmen. |  |  | 

## Zugehörige Ressourcen
<a name="migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling-related-resources"></a>

**Referenzen**
+ [Dokumentation zu Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html)
+ [Installationsanleitung für Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html)
+ [Apache Tomcat JNDI-Dokumentation](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html)
+ [Amazon RDS Multi-AZ-Bereitstellungen](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon ElastiCache für Memcached](https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/WhatIs.html)

**Tutorials und Videos**
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migrieren Sie eine.NET-Anwendung von Microsoft Azure App Service zu AWS Elastic Beanstalk
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk"></a>

*Raghavender Madamshitti, Amazon Web Services*

## Zusammenfassung
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-summary"></a>

Dieses Muster beschreibt, wie eine auf Microsoft Azure App Service gehostete .NET-Webanwendung zu AWS Elastic Beanstalk migriert wird. Es gibt zwei Möglichkeiten, Anwendungen zu Elastic Beanstalk zu migrieren:
+ Verwenden Sie AWS Toolkit for Visual Studio — Dieses Plugin für die Microsoft Visual Studio IDE bietet die einfachste und unkomplizierteste Möglichkeit, benutzerdefinierte.NET-Anwendungen in AWS bereitzustellen. Sie können diesen Ansatz verwenden, um .NET-Code direkt in AWS bereitzustellen und unterstützende Ressourcen wie Amazon Relational Database Service (Amazon RDS) für SQL Server-Datenbanken direkt aus Visual Studio zu erstellen.
+ Upload und Bereitstellung auf Elastic Beanstalk — Jeder Azure App Service umfasst einen Hintergrunddienst namens Kudu, der für die Erfassung von Speicherabbildern und Bereitstellungsprotokollen, die Anzeige von Konfigurationsparametern und den Zugriff auf Bereitstellungspakete nützlich ist. Sie können die Kudu-Konsole verwenden, um auf Azure App Service-Inhalte zuzugreifen, das Bereitstellungspaket zu extrahieren und das Paket dann mithilfe der Upload- und Bereitstellungsoption in der Elastic Beanstalk-Konsole auf Elastic Beanstalk hochzuladen.

Dieses Muster beschreibt den zweiten Ansatz (Hochladen Ihrer Anwendung auf Elastic Beanstalk über Kudu). Das Muster verwendet auch die folgenden AWS-Services: AWS Elastic Beanstalk, Amazon Virtual Private Cloud (Amazon VPC), Amazon CloudWatch, Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling, Amazon Simple Storage Service (Amazon S3) und Amazon Route 53 

Die.NET-Webanwendung wird auf AWS Elastic Beanstalk bereitgestellt, das in einer Amazon EC2 Auto Scaling Scaling-Gruppe ausgeführt wird. Sie können eine Skalierungsrichtlinie einrichten, die auf CloudWatch Amazon-Metriken wie der CPU-Auslastung basiert. Für eine Datenbank können Sie je nach Anwendung und Geschäftsanforderungen Amazon RDS in einer Multi-AZ-Umgebung oder Amazon DynamoDB verwenden. 

## Voraussetzungen und Einschränkungen
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine .NET-Webanwendung, die in Azure App Service ausgeführt wird
+ Erlaubnis zur Verwendung der Azure App Service Kudu-Konsole

**Produktversionen**
+ .NET Core (x64) 1.0.1, 2.0.0 oder höher oder.NET Framework 4.x, 3.5 (siehe Plattformhistorie [von.NET auf Windows Server](https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platform-history-dotnet.html))
+ Internetinformationsdienste (IIS) Version 8.0 oder höher, ausgeführt auf Windows Server 2012 oder höher
+ .NET 2.0 oder 4.0 Runtime.

## Architektur
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-architecture"></a>

**Quelltechnologie-Stack**
+  Anwendung, die mit.NET Framework 3.5 oder höher oder .NET Core 1.0.1, 2.0.0 oder höher entwickelt und auf Azure App Service (Web-App oder API-App) gehostet wird

**Zieltechnologie-Stack**
+ AWS Elastic Beanstalk wird in einer Amazon EC2 Auto Scaling Scaling-Gruppe ausgeführt

**Migrationsarchitektur**

![\[Kudu greift auf Azure App Service-Inhalte zu, ruft das Bereitstellungspaket ab und lädt es auf Elastic Beanstalk hoch.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/dd15f97b-9cf2-4bcc-af45-44df1c4ca4a5.png)


 

**Arbeitsablauf bei der Bereitstellung**

![\[Bereitstellungs-Workflow zum Erstellen einer App, deren Veröffentlichung in der Startumgebung und anschließender Verwaltung der Umgebung.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/df606a2d-b0a8-4035-b377-0a760e7300c9/images/accec77d-c753-4166-8f27-bd4932b3d884.png)


## Tools
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-tools"></a>

**Tools**
+ .NET Core oder.NET Framework
+ C\$1
+ IIS
+ Kudu-Konsole

**AWS-Services und -Funktionen**
+ [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) — Elastic Beanstalk ist ein easy-to-use Service für die Bereitstellung und Skalierung von.NET-Webanwendungen. Elastic Beanstalk verwaltet automatisch die Kapazitätsbereitstellung, den Lastenausgleich und die auto Skalierung.
+ [Amazon EC2 Auto Scaling Scaling-Gruppe](https://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html) — Elastic Beanstalk umfasst eine Auto Scaling Scaling-Gruppe, die die EC2 Amazon-Instances in der Umgebung verwaltet. In einer Umgebung mit nur einer Instance stellt die Auto Scaling-Gruppe sicher, dass immer eine Instance ausgeführt wird. In einer Umgebung mit Lastenausgleich können Sie die Gruppe mit einer Reihe von Instances konfigurieren, die ausgeführt werden sollen, und Amazon EC2 Auto Scaling fügt Instances je nach Bedarf hinzu oder entfernt sie, je nach Auslastung.
+ [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) — Wenn Sie Load Balancing in AWS Elastic Beanstalk aktivieren, wird ein Load Balancer erstellt, der den Traffic auf die EC2 Instances in der Umgebung verteilt.
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) — Elastic Beanstalk verwendet Amazon automatisch CloudWatch , um Informationen über Ihre Anwendungs- und Umgebungsressourcen bereitzustellen. Amazon CloudWatch unterstützt Standardmetriken, benutzerdefinierte Metriken und Alarme.
+ [Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html) — Amazon Route 53 ist ein hochverfügbarer und skalierbarer Cloud-Webservice für das Domain Name System (DNS). Sie können Route 53-Aliaseinträge verwenden, um benutzerdefinierte Domainnamen AWS Elastic Beanstalk-Umgebungen zuzuordnen.

## Epen
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-epics"></a>

### Einrichten einer VPC
<a name="set-up-a-vpc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie eine virtuelle private Cloud (VPC) ein. | Erstellen Sie in Ihrem AWS-Konto eine VPC mit den erforderlichen Informationen. | Systemadministrator | 
| Erstellen Sie Subnetze. | Erstellen Sie zwei oder mehr Subnetze in Ihrer VPC. | Systemadministrator | 
| Erstellen Sie eine Routing-Tabelle. | Erstellen Sie eine Routentabelle, die Ihren Anforderungen entspricht. | Systemadministrator | 

### Elastic Beanstalk einrichten
<a name="set-up-elastic-beanstalk"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Greifen Sie auf die Azure App Service Kudu-Konsole zu. | **Greifen Sie über das Azure-Portal auf Kudu zu, indem Sie zum App Service-Dashboard navigieren und dann **Advanced Tools, Go** auswählen.** Oder Sie können die Azure App Service-URL wie folgt ändern:. `https://<appservicename>.scm.azurewebsites.net` | App-Entwickler, Systemadministrator | 
| Laden Sie das Bereitstellungspaket von Kudu herunter. | Navigieren Sie zu Windows, PowerShell indem Sie die **DebugConsole**Option auswählen. Dadurch wird die Kudo-Konsole geöffnet. Gehe zum `wwwroot` Ordner und lade ihn herunter. Dadurch wird das Azure App Service-Bereitstellungspaket als ZIP-Datei heruntergeladen. Ein Beispiel finden Sie im Anhang. | App-Entwickler, Systemadministrator | 
| Erstellen Sie ein Paket für Elastic Beanstalk. | Entpacken Sie das Bereitstellungspaket, das Sie von Azure App Service heruntergeladen haben. Erstellen Sie eine JSON-Datei mit dem Namen `aws-windows-deployment-manifest.json` (diese Datei ist nur für.NET Core-Anwendungen erforderlich). Erstellen Sie eine ZIP-Datei, die die Azure App Service-Bereitstellungspaketdatei enthält`aws-windows-deployment-manifest.json`. Ein Beispiel finden Sie im Anhang. | App-Entwickler, Systemadministrator | 
| Erstellen Sie eine neue Elastic Beanstalk Beanstalk-Anwendung. | In der Elastic-Beanstalk-Konsole öffnen. Wählen Sie eine bestehende Anwendung oder erstellen Sie eine neue Anwendung. | App-Entwickler, Systemadministrator | 
| Erstellen Sie die Umgebung. | Wählen Sie im **Aktionsmenü** der Elastic Beanstalk Beanstalk-Konsole die Option Umgebung **erstellen** aus. Wählen Sie die Webserver-Umgebung und die .NET/IIS-Plattform aus. Wählen Sie für Anwendungscode **Upload** aus. Laden Sie die ZIP-Datei hoch, die Sie für Elastic Beanstalk vorbereitet haben, und wählen Sie dann **Create** Environment. | App-Entwickler, Systemadministrator | 
| Konfigurieren Sie Amazon CloudWatch. | Standardmäßig ist die grundlegende CloudWatch Überwachung aktiviert. **Wenn Sie die Konfiguration ändern möchten, wählen Sie im Elastic Beanstalk-Assistenten die veröffentlichte Anwendung und dann Monitoring aus.** | Systemadministrator | 
| Stellen Sie sicher, dass sich das Bereitstellungspaket in Amazon S3 befindet.  | Wenn die Anwendungsumgebung erstellt wurde, finden Sie das Bereitstellungspaket im S3-Bucket. | App-Entwickler, Systemadministrator | 
| Testen Sie die Anwendung. | Wenn die Umgebung erstellt wurde, verwenden Sie die in der Elastic Beanstalk Beanstalk-Konsole angegebene URL, um die Anwendung zu testen. | Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-resources"></a>
+ [Konzepte von AWS Elastic Beanstack](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.html) (Elastic Beanstalk Beanstalk-Dokumentation)
+ [Erste Schritte mit.NET auf Elastic Beanstalk (Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/dotnet-getstarted.html) Beanstalk-Dokumentation)
+ [Kudu-Konsole ()](https://github.com/projectkudu/kudu/wiki/Kudu-console) GitHub
+ [Verwendung von „Kudu“ zur Verwaltung von Azure Web Apps](https://www.gslab.com/blogs/kudu-azure-web-app/) (GS Lab-Artikel)
+ [Benutzerdefinierte ASP.NET Core Elastic Beanstalk Beanstalk-Bereitstellungen](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-beanstalk-custom-netcore.html) (AWS Toolkit for Visual Studio Studio-Benutzerhandbuch)
+ [Dokumentation zu Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)
+ [Von AWS Elastic Beanstalk unterstützte Plattformen](https://docs.amazonaws.cn/en_us/elasticbeanstalk/latest/platforms/platforms-supported.html) (Elastic Beanstalk Beanstalk-Dokumentation)
+ [Bereitstellen einer Webanwendung in AWS](https://www.c-sharpcorner.com/article/deploying-a-web-application-to-aws/) (C\$1 Corner-Artikel)
+ [Skalierung der Größe Ihrer Auto Scaling Scaling-Gruppe](https://docs.aws.amazon.com/autoscaling/ec2/userguide/scaling_plan.html) ( EC2 Amazon-Dokumentation)
+ [Hochverfügbarkeit (Multi-AZ) für Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) (Amazon RDS-Dokumentation)

## Zusätzliche Informationen
<a name="migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk-additional"></a>

**Hinweise**
+ Wenn Sie eine lokale Datenbank oder eine Azure SQL Server-Datenbank zu Amazon RDS migrieren, müssen Sie auch die Datenbankverbindungsdetails aktualisieren. 
+ Zu Testzwecken ist eine Beispiel-Demoanwendung beigefügt.

## Anlagen
<a name="attachments-df606a2d-b0a8-4035-b377-0a760e7300c9"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/df606a2d-b0a8-4035-b377-0a760e7300c9/attachments/attachment.zip)

# Migrieren Sie von Oracle WebLogic zu Apache Tomcat (ToMEE) auf Amazon ECS
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs"></a>

*Anya Epishcheva und Harshad Gohil, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-summary"></a>

In diesem Muster werden die Schritte für die Migration eines lokalen Oracle Solaris SPARC-Systems, auf dem Oracle ausgeführt wird, WebLogic zu einer Docker-Container-basierten Installation beschrieben, auf der [Apache TomEE (Apache Tomcat](http://tomee.apache.org/) mit zusätzlicher Container-Unterstützung) mit Amazon Elastic Container Service (Amazon ECS) ausgeführt wird. 

Informationen zur Migration von Datenbanken, die mit den Anwendungen verknüpft sind, die Sie von Oracle WebLogic zu Tomcat migrieren, finden Sie in den Datenbankmigrationsmustern in diesem Katalog. 

**Best Practices**

Die Schritte für die Migration von Java- und Java Enterprise Edition (Java EE) -Webanwendungen variieren je nach der Anzahl der containerspezifischen Ressourcen, die von der Anwendung verwendet werden. Spring-basierte Anwendungen sind in der Regel einfacher zu migrieren, da sie nur eine geringe Anzahl von Abhängigkeiten vom Bereitstellungscontainer aufweisen. Im Gegensatz dazu erfordern Java EE-Anwendungen, die Enterprise JavaBeans (EJBs) und verwaltete Container-Ressourcen wie Thread-Pools, Java Authentication and Authorization Service (JAAS) und Container-Managed Persistence (CMP) verwenden, mehr Aufwand. 

Anwendungen, die für Oracle Application Server entwickelt wurden, verwenden häufig die Oracle Identity Management Suite. Kunden, die auf Open-Source-Anwendungsserver migrieren, entscheiden sich häufig dafür, Identitäts- und Zugriffsmanagement mithilfe eines SAML-basierten Verbunds neu zu implementieren. Andere verwenden Oracle HTTP Server Webgate für Fälle, in denen eine Migration von der Oracle Identity Management Suite keine Option ist. 

Java- und Java EE-Webanwendungen eignen sich hervorragend für die Bereitstellung auf Docker-basierten AWS-Services wie AWS Fargate und Amazon ECS. Kunden entscheiden sich häufig für ein Docker-Image, auf dem die neueste Version des Zielanwendungsservers (z. B. TomEE) und das Java Development Kit (JDK) vorinstalliert sind. Sie installieren ihre Anwendungen auf dem Basis-Decker-Image, veröffentlichen es in ihrer Amazon Elastic Container Registry (Amazon ECR) -Registrierung und verwenden es für die skalierbare Bereitstellung ihrer Anwendungen auf AWS Fargate oder Amazon ECS. 

Im Idealfall ist die Anwendungsbereitstellung elastisch, d. h. die Anzahl der Anwendungsinstanzen skaliert je nach Traffic oder Arbeitslast nach oben oder unten. Das bedeutet, dass Anwendungsinstanzen online gehen oder beendet werden müssen, um die Kapazität an den Bedarf anzupassen. 

Wenn Sie eine Java-Anwendung nach AWS verschieben, sollten Sie erwägen, sie zustandslos zu machen. Dies ist ein zentrales Architekturprinzip des AWS Well-Architected Framework, das eine horizontale Skalierung mithilfe von Containerisierung ermöglicht. Beispielsweise speichern die meisten Java-basierten Webanwendungen Benutzersitzungsinformationen lokal. Um die Beendigung der Anwendungsinstanz aufgrund der automatischen Skalierung in Amazon Elastic Compute Cloud (Amazon EC2) oder aus anderen Gründen zu überstehen, sollten Benutzersitzungsinformationen global gespeichert werden, sodass Benutzer von Webanwendungen weiterhin nahtlos und transparent arbeiten können, ohne sich erneut mit einer Webanwendung verbinden oder erneut anmelden zu müssen. Für diesen Ansatz gibt es mehrere Architekturoptionen, darunter Amazon ElastiCache for Redis oder das Speichern des Sitzungsstatus in einer globalen Datenbank. Anwendungsserver wie TomEE verfügen über Plug-ins, die die Speicherung und Verwaltung von Sitzungen über Redis, Datenbanken und andere globale Datenspeicher ermöglichen.

Verwenden Sie ein gemeinsames, zentralisiertes Protokollierungs- und Debugging-Tool, das sich leicht in Amazon CloudWatch und AWS X-Ray integrieren lässt. Die Migration bietet die Möglichkeit, die Funktionen des Anwendungslebenszyklus zu verbessern. Möglicherweise möchten Sie den Erstellungsprozess automatisieren, sodass Änderungen mithilfe einer CI/CD-Pipeline (Continuous Integration and Continuous Delivery) problemlos vorgenommen werden können. Dies kann Änderungen an der Anwendung erfordern, sodass sie ohne Ausfallzeiten bereitgestellt werden kann. 

## Voraussetzungen und Einschränkungen
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-prerequisites-and-limitations"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto 
+ Java-Quellcode und JDK 
+ Mit Oracle erstellte Quellanwendung WebLogic
+ Definierte Lösung für Identitäts- und Zugriffsmanagement (SAML oder Oracle Webgate)
+ Definierte Lösung für die Verwaltung von Anwendungssitzungen (Umzug like-for-like oder mit Amazon oder Zustandslosigkeit der Anwendung ElastiCache, falls erforderlich)
+ Erläuterung, ob das Team J2EE-spezifische Bibliotheken umgestalten muss, um die Portabilität auf Apache ToMEE zu gewährleisten (siehe Status der Implementierung von [Java EE 7](http://tomee.apache.org/javaee7-status.html) auf der Apache-Website) 
+ Gehärtetes ToMEE-Image auf der Grundlage Ihrer Sicherheitsanforderungen
+ Container-Image mit vorinstalliertem Ziel-TomEE 
+ Vereinbarte und bei Bedarf durchgeführte Anwendungskorrektur (z. B. Protokollierung, Debug-Erstellung, Authentifizierung)

**Versionen der Produkte**
+ Oracle WebLogic OC4 J, 9i, 10 g 
+ Tomcat 7 (mit Java 1.6 oder höher) 

## Architektur
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-architecture"></a>

 **Quelltechnologie-Stack**
+ Mit Oracle erstellte Webanwendung WebLogic
+ Webanwendung, die Oracle Webgate oder SAML-Authentifizierung verwendet
+ Webanwendungen, die mit Oracle Database Version 10g und höher verbunden sind 

**Zieltechnologie-Stack**
+ ToMee (Apache Tomcat mit zusätzlicher Container-Unterstützung) läuft auf Amazon ECS (siehe auch [Bereitstellen von Java-Webanwendungen und Java-Microservices](https://aws.amazon.com/answers/web-applications/aws-web-app-deployment-java/) [auf](https://aws.amazon.com/blogs/compute/deploying-java-microservices-on-amazon-ec2-container-service/) Amazon ECS) 
+ Amazon Relational Database Service (Amazon RDS) für Oracle; Informationen zu Oracle-Versionen, die von Amazon RDS unterstützt werden, finden Sie unter [Amazon RDS for](https://aws.amazon.com/rds/oracle/) Oracle****

**Zielarchitektur**

![\[AWS Cloud architecture diagram showing VPC, application subnets, and shared services account components.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/d5e7b3fa-062f-4559-af56-aa6058f96755/images/762193cf-aa68-4195-b3c7-6541caee61c9.png)


 

## Tools
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-tools"></a>

Um mit TomEE arbeiten zu können, muss eine Java-Anwendung in eine WAR-Datei neu erstellt werden. In einigen Fällen können Änderungen an der Anwendung erforderlich sein, um die Anwendung auf ToMEE ausführen zu können. Sie sollten überprüfen, ob die erforderlichen Konfigurationsoptionen und Umgebungseigenschaften korrekt definiert sind.  

Außerdem sollten JNDI-Lookups (Java Naming and Directory Interface) und JSP-Namespaces ( JavaServer Pages) korrekt definiert sein. Erwägen Sie, die von der Anwendung verwendeten Dateinamen zu überprüfen, um Namenskonflikte mit integrierten T-Bibliotheken zu vermeiden. Zum Beispiel ist persistence.xml ein Dateiname, der vom Apache OpenJPA-Framework (das mit OpenEJB in TomEE gebündelt ist) für Konfigurationszwecke verwendet wird. Die Datei persistence.xml in PUI enthält Bean-Deklarationen für das Spring Framework.  

ToMee Version 7.0.3 und höher (Tomcat 8.5.7 und höher) gibt eine HTTP 400-Antwort (schlechte Anfrage) für uncodierte Rohdaten mit Sonderzeichen zurück. URLs Die Serverantwort wird dem Endbenutzer als leere Seite angezeigt. [Frühere Versionen von ToMee und Tomcat erlaubten die Verwendung bestimmter unverschlüsselter Sonderzeichen in URLs; dies gilt jedoch als unsicher, wie auf der CVE-2016-6816-Website angegeben.](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6816) Um das Problem mit der URL-Kodierung zu lösen, JavaScript müssen die direkt URLs an den Browser übergebenen Daten mit der Methode **encodeURI** () codiert werden, anstatt als unformatierte Zeichenketten verwendet zu werden. 

Nachdem Sie die .war-Datei in ToMEE bereitgestellt haben, überprüfen Sie das *Startprotokoll* von *Linux Cat* auf fehlende gemeinsam genutzte Bibliotheken und Oracle-spezifische Erweiterungen, um fehlende Komponenten aus Tomcat-Bibliotheken hinzuzufügen. 

 

**Allgemeines Verfahren**
+ Konfigurieren Sie die Anwendung auf TomEE.
+ Identifizieren und rekonfigurieren Sie anwendungsserverspezifische Konfigurationsdateien und Ressourcen vom Quell- bis zum Zielformat.
+ Identifizieren und rekonfigurieren Sie JNDI-Ressourcen.
+ Passen Sie den EJB-Namespace und die Lookups an das vom Zielanwendungsserver benötigte Format an (falls zutreffend).
+ Konfigurieren Sie containerspezifische Sicherheitsrollen und Prinzipalzuordnungen für JAAS-Anwendungen neu (falls zutreffend).
+ Package Sie die Anwendung und die gemeinsam genutzten Bibliotheken in eine WAR-Datei.
+ Stellen Sie die .war-Datei in TomEE mithilfe des bereitgestellten Docker-Containers bereit.
+ Überwachen *Sie das Startprotokoll*, um alle fehlenden Erweiterungen für gemeinsam genutzte Bibliotheken und Bereitstellungsdeskriptoren zu identifizieren. Wenn welche gefunden wurden, kehren Sie zur ersten Aufgabe zurück. 
+ Testen Sie die installierte Anwendung anhand der wiederhergestellten Amazon RDS-Datenbank.
+ Starten Sie die komplette Architektur mit einem Load Balancer und einem Amazon ECS-Cluster, indem Sie den Anweisungen unter [Deploy Docker](https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/) Containers folgen.
+ Aktualisieren Sie die URLs , um auf den Load Balancer zu verweisen. 
+ Aktualisieren Sie die Configuration Management Database (CMDB). 

## Epen
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie eine Anwendungserkennung durch (aktueller Status und Leistungsbasis). |  | BA, Leiter der Migration | 
| Validieren Sie die Versionen und Engines der Quell- und Zieldatenbank. |  | DBA | 
| Validieren Sie das Design der Quell- und Zielanwendung (Identitäts- und Sitzungsmanagement). |  | DBA, Migrationsingenieur, App-Besitzer | 
| Identifizieren Sie die Hardware- und Speicheranforderungen für die Zielserverinstanz. |  | DBA, SysAdmin | 
| Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, SysAdmin | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. |  | DBA, SysAdmin | 
| Identifizieren Sie die Strategie und die Tools für die Anwendungsmigration. |  | DBA, Leiter der Migration | 
| Füllen Sie das Migrationsdesign und den Migrationsleitfaden für die Anwendung aus. |  | Leitung aufbauen, Leitung Migration | 
| Vervollständigen Sie das Runbook zur Anwendungsmigration. |  | Leiter Aufbau, Leiter der Umstellung, Leiter des Tests, Leiter der Migration | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). |  | SysAdmin | 
| Erstellen Sie Sicherheitsgruppen. |  | SysAdmin | 
| Konfigurieren und starten Sie die Amazon RDS-DB-Instance. |  | DBA, SysAdmin | 
| Konfigurieren Sie die Amazon ECS-Bereitstellung. |  | SysAdmin | 
| Package Sie Ihre Anwendung als Docker-Image. |  | SysAdmin | 
| Übertragen Sie das Image in die Amazon ECR-Registrierung (oder überspringen Sie diesen Schritt und übertragen Sie es in den Amazon ECS-Cluster). |  | SysAdmin | 
| Konfigurieren Sie die Aufgabendefinition für die Anwendung und die Amazon ECS-Serviceoptionen. |  | SysAdmin | 
| Konfigurieren Sie Ihren Cluster, überprüfen Sie die Sicherheitseinstellungen und legen Sie AWS Identity and Access Management (IAM) -Rollen fest. |  | SysAdmin | 
| Starten Sie Ihr Setup und führen Sie Tests gemäß Ihrem Runbook für die Anwendungsmigration aus. |  | SysAdmin | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Holen Sie sich die Erlaubnis Ihres Sicherheitsteams, Produktionsdaten nach AWS zu verschieben. |  | DBA, Migrationsingenieur, App-Besitzer | 
| Erstellen Sie Endpunkte und erhalten Sie Zugriff auf diese, um Datenbank-Backupdateien abzurufen. |  | DBA | 
| Verwenden Sie die native Datenbank-Engine oder Tools von Drittanbietern, um Datenbankobjekte und Daten zu migrieren. |  | DBA | 
| Führen Sie die erforderlichen Tests im Runbook für die Anwendungsmigration aus, um die erfolgreiche Datenmigration zu bestätigen. |  | DBA, Migrationsingenieur, App-Besitzer | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Änderungsantrag (CR) für die Migration. |  | Leitung der Umstellung | 
| Besorgen Sie sich die CR-Genehmigung für die Migration. |  | Übernahme (Leitung) | 
| Folgen Sie der Strategie zur Anwendungsmigration aus dem Runbook zur Anwendungsmigration. |  | DBA, Migrationsingenieur, App-Besitzer | 
| Aktualisieren Sie die Anwendung (falls erforderlich). |  | DBA, Migrationsingenieur, App-Besitzer | 
| Führen Sie funktionale und nichtfunktionale Tests sowie Datenvalidierungs-, SLA- und Leistungstests durch. |  | Testleiter, App-Besitzer, App-Nutzer | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Lassen Sie sich vom Antrag oder Geschäftsinhaber unterschreiben. |  | Übernahme (Leitung) | 
| Führen Sie eine Übung mit einem Tabellenthema durch, in der Sie alle Schritte des Cutover-Runbooks durchgehen. |  | DBA, Migrationsingenieur, App-Besitzer | 
| Wechseln Sie zu den Anwendungsclients auf die neue Infrastruktur. |  | DBA, Migrationsingenieur, App-Besitzer | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie temporäre AWS-Ressourcen herunter. |  | DBA, Migrationsingenieur, SysAdmin | 
| Überprüfen und validieren Sie die Projektdokumente. |  | Leiter der Migration | 
| Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zum prozentualen Anteil manueller Änderungen im Vergleich zu Tools, zu Kosteneinsparungen usw. |  | Leiter der Migration | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  | Leiter der Migration, Inhaber der App | 

## Zugehörige Ressourcen
<a name="migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs-related-resources"></a>

**Referenzen**
+ [Dokumentation zu Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html) 
+ [Installationsanleitung für Apache Tomcat 7.0](https://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html) 
+ [Apache Tomcat JNDI-Dokumentation](https://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html) 
+ [Apache TomEE-Dokumentation](http://tomee.apache.org/) 
+ [Amazon RDS für Oracle](https://aws.amazon.com/rds/oracle/) 
+ [Amazon-RDS-Preise](https://aws.amazon.com/rds/pricing/) 
+ [Oracle und AWS](https://aws.amazon.com/oracle/) 
+ [Dokumentation zu Oracle auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ [Amazon RDS Multi-AZ-Bereitstellungen](https://aws.amazon.com/rds/details/multi-az/) 
+ [Erste Schritte mit Amazon ECS](https://aws.amazon.com/ecs/getting-started/)
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/) 

**Tutorials und Videos**
+ [Bewährte Methoden für den Betrieb von Oracle-Datenbanken auf Amazon RDS](https://www.youtube.com/watch?v=j2wqT0EPDbw) (Präsentation re:Invent 2018) 

# Migrieren Sie mithilfe von AWS DMS eine Oracle-Datenbank von Amazon EC2 zu Amazon RDS for Oracle
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms"></a>

*Chethan Gangadharaiah und Brian Motzer, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-summary"></a>

Dieses Muster beschreibt die Schritte zur Migration einer Oracle-Datenbank auf Amazon Elastic Compute Cloud (Amazon EC2) zu Amazon Relational Database Service (Amazon RDS) für Oracle mithilfe von AWS Database Migration Service (AWS DMS). Das Muster verwendet auch Oracle SQL Developer oder SQL \$1Plus, um eine Verbindung zu Ihrer Oracle-DB-Instance herzustellen, und beinhaltet eine CloudFormation AWS-Vorlage, die einige der Aufgaben automatisiert.

Durch die Migration zu Amazon RDS for Oracle können Sie sich auf Ihr Geschäft und Ihre Anwendungen konzentrieren, während Amazon RDS sich um Datenbankverwaltungsaufgaben wie die Bereitstellung von Datenbanken, Sicherung und Wiederherstellung, Sicherheitspatches, Versions-Upgrades und Speichermanagement kümmert.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-prerequisites-and-limitations"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein Amazon Machine Image (AMI) für Oracle Database auf Amazon EC2

**Produktversionen**
+ AWS DMS unterstützt die Oracle-Versionen 11g (Version 11.2.0.3.v1 und höher), 12c und 18c für Amazon RDS-Instance-Datenbanken für die Editionen Enterprise, Standard, Standard One und Standard Two. Aktuelle Informationen zu unterstützten Versionen finden Sie in der AWS-Dokumentation unter [Using an Oracle Database as a Target for AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html). (Die angehängten CloudFormation AWS-Vorlagen verwenden Oracle Version 12c als Quelldatenbank.)
+ Oracle SQL Developer 4.0.3

## Architektur
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-architecture"></a>

**Quellarchitektur**
+ Oracle-Datenbank auf Amazon EC2

**Zielarchitektur**
+ Amazon RDS für Oracle

**Migrationsarchitektur**

![\[AWS Cloud architecture showing Oracle database migration from EC2 to RDS across availability zones.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4db0c731-0897-4eb8-a06f-b648c3d94b2c/images/636c2a69-5a78-482d-ae81-55e9ec975ead.png)


## Tools
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-tools"></a>
+ [AWS DMS](https://docs.aws.amazon.com/dms/index.html) — Mit dem AWS Database Migration Service (AWS DMS) können Sie Datenbanken schnell und sicher zu AWS migrieren. Es unterstützt sowohl homogene als auch heterogene Migrationen. Informationen zu den unterstützten Oracle-Datenbankversionen und -Editionen finden Sie in der AWS-Dokumentation [unter Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) und [Verwenden einer Oracle-Datenbank als Ziel für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.Oracle.html).
+ **Oracle SQL Developer oder SQL \$1Plus** — Mit diesen Tools können Sie eine Verbindung zur Amazon RDS for Oracle DB-Instance herstellen.

## Epen
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-epics"></a>

### Richten Sie Ihre Zieldatenbank ein
<a name="set-up-your-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon RDS for Oracle DB-Instance. | Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon RDS-Konsole unter https://console.aws.amazon.com/rds/. Erstellen Sie eine Oracle-DB-Instance, indem Sie die entsprechende Engine, Vorlage, Einstellung für Datenbankanmeldedaten, Instance-Typ, Speicher, Multi-AZ-Einstellungen, Virtual Private Cloud (VPC) und Konfiguration, Anmeldeinformationen und zusätzliche Einstellungen für die Oracle-Datenbank auswählen. Anweisungen finden Sie unter den Links im Abschnitt „Verwandte Ressourcen“. Oder verwenden Sie die CloudFormation AWS-Vorlage (create\$1rds.YAML) im Anhang, um die Amazon RDS for Oracle Oracle-DB-Instance zu erstellen. | Developer | 
| Connect zu Amazon RDS her und gewähren Sie dem Oracle-Benutzer Rechte. | Ändern Sie die Sicherheitsgruppe, um die entsprechenden Ports für die Verbindung vom lokalen Computer und der AWS DMS-Replikationsinstanz aus zu öffnen. Stellen Sie bei der Konfiguration der Konnektivität sicher, dass die Option „Öffentlich zugänglich“ ausgewählt ist, damit Sie von außerhalb der VPC eine Verbindung zur Datenbank herstellen können. Stellen Sie mit Oracle SQL Developer oder SQL \$1Plus mithilfe der Anmeldeinformationen eine Connect zu Amazon RDS her, erstellen Sie einen AWS DMS-Benutzer und gewähren Sie dem AWS DMS-Benutzer die erforderlichen Rechte, um die Datenbank zu ändern. | Developer | 

### Konfigurieren Sie die Sicherheitsgruppe der Quell-Instance EC2
<a name="configure-the-security-group-of-the-source-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Prüfen Sie, ob die Oracle-Datenbank läuft. | Verwenden Sie Secure Shell (SSH), um eine Verbindung zur EC2 Instance herzustellen, und versuchen Sie, mithilfe von SQL \$1Plus eine Verbindung zur Oracle-Datenbank herzustellen. | Developer | 
| Ändern Sie die Sicherheitsgruppe. | Ändern Sie die Sicherheitsgruppe der EC2 Instance, um die entsprechenden Ports zu öffnen, sodass Sie von Ihrem lokalen Computer und der AWS DMS-Replikationsinstanz aus eine Verbindung herstellen können. | Developer | 

### AWS DMS einrichten
<a name="set-up-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine AWS DMS-Replikations-Instance. | Erstellen Sie in AWS DMS eine Replikationsinstanz in derselben VPC wie Ihre Amazon RDS for Oracle DB-Instance. Geben Sie den Namen und die Beschreibung für die Replikationsinstanz an, wählen Sie die Instance-Klasse und die Version der Replication Engine (verwenden Sie die Standardversion), wählen Sie die VPC aus, in der Sie die Amazon RDS-DB-Instance erstellt haben, legen Sie bei Bedarf Multi-AZ-Einstellungen fest, weisen Sie Speicher zu, geben Sie die Availability Zone an und konfigurieren Sie zusätzliche Einstellungen. Alternativ können Sie die CloudFormation AWS-Vorlage (dms.YAML) im Anhang verwenden, um diesen Schritt zu implementieren. | DBA | 
| Connect zu den Quell- und Zieldatenbank-Endpunkten her. | Erstellen Sie die Quell- und Zieldatenbankendpunkte, indem Sie die Endpunkt-ID, die Engine, den Server, den Port, die Anmeldeinformationen und zusätzliche Verbindungsattribute angeben. Verwenden Sie für den Quellserver den öffentlichen DNS der EC2 Instanz, die die Oracle-Datenbank hostet. Verwenden Sie für den Zielserver den Endpunkt von Amazon RDS for Oracle. Führen Sie einen Test durch, um zu überprüfen, ob die Quell- und Zielverbindungen funktionieren. Alternativ können Sie die CloudFormation AWS-Vorlage (dms.YAML) im Anhang verwenden, um diesen Schritt zu implementieren. | DBA | 
| Erstellen Sie eine AWS DMS-Aufgabe. | Erstellen Sie eine AWS DMS-Aufgabe, um Daten vom Quellendpunkt zum Zielendpunkt zu migrieren, um die Replikation zwischen dem Quell- und Zielendpunkt oder beiden einzurichten. Geben Sie bei der Erstellung der AWS DMS-Aufgabe die Replikationsinstanz, den Quellendpunkt, den Zielendpunkt, den Migrationstyp (nur Daten, nur Replikation oder beides), die Tabellenzuordnung und den Filter an. Führen Sie die AWS DMS-Aufgabe aus, überwachen Sie die Aufgabe, überprüfen Sie die Tabellenstatistiken und überprüfen Sie die Protokolle in Amazon CloudWatch. Alternativ können Sie die CloudFormation AWS-Vorlage (dms.YAML) im Anhang verwenden, um diesen Schritt zu implementieren. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms-related-resources"></a>
+ [Eine Amazon RDS-DB-Instance erstellen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateOracleInstance.html)
+ [Eine Verbindung zu einer DB-Instance aufbauen, die mit der Oracle-Datenbank-Engine ausgeführt wird](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToOracleInstance.html)
+ [AWS DMS-Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Exemplarische Vorgehensweisen zu AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Migration von Oracle-Datenbanken in die AWS-Cloud](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html)

## Anlagen
<a name="attachments-4db0c731-0897-4eb8-a06f-b648c3d94b2c"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/4db0c731-0897-4eb8-a06f-b648c3d94b2c/attachments/attachment.zip)

# Migrieren Sie eine lokale Oracle-Datenbank mit Logstash zu Amazon OpenSearch Service
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash"></a>

*Aditya Goteti, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-summary"></a>

Dieses Muster beschreibt, wie Daten mithilfe von Logstash aus einer lokalen Oracle-Datenbank zu Amazon OpenSearch Service verschoben werden. Es beinhaltet architektonische Überlegungen sowie einige erforderliche Fähigkeiten und Empfehlungen. Die Daten können aus einer einzelnen Tabelle oder aus mehreren Tabellen stammen, in denen eine Volltextsuche durchgeführt werden muss. 

OpenSearch Der Dienst kann in einer Virtual Private Cloud (VPC) konfiguriert oder mit IP-basierten Einschränkungen öffentlich platziert werden. Dieses Muster beschreibt ein Szenario, in dem der OpenSearch Dienst in einer VPC konfiguriert ist. Logstash wird verwendet, um die Daten aus der Oracle-Datenbank zu sammeln, sie im JSON-Format zu parsen und die Daten dann in Service einzuspeisen. OpenSearch  

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Java 8 (für Logstash 6.4.3 erforderlich)
+ Konnektivität zwischen den lokalen Datenbankservern und Amazon Elastic Compute Cloud (Amazon EC2) -Instances in einer VPC, eingerichtet mit AWS Virtual Private Network (AWS VPN)
+ Eine Abfrage zum Abrufen der erforderlichen Daten, die an den OpenSearch Service übertragen werden sollen, aus der Datenbank
+ Treiber für Oracle Java Database Connectivity (JDBC)

**Einschränkungen**
+ Logstash kann keine Datensätze identifizieren, die dauerhaft aus der Datenbank gelöscht wurden 

**Versionen der Produkte**
+ Oracle Datenbank 12c
+ OpenSearch Service 6.3
+ Logstash 6.4.3

## Architektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Oracle-Datenbank
+ Lokales AWS-VPN

**Zieltechnologie-Stack**
+ VPC
+ EC2 Instanz
+ OpenSearch Dienst 
+ Logstash
+ NAT Gateway (für Betriebssystem-Updates auf EC2 Instanzen und zur Installation von Java 8, Logstash und Plugins)

**Architektur der Datenmigration**

![\[So verschieben Sie Daten mithilfe von Logstash von einer lokalen Oracle-Datenbank zu Amazon OpenSearch Service.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/09f6d2de-de2f-4ed6-af93-34b71b75a263/images/df6a61fb-09fb-49d4-a7e8-b04e88c003df.png)


## Tools
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-tools"></a>
+ Logstash 6.4.3
+ [JDBC-Eingabe-Plugin (Download und weitere Informationen)](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)
+ [Logstash-Ausgabe-Plugin (\$1es) logstash-output-amazon](https://github.com/awslabs/logstash-output-amazon_es)
+ Oracle JDBC-Treiber

## Epen
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die Größe der Quelldaten. | Die Größe der Quelldaten ist einer der Parameter, mit denen Sie die Anzahl der Shards bestimmen, die in einem Index konfiguriert werden sollen. | DBA, Datenbankentwickler | 
| Analysieren Sie die Datentypen jeder Spalte und die entsprechenden Daten. | OpenSearch Service ordnet den Datentyp dynamisch zu, wenn ein zuvor unsichtbares Feld im Dokument gefunden wird. Wenn bestimmte Datentypen oder Formate (z. B. Datumsfelder) explizit deklariert werden müssen, identifizieren Sie die Felder und definieren Sie die Zuordnung für diese Felder bei der Indexerstellung. | App-Besitzer, Entwickler, Datenbankentwickler | 
| Ermitteln Sie, ob Spalten mit Primärschlüsseln oder eindeutigen Schlüsseln vorhanden sind. | Um bei Aktualisierungen oder Einfügungen doppelte Datensätze in Amazon OpenSearch Service zu vermeiden, müssen Sie die `document_id` Einstellung im Ausgabebereich des `amazon_es` Plug-ins konfigurieren (z. B. `document_id => "%{customer_id}"` wo `customer_id` ist ein Primärschlüssel). | Besitzer der App, Entwickler | 
| Analysieren Sie die Anzahl und Häufigkeit neu hinzugefügter Datensätze und überprüfen Sie, wie oft die Datensätze gelöscht werden. | Diese Aufgabe ist erforderlich, um die Wachstumsrate von Quelldaten zu verstehen. Wenn Daten intensiv gelesen werden und es nur selten zu Einfügungen kommt, können Sie einen einzigen Index verwenden. Wenn häufig neue Datensätze eingefügt werden und keine Löschungen vorgenommen werden, kann die Shard-Größe leicht die empfohlene Maximalgröße von 50 GB überschreiten. In diesem Fall können Sie einen Index dynamisch erstellen, indem Sie Indexmuster in Logstash und im Code konfigurieren, über den Sie mithilfe eines Alias darauf zugreifen können. | Besitzer der App, Entwickler | 
| Ermitteln Sie, wie viele Replikate erforderlich sind. |  | Besitzer der App, Entwickler | 
| Ermitteln Sie die Anzahl der Shards, die für den Index konfiguriert werden sollen. |  | Besitzer der App, Entwickler | 
| Identifizieren Sie die Instanztypen für dedizierte Master-Knoten, Datenknoten und die EC2 Instanz. | Weitere Informationen finden Sie im Abschnitt [Verwandte Ressourcen](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). | Besitzer der App, Entwickler | 
| Ermitteln Sie die Anzahl der erforderlichen dedizierten Master- und Datenknoten. | Weitere Informationen finden Sie im Abschnitt [Verwandte Ressourcen](#migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources). |  | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie eine EC2 Instanz. | Starten Sie eine EC2 Instance innerhalb der VPC, mit der AWS VPN verbunden ist. | Amazon VPC-Konstrukte, AWS-VPN | 
| Installieren Sie Logstash auf der Instance. EC2  |  | Developer | 
| Installieren Sie die Logstash-Plugins. | Installieren Sie die erforderlichen Logstash-Plugins und. `jdbc-input` ` logstash-output-amazon_es` | Developer | 
| Konfigurieren Sie Logstash. | Erstellen Sie den Logstash-Keystore, um vertrauliche Informationen wie AWS Secrets Manager Manager-Schlüssel und Datenbankanmeldedaten zu speichern, und platzieren Sie die Verweise dann in einer Logstash-Konfigurationsdatei. | Developer | 
| Konfigurieren Sie die Warteschlange für unzulässige Nachrichten und die persistente Warteschlange. | Wenn Logstash auf ein Ereignis trifft, das nicht verarbeitet werden kann, weil die Daten einen Zuordnungsfehler oder ein anderes Problem enthalten, hängt die Logstash-Pipeline standardmäßig entweder oder löscht das erfolglose Ereignis. Um in dieser Situation vor Datenverlust zu schützen, können Sie Logstash so konfigurieren, dass erfolglose Ereignisse in eine Warteschlange mit unbestätigten Nachrichten geschrieben werden, anstatt sie zu löschen. Zum Schutz vor Datenverlust bei abnormalem Abbruch verfügt Logstash über eine persistente Warteschlangenfunktion, die die Nachrichtenwarteschlange auf der Festplatte speichert. Persistente Warteschlangen sorgen für die Beständigkeit der Daten in Logstash. | Developer | 
| Erstellen Sie die Amazon OpenSearch Service-Domain. | Erstellen Sie die Amazon OpenSearch Service-Domain mit einer Zugriffsrichtlinie, die keine Signierung von Anfragen mit AWS Identity and Access Management (IAM) -Anmeldeinformationen erfordert. Die Amazon OpenSearch Service-Domain muss innerhalb derselben VPC erstellt werden. Sie sollten auch die Instance-Typen auswählen und die Anzahl der Dedicated Nodes und der Master Nodes auf der Grundlage Ihrer Analyse festlegen. | Developer | 
| Konfigurieren Sie die erforderlichen Amazon OpenSearch Service-Protokolle. | Weitere Informationen finden Sie in der [OpenSearch Servicedokumentation](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html). |  | 
| Erstellen Sie den Index. |  | Developer | 
| Starten Sie Logstash. | Führen Sie Logstash als Hintergrunddienst aus. Logstash führt die konfigurierte SQL-Abfrage aus, ruft die Daten ab, konvertiert sie in das JSON-Format und leitet sie an Service weiter. OpenSearch Für den ersten Ladevorgang sollten Sie den Scheduler nicht in der Logstash-Konfigurationsdatei konfigurieren. | Developer | 
| Überprüfen Sie die Dokumente. | Überprüfen Sie die Anzahl der Dokumente im Index und ob alle Dokumente in der Quelldatenbank vorhanden sind. Beim ersten Laden werden sie dem Index hinzugefügt und zum Stoppen von Logstash verwendet. Ändern Sie die Logstash-Konfiguration, um einen Scheduler hinzuzufügen, der je nach den Anforderungen des Clients in einem festen Intervall läuft, und starten Sie Logstash neu. Logstash wählt nur die Datensätze aus, die nach dem letzten Lauf aktualisiert oder hinzugefügt wurden, und der Zeitstempel der letzten Ausführung wird in der Datei gespeichert, die mit der Eigenschaft in der Logstash-Konfigurationsdatei konfiguriert ist. `last_run_metadata_path => "/usr/share/logstash/.logstash_jdbc_last_run"` | Developer | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash-resources"></a>
+ [Empfohlene CloudWatch Alarme](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/cloudwatch-alarms.html) 
+ [Dedizierte Amazon OpenSearch Service Master Nodes](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains-dedicatedmasternodes.html) 
+ [Dimensionierung von Amazon OpenSearch Service-Domains](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/sizing-domains.html) 
+ [Logstash-Dokumentation](https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html) 
+ [JDBC-Eingabe-Plugin](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html)
+ [Logstash-Ausgabe-Plugin](https://github.com/awslabs/logstash-output-amazon_es)
+ [Amazon OpenSearch Service-Webseite](https://aws.amazon.com/elasticsearch-service/) 

# Migrieren Sie eine lokale Oracle-Datenbank zu Amazon RDS for Oracle
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle"></a>

*Baji Shaik und Pavan Pusuluri, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-summary"></a>

Dieses Muster beschreibt die Schritte für die Migration von lokalen Oracle-Datenbanken zu Amazon Relational Database Service (Amazon RDS) für Oracle. Im Rahmen des Migrationsprozesses erstellen Sie einen Migrationsplan und berücksichtigen wichtige Faktoren in Bezug auf Ihre Zieldatenbankinfrastruktur auf der Grundlage Ihrer Quelldatenbank. Sie können je nach Ihren Geschäftsanforderungen und Ihrem Anwendungsfall eine von zwei Migrationsoptionen wählen:
+ AWS Database Migration Service (AWS DMS) — Mit AWS DMS können Sie Datenbanken schnell und sicher in die AWS-Cloud migrieren. Ihre Quelldatenbank bleibt während der Migration voll funktionsfähig, wodurch die Ausfallzeiten von Anwendungen, die auf die Datenbank angewiesen sind, minimiert werden. Sie können die Migrationszeit reduzieren, indem Sie mit AWS DMS eine Aufgabe erstellen, die laufende Änderungen erfasst, nachdem Sie eine erste Volllastmigration über einen Prozess namens [Change Data Capture (CDC)](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html) abgeschlossen haben. 
+ Systemeigene Oracle-Tools — Sie können Datenbanken mithilfe systemeigener Oracle-Tools wie Oracle und [Data Pump Export und Data Pump](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_export.htm#SUTIL200) [Import](https://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL300) mit [Oracle for GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) CDC migrieren. Sie können auch native Oracle-Tools wie das ursprüngliche [Export-Hilfsprogramm und das ursprüngliche [Import-Hilfsprogramm](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_import.htm#SUTIL001)](https://docs.oracle.com/cd/E11882_01/server.112/e22490/original_export.htm#SUTIL3634) verwenden, um die Vollladezeit zu reduzieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine lokale Oracle-Datenbank
+ Eine Amazon RDS-Oracle-Datenbank-Instance (DB)

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 64 TB

**Produktversionen**
+ Oracle-Versionen 11g (Versionen 11.2.0.3.v1 und höher) und bis zu 12.2 und 18c. Die aktuelle Liste der unterstützten Versionen und Editionen finden Sie in der AWS-Dokumentation unter [Amazon RDS for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html). Informationen zu Oracle-Versionen, die von AWS DMS unterstützt werden, finden Sie [unter Verwenden einer Oracle-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html) in der AWS DMS-Dokumentation.

## Architektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Oracle-Datenbanken

**Zieltechnologie-Stack**
+ Amazon RDS für Oracle

**Quell- und Zielarchitektur**

Das folgende Diagramm zeigt, wie eine lokale Oracle-Datenbank mithilfe von AWS DMS zu Amazon RDS for Oracle migriert wird.

![\[Workflow für die Migration von Oracle-Datenbanken zu Amazon RDS for Oracle mithilfe von AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/20f94a5c-1095-4182-b964-c379414c9a36.png)


Das Diagramm zeigt den folgenden Workflow:

1. [Erstellen oder verwenden Sie einen vorhandenen Datenbankbenutzer, gewähren Sie diesem Benutzer die erforderlichen [AWS DMS-Berechtigungen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed), aktivieren Sie den [ARCHIVELOG-Modus](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.ArchiveLogMode) und richten Sie dann die zusätzliche Protokollierung ein.](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.Oracle.html#CHAP_Source.Oracle.Self-Managed.Configuration.SupplementalLogging)

1. Konfigurieren Sie das Internet-Gateway zwischen dem lokalen Netzwerk und dem AWS-Netzwerk.

1. Konfigurieren Sie [Quell- und Zielendpunkte](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Endpoints.Creating.html) für AWS DMS.

1. Konfigurieren Sie [AWS DMS-Replikationsaufgaben](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html), um die Daten von der Quelldatenbank zur Zieldatenbank zu migrieren.

1. Schließen Sie die Aktivitäten nach der Migration in der Zieldatenbank ab.

Das folgende Diagramm zeigt, wie eine lokale Oracle-Datenbank mithilfe nativer Oracle-Tools zu Amazon RDS for Oracle migriert wird.

![\[Workflow für die Migration von Oracle-Datenbanken zu Amazon RDS for Oracle mithilfe von Oracle-Tools.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/25912997-0ac0-4303-9ce5-0621a7e12406/images/af8e0e1a-d4c8-4d99-9780-3e093ad9a257.png)


Das Diagramm zeigt den folgenden Workflow:

1. Erstellen oder verwenden Sie einen vorhandenen Datenbankbenutzer und gewähren Sie die erforderlichen Berechtigungen zum Sichern der Oracle-Datenbank mithilfe der Oracle-Dienstprogramme Export (`exp`) und Import (`imp`).

1. Konfigurieren Sie das Internet-Gateway zwischen dem lokalen Netzwerk und dem AWS-Netzwerk.

1. Konfigurieren Sie den Oracle-Client auf dem [Bastion-Host](https://www.oracle.com/security/cloud-security/bastion/) so, dass er die Backup-Datenbank verwendet.

1. Laden Sie die Backup-Datenbank in einen Amazon Simple Storage Service (Amazon S3) -Bucket hoch.

1. Stellen Sie die Datenbanksicherung von Amazon S3 in einer Amazon RDS for Oracle Oracle-Datenbank wieder her.

1. Konfigurieren Sie Oracle GoldenGate für CDC.

1. Schließen Sie die Aktivitäten nach der Migration in der Zieldatenbank ab.

## Tools
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Setups.
+ Native Oracle-Tools helfen Ihnen bei der Durchführung einer homogenen Migration. Sie können [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) verwenden, um Daten zwischen Ihren Quell- und Zieldatenbanken zu migrieren. Dieses Muster verwendet Oracle Data Pump, um den vollen Ladevorgang von der Quelldatenbank in die Zieldatenbank durchzuführen.
+ [Oracle GoldenGate](https://docs.oracle.com/goldengate/c1230/gg-winux/GGCON/introduction-oracle-goldengate.htm#GGCON-GUID-EF513E68-4237-4CB3-98B3-2E203A68CBD4) unterstützt Sie bei der logischen Replikation zwischen zwei oder mehr Datenbanken. Dieses Muster wird verwendet GoldenGate , um die Delta-Änderungen nach dem ersten Laden mithilfe von Oracle Data Pump zu replizieren.

## Epen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Projektdokumente und zeichnen Sie Datenbankdetails auf. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Identifizieren Sie die Speicheranforderungen. | Identifizieren und dokumentieren Sie Ihre Speicheranforderungen, einschließlich der folgenden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html)Für [Allzweck-SSD-Volumes (GP2)](https://aws.amazon.com/ebs/volume-types/) erhalten Sie drei IOPS pro 1 GB Speicher. Ordnen Sie Speicherplatz zu, indem Sie die Gesamtzahl der Lese- und Schreib-IOPS in der Quelldatenbank berechnen. | DBA, SysAdmin | 
| Wählen Sie den richtigen Instanztyp basierend auf den Rechenanforderungen aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | SysAdmin | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, Besitzer der App SysAdmin | 
| Identifizieren Sie Migrationsrisiken. | Beurteilen Sie die Datenbank und dokumentieren Sie migrationsspezifische Risiken und Abhilfemaßnahmen. Beispiel:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Konfiguration der Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine VPC. | [Erstellen Sie eine neue Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/gsg_create_vpc.html) für die Ziel-DB-Instance. | SysAdmin | 
| Erstellen Sie Sicherheitsgruppen. | [Erstellen Sie eine Sicherheitsgruppe](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#creating-security-group) in Ihrer neuen VPC, um eingehende Verbindungen zur DB-Instance zuzulassen. | SysAdmin | 
| Erstellen Sie eine Amazon RDS for Oracle Oracle-DB-Instance. | [Erstellen Sie die Ziel-DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) mit der neuen VPC und Sicherheitsgruppe und starten Sie dann die Instance. | SysAdmin | 

### Option 1: Verwenden Sie native Tools von Oracle oder Drittanbietern, um Daten zu migrieren
<a name="option-1---use-native-oracle-or-third-party-tools-to-migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die Quelldatenbank vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 
| Bereiten Sie die Zieldatenbank vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, SysAdmin | 

### Option 2 — Verwenden Sie AWS DMS, um Daten zu migrieren
<a name="option-2---use-aws-dms-to-migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die Daten vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 
| Migrieren Sie die Daten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA | 

### Wechseln Sie zur Zieldatenbank
<a name="cut-over-to-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA SysAdmin, Besitzer der App | 
| Implementieren Sie Ihren Rollback-Plan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.html) | DBA, Besitzer der App | 

### Schließen Sie das Migrationsprojekt ab
<a name="close-out-the-migration-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereinigen Sie die Ressourcen. | Fahren Sie die temporären AWS-Ressourcen herunter oder entfernen Sie sie, z. B. die AWS DMS-Replikationsinstanz und den S3-Bucket. | DBA, SysAdmin | 
| Überprüfen Sie die Projektdokumente. | Überprüfen Sie Ihre Dokumente und Ziele zur Migrationsplanung und stellen Sie dann sicher, dass Sie alle erforderlichen Migrationsschritte abgeschlossen haben. | DBA SysAdmin, Besitzer der App | 
| Sammeln Sie Metriken. | Erfassen Sie wichtige Migrationskennzahlen, wie lange es gedauert hat, bis die Migration abgeschlossen ist, wie viel Prozent manuelle Aufgaben im Vergleich zu toolbasierten Aufgaben haben, Kosteneinsparungen und andere relevante Kennzahlen. | DBA, Besitzer der SysAdmin App | 
| Schließt das Projekt ab. | Schließen Sie das Migrationsprojekt ab und sammeln Sie Feedback zu den Bemühungen. | DBA SysAdmin, App-Besitzer | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-resources"></a>

**Referenzen**
+ [Migration von Oracle-Datenbanken in die AWS-Cloud (AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-oracle-database/welcome.html) Prescriptive Guidance)
+ [AWS Database Migration Service](https://aws.amazon.com/dms/) (AWS DMS-Dokumentation)
+ [Amazon RDS-Preise](https://aws.amazon.com/rds/pricing/) (Amazon RDS-Dokumentation)

**Tutorials und Videos**
+ [Erste Schritte mit AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/) (AWS DMS-Dokumentation)
+ [Amazon RDS-Ressourcen](https://aws.amazon.com/rds/getting-started/) (Amazon RDS-Dokumentation)
+ [AWS Database Migration Service (DMS) (YouTube)](https://www.youtube.com/watch?v=zb4GcjEdl8U)

# Migrieren Sie eine lokale Oracle-Datenbank mit Oracle Data Pump zu Amazon RDS for Oracle
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump"></a>

*Mohan Annam und Brian Motzer, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-summary"></a>

Dieses Muster beschreibt, wie eine Oracle-Datenbank mithilfe von Oracle Data Pump von einem lokalen Rechenzentrum zu einer Amazon Relational Database Service (Amazon RDS) für Oracle-DB-Instance migriert wird. 

Das Muster umfasst das Erstellen einer Datendumpdatei aus der Quelldatenbank, das Speichern der Datei in einem Amazon Simple Storage Service (Amazon S3) -Bucket und das anschließende Wiederherstellen der Daten in einer Amazon RDS for Oracle Oracle-DB-Instance. Dieses Muster ist nützlich, wenn Sie bei der Verwendung von AWS Database Migration Service (AWS DMS) für die Migration auf Einschränkungen stoßen. 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Die erforderlichen Berechtigungen zum Erstellen von Rollen in AWS Identity and Access Management (IAM) und für einen mehrteiligen Amazon S3 S3-Upload
+ Die erforderlichen Berechtigungen zum Exportieren von Daten aus der Quelldatenbank
+ AWS-Befehlszeilenschnittstelle (AWS CLI) [installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Produktversionen**
+ Oracle Data Pump ist nur für Oracle Database 10g Release 1 (10.1) und spätere Versionen verfügbar.

## Architektur
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Oracle-Datenbanken

**Zieltechnologie-Stack**
+ Amazon RDS für Oracle
+ SQL-Client (Oracle SQL Developer)
+ Ein S3-Bucket

**Quell- und Zielarchitektur**

![\[Mehrteiliger Amazon S3 S3-Upload von einer lokalen Oracle-DB zu Amazon RDS mithilfe von Oracle Data Pump.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/d8d6e00f-753e-4ecc-80e5-e60e279a699b/images/1bb6095a-0a95-4469-be0e-7b7bd59b35ae.png)


## Tools
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-tools"></a>

**AWS-Services**
+ Mit [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) können Sie den Zugriff auf Ihre AWS-Ressourcen sicher verwalten, indem Sie kontrollieren, wer authentifiziert und autorisiert ist, diese zu verwenden. In diesem Muster wird IAM verwendet, um die Rollen und Richtlinien zu erstellen, die für die Migration von Daten von Amazon S3 zu Amazon RDS for Oracle erforderlich sind.
+ [Amazon Relational Database Service (Amazon RDS) für Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der AWS-Cloud.
+ [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.

**Andere Tools**
+ Mit [Oracle Data Pump](https://docs.oracle.com/cd/B19306_01/server.102/b14215/dp_overview.htm) können Sie Daten und Metadaten mit hoher Geschwindigkeit von einer Datenbank in eine andere verschieben. In diesem Muster wird Oracle Data Pump verwendet, um die Datendump-Datei (.dmp) auf den Oracle-Server zu exportieren und sie in Amazon RDS for Oracle zu importieren. Weitere Informationen finden Sie unter [Daten in Oracle auf Amazon RDS importieren](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3) in der Amazon RDS-Dokumentation.
+ [Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html) ist eine integrierte Entwicklungsumgebung, die die Entwicklung und Verwaltung von Oracle-Datenbanken sowohl in herkömmlichen als auch in Cloud-basierten Bereitstellungen vereinfacht. Es interagiert sowohl mit der lokalen Oracle-Datenbank als auch mit Amazon RDS for Oracle, um die für den Export und Import von Daten erforderlichen SQL-Befehle auszuführen.

## Epen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-epics"></a>

### Erstellen eines S3-Buckets
<a name="create-an-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den Bucket. | Folgen Sie den Anweisungen in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), um den S3-Bucket zu erstellen. | AWS-Systemadministrator | 

### Erstellen Sie die IAM-Rolle und weisen Sie Richtlinien zu
<a name="create-the-iam-role-and-assign-policies"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie IAM-Berechtigungen. | Folgen Sie den Anweisungen in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing), um Berechtigungen zu konfigurieren. | AWS-Systemadministrator | 

### Erstellen Sie die Amazon RDS-Ziel-DB-Instance für Oracle und ordnen Sie die Amazon S3 S3-Integrationsrolle zu
<a name="create-the-target-amazon-rds-for-oracle-db-instance-and-associate-the-amazon-s3-integration-role"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Amazon RDS-Ziel-DB-Instance für Oracle. | Folgen Sie den Anweisungen in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html), um die Amazon RDS for Oracle Oracle-Instance zu erstellen. | AWS-Systemadministrator | 
| Ordnen Sie die Rolle der DB-Instance zu. | Folgen Sie den Anweisungen in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing.instance), um die Rolle der Instance zuzuordnen. | DBA | 

### Erstellen Sie den Datenbankbenutzer in der Zieldatenbank
<a name="create-the-database-user-on-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den Benutzer. | Stellen Sie von Oracle SQL Developer oder SQL\$1Plus eine Connect zur Amazon RDS for Oracle-Zieldatenbank her und führen Sie den folgenden SQL-Befehl aus, um den Benutzer zu erstellen, in den das Schema importiert werden soll.<pre>create user SAMPLE_SCHEMA identified by <PASSWORD>;<br />grant create session, resource to <USER NAME>;<br />alter user <USER NAME> quota 100M on users;</pre> | DBA | 

### Erstellen Sie die Exportdatei aus der Oracle-Quelldatenbank
<a name="create-the-export-file-from-the-source-oracle-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Datendump-Datei. | Verwenden Sie das folgende Skript, um eine Dump-Datei mit dem Namen `sample.dmp` des `DATA_PUMP_DIR` Verzeichnisses für den Export des `SAMPLE_SCHEMA` Benutzers zu erstellen.<pre>DECLARE<br />    hdnl NUMBER;<br />BEGIN<br />    hdnl := dbms_datapump.open(operation => 'EXPORT', <br />                                job_mode => 'SCHEMA', <br />                                job_name => NULL);<br /><br />    dbms_datapump.add_file( handle => hdnl, <br />                            filename => 'sample.dmp', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />    dbms_datapump.add_file(handle => hdnl, <br />                            filename => 'export.log', <br />                            directory => 'DATA_PUMP_DIR', <br />                            filetype => dbms_datapump.ku$_file_type_log_file);<br /><br />    dbms_datapump.metadata_filter(hdnl, 'SCHEMA_EXPR', 'IN (''SAMPLE_SCHEMA'')');  <br /><br />    dbms_datapump.start_job(hdnl);<br />END;<br />/</pre>Überprüfen Sie die Exportdetails, indem Sie die `export.log` Datei in Ihrem lokalen `DATA_PUMP_DIR` Verzeichnis überprüfen.  | DBA | 

### Laden Sie die Dump-Datei in den S3-Bucket hoch
<a name="upload-the-dump-file-to-the-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Datendump-Datei von der Quelle in den S3-Bucket hoch. | Führen Sie mit der AWS-CLI den folgenden Befehl aus.<pre>aws s3 cp sample.dmp s3://<bucket_created_epic_1>/</pre> | DBA | 

### Laden Sie die Exportdatei aus dem S3-Bucket auf die RDS-Instance herunter
<a name="download-the-export-file-from-the-s3-bucket-to-the-rds-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Datendump-Datei auf Amazon RDS herunter | Um die Dump-Datei `sample.dmp` aus dem S3-Bucket in die Amazon RDS for Oracle Oracle-Datenbank zu kopieren, führen Sie den folgenden SQL-Befehl aus. In diesem Beispiel wird die `sample.dmp` Datei aus dem S3-Bucket `my-s3-integration1` in das Oracle-Verzeichnis `DATA_PUMP_DIR` heruntergeladen. Stellen Sie sicher, dass Ihrer RDS-Instance ausreichend Festplattenspeicher zugewiesen ist, um sowohl die Datenbank als auch die Exportdatei aufzunehmen.<pre>-- If you want to download all the files in the S3 bucket remove the p_s3_prefix line.<br /><br />SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(<br />      p_bucket_name    =>  'my-s3-integration',    <br />      p_s3_prefix => 'sample.dmp',<br />      p_directory_name =>  'DATA_PUMP_DIR') <br />   AS TASK_ID FROM DUAL;</pre>Der vorherige Befehl gibt eine Task-ID aus. Führen Sie den folgenden Befehl aus, um den Status des Downloads anhand der Daten in der Task-ID zu überprüfen.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-<task_id>.log'));<br /><br /></pre>Führen Sie den folgenden Befehl aus, um die Dateien im `DATA_PUMP_DIR` Verzeichnis anzuzeigen.<pre>SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp<br />FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre> | AWS-Systemadministrator | 

### Importieren Sie die Dump-Datei in die Zieldatenbank
<a name="import-the-dump-file-into-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie das Schema und die Daten in Amazon RDS wieder her. | Um die Dump-Datei in das `sample_schema` Datenbankschema zu importieren, führen Sie den folgenden SQL-Befehl von SQL Developer oder SQL\$1Plus aus.<pre>DECLARE<br />hdnl NUMBER;<br />BEGIN<br /><br />hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);<br /><br />DBMS_DATAPUMP.ADD_FILE( handle    => hdnl, filename  => 'import.log', directory => 'DATA_PUMP_DIR', filetype  => dbms_datapump.ku$_file_type_log_file);<br /><br />DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SAMPLE_SCHEMA'')');<br /><br />DBMS_DATAPUMP.START_JOB(hdnl);<br /><br />END;<br />/</pre>Führen Sie den folgenden Befehl aus, um die Protokolldatei aus dem Import anzuzeigen.<pre>SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('DATA_PUMP_DIR','import.log'));</pre> | DBA | 

### Entfernen Sie die Dump-Datei aus dem Verzeichnis DATA\$1PUMP\$1DIR
<a name="remove-the-dump-file-from-the-data_pump_dir-directory"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Listet die Exportdateien auf und bereinigt sie. | Führen Sie die folgenden Befehle aus, um die Exportdateien im `DATA_PUMP_DIR` Verzeichnis aufzulisten und zu entfernen.<pre>-- List the files<br />SELECT filename,type,filesize/1024/1024 size_megs,to_char(mtime,'DD-MON-YY HH24:MI:SS') timestamp FROM TABLE(rdsadmin.rds_file_util.listdir(p_directory => upper('DATA_PUMP_DIR'))) order by 4;</pre><pre>-- Remove the files<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','sample.dmp');<br />EXEC UTL_FILE.FREMOVE('DATA_PUMP_DIR','import.log');</pre> | AWS-Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump-resources"></a>
+ [Amazon S3 S3-Integration](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html#oracle-s3-integration.preparing)
+ [Erstellen Sie eine DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html)
+ [Daten in Oracle auf Amazon RDS importieren](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.html#Oracle.Procedural.Importing.DataPump.S3)
+ [Amazon S3 S3-Dokumentation](https://docs.aws.amazon.com/s3/index.html)
+ [IAM-Dokumentation](https://docs.aws.amazon.com/iam/index.html)
+ [Dokumentation zu Amazon RDS](https://docs.aws.amazon.com/rds/index.html)
+ [Dokumentation zu Oracle Data Pump](https://docs.oracle.com/en/database/oracle/oracle-database/19/sutil/oracle-data-pump-overview.html)
+ [Oracle SQL Developer](https://www.oracle.com/database/sqldeveloper/)

# Migrieren Sie mit pglogical von PostgreSQL auf Amazon EC2 zu Amazon RDS for PostgreSQL
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical"></a>

*Rajesh Madiwale, Amazon Web Services*

## Zusammenfassung
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-summary"></a>

**Dieses Muster beschreibt die Schritte für die Migration einer PostgreSQL-Datenbank (Version 9.5 und höher) von Amazon Elastic Compute Cloud (Amazon) zu Amazon Relational Database Service (Amazon RDS EC2) für PostgreSQL mithilfe der pglogischen PostgreSQL-Erweiterung.** Amazon RDS unterstützt jetzt die Erweiterung pglogical für PostgreSQL Version 10.

## Voraussetzungen und Einschränkungen
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-prereqs"></a>

**Voraussetzungen**
+ Wählen Sie den richtigen Typ von Amazon RDS-Instance. Weitere Informationen finden Sie unter [Amazon RDS-Instance-Typen](https://aws.amazon.com/rds/instance-types/). 
+ Stellen Sie sicher, dass die Quell- und Zielversion von PostgreSQL identisch sind.   
+ Installieren und integrieren Sie die [Erweiterung **pglogical** mit PostgreSQL](https://github.com/2ndQuadrant/pglogical) auf Amazon. EC2 

**Produktversionen**
+ PostgreSQL Version 10 und höher auf Amazon RDS, wobei die Funktionen auf Amazon RDS unterstützt werden (siehe [PostgreSQL on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in der AWS-Dokumentation). Dieses Muster wurde durch die Migration von PostgreSQL 9.5 auf PostgreSQL Version 10 auf Amazon RDS getestet, gilt aber auch für spätere Versionen von PostgreSQL auf Amazon RDS. 

## Architektur
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-architecture"></a>

**Architektur der Datenmigration**

![\[Datenmigrationsarchitektur für PostgreSQL auf Amazon RDS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/29af3931-48de-499f-9c4b-e10a98e4bba5/images/5f5b906f-dc1a-49a5-ae3f-3e10ae854784.png)


## Tools
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-tools"></a>
+ [https://github.com/2ndQuadrant/pglogical](https://github.com/2ndQuadrant/pglogical)
+ [https://www.postgresql.org/docs/9.6/app-pgrestore.html](https://www.postgresql.org/docs/9.6/app-pgrestore.html)

## Epen
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-epics"></a>

### Migrieren Sie Daten mithilfe der Erweiterung pglogical
<a name="migrate-data-by-using-the-pglogical-extension"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon RDS PostgreSQL-DB-Instance. | Richten Sie eine PostgreSQL-DB-Instance in Amazon RDS ein. Anweisungen finden Sie in der Dokumentation zu [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html). | DBA | 
| Rufen Sie einen Schema-Dump aus der PostgreSQL-Quelldatenbank ab und stellen Sie ihn in der PostgreSQL-Zieldatenbank wieder her. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Schalten Sie die logische Dekodierung ein. | Setzen Sie in der Amazon RDS-DB-Parametergruppe den `rds.logical_replication` statischen Parameter auf 1. Anweisungen finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalDecoding). | DBA | 
| Erstellen Sie die pglogische Erweiterung für die Quell- und Zieldatenbank. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.html) | DBA | 
| Erstellen Sie einen Herausgeber in der PostgreSQL-Quelldatenbank. | Um einen Herausgeber zu erstellen, führen Sie folgenden Befehl aus:<pre>psql -d dbname -p 5432 <<EOF<br />SELECT pglogical.create_node( node_name := 'provider1', dsn := 'host=<ec2-endpoint> port=5432 dbname=source-dbname user=source-dbuser' );<br />EOF</pre> | DBA | 
| Erstellen Sie einen Replikationssatz, fügen Sie Tabellen und Sequenzen hinzu. | Um einen Replikationssatz in der PostgreSQL-Quelldatenbank zu erstellen und dem Replikationssatz Tabellen und Sequenzen hinzuzufügen, führen Sie folgenden Befehl aus:<pre>psql -d dbname -p 5432 <<EOF<br />SELECT pglogical.replication_set_add_all_tables('default', '{public}'::text[],synchronize_data := true);<br />EOF</pre> | DBA | 
| Erstellen Sie einen Abonnenten. | Um einen Abonnenten in der PostgreSQL-Zieldatenbank zu erstellen, führen Sie folgenden Befehl aus:<pre>psql -h <rds-endpoint> -d target-dbname -U target-dbuser  <<EOF<br />SELECT pglogical.create_node(<br />    node_name := 'subscriber1',<br />    dsn := 'host=<rds-endpoint> port=5432 dbname=target-dbname password=postgres user=target-dbuser'<br />);<br />EOF</pre> | DBA | 
| Erstellen Sie ein Abonnement. | Um ein Abonnement für die PostgreSQL-Zieldatenbank zu erstellen, führen Sie folgenden Befehl aus:<pre>psql -h <rds-endpoint> -d target -U postgres  <<EOF<br />SELECT pglogical.create_subscription(<br /> subscription_name := 'subscription1',<br /> replication_sets := array['default'],<br />    provider_dsn := 'host=<ec2-endpoint> port=5432 dbname=<source-dbname> password=<password> user=source-dbuser'<br />);</pre> | DBA | 

### Bestätigen Sie Ihre Daten
<a name="validate-your-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Quell- und Zieldatenbanken. | Überprüfen Sie die Quell- und Zieldatenbanken, um sicherzustellen, dass die Daten erfolgreich repliziert wurden. Sie können eine grundlegende Validierung durchführen, indem `select count(1)` Sie die Quell- und Zieltabellen verwenden. | DBA | 

## Zugehörige Ressourcen
<a name="migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical-resources"></a>
+ [Amazon RDS](https://aws.amazon.com/rds/)
+ [Logische Replikation für PostgreSQL auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.LogicalReplication) (Amazon RDS-Dokumentation)
+ [logisch (Repository)](https://github.com/2ndQuadrant/pglogical) GitHub 
+ [Einschränkungen von pglogical](https://github.com/2ndQuadrant/pglogical#limitations-and-restrictions) (README-Datei des Projektarchivs) GitHub 
+ [Migration von PostgreSQL von lokal oder Amazon EC2 zu Amazon RDS mithilfe logischer Replikation](https://aws.amazon.com/blogs/database/migrating-postgresql-from-on-premises-or-amazon-ec2-to-amazon-rds-using-logical-replication/) (AWS-Datenbank-Blog)

# Migrieren Sie eine lokale PostgreSQL-Datenbank zu Aurora PostgreSQL
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql"></a>

*Baji Shaik und Jitender Kumar, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-summary"></a>

Die Amazon Aurora PostgreSQL-Compatible Edition kombiniert die Leistung und Verfügbarkeit kommerzieller High-End-Datenbanken mit der Einfachheit und Kosteneffizienz von Open-Source-Datenbanken. Aurora bietet diese Vorteile durch die Skalierung des Speichers auf drei Availability Zones in derselben AWS-Region und unterstützt bis zu 15 Read Replica-Instances zur Skalierung von Lese-Workloads und zur Bereitstellung von Hochverfügbarkeit innerhalb einer einzigen Region. Mithilfe einer globalen Aurora-Datenbank können Sie PostgreSQL-Datenbanken in bis zu fünf Regionen replizieren, um den Fernlesezugriff und die Notfallwiederherstellung im Falle eines Regionsausfalls zu ermöglichen. Dieses Muster beschreibt die Schritte zur Migration einer lokalen PostgreSQL-Quelldatenbank zu einer Aurora PostgreSQL-kompatiblen Datenbank. [Das Muster umfasst zwei Migrationsoptionen: die Verwendung von AWS Data Migration Service (AWS DMS) oder die Verwendung nativer PostgreSQL-Tools (wie [pg\$1dump, [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html)](https://www.postgresql.org/docs/current/app-pgdump.html) und psql) oder Tools von Drittanbietern.](https://www.postgresql.org/docs/current/app-psql.html) 

Die in diesem Muster beschriebenen Schritte gelten auch für PostgreSQL-Zieldatenbanken auf Amazon Relational Database Service (Amazon RDS) - und Amazon Elastic Compute Cloud (Amazon EC2) -Instances.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine PostgreSQL-Quelldatenbank in einem lokalen Rechenzentrum
+ [Eine Aurora PostgreSQL-kompatible DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.html) oder eine [Amazon RDS for](https://aws.amazon.com/getting-started/hands-on/create-connect-postgresql-db/) PostgreSQL DB-Instance

**Einschränkungen**
+ Die Größenbeschränkungen für Datenbanken sind 64 TB für Amazon RDS for PostgreSQL und 128 TB für Aurora PostgreSQL-kompatibel.
+ Wenn Sie die AWS DMS-Migrationsoption verwenden, lesen Sie sich die [AWS-DMS-Einschränkungen für die Verwendung einer PostgreSQL-Datenbank](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.Limitations) als Quelle durch.

**Produktversionen**
+ Informationen zur Unterstützung von PostgreSQL-Haupt- und Nebenversionen in Amazon RDS finden Sie unter [Amazon RDS for PostgreSQL PostgreSQL-Updates](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-versions.html) in der Amazon RDS-Dokumentation.
+ Informationen zur PostgreSQL-Unterstützung in Aurora finden Sie unter [Amazon Aurora PostgreSQL-Updates](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html) in der Aurora-Dokumentation.
+ Wenn Sie die AWS DMS-Migrationsoption verwenden, finden Sie in der AWS DMS-Dokumentation Informationen zu den [unterstützten PostgreSQL-Versionen](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html).

## Architektur
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale PostgreSQL-Datenbank

**Zieltechnologie-Stack**
+ Aurora PostgreSQL-kompatible DB-Instance

**Quellarchitektur**

![\[Quellarchitektur für die lokale PostgreSQL-Datenbank\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/a8621ad3-781b-45a9-86a8-d0b0ec5c79ea.png)


**Zielarchitektur**

![\[Zielarchitektur für die PostgreSQL-Datenbank auf Amazon Aurora\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/fc2ec0cb-7b9b-4cc0-b70c-40e47c2f4c45.png)


**Architektur der Datenmigration**

*Verwenden von AWS DMS*

![\[Migrieren einer lokalen PostgreSQL-Datenbank zu Aurora mithilfe von AWS DMS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/5336adb4-e9eb-47d0-a5b5-d149261b1638.png)


*Verwendung nativer PostgreSQL-Tools*

![\[Migrieren einer lokalen PostgreSQL-Datenbank zu Aurora mithilfe von pg_dump und pg_restore\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/82114165-8102-44a2-8b12-485ac9eb8989/images/3c6fb533-45ff-443e-bfb1-97e60cbdd583.png)


## Tools
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-tools"></a>
+ [AWS Database Migration Service (AWS DMS)](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) unterstützt Sie bei der Migration von Datenspeichern in die AWS-Cloud oder zwischen Kombinationen von Cloud- und lokalen Konfigurationen. Dieser Service unterstützt verschiedene Quellen und Zieldatenbanken. Informationen zur Validierung der Versionen und Editionen der PostgreSQL-Quell- und Zieldatenbank, die für die Verwendung mit AWS DMS unterstützt werden, finden Sie unter [Verwenden einer PostgreSQL-Datenbank als](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html) AWS-DMS-Quelle. Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten.
+ [https://www.postgresql.org/docs/current/app-pgrestore.html](https://www.postgresql.org/docs/current/app-pgrestore.html)

## Epen
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-epics"></a>

### Analysieren Sie die Migration
<a name="analyze-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Quell- und Zieldatenbankversionen. | Wenn Sie AWS DMS verwenden, stellen Sie sicher, dass Sie eine [unterstützte Version von PostgreSQL](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html) verwenden.  | DBA | 
| Identifizieren Sie den Speichertyp und die Kapazitätsanforderungen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, Systemadministrator | 
| Wählen Sie den richtigen Instanztyp, die Kapazität, die Speicherfunktionen und die Netzwerkfunktionen aus. | Ermitteln Sie die Rechenanforderungen der Zieldatenbank-Instance. Prüfen Sie bekannte Leistungsprobleme, die möglicherweise zusätzliche Aufmerksamkeit erfordern. Berücksichtigen Sie die folgenden Faktoren, um den geeigneten Instance-Typ zu bestimmen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Weitere Informationen finden Sie unter [Aurora-DB-Instance-Klassen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html) in der Aurora-Dokumentation. | DBA, Systemadministrator | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. | Ermitteln Sie die geeigneten Sicherheitsgruppen, die es der Anwendung ermöglichen würden, mit der Datenbank zu kommunizieren. | DBA, Systemadministrator | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, Besitzer der App, Systemadministrator | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine VPC. | Erstellen Sie eine neue Virtual Private Cloud (VPC) für die Zieldatenbank-Instance. | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen. | Erstellen Sie eine Sicherheitsgruppe innerhalb der VPC (wie im vorherigen Epic festgelegt), um eingehende Verbindungen zur Datenbank-Instance zuzulassen.  | Systemadministrator | 
| Konfigurieren und starten Sie den Aurora-DB-Cluster. | Erstellen Sie die Zieldatenbank-Instance mit der neuen VPC und Sicherheitsgruppe und starten Sie die Instance. | Systemadministrator | 

### Daten migrieren ‒ Option 1 (mit AWS DMS)
<a name="migrate-data-option-1-using-aws-dms"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie die Schritte vor der Migration durch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Schließen Sie die Migrationsschritte ab. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 
| Daten validieren. | Um sicherzustellen, dass Ihre Daten korrekt von der Quelle zum Ziel migriert wurden, befolgen Sie die [Schritte zur Datenvalidierung](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Validating.html) in der AWS DMS-Dokumentation. | DBA | 

### Daten migrieren ‒ Option 2 (mit pg\$1dump und pg\$1restore)
<a name="migrate-data-option-2-using-pg_dump-and-pg_restore"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die Quelldatenbank vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Weitere Informationen finden Sie in der [pg\$1dump-Dokumentation](https://www.postgresql.org/docs/current/app-pgdump.html) und in der [exemplarischen Vorgehensweise in der AWS](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) DMS-Dokumentation. | DBA | 
| Bereiten Sie die Zieldatenbank vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html)Weitere Informationen finden Sie in der Dokumentation zu [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html) und in der [exemplarischen Vorgehensweise](https://docs.aws.amazon.com/dms/latest/sbs/chap-manageddatabases.postgresql-rds-postgresql-full-load-pd_dump.html) in der AWS DMS-Dokumentation. | DBA | 
| Daten validieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Anwendungsmigration. | Implementieren Sie die Strategie zur Anwendungsmigration, die Sie im ersten Epic erstellt haben. | DBA, App-Besitzer, Systemadministrator | 

### Wechseln Sie zur Zieldatenbank
<a name="cut-over-to-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, App-Besitzer, Systemadministrator | 
| Wenn Sie die Migration rückgängig machen müssen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-postgresql-database-to-aurora-postgresql.html) | DBA, Besitzer der App | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ressourcen herunterfahren. | Fahren Sie die temporären AWS-Ressourcen herunter. | DBA, Systemadministrator | 
| Dokumente validieren. | Überprüfen und validieren Sie die Projektdokumente. | DBA, App-Besitzer, Systemadministrator | 
| Sammeln Sie Metriken. | Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zu den prozentualen Einsparungen bei den manuellen Kosten im Vergleich zu den Werkzeugkosten usw. | DBA, App-Besitzer, Systemadministrator | 
| Schließt das Projekt. | Schließen Sie das Projekt und geben Sie Feedback. | DBA, App-Besitzer, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-postgresql-database-to-aurora-postgresql-resources"></a>

**Referenzen**
+ [AWS-Datenmigrationsservice](https://aws.amazon.com/dms/)
+ [VPCs und Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.html)
+ [Amazon-Aurora-Preise](https://aws.amazon.com/rds/aurora/pricing/)
+ [Verwenden einer PostgreSQL-Datenbank als AWS-DMS-Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html)
+ [So erstellen Sie eine AWS DMS-Replikationsinstanz](https://aws.amazon.com/premiumsupport/knowledge-center/create-aws-dms-replication-instance/)
+ [So erstellen Sie Quell- und Zielendpunkte mit AWS DMS](https://aws.amazon.com/premiumsupport/knowledge-center/create-source-target-endpoints-aws-dms/)

**Weitere Ressourcen**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Exemplarische Vorgehensweisen zur Datenmigration step-by-step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html)
+ [Amazon Aurora Aurora-Ressourcen](https://aws.amazon.com/rds/aurora/getting-started/)

# Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Microsoft SQL Server auf Amazon EC2 unter Linux
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux"></a>

*Tirumala Dasari, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-summary"></a>

Dieses Muster beschreibt, wie Sie mithilfe von Sicherungs- und Wiederherstellungsdienstprogrammen von einer lokalen Microsoft SQL Server-Datenbank, die unter Microsoft Windows ausgeführt wird, zu Microsoft SQL Server auf einer Amazon Elastic Compute Cloud (Amazon EC2) Linux-Instance migrieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Amazon EC2 Linux AMI (Amazon Machine Image) mit Microsoft SQL Server
+ AWS Direct Connect zwischen lokalem Windows und Microsoft SQL Server auf der Linux-Instance EC2 

## Architektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Microsoft SQL Server-Datenbank

**Zieltechnologie-Stack**
+  EC2 Linux-Instanz mit einer Microsoft SQL Server-Datenbank

**Architektur der Datenbankmigration**

![\[Architekturdiagramm zur Migration einer lokalen SQL Server-Datenbank auf eine EC2 Linux-Instanz.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f331ad15-2d41-4087-a6d1-60e3443e2acf/images/f50a779a-ce5d-44b1-8d37-dedd6400a12c.png)


## Tools
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-tools"></a>
+ **WinSCP** - Mit diesem Tool können Windows-Benutzer Dateien problemlos mit Linux-Benutzern teilen.
+ **Sqlcmd** — Mit diesem Befehlszeilenprogramm können Sie T-SQL-Anweisungen oder Batches an lokale und Remoteinstanzen von SQL Server senden. Das Hilfsprogramm ist äußerst nützlich für sich wiederholende Datenbankaufgaben wie Batchverarbeitung oder Komponententests.

## Epen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-epics"></a>

### Bereiten Sie die EC2 Linux-Instanz mit SQL Server vor
<a name="prepare-the-ec2-linux-instance-with-sql-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wählen Sie ein AMI aus, das das Linux-Betriebssystem bereitstellt und Microsoft SQL Server enthält. |  | Systemadministrator | 
| Konfigurieren Sie das AMI, um eine EC2 Instanz zu erstellen. |  | Sysadmin | 
| Erstellen Sie Regeln für eingehenden und ausgehenden Datenverkehr für Sicherheitsgruppen. |  | Sysadmin | 
| Konfigurieren Sie die EC2 Linux-Instanz für eine Microsoft SQL Server-Datenbank. |  | DBA | 
| Erstellen Sie Benutzer und gewähren Sie Berechtigungen wie in der Quelldatenbank. |  | Appowner, DBA | 
| Installieren Sie die SQL Server-Tools und das Hilfsprogramm sqlcmd auf der Linux-Instanz. EC2  |  | DBA | 

### Sichern Sie die Datenbank und verschieben Sie die Sicherungsdatei auf die Linux-Instanz EC2
<a name="back-up-the-database-and-move-backup-file-to-linux-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Sichern Sie die lokale SQL Server-Datenbank. |  | DBA | 
| Installieren Sie WinSCP auf Microsoft SQL Server. |  | DBA | 
| Verschieben Sie die Sicherungsdatei auf die EC2 Linux-Instanz, auf der Microsoft SQL Server ausgeführt wird. |  | DBA | 

### Stellen Sie die Datenbank auf einer EC2 Linux-Instanz wieder her, auf der SQL Server ausgeführt wird
<a name="restore-the-database-on-linux-ec2-instance-running-sql-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Datenbank mithilfe des Dienstprogramms sqlcmd aus der Datenbank-Backup-Datei wieder her. |  | DBA | 
| Validieren Sie Datenbankobjekte und Daten. |  | Entwickler, Testingenieur | 

### Wechseln Sie von Windows SQL Server zu Windows SQL Server auf einer EC2 Linux-Instanz
<a name="cut-over-from-windows-sql-server-to-windows-sql-server-on-linux-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie Datenbankobjekte und Daten. |  | Entwickler, Testingenieur | 
| Wechseln Sie von der lokalen Microsoft SQL Server-Datenbank zur EC2 Linux-Instanz, auf der Microsoft SQL Server ausgeführt wird. |  | DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux-resources"></a>
+ [So konfigurieren Sie SQL Server 2017 auf Amazon Linux und Ubuntu AMIs](https://aws.amazon.com/blogs/database/configuring-sql-server-2017-on-amazon-linux-2-and-ubuntu-amis/) 
+ [Installation von SQL-Tools auf einer Linux-Instanz](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017#RHEL) 
+ [Backup und Wiederherstellung von einer lokalen Microsoft SQL Server-Datenbank auf Microsoft SQL Server auf einer Linux-Instanz EC2 ](https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-2017#create-a-backup-on-windows) 

# Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mithilfe von Verbindungsservern zu Amazon RDS for SQL Server
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers"></a>

*Kevin Yung, Viqash Adwani und Vishal Singh, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-summary"></a>

Verbindungsserver ermöglichen es Microsoft SQL Server, SQL-Anweisungen auf anderen Instanzen von Datenbankservern auszuführen. Dieses Muster beschreibt, wie Sie Ihre lokale Microsoft SQL Server-Datenbank zu Amazon Relational Database Service (Amazon RDS) für Microsoft SQL Server migrieren können, um geringere Kosten und höhere Verfügbarkeit zu erzielen. Derzeit unterstützt Amazon RDS for Microsoft SQL Server keine Verbindungen außerhalb eines Amazon Virtual Private Cloud (Amazon VPC) -Netzwerks. 

Sie können dieses Muster verwenden, um die folgenden Ziele zu erreichen:
+ Um Microsoft SQL Server auf Amazon RDS for Microsoft SQL Server zu migrieren, ohne die Funktionen des Verbindungsservers zu beeinträchtigen.
+ Um verknüpfte Microsoft SQL Server in verschiedenen Wellen zu priorisieren und zu migrieren.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-prerequisites-and-limitations"></a>

**Voraussetzungen**
+ Prüfen Sie, ob [Microsoft SQL Server auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) die von Ihnen benötigten Funktionen unterstützt. 
+ Stellen Sie sicher, dass Sie entweder [Amazon RDS for Microsoft SQL Server mit Standardsortierungen oder Sortierungen auf Datenbankebene verwenden können](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html). 

## Architektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-architecture"></a>

**Quelltechnologie-Stack**
+ Lokale Datenbanken (Microsoft SQL Server)

 **Zieltechnologie-Stack**
+ Amazon RDS für SQL Server

**Architektur des Quellzustands**

![\[Diagram showing data replication between two data centers with primary and secondary SQL servers.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/776b453a-7fa0-43fd-b1ca-fb9e5cc21820.png)


 

 

 

 

 

 

 

 

 

 

 

 

**Architektur des Zielzustands**

Im Zielstatus migrieren Sie Microsoft SQL Server mithilfe von Verbindungsservern zu Amazon RDS for Microsoft SQL Server. Diese Architektur verwendet einen Network Load Balancer, um den Datenverkehr von Amazon RDS for Microsoft SQL Server an lokale Server weiterzuleiten, auf denen Microsoft SQL Server ausgeführt wird. Das folgende Diagramm zeigt die Reverse-Proxy-Fähigkeit für den Network Load Balancer.

![\[AWS Cloud architecture with RDS SQL Server instances in two availability zones and on-premises databases.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/95234758-cb8b-46e5-afd2-3d4aaf6ed668/images/6bdbdfbf-b048-4fbd-acef-0aeb826edb50.png)


 

## Tools
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-tools"></a>
+ AWS CloudFormation
+ Network Load Balancer 
+ Amazon RDS for SQL Server in mehreren Availability Zones (Multi-AZs)
+ AWS Database Migration Service (AWS DMS) 

## Epen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-epics"></a>

### Erstellen Sie eine Landingzone-VPC
<a name="create-a-landing-zone-vpc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die CIDR-Zuteilung. |  | AWS SysAdmin | 
| Erstellen einer Virtual Private Cloud (VPC). |  | AWS SysAdmin | 
| Erstellen Sie die VPC-Subnetze. |  | AWS SysAdmin | 
| Erstellen Sie die Subnetz-Zugriffskontrolllisten (ACLs). |  | AWS SysAdmin | 
| Erstellen Sie die Subnetz-Routing-Tabellen. |  | AWS SysAdmin | 
| Stellen Sie eine Verbindung mit AWS Direct Connect oder AWS Virtual Private Network (VPN) her. |  | AWS SysAdmin | 

### Migrieren Sie die Datenbank zu Amazon RDS
<a name="migrate-the-database-to-amazon-rds"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon RDS for Microsoft SQL Server Server-DB-Instance. |  | AWS SysAdmin | 
| Erstellen Sie eine AWS DMS-Replikations-Instance. |  | AWS SysAdmin | 
| Erstellen Sie die Quell- und Zieldatenbank-Endpunkte in AWS DMS. |  | AWS SysAdmin | 
| Erstellen Sie die Migrationsaufgabe und setzen Sie die kontinuierliche Replikation nach einer Volllast auf ON. |  | AWS SysAdmin | 
| Fordern Sie eine Firewall-Änderung an, damit Amazon RDS for Microsoft SQL Server auf die lokalen SQL Server-Datenbanken zugreifen kann. |  | AWS SysAdmin | 
| Erstellen Sie einen Network Load Balancer. |  | AWS SysAdmin | 
| Erstellen Sie eine Zielgruppe, die auf die Datenbankserver in Ihrem Rechenzentrum abzielt | Wir empfehlen, Hostnamen in der Zielkonfiguration zu verwenden, um Failover-Ereignisse im Rechenzentrum (DC) einzubeziehen. | AWS SysAdmin | 
| Führen Sie die SQL-Anweisung für die Einrichtung des Verbindungsservers aus. | Führen Sie die SQL-Anweisungen zum Hinzufügen eines Verbindungsservers mithilfe des Microsoft SQL-Managementtools für die Amazon RDS for Microsoft SQL Server-DB-Instance aus. Legen Sie in der SQL-Anweisung @datasrc fest, um den Network Load Balancer Balancer-Hostnamen zu verwenden. Fügen Sie Anmeldeinformationen für verknüpfte Server hinzu, indem Sie das Microsoft SQL-Management-Tool für die Amazon RDS for Microsoft SQL Server-DB-Instance verwenden. | AWS SysAdmin | 
| Testen und validieren Sie die SQL Server-Funktionen. |  | AWS SysAdmin | 
| Erstellen Sie eine Umstellung. |  | AWS SysAdmin | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers-related-resources"></a>
+ [Allgemeine Verwaltungsaufgaben für Microsoft SQL Server auf Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General)
+ [Sortierungen und Zeichensätze für Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.Collation.html) 
+ [Dokumentation zum Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) 
+ [Implementieren von Verbindungsservern mit Amazon RDS for Microsoft SQL Server (Blogbeitrag)](https://aws.amazon.com/blogs/database/implement-linked-servers-with-amazon-rds-for-microsoft-sql-server/)

# Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mit systemeigenen Sicherungs- und Wiederherstellungsmethoden zu Amazon RDS for SQL Server
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods"></a>

*Tirumala Dasari, David Queiroz und Vishal Singh, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-summary"></a>

Dieses Muster beschreibt, wie eine lokale Microsoft SQL Server-Datenbank auf eine Amazon Relational Database Service (Amazon RDS) für SQL Server-DB-Instance migriert wird (homogene Migration). Der Migrationsprozess basiert auf systemeigenen Sicherungs- und Wiederherstellungsmethoden von SQL Server. Es verwendet SQL Server Management Studio (SSMS), um eine Datenbank-Backup-Datei zu erstellen, und einen Amazon Simple Storage Service (Amazon S3) -Bucket, um die Sicherungsdatei zu speichern, bevor sie in Amazon RDS for SQL Server wiederhergestellt wird.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ AWS Identity and Access Management (IAM) -Rollenrichtlinien für den Zugriff auf den S3-Bucket und die Amazon RDS for SQL Server-DB-Instance.

**Einschränkungen**
+ Der in diesem Muster beschriebene Prozess migriert nur die Datenbank. SQL-Anmeldungen oder Datenbankbenutzer, einschließlich aller SQL Server-Agent-Jobs, werden nicht migriert, da sie zusätzliche Schritte erfordern.

**Produktversionen**
+ SQL Server 2012-2017. Die aktuelle Liste der unterstützten Versionen und Funktionen finden Sie in der AWS-Dokumentation unter [Microsoft SQL Server on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.FeatureSupport).

## Architektur
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale Microsoft SQL Server-Datenbank

**Zieltechnologie-Stack**
+ Amazon RDS for SQL Server Server-DB-Instance

**Architektur** der **Datenmigration**

![\[Architektur für die Migration einer lokalen SQL Server-DB zu einer Amazon RDS for SQL Server-DB-Instance.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/c2dcd6ab-deb1-4d5e-b3c5-3bf48c02ca4e/images/29f90473-6dd4-4574-bfbd-5c6a0481c40e.png)


## Tools
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-tools"></a>
+ Microsoft SQL Server Management Studio (SSMS) ist eine integrierte Umgebung für die Verwaltung der SQL Server-Infrastruktur. Es bietet eine Benutzeroberfläche und eine Gruppe von Tools mit umfangreichen Skripteditoren, die mit SQL Server interagieren.

## Epen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-epics"></a>

### Erstellen Sie eine Amazon RDS for SQL Server-DB-Instance
<a name="create-an-amazon-rds-for-sql-server-db-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wählen Sie SQL Server als Datenbank-Engine in Amazon RDS for SQL Server aus. |  | DBA | 
| Wählen Sie die SQL Server Express Edition. |  | DBA | 
| Geben Sie Datenbankdetails an. | Weitere Informationen zum Erstellen einer DB-Instance finden Sie in der [Amazon RDS-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html). | DBA, Besitzer der App | 

### Erstellen Sie eine Sicherungsdatei aus der lokalen SQL Server-Datenbank
<a name="create-a-backup-file-from-the-on-premises-sql-server-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie über SSMS eine Connect zur lokalen SQL Server-Datenbank her. |  | DBA | 
| Erstellen Sie eine Sicherungskopie der Datenbank. | Anweisungen finden Sie in der [SSMS-Dokumentation](https://learn.microsoft.com/en-us/sql/ssms/sql-server-management-studio-ssms). | DBA, Besitzer der App | 

### Laden Sie die Sicherungsdatei auf Amazon S3 hoch
<a name="upload-the-backup-file-to-amazon-s3"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen eines Buckets in Amazon S3. | Weitere Informationen finden Sie in der [Amazon S3-Dokumentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | DBA | 
| Laden Sie die Sicherungsdatei in den S3-Bucket hoch. | Weitere Informationen finden Sie in der [Amazon S3-Dokumentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html). | SysOps Administrator | 

### Stellen Sie die Datenbank in Amazon RDS for SQL Server wieder her
<a name="restore-the-database-in-amazon-rds-for-sql-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie die Optionsgruppe zu Amazon RDS hinzu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.html)Weitere Informationen finden Sie in der [Dokumentation zu Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html). | SysOps Administrator | 
| Stellen Sie die Datenbank wieder her. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.html) | DBA | 

### Validieren Sie die Zieldatenbank
<a name="validate-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie Objekte und Daten. | Validieren Sie die Objekte und Daten zwischen der Quelldatenbank und Amazon RDS for SQL Server.Bei dieser Aufgabe wird nur die Datenbank migriert. Logins und Jobs werden nicht migriert. | Besitzer der App, DBA | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Leiten Sie den Anwendungsverkehr um. | Leiten Sie nach der Validierung den Anwendungsdatenverkehr zur Amazon RDS for SQL Server-DB-Instance um. | Besitzer der App, DBA | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods-resources"></a>
+ [Amazon S3 S3-Dokumentation](https://docs.aws.amazon.com/s3/) 
+ [Dokumentation zu Amazon RDS for SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html) 
+ [Optionen für die Microsoft SQL Server Database Engine](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) 

# Migrieren Sie eine Microsoft SQL Server-Datenbank mithilfe von AWS DMS und AWS SCT zu Aurora MySQL
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct"></a>

*Mark Szalkiewicz und Pavan Pusuluri, Amazon Web Services*

## Zusammenfassung
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-summary"></a>

Dieses Muster beschreibt, wie eine Microsoft SQL Server-Datenbank, die sich entweder lokal oder auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance befindet, zu Amazon Aurora MySQL migriert wird. Das Muster verwendet AWS Database Migration Service (AWS DMS) und AWS Schema Conversion Tool (AWS SCT) für die Datenmigration und Schemakonvertierung. 

## Voraussetzungen und Einschränkungen
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-prerequisites-and-limitations"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Microsoft SQL Server-Quelldatenbank in einem lokalen Rechenzentrum oder auf einer Instanz EC2 
+ Java Database Connectivity (JDBC) -Treiber für AWS SCT-Konnektoren, die entweder auf einem lokalen Computer oder auf einer EC2 Instanz installiert sind, auf der AWS SCT installiert ist 

 

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 64 TB

**Produktversionen**
+ Microsoft SQL Server 2008, 2008R2, 2012, 2014, 2016 und 2017 für die Enterprise-, Standard-, Workgroup- und Developer-Editionen. Die Web- und Express-Editionen werden von AWS DMS nicht unterstützt. Die aktuelle Liste der unterstützten Versionen finden Sie unter [Verwenden einer Microsoft SQL Server-Datenbank als Quelle für AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.SQLServer.html). Wir empfehlen Ihnen, die neueste Version von AWS DMS zu verwenden, um die umfassendste Version von Versionen und Funktionen zu erhalten. Informationen zu den von AWS SCT unterstützten Microsoft SQL Server-Versionen finden Sie in der [AWS SCT-Dokumentation.](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ MySQL-Versionen 5.5, 5.6 und 5.7. Die aktuelle Liste der unterstützten Versionen finden Sie unter [Verwenden einer MySQL-kompatiblen Datenbank als Ziel für](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) AWS DMS.

## Architektur
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-architecture"></a>

**Quelltechnologie-Stack**

Eine der beiden folgenden Komponenten: 
+ Eine lokale Microsoft SQL Server-Datenbank
+ Eine Microsoft SQL Server-Datenbank auf einer EC2 Instanz

**Zieltechnologie-Stack**
+ Aurora MySQL

**Architektur der Datenmigration**
+ Aus einer Microsoft SQL Server-Datenbank, die in der AWS-Cloud läuft 

![\[AWS Cloud architecture showing VPC with private subnet containing SQL Server and Aurora MySQL databases.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/c675ada4-e92c-4ddb-b49f-69668f532504.png)

+ Aus einer Microsoft SQL Server-Datenbank, die in einem lokalen Rechenzentrum läuft

![\[AWS Cloud architecture diagram showing on-premises to cloud migration using AWS SCT, DMS, and Aurora MySQL.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e2de4507-82a8-4bd6-b25b-1e830b197b9f/images/b6ce0199-fc56-4bf2-a8cc-67de161e3cf0.png)


## Tools
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-tools"></a>
+ **AWS DMS** — [AWS Data Migration Service](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) (AWS DMS) unterstützt Sie bei der Migration Ihrer Daten zu und von weit verbreiteten kommerziellen und Open-Source-Datenbanken, darunter Oracle, SQL Server, MySQL und PostgreSQL. Sie können AWS DMS verwenden, um Ihre Daten in die AWS Cloud, zwischen lokalen Instances (über eine AWS Cloud-Einrichtung) oder zwischen Kombinationen aus Cloud und lokalen Einrichtungen zu migrieren.
+ **AWS SCT** — Das [AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html) (AWS SCT) vereinfacht heterogene Datenbankmigrationen, indem das Quelldatenbankschema und ein Großteil des benutzerdefinierten Codes automatisch in ein mit der Zieldatenbank kompatibles Format konvertiert werden.

## Epen
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-epics"></a>

### Bereite dich auf die Migration vor
<a name="prepare-for-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Quell- und Zieldatenbankversion und die Engine. |  | DBA | 
| Erstellen Sie eine Sicherheitsgruppe für ausgehende Nachrichten für die Quell- und Zieldatenbanken. |  | SysAdmin | 
| Erstellen und konfigurieren Sie bei Bedarf eine EC2 Instanz für AWS SCT. |  | DBA | 
| Laden Sie die neueste Version von AWS SCT und die zugehörigen Treiber herunter. |  | DBA | 
| Fügen Sie die erforderlichen Benutzer und Berechtigungen in der Quelldatenbank hinzu und validieren Sie sie. |  | DBA | 
| Erstellen Sie ein AWS SCT-Projekt für den Workload und stellen Sie eine Verbindung zur Quelldatenbank her. |  | DBA | 
| Erstellen Sie einen Bewertungsbericht und bewerten Sie die Machbarkeit. |  | DBA | 

### Bereiten Sie die Zieldatenbank vor
<a name="prepare-the-target-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon RDS-DB-Zielinstanz mit Amazon Aurora als Datenbank-Engine. |  | DBA | 
| Extrahieren Sie die Liste der Benutzer, Rollen und Berechtigungen aus der Quelle. |  | DBA | 
| Ordnen Sie die vorhandenen Datenbankbenutzer den neuen Datenbankbenutzern zu. |  | Besitzer der App | 
| Erstellen Sie Benutzer in der Zieldatenbank. |  | DBA | 
| Wenden Sie Rollen aus dem vorherigen Schritt auf die Zieldatenbank an. |  | DBA | 
| Überprüfen Sie die Datenbankoptionen, Parameter, Netzwerkdateien und Datenbank-Links in der Quelldatenbank und bewerten Sie dann deren Anwendbarkeit auf die Zieldatenbank. |  | DBA | 
| Wenden Sie alle relevanten Einstellungen auf das Ziel an. |  | DBA | 

### Objekte übertragen
<a name="transfer-objects"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die AWS SCT-Konnektivität zur Zieldatenbank. |  | DBA | 
| Konvertieren Sie das Schema mit AWS SCT. | AWS SCT konvertiert das Quelldatenbankschema und den größten Teil des benutzerdefinierten Codes automatisch in ein Format, das mit der Zieldatenbank kompatibel ist. Jeder Code, den das Tool nicht automatisch konvertieren kann, ist deutlich gekennzeichnet, sodass Sie ihn selbst konvertieren können. | DBA | 
| Überprüfen Sie den generierten SQL-Bericht und speichern Sie alle Fehler und Warnungen. |  | DBA | 
| Wenden Sie automatische Schemaänderungen auf das Ziel an oder speichern Sie sie als .sql-Datei. |  | DBA | 
| Überprüfen Sie, ob AWS SCT die Objekte auf dem Ziel erstellt hat.  |  | DBA | 
| Alle Elemente, die nicht automatisch konvertiert werden konnten, können manuell neu geschrieben, zurückgewiesen oder neu gestaltet werden. |  | DBA | 
| Wenden Sie die generierten Rollen- und Benutzerberechtigungen an und überprüfen Sie alle Ausnahmen. |  | DBA | 

### Migrieren Sie die Daten
<a name="migrate-the-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ermitteln Sie die Migrationsmethode. |  | DBA | 
| Erstellen Sie eine Replikationsinstanz von der AWS DMS-Konsole aus. | Detaillierte Informationen zur Verwendung von AWS DMS finden Sie unter den Links im Abschnitt „Verwandte Ressourcen“. | DBA | 
| Erstellen Sie die Quell- und Zielendpunkte. |  | DBA | 
| Erstellen Sie eine Replikationsaufgabe. |  | DBA | 
| Starten Sie die Replikationsaufgabe und überwachen Sie die Protokolle. |  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie AWS SCT, um die SQL-Elemente im Anwendungscode zu analysieren und zu konvertieren. | Wenn Sie Ihr Datenbankschema von einer Engine in eine andere konvertieren, müssen Sie auch den SQL-Code in Ihren Anwendungen aktualisieren, damit diese mit der neuen Datenbank-Engine anstelle der alten interagieren. Sie können den konvertierten SQL-Code anzeigen, analysieren, bearbeiten und speichern. Detaillierte Informationen zur Verwendung von AWS SCT finden Sie unter den Links im Abschnitt „Verwandte Ressourcen“. | Besitzer der App | 
| Erstellen Sie die neuen Anwendungsserver auf AWS. |  | Besitzer der App | 
| Migrieren Sie den Anwendungscode auf die neuen Server. |  | Besitzer der App | 
| Konfigurieren Sie den Anwendungsserver für die Zieldatenbank und die Treiber. |  | Besitzer der App | 
| Korrigieren Sie jeglichen Code, der für die Quelldatenbank-Engine in der Anwendung spezifisch ist. |  | Besitzer der App | 
| Optimieren Sie den Anwendungscode für die Ziel-Engine. |  | Besitzer der App | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wenden Sie alle neuen Benutzer, Zuschüsse und Codeänderungen auf das Ziel an. |  | DBA | 
| Sperren Sie die Anwendung für alle Änderungen. |  | Besitzer der App | 
| Stellen Sie sicher, dass alle Änderungen an die Zieldatenbank weitergegeben wurden. |  | DBA | 
| Verweisen Sie den neuen Anwendungsserver auf die Zieldatenbank. |  | Besitzer der App | 
| Überprüfe alles noch einmal. |  | Besitzer der App | 
| Geh live. |  | Besitzer der App | 

### Schließe das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die temporären AWS-Ressourcen herunter (AWS DMS-Replikationsinstanz und für AWS SCT verwendete EC2 Instanz). |  | DBA, Besitzer der App | 
| Aktualisieren Sie das Feedback zum AWS DMS-Prozess für interne Teams. |  | DBA, Besitzer der App | 
| Überarbeiten Sie den AWS-DMS-Prozess und verbessern Sie gegebenenfalls die Vorlage. |  | DBA, Besitzer der App | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, Besitzer der App | 
| Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zu den prozentualen Einsparungen bei den manuellen Kosten im Vergleich zu den Werkzeugkosten usw. |  | DBA, Besitzer der App | 
| Schließen Sie das Projekt und geben Sie Feedback. |  | DBA, Besitzer der App | 

## Zugehörige Ressourcen
<a name="migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct-related-resources"></a>

**Referenzen**
+ [AWS DMS-Benutzerhandbuch](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [AWS SCT-Benutzerhandbuch](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)  
+ [Amazon Aurora Aurora-Preise](https://aws.amazon.com/rds/aurora/pricing/) 

**Tutorials und Videos**
+ [Erste Schritte mit dem AWS Database Migration Service](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit dem AWS Schema Conversion Tool](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)
+ [Amazon RDS-Ressourcen](https://aws.amazon.com/rds/getting-started/)
+ [Exemplarische Vorgehensweisen zu AWS DMS Step-by-Step](https://docs.aws.amazon.com/dms/latest/sbs/DMS-SBS-Welcome.html) 

# Migrieren Sie eine lokale MariaDB-Datenbank mit nativen Tools zu Amazon RDS for MariaDB
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools"></a>

*Shyam Sunder Rakhecha, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-summary"></a>

Dieses Muster bietet Anleitungen für die Migration einer lokalen MariaDB-Datenbank zu Amazon Relational Database Service (Amazon RDS) für MariaDB mithilfe nativer Tools. Wenn Sie MySQL-Tools installiert haben, können Sie **mysql** und **mysqldump** verwenden. **Wenn Sie MariaDB-Tools installiert haben, können Sie Mariadb und **Mariadb-dump** verwenden.** MySQL- und MariaDB-Tools haben denselben Ursprung, aber es gibt geringfügige Unterschiede in MariaDB-Version 10.6 und höher.

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine MariaDB-Quelldatenbank in einem lokalen Rechenzentrum

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 64 TB

**Produktversionen**
+ MariaDB-Versionen 10.0-10.6 (die aktuelle Liste der unterstützten Versionen finden Sie unter [MariaDB on](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) Amazon RDS in der AWS-Dokumentation)

## Architektur
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-architecture"></a>

**Quelltechnologie-Stack**
+ MariaDB-Datenbank in einem lokalen Rechenzentrum

**Zieltechnologie-Stack**
+ Amazon RDS for MariaDB MariaDB-DB-Instance

**Zielarchitektur**

![\[Architekturdiagramm mit primären und Standby-RDS-DB-Instances in verschiedenen Availability Zones.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/eca8eb55-579a-42e2-96ce-9b14b097b4c9.png)


**Architektur der Datenmigration**

![\[Architekturdiagramm der Migration einer lokalen MariaDB-Datenbank zu Amazon RDS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/7be644e0-da42-4515-87b7-04da7a054adb/images/daba40e2-a2b1-44f8-8e69-31458206a823.png)


## Tools
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-tools"></a>
+ Native MySQL-Tools: **mysql** und **mysqldump**
+ **Native MariaDB-Tools: Mariadb und **Mariadb-Dump****

## Epen
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie die Versionen und Engines der Quell- und Zieldatenbank. |  | DBA | 
| Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). |  | DBA, Systemadministrator | 
| Wählen Sie den richtigen Instanztyp auf der Grundlage von Kapazität, Speicherfunktionen und Netzwerkfunktionen aus. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für Quell- und Zieldatenbanken. |  | DBA, Systemadministrator | 
| Identifizieren Sie die Strategie zur Anwendungsmigration. |  | DBA, App-Besitzer, Systemadministrator | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). |  | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen. |  | Systemadministrator | 
| Konfigurieren und starten Sie eine Amazon RDS-DB-Instance, auf der MariaDB ausgeführt wird. |  | Systemadministrator | 

### Daten migrieren
<a name="migrate-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie native Tools, um Datenbankobjekte und Daten zu migrieren. | Verwenden Sie in der Quelldatenbank **mysqldump oder **mariadb-dump****, um eine Ausgabedatei zu erstellen, die Datenbankobjekte und Daten enthält. **Verwenden Sie in der Zieldatenbank **mysql oder mariadb, um die Daten wiederherzustellen**.** | DBA | 
| Validieren Sie die Daten. | Überprüfen Sie die Quell- und Zieldatenbanken, um sicherzustellen, dass die Datenmigration erfolgreich war. | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie zur Anwendungsmigration. |  | DBA, App-Besitzer, Systemadministrator | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungsclients auf die neue Infrastruktur um. |  | DBA, App-Besitzer, Systemadministrator | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fahren Sie die temporären AWS-Ressourcen herunter. |  | Systemadministrator | 
| Überprüfen und validieren Sie die Projektdokumente. |  | DBA, App-Besitzer, Systemadministrator | 
| Sammeln Sie Kennzahlen zum Zeitpunkt der Migration, zu den durch Tools erzielten Kosteneinsparungen usw. |  | DBA, App-Besitzer, Systemadministrator | 
| Schließen Sie das Projekt ab und geben Sie Feedback. |  | DBA, App-Besitzer, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools-resources"></a>

**Amazon RDS-Referenzen**
+ [Amazon RDS für MariaDB](https://aws.amazon.com/rds/mariadb/)
+ [Amazon Virtual Private Cloud VPCs und Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Amazon RDS Multi-AZ-Bereitstellungen](https://aws.amazon.com/rds/details/multi-az/)
+ [Amazon RDS — Preise](https://aws.amazon.com/rds/pricing/)

**MySQL- und MariaDB-Referenzen**
+ [mariadb-dump/mysqldump](https://mariadb.com/kb/en/mariadb-dumpmysqldump/) 
+ [mysql-Befehlszeilenclient](https://mariadb.com/kb/en/mysql-command-line-client/) 

**Anleitungen und Videos**
+ [Erste Schritte mit Amazon RDS](https://aws.amazon.com/rds/getting-started/)

# Migrieren Sie eine lokale MySQL-Datenbank zu Aurora MySQL
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql"></a>

*Igor Obradovic, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-summary"></a>

Dieses Muster erklärt, wie eine lokale MySQL-Quelldatenbank zur Amazon Aurora MySQL-Compatible Edition migriert wird. **Es beschreibt zwei Optionen für die Migration: die Verwendung von AWS Database Migration Service (AWS DMS) oder die Verwendung nativer MySQL-Tools wie **mysqldbcopy und mysqldump**.** 

## Voraussetzungen und Einschränkungen
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Eine MySQL-Quelldatenbank in einem lokalen Rechenzentrum

**Einschränkungen**
+ Größenbeschränkung der Datenbank: 128 TB

**Produktversionen**
+ MySQL Version 8.0 (Aurora MySQL Version 3) ist im Rahmen der Standardunterstützung verfügbar. 
+ MySQL Version 5.7 (Aurora MySQL Version 2) ist im Rahmen des erweiterten Supports gegen Aufpreis erhältlich.

Die aktuelle Liste der unterstützten Versionen finden Sie in der AWS Dokumentation unter [Amazon Aurora Aurora-Versionen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html). Wenn Sie verwenden AWS DMS, siehe auch [Verwenden einer MySQL-kompatiblen Datenbank als Ziel für AWS DMS für](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html) MySQL-Versionen, die von unterstützt werden. AWS DMS

## Architektur
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-architecture"></a>

**Quelltechnologie-Stack**
+ Eine lokale MySQL-Datenbank

**Zieltechnologie-Stack**
+ Amazon Aurora MySQL-Compatible Edition 

**Zielarchitektur**

Aurora-Daten werden in einem Cluster-Volume gespeichert, bei dem es sich um ein einzelnes virtuelles Volume handelt, das Solid-State-Laufwerke (SSDs) verwendet. Ein Cluster-Volume besteht aus Datenkopien, die sich zwischen drei Availability Zones in einer einzelnen AWS-Region befinden. Da die Daten automatisch über Availability Zones hinweg repliziert werden, sind sie äußerst robust und die Wahrscheinlichkeit eines Datenverlusts ist geringer.

Aurora teilt Ihr Datenbankvolumen automatisch in 10-GB-Segmente auf, die auf viele Festplatten verteilt sind. Jeder 10-GB-Abschnitt Ihres Datenbankvolumens wird auf sechs Arten in drei Availability Zones repliziert. Das folgende Diagramm veranschaulicht die Beziehung zwischen dem Cluster-Volume, der Writer-DB-Instance und den Reader-DB-Instances in einem Aurora-DB-Cluster sowie die Trennung von Rechenkapazität und Speicher. Weitere Informationen zu dieser Architektur finden Sie in der [Aurora-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.html) und in den [häufig gestellten Fragen](https://aws.amazon.com/rds/aurora/faqs/#product-faqs).

![\[Aurora MySQL-DB-Instances und gemeinsam genutztes Speichervolumen auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/0d7d8ebd-e0f2-4bcf-b296-8bdfb2f12b64.png)


**Architektur der Datenmigration**

*Verwenden von AWS DMS:*

Das folgende Diagramm veranschaulicht die Migration einer lokalen MySQL-Datenbank zu einem Aurora MySQL-kompatiblen Cluster im, using. AWS Cloud AWS DMS

![\[Migration einer lokalen MySQL-Datenbank zu Aurora MySQL mithilfe von AWS DMS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/e5d72ebd-d157-45d7-8844-d1011f1646c0.png)


*Verwendung nativer MySQL-Tools:*

****Das folgende Diagramm veranschaulicht die Migration einer lokalen MySQL-Datenbank zu einem Aurora MySQL-kompatiblen Cluster im AWS Cloud, wobei native MySQL-Tools wie mysqldbcopy und mysqldump verwendet werden.****

![\[Migration einer lokalen MySQL-Datenbank zu Aurora MySQL mithilfe von mysqldbcopy und mysqldump.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/22729803-e4ff-45a2-ab5b-8ba2445e5e21/images/26258752-24f6-4241-a49f-59c15e946314.png)


 

## Tools
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-tools"></a>
+ [AWS Database Migration Service () unterstützt mehrere Quell AWS DMS](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html) - und Zieldatenbank-Engines. Hinweise zu MySQL-Quell- und Zieldatenbanken, die von unterstützt werden AWS DMS, finden Sie unter [MySQL-kompatible Datenbanken migrieren](https://docs.aws.amazon.com/dms/latest/sbs/CHAP_MySQL.html) zu. AWS Wir empfehlen Ihnen, die neueste Version von zu verwenden, um die umfassendste AWS DMS Versions- und Funktionsunterstützung zu erhalten.
+ [mysqldbcopy](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html) ist ein MySQL-Hilfsprogramm, das eine MySQL-Datenbank auf einen einzelnen Server oder zwischen Servern kopiert.
+ [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) ist ein MySQL-Hilfsprogramm, das zu Sicherungs- oder Migrationszwecken eine Dump-Datei aus einer MySQL-Datenbank erstellt.

## Epen
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-epics"></a>

### Planen Sie die Migration
<a name="plan-the-migration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Version und die Engine. | Überprüfen Sie die Datenbankversion und die Engine für die Quell- und Zieldatenbanken. | DBA | 
| Identifizieren Sie die Hardwareanforderungen. | Identifizieren Sie die Hardwareanforderungen für die Zielserverinstanz. | DBA, Systemadministrator | 
| Identifizieren Sie die Speicheranforderungen. | Identifizieren Sie die Speicheranforderungen (Speichertyp und Kapazität). | DBA, Systemadministrator | 
| Wählen Sie den Instance-Typ aus. | Wählen Sie den richtigen Instanztyp basierend auf Ihren Rechen-, Speicher- und Netzwerkanforderungen. | DBA, Systemadministrator | 
| Ermitteln Sie die Sicherheitsanforderungen für den Netzwerkzugriff. | Identifizieren Sie die Sicherheitsanforderungen für den Netzwerkzugriff für die Quell- und Zieldatenbanken. | DBA, Systemadministrator | 
| Legen Sie die Strategie fest. | Identifizieren Sie die Strategie für die Anwendungsmigration. | DBA, App-Besitzer, Systemadministrator | 

### Konfigurieren Sie die Infrastruktur
<a name="configure-the-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen einer Virtual Private Cloud (VPC). | Anweisungen finden Sie unter [Erstellen einer VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) in der Dokumentation zu Amazon Virtual Private Cloud (Amazon VPC). | Systemadministrator | 
| Erstellen Sie Sicherheitsgruppen. | Anweisungen finden Sie unter [Erstellen einer Sicherheitsgruppe für Ihre VPC](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) in der Amazon VPC-Dokumentation. | Systemadministrator | 
| Konfigurieren und starten Sie einen Aurora MySQL-kompatiblen DB-Cluster in Ihrem. AWS-Konto | Anweisungen finden Sie in der Aurora-Dokumentation unter [Erstellen eines Amazon Aurora Aurora-DB-Clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html). | Systemadministrator | 

### Daten migrieren — Option 1
<a name="migrate-data---option-1"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie native MySQL-Tools oder Tools von Drittanbietern, um Datenbankobjekte und Daten zu migrieren. | [Anweisungen finden Sie in der Dokumentation für MySQL-Tools wie [mysqldbcopy und mysqldump](https://manpages.ubuntu.com/manpages/focal/man1/mysqldbcopy.1.html).](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html) | DBA | 

### Daten migrieren — Option 2
<a name="migrate-data---option-2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Migrieren Sie Daten mit AWS DMS. | Anweisungen finden Sie in der [Dokumentation unter Verwenden einer MySQL-kompatiblen Datenbank als Quelle](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.MySQL.html) und [Verwenden einer MySQL-kompatiblen Datenbank als Ziel](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.MySQL.html). AWS DMS  | DBA | 

### Migrieren Sie die Anwendung
<a name="migrate-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie der Strategie. | Folgen Sie der Strategie zur Anwendungsmigration. | DBA, App-Besitzer, Systemadministrator | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Wechseln Sie zwischen den Anwendungsclients. | Schalten Sie die Anwendungsclients um, um eine Verbindung zum neuen Aurora-Cluster-Endpunkt herzustellen. | DBA, App-Besitzer, Systemadministrator | 

### Schließen Sie das Projekt
<a name="close-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ressourcen herunterfahren. | Temporäre AWS Ressourcen herunterfahren. | DBA, Systemadministrator | 
| Überprüfen Sie die Dokumentation. | Überprüfen und validieren Sie die Projektdokumente. | DBA, App-Besitzer, Systemadministrator | 
| Sammeln Sie Metriken. | Erfassen Sie Kennzahlen zum Zeitpunkt der Migration, zum Prozentsatz manueller Schritte im Vergleich zur Nutzung der Tools, zu Kosteneinsparungen usw. | DBA, App-Besitzer, Systemadministrator | 
| Schließen Sie das Migrationsprojekt ab. | Schließen Sie das Projekt ab und geben Sie Feedback. | App-Besitzer, DBA, Systemadministrator | 

## Zugehörige Ressourcen
<a name="migrate-an-on-premises-mysql-database-to-aurora-mysql-resources"></a>

**Referenzen**
+ [Daten zum Amazon Aurora MySQL-DB-Cluster migrieren](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.html)
+ [AWS DMS website](https://aws.amazon.com/dms/)
+ [AWS DMS Dokumentation](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)
+ [Amazon Aurora Aurora-Preise](https://aws.amazon.com/rds/aurora/pricing/)
+ [Einen Aurora MySQL-DB-Cluster erstellen und eine Verbindung zu diesem herstellen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.CreatingConnecting.Aurora.html)
+ [Amazon VPC und Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html)
+ [Amazon Aurora Aurora-Dokumentation](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)

**Tutorials und Videos**
+ [Erste Schritte mit AWS DMS](https://aws.amazon.com/dms/getting-started/)
+ [Erste Schritte mit Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_GettingStartedAurora.html)

# Migrieren Sie lokale MySQL-Datenbanken mit Percona XtraBackup, Amazon EFS und Amazon S3 zu Aurora MySQL
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3"></a>

*Rohan Jamadagni, Udayasimha Theepireddy und Sajith Menon, Amazon Web Services*

## Zusammenfassung
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-summary"></a>

Dieses Muster beschreibt, wie große, lokale MySQL-Datenbanken mithilfe von XtraBackup Percona effizient zu Amazon Aurora MySQL migriert werden können. Percona XtraBackup ist ein quelloffenes, nicht blockierendes Backup-Programm für MySQL-basierte Server. Das Muster zeigt, wie Amazon Elastic File System (Amazon EFS) verwendet wird, um die Zeit für das Hochladen des Backups auf Amazon Simple Storage Service (Amazon S3) und das Wiederherstellen des Backups auf Amazon Aurora MySQL zu reduzieren. Das Muster enthält auch Details darüber, wie inkrementelle Percona-Backups erstellt werden können, um die Anzahl der Binärprotokolle zu minimieren, die auf die Aurora MySQL-Zieldatenbank angewendet werden sollen.  

## Voraussetzungen und Einschränkungen
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Berechtigungen zum Erstellen von Rollen und Richtlinien für AWS Identity and Access Management (IAM)
+ Netzwerkkonnektivität zwischen der lokalen MySQL-Datenbank und der Virtual Private Cloud (VPC) auf AWS

**Einschränkungen**
+ Bei den Quellservern muss es sich um Linux-basierte Systeme handeln, die einen Network File System (NFS) -Client (nfs-utils/nfs-common) installieren können.
+ Der zum Hochladen von Backup-Dateien verwendete S3-Bucket unterstützt nur serverseitige Verschlüsselung (SSE-S3/SSE-KMS).
+ Amazon S3 begrenzt die Größe der Backup-Dateien auf 5 TB. Wenn Ihre Sicherungsdatei 5 TB überschreitet, können Sie sie in mehrere kleinere Dateien aufteilen.
+ Die Anzahl der in den S3-Bucket hochgeladenen Quelldateien darf eine Million Dateien nicht überschreiten.
+ Das Muster unterstützt nur das XtraBackup vollständige und das inkrementelle Backup von Percona. Es unterstützt keine teilweisen Backups, die`--tables`,,`--tables-exclude`, `--tables-file` `--databases``--databases-exclude`, oder verwenden. `--databases-file`
+ Aurora stellt keine Benutzer, Funktionen, gespeicherten Prozeduren oder Zeitzoneninformationen aus der MySQL-Quelldatenbank wieder her.

**Produktversionen**
+ Die Quelldatenbank muss die MySQL-Version 5.5, 5.6 oder 5.7 sein.
+ Für MySQL 5.7 müssen Sie Percona XtraBackup 2.4 verwenden.
+ Für MySQL 5.6 und 5.6 müssen Sie Percona XtraBackup 2.3 oder 2.4 verwenden.

## Architektur
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-architecture"></a>

**Quelltechnologie-Stack**
+ Linux-basiertes Betriebssystem
+ MySQL-Server
+ Percona XtraBackup

**Zieltechnologie-Stack**
+ Amazon Aurora
+ Amazon S3
+ Amazon EFS

**Zielarchitektur**

![\[Architektur für die Migration großer MySQL-Datenbanken zu Amazon Aurora MySQL mithilfe von Percona XtraBackup.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bf327776-bafd-484d-9ae2-a6f5c8af6edd/images/7a410539-1511-4106-90e2-8c0c8e95f92b.png)


## Tools
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-tools"></a>

*AWS-Services*
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraMySQL.html) ist eine vollständig verwaltete relationale Datenbank-Engine, die es einfach und kostengünstig macht, MySQL-Bereitstellungen einzurichten, zu betreiben und zu skalieren. Aurora MySQL ist ein Drop-In-Ersatz für MySQL.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) unterstützt Sie bei der Erstellung und Konfiguration gemeinsam genutzter Dateisysteme in der AWS-Cloud.
+ [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.

**Andere Tools**
+ [Percona XtraBackup](https://www.percona.com/doc/percona-xtrabackup/2.4/index.html) ist ein Open-Source-Hilfsprogramm, das Streaming-, komprimierte und inkrementelle Backups von MySQL-Datenbanken durchführt, ohne Ihre Datenbanken zu stören oder zu blockieren.

## Epen
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-epics"></a>

### Erstellen eines Amazon EFS-Dateisystems
<a name="create-an-amazon-efs-file-system"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Sicherheitsgruppe, die Amazon EFS-Mount-Zielen zugeordnet werden soll. | Erstellen Sie eine Sicherheitsgruppe in der VPC, die mit einem VPN-Anhang zur lokalen Datenbank über AWS Transit Gateway konfiguriert ist. Weitere Informationen zu den in diesem und anderen Berichten beschriebenen Befehlen und Schritten finden Sie unter den Links im Abschnitt „Verwandte Ressourcen“ am Ende dieses Musters. |  DevOps/database AWS-Administrator | 
| Bearbeiten Sie die Sicherheitsgruppenregeln. | Fügen Sie eine Regel für eingehenden Datenverkehr hinzu und verwenden Sie dabei den Typ NFS, Port 2049 und den IP-Bereich des lokalen Datenbankservers als Quelle. Standardmäßig erlaubt die Regel für ausgehenden Datenverkehr das Verlassen des gesamten Datenverkehrs. Wenn dies nicht der Fall ist, fügen Sie eine ausgehende Regel hinzu, um eine Verbindung für den NFS-Port zu öffnen. Fügen Sie zwei weitere Regeln für eingehenden Datenverkehr hinzu: Port 2049 (Quelle: Sicherheitsgruppen-ID derselben Sicherheitsgruppe) und Port 22 (Quelle: IP-Bereich, von dem aus Sie eine Verbindung zu einer Instance herstellen werden). EC2  |  DevOps/database AWS-Administrator | 
| Erstellen eines Dateisystems. | Verwenden Sie in den Mount-Zielen die VPC und die Sicherheitsgruppe, die Sie in der vorherigen Geschichte erstellt haben. Wählen Sie den Durchsatzmodus und die Leistung auf der Grundlage der I/O Anforderungen der lokalen Datenbank. Aktivieren Sie optional die Verschlüsselung im Ruhezustand. |  DevOps/database AWS-Administrator | 

### Hängen Sie das Dateisystem ein
<a name="mount-the-file-system"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine IAM-Instanzprofilrolle, die einer EC2 Instanz zugeordnet werden soll. | Erstellen Sie eine IAM-Rolle, die über Berechtigungen zum Hochladen und Zugreifen auf Objekte in Amazon S3 verfügt. Wählen Sie den S3-Bucket aus, in dem das Backup als Richtlinienressource gespeichert werden soll. | AWS DevOps | 
| Erstellen Sie eine EC2 Instanz. | Starten Sie eine Linux-basierte EC2 Instance und fügen Sie die IAM-Instance-Profilrolle, die Sie im vorherigen Schritt erstellt haben, sowie die Sicherheitsgruppe, die Sie zuvor erstellt haben, hinzu. | AWS DevOps | 
| Installieren Sie den NFS-Client. | Installieren Sie den NFS-Client auf dem lokalen Datenbankserver und auf der EC2 Instance. Installationsanweisungen finden Sie im Abschnitt „Zusätzliche Informationen“. | DevOps | 
| Mounten Sie das Amazon-EFS-Dateisystem ein. | Mounten Sie das Amazon EFS-Dateisystem lokal und auf der EC2 Instance. Erstellen Sie auf jedem Server ein Verzeichnis zum Speichern des Backups und mounten Sie das Dateisystem mithilfe des Mount-Zielendpunkts. Ein Beispiel finden Sie im Abschnitt „Zusätzliche Informationen“. | DevOps | 

### Erstellen Sie eine Sicherungskopie der MySQL-Quelldatenbank
<a name="make-a-backup-of-the-mysql-source-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie Percona XtraBackup. | Installieren Sie Percona XtraBackup 2.3 oder 2.4 (abhängig von der Version Ihrer MySQL-Datenbank) auf dem lokalen Datenbankserver. Links zur Installation finden Sie im Abschnitt „Verwandte Ressourcen“. | Datenbankadministrator | 
| Zählen Sie die Schemas und Tabellen in der Quelldatenbank. | Erfassen und notieren Sie die Anzahl der Schemas und Objekte in der MySQL-Quelldatenbank. Sie werden diese Zählungen verwenden, um die Aurora MySQL-Datenbank nach der Migration zu validieren. | Datenbankadministrator | 
| (Optional) Notieren Sie sich die neueste binäre Protokollsequenz aus der Quelldatenbank. | Führen Sie diesen Schritt aus, wenn Sie eine binäre Protokollreplikation zwischen der Quelldatenbank und Aurora MySQL einrichten möchten, um Ausfallzeiten zu minimieren. log-bin muss aktiviert sein und server\$1id muss eindeutig sein. Notieren Sie sich die aktuelle Binärprotokollsequenz aus der Quelldatenbank, kurz bevor Sie ein Backup initiieren. Führen Sie diesen Schritt unmittelbar vor der vollständigen Sicherung aus, wenn Sie nur die vollständige Sicherung verwenden möchten. Wenn Sie planen, nach einem vollständigen Backup inkrementelle Backups zu erstellen, führen Sie diesen Schritt unmittelbar vor dem letzten inkrementellen Backup aus, das Sie auf der Aurora MySQL-DB-Instance wiederherstellen werden. | Datenbankadministrator | 
| Starten Sie eine vollständige Sicherung der MySQL-Quelldatenbank. | Erstellen Sie mit Percona XtraBackup eine vollständige Sicherung der MySQL-Quelldatenbank. Befehle für vollständige und inkrementelle Backups finden Sie beispielsweise im Abschnitt „Zusätzliche Informationen“. | Datenbankadministrator | 
| (Optional) Erstellen Sie inkrementelle Backups mit Percona. XtraBackup | Inkrementelle Backups können verwendet werden, um die Anzahl der Binärprotokolle zu reduzieren, die Sie anwenden müssen, um die Quelldatenbank mit Aurora MySQL zu synchronisieren. Große und transaktionsintensive Datenbanken können bei Backups eine große Anzahl von Binärprotokollen generieren. Indem Sie inkrementelle Backups erstellen und diese auf einem gemeinsam genutzten Amazon EFS-Dateisystem speichern, können Sie die Zeit für das Sichern und Hochladen Ihrer Datenbank erheblich reduzieren. Einzelheiten finden Sie im Abschnitt „Zusätzliche Informationen“. Erstellen Sie weiterhin inkrementelle Backups, bis Sie bereit sind, mit der Migration zu Aurora zu beginnen. | Datenbankadministrator | 
| Bereiten Sie Backups vor. | In diesem Schritt werden Transaktionsprotokolle für Transaktionen, die während des Backups verarbeitet wurden, auf das Backup angewendet. Wenden Sie weiterhin Transaktionsprotokolle (--apply-log-only) auf jedes inkrementelle Backup an, um die Backups zusammenzuführen, mit Ausnahme des letzten Backups. Beispiele finden Sie im Abschnitt „Zusätzliche Informationen“. <efs\$1mount\$1name>Nach diesem Schritt befindet sich das vollständige, zusammengeführte Backup in \$1/ /fullbackup. | Datenbankadministrator | 
| Komprimieren und teilen Sie das endgültige zusammengeführte Backup auf. | Nachdem Sie das endgültige, zusammengeführte Backup vorbereitet haben, verwenden Sie die Befehle tar, zip und split, um kleinere ZIP-Dateien des Backups zu erstellen. Beispiele finden Sie im Abschnitt „Zusätzliche Informationen“. | Datenbankadministrator | 

### Stellen Sie das Backup auf einem Aurora MySQL-DB-Cluster wieder her
<a name="restore-the-backup-to-an-aurora-mysql-db-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie das Backup auf Amazon S3 hoch. | Das Amazon EFS-Dateisystem, in dem die Sicherungsdateien gespeichert sind, wird sowohl in der lokalen Datenbank als auch in einer EC2 Instance bereitgestellt, sodass die Sicherungsdateien für die EC2 Instance jederzeit verfügbar sind. <bucket\$1name>Stellen Sie mithilfe von Secure Shell (SSH) eine Connect zur EC2 Instanz her und laden Sie die komprimierten Backup-Dateien in einen neuen oder vorhandenen S3-Bucket hoch; zum Beispiel: aws s3 sync \$1/ <efs\$1mount\$1name>/fullbackup s3:///fullbackup. Weitere Informationen finden Sie unter den Links im Abschnitt „Verwandte Ressourcen“. | AWS DevOps | 
| Erstellen Sie eine Servicerolle für Aurora, um auf Amazon S3 zuzugreifen. | Erstellen Sie eine IAM-Rolle mit dem Trust „rds.amazonaws.com“ und einer Richtlinie, die Aurora den Zugriff auf den S3-Bucket ermöglicht, in dem die Backup-Dateien gespeichert sind. Die erforderlichen Berechtigungen sind, und. ListBucket GetObject GetObjectVersion | AWS DevOps | 
| Erstellen Sie die Netzwerkkonfiguration für Aurora. | Erstellen Sie eine Cluster-DB-Subnetzgruppe mit mindestens zwei Availability Zones und einer Subnetz-Routing-Tabellenkonfiguration, die ausgehende Konnektivität zur Quelldatenbank ermöglicht. Erstellen Sie eine Sicherheitsgruppe, die ausgehende Verbindungen zur lokalen Datenbank ermöglicht und es Administratoren ermöglicht, sich mit dem Aurora-DB-Cluster zu verbinden. Weitere Informationen finden Sie unter den Links im Abschnitt „Verwandte Ressourcen“. |  DevOps/database AWS-Administrator | 
| Stellen Sie das Backup auf einem Aurora MySQL-DB-Cluster wieder her. | Stellen Sie Ihre Daten aus dem Backup wieder her, das Sie auf Amazon S3 hochgeladen haben. Geben Sie die MySQL-Version Ihrer Quelldatenbank an, geben Sie den S3-Bucket-Namen und das Ordnerpfadpräfix an, in das Sie die Backup-Datei hochgeladen haben (z. B. „fullbackup“ für die Beispiele im Abschnitt „Zusätzliche Informationen“) und geben Sie die IAM-Rolle an, die Sie erstellt haben, um Aurora für den Zugriff auf Amazon S3 zu autorisieren. |  DevOps/database AWS-Administrator | 
| Validieren Sie die Aurora MySQL-Datenbank. | Überprüfen Sie die Anzahl der Schemas und Objekte im wiederhergestellten Aurora-DB-Cluster anhand der Anzahl, die Sie aus der Quelldatenbank erhalten haben. | Datenbankadministrator | 
| Richten Sie die Binlog-Replikation ein.  | Verwenden Sie die binäre Protokollsequenz, die Sie zuvor notiert haben, bevor Sie das letzte Backup erstellen, das im Aurora-DB-Cluster wiederhergestellt wurde. Erstellen Sie einen Replikationsbenutzer in der Quelldatenbank und folgen Sie den Anweisungen im Abschnitt „Zusätzliche Informationen“, um die entsprechenden Rechte bereitzustellen, die Replikation auf Aurora zu aktivieren und zu bestätigen, dass die Replikation synchron ist. |  DevOps/database AWS-Administrator | 

## Zugehörige Ressourcen
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-resources"></a>

**Erstellen eines Amazon-EFS-Dateisystems**
+ [Eine Sicherheitsgruppe erstellen](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups) (Amazon VPC-Dokumentation)
+ [Transit-Gateway-VPN-Anhänge](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpn-attachments.html) (Amazon VPC-Dokumentation)
+ [Skalierung des VPN-Durchsatzes mit AWS Transit Gateway](https://aws.amazon.com/blogs/networking-and-content-delivery/scaling-vpn-throughput-using-aws-transit-gateway/) (Blog Networking & Content Delivery)
+ [Erstellen eines Amazon EFS-Dateisystems](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step1-efs) (Amazon EFS-Dokumentation)
+ [Bereitstellungsziele erstellen](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html) (Amazon EFS-Dokumentation)
+ [Verschlüsseln von Daten im Ruhezustand](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html) (Amazon EFS-Dokumentation)

**Mounten des Dateisystems**
+ [IAM-Rollen für Amazon EC2 ( EC2 Amazon-Dokumentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html))
+ [Starten einer Amazon EC2 Linux-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-launch-instance) ( EC2 Amazon-Dokumentation)
+ [Installation des NFS-Clients](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) (Amazon EFS-Dokumentation)
+ [Mounten des Amazon EFS-Dateisystems auf Ihrem lokalen Client](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) (Amazon EFS-Dokumentation)
+ [Mounten von EFS-Dateisystemen](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) (Amazon EFS-Dokumentation)

**Erstellen einer Sicherungskopie der MySQL-Quelldatenbank**
+ [Installation von Percona XtraBackup 2.3](https://www.percona.com/doc/percona-xtrabackup/2.3/installation.html) (Percona-Dokumentation XtraBackup )
+ [Installation von Percona XtraBackup 2.4](https://www.percona.com/doc/percona-xtrabackup/2.4/installation.html) (Percona-Dokumentation) XtraBackup  
+ [Einstellung der Replikations-Master-Konfiguration](https://dev.mysql.com/doc/refman/5.7/en/replication-howto-masterbaseconfig.html) (MySQL-Dokumentation)
+ [Daten von einer externen MySQL-Datenbank zu einem Aurora MySQL-DB-Cluster migrieren](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html) (Aurora-Dokumentation)
+ [Inkrementelles Backup](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) (Percona-Dokumentation XtraBackup )

**Wiederherstellung des Backups auf Amazon Aurora MySQL**
+ [Einen Bucket erstellen](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#create-bucket-intro) (Amazon S3 S3-Dokumentation)
+ [Mit SSH eine Verbindung zu Ihrer Linux-Instance herstellen](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) (Amazon Ec2-Dokumentation)
+ [Konfiguration der AWS-CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) (AWS-CLI-Dokumentation)
+ [Sync-Befehl](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) (AWS-CLI-Befehlsreferenz)
+ [Erstellen einer IAM-Richtlinie für den Zugriff auf Amazon S3 S3-Ressourcen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html) (Aurora-Dokumentation)
+ [Voraussetzungen für DB-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html#Aurora.CreateInstance.Prerequisites) (Aurora-Dokumentation)
+ [Arbeiten mit DB-Subnetzgruppen](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) (Aurora-Dokumentation)
+ [Erstellen einer VPC-Sicherheitsgruppe für eine private DB-Instance](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Tutorials.WebServerDB.CreateVPC.html#CHAP_Tutorials.WebServerDB.CreateVPC.SecurityGroupDB) (Aurora-Dokumentation)
+ [Wiederherstellen eines Aurora MySQL-DB-Clusters aus einem S3-Bucket](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html#AuroraMySQL.Migrating.ExtMySQL.S3.Restore) (Aurora-Dokumentation)
+ [Einrichtung der Replikation mit MySQL oder einem anderen Aurora-DB-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Replication.MySQL.html#AuroraMySQL.Replication.MySQL.SettingUp) (Aurora-Dokumentation)
+ [mysql.rds\$1set\$1external\$1master-Prozedur](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_external_master.html) (SQL-Referenz für MySQL auf Amazon RDS)
+ [mysql.rds\$1start\$1replication-Prozedur](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_start_replication.html) (SQL-Referenz für MySQL auf Amazon RDS)

**Zusätzliche Verweise**
+ [Daten von einer externen MySQL-Datenbank zu einem Aurora MySQL-DB-Cluster migrieren](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html) (Aurora-Dokumentation)
+ [MySQL-Server-Downloads](https://downloads.mysql.com/archives/community/) (Oracle-Website)

**Tutorials und Videos**
+  [Migrieren von MySQL-Daten zu einem Aurora MySQL-DB-Cluster mithilfe von Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/migrate-mysql-aurora-innobackup/) (AWS Knowledge Center)
+  [Einrichtung und Bereitstellung von Amazon EFS](https://www.youtube.com/watch?v=NR8rVsSn_dY) (Video)

## Zusätzliche Informationen
<a name="migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3-additional"></a>

**Installation eines NFS-Clients**
+ Wenn Sie Red Hat oder ein ähnliches Linux-Betriebssystem verwenden, verwenden Sie den folgenden Befehl:  

```
$ sudo yum -y install nfs-utils
```
+ Wenn Sie Ubuntu oder ein ähnliches Linux-Betriebssystem verwenden, verwenden Sie den folgenden Befehl: 

```
$ sudo apt-get -y install nfs-common
```

Weitere Informationen finden Sie in der [exemplarischen Vorgehensweise](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step4-install-nfs) in der Amazon EFS-Dokumentation.

**Mounten des Amazon EFS-Dateisystems**

Verwenden Sie die Befehle:

```
mkdir ~/<efs_mount_name>
$ sudo mount -t nfs -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport mount-target-IP:/ ~/<efs_mount_name>
```

Weitere Informationen finden Sie in der [Anleitung und Mounten](https://docs.aws.amazon.com/efs/latest/ug/efs-onpremises.html#wt5-step3-connect) von [EFS-Dateisystemen](https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html) in der Amazon EFS-Dokumentation.

**Backups der MySQL-Quelldatenbank erstellen**

*Vollständige Backups*

Verwenden Sie einen Befehl wie den folgenden, der das Backup nimmt, komprimiert und in kleinere Teile von jeweils 1 GB aufteilt:

```
xtrabackup --backup --user=dbuser --password=<password> --binlog-info=AUTO --stream=tar --target-dir=~/<efs_mount_name>/fullbackup | gzip - | split -d --bytes=1024MB - ~/<efs_mount_name>/fullbackup/backup.tar.gz &
```

Wenn Sie planen, nach dem vollständigen Backup weitere inkrementelle Backups zu erstellen, sollten Sie das Backup nicht komprimieren und teilen. Verwenden Sie stattdessen einen Befehl, der dem folgenden ähnelt:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/fullbackup/
```

*Inkrementelle Backups*

Verwenden Sie den vollständigen Backup-Pfad für den `--incremental-basedir` Parameter. Beispiel:

```
xtrabackup --backup --user=dbuser --password=<password> --target-dir=~/<efs_mount_name>/incremental/backupdate --incremental-basedir=~/<efs_mount_name>/fullbackup
```

wobei *basedir* der Pfad zur vollständigen Sicherung und zur Datei xtrabackup\$1checkpoints ist.

Weitere Informationen zum Erstellen von Backups finden Sie unter [Migrieren von Daten aus einer externen MySQL-Datenbank zu einem Amazon Aurora MySQL-DB-Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Migrating.ExtMySQL.html) in der Aurora-Dokumentation.

**Backups vorbereiten**

So bereiten Sie ein vollständiges Backup vor:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup
```

So bereiten Sie ein inkrementelles Backup vor:

```
xtrabackup --prepare --apply-log-only --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06062020
```

So bereiten Sie das endgültige Backup vor:

```
xtrabackup --prepare --target-dir=~/<efs_mount_name>/fullbackup --incremental-dir=~/<efs_mount_name>/incremental/06072020
```

Weitere Informationen finden Sie unter [Inkrementelle Backups](https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html) in der Percona-Dokumentation XtraBackup .

**Das zusammengeführte Backup komprimieren und aufteilen**

<efs\$1mount\$1name>Um das zusammengeführte Backup unter \$1/ /fullbackup zu komprimieren:

```
tar -zcvf <backupfilename.tar.gz> ~/<efs_mount_name>/fullbackup
```

Um das Backup aufzuteilen:

```
split -d -b1024M --verbose  <backupfilename.tar.gz> <backupfilename.tar.gz>
```

**Binlog-Replikation einrichten**

Um einen Replikationsbenutzer in der Quelldatenbank zu erstellen und die entsprechenden Rechte bereitzustellen:

```
CREATE USER 'repl_user'@'' IDENTIFIED BY ''; GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'';
```

Um die Replikation auf Aurora durch eine Verbindung zum Aurora-DB-Cluster zu aktivieren, aktivieren Sie binäre Logs in der DB-Cluster-Parametergruppe. Set `binlog_format = mixed` (gemischter Modus wird bevorzugt). Diese Änderung erfordert, dass Sie die Instanz neu starten, um das Update anzuwenden.

```
CALL mysql.rds_set_external_master ('sourcedbinstanceIP', sourcedbport, 'repl_user', '', 'binlog_file_name', binlog_file_position, 0); CALL mysql.rds_start_replication;
```

Gehen Sie wie folgt vor, um zu überprüfen, ob die Replikation synchron ist:

```
SHOW Slave Status \G;
```

Das Feld **Seconds behind master** zeigt, wie weit Aurora von der lokalen Datenbank zurückliegt.

# 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"`. Extrahieren Sie `awscliv2.zip`.Führen Sie `sudo ./aws/install`. | DevOps, Entwickler | 
| Installieren Sie App2Container. | Führen Sie die folgenden Befehle aus:`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``sudo tar xvf AWSApp2Container-installer-linux.tar.gz``sudo ./install.sh` | DevOps, Entwickler | 
| Konfigurieren Sie die Profile. | Führen Sie den Befehl aus, um das AWS-Standardprofil zu konfigurieren`sudo aws configure`.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.`sudo yum install -y docker``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)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)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.`sudo app2container remote inventory --target <FQDN/IP of App server>`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.`sudo app2container remote analyze --application-id <java-app-id> --target <FQDN/IP of App Server>`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.`sudo app2container remote extract --application-id <application id> --target <FQDN/IP of App Server>`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.`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.`sudo app2container generate app-deployment --application-id <application id>`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.`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/)

# Migrieren Sie gemeinsam genutzte Dateisysteme in einer AWS großen Migration
<a name="migrate-shared-file-systems-in-an-aws-large-migration"></a>

*Amit Rudraraju, Sam Apa, Bheemeswararao Balla, Wally Lu und Sanjeev Prakasam, Amazon Web Services*

## Zusammenfassung
<a name="migrate-shared-file-systems-in-an-aws-large-migration-summary"></a>

Die Migration von 300 oder mehr Servern wird als *umfangreiche* Migration angesehen. Der Zweck einer großen Migration besteht darin, Workloads von ihren vorhandenen, lokalen Rechenzentren auf die zu migrieren AWS Cloud, und diese Projekte konzentrieren sich in der Regel auf Anwendungs- und Datenbank-Workloads. Gemeinsam genutzte Dateisysteme erfordern jedoch besondere Aufmerksamkeit und einen separaten Migrationsplan. Dieses Muster beschreibt den Migrationsprozess für gemeinsam genutzte Dateisysteme und bietet bewährte Methoden für deren erfolgreiche Migration im Rahmen eines großen Migrationsprojekts.

Ein *Shared File System* (SFS), auch bekannt als *Netzwerk* - oder *Cluster-Dateisystem*, ist eine Dateifreigabe, die auf mehreren Servern bereitgestellt wird. Auf gemeinsam genutzte Dateisysteme wird über Protokolle wie Network File System (NFS), Common Internet File System (CIFS) oder Server Message Block (SMB) zugegriffen.

Diese Systeme werden nicht mit Standard-Migrationstools migriert, AWS Application Migration Service weil sie beispielsweise weder für den zu migrierenden Host reserviert sind noch als Blockgerät dargestellt werden. Obwohl die meisten Hostabhängigkeiten transparent migriert werden, müssen die Koordination und Verwaltung der abhängigen Dateisysteme separat erfolgen.

Sie migrieren gemeinsam genutzte Dateisysteme in den folgenden Phasen: Erkennung, Planung, Vorbereitung, Umstellung und Validierung. Mithilfe dieses Musters und der angehängten Arbeitsmappen migrieren Sie Ihr gemeinsam genutztes Dateisystem zu einem AWS Speicherservice wie Amazon Elastic File System (Amazon EFS), Amazon FSx for NetApp ONTAP oder Amazon FSx for Windows File Server. Um das Dateisystem zu übertragen, können Sie AWS DataSync oder ein Tool eines Drittanbieters verwenden, z. NetApp SnapMirror

**Anmerkung**  
Dieses Muster ist Teil einer AWS Prescriptive Guidance-Reihe über [umfangreiche Migrationen](https://aws.amazon.com/prescriptive-guidance/large-migrations/) zum. AWS Cloud Dieses Muster enthält bewährte Methoden und Anweisungen zur Integration SFSs in Ihre Wave-Pläne für Server. Wenn Sie ein oder mehrere gemeinsam genutzte Dateisysteme außerhalb eines großen Migrationsprojekts migrieren, lesen Sie die Anweisungen zur Datenübertragung in der AWS Dokumentation für [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/trnsfr-data-using-datasync.html), [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-to-fsx.html) und [Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html).

## Voraussetzungen und Einschränkungen
<a name="migrate-shared-file-systems-in-an-aws-large-migration-prereqs"></a>

**Voraussetzungen**

Die Voraussetzungen können je nach Ihren gemeinsam genutzten Quell- und Zieldateisystemen und Ihrem Anwendungsfall variieren. Die folgenden sind die gängigsten:
+ Ein aktiver AWS-Konto.
+ Sie haben die Suche nach dem Anwendungsportfolio für Ihr großes Migrationsprojekt abgeschlossen und mit der Entwicklung von Wave-Plänen begonnen. Weitere Informationen finden Sie im [Portfolio-Playbook für AWS umfangreiche Migrationen](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html).
+ Virtuelle private Clouds (VPCs) und Sicherheitsgruppen, die eingehenden und ausgehenden Datenverkehr zwischen dem lokalen Rechenzentrum und Ihrer Umgebung ermöglichen. AWS [Weitere Informationen finden Sie unter [Netzwerkzu-Amazon-VPC-Verbindungsoptionen](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html) und AWS DataSync Netzwerkanforderungen.](https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html)
+ Berechtigungen zum Erstellen von AWS CloudFormation Stacks oder Berechtigungen zum Erstellen von Amazon EFS- oder FSx Amazon-Ressourcen. Weitere Informationen finden Sie in der [CloudFormation Dokumentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html), in der [Amazon EFS-Dokumentation](https://docs.aws.amazon.com/efs/latest/ug/security-iam.html) oder in der [ FSx Amazon-Dokumentation](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/security-iam.html).
+ Wenn Sie AWS DataSync zur Durchführung der Migration verwenden, benötigen Sie die folgenden Berechtigungen:
  + Berechtigungen AWS DataSync zum Senden von Protokollen an eine Amazon CloudWatch Logs-Protokollgruppe. Weitere Informationen finden Sie unter [Zulassen DataSync des Hochladens von Protokollen in CloudWatch Protokollgruppen](https://docs.aws.amazon.com/datasync/latest/userguide/monitor-datasync.html#cloudwatchlogs).
  + Berechtigungen für den Zugriff auf die CloudWatch Protokollgruppe Logs. Weitere Informationen finden Sie unter [Überblick über die Verwaltung von Zugriffsberechtigungen für Ihre CloudWatch Logs-Ressourcen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-access-control-overview-cwl.html).
  + Berechtigungen zum Erstellen von Agenten und Aufgaben in DataSync. Weitere Informationen finden Sie unter [Erforderliche IAM-Berechtigungen für die Verwendung AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/permissions-requirements.html).

**Einschränkungen**
+ Dieses Muster ist für die Migration im SFSs Rahmen eines großen Migrationsprojekts konzipiert. Es enthält bewährte Methoden und Anweisungen für die Integration SFSs in Ihre Wave-Pläne für die Migration von Anwendungen. Wenn Sie ein oder mehrere gemeinsam genutzte Dateisysteme außerhalb eines großen Migrationsprojekts migrieren, lesen Sie die Anweisungen zur Datenübertragung in der AWS Dokumentation für [Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/trnsfr-data-using-datasync.html), [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-to-fsx.html) und [Amazon FSx for NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap.html).
+ Dieses Muster basiert auf häufig verwendeten Architekturen, Diensten und Migrationsmustern. Große Migrationsprojekte und -strategien können jedoch von Unternehmen zu Unternehmen variieren. Möglicherweise müssen Sie diese Lösung oder die bereitgestellten Arbeitsmappen an Ihre Anforderungen anpassen.

## Architektur
<a name="migrate-shared-file-systems-in-an-aws-large-migration-architecture"></a>

**Quelltechnologie-Stack**

Eine oder mehrere der Folgenden:
+ Linux-Dateiserver (NFS)
+ Windows (SMB) -Dateiserver
+ NetApp Speicher-Array
+ Dell EMC Isilon-Speicher-Array

**Zieltechnologie-Stack**

Eine oder mehrere der Folgenden:
+ Amazon Elastic File System
+ Amazon FSx für NetApp ONTAP
+ Amazon FSx für Windows-Dateiserver

**Zielarchitektur**

![\[Architekturdiagramm der Verwendung von AWS DataSync zur Migration von lokalen gemeinsam genutzten Dateisystemen zu AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/13232433-7d33-44c8-8998-b720f33f67b3.png)


Das Diagramm zeigt den folgenden Prozess:

1. Sie stellen eine Verbindung zwischen dem lokalen Rechenzentrum und dem her, AWS Cloud indem Sie ein AWS-Service Beispiel wie AWS Direct Connect oder AWS Site-to-Site VPN verwenden.

1. Sie installieren den DataSync Agenten im lokalen Rechenzentrum.

1. Gemäß Ihrem Wave-Plan replizieren Sie DataSync damit Daten aus dem gemeinsam genutzten Quelldateisystem auf die AWS Ziel-Dateifreigabe.

**Migrationsphasen**

Die folgende Abbildung zeigt die Phasen und allgemeinen Schritte für die Migration eines SFS in einem großen Migrationsprojekt.

![\[Entdecken, planen, vorbereiten, überarbeiten und validieren Sie die Phasen der Migration gemeinsam genutzter Dateisysteme zu AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a30cf791-7a8a-4f71-8927-bc61f3b332f2/images/f1e0c94d-0eea-46a8-bdec-3297b34c1d43.png)


Der Abschnitt [Epics](#migrate-shared-file-systems-in-an-aws-large-migration-epics) dieses Musters enthält detaillierte Anweisungen zum Abschließen der Migration und zur Verwendung der beigefügten Arbeitsmappen. Im Folgenden finden Sie einen allgemeinen Überblick über die Schritte dieses schrittweisen Ansatzes.


| 
| 
| Phase | Schritte | 
| --- |--- |
| Erkennen | 1. Mithilfe eines Discoverytools sammeln Sie Daten über das gemeinsam genutzte Dateisystem, einschließlich Server, Bereitstellungspunkte und IP-Adressen.2. Mithilfe einer Configuration Management Database (CMDB) oder Ihres Migrationstools erfassen Sie Details über den Server, einschließlich Informationen zur Migrationswelle, zur Umgebung, zum Anwendungsbesitzer, zum IT-Servicemanagement (ITSM) -Dienstnamen, zur Organisationseinheit und zur Anwendungs-ID. | 
| Plan | 3. Erstellen Sie anhand der gesammelten Informationen über die SFSs und die Server den SFS-Wellenplan.4. Wählen Sie anhand der Informationen im Build-Arbeitsblatt für jedes SFS ein Ziel AWS-Service und ein Migrationstool aus. | 
| Vorbereitung | 5. Richten Sie die Zielinfrastruktur in Amazon EFS, Amazon FSx for NetApp ONTAP oder Amazon FSx for Windows File Server ein.6. Richten Sie den Datenübertragungsdienst ein, z. B. DataSync, und starten Sie dann die erste Datensynchronisierung. Wenn die erste Synchronisierung abgeschlossen ist, können Sie wiederkehrende Synchronisierungen so einrichten, dass sie nach einem Zeitplan ausgeführt werden.7. Aktualisieren Sie den SFS-Wave-Plan mit Informationen zur Zieldateifreigabe, z. B. der IP-Adresse oder dem Pfad. | 
| Überschneiden | 8. Stoppen Sie Anwendungen, die aktiv auf das Quell-SFS zugreifen.9. Führen Sie im Datenübertragungsdienst eine letzte Datensynchronisierung durch.10. Wenn die Synchronisierung abgeschlossen ist, überprüfen Sie, ob sie vollständig erfolgreich war, indem Sie die Protokolldaten in CloudWatch Logs überprüfen. | 
| Bestätigen | 11. Ändern Sie auf den Servern den Bereitstellungspunkt auf den neuen SFS-Pfad.12. Starten Sie die Anwendungen neu und validieren Sie sie. | 

## Tools
<a name="migrate-shared-file-systems-in-an-aws-large-migration-tools"></a>

**AWS-Services**
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) hilft Ihnen dabei, die Protokolle all Ihrer Systeme und Anwendungen zu zentralisieren, AWS-Services sodass Sie sie überwachen und sicher archivieren können.
+ [AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)ist ein Online-Datenübertragungs- und Erkennungsservice, mit dem Sie Dateien oder Objektdaten zu, von und zwischen AWS Speicherdiensten verschieben können.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) hilft Ihnen bei der Erstellung und Konfiguration gemeinsam genutzter Dateisysteme in der AWS Cloud.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) bietet Dateisysteme, die branchenübliche Konnektivitätsprotokolle unterstützen und eine hohe Verfügbarkeit und Replikation in allen Bereichen AWS-Regionen bieten.

**Andere Tools**
+ [SnapMirror](https://library.netapp.com/ecmdocs/ECMP1196991/html/GUID-BA1081BE-B2BB-4C6E-8A82-FB0F87AC514E.html)ist ein NetApp Datenreplikationstool, das Daten von bestimmten Quell-Volumes oder [QTrees auf Ziel-Volumes bzw. QTrees](https://library.netapp.com/ecmdocs/ECMP1154894/html/GUID-8F084F85-2AB8-4622-B4F3-2D9E68559292.html) repliziert. Sie können dieses Tool verwenden, um ein NetApp Quelldateisystem FSx für NetApp ONTAP zu Amazon zu migrieren.
+ [Robocopy](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy), kurz für *Robust File Copy*, ist ein Befehlszeilenverzeichnis und ein Befehl für Windows. Sie können dieses Tool verwenden, um ein Windows-Quelldateisystem zu Amazon FSx for Windows File Server zu migrieren.

## Best Practices
<a name="migrate-shared-file-systems-in-an-aws-large-migration-best-practices"></a>

**Ansätze zur Wellenplanung**

Berücksichtigen Sie bei der Planung von Wellen für Ihr großes Migrationsprojekt die Latenz und die Anwendungsleistung. Wenn das SFS und die abhängigen Anwendungen an unterschiedlichen Standorten betrieben werden, z. B. an einem Standort in der Cloud und einem im lokalen Rechenzentrum, kann dies die Latenz erhöhen und die Anwendungsleistung beeinträchtigen. Bei der Erstellung von Wellenplänen stehen die folgenden Optionen zur Verfügung:

1. **Migrieren Sie das SFS und alle abhängigen Server innerhalb derselben Welle** — Dieser Ansatz verhindert Leistungsprobleme und minimiert Nacharbeiten, wie z. B. die mehrfache Neukonfiguration von Mount-Points. Es wird empfohlen, wenn eine sehr geringe Latenz zwischen der Anwendung und dem SFS erforderlich ist. Die Wellenplanung ist jedoch komplex, und das Ziel besteht in der Regel darin, Variablen aus Abhängigkeitsgruppierungen zu entfernen und nicht zu ihnen hinzuzufügen. Außerdem wird dieser Ansatz nicht empfohlen, wenn viele Server auf dasselbe SFS zugreifen, da die Welle dadurch zu groß wird.

1. **Migrieren Sie das SFS, nachdem der letzte abhängige Server migriert wurde**. Wenn beispielsweise mehrere Server auf ein SFS zugreifen und diese Server für die Migration in den Wellen 4, 6 und 7 geplant sind, planen Sie das SFS so, dass es in Welle 7 migriert wird.

   Dieser Ansatz ist bei großen Migrationen oft am logischsten und wird für latenzempfindliche Anwendungen empfohlen. Es reduziert die mit der Datenübertragung verbundenen Kosten. Es minimiert auch die Latenzzeit zwischen dem SFS und Anwendungen höherer Ebenen (wie z. B. Produktionsanwendungen), da Anwendungen höherer Stufen in der Regel erst nach der Entwicklung und der Qualitätssicherung migriert werden.

   Dieser Ansatz erfordert jedoch immer noch Entdeckung, Planung und Agilität. Möglicherweise müssen Sie das SFS in einer früheren Welle migrieren. Vergewissern Sie sich, dass die Anwendungen die zusätzliche Latenz für den Zeitraum zwischen der ersten abhängigen Welle und der Welle, die das SFS enthält, aushalten können. Führen Sie eine Ermittlungssitzung mit den Besitzern der Anwendung durch und migrieren Sie die Anwendung in derselben Welle, der Anwendung mit der höchsten Latenzempfindlichkeit. Wenn nach der Migration einer abhängigen Anwendung Leistungsprobleme festgestellt werden, sollten Sie darauf vorbereitet sein, schnell umzusteigen, um das SFS so schnell wie möglich zu migrieren.

1. **Migrieren Sie das SFS am Ende des großen Migrationsprojekts** — Dieser Ansatz wird empfohlen, wenn die Latenz keine Rolle spielt, z. B. wenn auf die Daten im SFS selten zugegriffen wird oder wenn sie für die Anwendungsleistung nicht entscheidend sind. Dieser Ansatz rationalisiert die Migration und vereinfacht Umstellungsaufgaben.

Sie können diese Ansätze je nach Latenzempfindlichkeit der Anwendung kombinieren. Sie können z. B. latenzabhängig migrieren, SFSs indem Sie die Ansätze 1 oder 2 verwenden, und dann den Rest mit Ansatz 3 migrieren. SFSs 

**Wählen Sie einen Dateisystemdienst AWS **

AWS bietet mehrere Cloud-Dienste für die Dateispeicherung. Jeder bietet unterschiedliche Vorteile und Einschränkungen in Bezug auf Leistung, Skalierbarkeit, Zugänglichkeit, Integration, Compliance und Kostenoptimierung. Es gibt einige logische Standardoptionen. Wenn auf Ihrem aktuellen lokalen Dateisystem beispielsweise Windows Server ausgeführt wird, ist Amazon FSx for Windows File Server die Standardauswahl. Oder wenn auf dem lokalen Dateisystem NetApp ONTAP ausgeführt wird, ist Amazon FSx for NetApp ONTAP die Standardoption. Sie können jedoch einen Zieldienst wählen, der auf den Anforderungen Ihrer Anwendung basiert oder um andere Vorteile des Cloud-Betriebs zu nutzen. Weitere Informationen finden Sie unter [Auswahl des richtigen AWS Dateispeicherdienstes für Ihre Bereitstellung](https://d1.awsstatic.com/events/Summits/awsnycsummit/Choosing_the_right_AWS_file_storage_service_for_your_deployment_STG302.pdf) (AWS Summit-Präsentation).

**Auswahl eines Migrationstools**

Amazon EFS und Amazon FSx unterstützen die Verwendung von AWS DataSync zur Migration gemeinsam genutzter Dateisysteme auf die AWS Cloud. Weitere Informationen zu unterstützten Speichersystemen und Services, Vorteilen und Anwendungsfällen finden Sie unter [Was ist AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html). Einen Überblick darüber, wie Sie Ihre Dateien DataSync übertragen können, finden Sie unter [So funktionieren AWS DataSync Übertragungen](https://docs.aws.amazon.com/datasync/latest/userguide/how-datasync-transfer-works.html).

Es sind auch mehrere Tools von Drittanbietern verfügbar, darunter die folgenden:
+ Wenn Sie Amazon FSx for NetApp ONTAP wählen, können Sie NetApp SnapMirror damit die Dateien vom lokalen Rechenzentrum in die Cloud migrieren. SnapMirror verwendet eine Replikation auf Blockebene, die schneller als der Datenübertragungsprozess sein DataSync und dessen Dauer verkürzen kann. Weitere Informationen finden Sie unter [Migration zu FSx ](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/migrating-fsx-ontap-snapmirror.html) ONTAP using. NetApp SnapMirror
+ Wenn Sie sich FSx für Amazon for Windows File Server entscheiden, können Sie Robocopy verwenden, um Dateien in die Cloud zu migrieren. Weitere Informationen finden Sie unter [Migrieren vorhandener Dateien auf einen FSx Windows-Dateiserver mithilfe von Robocopy](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/migrate-files-to-fsx.html).

## Epen
<a name="migrate-shared-file-systems-in-an-aws-large-migration-epics"></a>

### Erkennen
<a name="discover"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die SFS-Discovery-Arbeitsmappe vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Migrationsingenieur, Migrationsleiter | 
| Sammeln Sie Informationen über das Quell-SFS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Migrationsingenieur, Migrationsleiter | 
| Sammeln Sie Informationen über die Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Migrationsingenieur, Migrationsleiter | 

### Plan
<a name="plan"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den SFS-Wellenplan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Leiter Aufbau, Leiter der Umstellung, Migrationsingenieur, Migrationsleiter | 
| Wählen Sie das Ziel AWS-Service und das Migrationstool aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Migrationsingenieur, Migrationsleiter | 

### Vorbereitung
<a name="prepare"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie das Zieldateisystem ein. | Richten Sie gemäß den in Ihrem Wave-Plan aufgezeichneten Details die Zieldateisysteme im Ziel AWS-Konto, in der VPC und in den Subnetzen ein. Anweisungen finden Sie in der folgenden Dokumentation: AWS [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Migrationsingenieur, Migrationsleiter, AWS-Administrator | 
| Richten Sie das Migrationstool ein und übertragen Sie Daten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | AWS-Administrator, Cloud-Administrator, Migrationsingenieur, Migrationsleiter | 
| Aktualisieren Sie den Wave-Plan. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Migrationsingenieur, Migrationsleiter | 

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


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stoppen Sie Anwendungen. | Wenn Anwendungen oder Clients aktiv Lese- und Schreibvorgänge im Quell-SFS ausführen, beenden Sie sie, bevor Sie die endgültige Datensynchronisierung durchführen. Anweisungen finden Sie in der Anwendungsdokumentation oder in Ihren internen Prozessen zum Stoppen von Lese- und Schreibaktivitäten. Siehe beispielsweise [Starten oder Beenden des Webservers (IIS 8)](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/jj635851(v=ws.11)) (Microsoft-Dokumentation) oder [Systemdienste mit systemctl verwalten](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/managing-systemd_configuring-basic-system-settings#managing-system-services-with-systemctl_managing-systemd) (Red Hat-Dokumentation). | App-Besitzer, App-Entwickler | 
| Führen Sie die endgültige Datenübertragung durch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | Migrationsingenieur, Migrationsleiter | 
| Validieren Sie die Datenübertragung. | Wenn Sie verwenden AWS DataSync, gehen Sie wie folgt vor, um zu überprüfen, ob die endgültige Datenübertragung erfolgreich abgeschlossen wurde:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html)Wenn Sie ein Drittanbieter-Tool verwenden, lesen Sie die Anweisungen zur Validierung der Datenübertragung in der Dokumentation zum ausgewählten Migrationstool. | Migrationsingenieur, Migrationsleiter | 

### Validieren
<a name="validate"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Hängen Sie das Dateisystem erneut ein und überprüfen Sie die Funktion und Leistung der Anwendung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-shared-file-systems-in-an-aws-large-migration.html) | AWS-Systemadministrator, App-Besitzer | 

## Fehlerbehebung
<a name="migrate-shared-file-systems-in-an-aws-large-migration-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Zellenwerte in Microsoft Excel werden nicht aktualisiert. | Kopieren Sie die Formeln in den Beispielzeilen, indem Sie das Ausfüllkästchen ziehen. Weitere Informationen finden Sie in den Anweisungen für [Windows](https://support.microsoft.com/en-us/office/fill-a-formula-down-into-adjacent-cells-041edfe2-05bc-40e6-b933-ef48c3f308c6) oder für [Mac](https://support.microsoft.com/en-au/office/copy-a-formula-by-dragging-the-fill-handle-in-excel-for-mac-dd928259-622b-473f-9a33-83aa1a63e218) (Microsoft-Support-Website). | 

## Zugehörige Ressourcen
<a name="migrate-shared-file-systems-in-an-aws-large-migration-resources"></a>

**AWS Dokumentation**
+ [AWS DataSync Dokumentation](https://docs.aws.amazon.com/datasync/latest/userguide/what-is-datasync.html)
+ [Amazon EFS-Dokumentation](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)
+ [ FSx Amazon-Dokumentation](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/index.html)
+ [Große Migrationen zum AWS Cloud](https://aws.amazon.com/prescriptive-guidance/large-migrations/)
  + [Leitfaden für große Migrationen AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/welcome.html)
  + [Portfolio-Playbook für große Migrationen AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-portfolio-playbook/welcome.html)

**Fehlersuche**
+ [AWS DataSync Behebung von Problemen](https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync.html)
+ [Problembehandlung bei Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/troubleshooting.html)
+ [Problembehebung bei Amazon FSx für Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/troubleshooting.html)
+ [Problembehebung bei Amazon FSx für NetApp ONTAP](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/troubleshooting.html)

## Anlagen
<a name="attachments-a30cf791-7a8a-4f71-8927-bc61f3b332f2"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/a30cf791-7a8a-4f71-8927-bc61f3b332f2/attachments/attachment.zip)

# Migrieren Sie eine Oracle-Datenbank mithilfe von GoldenGate Oracle-Flatfile-Adaptern zu Amazon RDS for Oracle
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters"></a>

*Dhairya Jindani und Baji Shaik, Amazon Web Services*

## Zusammenfassung
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-summary"></a>

Oracle GoldenGate ist ein Datenerfassungs- und Replikationsservice in Echtzeit für heterogene Datenbanken und IT-Umgebungen. Dieser Service unterstützt derzeit jedoch nicht Amazon Relational Database Service (Amazon RDS) für Oracle. Eine Liste der unterstützten Datenbanken finden Sie unter [Oracle GoldenGate for Heterogeneous Databases](https://docs.oracle.com/goldengate/c1230/gg-winux/GGHDB/12.3-what-is-oracle-goldengate-heterogeneous-databases.htm#GGHDB-GUID-08EAC588-F76C-4E37-BEBA-0DC57B98CA46) (Oracle-Dokumentation). Dieses Muster beschreibt, wie Oracle GoldenGate - und GoldenGate Oracle-Flatfile-Adapter verwendet werden, um Flatfiles aus der Oracle-Quelldatenbank zu generieren, die sich lokal oder auf einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance befinden kann. Sie können diese Flatfiles dann in eine Amazon RDS for Oracle Oracle-Datenbank-Instance importieren.

In diesem Muster verwenden Sie Oracle, GoldenGate um die Traildateien aus Ihrer Oracle-Quelldatenbank zu extrahieren. Die Datenpumpe kopiert die Traildateien auf einen Integrationsserver, bei dem es sich um eine EC2 Amazon-Instance handelt. Auf dem Integrationsserver GoldenGate verwendet Oracle den Flatfile-Adapter, um eine Reihe von sequentiellen Flatfiles auf der Grundlage der transationalen Datenerfassung der Traildateien zu generieren. Oracle GoldenGate formatiert die Daten entweder als durch Trennzeichen getrennte Werte oder als durch Länge getrennte Werte. Anschließend verwenden Sie Oracle SQL\$1Loader, um die Flatfiles in die Amazon RDS for Oracle Oracle-Zieldatenbank-Instance zu importieren.

**Beabsichtigte Zielgruppe**

Dieses Muster richtet sich an Personen, die Erfahrung mit den grundlegenden Bausteinen eines GoldenGate Orakels haben und diese kennen. Weitere Informationen finden Sie unter [Überblick über die GoldenGate Oracle-Architektur](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD115) (Oracle-Dokumentation).

## Voraussetzungen und Einschränkungen
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto.
+ Eine GoldenGate Oracle-Lizenz.
+ Eine separate Lizenz für einen GoldenGate Oracle-Adapter.
+ Eine Oracle-Quelldatenbank, die entweder vor Ort oder auf einer EC2 Amazon-Instance ausgeführt wird.
+ Eine Amazon EC2 Linux-Instance, die als Integrationsserver verwendet wird. Weitere Informationen finden [Sie unter Erste Schritte mit Amazon EC2 Linux-Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) ( EC2 Amazon-Dokumentation).
+ Eine Ziel-Instance der Amazon RDS for Oracle Oracle-Datenbank. Weitere Informationen finden Sie unter [Eine Oracle-DB-Instance erstellen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.Oracle.html) (Amazon RDS-Dokumentation).

**Produktversionen**
+ Oracle Database Enterprise Edition Version 10g, 11g, 12c oder höher
+ Oracle GoldenGate Version 12.2.0.1.1 oder höher

## Architektur
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-architecture"></a>

**Quelltechnologie-Stack**

Eine Oracle-Datenbank (vor Ort oder auf einer EC2 Amazon-Instance)

**Zieltechnologie-Stack**

Amazon RDS für Oracle

**Quell- und Zielarchitektur**

![\[Migrieren einer Oracle-Datenbank zu Amazon RDS for Oracle mithilfe eines GoldenGate Oracle-Adapters.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f34961f7-aa9a-41cb-b1ea-522e36ef2f67/images/21ef5177-e669-4591-aced-28d2f22decf2.png)


1. Oracle GoldenGate extrahiert Pfade aus den Quelldatenbank-Logs.

1. Die Datenpumpe extrahiert die Trails und migriert sie auf einen Integrationsserver.

1. Der GoldenGate Oracle-Flatfile-Adapter liest die Trails, Quelldefinitionen und Extraktparameter.

1. Sie beenden die Extraktion, wodurch eine Steuerdatei und Flat-Datendateien generiert werden.

1. Sie migrieren die Flat-Datendateien auf eine Amazon RDS for Oracle Oracle-Datenbank-Instance in der AWS Cloud.

## Tools
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) für Oracle unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Oracle-Datenbank in der. AWS Cloud

**Andere Dienste**
+ [Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD110) ist ein Dienst, der Sie dabei unterstützt, Daten von einer Datenbank in eine andere heterogene Datenbank oder in eine andere Zieltopologie, wie z. B. Flatfiles, zu replizieren, zu filtern und zu transformieren.
+ Mit [ GoldenGate Oracle-Anwendungsadaptern](https://docs.oracle.com/goldengate/gg121211/gg-adapter/GADAD/flatfile_config.htm#GADAD424) GoldenGate kann Oracle aus Transaktionsdaten, die in den Traildateien einer Quelldatenbank erfasst wurden, eine Reihe von sequentiellen Flatfiles und Kontrolldateien erstellen. Diese Adapter werden häufig für Extraktions-, Transformations- und Ladevorgänge (ETL) in Data Warehouse-Anwendungen und proprietären oder älteren Anwendungen verwendet. Oracle GoldenGate führt diese Erfassung durch und wendet sie nahezu in Echtzeit auf heterogene Datenbanken, Plattformen und Betriebssysteme an. Die Adapter unterstützen verschiedene Formate für die Ausgabedateien, wie CSV oder Apache Parquet. Sie können diese generierten Dateien laden, um die Daten in verschiedene heterogene Datenbanken zu laden.

## Epen
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-epics"></a>

### Richten Sie Oracle GoldenGate auf dem Quelldatenbankserver ein
<a name="set-up-oracle-goldengate-on-the-source-database-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie Oracle herunter GoldenGate. | Laden Sie auf dem Quelldatenbankserver die GoldenGate Oracle-Version 12.2.0.1.1 oder höher herunter. Anweisungen finden Sie unter [Oracle herunterladen GoldenGate (Oracle-Dokumentation](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164)). | DBA | 
| Installieren Sie Oracle GoldenGate. | Anweisungen finden Sie unter [Oracle installieren GoldenGate (Oracle-Dokumentation](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162)). | DBA | 
| Richten Sie Oracle GoldenGate ein. | Anweisungen finden Sie unter [Preparing the Database for Oracle GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357) (Oracle-Dokumentation). | DBA | 

### Richten Sie Oracle GoldenGate auf dem Integrationsserver ein
<a name="set-up-oracle-goldengate-on-the-integration-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie Oracle herunter GoldenGate. | Laden Sie auf dem Integrationsserver die GoldenGate Oracle-Version 12.2.0.1.1 oder höher herunter. Anweisungen finden Sie unter [Oracle herunterladen GoldenGate (Oracle-Dokumentation](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA164)). | DBA | 
| Installieren Sie Oracle GoldenGate. | Erstellen Sie Verzeichnisse, richten Sie den Manager-Prozess ein und erstellen Sie die `defgen` Datei für eine heterogene Umgebung. Anweisungen finden Sie unter [Oracle installieren GoldenGate (Oracle-Dokumentation](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162)). | DBA | 

### Ändern Sie die GoldenGate Oracle-Datenerfassungskonfiguration
<a name="change-the-oracle-goldengate-data-capture-configuration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie die GoldenGate Oracle-Adapter vor. | Richten Sie auf dem Integrationsserver die GoldenGate Oracle-Adaptersoftware ein. Gehen Sie wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.html) | DBA | 
| Konfigurieren Sie die Datenpumpe. | Konfigurieren Sie auf dem Quellserver die Datenpumpe so, dass sie die Traildatei vom Quellserver zum Integrationsserver überträgt. Erstellen Sie die Datenpumpen-Parameterdatei und das Trails-Dateiverzeichnis. Anweisungen finden Sie unter [Konfiguration des Flatfile-Adapters](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) (Oracle-Dokumentation). | DBA | 

### Generieren und migrieren Sie die Flatfiles
<a name="generate-and-migrate-the-flat-files"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie die Flatfiles. | Erstellen Sie die Extraktdatei und die Kontrolldatei und starten Sie dann den Extraktionsprozess auf dem Integrationsserver. Dadurch werden die Datenbankänderungen extrahiert und die Quelldatenbank in die Flatfiles geschrieben. Anweisungen finden Sie unter [Using the Flat File Adapter](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD432) (Oracle-Dokumentation). | DBA | 
| Laden Sie die Flatfiles in die Zieldatenbank. | Laden Sie die Flatfiles in die Ziel-Instance der Amazon RDS for Oracle Oracle-Datenbank. Weitere Informationen finden Sie unter [Import mit Oracle SQL\$1Loader](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Oracle.Procedural.Importing.SQLLoader.html) (Amazon RDS-Dokumentation). | DBA | 

## Fehlerbehebung
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Der GoldenGate Oracle-Flatfile-Adapter generiert einen Fehler. | Eine Beschreibung der Adapterfehler finden Sie unter [Locating Error Messages](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-D30CC70D-B90F-4209-BEB5-9BA53EA869EF.htm#GADAD437) (Oracle-Dokumentation). Anweisungen zur Problembehandlung finden Sie unter [Troubleshooting the Flat File Adapter](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-CB3D9B2C-49CC-408A-8C00-06E0C7923DD6.htm#GADAD552) (Oracle-Dokumentation). | 

## Zugehörige Ressourcen
<a name="migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters-resources"></a>
+ [Oracle installieren GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/install.htm#GIORA162) (Oracle-Dokumentation)
+ [Oracle konfigurieren GoldenGate](https://docs.oracle.com/goldengate/1212/gg-winux/GIORA/setup.htm#GIORA357) (Oracle-Dokumentation)
+ [Grundlegendes zu GoldenGate Oracle-Adaptern](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-F9105B02-9836-4F98-99F8-6E9C46D42764.htm#GADAD101) (Oracle-Dokumentation)
+ [Konfiguration des Flatfile-Adapters](https://docs.oracle.com/goldengate/gg12201/gg-adapter/GADAD/GUID-DF13488D-E0E9-497C-8AFF-70B839DE4843.htm#GADAD424) (Oracle-Dokumentation)

# Ändern Sie Python- und Perl-Anwendungen, um die Datenbankmigration von Microsoft SQL Server zur Amazon Aurora PostgreSQL-Compatible Edition zu unterstützen
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition"></a>

*Dwarika Patra und Deepesh Jayaprakash, Amazon Web Services*

## Zusammenfassung
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-summary"></a>

Dieses Muster beschreibt Änderungen an Anwendungs-Repositorys, die möglicherweise erforderlich sind, wenn Sie Datenbanken von Microsoft SQL Server zu Amazon Aurora PostgreSQL-Compatible Edition migrieren. Das Muster geht davon aus, dass diese Anwendungen auf Python oder Perl basieren, und enthält separate Anweisungen für diese Skriptsprachen.

Die Migration von SQL Server-Datenbanken zu Aurora PostgreSQL-kompatibel umfasst die Schemakonvertierung, die Konvertierung von Datenbankobjekten, die Datenmigration und das Laden von Daten. Aufgrund der Unterschiede zwischen PostgreSQL und SQL Server (in Bezug auf Datentypen, Verbindungsobjekte, Syntax und Logik) besteht die schwierigste Migrationsaufgabe darin, die erforderlichen Änderungen an der Codebasis vorzunehmen, damit sie ordnungsgemäß mit PostgreSQL funktioniert.

Bei einer Python-basierten Anwendung sind Verbindungsobjekte und Klassen im gesamten System verstreut. Außerdem verwendet die Python-Codebasis möglicherweise mehrere Bibliotheken, um eine Verbindung zur Datenbank herzustellen. Wenn sich die Datenbankverbindungsschnittstelle ändert, müssen auch die Objekte, die die Inline-Abfragen der Anwendung ausführen, geändert werden.

Bei einer Perl-basierten Anwendung betreffen die Änderungen Verbindungsobjekte, Datenbankverbindungstreiber, statische und dynamische Inline-SQL-Anweisungen und die Art und Weise, wie die Anwendung komplexe dynamische DML-Abfragen und Ergebnismengen verarbeitet.

Wenn Sie Ihre Anwendung migrieren, können Sie auch mögliche Verbesserungen auf AWS in Betracht ziehen, z. B. den FTP-Server durch Amazon Simple Storage Service (Amazon S3) -Zugriff zu ersetzen.

Der Prozess der Anwendungsmigration beinhaltet die folgenden Herausforderungen:
+ Verbindungsobjekte. Wenn Verbindungsobjekte im Code mit mehreren Bibliotheken und Funktionsaufrufen verstreut sind, müssen Sie möglicherweise einen generalisierten Weg finden, sie so zu ändern, dass sie PostgreSQL unterstützen.
+ Fehler- oder Ausnahmebehandlung beim Abrufen oder bei Aktualisierungen von Datensätzen. Wenn Sie in der Datenbank bedingte Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge (CRUD) ausführen, die Variablen, Ergebnissätze oder Datenrahmen zurückgeben, können Fehler oder Ausnahmen zu Anwendungsfehlern mit kaskadierenden Effekten führen. Diese sollten sorgfältig behandelt und mit geeigneten Validierungen und Speicherpunkten versehen werden. Ein solcher Speicherpunkt ist das Aufrufen großer Inline-SQL-Abfragen oder Datenbankobjekte innerhalb `BEGIN...EXCEPTION...END` von Blöcken.
+ Steuerung von Transaktionen und deren Validierung. Dazu gehören manuelle und automatische Commits und Rollbacks. Der PostgreSQL-Treiber für Perl verlangt, dass Sie das Auto-Commit-Attribut immer explizit setzen.
+ Umgang mit dynamischen SQL-Abfragen. Dies erfordert ein fundiertes Verständnis der Abfragelogik und iterative Tests, um sicherzustellen, dass Abfragen wie erwartet funktionieren.
+ Leistung. Sie sollten sicherstellen, dass Codeänderungen nicht zu einer Beeinträchtigung der Anwendungsleistung führen.

Dieses Muster erklärt den Konvertierungsprozess im Detail.

## Voraussetzungen und Einschränkungen
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-prereqs"></a>

**Voraussetzungen**
+ Grundkenntnisse der Python- und Perl-Syntax.
+ Grundkenntnisse in SQL Server und PostgreSQL.
+ Verständnis Ihrer bestehenden Anwendungsarchitektur.
+ Zugriff auf Ihren Anwendungscode, Ihre SQL Server-Datenbank und Ihre PostgreSQL-Datenbank.
+ Zugriff auf die Windows- oder Linux-Entwicklungsumgebung (oder eine andere Unix-) Entwicklungsumgebung mit Anmeldeinformationen zum Entwickeln, Testen und Validieren von Anwendungsänderungen.
+ Für eine Python-basierte Anwendung Standard-Python-Bibliotheken, die Ihre Anwendung möglicherweise benötigt, wie **Pandas** zur Verarbeitung von Datenframes und **psycopg2** oder für Datenbankverbindungen. **SQLAlchemy**
+ Für eine Perl-basierte Anwendung sind Perl-Pakete mit abhängigen Bibliotheken oder Modulen erforderlich. Das Modul Comprehensive Perl Archive Network (CPAN) kann die meisten Anwendungsanforderungen unterstützen.
+ Alle erforderlichen abhängigen benutzerdefinierten Bibliotheken oder Module. 
+ Datenbankanmeldedaten für den Lesezugriff auf SQL Server und read/write den Zugriff auf Aurora.
+ PostgreSQL zum Validieren und Debuggen von Anwendungsänderungen mit Diensten und Benutzern.
+ Zugriff auf Entwicklungstools während der Anwendungsmigration wie Visual Studio Code, Sublime Text oder **pgAdmin**.

**Einschränkungen**
+ Einige Python- oder Perl-Versionen, Module, Bibliotheken und Pakete sind nicht mit der Cloud-Umgebung kompatibel.
+ Einige Bibliotheken und Frameworks von Drittanbietern, die für SQL Server verwendet werden, können nicht ersetzt werden, um die PostgreSQL-Migration zu unterstützen. 
+ Leistungsschwankungen erfordern möglicherweise Änderungen an Ihrer Anwendung, an Inline-Transact-SQL (T-SQL) -Abfragen, Datenbankfunktionen und gespeicherten Prozeduren.
+ PostgreSQL unterstützt Kleinbuchstaben für Tabellennamen, Spaltennamen und andere Datenbankobjekte. 
+ Einige Datentypen, wie z. B. UUID-Spalten, werden nur in Kleinbuchstaben gespeichert. Python- und Perl-Anwendungen müssen mit solchen Fallunterschieden umgehen. 
+ Unterschiede in der Zeichenkodierung müssen mit dem richtigen Datentyp für die entsprechenden Textspalten in der PostgreSQL-Datenbank behandelt werden.                                

**Produktversionen**
+ Python 3.6 oder höher (verwenden Sie die Version, die Ihr Betriebssystem unterstützt)
+ Perl 5.8.3 oder höher (verwenden Sie die Version, die Ihr Betriebssystem unterstützt)
+ [Aurora PostgreSQL-kompatible Edition 4.2 oder höher (siehe Details)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html#AuroraPostgreSQL.Updates.20180305.42)

## Architektur
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-architecture"></a>

**Quelltechnologie-Stack**
+ Skriptsprache (Anwendungsprogrammiersprache): Python 2.7 oder höher oder Perl 5.8 
+ Datenbank: Microsoft SQL Server Version 13
+ Betriebssystem: Red Hat Enterprise Linux (RHEL) 7 

**Zieltechnologie-Stack**
+ Skriptsprache (Anwendungsprogrammiersprache): Python 3.6 oder höher oder Perl 5.8 oder höher 
+ Datenbank: Aurora PostgreSQL-kompatibel 4.2
+ Betriebssystem: RHEL 7 

**Migrationsarchitektur**

![\[Migration einer Perl- oder Python-Anwendung mit SQL Server zu Aurora PostgreSQL-kompatibel\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/b64de64a-bd55-4db7-ba7b-0a2557862af1/images/b8fab3e2-ded5-4f58-86bf-3f645252e9fc.png)


## Tools
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-tools"></a>

**AWS-Services und -Tools**
+ [Aurora PostgreSQL-Compatible Edition](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html) ist eine vollständig verwaltete, PostgreSQL-kompatible und ACID-konforme relationale Datenbank-Engine, die die Geschwindigkeit und Zuverlässigkeit kommerzieller High-End-Datenbanken mit der Wirtschaftlichkeit von Open-Source-Datenbanken kombiniert. Aurora PostgreSQL ist ein direkter Ersatz für PostgreSQL und macht es einfacher und kostengünstiger, Ihre neuen und bestehenden PostgreSQL-Implementierungen einzurichten, zu betreiben und zu skalieren.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.

**Andere Tools**
+ [Python](https://www.python.org/) [- und PostgresSQL-Datenbankverbindungsbibliotheken wie psycopg2 und [SQLAlchemy](https://www.sqlalchemy.org/)](https://pypi.org/project/psycopg2/)
+ [https://www.perl.org/](https://www.perl.org/)
+ [Interaktives PostgreSQL-Terminal (psql](https://www.postgresql.org/docs/13/app-psql.html))

## Epen
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-epics"></a>

### Migrieren Sie Ihr Anwendungs-Repository zu PostgreSQL — grundlegende Schritte
<a name="migrate-your-application-repository-to-postgresql-ndash-high-level-steps"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Folgen Sie diesen Schritten zur Codekonvertierung, um Ihre Anwendung zu PostgreSQL zu migrieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)Die folgenden Epics enthalten detaillierte Anweisungen für einige dieser Konvertierungsaufgaben für Python- und Perl-Anwendungen. | App-Developer | 
| Verwenden Sie für jeden Schritt der Migration eine Checkliste. | Fügen Sie Ihrer Checkliste für jeden Schritt der Anwendungsmigration, einschließlich des letzten Schritts, Folgendes hinzu:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | App-Developer | 

### Analysieren und aktualisieren Sie Ihre Anwendung — Python-Codebasis
<a name="analyze-and-update-your-application-ndash-python-code-base"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie Ihre bestehende Python-Codebasis.  | Ihre Analyse sollte Folgendes beinhalten, um den Migrationsprozess der Anwendung zu erleichtern:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | App-Developer | 
| Konvertieren Sie Ihre Datenbankverbindungen zur Unterstützung von PostgreSQL.  | Die meisten Python-Anwendungen verwenden die **pyodbc-Bibliothek**, um wie folgt eine Verbindung mit SQL Server-Datenbanken herzustellen.<pre>import pyodbc<br />....<br />try:<br />    conn_string = "Driver=ODBC Driver 17 for SQL<br />    Server;UID={};PWD={};Server={};Database={}".format (conn_user, conn_password,<br />    conn_server, conn_database)<br />    conn = pyodbc.connect(conn_string)<br />    cur = conn.cursor()<br />    result = cur.execute(query_string)<br />    for row in result:<br />    print (row)<br />except Exception as e:<br />    print(str(e))</pre>Konvertieren Sie die Datenbankverbindung wie folgt zur Unterstützung von PostgreSQL.<pre>import pyodbc<br />import psycopg2<br />....<br />try:<br />    conn_string = ‘postgresql+psycopg2://’+<br />    conn_user+’:’+conn_password+’@’+conn_server+’/’+conn_database<br />    conn = pyodbc.connect(conn_string, connect_args={‘options’:’-csearch_path=dbo’})<br />    cur = conn.cursor()<br />    result = cur.execute(query_string)<br />    for row in result:<br />    print (row)<br />except Exception as e:<br />    print(str(e))</pre> | App-Developer | 
| Ändern Sie Inline-SQL-Abfragen in PostgreSQL. | Konvertieren Sie Ihre Inline-SQL-Abfragen in ein PostgreSQL-kompatibles Format. Die folgende SQL Server-Abfrage ruft beispielsweise eine Zeichenfolge aus einer Tabelle ab.<pre>dtype = "type1"<br />stm = ‘"SELECT TOP 1 searchcode FROM TypesTable (NOLOCK)<br />WHERE code="’ + "’" + str(dtype) + "’"<br /># For Microsoft SQL Server Database Connection<br />engine = create_engine(‘mssql+pyodbc:///?odbc_connect=%s’ % urllib.parse.quote_plus(conn_string), connect_args={‘connect_timeout’:login_timeout})<br />conn = engine_connect()<br />rs = conn.execute(stm)<br />for row in rs:<br />    print(row)</pre>Nach der Konvertierung sieht die PostgreSQL-kompatible Inline-SQL-Abfrage wie folgt aus.<pre>dtype = "type1"<br />stm = ‘"SELECT searchcode FROM TypesTable<br />WHERE code="’ + "’" + str(dtype) + "’ LIMIT 1"<br /># For PostgreSQL Database Connection<br />engine = create_engine(‘postgres+psycopg2://%s’ %conn_string, connect_args={‘connect_timeout’:login_timeout})<br />conn = engine.connect()<br />rs = conn.execute(stm)<br />for row in rs:<br />    print(row)</pre> | App-Developer | 
| Verarbeitet dynamische SQL-Abfragen. | Dynamisches SQL kann in einem Skript oder in mehreren Python-Skripten vorhanden sein. Frühere Beispiele zeigten, wie die Zeichenkettenersetzungsfunktion von Python verwendet werden kann, um Variablen für die Erstellung dynamischer SQL-Abfragen einzufügen. Ein alternativer Ansatz besteht darin, die Abfragezeichenfolge gegebenenfalls mit Variablen anzuhängen. Im folgenden Beispiel wird die Abfragezeichenfolge spontan auf der Grundlage der von einer Funktion zurückgegebenen Werte erstellt.<pre>query = ‘"SELECT id from equity e join issues i on e.permId=i.permId where e.id’"<br />query += get_id_filter(ids) + " e.id is NOT NULL</pre>Diese Arten von dynamischen Abfragen sind bei der Anwendungsmigration sehr verbreitet. Gehen Sie wie folgt vor, um dynamische Abfragen zu verarbeiten:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | App-Developer | 
| Behandelt Ergebnismengen, Variablen und Datenrahmen. | Für Microsoft SQL Server verwenden Sie Python-Methoden wie `fetchone()` oder`fetchall()`, um den Ergebnissatz aus der Datenbank abzurufen. Sie können auch die Anzahl der Datensätze verwenden `fetchmany(size)` und angeben, die aus dem Ergebnissatz zurückgegeben werden sollen. Dazu können Sie das Verbindungsobjekt **pyodbc** verwenden, wie im folgenden Beispiel gezeigt.**pyodbc (Microsoft SQL Server)**<pre>import pyodbc <br />server = 'tcp:myserver.database.windows.net' <br />database = 'exampledb' <br />username = 'exampleusername' <br />password = 'examplepassword' <br />conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)<br />cursor = conn.cursor()<br />cursor.execute("SELECT * FROM ITEMS") <br />row = cursor.fetchone() <br />while row: <br />    print(row[0])<br />    row = cursor.fetchone()</pre>**Um in Aurora ähnliche Aufgaben wie das Herstellen einer Verbindung zu PostgreSQL und das Abrufen von Ergebnismengen auszuführen, können Sie entweder psycopg2 oder verwenden. **SQLAlchemy**** Diese Python-Bibliotheken stellen das Verbindungsmodul und das Cursorobjekt bereit, um die PostgreSQL-Datenbankeinträge zu durchsuchen, wie im folgenden Beispiel gezeigt.**psycopg2 (Aurora PostgreSQL-kompatibel)**<pre>import psycopg2<br />query = "SELECT * FROM ITEMS;"<br />//Initialize variables<br />host=dbname=user=password=port=sslmode=connect_timeout=""<br />connstring = "host='{host}' dbname='{dbname}' user='{user}' \<br />password='{password}'port='{port}'".format(host=host,dbname=dbname,\<br />user=user,password=password,port=port) <br />conn = psycopg2.connect(connstring)<br />cursor = conn.cursor()<br />cursor.execute(query)<br />column_names = [column[0] for column in cursor.description]<br />print("Column Names: ", column_names)<br />print("Column values: "<br />for row in cursor:<br />    print("itemid :", row[0])<br />    print("itemdescrption :", row[1])<br />    print("itemprice :", row[3]))</pre>**SQLAlchemy (Aurora PostgreSQL-kompatibel)**<pre>from sqlalchemy import create_engine<br />from pandas import DataFrame<br />conn_string = 'postgresql://core:database@localhost:5432/exampledatabase'<br />engine = create_engine(conn_string)<br />conn = engine.connect()<br />dataid = 1001<br />result = conn.execute("SELECT * FROM ITEMS")<br />df = DataFrame(result.fetchall())<br />df.columns = result.keys()<br />df = pd.DataFrame()<br />engine.connect()<br />df = pd.read_sql_query(sql_query, engine, coerce_float=False)<br />print("df=", df)</pre> | App-Developer | 
| Testen Sie Ihre Anwendung während und nach der Migration. | Das Testen der migrierten Python-Anwendung ist ein fortlaufender Prozess. Da die Migration Änderungen an Verbindungsobjekten (**psycopg2** oder **SQLAlchemy**), Fehlerbehandlung, neue Funktionen (Datenrahmen), Inline-SQL-Änderungen, Funktionen zum Massenkopieren (`bcp`statt`COPY`) und ähnliche Änderungen umfasst, muss sie während und nach der Anwendungsmigration sorgfältig getestet werden. Suchen Sie nach:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | App-Developer | 

### Analysieren und aktualisieren Sie Ihre Anwendung — Perl-Codebasis
<a name="analyze-and-update-your-application-ndash-perl-code-base"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie Ihre bestehende Perl-Codebasis. | Ihre Analyse sollte Folgendes beinhalten, um den Anwendungsmigrationsprozess zu erleichtern. Sie sollten Folgendes identifizieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | App-Developer | 
| Konvertiert die Verbindungen aus der Perl-Anwendung und dem DBI-Modul zur Unterstützung von PostgreSQL. | Perl-basierte Anwendungen verwenden im Allgemeinen das Perl-DBI-Modul, ein Standard-Datenbankzugriffsmodul für die Programmiersprache Perl. Sie können dasselbe DBI-Modul mit unterschiedlichen Treibern für SQL Server und PostgreSQL verwenden.Weitere Informationen zu den erforderlichen Perl-Modulen, Installationen und anderen Anweisungen finden Sie in der [DBD](https://metacpan.org/pod/DBD::Pg): :Pg-Dokumentation. Das folgende Beispiel stellt eine Verbindung zu Aurora PostgreSQL-Compatible unter her. `exampletest-aurorapg-database.cluster-sampleclusture.us-east.-rds.amazonaws.com`<pre>#!/usr/bin/perl<br />use DBI;<br />use strict;<br />my $driver = "Pg";<br />my $hostname = "exampletest-aurorapg-database-sampleclusture.us-east.rds.amazonaws.com"<br />my $dsn = "DBI:$driver: dbname = $hostname;host = 127.0.0.1;port = 5432";<br />my $username = "postgres";<br />my $password = "pass123";<br />$dbh = DBI->connect("dbi:Pg:dbname=$hostname;host=$host;port=$port;options=$options",<br />      $username,<br />      $password,<br />      {AutoCommit => 0, RaiseError => 1, PrintError => 0}<br />      );</pre> | App-Developer | 
| Ändern Sie Inline-SQL-Abfragen in PostgreSQL. | Ihre Anwendung verfügt möglicherweise über Inline-SQL-Abfragen mit`SELECT`, `DELETE``UPDATE`, und ähnlichen Anweisungen, die Abfrageklauseln enthalten, die PostgreSQL nicht unterstützt. Beispielsweise werden Abfrageschlüsselwörter wie `TOP` und in PostgreSQL `NOLOCK` nicht unterstützt. Die folgenden Beispiele zeigen, wie Sie mit`TOP`, und booleschen `NOLOCK` Variablen umgehen können.In SQL Server:<pre>$sqlStr = $sqlStr<br />. "WHERE a.student_id in (SELECT TOP $numofRecords c_student_id   \<br />FROM active_student_record b WITH (NOLOCK) \<br />INNER JOIN student_contributor c WITH (NOLOCK) on c.contributor_id = b.c_st)</pre>Für PostgreSQL konvertieren Sie in:<pre>$sqlStr = $sqlStr<br />. "WHERE a.student_id in (SELECT TOP $numofRecords c_student_id  \<br />FROM active_student_record b INNER JOIN student_contributor c  \<br />on c.contributor_id = b.c_student_contr_id WHERE b_current_1 is true \<br />LIMIT $numofRecords)"</pre> | App-Developer | 
| Verarbeitet dynamische SQL-Abfragen und Perl-Variablen. | Dynamische SQL-Abfragen sind SQL-Anweisungen, die zur Laufzeit der Anwendung erstellt werden. Diese Abfragen werden je nach bestimmten Bedingungen dynamisch erstellt, wenn die Anwendung ausgeführt wird, sodass der vollständige Text der Abfrage erst zur Laufzeit bekannt ist. Ein Beispiel ist eine Finanzanalyseanwendung, die täglich die zehn wichtigsten Aktien analysiert, und diese Aktien ändern sich täglich. Die SQL-Tabellen werden auf der Grundlage von Top-Performern erstellt, und die Werte sind erst zur Laufzeit bekannt.Nehmen wir an, dass die Inline-SQL-Abfragen für dieses Beispiel an eine Wrapper-Funktion übergeben werden, um die Ergebnisse in einer Variablen zu erhalten, und dann verwendet eine Variable eine Bedingung, um zu bestimmen, ob die Tabelle existiert:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html)Hier ist ein Beispiel für die Variablenbehandlung, gefolgt von den SQL Server- und PostgreSQL-Abfragen für diesen Anwendungsfall.<pre>my $tableexists = db_read( arg 1, $sql_qry, undef, 'writer');<br />my $table_already_exists = $tableexists->[0]{table_exists};<br />if ($table_already_exists){<br /># do some thing<br />}<br />else {<br /># do something else<br />}</pre>SQL Server:<pre>my $sql_qry = "SELECT OBJECT_ID('$backendTable', 'U') table_exists", undef, 'writer')";</pre>PostgreSQL:<pre>my $sql_qry = "SELECT TO_REGCLASS('$backendTable', 'U') table_exists", undef, 'writer')";</pre>Im folgenden Beispiel wird eine**** Perl-Variable in Inline-SQL verwendet, die eine `SELECT` Anweisung mit a ausführt, `JOIN` um den Primärschlüssel der Tabelle und die Position der Schlüsselspalte abzurufen.SQL Server:<pre>my $sql_qry = "SELECT column_name', character_maxi mum_length \<br />FROM INFORMATION_SCHEMA.COLUMNS \<br />WHERE TABLE_SCHEMA='$example_schemaInfo' \<br />AND TABLE_NAME='$example_table' \<br />AND DATA_TYPE IN ('varchar','nvarchar');";</pre>PostgreSQL:<pre>my $sql_qry = "SELECT c1.column_name, c1.ordinal_position \<br />FROM information_schema.key_column_usage AS c LEFT \<br />JOIN information_schema.table_constraints AS t1 \<br />ON t1.constraint_name = c1.constraint_name \<br />WHERE t1.table_name = $example_schemaInfo'.'$example_table’ \<br />AND t1.constraint_type = 'PRIMARY KEY' ;";</pre> | App-Developer | 

### Nehmen Sie zusätzliche Änderungen an Ihrer Perl- oder Python-basierten Anwendung vor, um PostgreSQL zu unterstützen
<a name="make-additional-changes-to-your-perl-based-or-python-based-application-to-support-postgresql"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konvertiert zusätzliche SQL Server-Konstrukte nach PostgreSQL. | Die folgenden Änderungen gelten für alle Anwendungen, unabhängig von der Programmiersprache.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.html) | App-Developer | 

### Verbessern Sie die Leistung
<a name="improve-performance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Nutzen Sie die AWS-Services, um die Leistung zu verbessern. | Wenn Sie zur AWS-Cloud migrieren, können Sie Ihr Anwendungs- und Datenbankdesign verfeinern, um die Vorteile der AWS-Services zu nutzen. Wenn beispielsweise die Abfragen Ihrer Python-Anwendung, die mit einem Aurora PostgreSQL-kompatiblen Datenbankserver verbunden ist, mehr Zeit in Anspruch nehmen als Ihre ursprünglichen Microsoft SQL Server-Abfragen, könnten Sie erwägen, einen Feed mit historischen Daten direkt vom Aurora-Server in einen Amazon Simple Storage Service (Amazon S3) -Bucket zu erstellen und Amazon Athena-basierte SQL-Abfragen zu verwenden, um Berichte und analytische Datenabfragen für Ihre Benutzer-Dashboards zu generieren. | App-Entwickler, Cloud-Architekt | 

## Zugehörige Ressourcen
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-resources"></a>
+ [Perl](https://www.perl.org/)
+ [Perl DBI-Modul](https://metacpan.org/pod/DBI)
+ [Python](https://www.python.org/)
+ [psycopg2](https://pypi.org/project/psycopg2/)
+ [SQLAlchemy](https://www.sqlalchemy.org/)
+ [Massenkopie - PostgreSQL](https://www.postgresql.org/docs/9.2/sql-copy.html)
+ [Massenkopie — Microsoft SQL Server](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15)
+ [PostgreSQL](https://www.postgresql.org/)
+ [Arbeiten mit Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)

## Zusätzliche Informationen
<a name="change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition-additional"></a>

Sowohl Microsoft SQL Server als auch Aurora PostgreSQL-kompatibel sind ANSI SQL-kompatibel. Sie sollten sich jedoch dennoch aller Inkompatibilitäten in Bezug auf Syntax, Spaltendatentypen, systemeigene datenbankspezifische Funktionen, Masseneinfügungen und Berücksichtigung der Groß- und Kleinschreibung bewusst sein, wenn Sie Ihre Python- oder Perl-Anwendung von SQL Server zu PostgreSQL migrieren.

In den folgenden Abschnitten finden Sie weitere Informationen zu möglichen Inkonsistenzen.

**Vergleich der Datentypen**

Datentypänderungen von SQL Server zu PostgreSQL können zu erheblichen Unterschieden in den resultierenden Daten führen, mit denen Anwendungen arbeiten. Einen Vergleich der Datentypen finden Sie in der Tabelle auf der [Sqlines-Website](https://www.sqlines.com/sql-server-to-postgresql).

**Systemeigene oder integrierte SQL-Funktionen**

Das Verhalten einiger Funktionen unterscheidet sich zwischen SQL Server- und PostgreSQL-Datenbanken. Die folgende Tabelle bietet einen Vergleich.


| 
| 
| Microsoft SQL Server | Description | PostgreSQL | 
| --- |--- |--- |
| `CAST`  | Konvertiert einen Wert von einem Datentyp in einen anderen. | PostgreSQL `type :: operator` | 
| `GETDATE()` | Gibt das Datum und die Uhrzeit des aktuellen Datenbanksystems in einem `YYYY-MM-DD hh:mm:ss.mmm` Format zurück. | `CLOCK_TIMESTAMP` | 
| `DATEADD` | Fügt einem Datum ein time/date Intervall hinzu. | `INTERVAL`Ausdruck | 
| `CONVERT` | Konvertiert einen Wert in ein bestimmtes Datenformat. | `TO_CHAR` | 
| `DATEDIFF` | Gibt die Differenz zwischen zwei Daten zurück. | `DATE_PART` | 
| `TOP` | Beschränkt die Anzahl der Zeilen in einem `SELECT` Ergebnissatz. | `LIMIT/FETCH` | 

**Anonyme Blöcke**

Eine strukturierte SQL-Abfrage ist in Abschnitte wie Deklaration, ausführbare Dateien und Ausnahmebehandlung unterteilt. In der folgenden Tabelle werden die Microsoft SQL Server- und PostgreSQL-Versionen eines einfachen anonymen Blocks verglichen. Für komplexe anonyme Blöcke empfehlen wir, dass Sie eine benutzerdefinierte Datenbankfunktion in Ihrer Anwendung aufrufen.


| 
| 
| Microsoft SQL Server | PostgreSQL | 
| --- |--- |
| <pre>my $sql_qry1=<br />my $sql_qry2 =<br />my $sqlqry = "BEGIN TRAN<br />$sql_qry1 $sql_qry2<br />if @\@error !=0 ROLLBACK<br />TRAN<br />else COMIT TRAN";</pre> | <pre>my $sql_qry1=<br />my $sql_qry2 =<br />my $sql_qry = " DO \$\$<br />BEGIN<br />$header_sql $content_sql<br />END<br />\$\$";</pre> | 

 

**Andere Unterschiede**
+ **Masseneinfügungen von Zeilen:** [Das PostgreSQL-Äquivalent des [Microsoft SQL Server-Dienstprogramms BCP](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver15) ist COPY.](https://www.postgresql.org/docs/9.2/sql-copy.html)
+ Berücksichtigung von Groß- und **Kleinschreibung:** Bei Spaltennamen wird in PostgreSQL zwischen Groß- und Kleinschreibung unterschieden, sodass Sie Ihre SQL Server-Spaltennamen in Klein- oder Großbuchstaben konvertieren müssen. Dies wird zu einem Faktor, wenn Sie Daten extrahieren oder vergleichen oder Spaltennamen in Ergebnismengen oder Variablen platzieren. Das folgende Beispiel identifiziert Spalten, in denen Werte in Groß- oder Kleinbuchstaben gespeichert werden könnten.

```
my $sql_qry = "SELECT $record_id FROM $exampleTable WHERE LOWER($record_name) = \'failed transaction\'"; 
```
+ **Verkettung:** SQL Server verwendet `+` als Operator für die Verkettung von Zeichenketten, während PostgreSQL dies verwendet. `||`
+ **Validierung:** Sie sollten Inline-SQL-Abfragen und -Funktionen testen und validieren, bevor Sie sie im Anwendungscode für PostgreSQL verwenden.
+ **Inklusion der ORM-Bibliothek:** Sie können auch danach suchen, eine bestehende Datenbankverbindungsbibliothek durch Python-ORM-Bibliotheken wie [SQLAlchemy](https://www.sqlalchemy.org/)PynomoDB einzubeziehen oder zu ersetzen[.](https://pynamodb.readthedocs.io/en/latest/quickstart.html) Dies wird dazu beitragen, Daten aus einer Datenbank mithilfe eines objektorientierten Paradigmas einfach abzufragen und zu bearbeiten.

# Migrationsmuster nach Arbeitslast
<a name="migration-migration-patterns-by-workload-pattern-list"></a>

**Topics**
+ [IBM](migration-migration-patterns-by-workload-ibm-pattern-list.md)
+ [Microsoft](migration-migration-patterns-by-workload-microsoft-pattern-list.md)
+ [N/A](migration-migration-patterns-by-workload-notapplicable-pattern-list.md)
+ [Open-Source](migration-migration-patterns-by-workload-open-source-pattern-list.md)
+ [Oracle](migration-migration-patterns-by-workload-oracle-pattern-list.md)
+ [SAP](migration-migration-patterns-by-workload-sap-pattern-list.md)

# IBM
<a name="migration-migration-patterns-by-workload-ibm-pattern-list"></a>

**Topics**
+ [Migrieren Sie mithilfe von AWS DMS eine Db2-Datenbank von Amazon EC2 zu Aurora MySQL-kompatibel](migrate-a-db2-database-from-amazon-ec2-to-aurora-mysql-compatible-by-using-aws-dms.md)
+ [Migrieren Sie Db2 for LUW zu Amazon, EC2 indem Sie den Protokollversand verwenden, um die Ausfallzeit zu reduzieren](migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.md)
+ [Migrieren Sie Db2 for LUW zu Amazon EC2 mit hochverfügbarer Disaster Recovery](migrate-db2-for-luw-to-amazon-ec2-with-high-availability-disaster-recovery.md)
+ [Migrieren Sie mithilfe von AWS DMS und AWS SCT von IBM Db2 auf Amazon EC2 zu Aurora PostgreSQL-kompatibel](migrate-from-ibm-db2-on-amazon-ec2-to-aurora-postgresql-compatible-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie von IBM WebSphere Application Server zu Apache Tomcat auf Amazon EC2](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2.md)

# Microsoft
<a name="migration-migration-patterns-by-workload-microsoft-pattern-list"></a>

**Topics**
+ [Beschleunigen Sie die Erkennung und Migration von Microsoft-Workloads zu AWS](accelerate-the-discovery-and-migration-of-microsoft-workloads-to-aws.md)
+ [Ändern Sie Python- und Perl-Anwendungen, um die Datenbankmigration von Microsoft SQL Server zur Amazon Aurora PostgreSQL-Compatible Edition zu unterstützen](change-python-and-perl-applications-to-support-database-migration-from-microsoft-sql-server-to-amazon-aurora-postgresql-compatible-edition.md)
+ [Erstellen Sie CloudFormation AWS-Vorlagen für AWS DMS-Aufgaben mit Microsoft Excel und Python](create-aws-cloudformation-templates-for-aws-dms-tasks-using-microsoft-excel-and-python.md)
+ [Exportieren Sie eine Microsoft SQL Server-Datenbank mithilfe von AWS DMS nach Amazon S3](export-a-microsoft-sql-server-database-to-amazon-s3-by-using-aws-dms.md)
+ [Implementieren Sie SHA1 Hashing für PII-Daten bei der Migration von SQL Server zu PostgreSQL](implement-sha1-hashing-for-pii-data-when-migrating-from-sql-server-to-postgresql.md)
+ [EC2 Windows-Instances in ein AWS Managed Services Services-Konto aufnehmen und migrieren](ingest-and-migrate-ec2-windows-instances-into-an-aws-managed-services-account.md)
+ [Migrieren Sie eine Messaging-Warteschlange von Microsoft Azure Service Bus zu Amazon SQS](migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs.md)
+ [Migrieren Sie mithilfe von AWS DMS eine Microsoft SQL Server-Datenbank von Amazon EC2 zu Amazon DocumentDB](migrate-a-microsoft-sql-server-database-from-amazon-ec2-to-amazon-documentdb-by-using-aws-dms.md)
+ [Migrieren Sie eine Microsoft SQL Server-Datenbank mithilfe von AWS DMS und AWS SCT zu Aurora MySQL](migrate-a-microsoft-sql-server-database-to-aurora-mysql-by-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine.NET-Anwendung von Microsoft Azure App Service zu AWS Elastic Beanstalk](migrate-a-net-application-from-microsoft-azure-app-service-to-aws-elastic-beanstalk.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Amazon EC2](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-ec2.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mithilfe von Verbindungsservern zu Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-linked-servers.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mit systemeigenen Sicherungs- und Wiederherstellungsmethoden zu Amazon RDS for SQL Server](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-rds-for-sql-server-using-native-backup-and-restore-methods.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mit AWS DMS zu Amazon Redshift](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-dms.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank mithilfe von AWS SCT-Datenextraktionsagenten zu Amazon Redshift](migrate-an-on-premises-microsoft-sql-server-database-to-amazon-redshift-using-aws-sct-data-extraction-agents.md)
+ [Migrieren Sie eine lokale Microsoft SQL Server-Datenbank zu Microsoft SQL Server auf Amazon EC2 unter Linux](migrate-an-on-premises-microsoft-sql-server-database-to-microsoft-sql-server-on-amazon-ec2-running-linux.md)
+ [Migrieren Sie Daten mithilfe von Rclone von Microsoft Azure Blob zu Amazon S3](migrate-data-from-microsoft-azure-blob-to-amazon-s3-by-using-rclone.md)
+ [Migrieren Sie IIS-gehostete Anwendungen mithilfe EC2 von appcmd.exe zu Amazon](migrate-iis-hosted-applications-to-amazon-ec2-by-using-appcmd.md)
+ [Migrieren Sie EC2 mithilfe des Application Migration Service eine lokale Microsoft SQL Server-Datenbank zu Amazon](migrate-microsoft-sql-server-to-amazon-ec2-using-aws-mgn.md)
+ [Migrieren Sie Windows-SSL-Zertifikate mithilfe von ACM zu einem Application Load Balancer](migrate-windows-ssl-certificates-to-an-application-load-balancer-using-acm.md)
+ [Rehosten Sie lokale Workloads in der AWS-Cloud: Migrationscheckliste](rehost-on-premises-workloads-in-the-aws-cloud-migration-checklist.md)
+ [Verbindungsfehler nach der Migration von Microsoft SQL Server zur AWS-Cloud beheben](resolve-connection-errors-after-migrating-microsoft-sql-server-to-the-aws-cloud.md)
+ [Richten Sie mithilfe von Amazon eine Multi-AZ-Infrastruktur für einen SQL Server Always On FCI ein FSx](set-up-multi-az-infrastructure-for-a-sql-server-always-on-fci-by-using-amazon-fsx.md)

# N/A
<a name="migration-migration-patterns-by-workload-notapplicable-pattern-list"></a>

**Topics**
+ [Erstellen Sie einen Genehmigungsprozess für Firewallanfragen während einer Rehost-Migration zu AWS](create-an-approval-process-for-firewall-requests-during-a-rehost-migration-to-aws.md)

# Open-Source
<a name="migration-migration-patterns-by-workload-open-source-pattern-list"></a>

**Topics**
+ [Anwendungsbenutzer und Rollen in Aurora PostgreSQL-kompatibel erstellen](create-application-users-and-roles-in-aurora-postgresql-compatible.md)
+ [Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for PostgreSQL mit AWS SCT und unter Verwendung von und AWS DMS AWS CLI CloudFormation](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-with-aws-sct-and-aws-dms-using-aws-cli-and-aws-cloudformation.md)
+ [Migrieren Sie eine lokale MariaDB-Datenbank mit nativen Tools zu Amazon RDS for MariaDB](migrate-an-on-premises-mariadb-database-to-amazon-rds-for-mariadb-using-native-tools.md)
+ [Migrieren Sie eine lokale MySQL-Datenbank zu Amazon RDS for MySQL](migrate-an-on-premises-mysql-database-to-amazon-rds-for-mysql.md)
+ [Migrieren Sie eine lokale MySQL-Datenbank zu Aurora MySQL](migrate-an-on-premises-mysql-database-to-aurora-mysql.md)
+ [Migrieren Sie eine lokale PostgreSQL-Datenbank zu Aurora PostgreSQL](migrate-an-on-premises-postgresql-database-to-aurora-postgresql.md)
+ [Migrieren Sie eine Couchbase Server-Datenbank zu Amazon EC2](migrate-couchbase-server-ec2.md)
+ [Migrieren Sie EC2 mit Auto Scaling von IBM WebSphere Application Server zu Apache Tomcat auf Amazon](migrate-from-ibm-websphere-application-server-to-apache-tomcat-on-amazon-ec2-with-auto-scaling.md)
+ [Migrieren Sie mit pglogical von PostgreSQL auf Amazon EC2 zu Amazon RDS for PostgreSQL](migrate-from-postgresql-on-amazon-ec2-to-amazon-rds-for-postgresql-using-pglogical.md)
+ [Migrieren Sie lokale Java-Anwendungen mithilfe von AWS App2Container zu AWS](migrate-on-premises-java-applications-to-aws-using-aws-app2container.md)
+ [Migrieren Sie lokale MySQL-Datenbanken mit Percona XtraBackup, Amazon EFS und Amazon S3 zu Aurora MySQL](migrate-on-premises-mysql-databases-to-aurora-mysql-using-percona-xtrabackup-amazon-efs-and-amazon-s3.md)
+ [Migrieren Sie externe Oracle-Tabellen zu Amazon Aurora PostgreSQL-kompatibel](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Starten Sie den AWS Replication Agent SELinux nach dem Neustart eines RHEL-Quellservers automatisch neu, ohne ihn zu deaktivieren](restart-the-aws-replication-agent-automatically-without-disabling-selinux-after-rebooting-a-rhel-source-server.md)
+ [Transportieren Sie PostgreSQL-Datenbanken zwischen zwei Amazon RDS-DB-Instances mithilfe von pg\$1transport](transport-postgresql-databases-between-two-amazon-rds-db-instances-using-pg-transport.md)

# Oracle
<a name="migration-migration-patterns-by-workload-oracle-pattern-list"></a>

**Topics**
+ [Konvertiert VARCHAR2 (1) den Datentyp für Oracle in den booleschen Datentyp für Amazon Aurora PostgreSQL](convert-varchar2-1-data-type-for-oracle-to-boolean-data-type-for-amazon-aurora-postgresql.md)
+ [Emulieren Sie Oracle DR mithilfe einer PostgreSQL-kompatiblen globalen Aurora-Datenbank](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Schrittweise Migration von Amazon RDS for Oracle zu Amazon RDS for PostgreSQL mithilfe von Oracle SQL Developer und AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Laden Sie BLOB-Dateien mithilfe der Dateikodierung in Aurora PostgreSQL-kompatibel in TEXT](load-blob-files-into-text-by-using-file-encoding-in-aurora-postgresql-compatible.md)
+ [Migrieren Sie Amazon RDS for Oracle zu Amazon RDS for PostgreSQL im SSL-Modus mithilfe von AWS DMS](migrate-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-in-ssl-mode-by-using-aws-dms.md)
+ [Migrieren Sie eine Amazon RDS for Oracle Oracle-Datenbank zu einer anderen AWS-Konto und AWS-Region verwenden Sie sie AWS DMS für die laufende Replikation](migrate-an-amazon-rds-for-oracle-database-to-another-aws-account-and-aws-region-using-aws-dms-for-ongoing-replication.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mithilfe EC2 von Oracle Data Pump zu Amazon](migrate-an-on-premises-oracle-database-to-amazon-ec2-by-using-oracle-data-pump.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mit Logstash zu Amazon OpenSearch Service](migrate-an-on-premises-oracle-database-to-amazon-opensearch-service-using-logstash.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mit AWS DMS und AWS SCT zu Amazon RDS for MySQL](migrate-an-on-premises-oracle-database-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank zu Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mit Oracle Data Pump zu Amazon RDS for Oracle](migrate-an-on-premises-oracle-database-to-amazon-rds-for-oracle-using-oracle-data-pump.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank mithilfe eines Oracle-Bystanders und AWS DMS zu Amazon RDS for PostgreSQL](migrate-an-on-premises-oracle-database-to-amazon-rds-for-postgresql-by-using-an-oracle-bystander-and-aws-dms.md)
+ [Migrieren Sie eine lokale Oracle-Datenbank zu Oracle auf Amazon EC2](migrate-an-on-premises-oracle-database-to-oracle-on-amazon-ec2.md)
+ [Migrieren Sie mithilfe von AWS DMS und AWS SCT eine Oracle-Datenbank von Amazon EC2 zu Amazon RDS for MariaDB](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-mariadb-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie mithilfe von AWS DMS eine Oracle-Datenbank von Amazon EC2 zu Amazon RDS for Oracle](migrate-an-oracle-database-from-amazon-ec2-to-amazon-rds-for-oracle-using-aws-dms.md)
+ [Migrieren Sie eine Oracle-Datenbank mithilfe von GoldenGate Oracle-Flatfile-Adaptern zu Amazon RDS for Oracle](migrate-an-oracle-database-to-amazon-rds-for-oracle-by-using-oracle-goldengate-flat-file-adapters.md)
+ [Migrieren Sie eine Oracle-Datenbank mit AWS DMS und AWS SCT zu Amazon Redshift](migrate-an-oracle-database-to-amazon-redshift-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine Oracle-Datenbank mit AWS DMS und AWS SCT zu Aurora PostgreSQL](migrate-an-oracle-database-to-aurora-postgresql-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie eine Oracle JD EnterpriseOne Edwards-Datenbank mithilfe von Oracle Data Pump und AWS DMS zu AWS](migrate-an-oracle-jd-edwards-enterpriseone-database-to-aws-by-using-oracle-data-pump-and-aws-dms.md)
+ [Migrieren Sie eine partitionierte Oracle-Tabelle mithilfe von AWS DMS zu PostgreSQL](migrate-an-oracle-partitioned-table-to-postgresql-by-using-aws-dms.md)
+ [Migrieren Sie eine PeopleSoft Oracle-Datenbank mithilfe von AWS DMS zu AWS](migrate-an-oracle-peoplesoft-database-to-aws-by-using-aws-dms.md)
+ [Migrieren Sie Daten von einer lokalen Oracle-Datenbank zu Aurora PostgreSQL](migrate-data-from-an-on-premises-oracle-database-to-aurora-postgresql.md)
+ [Migrieren Sie von Amazon RDS for Oracle zu Amazon RDS for MySQL](migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-mysql.md)
+ [Migrieren Sie mithilfe von Materialized Views und AWS DMS von Oracle 8i oder 9i zu Amazon RDS for PostgreSQL](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-materialized-views-and-aws-dms.md)
+ [Migrieren Sie mithilfe von AWS DMS von Oracle 8i oder 9i zu Amazon RDS for PostgreSQL SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-postgresql-using-shareplex-and-aws-dms.md)
+ [Migrieren Sie mithilfe von Oracle von Oracle Database zu Amazon RDS for PostgreSQL GoldenGate](migrate-from-oracle-database-to-amazon-rds-for-postgresql-by-using-oracle-goldengate.md)
+ [Migrieren Sie mithilfe von AWS DMS und AWS SCT von Oracle auf Amazon EC2 zu Amazon RDS for MySQL](migrate-from-oracle-on-amazon-ec2-to-amazon-rds-for-mysql-using-aws-dms-and-aws-sct.md)
+ [Migrieren Sie von Oracle WebLogic zu Apache Tomcat (ToMEE) auf Amazon ECS](migrate-from-oracle-weblogic-to-apache-tomcat-tomee-on-amazon-ecs.md)
+ [Migrieren Sie funktionsbasierte Indizes von Oracle nach PostgreSQL](migrate-function-based-indexes-from-oracle-to-postgresql.md)
+ [Migrieren Sie Legacy-Anwendungen von Oracle Pro\$1C zu ECPG](migrate-legacy-applications-from-oracle-pro-c-to-ecpg.md)
+ [Migrieren Sie Oracle CLOB-Werte in einzelne Zeilen in PostgreSQL auf AWS](migrate-oracle-clob-values-to-individual-rows-in-postgresql-on-aws.md)
+ [Migrieren Sie Oracle-Datenbank-Fehlercodes in eine Amazon Aurora PostgreSQL-kompatible Datenbank](migrate-oracle-database-error-codes-to-an-amazon-aurora-postgresql-compatible-database.md)
+ [Migrieren Sie native Oracle-Funktionen mithilfe von Erweiterungen zu PostgreSQL](migrate-oracle-native-functions-to-postgresql-using-extensions.md)
+ [Migrieren Sie Oracle PeopleSoft zu Amazon RDS Custom](migrate-oracle-peoplesoft-to-amazon-rds-custom.md)
+ [Migrieren Sie die Oracle ROWID-Funktionalität zu PostgreSQL auf AWS](migrate-oracle-rowid-functionality-to-postgresql-on-aws.md)
+ [Migrieren Sie Oracle SERIALLY\$1REUSABLE Pragma-Pakete nach PostgreSQL](migrate-oracle-serially-reusable-pragma-packages-into-postgresql.md)
+ [Migrieren Sie virtuell generierte Spalten von Oracle nach PostgreSQL](migrate-virtual-generated-columns-from-oracle-to-postgresql.md)
+ [Richten Sie die Oracle UTL\$1FILE-Funktionalität auf Aurora PostgreSQL-Compatible ein](set-up-oracle-utl_file-functionality-on-aurora-postgresql-compatible.md)
+ [Datenbankobjekte nach der Migration von Oracle zu Amazon Aurora PostgreSQL validieren](validate-database-objects-after-migrating-from-oracle-to-amazon-aurora-postgresql.md)

# SAP
<a name="migration-migration-patterns-by-workload-sap-pattern-list"></a>

**Topics**
+ [Migrieren Sie mithilfe von AWS DMS von SAP ASE zu Amazon RDS for SQL Server](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migrieren Sie SAP ASE auf Amazon EC2 zu Amazon Aurora PostgreSQL-kompatibel mit AWS SCT und AWS DMS](migrate-sap-ase-on-amazon-ec2-to-amazon-aurora-postgresql-compatible-using-aws-sct-and-aws-dms.md)

# Mehr Muster
<a name="migration-more-patterns-pattern-list"></a>

**Topics**
+ [Zugriff AWS-Services von IBM z/OS durch Installation des AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Beurteilen Sie die Abfrageleistung für die Migration von SQL Server-Datenbanken zu MongoDB Atlas auf AWS](assess-query-performance-for-migrating-sql-server-databases-to-mongodb-atlas-on-aws.md)
+ [Automatisieren Sie regionsübergreifendes Failover und Failback mithilfe des DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Automatisieren Sie Datenbankaufgaben in SQL Server Express auf Amazon EC2 mithilfe eines AWS Lambda Taskplaners](automate-database-tasks-in-sql-server-express-edition-running-on-amazon-ec2.md)
+ [Erstellen Sie einen fortschrittlichen Mainframe-Dateiviewer in der AWS-Cloud](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Stellen Sie über ein privates Netzwerk eine Connect zu Daten- und Steuerungsebenen des Application Migration Service her](connect-to-application-migration-service-data-and-control-planes-over-a-private-network.md)
+ [Containerisieren Sie Mainframe-Workloads, die von Blu Age modernisiert wurden](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [JSON-Oracle-Abfragen in PostgreSQL-Datenbank-SQL konvertieren](convert-json-oracle-queries-into-postgresql-database-sql.md)
+ [Konvertieren Sie die temporale Funktion Teradata NORMALIZE in Amazon Redshift SQL](convert-the-teradata-normalize-temporal-feature-to-amazon-redshift-sql.md)
+ [Konvertieren Sie die Teradata RESET WHEN-Funktion in Amazon Redshift SQL](convert-the-teradata-reset-when-feature-to-amazon-redshift-sql.md)
+ [Kopieren Sie Amazon DynamoDB-Tabellen zwischen Konten mit AWS Backup](copy-amazon-dynamodb-tables-across-accounts-using-aws-backup.md)
+ [Stellen Sie einen Cassandra-Cluster auf Amazon EC2 mit Private Static bereit, um ein IPs Rebalancing zu vermeiden](deploy-a-cassandra-cluster-on-amazon-ec2-with-private-static-ips-to-avoid-rebalancing.md)
+ [Stellen Sie Multi-Stack-Anwendungen mithilfe von AWS CDK bereit mit TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.md)
+ [Stellen Sie mithilfe von Terraform SQL Server-Failover-Cluster-Instances auf Amazon EC2 und Amazon FSx bereit](deploy-sql-server-failover-cluster-instances-on-amazon-ec2-and-amazon-fsx.md)
+ [Emulieren Sie PL/SQL assoziative Oracle-Arrays in Amazon Aurora PostgreSQL und Amazon RDS for PostgreSQL](emulate-oracle-plsql-associative-arrays-in-aurora-and-rds-postgresql.md)
+ [Schätzen Sie die Größe der Amazon RDS-Engine für eine Oracle-Datenbank mithilfe von AWR-Berichten](estimate-the-amazon-rds-engine-size-for-an-oracle-database-by-using-awr-reports.md)
+ [Generieren Sie Dateneinblicke mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Behandeln Sie anonyme Blöcke in dynamischen SQL-Anweisungen in Aurora PostgreSQL](handle-anonymous-blocks-in-dynamic-sql-statements-in-aurora-postgresql.md)
+ [Automatische Identifizierung doppelter Container-Images bei der Migration zu einem Amazon ECR-Repository](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Richten Sie einen Microsoft SQL Server-Failover-Cluster auf Amazon EC2 ein, indem Sie FSx für Windows File Server](microsoft-sql-failover-cluster-on-amazon-ec2.md)
+ [Migrieren Sie Apache Cassandra-Workloads mithilfe von AWS Glue zu Amazon Keyspaces](migrate-apache-cassandra-workloads-to-amazon-keyspaces-by-using-aws-glue.md)
+ [Migrieren Sie Ihre Container-Workloads von Azure Red Hat OpenShift (ARO) zu Red Hat OpenShift Service in AWS (ROSA)](migrate-container-workloads-from-aro-to-rosa.md)
+ [Migrieren Sie mithilfe von AWS DMS von Oracle 8i oder 9i zu Amazon RDS for Oracle SharePlex](migrate-from-oracle-8i-or-9i-to-amazon-rds-for-oracle-using-shareplex-and-aws-dms.md)
+ [Migrieren Sie die Microsoft SQL Server Always On-Verfügbarkeitsgruppe mithilfe von AWS Application Migration Service](migrate-microsoft-sql-server-always-on-group-using-mgn.md)
+ [Migrieren Sie Oracle-Funktionen und -Prozeduren mit mehr als 100 Argumenten nach PostgreSQL](migrate-oracle-functions-and-procedures-that-have-more-than-100-arguments-to-postgresql.md)
+ [Migrieren Sie SAP HANA zu AWS mithilfe von SAP HSR mit demselben Hostnamen](migrate-sap-hana-to-aws-using-sap-hsr-with-the-same-hostname.md)
+ [Migrieren Sie SQL Server mithilfe verteilter Verfügbarkeitsgruppen zu AWS](migrate-sql-server-to-aws-using-distributed-availability-groups.md)
+ [Modernisieren und implementieren Sie Mainframe-Anwendungen mithilfe von Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernisieren Sie Mainframe-Online-Druck-Workloads auf AWS mithilfe von Micro Focus Enterprise Server und LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisieren Sie das Mainframe-Output-Management mithilfe AWS von Rocket Enterprise Server und LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Ändern Sie HTTP-Header, wenn Sie von F5 zu einem Application Load Balancer auf AWS migrieren](modify-http-headers-when-you-migrate-from-f5-to-an-application-load-balancer-on-aws.md)
+ [Multi-AZ-Failover für EMR-Cluster mithilfe von Application Recovery Controller verwalten](multi-az-failover-spark-emr-clusters-arc.md)
+ [Analysieren Sie Objektabhängigkeiten für partielle Datenbankmigrationen von Oracle nach PostgreSQL](multilevel-object-analysis-for-database-migration-from-oracle-to-postgresql.md)
+ [Richten Sie mithilfe von Terraform eine CI/CD Pipeline für die Datenbankmigration ein](set-up-ci-cd-pipeline-for-db-migration-with-terraform.md)
+ [Richten Sie die Notfallwiederherstellung für Oracle JD Edwards EnterpriseOne mit AWS Elastic Disaster Recovery ein](set-up-disaster-recovery-for-oracle-jd-edwards-enterpriseone-with-aws-elastic-disaster-recovery.md)
+ [Vereinfachen Sie die Verwaltung privater Zertifikate mithilfe von AWS Private CA und AWS RAM](simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.md)
+ [Übertragung umfangreicher z/OS Db2-Daten in CSV-Dateien nach Amazon S3](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Verwandeln Sie Easytrieve mithilfe von Custom in moderne Sprachen AWS Transform](transform-easytrieve-modern-languages.md)

# Modernisierung
<a name="modernization-pattern-list"></a>

**Topics**
+ [Automatisches Archivieren von Elementen in Amazon S3 mithilfe von DynamoDB TTL](automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.md)
+ [Erstellen Sie eine serverlose Architektur mit mehreren Mandanten in Amazon Service OpenSearch](build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.md)
+ [Stellen Sie Multi-Stack-Anwendungen mithilfe von AWS CDK bereit mit TypeScript](deploy-multiple-stack-applications-using-aws-cdk-with-typescript.md)
+ [Automatisieren Sie die Bereitstellung verschachtelter Anwendungen mit AWS SAM](automate-deployment-of-nested-applications-using-aws-sam.md)
+ [Implementieren Sie die SaaS-Mandantenisolierung für Amazon S3 mithilfe eines AWS Lambda Token-Verkaufsautomaten](implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.md)
+ [Implementieren Sie das serverlose Saga-Muster mithilfe von AWS Step Functions](implement-the-serverless-saga-pattern-by-using-aws-step-functions.md)
+ [Verwalten Sie lokale Containeranwendungen, indem Sie Amazon ECS Anywhere mit dem AWS CDK einrichten](manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk.md)
+ [Modernisieren Sie ASP.NET Web Forms-Anwendungen auf AWS](modernize-asp-net-web-forms-applications-on-aws.md)
+ [Mandanten-Onboarding in der SaaS-Architektur für das Silomodell mit C\$1 und AWS CDK](tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.md)
+ [Zerlegen Sie Monolithen mithilfe von CQRS und Event Sourcing in Microservices](decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.md)
+ [Mehr Muster](modernization-more-patterns-pattern-list.md)

# Automatisches Archivieren von Elementen in Amazon S3 mithilfe von DynamoDB TTL
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl"></a>

*Tabby Ward, Amazon Web Services*

## Zusammenfassung
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-summary"></a>

Dieses Muster enthält Schritte zum Entfernen älterer Daten aus einer Amazon DynamoDB-Tabelle und zum Archivieren in einem Amazon Simple Storage Service (Amazon S3) -Bucket auf Amazon Web Services (AWS), ohne eine Serverflotte verwalten zu müssen. 

Dieses Muster verwendet Amazon DynamoDB Time to Live (TTL), um alte Artikel automatisch zu löschen, und Amazon DynamoDB DynamoDB-Streams, um die TTL-abgelaufenen Artikel zu erfassen. Anschließend verbindet es DynamoDB Streams mit AWS Lambda, das den Code ausführt, ohne Server bereitzustellen oder zu verwalten. 

Wenn dem DynamoDB-Stream neue Artikel hinzugefügt werden, wird die Lambda-Funktion initiiert und schreibt die Daten in einen Amazon Data Firehose-Lieferstream. Firehose bietet eine einfache, vollständig verwaltete Lösung zum Laden der Daten als Archiv in Amazon S3.

DynamoDB wird häufig zum Speichern von Zeitreihendaten verwendet, z. B. Click-Stream-Daten von Webseiten oder IoT-Daten (Internet of Things) von Sensoren und angeschlossenen Geräten. Anstatt Elemente zu löschen, auf die weniger häufig zugegriffen wird, möchten viele Kunden sie zu Prüfungszwecken archivieren. TTL vereinfacht diese Archivierung, indem Elemente auf der Grundlage des Timestamp-Attributs automatisch gelöscht werden. 

Durch TTL gelöschte Elemente können in DynamoDB Streams identifiziert werden, wodurch eine zeitlich geordnete Abfolge von Änderungen auf Elementebene erfasst und die Reihenfolge bis zu 24 Stunden in einem Protokoll gespeichert wird. Diese Daten können von einer Lambda-Funktion genutzt und in einem Amazon S3 S3-Bucket archiviert werden, um die Speicherkosten zu senken. Um die Kosten weiter zu senken, können [Amazon S3 S3-Lebenszyklusregeln](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html) erstellt werden, um die Daten (sobald sie erstellt wurden) automatisch in die kostengünstigsten [Speicherklassen](https://aws.amazon.com/s3/storage-classes/) umzuwandeln.

## Voraussetzungen und Einschränkungen
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ [AWS Command Line Interface (AWS CLI) 1.7 oder höher](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html), installiert und konfiguriert auf macOS, Linux oder Windows.
+ [Python 3.7](https://www.python.org/downloads/release/python-370/) oder höher.
+ [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html), installiert und konfiguriert. Wenn Boto3 noch nicht installiert ist, führen Sie den `python -m pip install boto3` Befehl aus, um es zu installieren.

## Architektur
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-architecture"></a>

**Technologie-Stack**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ Amazon Data Firehose
+ AWS Lambda
+ Amazon S3

![\[Vierstufiger Prozess von DynamoDB zum S3-Bucket.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9dbc833f-cf3c-4574-8f09-d0b81134fe41/images/50d9da65-5398-4a99-bc8f-58afc80e9d7b.png)


1. Elemente werden per TTL gelöscht.

1. Der DynamoDB-Stream-Trigger ruft die Lambda-Stream-Prozessorfunktion auf.

1. Die Lambda-Funktion stellt Datensätze im Firehose-Lieferstream im Batch-Format bereit.

1. Datensätze werden im S3-Bucket archiviert.

## Tools
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-tools"></a>
+ [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) — Die AWS-Befehlszeilenschnittstelle (AWS CLI) ist ein einheitliches Tool zur Verwaltung Ihrer AWS-Services.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) — Amazon DynamoDB ist eine Schlüsselwert- und Dokumentendatenbank, die in jeder Größenordnung eine Leistung im einstelligen Millisekundenbereich bietet.
+ [Amazon DynamoDB Time to Live (TTL) — Amazon DynamoDB TTL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/howitworks-ttl.html) unterstützt Sie bei der Definition eines Zeitstempels pro Artikel, um zu bestimmen, wann ein Artikel nicht mehr benötigt wird.
+ [Amazon DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Types_Amazon_DynamoDB_Streams.html) — Amazon DynamoDB Streams erfasst eine zeitlich geordnete Abfolge von Änderungen auf Elementebene in jeder DynamoDB-Tabelle und speichert diese Informationen bis zu 24 Stunden in einem Protokoll.
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) — Amazon Data Firehose ist der einfachste Weg, Streaming-Daten zuverlässig in Data Lakes, Datenspeicher und Analysedienste zu laden.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda führt Code aus, ohne dass Server bereitgestellt oder verwaltet werden müssen. Sie zahlen nur für die tatsächlich aufgewendete Zeit.
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html) — Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice, der branchenführende Skalierbarkeit, Datenverfügbarkeit, Sicherheit und Leistung bietet.

**Code**

Der Code für dieses Muster ist im Repository GitHub [Archivieren von Elementen in S3 mithilfe des DynamoDB-TTL-Repositorys](https://github.com/aws-samples/automatically-archive-items-to-s3-using-dynamodb-ttl) verfügbar.

## Epen
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-epics"></a>

### Richten Sie eine DynamoDB-Tabelle, TTL und einen DynamoDB-Stream ein
<a name="set-up-a-dynamodb-table-ttl-and-a-dynamodb-stream"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine DynamoDB-Tabelle. | Verwenden Sie die AWS-CLI, um in DynamoDB eine Tabelle mit dem Namen zu erstellen. `Reservation` Wählen Sie Random Read Capacity Unit (RCU) und WCU (WCU) und geben Sie Ihrer Tabelle zwei Attribute: und. `ReservationID` `ReservationDate` <pre>aws dynamodb create-table \<br />--table-name Reservation \<br />--attribute-definitions AttributeName=ReservationID,AttributeType=S AttributeName=ReservationDate,AttributeType=N \<br />--key-schema AttributeName=ReservationID,KeyType=HASH AttributeName=ReservationDate,KeyType=RANGE \<br />--provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=100 </pre>`ReservationDate`ist ein Epochenzeitstempel, der verwendet wird, um TTL einzuschalten. | Cloud-Architekt, App-Entwickler | 
| Schalten Sie DynamoDB TTL ein. | Verwenden Sie die AWS-CLI, um DynamoDB-TTL für das Attribut zu aktivieren. `ReservationDate`<pre>aws dynamodb update-time-to-live \<br />--table-name Reservation\<br />  --time-to-live-specification Enabled=true,AttributeName=ReservationDate</pre> | Cloud-Architekt, App-Entwickler | 
| Schalten Sie einen DynamoDB-Stream ein. | Verwenden Sie die AWS-CLI, um mithilfe des Stream-Typs einen DynamoDB-Stream für die `Reservation` Tabelle zu aktivieren. `NEW_AND_OLD_IMAGES` <pre>aws dynamodb update-table \<br />--table-name Reservation \<br />  --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES</pre>Dieser Stream enthält Datensätze für neue Elemente, aktualisierte Elemente, gelöschte Elemente und Elemente, die per TTL gelöscht wurden. Die Datensätze für Elemente, die per TTL gelöscht wurden, enthalten ein zusätzliches Metadatenattribut, um sie von manuell gelöschten Elementen zu unterscheiden. Das `userIdentity` Feld für TTL-Löschungen gibt an, dass der DynamoDB-Dienst die Löschaktion ausgeführt hat. In diesem Muster werden nur die durch TTL gelöschten Elemente archiviert. Sie könnten aber auch nur die Datensätze archivieren, bei denen `eventName` ist `REMOVE` und was enthält. `userIdentity` `principalId` `dynamodb.amazonaws.com` | Cloud-Architekt, App-Entwickler | 

### Erstellen und konfigurieren Sie einen S3-Bucket
<a name="create-and-configure-an-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | Verwenden Sie die AWS-CLI, um einen Ziel-S3-Bucket in Ihrer AWS-Region zu erstellen. `us-east-1` Ersetzen Sie ihn durch Ihre Region und amzn-s3- demo-destination-bucket durch den Namen Ihres Buckets. <pre>aws s3api create-bucket \<br />--bucket amzn-s3-demo-destination-bucket \<br />--region us-east-1</pre>Stellen Sie sicher, dass der Name Ihres S3-Buckets weltweit eindeutig ist, da der Namespace von allen AWS-Konten gemeinsam genutzt wird. | Cloud-Architekt, App-Entwickler | 
| Erstellen Sie eine 30-Tage-Lebenszyklusrichtlinie für den S3-Bucket. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automatically-archive-items-to-amazon-s3-using-dynamodb-ttl.html) | Cloud-Architekt, App-Entwickler | 

### Erstellen Sie einen Firehose-Lieferstream
<a name="create-a-akf-delivery-stream"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen und konfigurieren Sie einen Firehose-Lieferstream. | Laden Sie das `CreateFireHoseToS3.py` Codebeispiel aus dem GitHub Repository herunter und bearbeiten Sie es. Dieser Code ist in Python geschrieben und zeigt Ihnen, wie Sie einen Firehose-Lieferstream und eine AWS Identity and Access Management (IAM) -Rolle erstellen. Die IAM-Rolle wird über eine Richtlinie verfügen, die von Firehose verwendet werden kann, um in den Ziel-S3-Bucket zu schreiben.Verwenden Sie den folgenden Befehl und die folgenden Befehlszeilenargumente, um das Skript auszuführen.Argument 1=`<Your_S3_bucket_ARN>`, das ist der Amazon-Ressourcenname (ARN) für den Bucket, den Sie zuvor erstellt habenArgument 2= Ihr Firehose-Name (Dieser Pilot verwendet`firehose_to_s3_stream`.)Argument 3= Ihr IAM-Rollenname (dieser Pilot verwendet.) `firehose_to_s3`<pre>python CreateFireHoseToS3.py <Your_S3_Bucket_ARN> firehose_to_s3_stream firehose_to_s3</pre>Wenn die angegebene IAM-Rolle nicht existiert, erstellt das Skript eine Rolle annehmen mit einer Richtlinie für vertrauenswürdige Beziehungen sowie eine Richtlinie, die ausreichende Amazon S3 S3-Berechtigungen gewährt. Beispiele für diese Richtlinien finden Sie im Abschnitt *Zusätzliche Informationen*. | Cloud-Architekt, App-Entwickler | 
| Überprüfen Sie den Firehose-Lieferstream. | Beschreiben Sie den Firehose-Lieferstream mithilfe der AWS-CLI, um zu überprüfen, ob der Lieferstream erfolgreich erstellt wurde.<pre>aws firehose describe-delivery-stream --delivery-stream-name firehose_to_s3_stream </pre> | Cloud-Architekt, App-Entwickler | 

### Erstellen Sie eine Lambda-Funktion zur Verarbeitung des Firehose-Lieferdatenstroms
<a name="create-a-lambda-function-to-process-the-akf-delivery-stream"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Vertrauensrichtlinie für die Lambda-Funktion. | Erstellen Sie eine Vertrauensrichtliniendatei mit den folgenden Informationen.<pre> {<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />      {<br />          "Effect": "Allow",<br />          "Principal": {<br />              "Service": "lambda.amazonaws.com"<br />           },<br />           "Action": "sts:AssumeRole"<br />      }<br />    ]<br />  } </pre>Dadurch erhält Ihre Funktion die Erlaubnis, auf AWS-Ressourcen zuzugreifen. | Cloud-Architekt, App-Entwickler | 
| Erstellen Sie eine Ausführungsrolle für die Lambda-Funktion. | Führen Sie den folgenden Code aus, um die Ausführungsrolle zu erstellen.<pre>aws iam create-role --role-name lambda-ex --assume-role-policy-document file://TrustPolicy.json</pre> | Cloud-Architekt, App-Entwickler | 
| Fügen Sie der Rolle eine Berechtigung hinzu. | Verwenden Sie den `attach-policy-to-role` Befehl, um der Rolle eine Berechtigung hinzuzufügen.<pre>aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaDynamoDBExecutionRole<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/AmazonKinesisFirehoseFullAccess<br />aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/IAMFullAccess </pre> | Cloud-Architekt, App-Entwickler | 
| Erstellen Sie eine Lambda-Funktion. | Komprimieren Sie die `LambdaStreamProcessor.py` Datei aus dem Code-Repository, indem Sie den folgenden Befehl ausführen.<pre>zip function.zip LambdaStreamProcessor.py</pre>Wenn Sie die Lambda-Funktion erstellen, benötigen Sie den ARN für die Lambda-Ausführungsrolle. Führen Sie den folgenden Code aus, um den ARN abzurufen.<pre>aws iam get-role \<br />--role-name lambda-ex </pre>Führen Sie den folgenden Code aus, um die Lambda-Funktion zu erstellen.<pre># Review the environment variables and replace them with your values.<br /><br />aws lambda create-function --function-name LambdaStreamProcessor \<br />--zip-file fileb://function.zip --handler LambdaStreamProcessor.handler --runtime python3.8 \<br />--role {Your Lamda Execution Role ARN}\<br />  --environment Variables="{firehose_name=firehose_to_s3_stream,bucket_arn = <Your_S3_bucket_ARN>,iam_role_name = firehose_to_s3, batch_size=400}"</pre> | Cloud-Architekt, App-Entwickler | 
| Konfigurieren Sie den Lambda-Funktionstrigger. | Verwenden Sie die AWS-CLI, um den Trigger (DynamoDB Streams) zu konfigurieren, der die Lambda-Funktion aufruft. Die Batchgröße von 400 soll verhindern, dass Lambda-Parallelitätsprobleme auftreten.<pre>aws lambda create-event-source-mapping --function-name LambdaStreamProcessor \<br />--batch-size 400 --starting-position LATEST \<br />--event-source-arn <Your Latest Stream ARN From DynamoDB Console></pre> | Cloud-Architekt, App-Entwickler | 

### Testen Sie die Funktionalität
<a name="test-the-functionality"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie Artikel mit abgelaufenen Zeitstempeln zur Reservierungstabelle hinzu. | Um die Funktionalität zu testen, fügen Sie der Tabelle Artikel mit abgelaufenen Epochenzeitstempeln hinzu. `Reservation` TTL löscht automatisch Elemente auf der Grundlage des Zeitstempels. Die Lambda-Funktion wird bei DynamoDB-Stream-Aktivitäten ausgelöst und filtert das Ereignis, um `REMOVE` Aktivitäten oder gelöschte Elemente zu identifizieren. Anschließend werden Datensätze im Batch-Format in Firehose Firehose-Lieferstream eingefügt.Der Firehose-Lieferstream überträgt Artikel mit dem `firehosetos3example/year=current year/month=current month/ day=current day/hour=current hour/` Präfix an einen S3-Ziel-Bucket.Um den Datenabruf zu optimieren, konfigurieren Sie Amazon S3 mit den `Prefix` und`ErrorOutputPrefix`, die im Abschnitt *Zusätzliche Informationen* detailliert beschrieben werden. | Cloud-Architekt  | 

### Säubere die Ressourcen
<a name="clean-up-the-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie alle Ressourcen. | Löschen Sie alle Ressourcen, um sicherzustellen, dass Ihnen keine Dienste in Rechnung gestellt werden, die Sie nicht nutzen.   | Cloud-Architekt, App-Entwickler | 

## Zugehörige Ressourcen
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-resources"></a>
+ [Verwalten Ihres Speicher-Lebenszyklus](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-lifecycle.html)
+ [Amazon S3 S3-Speicherklassen](https://aws.amazon.com/s3/storage-classes/)
+ [Dokumentation zum AWS-SDK SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html)

## Zusätzliche Informationen
<a name="automatically-archive-items-to-amazon-s3-using-dynamodb-ttl-additional"></a>

**Einen Firehose-Lieferstream erstellen und konfigurieren — Richtlinienbeispiele**

*Beispieldokument Firehose Firehose-Richtlinie für vertrauenswürdige Beziehungen*

```
firehose_assume_role = {
        'Version': '2012-10-17',
        'Statement': [
            {
                'Sid': '',
                'Effect': 'Allow',
                'Principal': {
                    'Service': 'firehose.amazonaws.com'
                },
                'Action': 'sts:AssumeRole'
            }
        ]
    }
```

*Beispiel für eine S3-Berechtigungsrichtlinie*

```
s3_access = {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "",
                "Effect": "Allow",
                "Action": [
                    "s3:AbortMultipartUpload",
                    "s3:GetBucketLocation",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:ListBucketMultipartUploads",
                    "s3:PutObject"
                ],
                "Resource": [
                    "{your s3_bucket ARN}/*",
                    "{Your s3 bucket ARN}"
                ]
            }
        ]
    }
```

**Testen Sie die Funktionalität — Amazon S3 S3-Konfiguration**

Die Amazon S3 S3-Konfiguration mit den folgenden Optionen `Prefix` wurde ausgewählt, um den Datenabruf zu optimieren. `ErrorOutputPrefix` 

*prefix*

```
firehosetos3example/year=! {timestamp: yyyy}/month=! {timestamp:MM}/day=! {timestamp:dd}/hour=!{timestamp:HH}/
```

Firehose erstellt zunächst einen Basisordner, der `firehosetos3example` direkt unter dem S3-Bucket aufgerufen wird. Anschließend werden die Ausdrücke`!{timestamp:yyyy}`,`!{timestamp:MM}`, und `!{timestamp:HH}` nach Jahr`!{timestamp:dd}`, Monat, Tag und Stunde im [DateTimeFormatter](https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html)Java-Format ausgewertet.

Ein ungefährer Ankunftszeitstempel von 1604683577 in der Unix-Epochenzeit ergibt beispielsweise,, und. `year=2020` `month=11` `day=06` `hour=05` Daher wird der Standort in Amazon S3, an den die Datensätze geliefert werden, ausgewertet. `firehosetos3example/year=2020/month=11/day=06/hour=05/`

*ErrorOutputPrefix*

```
firehosetos3erroroutputbase/!{firehose:random-string}/!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd}/
```

Die `ErrorOutputPrefix` Ergebnisse werden in einem Basisordner angezeigt, der `firehosetos3erroroutputbase` direkt unter dem S3-Bucket aufgerufen wird. Der Ausdruck `!{firehose:random-string}` ergibt eine zufällige 11-stellige Zeichenfolge wie. `ztWxkdg3Thg` Der Standort für ein Amazon S3 S3-Objekt, an das fehlerhafte Datensätze übermittelt werden, könnte ausgewertet werden`firehosetos3erroroutputbase/ztWxkdg3Thg/processing-failed/2020/11/06/`.

# Erstellen Sie eine serverlose Architektur mit mehreren Mandanten in Amazon Service OpenSearch
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service"></a>

*Tabby Ward und Nisha Gambhir, Amazon Web Services*

## Zusammenfassung
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-summary"></a>

Amazon OpenSearch Service ist ein verwalteter Service, der die Bereitstellung, den Betrieb und die Skalierung von Elasticsearch, einer beliebten Open-Source-Such- und Analyse-Engine, vereinfacht. OpenSearch Der Service bietet eine Freitextsuche sowie die Erfassung und das Dashboarding von Streaming-Daten wie Logs und Metriken nahezu in Echtzeit. 

Anbieter von Software as a Service (SaaS) nutzen OpenSearch Service häufig, um eine Vielzahl von Anwendungsfällen abzudecken, z. B. um Kundeninformationen auf skalierbare und sichere Weise zu gewinnen und gleichzeitig Komplexität und Ausfallzeiten zu reduzieren.

Die Verwendung von OpenSearch Service in einer Umgebung mit mehreren Mandanten bringt eine Reihe von Überlegungen mit sich, die sich auf die Partitionierung, Isolierung, Bereitstellung und Verwaltung Ihrer SaaS-Lösung auswirken. SaaS-Anbieter müssen überlegen, wie sie ihre Elasticsearch-Cluster bei sich ständig ändernden Workloads effektiv skalieren können. Sie müssen auch berücksichtigen, wie sich Stufenbildung und laute Nachbarschaftsbedingungen auf ihr Partitionierungsmodell auswirken könnten.

In diesem Muster werden die Modelle untersucht, die zur Darstellung und Isolierung von Mandantendaten mit Elasticsearch-Konstrukten verwendet werden. Darüber hinaus konzentriert sich das Muster auf eine einfache serverlose Referenzarchitektur als Beispiel, um die Indizierung und Suche mithilfe von OpenSearch Service in einer Umgebung mit mehreren Mandanten zu demonstrieren. Es implementiert das Pool-Datenpartitionierungsmodell, das denselben Index für alle Mandanten verwendet und gleichzeitig die Datenisolierung eines Mandanten gewährleistet. Dieses Muster verwendet die folgenden AWS Dienste: Amazon API Gateway AWS Lambda, Amazon Simple Storage Service (Amazon S3) und OpenSearch Service.

Weitere Informationen zum Poolmodell und anderen Datenpartitionierungsmodellen finden Sie im Abschnitt [Zusätzliche Informationen](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional).

## Voraussetzungen und Einschränkungen
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ [AWS Command Line Interface (AWS CLI) Version 2.x](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html), installiert und konfiguriert auf macOS, Linux oder Windows
+ [Python-Version 3.9](https://www.python.org/downloads/release/python-3921/)
+ [pip3](https://pip.pypa.io/en/stable/) — Der Python-Quellcode wird als ZIP-Datei bereitgestellt, die in einer Lambda-Funktion bereitgestellt wird. Wenn Sie den Code lokal verwenden oder anpassen möchten, gehen Sie wie folgt vor, um den Quellcode zu entwickeln und neu zu kompilieren:

  1. Generieren Sie die `requirements.txt` Datei, indem Sie den folgenden Befehl im selben Verzeichnis wie die Python-Skripte ausführen: `pip3 freeze > requirements.txt`

  1. Installieren Sie die Abhängigkeiten: `pip3 install -r requirements.txt`

**Einschränkungen**
+ Dieser Code läuft in Python und unterstützt derzeit keine anderen Programmiersprachen. 
+ Die Beispielanwendung bietet keine AWS regionsübergreifende Unterstützung oder Unterstützung für Disaster Recovery (DR). 
+ Dieses Muster dient nur zu Demonstrationszwecken. Es ist nicht für die Verwendung in einer Produktionsumgebung vorgesehen.

## Architektur
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-architecture"></a>

Das folgende Diagramm veranschaulicht die allgemeine Architektur dieses Musters. Die Architektur umfasst Folgendes:
+ Lambda zum Indizieren und Abfragen des Inhalts 
+ OpenSearch Dienst zur Durchführung der Suche 
+ API Gateway zur Bereitstellung einer API-Interaktion mit dem Benutzer
+ Amazon S3 zum Speichern von Rohdaten (nicht indexiert)
+ Amazon CloudWatch zur Überwachung von Protokollen
+ AWS Identity and Access Management (IAM), um Mandantenrollen und Richtlinien zu erstellen

![\[Serverlose Mehrmandanten-Architektur auf hohem Niveau.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/1a8501e7-0776-4aca-aed3-28e3ada1d15d.png)


**Automatisierung und Skalierung**

Der Einfachheit halber wird das Muster für AWS CLI die Bereitstellung der Infrastruktur und für die Bereitstellung des Beispielcodes verwendet. Sie können eine CloudFormation Vorlage oder AWS Cloud Development Kit (AWS CDK) Skripts erstellen, um das Muster zu automatisieren.

## Tools
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-tools"></a>

**AWS-Services**
+ [AWS CLI](https://aws.amazon.com/cli/)ist ein einheitliches Tool zur Verwaltung AWS-Services von Ressourcen mithilfe von Befehlen in Ihrer Befehlszeilen-Shell.
+ [Lambda](https://aws.amazon.com/lambda/) ist ein Rechendienst, mit dem Sie Code ausführen können, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde.
+ [API Gateway](https://aws.amazon.com/api-gateway/) dient AWS-Service zum Erstellen, Veröffentlichen, Verwalten, Überwachen und Sichern von REST, HTTP und WebSocket APIs in jeder Größenordnung.
+ [Amazon S3](https://aws.amazon.com/s3/) ist ein Objektspeicherservice, mit dem Sie jederzeit und von überall im Internet eine beliebige Menge an Informationen speichern und abrufen können.
+ [OpenSearch Service](https://aws.amazon.com/opensearch-service/) ist ein vollständig verwalteter Service, der es Ihnen leicht macht, Elasticsearch kostengünstig und skalierbar bereitzustellen, zu sichern und auszuführen.

**Code**

Der Anhang enthält Beispieldateien für dieses Muster. Dazu zählen:
+ `index_lambda_package.zip`— Die Lambda-Funktion für die Indizierung von Daten im OpenSearch Service mithilfe des Poolmodells.
+ `search_lambda_package.zip`— Die Lambda-Funktion für die Suche nach Daten im OpenSearch Service.
+ `Tenant-1-data`— Beispiel für Rohdaten (nicht indexiert) für Tenant-1.
+ `Tenant-2-data`— Stichprobe von Rohdaten (nicht indexiert) für Tenant-2.

**Wichtig**  
Die Geschichten in diesem Muster enthalten AWS CLI Befehlsbeispiele, die für Unix, Linux und macOS formatiert sind. Ersetzen Sie unter Windows den umgekehrten Schrägstrich (\$1), das Unix-Fortsetzungszeichen, am Ende jeder Zeile durch ein Caret-Zeichen oder Zirkumflex (^).

**Anmerkung**  
Ersetzen Sie in AWS CLI Befehlen alle Werte in den spitzen Klammern (<>) durch korrekte Werte.

## Epen
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-epics"></a>

### Erstellen und konfigurieren Sie einen S3-Bucket
<a name="create-and-configure-an-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | Erstellen Sie einen S3-Bucket in Ihrem AWS-Region. Dieser Bucket enthält die nicht indizierten Mandantendaten für die Beispielanwendung. Stellen Sie sicher, dass der Name des S3-Buckets global eindeutig ist, da der Namespace von allen gemeinsam genutzt wird. AWS-KontenUm einen S3-Bucket zu erstellen, können Sie den Befehl AWS CLI [create-bucket](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/create-bucket.html) wie folgt verwenden:<pre>aws s3api create-bucket \<br />  --bucket <tenantrawdata> \<br />  --region <your-AWS-Region></pre>wo `tenantrawdata` ist der Name des S3-Buckets. (Sie können jeden eindeutigen Namen verwenden, [der den Richtlinien zur Benennung von Buckets entspricht](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html).) | Cloud-Architekt, Cloud-Administrator | 

### Erstellen und konfigurieren Sie einen Elasticsearch-Cluster
<a name="create-and-configure-an-elasticsearch-cluster"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine OpenSearch Dienstdomäne. | Führen Sie den AWS CLI [create-elasticsearch-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/es/create-elasticsearch-domain.html)Befehl aus, um eine OpenSearch Dienstdomäne zu erstellen:<pre>aws es create-elasticsearch-domain \<br />  --domain-name vpc-cli-example \<br />  --elasticsearch-version 7.10 \<br />  --elasticsearch-cluster-config InstanceType=t3.medium.elasticsearch,InstanceCount=1 \<br />  --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=10 \<br />  --domain-endpoint-options "{\"EnforceHTTPS\": true}" \<br />  --encryption-at-rest-options "{\"Enabled\": true}" \<br />  --node-to-node-encryption-options "{\"Enabled\": true}" \<br />  --advanced-security-options "{\"Enabled\": true, \"InternalUserDatabaseEnabled\": true, \<br />    \"MasterUserOptions\": {\"MasterUserName\": \"KibanaUser\", \<br />    \"MasterUserPassword\": \"NewKibanaPassword@123\"}}" \<br />  --vpc-options "{\"SubnetIds\": [\"<subnet-id>\"], \"SecurityGroupIds\": [\"<sg-id>\"]}" \<br />  --access-policies "{\"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \ <br />    \"Principal\": {\"AWS\": \"*\" }, \"Action\":\"es:*\", \<br />    \"Resource\": \"arn:aws:es:<region>:<account-id>:domain\/vpc-cli-example\/*\" } ] }"</pre>Die Anzahl der Instanzen ist auf 1 gesetzt, da die Domäne zu Testzwecken dient. Sie müssen mithilfe des `advanced-security-options` Parameters eine differenzierte Zugriffskontrolle aktivieren, da die Details nach der Erstellung der Domäne nicht mehr geändert werden können. Dieser Befehl erstellt einen Master-Benutzernamen (`KibanaUser`) und ein Passwort, mit denen Sie sich bei der Kibana-Konsole anmelden können.Da die Domain Teil einer Virtual Private Cloud (VPC) ist, müssen Sie sicherstellen, dass Sie die Elasticsearch-Instanz erreichen können, indem Sie die zu verwendende Zugriffsrichtlinie angeben.Weitere Informationen finden Sie in der AWS Dokumentation unter [Starten Ihrer Amazon OpenSearch Service-Domains innerhalb einer VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html). | Cloud-Architekt, Cloud-Administrator | 
| Richten Sie einen Bastion-Host ein. | Richten Sie eine Amazon Elastic Compute Cloud (Amazon EC2) Windows-Instance als Bastion-Host für den Zugriff auf die Kibana-Konsole ein. Die Elasticsearch-Sicherheitsgruppe muss Datenverkehr von der EC2 Amazon-Sicherheitsgruppe zulassen. Eine Anleitung finden Sie im Blogbeitrag [Controlling Network Access to EC2 Instances Using a Bastion Server.](https://aws.amazon.com/blogs/security/controlling-network-access-to-ec2-instances-using-a-bastion-server/)Wenn der Bastion-Host eingerichtet wurde und Sie die Sicherheitsgruppe, die der Instance zugeordnet ist, verfügbar haben, verwenden Sie den AWS CLI [authorize-security-group-ingress](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/authorize-security-group-ingress.html)Befehl, um der Elasticsearch-Sicherheitsgruppe die Erlaubnis hinzuzufügen, Port 443 von der Amazon-Sicherheitsgruppe EC2 (Bastion Host) zuzulassen.<pre>aws ec2 authorize-security-group-ingress \<br />  --group-id <SecurityGroupIdfElasticSearch> \ <br />  --protocol tcp \<br />  --port 443 \<br />  --source-group <SecurityGroupIdfBashionHostEC2></pre> | Cloud-Architekt, Cloud-Administrator | 

### Erstellen und konfigurieren Sie die Lambda-Index-Funktion
<a name="create-and-configure-the-lam-index-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Lambda-Ausführungsrolle. | Führen Sie den Befehl AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) aus, um der Lambda-Indexfunktion Zugriff auf und Ressourcen zu AWS-Services gewähren:<pre>aws iam create-role \<br />  --role-name index-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>wo `lambda_assume_role.json` ist ein JSON-Dokument, das der Lambda-Funktion wie folgt `AssumeRole` Berechtigungen gewährt:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />         {<br />             "Effect": "Allow",<br />             "Principal": {<br />                 "Service": "lambda.amazonaws.com"<br />               },<br />             "Action": "sts:AssumeRole"<br />         }<br />     ]<br /> }</pre> | Cloud-Architekt, Cloud-Administrator | 
| Hängen Sie verwaltete Richtlinien an die Lambda-Rolle an. | Führen Sie den AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)Befehl aus, um verwaltete Richtlinien an die im vorherigen Schritt erstellte Rolle anzuhängen. Diese beiden Richtlinien gewähren der Rolle Berechtigungen zum Erstellen einer elastic network interface und zum Schreiben von Protokollen in CloudWatch Logs.<pre>aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br /><br />aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole </pre> | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie eine Richtlinie, um der Lambda-Indexfunktion die Berechtigung zum Lesen der S3-Objekte zu erteilen. | Führen Sie den Befehl AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) aus, um der Lambda-Indexfunktion die `s3:GetObject` Erlaubnis zu erteilen, die Objekte im S3-Bucket zu lesen:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3-policy.json</pre>Bei der Datei `s3-policy.json` handelt es sich um ein unten gezeigtes JSON-Dokument, das `s3:GetObject` Berechtigungen für den Lesezugriff auf S3-Objekte gewährt. Wenn Sie bei der Erstellung des S3-Buckets einen anderen Namen verwendet haben, geben Sie im `Resource ` Abschnitt den richtigen Bucket-Namen an:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />           "Effect": "Allow",<br />           "Action": "s3:GetObject",<br />           "Resource": "arn:aws:s3:::<tenantrawdata>/*"<br />        }<br />    ]<br />}</pre> | Cloud-Architekt, Cloud-Administrator | 
| Hängen Sie die Amazon S3 S3-Berechtigungsrichtlinie an die Lambda-Ausführungsrolle an. | Führen Sie den AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)Befehl aus, um die Amazon S3 S3-Berechtigungsrichtlinie, die Sie im vorherigen Schritt erstellt haben, an die Lambda-Ausführungsrolle anzuhängen:<pre>aws iam attach-role-policy \<br />  --role-name index-lambda-role \<br />  --policy-arn <PolicyARN></pre>wo `PolicyARN` ist der Amazon-Ressourcenname (ARN) der Amazon S3-Genehmigungsrichtlinie. Sie können diesen Wert aus der Ausgabe des vorherigen Befehls abrufen. | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie die Lambda-Index-Funktion. | Führen Sie den Befehl AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) aus, um die Lambda-Indexfunktion zu erstellen, die auf Service zugreift: OpenSearch <pre>aws lambda create-function \<br />  --function-name index-lambda-function \<br />  --zip-file fileb://index_lambda_package.zip \<br />  --handler lambda_index.lambda_handler \<br />  --runtime python3.9 \<br />  --role "arn:aws:iam::account-id:role/index-lambda-role" \<br />  --timeout 30 \<br />  --vpc-config "{\"SubnetIds\": [\"<subnet-id1\>", \"<subnet-id2>\"], \<br />    \"SecurityGroupIds\": [\"<sg-1>\"]}"</pre> | Cloud-Architekt, Cloud-Administrator | 
| Erlauben Sie Amazon S3, die Lambda-Index-Funktion aufzurufen. | Führen Sie den Befehl AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) aus, um Amazon S3 die Erlaubnis zu erteilen, die Lambda-Index-Funktion aufzurufen:<pre>aws lambda add-permission \<br />  --function-name index-lambda-function \<br />  --statement-id s3-permissions \<br />  --action lambda:InvokeFunction \<br />  --principal s3.amazonaws.com \<br />  --source-arn "arn:aws:s3:::<tenantrawdata>" \<br />  --source-account "<account-id>" </pre> | Cloud-Architekt, Cloud-Administrator | 
| Fügen Sie einen Lambda-Trigger für das Amazon S3 S3-Ereignis hinzu. | Führen Sie den AWS CLI [put-bucket-notification-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-bucket-notification-configuration.html)Befehl aus, um Benachrichtigungen an die Lambda-Indexfunktion zu senden, wenn das Amazon S3 `ObjectCreated` S3-Ereignis erkannt wird. Die Indexfunktion wird immer dann ausgeführt, wenn ein Objekt in den S3-Bucket hochgeladen wird. <pre>aws s3api put-bucket-notification-configuration \<br />  --bucket <tenantrawdata> \<br />  --notification-configuration file://s3-trigger.json</pre>Die Datei `s3-trigger.json` ist ein JSON-Dokument im aktuellen Ordner, das die Ressourcenrichtlinie zur Lambda-Funktion hinzufügt, wenn das Amazon S3 `ObjectCreated` S3-Ereignis eintritt. | Cloud-Architekt, Cloud-Administrator | 

### Lambda-Suchfunktion erstellen und konfigurieren
<a name="create-and-configure-the-lam-search-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Lambda-Ausführungsrolle. | Führen Sie den Befehl AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) aus, um der Lambda-Suchfunktion Zugriff auf und Ressourcen zu AWS-Services gewähren:<pre>aws iam create-role \<br />  --role-name search-lambda-role \<br />  --assume-role-policy-document file://lambda_assume_role.json</pre>wo `lambda_assume_role.json` befindet sich ein JSON-Dokument im aktuellen Ordner, das der Lambda-Funktion wie folgt `AssumeRole` Berechtigungen gewährt:<pre>{<br />     "Version": "2012-10-17",		 	 	 <br />     "Statement": [<br />         {<br />             "Effect": "Allow",<br />             "Principal": {<br />                 "Service": "lambda.amazonaws.com"<br />               },<br />             "Action": "sts:AssumeRole"<br />         }<br />     ]<br /> }</pre> | Cloud-Architekt, Cloud-Administrator | 
| Hängen Sie verwaltete Richtlinien an die Lambda-Rolle an. | Führen Sie den AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)Befehl aus, um verwaltete Richtlinien an die im vorherigen Schritt erstellte Rolle anzuhängen. Diese beiden Richtlinien gewähren der Rolle Berechtigungen zum Erstellen einer elastic network interface und zum Schreiben von Protokollen in CloudWatch Logs.<pre>aws iam attach-role-policy \<br />  --role-name search-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole<br /><br />aws iam attach-role-policy \<br />  --role-name search-lambda-role \<br />  --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole </pre> | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie die Lambda-Suchfunktion. | Führen Sie den Befehl AWS CLI [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) aus, um die Lambda-Suchfunktion zu erstellen, die auf Service zugreift: OpenSearch <pre>aws lambda create-function \<br />  --function-name search-lambda-function \<br />  --zip-file fileb://search_lambda_package.zip \<br />  --handler lambda_search.lambda_handler \<br />  --runtime python3.9 \<br />  --role "arn:aws:iam::account-id:role/search-lambda-role" \<br />  --timeout 30 \<br />  --vpc-config "{\"SubnetIds\": [\"<subnet-id1\>", \"<subnet-id2>\"], \<br />    \"SecurityGroupIds\": [\"<sg-1>\"]}"</pre> | Cloud-Architekt, Cloud-Administrator | 

### Mandantenrollen erstellen und konfigurieren
<a name="create-and-configure-tenant-roles"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Mandanten-IAM-Rollen. | Führen Sie den Befehl AWS CLI [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) aus, um zwei Mandantenrollen zu erstellen, die zum Testen der Suchfunktion verwendet werden:<pre>aws iam create-role \<br />  --role-name Tenant-1-role \<br />  --assume-role-policy-document file://assume-role-policy.json</pre><pre>aws iam create-role \<br />  --role-name Tenant-2-role \<br />  --assume-role-policy-document file://assume-role-policy.json</pre>Die Datei `assume-role-policy.json` ist ein JSON-Dokument im aktuellen Ordner, das der Lambda-Ausführungsrolle `AssumeRole` Berechtigungen gewährt:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                 "AWS": "<Lambda execution role for index function>",<br />                 "AWS": "<Lambda execution role for search function>"<br />             },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}</pre> | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie eine IAM-Richtlinie für Mandanten. | Führen Sie den Befehl AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) aus, um eine Mandantenrichtlinie zu erstellen, die Zugriff auf Elasticsearch-Operationen gewährt:<pre>aws iam create-policy \<br />  --policy-name tenant-policy \<br />  --policy-document file://policy.json</pre>Die Datei `policy.json` ist ein JSON-Dokument im aktuellen Ordner, das Berechtigungen für Elasticsearch gewährt:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "es:ESHttpDelete",<br />                "es:ESHttpGet",<br />                "es:ESHttpHead",<br />                "es:ESHttpPost",<br />                "es:ESHttpPut",<br />                "es:ESHttpPatch"<br />            ],<br />            "Resource": [<br />                "<ARN of Elasticsearch domain created earlier>"<br />            ]<br />        }<br />    ]<br />}</pre> | Cloud-Architekt, Cloud-Administrator | 
| Hängen Sie die Mandanten-IAM-Richtlinie an die Mandantenrollen an. | Führen Sie den AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)Befehl aus, um die Mandanten-IAM-Richtlinie an die beiden Mandantenrollen anzuhängen, die Sie im vorherigen Schritt erstellt haben:<pre>aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/tenant-policy \<br />  --role-name Tenant-1-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/tenant-policy \<br />  --role-name Tenant-2-role</pre>Der Richtlinien-ARN stammt aus der Ausgabe des vorherigen Schritts. | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie eine IAM-Richtlinie, um Lambda Berechtigungen zur Übernahme einer Rolle zu erteilen. | Führen Sie den Befehl AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) aus, um eine Richtlinie zu erstellen, damit Lambda die Mandantenrolle übernimmt:<pre>aws iam create-policy \<br />  --policy-name assume-tenant-role-policy \<br />  --policy-document file://lambda_policy.json</pre>Die Datei `lambda_policy.json` ist ein JSON-Dokument im aktuellen Ordner, das Berechtigungen gewährt für: `AssumeRole`<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />       {<br />            "Effect": "Allow",<br />            "Action":  "sts:AssumeRole",<br />            "Resource": "<ARN of tenant role created earlier>"<br />       }<br />    ]<br />}</pre>Denn Sie können ein Platzhalterzeichen verwenden`Resource`, um zu vermeiden, dass für jeden Mandanten eine neue Richtlinie erstellt wird. | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie eine IAM-Richtlinie, um der Lambda-Indexrolle Zugriff auf Amazon S3 zu gewähren. | Führen Sie den Befehl AWS CLI [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) aus, um der Lambda-Indexrolle die Erlaubnis zu erteilen, auf die Objekte im S3-Bucket zuzugreifen:<pre>aws iam create-policy \<br />  --policy-name s3-permission-policy \<br />  --policy-document file://s3_lambda_policy.json</pre>Bei der Datei `s3_lambda_policy.json` handelt es sich um das folgende JSON-Richtliniendokument im aktuellen Ordner:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": "s3:GetObject",<br />            "Resource": "arn:aws:s3:::tenantrawdata/*"<br />        }<br />    ]<br />}</pre> | Cloud-Architekt, Cloud-Administrator | 
| Hängen Sie die Richtlinie an die Lambda-Ausführungsrolle an. | Führen Sie den AWS CLI [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html)Befehl aus, um die im vorherigen Schritt erstellte Richtlinie an die zuvor erstellten Lambda-Index- und Suchausführungsrollen anzuhängen:<pre>aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/assume-tenant-role-policy \<br />  --role-name index-lambda-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/assume-tenant-role-policy \<br />  --role-name search-lambda-role<br /><br />aws iam attach-role-policy \<br />  --policy-arn arn:aws:iam::account-id:policy/s3-permission-policy \<br />  --role-name index-lambda-role</pre>Der Richtlinien-ARN stammt aus der Ausgabe des vorherigen Schritts. | Cloud-Architekt, Cloud-Administrator | 

### Erstellen und konfigurieren Sie eine Such-API
<a name="create-and-configure-a-search-api"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine REST-API in API Gateway. | Führen Sie den AWS CLI [create-rest-api](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-rest-api.html)Befehl aus, um eine REST-API-Ressource zu erstellen:<pre>aws apigateway create-rest-api \<br />  --name Test-Api \<br />  --endpoint-configuration "{ \"types\": [\"REGIONAL\"] }"</pre>Für den Endpunkt-Konfigurationstyp können Sie angeben, `REGIONAL` dass `EDGE` anstelle eines bestimmten Kantenstandorts verwendet werden soll AWS-Region.Notieren Sie sich den Wert des `id` Felds aus der Befehlsausgabe. Dies ist die API-ID, die Sie in nachfolgenden Befehlen verwenden werden. | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie eine Ressource für die Such-API. | Die Such-API-Ressource startet die Lambda-Suchfunktion mit dem Ressourcennamen`search`. (Sie müssen keine API für die Lambda-Indexfunktion erstellen, da sie automatisch ausgeführt wird, wenn Objekte in den S3-Bucket hochgeladen werden.)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie eine GET-Methode für die Such-API. | Führen Sie den Befehl AWS CLI [put-method](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method.html) aus, um eine `GET ` Methode für die Such-API zu erstellen:<pre>aws apigateway put-method \<br />  --rest-api-id <API-ID> \<br />  --resource-id <ID from the previous command output> \<br />  --http-method GET \<br />  --authorization-type "NONE" \<br />  --no-api-key-required</pre>Geben Sie für `resource-id` die ID aus der Ausgabe des `create-resource` Befehls an. | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie eine Methodenantwort für die Such-API. | Führen Sie den AWS CLI [put-method-response](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-method-response.html)Befehl aus, um eine Methodenantwort für die Such-API hinzuzufügen:<pre>aws apigateway put-method-response \<br />  --rest-api-id <API-ID> \<br />  --resource-id  <ID from the create-resource command output> \<br />  --http-method GET \<br />  --status-code 200 \<br />  --response-models "{\"application/json\": \"Empty\"}"</pre>Geben Sie für `resource-id` die ID aus der Ausgabe des vorherigen `create-resource` Befehls an. | Cloud-Architekt, Cloud-Administrator | 
| Richten Sie eine Proxy-Lambda-Integration für die Such-API ein. | Führen Sie den Befehl AWS CLI [put-integration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/put-integration.html) aus, um eine Integration mit der Lambda-Suchfunktion einzurichten:<pre>aws apigateway put-integration \<br />  --rest-api-id <API-ID> \<br />  --resource-id  <ID from the create-resource command output> \<br />  --http-method GET \<br />  --type AWS_PROXY \<br />  --integration-http-method GET \<br />  --uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/arn:aws:lambda:<region>:<account-id>:function:<function-name>/invocations</pre>Geben Sie für `resource-id` die ID aus dem vorherigen Befehl an. `create-resource` | Cloud-Architekt, Cloud-Administrator | 
| Erteilen Sie API Gateway die Erlaubnis, die Lambda-Suchfunktion aufzurufen. | Führen Sie den Befehl AWS CLI [add-permission](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/add-permission.html) aus, um API Gateway die Erlaubnis zu erteilen, die Suchfunktion zu verwenden:<pre>aws lambda add-permission \<br />  --function-name <function-name> \<br />  --statement-id apigateway-get \<br />  --action lambda:InvokeFunction \<br />  --principal apigateway.amazonaws.com \<br />  --source-arn "arn:aws:execute-api:<region>:<account-id>:api-id/*/GET/search</pre>Ändern Sie den `source-arn` Pfad, wenn Sie anstelle von `search` einen anderen API-Ressourcennamen verwendet haben. | Cloud-Architekt, Cloud-Administrator | 
| Stellen Sie die Such-API bereit. | Führen Sie den Befehl AWS CLI [create-deployment](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/apigateway/create-deployment.html) aus, um eine Staging-Ressource mit dem Namen zu erstellen: `dev`<pre>aws apigateway create-deployment \<br />  --rest-api-id <API-ID> \<br />  --stage-name dev</pre>Wenn Sie die API aktualisieren, können Sie sie mit demselben AWS CLI Befehl erneut in derselben Phase bereitstellen. | Cloud-Architekt, Cloud-Administrator | 

### Kibana-Rollen erstellen und konfigurieren
<a name="create-and-configure-kibana-roles"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Loggen Sie sich in die Kibana-Konsole ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Cloud-Architekt, Cloud-Administrator | 
| Erstellen und konfigurieren Sie Kibana-Rollen. | Um Daten zu isolieren und sicherzustellen, dass ein Mandant die Daten eines anderen Mandanten nicht abrufen kann, müssen Sie Document Security verwenden, sodass Mandanten nur auf Dokumente zugreifen können, die ihre Mandanten-ID enthalten.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html) | Cloud-Architekt, Cloud-Administrator | 
| Ordnen Sie Benutzer Rollen zu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Wir empfehlen Ihnen, die Erstellung der Mandanten- und Kibana-Rollen beim Onboarding des Mandanten zu automatisieren. | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie den Mieterdatenindex. | Wählen Sie im Navigationsbereich unter **Verwaltung** die Option **Dev Tools** aus, und führen Sie dann den folgenden Befehl aus. Mit diesem Befehl wird der `tenant-data` Index erstellt, um die Zuordnung für die `TenantId` Eigenschaft zu definieren.<pre>PUT /tenant-data<br />{<br />  "mappings": {<br />    "properties": {<br />      "TenantId": { "type": "keyword"}<br />    }<br />  }<br />}</pre> | Cloud-Architekt, Cloud-Administrator | 

### VPC-Endpunkte für Amazon S3 erstellen und AWS STS
<a name="create-vpc-endpoints-for-s3-and-sts"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen VPC-Endpunkt für Amazon S3. | Führen Sie den AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)Befehl aus, um einen VPC-Endpunkt für Amazon S3 zu erstellen. Der Endpunkt ermöglicht der Lambda-Index-Funktion in der VPC den Zugriff auf Amazon S3.<pre>aws ec2 create-vpc-endpoint \<br />  --vpc-id <VPC-ID> \<br />  --service-name com.amazonaws.us-east-1.s3 \<br />  --route-table-ids <route-table-ID></pre>Geben Sie für `vpc-id` die VPC an, die Sie für die Lambda-Indexfunktion verwenden. Verwenden Sie für `service-name` die richtige URL für den Amazon S3 S3-Endpunkt. Geben Sie für `route-table-ids` die Routentabelle an, die dem VPC-Endpunkt zugeordnet ist. | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie einen VPC-Endpunkt für AWS STS. | Führen Sie den AWS CLI [create-vpc-endpoint](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-vpc-endpoint.html)Befehl aus, um einen VPC-Endpunkt für AWS -Security-Token-Service (AWS STS) zu erstellen. Der Endpunkt ermöglicht den Zugriff auf den Lambda-Index und die Suchfunktionen in der VPC. AWS STS Die Funktionen verwenden AWS STS , wenn sie die IAM-Rolle übernehmen.<pre>aws ec2 create-vpc-endpoint \<br />  --vpc-id <VPC-ID> \<br />  --vpc-endpoint-type Interface \<br />  --service-name com.amazonaws.us-east-1.sts \<br />  --subnet-id <subnet-ID> \<br />  --security-group-id <security-group-ID></pre>Geben Sie für `vpc-id` die VPC an, die Sie für den Lambda-Index und die Suchfunktionen verwenden. Geben Sie für das Subnetz an`subnet-id`, in dem dieser Endpunkt erstellt werden soll. Geben Sie für die Sicherheitsgruppe an`security-group-id`, der dieser Endpunkt zugeordnet werden soll. (Es könnte dasselbe sein wie die Sicherheitsgruppe, die Lambda verwendet.) | Cloud-Architekt, Cloud-Administrator | 

### Testen Sie Mehrmandantenfähigkeit und Datenisolierung
<a name="test-multi-tenancy-and-data-isolation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren Sie die Python-Dateien für die Index- und Suchfunktionen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Sie können den Elasticsearch-Endpunkt auf der Registerkarte „**Übersicht**“ der OpenSearch Service-Konsole abrufen. Er hat das Format`<AWS-Region>.es.amazonaws.com`. | Cloud-Architekt, App-Entwickler | 
| Aktualisieren Sie den Lambda-Code. | Verwenden Sie den AWS CLI [update-function-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html)Befehl, um den Lambda-Code mit den Änderungen zu aktualisieren, die Sie an den Python-Dateien vorgenommen haben:<pre>aws lambda update-function-code \<br />  --function-name index-lambda-function \<br />  --zip-file fileb://index_lambda_package.zip<br /><br />aws lambda update-function-code \<br />  --function-name search-lambda-function \<br />  --zip-file fileb://search_lambda_package.zip</pre> | Cloud-Architekt, App-Entwickler | 
| Laden Sie Rohdaten in den S3-Bucket hoch. | Verwenden Sie den Befehl AWS CLI [cp](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html), um Daten für die Objekte Tenant-1 und Tenant-2 in den `tenantrawdata` Bucket hochzuladen (geben Sie den Namen des S3-Buckets an, den Sie zu diesem Zweck erstellt haben):<pre>aws s3 cp tenant-1-data s3://tenantrawdata<br />aws s3 cp tenant-2-data s3://tenantrawdata</pre>Der S3-Bucket ist so eingerichtet, dass er die Lambda-Indexfunktion jedes Mal ausführt, wenn Daten hochgeladen werden, sodass das Dokument in Elasticsearch indexiert wird. | Cloud-Architekt, Cloud-Administrator | 
| Suchen Sie Daten von der Kibana-Konsole aus. | Führen Sie auf der Kibana-Konsole die folgende Abfrage aus:<pre>GET tenant-data/_search</pre>Diese Abfrage zeigt alle in Elasticsearch indexierten Dokumente an. In diesem Fall sollten Sie zwei separate Dokumente für Tenant-1 und Tenant-2 sehen. | Cloud-Architekt, Cloud-Administrator | 
| Testen Sie die Such-API von API Gateway aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service.html)Bildschirmdarstellungen finden Sie im Abschnitt [Zusätzliche Informationen](#build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional). | Cloud-Architekt, App-Entwickler | 
| Bereinigen Sie die Ressourcen. | Bereinigen Sie alle Ressourcen, die Sie erstellt haben, um zusätzliche Gebühren für Ihr Konto zu vermeiden. | AWS DevOps, Cloud-Architekt, Cloud-Administrator | 

## Zugehörige Ressourcen
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-resources"></a>
+ [AWS SDK für Python (Boto)](https://aws.amazon.com/sdk-for-python/)
+ [AWS Lambda Dokumentation](https://docs.aws.amazon.com/lambda/)
+ [API Gateway Gateway-Dokumentation](https://docs.aws.amazon.com/apigateway/)
+ [Amazon S3 S3-Dokumentation](https://docs.aws.amazon.com/s3/)
+ [Amazon OpenSearch Service-Dokumentation](https://docs.aws.amazon.com/elasticsearch-service/)
  + [Feinkörnige Zugriffskontrolle in Amazon Service OpenSearch ](https://docs.amazonaws.cn/en_us/elasticsearch-service/latest/developerguide/fgac.html)
  + [Eine Suchanwendung mit Amazon OpenSearch Service erstellen](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/search-example.html)
  + [Starten Ihrer Amazon OpenSearch Service-Domains innerhalb einer VPC](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html)

## Zusätzliche Informationen
<a name="build-a-multi-tenant-serverless-architecture-in-amazon-opensearch-service-additional"></a>

**Modelle zur Datenpartitionierung**

Es gibt drei gängige Datenpartitionierungsmodelle, die in Systemen mit mehreren Mandanten verwendet werden: Silo, Pool und Hybrid. Welches Modell Sie wählen, hängt von den Anforderungen Ihrer Umgebung in Bezug auf Compliance, Noisy Neighbor, Betrieb und Isolierung ab.

*Silo-Modell*

Im Silomodell werden die Daten jedes Mandanten in einem eigenen Speicherbereich gespeichert, in dem es nicht zu einer Vermischung von Mandantendaten kommt. Sie können zwei Ansätze verwenden, um das Silomodell mit OpenSearch Service zu implementieren: Domäne pro Mandant und Index pro Mandant.
+ **Domain pro Mandant** — Sie können pro Mandant eine separate OpenSearch Service-Domain (gleichbedeutend mit einem Elasticsearch-Cluster) verwenden. Die Platzierung jedes Mandanten in einer eigenen Domain bietet alle Vorteile, die mit der Speicherung von Daten in einem eigenständigen Konstrukt verbunden sind. Dieser Ansatz bringt jedoch Herausforderungen in Bezug auf Management und Agilität mit sich. Aufgrund seines dezentralen Charakters ist es schwieriger, den betrieblichen Zustand und die Aktivität der Mieter zu aggregieren und zu bewerten. Dies ist eine kostspielige Option, bei der jede OpenSearch Dienstdomäne mindestens über drei Masterknoten und zwei Datenknoten für Produktionsworkloads verfügen muss.

![\[Silomodell „Domäne pro Mandant“ für serverlose Architekturen mit mehreren Mandanten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2195f82-e5ed-40bb-b76a-3b0210bf1254.png)


 
+ **Index pro Mandant** — Sie können Mandantendaten in separaten Indizes innerhalb eines Serviceclusters platzieren. OpenSearch Bei diesem Ansatz verwenden Sie bei der Erstellung und Benennung des Indexes eine Mandanten-ID, indem Sie die Mandanten-ID dem Indexnamen voranstellen. Der Ansatz „Index pro Mandant“ hilft Ihnen dabei, Ihre Siloziele zu erreichen, ohne für jeden Mandanten einen komplett separaten Cluster einzuführen. Es kann jedoch zu Speicherauslastung kommen, wenn die Anzahl der Indizes zunimmt, da für diesen Ansatz mehr Shards erforderlich sind und der Master-Knoten für mehr Zuweisung und Neuverteilung zuständig sein muss.

![\[Silo-Modell mit Index pro Mandant für serverlose Architekturen mit mehreren Mandanten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/354a9463-25bb-422b-84de-d4875a7c8ea2.png)


 

**Isolierung im Silomodell — Im Silomodell** verwenden Sie IAM-Richtlinien, um die Domänen oder Indizes zu isolieren, die die Daten der einzelnen Mandanten enthalten. Diese Richtlinien verhindern, dass ein Mandant auf die Daten eines anderen Mandanten zugreift. Um Ihr Silo-Isolationsmodell zu implementieren, können Sie eine ressourcenbasierte Richtlinie erstellen, die den Zugriff auf Ihre Mandantenressource steuert. Dabei handelt es sich häufig um eine Domain-Zugriffsrichtlinie, die festlegt, welche Aktionen ein Principal an den Unterressourcen der Domain durchführen kann, einschließlich Elasticsearch-Indizes und. APIs Mit identitätsbasierten IAM-Richtlinien können Sie *zulässige* oder *verweigerte Aktionen für die Domain, Indizes* oder innerhalb von Service angeben. APIs OpenSearch Das `Action` Element einer IAM-Richtlinie beschreibt die spezifischen Aktionen, die durch die Richtlinie zugelassen oder verweigert werden, und das `Principal ` Element gibt die betroffenen Konten, Benutzer oder Rollen an.

Die folgende Beispielrichtlinie gewährt Tenant-1 vollen Zugriff (wie von angegeben`es:*`) nur auf die Unterressourcen in der Domäne. `tenant-1` Das nachstehende `/*` `Resource` Element weist darauf hin, dass diese Richtlinie für die Unterressourcen der Domain gilt, nicht für die Domain selbst. Wenn diese Richtlinie in Kraft ist, dürfen Mandanten keine neue Domäne erstellen oder Einstellungen für eine bestehende Domäne ändern.

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::<aws-account-id>:user/Tenant-1"
         },
         "Action": "es:*",
         "Resource": "arn:aws:es:<Region>:<account-id>:domain/tenant-1/*"
      }
   ]
}
```

Um das Silo-Modell „Mandant pro Index“ zu implementieren, müssten Sie diese Beispielrichtlinie ändern, um Tenant-1 weiter auf den angegebenen Index oder die angegebenen Indizes zu beschränken, indem Sie den Indexnamen angeben. Die folgende Beispielrichtlinie beschränkt Tenant-1 auf den Index. `tenant-index-1` 

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Allow",
         "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/Tenant-1"
         },
         "Action": "es:*",
         "Resource": "arn:aws:es:<Region>:<account-id>:domain/test-domain/tenant-index-1/*"
      }
   ]
}
```

*Pool-Modell*

Im Poolmodell werden alle Mandantendaten in einem Index innerhalb derselben Domäne gespeichert. Die Mandanten-ID ist in den Daten (Dokument) enthalten und wird als Partitionsschlüssel verwendet, sodass Sie bestimmen können, welche Daten zu welchem Mandanten gehören. Dieses Modell reduziert den Verwaltungsaufwand. Der Betrieb und die Verwaltung des gepoolten Indexes sind einfacher und effizienter als die Verwaltung mehrerer Indizes. Da Mandantendaten jedoch innerhalb desselben Index zusammengefasst sind, verlieren Sie die natürliche Mandantenisolierung, die das Silomodell bietet. Dieser Ansatz kann aufgrund des Noisy-Neighbor-Effekts auch zu Leistungseinbußen führen.

![\[Pool-Modell für serverlose Architekturen mit mehreren Mandanten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/c2c3bb0f-6ccd-47a7-ab67-e7f3f8c7f289.png)


 

**Mandantenisolierung im Poolmodell** — Im Allgemeinen ist es schwierig, die Mandantenisolierung im Poolmodell zu implementieren. Der im Silomodell verwendete IAM-Mechanismus ermöglicht es Ihnen nicht, die Isolierung anhand der in Ihrem Dokument gespeicherten Mandanten-ID zu beschreiben.

Ein alternativer Ansatz besteht darin, die FGAC-Unterstützung ([Fine-Grained Access Control](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/fgac.html)) zu verwenden, die von der Open Distro for Elasticsearch bereitgestellt wird. Mit FGAC können Sie Berechtigungen auf Index-, Dokument- oder Feldebene steuern. Bei jeder Anfrage wertet FGAC die Benutzeranmeldedaten aus und authentifiziert den Benutzer entweder oder verweigert den Zugriff. Wenn FGAC den Benutzer authentifiziert, ruft es alle Rollen ab, die diesem Benutzer zugeordnet sind, und verwendet den vollständigen Satz von Berechtigungen, um zu bestimmen, wie die Anfrage behandelt werden soll. 

Um die erforderliche Isolierung im Poolmodell zu erreichen, können Sie die [Sicherheit auf Dokumentebene](https://opendistro.github.io/for-elasticsearch-docs/docs/security/access-control/document-level-security/) verwenden, sodass Sie eine Rolle auf eine Teilmenge von Dokumenten in einem Index beschränken können. Die folgende Beispielrolle beschränkt Abfragen auf Tenant-1. Indem Sie diese Rolle auf Tenant-1 anwenden, können Sie die erforderliche Isolierung erreichen. 

```
{
   "bool": {
     "must": {
       "match": {
         "tenantId": "Tenant-1"
       }
     }
   }
 }
```

*Hybrides Modell*

Das Hybridmodell verwendet eine Kombination der Silo- und Poolmodelle in derselben Umgebung, um jedem Mieter (z. B. kostenlose Tarife, Standard- und Premium-Tarife) einzigartige Erlebnisse zu bieten. Jede Stufe folgt demselben Sicherheitsprofil, das im Poolmodell verwendet wurde.

 

![\[Hybridmodell für serverlose Architekturen mit mehreren Mandanten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/e7def98a-38ef-435a-9881-7e95ae4d4940.png)


**Mandantenisolierung im Hybridmodell** — Im Hybridmodell verwenden Sie dasselbe Sicherheitsprofil wie im Poolmodell, wo die Verwendung des FGAC-Sicherheitsmodells auf Dokumentenebene die Mandantenisolierung ermöglichte. Diese Strategie vereinfacht zwar die Clusterverwaltung und bietet Flexibilität, verkompliziert aber andere Aspekte der Architektur. Ihr Code erfordert beispielsweise zusätzliche Komplexität, um zu bestimmen, welches Modell jedem Mandanten zugeordnet ist. Sie müssen außerdem sicherstellen, dass Abfragen für einzelne Mandanten nicht die gesamte Domäne überlasten und die Benutzererfahrung für andere Mandanten beeinträchtigen. 

**Testen im API Gateway**

*Testfenster für Tenant-1-Abfrage*

![\[Testfenster für Tenant-1-Abfrage.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/a6757d3f-977a-4ecc-90cb-83ab7f1c3588.png)


*Testfenster für Tenant-2-Abfrage*

 

![\[Testfenster für Tenant-2-Abfrage.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/750196bb-03f6-4b6e-92cd-eb7141602547/images/31bfd656-33ca-4750-b6e6-da4d703c2071.png)


## Anlagen
<a name="attachments-750196bb-03f6-4b6e-92cd-eb7141602547"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/750196bb-03f6-4b6e-92cd-eb7141602547/attachments/attachment.zip)

# Stellen Sie Multi-Stack-Anwendungen mithilfe von AWS CDK bereit mit TypeScript
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Zusammenfassung
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-summary"></a>

Dieses Muster bietet einen step-by-step Ansatz für die Anwendungsbereitstellung auf Amazon Web Services (AWS) mithilfe des AWS Cloud Development Kit (AWS CDK) mit TypeScript. Das Muster stellt beispielsweise eine serverlose Echtzeit-Analyseanwendung bereit.

Das Muster erstellt und implementiert verschachtelte Stack-Anwendungen. Der übergeordnete CloudFormation AWS-Stack ruft die untergeordneten oder verschachtelten Stacks auf.  Jeder untergeordnete Stack erstellt und stellt die AWS-Ressourcen bereit, die im CloudFormation Stack definiert sind. AWS CDK Toolkit, der Befehl Command Line Interface (CLI)`cdk`, ist die primäre Schnittstelle für die CloudFormation Stacks.

## Voraussetzungen und Einschränkungen
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Bestehende virtuelle private Cloud (VPC) und Subnetze
+ AWS CDK Toolkit installiert und konfiguriert
+ Ein Benutzer mit Administratorrechten und einer Reihe von Zugriffsschlüsseln.
+ Node.js
+ AWS-Befehlszeilenschnittstelle (AWS Command Line Interface, AWS CLI)

**Einschränkungen**
+ Da AWS CDK AWS verwendet CloudFormation, unterliegen AWS CDK-Anwendungen CloudFormation Service-Kontingenten. Weitere Informationen finden Sie unter [ CloudFormation AWS-Kontingente](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html).

**Produktversionen**

Dieses Muster wurde mit den folgenden Tools und Versionen erstellt und getestet.
+ AWS-CDK-Toolkit 1.83.0
+ Node.js 14,13.0
+ npm 7.0.14

Das Muster sollte mit jeder Version von AWS CDK oder npm funktionieren. Beachten Sie, dass die Versionen 13.0.0 bis 13.6.0 von Node.js nicht mit dem AWS CDK kompatibel sind.

## Architektur
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-architecture"></a>

**Zieltechnologie-Stack**
+ AWS Amplify Amplify-Konsole
+ Amazon API Gateway
+ AWS-CDK
+ Amazon CloudFront
+ Amazon Cognito
+ Amazon DynamoDB
+ Amazon Data Firehose
+ Amazon Kinesis Data Streams
+ AWS Lambda
+ Amazon Simple Storage Service (Amazon-S3)

**Zielarchitektur**

Das folgende Diagramm zeigt die Bereitstellung mehrerer Stack-Anwendungen mithilfe von AWS CDK mit. TypeScript

![\[Stack-Architektur in der VPC mit einem übergeordneten Stack und zwei untergeordneten Stacks, die Ressourcen enthalten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/8f92e86a-aa3d-4f8a-9b11-b92c52a7226c.png)


 

Das folgende Diagramm zeigt die Architektur der beispielhaften serverlosen Echtzeitanwendung.

![\[Anwendungsarchitektur in der Region.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/2df00faf-f871-4aec-9655-19ba2eb14cf8.png)


 

## Tools
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-tools"></a>

**Tools**
+ Die [AWS Amplify Console](https://docs.aws.amazon.com/amplify/latest/userguide/welcome.html) ist das Kontrollzentrum für Full-Stack-Bereitstellungen von Web- und Mobilanwendungen in AWS. Amplify Console Hosting bietet einen Git-basierten Workflow für das Hosten serverloser Full-Stack-Web-Apps mit kontinuierlicher Bereitstellung. Die Admin-Benutzeroberfläche ist eine visuelle Oberfläche für Frontend-Web- und Mobilentwickler, um App-Backends außerhalb der AWS-Konsole zu erstellen und zu verwalten.
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) ist ein AWS-Service für die Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung von REST, HTTP und WebSocket APIs in jeder Größenordnung.
+ Das [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) ist ein Softwareentwicklungs-Framework, das Sie bei der Definition und Bereitstellung der AWS-Cloud-Infrastruktur im Code unterstützt.
+ [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) ist ein Befehlszeilen-Cloud-Entwicklungskit, das Sie bei der Interaktion mit Ihrer AWS-CDK-App unterstützt. Der `cdk` CLI-Befehl ist das wichtigste Tool für die Interaktion mit Ihrer AWS-CDK-App. Es führt Ihre App aus, fragt das von Ihnen definierte Anwendungsmodell ab und erstellt und stellt die vom AWS-CDK generierten CloudFormation AWS-Vorlagen bereit.
+ [Amazon CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html) ist ein Webservice, der die Verteilung statischer und dynamischer Webinhalte wie .html-, .css-, .js- und Bilddateien beschleunigt. CloudFront stellt Ihre Inhalte über ein weltweites Netzwerk von Rechenzentren bereit, die als Edge-Standorte bezeichnet werden, um die Latenz zu verringern und die Leistung zu verbessern.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) bietet Authentifizierung, Autorisierung und Benutzerverwaltung für Ihre Web- und mobilen Apps. Ihre Benutzer können sich direkt oder über einen Drittanbieter anmelden.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) ist ein vollständig verwalteter NoSQL-Datenbankservice, der schnelle und vorhersehbare Leistung mit nahtloser Skalierbarkeit bietet.
+ [Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html) ist ein vollständig verwalteter Service für die Bereitstellung von [Echtzeit-Streaming-Daten](https://aws.amazon.com/streaming-data/) an Ziele wie Amazon S3, Amazon Redshift, Amazon OpenSearch Service, Splunk und alle benutzerdefinierten HTTP-Endpunkte oder HTTP-Endpunkte, die unterstützten Drittanbietern gehören.
+ [Amazon Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/introduction.html) ist ein Service zum Sammeln und Verarbeiten großer Datenströme in Echtzeit.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. Sie bezahlen nur für die Datenverarbeitungszeit, die Sie wirklich nutzen und es werden keine Gebühren in Rechnung gestellt, wenn Ihr Code nicht ausgeführt wird.
+ [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.

**Code**

Der Code für dieses Muster ist angehängt.

## Epen
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-epics"></a>

### Installieren Sie das AWS CDK Toolkit
<a name="install-aws-cdk-toolkit"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie das AWS CDK Toolkit. | Führen Sie den folgenden Befehl aus, um AWS CDK Toolkit global zu installieren.`npm install -g aws-cdk` | DevOps | 
| Überprüfen Sie die Version. | Führen Sie den folgenden Befehl aus, um die Version des AWS CDK Toolkit zu überprüfen. `cdk --version` | DevOps | 

### AWS-Anmeldeinformationen einrichten
<a name="set-up-aws-credentials"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Anmeldeinformationen ein. | Um Anmeldeinformationen einzurichten, führen Sie den `aws configure` Befehl aus und folgen Sie den Anweisungen.<pre>$aws configure<br />AWS Access Key ID [None]: <br />AWS Secret Access Key [None]: your_secret_access_key<br />Default region name [None]:<br />Default output format [None]:</pre> | DevOps | 

### Laden Sie den Projektcode herunter
<a name="download-the-project-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie den beigefügten Projektcode herunter. | Weitere Informationen zur Verzeichnis- und Dateistruktur finden Sie im Abschnitt *Zusätzliche Informationen*. | DevOps | 

### Bootstrap für die AWS-CDK-Umgebung
<a name="bootstrap-the-aws-cdk-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bootstrap für die Umgebung. | Führen Sie den folgenden Befehl aus, um die CloudFormation AWS-Vorlage für das Konto und die AWS-Region bereitzustellen, die Sie verwenden möchten.`cdk bootstrap <account>/<Region>`Weitere Informationen finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html). | DevOps | 

### Erstellen und implementieren Sie das Projekt
<a name="build-and-deploy-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das Projekt. | Führen Sie den `npm run build` Befehl aus, um den Projektcode zu erstellen. | DevOps | 
| Stellen Sie das Projekt bereit. | Führen Sie den `cdk deploy` Befehl aus, um den Projektcode bereitzustellen. |  | 

### Überprüfen Sie die Ausgaben
<a name="verify-outputs"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Stack-Erstellung. | Wählen Sie in der AWS-Managementkonsole **CloudFormation**. Vergewissern Sie sich, dass in den Stacks für das Projekt ein übergeordneter Stack und zwei untergeordnete Stapel erstellt wurden. | DevOps | 

### Testen der Anwendung
<a name="test-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Senden Sie Daten an Kinesis Data Streams. | Konfigurieren Sie Ihr AWS-Konto so, dass Daten mithilfe von Amazon Kinesis Data Generator (KDG) an Kinesis Data Streams gesendet werden. Weitere Informationen finden Sie unter [Amazon Kinesis Data Generator](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html). | DevOps | 
| Erstellen Sie einen Amazon Cognito Cognito-Benutzer. | [Um einen Amazon Cognito Cognito-Benutzer zu erstellen, laden Sie die CloudFormation Vorlage cognito-setup.json aus dem Abschnitt *Amazon Cognito Cognito-Benutzer erstellen auf der Kinesis* Data Generator-Hilfeseite herunter.](https://awslabs.github.io/amazon-kinesis-data-generator/web/help.html) Initiieren Sie die Vorlage und geben Sie dann Ihren Amazon Cognito **Cognito-Benutzernamen** und Ihr **Passwort ein**.Auf der Registerkarte **Ausgaben** ist die Kinesis Data Generator-URL aufgeführt. | DevOps | 
| Melden Sie sich bei Kinesis Data Generator an | Um sich bei KDG anzumelden, verwenden Sie die von Ihnen angegebenen Amazon Cognito Cognito-Anmeldeinformationen und die Kinesis Data Generator-URL. | DevOps | 
| Testen Sie die Anwendung. | **Fügen Sie in KDG in **Record template**, **Template 1**, den Testcode aus dem Abschnitt *Zusätzliche Informationen* ein und wählen Sie Daten senden aus.** | DevOps | 
| Testen Sie das API Gateway. | Nachdem die Daten aufgenommen wurden, testen Sie API Gateway, indem Sie die `GET` Methode zum Abrufen von Daten verwenden. | DevOps | 

## Zugehörige Ressourcen
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-resources"></a>

**Referenzen**
+ [AWS-Cloud-Entwicklungskit](https://aws.amazon.com/cdk/)
+ [AWS CDK auf GitHub](https://github.com/aws/aws-cdk)
+ [Arbeiten mit verschachtelten Stacks](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html)
+ [AWS-Beispielbeispiel — Serverlose Echtzeitanalysen](https://github.com/aws-samples/serverless-realtime-analytics)

## Zusätzliche Informationen
<a name="deploy-multiple-stack-applications-using-aws-cdk-with-typescript-additional"></a>

**Verzeichnis- und Dateidetails**

Dieses Muster setzt die folgenden drei Stapel zusammen.
+ `parent-cdk-stack.ts`— Dieser Stapel fungiert als übergeordneter Stapel und ruft die beiden untergeordneten Anwendungen als verschachtelte Stapel auf. 
+ `real-time-analytics-poc-stack.ts`— Dieser verschachtelte Stapel enthält die Infrastruktur und den Anwendungscode.
+ `real-time-analytics-web-stack.ts`— Dieser verschachtelte Stapel enthält nur den statischen Webanwendungscode.

*Wichtige Dateien und ihre Funktionalität*
+ `bin/real-time-analytics-poc.ts`— Einstiegspunkt der AWS-CDK-Anwendung. Es lädt alle Stacks, die unter definiert sind. `lib/`
+ `lib/real-time-analytics-poc-stack.ts`— Definition des Stacks der AWS-CDK-Anwendung (`real-time-analytics-poc`).
+ `lib/real-time-analytics-web-stack.ts`— Definition des Stacks der AWS-CDK-Anwendung (`real-time-analytics-web-stack`).
+ `lib/parent-cdk-stack.ts`— Definition des Stacks der AWS-CDK-Anwendung (`parent-cdk`).
+ `package.json`— Das NPM-Modulmanifest, das den Namen, die Version und die Abhängigkeiten der Anwendung enthält.
+ `package-lock.json`— Wird von npm verwaltet.
+ `cdk.json`— Toolkit zum Ausführen der Anwendung.
+ `tsconfig.json`— Die TypeScript Konfiguration des Projekts.
+ `.gitignore`— Liste der Dateien, die Git von der Quellcodeverwaltung ausschließen soll.
+ `node_modules`— Wird von npm verwaltet; beinhaltet die Abhängigkeiten des Projekts.

Der folgende Codeabschnitt im übergeordneten Stack ruft untergeordnete Anwendungen als verschachtelte AWS-CDK-Stacks auf.

```
import * as cdk from '@aws-cdk/core';
import { Construct, Stack, StackProps } from '@aws-cdk/core';
import { RealTimeAnalyticsPocStack } from './real-time-analytics-poc-stack';
import { RealTimeAnalyticsWebStack } from './real-time-analytics-web-stack';


export class CdkParentStack extends Stack {
  constructor(scope: Construct, id: string, props?: StackProps) {
    super(scope, id, props);


    new RealTimeAnalyticsPocStack(this, 'RealTimeAnalyticsPocStack');
    new RealTimeAnalyticsWebStack(this, 'RealTimeAnalyticsWebStack');
  }
}
```

**Code zum Testen**

```
session={{date.now('YYYYMMDD')}}|sequence={{date.now('x')}}|reception={{date.now('x')}}|instrument={{random.number(9)}}|l={{random.number(20)}}|price_0={{random.number({"min":10000, "max":30000})}}|price_1={{random.number({"min":10000, "max":30000})}}|price_2={{random.number({"min":10000, "max":30000})}}|price_3={{random.number({"min":10000, "max":30000})}}|price_4={{random.number({"min":10000, "max":30000})}}|price_5={{random.number({"min":10000, "max":30000})}}|price_6={{random.number({"min":10000, "max":30000})}}|price_7={{random.number({"min":10000, "max":30000})}}|price_8={{random.number({"min":10000, "max":30000})}}|
```

**Testen des API Gateway**

Testen Sie API Gateway auf der API Gateway Gateway-Konsole mithilfe der `GET` Methode. 

![\[API-Gateway-Konsole, bei der GET unter OPTIONS ausgewählt wurde.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0ac29a11-1362-4084-92ed-6b85205763ca/images/452e5b8f-6d61-401d-8484-e5a436cb6f1b.png)


 

## Anlagen
<a name="attachments-0ac29a11-1362-4084-92ed-6b85205763ca"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/0ac29a11-1362-4084-92ed-6b85205763ca/attachments/attachment.zip)

# Automatisieren Sie die Bereitstellung verschachtelter Anwendungen mit AWS SAM
<a name="automate-deployment-of-nested-applications-using-aws-sam"></a>

*Dr. Rahul Sharad Gaikwad, Ishwar Chauthaiwale, Dmitry Gulin und Tabby Ward, Amazon Web Services*

## Zusammenfassung
<a name="automate-deployment-of-nested-applications-using-aws-sam-summary"></a>

Auf Amazon Web Services (AWS) ist das AWS Serverless Application Model (AWS SAM) ein Open-Source-Framework, das Kurzsyntax zum Ausdrücken von Funktionen APIs, Datenbanken und Zuordnungen von Ereignisquellen bereitstellt. Mit nur wenigen Zeilen für jede Ressource können Sie die gewünschte Anwendung definieren und sie mithilfe von YAML modellieren. Während der Bereitstellung transformiert und erweitert SAM die SAM-Syntax in CloudFormation AWS-Syntax, mit der Sie serverlose Anwendungen schneller erstellen können.

AWS SAM vereinfacht die Entwicklung, Bereitstellung und Verwaltung serverloser Anwendungen auf der AWS-Plattform. Es bietet ein standardisiertes Framework, eine schnellere Bereitstellung, lokale Testfunktionen, Ressourcenmanagement, eine nahtlose Integration mit Entwicklungstools und eine unterstützende Community. Diese Funktionen machen es zu einem wertvollen Tool für die effiziente und effektive Erstellung serverloser Anwendungen.

Dieses Muster verwendet AWS-SAM-Vorlagen, um die Bereitstellung verschachtelter Anwendungen zu automatisieren. Eine verschachtelte Anwendung ist eine Anwendung innerhalb einer anderen Anwendung. Übergeordnete Anwendungen rufen ihre untergeordneten Anwendungen auf. Dies sind lose miteinander verbundene Komponenten einer serverlosen Architektur. 

Mithilfe verschachtelter Anwendungen können Sie schnell hochentwickelte serverlose Architekturen erstellen, indem Sie Services oder Komponenten wiederverwenden, die unabhängig erstellt und verwaltet wurden, aber mithilfe von AWS SAM und dem Serverless Application Repository zusammengestellt wurden. Verschachtelte Anwendungen helfen Ihnen dabei, leistungsstärkere Anwendungen zu erstellen, Doppelarbeit zu vermeiden und Konsistenz und bewährte Verfahren in Ihren Teams und Organisationen sicherzustellen. Um verschachtelte Anwendungen zu demonstrieren, stellt das Muster eine [serverlose AWS-Einkaufswagen-Beispielanwendung](https://github.com/aws-samples/aws-sam-nested-stack-sample) bereit.

## Voraussetzungen und Einschränkungen
<a name="automate-deployment-of-nested-applications-using-aws-sam-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine bestehende virtuelle private Cloud (VPC) und Subnetze
+ Eine integrierte Entwicklungsumgebung wie Visual Studio Code (weitere Informationen finden Sie unter [Tools to Build on AWS](https://aws.amazon.com/getting-started/tools-sdks/#IDE_and_IDE_Toolkits))
+ Die Python-Wheel-Bibliothek wurde mit Pip Install Wheel installiert, falls sie noch nicht installiert ist

**Einschränkungen**
+ Die maximale Anzahl von Anwendungen, die in einer serverlosen Anwendung verschachtelt werden können, beträgt 200.
+ Die maximale Anzahl von Parametern für eine verschachtelte Anwendung kann 60 betragen.

**Produktversionen**
+ Diese Lösung basiert auf der AWS SAM-Befehlszeilenschnittstelle (AWS SAM CLI) Version 1.21.1, aber diese Architektur sollte mit späteren AWS SAM CLI-Versionen funktionieren.

## Architektur
<a name="automate-deployment-of-nested-applications-using-aws-sam-architecture"></a>

**Zieltechnologie-Stack**
+ Amazon API Gateway
+ AWS SAM
+ Amazon Cognito
+ Amazon DynamoDB
+ AWS Lambda
+ Amazon Simple Queue Service-Warteschlange (Amazon SQS)

**Zielarchitektur**

Das folgende Diagramm zeigt, wie Benutzeranfragen per Anruf an die Einkaufsdienste gestellt werden APIs. Die Anfrage des Benutzers, einschließlich aller erforderlichen Informationen, wird an Amazon API Gateway und den Amazon Cognito Authorizer gesendet, der Authentifizierungs- und Autorisierungsmechanismen für die durchführt. APIs

Wenn ein Element in DynamoDB hinzugefügt, gelöscht oder aktualisiert wird, wird ein Ereignis in DynamoDB Streams abgelegt, wodurch wiederum eine Lambda-Funktion ausgelöst wird. Um zu verhindern, dass alte Elemente im Rahmen eines synchronen Workflows sofort gelöscht werden, werden Nachrichten in eine SQS-Warteschlange gestellt, wodurch eine Worker-Funktion zum Löschen der Nachrichten ausgelöst wird.

![\[POST- und PUT-Operationen vom API Gateway über Lambda-Funktionen bis hin zu DynamoDB und Product Service.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5b454bae-5fd4-405d-a37d-6bafc3fcf889.png)


In diesem Lösungs-Setup dient AWS SAM CLI als Schnittstelle für CloudFormation AWS-Stacks. AWS-SAM-Vorlagen stellen automatisch verschachtelte Anwendungen bereit. Die übergeordnete SAM-Vorlage ruft die untergeordneten Vorlagen auf, und der übergeordnete CloudFormation Stack stellt die untergeordneten Stacks bereit. Jeder untergeordnete Stack erstellt die AWS-Ressourcen, die in den CloudFormation AWS-SAM-Vorlagen definiert sind.

![\[Vierstufiger Prozess mit AWS SAM CLI mit einem übergeordneten und drei untergeordneten CloudFormation Stacks.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/218adecc-b5b8-4193-9012-b5d584e2e128/images/5828026e-72ad-4a3f-a5f2-bffac0f13e42.png)


1. Erstellen und implementieren Sie die Stacks.

1. Der CloudFormation Auth-Stack enthält Amazon Cognito.

1. Der CloudFormation Produkt-Stack enthält eine Lambda-Funktion und Amazon API Gateway

1. Der CloudFormation Shopping-Stack enthält eine Lambda-Funktion, Amazon API Gateway, die SQS-Warteschlange und die Amazon DynamoDB DynamoDB-Datenbank.

## Tools
<a name="automate-deployment-of-nested-applications-using-aws-sam-tools"></a>

**Tools**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) unterstützt Sie bei der Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung von REST, HTTP und WebSocket APIs in jeder Größenordnung.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg zu verwalten.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) bietet Authentifizierung, Autorisierung und Benutzerverwaltung für Web- und mobile Apps.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ Das [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/what-is-sam.html) ist ein Open-Source-Framework, mit dem Sie serverlose Anwendungen in der AWS-Cloud erstellen können.
+ [Amazon Simple Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können.

**Code**

Der Code für dieses Muster ist im GitHub [AWS SAM Nested Stack Sample](https://github.com/aws-samples/aws-sam-nested-stack-sample) Repository verfügbar.

## Epen
<a name="automate-deployment-of-nested-applications-using-aws-sam-epics"></a>

### Installieren Sie AWS SAM CLI
<a name="install-aws-sam-cli"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie AWS SAM CLI. | Informationen zur Installation von AWS SAM CLI finden Sie in der [AWS SAM-Dokumentation](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html). | DevOps Ingenieur | 
| Richten Sie AWS-Anmeldeinformationen ein. | Um AWS-Anmeldeinformationen so einzurichten, dass die AWS SAM CLI in Ihrem Namen AWS-Services aufrufen kann, führen Sie den `aws configure` Befehl aus und folgen Sie den Anweisungen.<pre>$aws configure<br />AWS Access Key ID [None]: <your_access_key_id><br />AWS Secret Access Key [None]: your_secret_access_key<br />Default region name [None]:<br />Default output format [None]:</pre>Weitere Informationen zur Einrichtung Ihrer Anmeldeinformationen finden Sie unter [Authentifizierungs- und Zugangsdaten](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-authentication.html).  | DevOps Ingenieur | 

### Initialisieren Sie das AWS-SAM-Projekt
<a name="initialize-the-aws-sam-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das AWS-SAM-Code-Repository. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps Ingenieur | 
| Stellen Sie Vorlagen bereit, um das Projekt zu initialisieren. | Führen Sie den Befehl aus, um das Projekt zu initialisieren. `SAM init` Wenn Sie aufgefordert werden, eine Vorlagenquelle auszuwählen, wählen Sie`Custom Template Location`. | DevOps Ingenieur | 

### Kompilieren und erstellen Sie den SAM-Vorlagencode
<a name="compile-and-build-the-sam-template-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Sehen Sie sich die AWS-SAM-Anwendungsvorlagen an. | Überprüfen Sie die Vorlagen für die verschachtelten Anwendungen. In diesem Beispiel werden die folgenden verschachtelten Anwendungsvorlagen verwendet:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps Ingenieur | 
| Überprüfen Sie die übergeordnete Vorlage. | Prüfen Sie die Vorlage, mit der die verschachtelten Anwendungsvorlagen aufgerufen werden. In diesem Beispiel ist die übergeordnete Vorlage. `template.yml` Alle separaten Anwendungen sind in der einzigen übergeordneten Vorlage `template.yml` verschachtelt. | DevOps Ingenieur | 
| Kompilieren und erstellen Sie den AWS-SAM-Vorlagencode.  | Führen Sie mit der AWS SAM CLI den folgenden Befehl aus.<pre>sam build</pre> | DevOps Ingenieur | 

### Stellen Sie die AWS-SAM-Vorlage bereit
<a name="deploy-the-aws-sam-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Anwendungen bereit. | Führen Sie den folgenden Befehl aus, um den SAM-Vorlagencode zu starten, der die verschachtelten CloudFormation Anwendungsstapel erstellt und Code in der AWS-Umgebung bereitstellt.<pre>sam deploy --guided --stack-name shopping-cart-nested-stack --capabilities CAPABILITY_IAM CAPABILITY_AUTO_EXPAND</pre>Der Befehl wird Sie mit einigen Fragen auffordern. Beantworten Sie alle Fragen mit`y`. | DevOps Ingenieur | 

### Überprüfen der Bereitstellung
<a name="verify-the-deployment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfe die Stapel. | Gehen Sie wie folgt vor, um die CloudFormation AWS-Stacks und AWS-Ressourcen zu überprüfen, die in den AWS-SAM-Vorlagen definiert wurden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-deployment-of-nested-applications-using-aws-sam.html) | DevOps Ingenieur | 

## Zugehörige Ressourcen
<a name="automate-deployment-of-nested-applications-using-aws-sam-resources"></a>

**Referenzen**
+ [Serverloses AWS-Anwendungsmodell (AWS SAM)](https://aws.amazon.com/serverless/sam/#:~:text=The%20AWS%20Serverless%20Application%20Model,and%20model%20it%20using%20YAML.)
+ [AWS SAM auf GitHub](https://github.com/aws/serverless-application-model)
+ [Serverloser Einkaufswagen-Microservice](https://github.com/aws-samples/aws-serverless-shopping-cart) (AWS-Beispielanwendung)

**Tutorials und Videos**
+ [Erstellen Sie eine serverlose App](https://youtu.be/Hv3YrP8G4ag)
+ [AWS Online Tech Talks: Serverlose Anwendungsentwicklung und -bereitstellung mit AWS SAM](https://youtu.be/1NU7vyJw9LU)

## Zusätzliche Informationen
<a name="automate-deployment-of-nested-applications-using-aws-sam-additional"></a>

Nachdem der gesamte Code vorhanden ist, hat das Beispiel die folgende Verzeichnisstruktur:
+ [sam\$1stacks](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html) — Dieser Ordner enthält die Ebene. `shared.py` Eine Ebene ist ein Dateiarchiv, das Bibliotheken, eine benutzerdefinierte Runtime oder andere Abhängigkeiten enthält. Mit Ebenen können Sie Bibliotheken in Ihrer Funktion verwenden, ohne sie in ein Bereitstellungspaket aufnehmen zu müssen.
+ *product-mock-service*— Dieser Ordner enthält alle produktbezogenen Lambda-Funktionen und -Dateien.
+ *shopping-cart-service*— Dieser Ordner enthält alle Lambda-Funktionen und -Dateien zum Einkaufen.

# Implementieren Sie die SaaS-Mandantenisolierung für Amazon S3 mithilfe eines AWS Lambda Token-Verkaufsautomaten
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine"></a>

*Tabby Ward, Thomas Davis und Sravan Periyathambi, Amazon Web Services*

## Zusammenfassung
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-summary"></a>

Mehrmandantenfähige SaaS-Anwendungen müssen Systeme implementieren, um sicherzustellen, dass die Mandantenisolierung aufrechterhalten wird. Wenn Sie Mandantendaten auf derselben AWS Ressource speichern, z. B. wenn mehrere Mandanten Daten in demselben Amazon Simple Storage Service (Amazon S3) -Bucket speichern, müssen Sie sicherstellen, dass kein mandantenübergreifender Zugriff möglich ist. Token-Verkaufsautomaten (TVMs) sind eine Möglichkeit, die Daten von Mietern zu isolieren. Diese Maschinen bieten einen Mechanismus zum Abrufen von Token und abstrahieren gleichzeitig die Komplexität der Token-Generierung. Entwickler können ein TVM verwenden, ohne detaillierte Kenntnisse darüber zu haben, wie es Token produziert.

Dieses Muster implementiert ein TVM mithilfe von. AWS Lambda Das TVM generiert ein Token, das aus temporären STS-Anmeldeinformationen (Security Token Service) besteht, die den Zugriff auf die Daten eines einzelnen SaaS-Mandanten in einem S3-Bucket einschränken.

TVMs, und der Code, der mit diesem Muster bereitgestellt wird, werden in der Regel mit Ansprüchen verwendet, die von JSON-Web-Tokens (JWTs) abgeleitet sind, um Anfragen nach AWS Ressourcen mit einer AWS Identity and Access Management mandantenbezogenen Richtlinie (IAM) zu verknüpfen. Sie können den Code in diesem Muster als Grundlage für die Implementierung einer SaaS-Anwendung verwenden, die temporäre STS-Anmeldeinformationen mit Gültigkeitsbereich auf der Grundlage der in einem JWT-Token bereitgestellten Ansprüche generiert.

## Voraussetzungen und Einschränkungen
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver. AWS-Konto
+ AWS Command Line Interface (AWS CLI) [Version 1.19.0 oder höher](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html), installiert und konfiguriert auf macOS, Linux oder Windows. Alternativ können Sie AWS CLI [Version 2.1 oder höher](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) verwenden.

**Einschränkungen**
+ Dieser Code läuft in Java und unterstützt derzeit keine anderen Programmiersprachen. 
+ Die Beispielanwendung bietet keine AWS regionsübergreifende Unterstützung oder Unterstützung für Disaster Recovery (DR). 
+ Dieses Muster zeigt, wie ein Lambda-TVM für eine SaaS-Anwendung begrenzten Mandantenzugriff bereitstellen kann. Dieses Muster ist nicht für die Verwendung in Produktionsumgebungen ohne zusätzliche Sicherheitstests als Teil Ihrer spezifischen Anwendung oder Ihres Anwendungsfalls vorgesehen.

## Architektur
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-architecture"></a>

**Zieltechnologie-Stack**
+ AWS Lambda
+ Amazon S3
+ IAM
+ AWS -Security-Token-Service (AWS STS)

**Zielarchitektur**

![\[Generieren eines Tokens, um temporäre STS-Anmeldeinformationen für den Zugriff auf Daten in einem S3-Bucket zu erhalten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/14d0508a-703b-4229-85e6-c5094de7fe01.png)


 

## Tools
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-tools"></a>

**AWS-Services**
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie AWS-Services über Befehle in Ihrer Befehlszeilen-Shell interagieren können.
+ [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 es kontrolliert, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS -Security-Token-Service (AWS STS)](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html) hilft Ihnen dabei, temporäre Anmeldeinformationen mit eingeschränkten Rechten für Benutzer anzufordern.
+ [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.

**Code**

Der Quellcode für dieses Muster ist als Anlage verfügbar und umfasst die folgenden Dateien:
+ `s3UploadSample.jar`stellt den Quellcode für eine Lambda-Funktion bereit, die ein JSON-Dokument in einen S3-Bucket hochlädt.
+ `tvm-layer.zip`stellt eine wiederverwendbare Java-Bibliothek bereit, die ein Token (temporäre STS-Anmeldeinformationen) für die Lambda-Funktion bereitstellt, um auf den S3-Bucket zuzugreifen und das JSON-Dokument hochzuladen.
+ `token-vending-machine-sample-app.zip`stellt den Quellcode bereit, der zur Erstellung dieser Artefakte und Kompilierungsanweisungen verwendet wurde.

Folgen Sie den Anweisungen im nächsten Abschnitt, um diese Dateien zu verwenden.

## Epen
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-epics"></a>

### Ermitteln Sie Variablenwerte
<a name="determine-variable-values"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ermitteln Sie Variablenwerte. | Die Implementierung dieses Musters umfasst mehrere Variablennamen, die konsistent verwendet werden müssen. Ermitteln Sie die Werte, die für jede Variable verwendet werden sollen, und geben Sie diesen Wert an, wenn Sie in den nachfolgenden Schritten dazu aufgefordert werden.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine.html) | Cloud-Administrator | 

### Erstellen eines S3-Buckets
<a name="create-an-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket für die Beispielanwendung. | Verwenden Sie den folgenden AWS CLI Befehl, um einen S3-Bucket zu erstellen. Geben Sie den `<sample-app-bucket-name>`**** Wert im Codeausschnitt an:<pre>aws s3api create-bucket --bucket <sample-app-bucket-name></pre>Die Lambda-Beispielanwendung lädt JSON-Dateien in diesen Bucket hoch. | Cloud-Administrator | 

### Erstellen Sie die IAM-TVM-Rolle und -Richtlinie
<a name="create-the-iam-tvm-role-and-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine TVM-Rolle. | Verwenden Sie einen der folgenden AWS CLI Befehle, um eine IAM-Rolle zu erstellen. Geben Sie den `<sample-tvm-role-name>`**** Wert im Befehl ein.Für macOS- oder Linux-Shells:<pre>aws iam create-role \<br />--role-name <sample-tvm-role-name> \<br />--assume-role-policy-document '{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "sts:AssumeRole"<br />            ],<br />            "Principal": {<br />                "Service": [<br />                    "lambda.amazonaws.com"<br />                ]<br />            },<br />            "Condition": {<br />                "StringEquals": {<br />                    "aws:SourceAccount": "<AWS Account ID>"<br />                }<br />            }<br />        }<br />    ]<br />}'</pre>Für die Windows-Befehlszeile:<pre>aws iam create-role ^<br />--role-name <sample-tvm-role-name> ^<br />--assume-role-policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"sts:AssumeRole\"], \"Principal\": {\"Service\": [\"lambda.amazonaws.com\"]}, \"Condition\": {\"StringEquals\": {\"aws:SourceAccount\": \"<AWS Account ID>\"}}}]}"</pre>Die Lambda-Beispielanwendung übernimmt diese Rolle, wenn die Anwendung aufgerufen wird. Durch die Möglichkeit, die Anwendungsrolle mit einer bereichsbezogenen Richtlinie zu übernehmen, erhält der Code umfassendere Zugriffsberechtigungen auf den S3-Bucket. | Cloud-Administrator | 
| Erstellen Sie eine Inline-TVM-Rollenrichtlinie. | Verwenden Sie einen der folgenden AWS CLI Befehle, um eine IAM-Richtlinie zu erstellen. Geben Sie die `<sample-app-role-name>` Werte `<sample-tvm-role-name>` **`<AWS Account ID>`**, und im Befehl ein.Für macOS- oder Linux-Shells:<pre>aws iam put-role-policy \<br />--role-name <sample-tvm-role-name> \<br />--policy-name assume-app-role \<br />--policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": "Allow", <br />            "Action": "sts:AssumeRole", <br />            "Resource": "arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>"<br />        }<br />    ]}'</pre>Für die Windows-Befehlszeile:<pre>aws iam put-role-policy ^<br />--role-name <sample-tvm-role-name> ^<br />--policy-name assume-app-role ^<br />--policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": \"sts:AssumeRole\", \"Resource\": \"arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>\"}]}"</pre>Diese Richtlinie ist der TVM-Rolle zugeordnet. Sie gibt dem Code die Möglichkeit, die Anwendungsrolle zu übernehmen, die über umfassendere Berechtigungen für den Zugriff auf den S3-Bucket verfügt. | Cloud-Administrator | 
| Hängen Sie die verwaltete Lambda-Richtlinie an. | Verwenden Sie den folgenden AWS CLI Befehl, um die `AWSLambdaBasicExecutionRole` IAM-Richtlinie anzuhängen. Geben Sie den `<sample-tvm-role-name>` Wert im Befehl ein:<pre>aws iam attach-role-policy \<br />--role-name <sample-tvm-role-name> \<br />--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole</pre>Für die Windows-Befehlszeile:<pre>aws iam attach-role-policy ^<br />--role-name <sample-tvm-role-name> ^<br />--policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole</pre>Diese verwaltete Richtlinie ist der TVM-Rolle zugeordnet, damit Lambda Protokolle an Amazon senden kann. CloudWatch | Cloud-Administrator | 

### Erstellen Sie die IAM-Anwendungsrolle und -Richtlinie
<a name="create-the-iam-application-role-and-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Anwendungsrolle. | Verwenden Sie einen der folgenden AWS CLI Befehle, um eine IAM-Rolle zu erstellen. Geben Sie die `<sample-tvm-role-name>` Werte `<sample-app-role-name>``<AWS Account ID>`, und im Befehl ein.Für macOS- oder Linux-Shells:<pre>aws iam create-role \<br />--role-name <sample-app-role-name> \<br />--assume-role-policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": <br />            "Allow",<br />            "Principal": {<br />                "AWS": "arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name>"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]}'</pre>Für die Windows-Befehlszeile:<pre>aws iam create-role ^<br />--role-name <sample-app-role-name> ^<br />--assume-role-policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name>\"},\"Action\": \"sts:AssumeRole\"}]}"</pre>Die Lambda-Beispielanwendung übernimmt diese Rolle mit einer bereichsbezogenen Richtlinie, um mandantenbasierten Zugriff auf einen S3-Bucket zu erhalten. | Cloud-Administrator | 
| Erstellen Sie eine Inline-Rollenrichtlinie für Anwendungen. | Verwenden Sie einen der folgenden AWS CLI Befehle, um eine IAM-Richtlinie zu erstellen. Geben Sie die `<sample-app-bucket-name>`**** Werte `<sample-app-role-name>` und im Befehl ein.Für macOS- oder Linux-Shells:<pre>aws iam put-role-policy \<br />--role-name <sample-app-role-name> \<br />--policy-name s3-bucket-access \<br />--policy-document '{<br />    "Version": "2012-10-17",		 	 	  <br />    "Statement": [<br />        {<br />            "Effect": "Allow", <br />            "Action": [<br />                "s3:PutObject", <br />                "s3:GetObject", <br />                "s3:DeleteObject"<br />            ], <br />            "Resource": "arn:aws:s3:::<sample-app-bucket-name>/*"<br />        }, <br />        {<br />            "Effect": "Allow", <br />            "Action": ["s3:ListBucket"], <br />            "Resource": "arn:aws:s3:::<sample-app-bucket-name>"<br />        }<br />    ]}'</pre>Für die Windows-Befehlszeile:<pre>aws iam put-role-policy ^<br />--role-name <sample-app-role-name> ^<br />--policy-name s3-bucket-access ^<br />--policy-document "{\"Version\": \"2012-10-17\", \"Statement\": [{\"Effect\": \"Allow\", \"Action\": [\"s3:PutObject\", \"s3:GetObject\", \"s3:DeleteObject\"], \"Resource\": \"arn:aws:s3:::<sample-app-bucket-name>/*\"}, {\"Effect\": \"Allow\", \"Action\": [\"s3:ListBucket\"], \"Resource\": \"arn:aws:s3:::<sample-app-bucket-name>\"}]}"</pre>Diese Richtlinie ist der Anwendungsrolle zugeordnet. Sie bietet umfassenden Zugriff auf Objekte im S3-Bucket. Wenn die Beispielanwendung die Rolle übernimmt, werden diese Berechtigungen anhand der dynamisch generierten Richtlinie des TVM auf einen bestimmten Mandanten beschränkt. | Cloud-Administrator | 

### Erstellen Sie die Lambda-Beispielanwendung mit TVM
<a name="create-the-lam-sample-application-with-tvm"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die kompilierten Quelldateien herunter. | Laden Sie die `tvm-layer.zip`**** Dateien `s3UploadSample.jar` und herunter, die als Anlagen enthalten sind. Den Quellcode, der zur Erstellung dieser Artefakte verwendet wurde, sowie Anweisungen zur Kompilierung finden Sie unter. `token-vending-machine-sample-app.zip` | Cloud-Administrator | 
| Erstellen Sie die Lambda-Schicht. | Verwenden Sie den folgenden AWS CLI Befehl, um eine Lambda-Schicht zu erstellen, die das TVM für Lambda zugänglich macht. Wenn Sie diesen Befehl nicht von dem Speicherort aus ausführen, den Sie heruntergeladen haben` tvm-layer.zip`, geben Sie `tvm-layer.zip` im Parameter den richtigen Pfad zu an. `--zip-file` <pre>aws lambda publish-layer-version \<br />--layer-name sample-token-vending-machine \<br />--compatible-runtimes java11 \<br />--zip-file fileb://tvm-layer.zip</pre>Für die Windows-Befehlszeile:<pre>aws lambda publish-layer-version ^<br />--layer-name sample-token-vending-machine ^<br />--compatible-runtimes java11 ^<br />--zip-file fileb://tvm-layer.zip</pre>Dieser Befehl erstellt eine Lambda-Schicht, die die wiederverwendbare TVM-Bibliothek enthält. | Cloud-Administrator, App-Entwickler | 
| So erstellen Sie die Lambda-Funktion: | Verwenden Sie den folgenden AWS CLI Befehl, um eine Lambda-Funktion zu erstellen. Geben Sie die `<sample-app-role-name>` Werte `<sample-app-function-name>` `<AWS Account ID>``<AWS Region>`,`<sample-tvm-role-name>`,`<sample-app-bucket-name>`, und im Befehl ein. Wenn Sie diesen Befehl nicht von dem Speicherort aus ausführen, den Sie heruntergeladen haben`s3UploadSample.jar`, geben Sie `s3UploadSample.jar` im `--zip-file` Parameter den richtigen Pfad zu an. <pre>aws lambda create-function \<br />--function-name <sample-app-function-name>  \<br />--timeout 30 \<br />--memory-size 256 \<br />--runtime java11 \<br />--role arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name> \<br />--handler com.amazon.aws.s3UploadSample.App \<br />--zip-file fileb://s3UploadSample.jar \<br />--layers arn:aws:lambda:<AWS Region>:<AWS Account ID>:layer:sample-token-vending-machine:1 \<br />--environment "Variables={S3_BUCKET=<sample-app-bucket-name>,<br />ROLE=arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>}"</pre>Für die Windows-Befehlszeile:<pre>aws lambda create-function ^<br />--function-name <sample-app-function-name>  ^<br />--timeout 30 ^<br />--memory-size 256 ^<br />--runtime java11 ^<br />--role arn:aws:iam::<AWS Account ID>:role/<sample-tvm-role-name> ^<br />--handler com.amazon.aws.s3UploadSample.App ^<br />--zip-file fileb://s3UploadSample.jar ^<br />--layers arn:aws:lambda:<AWS Region>:<AWS Account ID>:layer:sample-token-vending-machine:1 ^<br />--environment "Variables={S3_BUCKET=<sample-app-bucket-name>,ROLE=arn:aws:iam::<AWS Account ID>:role/<sample-app-role-name>}"</pre>Dieser Befehl erstellt eine Lambda-Funktion mit dem Beispielanwendungscode und der angehängten TVM-Schicht. Außerdem werden zwei Umgebungsvariablen festgelegt: `S3_BUCKET` und. `ROLE` Die Beispielanwendung verwendet diese Variablen, um die zu übernehmende Rolle und den S3-Bucket zu bestimmen, in den JSON-Dokumente hochgeladen werden sollen. | Cloud-Administrator, App-Entwickler | 

### Testen Sie die Beispielanwendung und TVM
<a name="test-the-sample-application-and-tvm"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Rufen Sie die Lambda-Beispielanwendung auf. | Verwenden Sie einen der folgenden AWS CLI Befehle, um die Lambda-Beispielanwendung mit der erwarteten Nutzlast zu starten. Geben Sie die `<sample-tenant-name>` Werte `<sample-app-function-name>` und im Befehl ein.Für macOS- und Linux-Shells:<pre>aws lambda invoke \<br />--function <sample-app-function-name> \<br />--invocation-type RequestResponse \<br />--payload '{"tenant": "<sample-tenant-name>"}' \<br />--cli-binary-format raw-in-base64-out response.json</pre>Für die Windows-Befehlszeile:<pre>aws lambda invoke ^<br />--function <sample-app-function-name> ^<br />--invocation-type RequestResponse ^<br />--payload "{\"tenant\": \"<sample-tenant-name>\"}" ^<br />--cli-binary-format raw-in-base64-out response.json</pre>Dieser Befehl ruft die Lambda-Funktion auf und gibt das Ergebnis in einem `response.json` Dokument zurück. Auf vielen UNIX-basierten Systemen können Sie `response.json` zu ändern, `/dev/stdout` um die Ergebnisse direkt in Ihrer Shell auszugeben, ohne eine weitere Datei zu erstellen. Wenn Sie den `<sample-tenant-name>` Wert in nachfolgenden Aufrufen dieser Lambda-Funktion ändern, werden der Speicherort des JSON-Dokuments und die vom Token bereitgestellten Berechtigungen geändert. | Cloud-Administrator, App-Entwickler | 
| Sehen Sie sich den S3-Bucket an, um die erstellten Objekte zu sehen. | Navigieren Sie zu dem S3-Bucket (`<sample-app-bucket-name>`), den Sie zuvor erstellt haben. Dieser Bucket enthält ein S3-Objektpräfix mit dem Wert von`<sample-tenant-name>`. Unter diesem Präfix finden Sie ein JSON-Dokument, das mit einer UUID benannt ist. Wenn Sie die Beispielanwendung mehrmals aufrufen, werden weitere JSON-Dokumente hinzugefügt. | Cloud-Administrator | 
| Sehen Sie sich die Protokolle für die Beispielanwendung unter CloudWatch Logs an. | Zeigen Sie die Protokolle an, die der `<sample-app-function-name>` in CloudWatch Logs genannten Lambda-Funktion zugeordnet sind. Anweisungen finden Sie in der [Lambda-Dokumentation unter CloudWatch Lambda-Funktionsprotokolle an Logs senden](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-cloudwatchlogs.html). In diesen Protokollen können Sie die vom TVM generierte Richtlinie für Mandanten einsehen. Diese mandantenbezogene Richtlinie erteilt Amazon S3,, und, und, Berechtigungen für die Beispielanwendung **PutObject**GetObject**DeleteObject******, jedoch nur für das Objektpräfix **ListBucket** APIs, das mit verknüpft ist. `<sample-tenant-name>` Wenn Sie bei nachfolgenden Aufrufen der Beispielanwendung eine Änderung vornehmen, aktualisiert der TVM die bereichsbezogene Richtlinie so`<sample-tenant-name>`, dass sie dem Mandanten entspricht, der in der Aufruf-Payload angegeben ist. Diese dynamisch generierte Richtlinie zeigt, wie der mandantenbezogene Zugriff mit einem TVM in SaaS-Anwendungen aufrechterhalten werden kann. Die TVM-Funktionalität wird in einer Lambda-Schicht bereitgestellt, sodass sie an andere Lambda-Funktionen angehängt werden kann, die von einer Anwendung verwendet werden, ohne dass der Code repliziert werden muss.[Eine Veranschaulichung der dynamisch generierten Richtlinie finden Sie im Abschnitt Zusätzliche Informationen.](#implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional) | Cloud-Administrator | 

## Zugehörige Ressourcen
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-resources"></a>
+ [Isolieren von Mandanten mit dynamisch generierten IAM-Richtlinien](https://aws.amazon.com/blogs/apn/isolating-saas-tenants-with-dynamically-generated-iam-policies/) (Blogbeitrag)
+ [Anwendung dynamisch generierter Isolationsrichtlinien in SaaS-Umgebungen](https://aws.amazon.com/blogs/apn/applying-dynamically-generated-isolation-policies-in-saas-environments/) (Blogbeitrag)
+ [SaaS auf AWS](https://aws.amazon.com/saas/)

## Zusätzliche Informationen
<a name="implement-saas-tenant-isolation-for-amazon-s3-by-using-an-aws-lambda-token-vending-machine-additional"></a>

Das folgende Protokoll zeigt die dynamisch generierte Richtlinie, die durch den TVM-Code in diesem Muster erstellt wurde. In diesem Screenshot sind das „ist“ `DOC-EXAMPLE-BUCKET` und das `<sample-tenant-name>` „`<sample-app-bucket-name>`ist“ zu sehen. `test-tenant-1` Die von dieser bereichsbezogenen Richtlinie zurückgegebenen STS-Anmeldeinformationen können keine Aktionen für Objekte im S3-Bucket ausführen, mit Ausnahme von Objekten, die dem Objektschlüsselpräfix zugeordnet sind. `test-tenant-1`

![\[Protokoll mit einer dynamisch generierten Richtlinie, die durch den TVM-Code erstellt wurde.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/97a34c8e-d04e-40b6-acbf-1baa176d22a9/images/d4776ebe-fb8f-41ac-b8c5-b4f97a821c8c.png)


## Anlagen
<a name="attachments-97a34c8e-d04e-40b6-acbf-1baa176d22a9"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/97a34c8e-d04e-40b6-acbf-1baa176d22a9/attachments/attachment.zip)

# Implementieren Sie das serverlose Saga-Muster mithilfe von AWS Step Functions
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions"></a>

*Tabby Ward, Joe Kern und Rohan Mehta, Amazon Web Services*

## Zusammenfassung
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-summary"></a>

In einer Microservices-Architektur besteht das Hauptziel darin, entkoppelte und unabhängige Komponenten zu erstellen, um Agilität, Flexibilität und eine schnellere Markteinführung Ihrer Anwendungen zu fördern. Durch die Entkopplung verfügt jede Microservice-Komponente über eine eigene Datenpersistenzschicht. In einer verteilten Architektur können sich Geschäftstransaktionen über mehrere Microservices erstrecken. Da diese Microservices keine einzige ACID-Transaktion (Atomicity, Consistency, Isolation, Durability) verwenden können, kann es am Ende zu Teiltransaktionen kommen. In diesem Fall ist eine gewisse Kontrolllogik erforderlich, um die bereits verarbeiteten Transaktionen rückgängig zu machen. Zu diesem Zweck wird in der Regel das verteilte Saga-Muster verwendet. 

Das Saga-Muster ist ein Fehlermanagementmuster, das dazu beiträgt, Konsistenz in verteilten Anwendungen herzustellen und Transaktionen zwischen mehreren Microservices zu koordinieren, um die Datenkonsistenz aufrechtzuerhalten. Wenn Sie das Saga-Muster verwenden, veröffentlicht jeder Dienst, der eine Transaktion ausführt, ein Ereignis, das nachfolgende Dienste veranlasst, die nächste Transaktion in der Kette auszuführen. Dies wird fortgesetzt, bis die letzte Transaktion in der Kette abgeschlossen ist. Wenn eine Geschäftstransaktion fehlschlägt, orchestriert Saga eine Reihe von Ausgleichstransaktionen, die die Änderungen rückgängig machen, die durch die vorherigen Transaktionen vorgenommen wurden.

Dieses Muster zeigt, wie die Einrichtung und Bereitstellung einer Beispielanwendung (die Reisereservierungen bearbeitet) mit serverlosen Technologien wie AWS Step Functions, AWS Lambda und Amazon DynamoDB automatisiert werden kann. Die Beispielanwendung verwendet auch Amazon API Gateway und Amazon Simple Notification Service (Amazon SNS), um einen Saga-Ausführungskoordinator zu implementieren. Das Muster kann mit einem Infrastructure as Code (IaC) -Framework wie dem AWS Cloud Development Kit (AWS CDK), dem AWS Serverless Application Model (AWS SAM) oder Terraform bereitgestellt werden.

## Voraussetzungen und Einschränkungen
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Berechtigungen zum Erstellen eines CloudFormation AWS-Stacks. Weitere Informationen finden Sie in der CloudFormation Dokumentation unter [Zugriffskontrolle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html).
+ IaC-Framework Ihrer Wahl (AWS CDK, AWS SAM oder Terraform), das mit Ihrem AWS-Konto konfiguriert ist, sodass Sie die Framework-CLI zur Bereitstellung der Anwendung verwenden können.
+ NodeJS, wird verwendet, um die Anwendung zu erstellen und lokal auszuführen. 
+ Ein Code-Editor Ihrer Wahl (wie Visual Studio Code, Sublime oder Atom).

**Produktversionen**
+ [NodeJS versie 1.4](https://nodejs.org/en/download/)
+ [AWS CDK versie 2.37.1](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install)
+ [AWS-SAM versie 1.71.0](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html)
+ [Terraform versie 1.3.7](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)

**Einschränkungen**

Event Sourcing ist eine natürliche Methode, um das Saga-Orchestrierungsmuster in einer Microservices-Architektur zu implementieren, in der alle Komponenten lose miteinander verknüpft sind und keine direkte Kenntnis voneinander haben. Wenn Ihre Transaktion eine kleine Anzahl von Schritten (drei bis fünf) umfasst, ist das Saga-Muster möglicherweise hervorragend geeignet. Die Komplexität nimmt jedoch mit der Anzahl der Microservices und der Anzahl der Schritte zu. 

Das Testen und Debuggen kann schwierig werden, wenn Sie dieses Design verwenden, da alle Dienste ausgeführt werden müssen, um das Transaktionsmuster zu simulieren.

## Architektur
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-architecture"></a>

**Zielarchitektur**

Die vorgeschlagene Architektur verwendet AWS Step Functions, um ein Saga-Muster zu erstellen, um Flüge zu buchen, Mietwagen zu buchen und Zahlungen für einen Urlaub zu verarbeiten.

Das folgende Workflow-Diagramm veranschaulicht den typischen Ablauf des Reisereservierungssystems. Der Workflow besteht aus der Reservierung von Flugreisen (“ ReserveFlight „), der Reservierung eines Autos (“ ReserveCarRental „), der Bearbeitung von Zahlungen (“ ProcessPayment „), der Bestätigung von Flugreservierungen (“ ConfirmFlight „) und der Bestätigung von Mietwagen (“ ConfirmCarRental „), gefolgt von einer Erfolgsmeldung, wenn diese Schritte abgeschlossen sind. Wenn das System jedoch bei der Ausführung einer dieser Transaktionen auf Fehler stößt, schlägt es rückwärts fehl. Beispielsweise löst ein Fehler bei der Zahlungsabwicklung (“ ProcessPayment „) eine Rückerstattung (“ RefundPayment „) aus, was dann zu einer Stornierung des Mietwagens und des Fluges (“ CancelRentalReservation "und" CancelFlightReservation „) führt, wodurch die gesamte Transaktion mit einer Fehlermeldung beendet wird.

Dieses Muster stellt separate Lambda-Funktionen für jede im Diagramm hervorgehobene Aufgabe sowie drei DynamoDB-Tabellen für Flüge, Mietwagen und Zahlungen bereit. Jede Lambda-Funktion erstellt, aktualisiert oder löscht die Zeilen in den jeweiligen DynamoDB-Tabellen, je nachdem, ob eine Transaktion bestätigt oder zurückgesetzt wurde. Das Muster verwendet Amazon SNS, um Textnachrichten (SMS) an Abonnenten zu senden und sie über fehlgeschlagene oder erfolgreiche Transaktionen zu informieren. 

![\[Workflow für ein Reisereservierungssystem, das auf dem Saga-Muster basiert.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/daad3e8e-6e6b-41c2-95c1-ca79d53ead64.png)


 

**Automatisierung und Skalierung**

Sie können die Konfiguration für diese Architektur mithilfe eines der IaC-Frameworks erstellen. Verwenden Sie einen der folgenden Links für Ihre bevorzugte IaC.
+ [Mit AWS CDK bereitstellen](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Mit AWS SAM bereitstellen](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Mit Terraform bereitstellen](https://serverlessland.com/workflows/saga-pattern-tf)

## Tools
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-tools"></a>

**AWS-Services**
+ [AWS Step Functions](https://aws.amazon.com/step-functions/) ist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Lambda-Funktionen und andere AWS-Services kombinieren können, um geschäftskritische Anwendungen zu erstellen. In der grafischen Konsole von Step Functions sehen Sie den Arbeitsablauf Ihrer Anwendung als eine Reihe von ereignisgesteuerten Schritten.
+ [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) ist ein vollständig verwalteter NoSQL-Datenbankservice, der schnelle und vorhersehbare Leistung mit nahtloser Skalierbarkeit bietet. Sie können mit DynamoDB eine Datenbanktabelle erstellen, mit der eine beliebige Datenmenge gespeichert und abgerufen werden kann und der Anforderungsdatenverkehr verarbeitet werden kann. 
+ [AWS Lambda](https://aws.amazon.com/lambda/) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde.
+ [Amazon API Gateway](https://aws.amazon.com/api-gateway/) ist ein AWS-Service für die Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung von REST, HTTP und WebSocket APIs in jeder Größenordnung.
+ [Amazon Simple Notification Service (Amazon SNS)](https://aws.amazon.com/sns/) ist ein verwalteter Service, der die Nachrichtenzustellung von Verlagen an Abonnenten ermöglicht.
+ Das [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/) ist ein Softwareentwicklungsframework zur Definition Ihrer Cloud-Anwendungsressourcen mithilfe vertrauter Programmiersprachen wie TypeScript,, Python JavaScript, Java und C\$1/.Net.
+ Das [AWS Serverless Application Model (AWS SAM)](https://aws.amazon.com/serverless/sam/) ist ein Open-Source-Framework für die Erstellung serverloser Anwendungen. Es bietet Kurzsyntax zum Ausdrücken von Funktionen APIs, Datenbanken und Zuordnungen von Ereignisquellen. 

**Code**

Den Code für eine Beispielanwendung, die das Saga-Muster demonstriert, einschließlich der IaC-Vorlage (AWS CDK, AWS SAM oder Terraform), der Lambda-Funktionen und der DynamoDB-Tabellen, finden Sie unter den folgenden Links. Folgen Sie den Anweisungen im ersten Epos, um diese zu installieren.
+ [Mit AWS CDK bereitstellen](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Mit AWS SAM bereitstellen](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Mit Terraform bereitstellen](https://serverlessland.com/workflows/saga-pattern-tf)

## Epen
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-epics"></a>

### Pakete installieren, kompilieren und bauen
<a name="install-packages-compile-and-build"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die NPM-Pakete. | Erstellen Sie ein neues Verzeichnis, navigieren Sie in einem Terminal zu diesem Verzeichnis und klonen Sie das GitHub Repository Ihrer Wahl aus dem *Codeabschnitt* weiter oben in diesem Muster.Führen Sie im Stammordner, der die `package.json` Datei enthält, den folgenden Befehl aus, um alle Node Package Manager (NPM) -Pakete herunterzuladen und zu installieren:<pre>npm install</pre> | Entwickler, Cloud-Architekt | 
| Kompilieren Sie Skripte. | Führen Sie im Stammordner den folgenden Befehl aus, um den TypeScript Transpiler anzuweisen, alle erforderlichen JavaScript Dateien zu erstellen:<pre>npm run build</pre> | Entwickler, Cloud-Architekt | 
| Achten Sie auf Änderungen und kompilieren Sie sie neu. | Führen Sie im Stammordner den folgenden Befehl in einem separaten Terminalfenster aus, um nach Codeänderungen zu suchen, und kompilieren Sie den Code, wenn eine Änderung erkannt wird:<pre>npm run watch</pre> | Entwickler, Cloud-Architekt | 
| Führen Sie Komponententests durch (nur AWS CDK).  | Wenn Sie das AWS-CDK verwenden, führen Sie im Stammordner den folgenden Befehl aus, um die Jest-Komponententests durchzuführen:<pre>npm run test</pre> | Entwickler, Cloud-Architekt | 

### Ressourcen für das AWS-Zielkonto bereitstellen
<a name="deploy-resources-to-the-target-aws-account"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie den Demo-Stack auf AWS bereit. | Die Anwendung ist von der AWS-Region unabhängig. Wenn Sie ein Profil verwenden, müssen Sie die Region explizit entweder im [AWS-Befehlszeilenschnittstellen-Profil (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) oder über [AWS-CLI-Umgebungsvariablen deklarieren.](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html)Führen Sie im Stammordner den folgenden Befehl aus, um eine Bereitstellungsassembly zu erstellen und sie für das AWS-Standardkonto und die AWS-Region bereitzustellen.AWS-CDK:<pre>cdk bootstrap<br />cdk deploy</pre>AWS-BETRUG:<pre>sam build<br />sam deploy --guided</pre>Terraform:<pre>terraform init<br />terraform apply</pre>Dieser Schritt kann mehrere Minuten dauern. Dieser Befehl verwendet die Standardanmeldedaten, die für die AWS-CLI konfiguriert wurden.Notieren Sie sich die API Gateway Gateway-URL, die nach Abschluss der Bereitstellung auf der Konsole angezeigt wird. Sie benötigen diese Informationen, um den Saga-Ausführungsablauf zu testen. | Entwickler, Cloud-Architekt | 
| Vergleichen Sie den bereitgestellten Stack mit dem aktuellen Status. | Führen Sie im Stammordner den folgenden Befehl aus, um den bereitgestellten Stack mit dem aktuellen Status zu vergleichen, nachdem Sie Änderungen am Quellcode vorgenommen haben:AWS-CDK:<pre>cdk diff</pre>AWS-BETRUG:<pre>sam deploy</pre>Terraform:<pre>terraform plan</pre> | Entwickler, Cloud-Architekt | 

### Testen Sie den Ausführungsablauf
<a name="test-the-execution-flow"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie den Ausführungsablauf der Saga. | Navigieren Sie zu der API-Gateway-URL, die Sie im vorherigen Schritt bei der Bereitstellung des Stacks notiert haben. Diese URL löst den Start der Zustandsmaschine aus. Weitere Informationen darüber, wie Sie den Fluss der Zustandsmaschine manipulieren können, indem Sie verschiedene URL-Parameter übergeben, finden Sie im Abschnitt [Zusätzliche Informationen](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional).Um die Ergebnisse anzusehen, melden Sie sich bei der AWS-Managementkonsole an und navigieren Sie zur Step Functions Functions-Konsole. Hier können Sie jeden Schritt der Saga State Machine sehen. Sie können auch die DynamoDB-Tabelle anzeigen, um die eingefügten, aktualisierten oder gelöschten Datensätze zu sehen. Wenn Sie den Bildschirm häufig aktualisieren, können Sie beobachten, wie sich der Transaktionsstatus von `pending` zu ändert. `confirmed` Sie können das SNS-Thema abonnieren, indem Sie den Code in der `stateMachine.ts` Datei mit Ihrer Handynummer aktualisieren, um SMS-Nachrichten bei erfolgreichen oder fehlgeschlagenen Reservierungen zu erhalten. Weitere Informationen finden Sie unter *Amazon SNS* im Abschnitt [Zusätzliche Informationen](#implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional). | Entwickler, Cloud-Architekt | 

### Bereinigen
<a name="clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereinigen Sie die Ressourcen. | Um die für diese Anwendung bereitgestellten Ressourcen zu bereinigen, können Sie einen der folgenden Befehle verwenden.AWS-CDK:<pre>cdk destroy</pre>AWS-BETRUG:<pre>sam delete</pre>Terraform:<pre>terraform destroy</pre> | App-Entwickler, Cloud-Architekt | 

## Zugehörige Ressourcen
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-resources"></a>

**Technische Dokumente**
+ [Implementierung von Microservices auf AWS](https://docs.aws.amazon.com/pdfs/whitepapers/latest/microservices-on-aws/microservices-on-aws.pdf)
+ [Linse für serverlose Anwendungen](https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/welcome.html)

**AWS-Servicedokumentation**
+ [Erste Schritte mit dem AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html)
+ [Erste Schritte mit AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html)
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/)
+ [Amazon-DynamoDB](https://docs.aws.amazon.com/dynamodb/)
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/)
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/)
+ [Amazon SNS](https://docs.aws.amazon.com/sns/)

**Tutorials**
+ [Praktische Workshops zum Thema Serverless Computing](https://aws.amazon.com/serverless-workshops/)

## Zusätzliche Informationen
<a name="implement-the-serverless-saga-pattern-by-using-aws-step-functions-additional"></a>

**Code**

Zu Testzwecken stellt dieses Muster API Gateway und eine Test-Lambda-Funktion bereit, die die Step Functions Functions-Zustandsmaschine auslöst. Mit Step Functions können Sie die Funktionalität des Reisereservierungssystems steuern, indem Sie einen `run_type` Parameter übergeben, um Fehler in "ReserveFlight,“ "ReserveCarRental,“ ",“ "ProcessPayment,“ und "ConfirmFlight“ nachzuahmenConfirmCarRental.

Die `saga` Lambda-Funktion (`sagaLambda.ts`) nimmt Eingaben aus den Abfrageparametern in der API-Gateway-URL entgegen, erstellt das folgende JSON-Objekt und übergibt es zur Ausführung an Step Functions:

```
let input = {
"trip_id": tripID, //  value taken from query parameter, default is AWS request ID
"depart_city": "Detroit",
"depart_time": "2021-07-07T06:00:00.000Z",
"arrive_city": "Frankfurt",
"arrive_time": "2021-07-09T08:00:00.000Z",
"rental": "BMW",
"rental_from": "2021-07-09T00:00:00.000Z",
"rental_to": "2021-07-17T00:00:00.000Z",
"run_type": runType // value taken from query parameter, default is "success"
};
```

Sie können mit verschiedenen Abläufen der Step Functions Functions-Zustandsmaschine experimentieren, indem Sie die folgenden URL-Parameter übergeben:
+ **Erfolgreiche Ausführung** ─ https://\$1api gateway url\$1
+ **Flug reservieren gescheitert** ─ https://\$1api Gateway-URL\$1? **Ausführungstyp = failFlightsReservation**
+ **Flugfehler bestätigen ─ https://\$1api** Gateway-URL\$1? **Ausführungstyp = failFlightsConfirmation**
+ **Mietwagen-Reservierung ist fehlgeschlagen** ─ https://\$1api Gateway-URL\$1? **runType= Reservierung failCarRental**
+ **Bestätigen Sie, dass die Autovermietung fehlgeschlagen** ist ─ https://\$1api Gateway-URL\$1? **runType= Bestätigung failCarRental**
+ **Zahlungsvorgang fehlgeschlagen** ─ https://\$1api Gateway-URL\$1? **runType=Zahlung fehlschlagen**
+ **Eine Reise-ID weitergeben** ─ https://\$1api Gateway-URL\$1? **TripId=** \$1Standardmäßig ist die Reise-ID die AWS-Anfrage-ID\$1

**IaC-Vorlagen**

Die verknüpften Repositorien enthalten IaC-Vorlagen, mit denen Sie den gesamten Musterantrag für Reisereservierungen erstellen können.
+ [Mit AWS CDK bereitstellen](https://serverlessland.com/workflows/saga-pattern-cdk)
+ [Mit AWS SAM bereitstellen](https://serverlessland.com/workflows/saga-pattern-sam)
+ [Mit Terraform bereitstellen](https://serverlessland.com/workflows/saga-pattern-tf)

**DynamoDB-Tabellen**

Hier sind die Datenmodelle für die Tabellen mit Flügen, Mietwagen und Zahlungen.

```
Flight Data Model:
 var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: flightReservationID},
        'trip_id' : {S: event.trip_id},
        'id': {S: flightReservationID},
        'depart_city' : {S: event.depart_city},
        'depart_time': {S: event.depart_time},
        'arrive_city': {S: event.arrive_city},
        'arrive_time': {S: event.arrive_time},
        'transaction_status': {S: 'pending'}
      }
    };

Car Rental Data Model:
var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: carRentalReservationID},
        'trip_id' : {S: event.trip_id},
        'id': {S: carRentalReservationID},
        'rental': {S: event.rental},
        'rental_from': {S: event.rental_from},
        'rental_to': {S: event.rental_to},
        'transaction_status': {S: 'pending'}
      }
    };

Payment Data Model:
var params = {
      TableName: process.env.TABLE_NAME,
      Item: {
        'pk' : {S: event.trip_id},
        'sk' : {S: paymentID},
        'trip_id' : {S: event.trip_id},
        'id': {S: paymentID},
        'amount': {S: "750.00"}, // hard coded for simplicity as implementing any monetary transaction functionality is beyond the scope of this pattern
        'currency': {S: "USD"},
        'transaction_status': {S: "confirmed"}
      }
    };
```

**Lambda-Funktionen**

Die folgenden Funktionen werden erstellt, um den Zustandsmaschinenfluss und die Ausführung in Step Functions zu unterstützen:
+ **Flüge reservieren**: Fügt einen Datensatz mit einem `transaction_status` of in die DynamoDB-Flugtabelle ein`pending`, um einen Flug zu buchen.
+ **Flug bestätigen**: Aktualisiert den Datensatz in der DynamoDB-Flugtabelle, um ihn auf einzustellen`confirmed`, `transaction_status` um den Flug zu bestätigen.
+ **Flugreservierung stornieren**: Löscht den Datensatz aus der DynamoDB-Flugtabelle, um den ausstehenden Flug zu stornieren.
+ **Mietwagen reservieren**: Fügt einen Datensatz mit einem `transaction_status` of in die CarRentals DynamoDB-Tabelle ein`pending`, um eine Autovermietung zu buchen.
+ **Autovermietungen bestätigen**: Aktualisiert den Datensatz in der CarRentals DynamoDB-Tabelle, um ihn auf zu setzen`confirmed`, `transaction_status` um die Autovermietung zu bestätigen.
+ **Mietwagenreservierung stornieren:** Löscht den Datensatz aus der CarRentals DynamoDB-Tabelle, um die ausstehende Autovermietung zu stornieren.
+ **Zahlung verarbeiten**: Fügt einen Datensatz für die Zahlung in die DynamoDB-Zahlungstabelle ein.
+ **Zahlung stornieren**: Löscht den Datensatz für die Zahlung aus der DynamoDB-Zahlungstabelle.

**Amazon SNS**

Die Beispielanwendung erstellt das folgende Thema und Abonnement für den Versand von SMS-Nachrichten und die Benachrichtigung des Kunden über erfolgreiche oder fehlgeschlagene Reservierungen. Wenn Sie beim Testen der Beispielanwendung Textnachrichten empfangen möchten, aktualisieren Sie das SMS-Abonnement mit Ihrer gültigen Telefonnummer in der State-Machine-Definitionsdatei.

AWS-CDK-Snippet (fügen Sie die Telefonnummer in der zweiten Zeile des folgenden Codes hinzu):

```
const topic = new  sns.Topic(this, 'Topic');
topic.addSubscription(new subscriptions.SmsSubscription('+11111111111'));
const snsNotificationFailure = new tasks.SnsPublish(this ,'SendingSMSFailure', {
topic:topic,
integrationPattern: sfn.IntegrationPattern.REQUEST_RESPONSE,
message: sfn.TaskInput.fromText('Your Travel Reservation Failed'),
});
 
const snsNotificationSuccess = new tasks.SnsPublish(this ,'SendingSMSSuccess', {
topic:topic,
integrationPattern: sfn.IntegrationPattern.REQUEST_RESPONSE,
message: sfn.TaskInput.fromText('Your Travel Reservation is Successful'),
});
```

AWS SAM-Snippet (ersetzen Sie die `+1111111111` Zeichenketten durch Ihre gültige Telefonnummer):

```
  StateMachineTopic11111111111:
    Type: 'AWS::SNS::Subscription'
    Properties:
      Protocol: sms
      TopicArn:
        Ref: StateMachineTopic
      Endpoint: '+11111111111'
    Metadata:
      'aws:sam:path': SamServerlessSagaStack/StateMachine/Topic/+11111111111/Resource
```

Terraform-Snippet (ersetzen Sie die `+111111111` Zeichenfolge durch Ihre gültige Telefonnummer):

```
resource "aws_sns_topic_subscription" "sms-target" {
  topic_arn = aws_sns_topic.topic.arn
  protocol  = "sms"
  endpoint  = "+11111111111"
}
```

**Erfolgreiche Reservierungen**

Der folgende Ablauf veranschaulicht eine erfolgreiche Reservierung mit "ReserveFlight,“ "ReserveCarRental,“ und "ProcessPayment" gefolgt von "ConfirmFlight" und "“ConfirmCarRental. Der Kunde wird durch SMS-Nachrichten, die an den Abonnenten des SNS-Themas gesendet werden, über die erfolgreiche Buchung informiert.

![\[Beispiel für eine erfolgreiche Reservierung, die von Step Functions mithilfe des Saga-Musters implementiert wurde.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/f58c894e-7721-4bc7-8f7d-29f23faa5dc1.png)


**Fehlgeschlagene Reservierungen**

Dieser Ablauf ist ein Beispiel für einen Fehler im Saga-Muster. Wenn "ProcessPayment" nach der Buchung von Flügen und Mietwagen fehlschlägt, werden die Schritte in umgekehrter Reihenfolge storniert.  Die Reservierungen werden freigegeben und der Kunde wird über SMS-Nachrichten, die an den Abonnenten des SNS-Themas gesendet werden, über den Ausfall informiert.

![\[Beispiel für eine fehlgeschlagene Reservierung, die von Step Functions mithilfe des Saga-Musters implementiert wurde.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/fec0789c-d9b1-4d80-b179-dd9a7ecbec07/images/7c64d326-be27-42c3-b03f-d677efedb9a7.png)


# Verwalten Sie lokale Containeranwendungen, indem Sie Amazon ECS Anywhere mit dem AWS CDK einrichten
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk"></a>

*Dr. Rahul Sharad Gaikwad, Amazon Web Services*

## Zusammenfassung
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-summary"></a>

[Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) ist eine Erweiterung des Amazon Elastic Container Service (Amazon ECS). Sie können ECS Anywhere verwenden, um native Amazon ECS-Aufgaben in einer lokalen oder vom Kunden verwalteten Umgebung bereitzustellen. Diese Funktion trägt dazu bei, Kosten zu senken und komplexe lokale Container-Orchestrierung und Betriebsabläufe zu vereinfachen. Sie können ECS Anywhere verwenden, um Containeranwendungen sowohl in lokalen als auch in Cloud-Umgebungen bereitzustellen und auszuführen. Dadurch entfällt für Ihr Team die Notwendigkeit, mehrere Bereiche und Fähigkeiten zu erlernen oder komplexe Software eigenständig zu verwalten.

Dieses Muster veranschaulicht die Schritte zur Einrichtung von ECS Anywhere mithilfe von [AWS Cloud Development Kit (AWS CDK) -Stacks](https://aws.amazon.com/cdk/).

## Voraussetzungen und Einschränkungen
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ AWS-Befehlszeilenschnittstelle (AWS CLI), installiert und konfiguriert. (Weitere Informationen finden Sie unter [Installation, Aktualisierung und Deinstallation der AWS-CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) in der AWS-CLI-Dokumentation.) 
+ AWS CDK Toolkit, installiert und konfiguriert. (Sehen Sie sich das [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) in der AWS CDK-Dokumentation an und folgen Sie den Anweisungen, um Version 2 global zu installieren.)
+ Node Package Manager (npm), installiert und konfiguriert für das AWS-CDK in. TypeScript (Weitere Informationen finden Sie unter [Node.js und npm herunterladen und installieren in der npm-Dokumentation](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm).)

**Einschränkungen**
+ Einschränkungen und Überlegungen finden Sie unter [Externe Instances (Amazon ECS Anywhere)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-anywhere.html#ecs-anywhere-considerations) in der Amazon ECS-Dokumentation.

**Produktversionen**
+ AWS CDK Toolkit, Version 2
+ npm Version 7.20.3 oder höher
+ Node.js Version 16.6.1 oder höher

## Architektur
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-architecture"></a>

**Zieltechnologie-Stack**
+ AWS CloudFormation
+ AWS-CDK
+ Amazon ECS Anywhere
+ AWS Identity and Access Management (IAM)

**Zielarchitektur**

Das folgende Diagramm zeigt eine allgemeine Systemarchitektur des ECS Anywhere-Setups unter Verwendung des AWS CDK mit TypeScript, wie in diesem Muster implementiert.

1. Wenn Sie den AWS-CDK-Stack bereitstellen, erstellt er einen CloudFormation Stack auf AWS.

1. Der CloudFormation Stack stellt einen Amazon ECS-Cluster und zugehörige AWS-Ressourcen bereit.

1. Um eine externe Instance bei einem Amazon ECS-Cluster zu registrieren, müssen Sie den AWS Systems Manager Agent (SSM Agent) auf Ihrer virtuellen Maschine (VM) installieren und die VM als von AWS Systems Manager verwaltete Instanz registrieren. 

1. Sie müssen auch den Amazon ECS-Container-Agenten und Docker auf Ihrer VM installieren, um sie als externe Instance beim Amazon ECS-Cluster zu registrieren.

1. Wenn die externe Instance registriert und mit dem Amazon ECS-Cluster konfiguriert ist, kann sie mehrere Container auf Ihrer VM ausführen, die als externe Instance registriert ist.

![\[ECS Anywhere-Einrichtung mit dem AWS-CDK mit TypeScript.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/3ed63c00-40e7-4831-bb9d-63049c3490aa/images/ff7dc774-830d-4b9f-8262-7314afe7a033.png)


 

**Automatisierung und Skalierung**

Das mit diesem Muster bereitgestellte [GitHub Repository](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples/) verwendet das AWS-CDK als IaC-Tool (Infrastructure as Code), um die Konfiguration für diese Architektur zu erstellen. AWS CDK hilft Ihnen bei der Orchestrierung von Ressourcen und der Einrichtung von ECS Anywhere.

## Tools
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-tools"></a>
+ Das [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html) ist ein Softwareentwicklungs-Framework, das Sie bei der Definition und Bereitstellung der AWS-Cloud-Infrastruktur im Code unterstützt.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.

**Code**

Der Quellcode für dieses Muster ist im [Amazon ECS Anywhere CDK Samples-Repository](https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples) verfügbar. GitHub Folgen Sie den Anweisungen im nächsten Abschnitt, um das Repository zu klonen und zu verwenden.

## Epen
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-epics"></a>

### Überprüfen Sie die AWS-CDK-Konfiguration
<a name="verify-aws-cdk-configuration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die AWS-CDK-Version. | Überprüfen Sie die Version des AWS CDK Toolkit, indem Sie den folgenden Befehl ausführen:<pre>cdk --version</pre>Für dieses Muster ist AWS CDK Version 2 erforderlich. Wenn Sie eine frühere Version von AWS CDK haben, folgen Sie den Anweisungen in der [AWS CDK-Dokumentation](https://docs.aws.amazon.com/cdk/v2/guide/cli.html), um sie zu aktualisieren. | DevOps Ingenieur | 
| Richten Sie AWS-Anmeldeinformationen ein. | Um Anmeldeinformationen einzurichten, führen Sie den `aws configure` Befehl aus und folgen Sie den Anweisungen:<pre>$aws configure<br />AWS Access Key ID [None]: <your-access-key-ID><br />AWS Secret Access Key [None]: <your-secret-access-key><br />Default region name [None]: <your-Region-name><br />Default output format [None]:</pre> | DevOps Ingenieur | 

### Bootstrap für die AWS-CDK-Umgebung
<a name="bootstrap-the-aws-cdk-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das AWS-CDK-Code-Repository. | Klonen Sie das GitHub Code-Repository für dieses Muster mit dem folgenden Befehl:<pre>git clone https://github.com/aws-samples/amazon-ecs-anywhere-cdk-samples.git</pre> | DevOps Ingenieur | 
| Bootstrapping für die Umwelt. | Führen Sie den folgenden Befehl aus, um die CloudFormation AWS-Vorlage für das Konto und die AWS-Region bereitzustellen, die Sie verwenden möchten:<pre>cdk bootstrap <account-number>/<Region></pre>Weitere Informationen finden Sie unter [Bootstrapping](https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html) in der AWS CDK-Dokumentation. | DevOps Ingenieur | 

### Erstellen und implementieren Sie das Projekt
<a name="build-and-deploy-the-project"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie Paketabhängigkeiten und kompilieren Sie TypeScript Dateien. | Installieren Sie die Paketabhängigkeiten und kompilieren Sie die TypeScript Dateien, indem Sie die folgenden Befehle ausführen:<pre>$cd amazon-ecs-anywhere-cdk-samples<br />$npm install<br />$npm fund </pre>Mit diesen Befehlen werden alle Pakete aus dem Beispiel-Repository installiert. Wenn Sie eine Fehlermeldung über fehlende Pakete erhalten, verwenden Sie einen der folgenden Befehle:<pre>$npm ci   </pre> –oder –<pre>$npm install -g @aws-cdk/<package_name></pre>Weitere Informationen finden Sie unter [npm ci](https://docs.npmjs.com/cli/v7/commands/npm-ci) und [npm install](https://docs.npmjs.com/cli/v7/commands/npm-install) in der npm-Dokumentation. | DevOps Ingenieur | 
| Erstellen Sie das Projekt. | Führen Sie den folgenden Befehl aus, um den Projektcode zu erstellen:<pre>npm run build</pre>Weitere Informationen zum Erstellen und Bereitstellen des Projekts finden Sie unter [Ihre erste AWS-CDK-App](https://docs.aws.amazon.com/cdk/latest/guide/hello_world.html#:~:text=the%20third%20parameter.-,Synthesize%20an%20AWS%20CloudFormation%20template,-Synthesize%20an%20AWS) in der AWS-CDK-Dokumentation. | DevOps Ingenieur | 
| Stellen Sie das Projekt bereit. | Führen Sie den folgenden Befehl aus, um den Projektcode bereitzustellen:<pre>cdk deploy</pre> | DevOps Ingenieur | 
| Überprüfen Sie die Erstellung und Ausgabe des Stacks. | Öffnen Sie die CloudFormation AWS-Konsole unter [https://console.aws.amazon.com/cloudformation****](https://console.aws.amazon.com/cloudformation/) und wählen Sie den `EcsAnywhereStack` Stack aus. Auf der Registerkarte **Ausgaben** werden die Befehle angezeigt, die auf Ihrer externen VM ausgeführt werden sollen. | DevOps Ingenieur | 

### Richten Sie einen lokalen Computer ein
<a name="set-up-an-on-premises-machine"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Ihre VM mithilfe von Vagrant ein. | Zu Demonstrationszwecken können Sie [HashiCorp Vagrant](https://www.vagrantup.com/) verwenden, um eine VM zu erstellen. Vagrant ist ein Open-Source-Hilfsprogramm für den Aufbau und die Wartung portabler virtueller Softwareentwicklungsumgebungen. Erstellen Sie eine Vagrant-VM, indem Sie den `vagrant up` Befehl im Stammverzeichnis ausführen, in dem Vagrantfile gespeichert ist. [Weitere Informationen finden Sie in der Vagrant-Dokumentation.](https://www.vagrantup.com/docs/cli/up) | DevOps Ingenieur | 
| Registrieren Sie Ihre VM als externe Instanz. | 1. Melden Sie sich mit dem `vagrant ssh` Befehl bei der Vagrant-VM an. Weitere Informationen finden Sie in der [Vagrant-Dokumentation](https://www.vagrantup.com/docs/cli/ssh).2. Erstellen Sie einen Aktivierungscode und eine ID, mit denen Sie Ihre VM bei AWS Systems Manager registrieren und Ihre externe Instanz aktivieren können. Die Ausgabe dieses Befehls umfasst `ActivationId` und `ActivationCode` Werte: <pre>aws ssm create-activation --iam-role EcsAnywhereInstanceRole | tee ssm-activation.json</pre>3. Exportieren Sie die Aktivierungs-ID und die Codewerte:<pre>export ACTIVATION_ID=<activation-ID><br />export ACTIVATION_CODE=<activation-code></pre>4. Laden Sie das Installationsskript auf Ihren lokalen Server oder Ihre VM herunter:<pre>curl -o "ecs-anywhere-install.sh" "https://amazon-ecs-agent.s3.amazonaws.com/ecs-anywhere-install-latest.sh" && sudo chmod +x ecs-anywhere-install.sh</pre>5. Führen Sie das Installationsskript auf Ihrem lokalen Server oder Ihrer VM aus:<pre>sudo ./ecs-anywhere-install.sh \<br />    --cluster test-ecs-anywhere \<br />     --activation-id $ACTIVATION_ID \<br />     --activation-code $ACTIVATION_CODE \<br />    --region <Region></pre>Weitere Informationen zum Einrichten und Registrieren Ihrer VM finden Sie unter [Registrierung einer externen Instance in einem Cluster](https://docs.amazonaws.cn/en_us/AmazonECS/latest/developerguide/ecs-anywhere-registration.html) in der Amazon ECS-Dokumentation. | DevOps Ingenieur | 
| Überprüfen Sie den Status von ECS Anywhere und der externen VM. | Verwenden Sie die folgenden Befehle, um zu überprüfen, ob Ihre virtuelle Box mit der Amazon ECS-Steuerebene verbunden ist und läuft:<pre>aws ssm describe-instance-information<br />aws ecs list-container-instances --cluster $CLUSTER_NAME</pre> | DevOps Ingenieur | 

### Bereinigen
<a name="clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ressourcen bereinigen und löschen. | Nachdem Sie dieses Muster durchgegangen sind, sollten Sie die Ressourcen, die Sie erstellt haben, entfernen, um weitere Kosten zu vermeiden. Führen Sie zum Aufräumen den folgenden Befehl aus:<pre>cdk destroy</pre> | DevOps Ingenieur | 

## Zugehörige Ressourcen
<a name="manage-on-premises-container-applications-by-setting-up-amazon-ecs-anywhere-with-the-aws-cdk-resources"></a>
+ [Dokumentation zu Amazon ECS Anywhere](https://aws.amazon.com/ecs/anywhere/) 
+ [Amazon ECS Anywhere Anywhere-Demo](https://www.youtube.com/watch?v=-eud6yUXsJM)
+ [Beispiele Amazon ECS Anywhere Anywhere-Workshops](https://github.com/aws-samples/aws-ecs-anywhere-workshop-samples)

# Modernisieren Sie ASP.NET Web Forms-Anwendungen auf AWS
<a name="modernize-asp-net-web-forms-applications-on-aws"></a>

*Vijai Anand Ramalingam und Sreelaxmi Pai, Amazon Web Services*

## Zusammenfassung
<a name="modernize-asp-net-web-forms-applications-on-aws-summary"></a>

Dieses Muster beschreibt die Schritte zur Modernisierung einer älteren, monolithischen ASP.NET Web Forms-Anwendung durch Portierung auf ASP.NET Core auf AWS.

Durch die Portierung von ASP.NET Web Forms-Anwendungen auf ASP.NET Core können Sie die Leistung, die Kosteneinsparungen und das robuste Ökosystem von Linux nutzen. Dies kann jedoch ein erheblicher manueller Aufwand sein. In diesem Muster wird die Legacy-Anwendung schrittweise mithilfe eines schrittweisen Ansatzes modernisiert und anschließend in der AWS-Cloud containerisiert.

Stellen Sie sich eine ältere, monolithische Anwendung für einen Einkaufswagen vor. Nehmen wir an, dass sie als ASP.NET-Webforms-Anwendung erstellt wurde und aus ASPX-Seiten mit einer Code-Behind () -Datei besteht. `aspx.cs` Der Modernisierungsprozess besteht aus den folgenden Schritten:

1. Teilen Sie den Monolith in Microservices auf, indem Sie die entsprechenden Zerlegungsmuster verwenden. Weitere Informationen finden Sie im Leitfaden [Decomposing monoliths into microservices](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-decomposing-monoliths/) auf der AWS Prescriptive Guidance Guidance-Website.

1. Portieren Sie Ihre ältere ASP.NET Web Forms (.NET Framework) -Anwendung auf ASP.NET Core in .NET 5 oder höher. In diesem Muster verwenden Sie den Portierungsassistenten für .NET, um Ihre ASP.NET Web Forms-Anwendung zu scannen und Inkompatibilitäten mit ASP.NET Core zu identifizieren. Dadurch wird der manuelle Portierungsaufwand reduziert.

1. Entwickeln Sie die Web Forms-Benutzeroberflächenebene mithilfe von React neu. Dieses Muster deckt die Neuentwicklung der Benutzeroberfläche nicht ab. Anweisungen finden Sie unter [Neue React-App erstellen](https://reactjs.org/docs/create-a-new-react-app.html) in der React-Dokumentation.

1. Entwickeln Sie die Web Forms-Codebehind-Datei (Geschäftsschnittstelle) als ASP.NET Core-Web-API neu. Dieses Muster verwendet NDepend Berichte, um benötigte Dateien und Abhängigkeiten zu identifizieren.

1. Führen Sie mithilfe des Portierungsassistenten für .NET ein Upgrade von shared/common Projekten wie Business Logic und Data Access in Ihrer Legacy-Anwendung auf .NET 5 oder höher durch. 

1. Fügen Sie AWS-Services hinzu, um Ihre Anwendung zu ergänzen. Sie können beispielsweise [Amazon CloudWatch Logs verwenden, um die Protokolle](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) Ihrer Anwendung zu überwachen, zu speichern und darauf zuzugreifen, und [AWS Systems Manager](https://aws.amazon.com/systems-manager/), um Ihre Anwendungseinstellungen zu speichern.

1. Containerisieren Sie die modernisierte ASP.NET Core-Anwendung. Dieses Muster erstellt eine Docker-Datei, die auf Linux in Visual Studio abzielt und Docker Desktop verwendet, um sie lokal zu testen. In diesem Schritt wird davon ausgegangen, dass Ihre Legacy-Anwendung bereits auf einer lokalen Windows-Instance oder einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance ausgeführt wird. Weitere Informationen finden Sie im Muster [Einen ASP.NET Core-Web-API-Docker-Container auf einer Amazon EC2 Linux-Instance ausführen](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-an-asp-net-core-web-api-docker-container-on-an-amazon-ec2-linux-instance.html).

1. Stellen Sie die modernisierte ASP.NET-Kernanwendung auf Amazon Elastic Container Service (Amazon ECS) bereit. Dieses Muster deckt den Bereitstellungsschritt nicht ab. Anweisungen finden Sie im [Amazon ECS-Workshop](https://ecsworkshop.com/).

**Anmerkung**  
Dieses Muster deckt keine Schritte zur Entwicklung der Benutzeroberfläche, zur Datenbankmodernisierung oder zur Container-Bereitstellung ab.

## Voraussetzungen und Einschränkungen
<a name="modernize-asp-net-web-forms-applications-on-aws-prereqs"></a>

**Voraussetzungen**
+ [Visual Studio](https://visualstudio.microsoft.com/downloads/) oder [Visual Studio Code](https://code.visualstudio.com/download), heruntergeladen und installiert.
+ Zugriff auf ein AWS-Konto über die AWS-Managementkonsole und die AWS-Befehlszeilenschnittstelle (AWS CLI) Version 2. (Weitere Informationen finden Sie in den [Anweisungen zur Konfiguration der AWS-CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).)
+ Das AWS Toolkit for Visual Studio (siehe [Anweisungen zur Einrichtung](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html)).
+ Docker Desktop, [heruntergeladen und installiert](https://www.docker.com/products/docker-desktop).
+ .NET SDK, [heruntergeladen](https://download.visualstudio.microsoft.com/download/pr/4263dc3b-dc67-4f11-8d46-cc0ae86a232e/66782bbd04c53651f730b2e30a873f18/dotnet-sdk-5.0.203-win-x64.exe) und installiert.
+ NDepend Tool, [heruntergeladen](https://www.ndepend.com/download) und installiert. Um die NDepend Erweiterung für Visual Studio zu installieren, führen Sie den `NDepend.VisualStudioExtension.Installer` Befehl aus ([siehe Anweisungen](https://www.ndepend.com/docs/getting-started-with-ndepend#Part1)). Sie können je nach Ihren Anforderungen Visual Studio 2019 oder 2022 auswählen. 
+ Portierungsassistent für .NET, [heruntergeladen](https://aws.amazon.com/porting-assistant-dotnet/) und installiert.

## Architektur
<a name="modernize-asp-net-web-forms-applications-on-aws-architecture"></a>

**Modernisierung der Warenkorb-Anwendung**

Das folgende Diagramm veranschaulicht den Modernisierungsprozess für eine ältere ASP.NET-Einkaufswagenanwendung.

![\[Modernisierung einer älteren Warenkorbanwendung\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/4367e259-9bb3-4eb6-a54d-1c1e2dece7d4.png)


**Zielarchitektur**

Das folgende Diagramm veranschaulicht die Architektur der modernisierten Einkaufswagen-Anwendung auf AWS. ASP.NET Core-Web APIs werden in einem Amazon ECS-Cluster bereitgestellt. Protokollierungs- und Konfigurationsservices werden von Amazon CloudWatch Logs und AWS Systems Manager bereitgestellt.

![\[Zielarchitektur für die ASP.NET Web Forms-Anwendung auf AWS\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/36cda8e6-f2cb-4f1a-b37f-fa3045cc5ba1/images/ed6d65ec-0dc9-43ab-ac07-1f172e089399.png)


## Tools
<a name="modernize-asp-net-web-forms-applications-on-aws-tools"></a>

**AWS-Services**
+ [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. Sie können Ihre Aufgaben und Services auf einer serverlosen Infrastruktur ausführen, die von AWS Fargate verwaltet wird. Um mehr Kontrolle über Ihre Infrastruktur zu erhalten, können Sie Ihre Aufgaben und Dienste alternativ auf einem Cluster von EC2 Instances ausführen, die Sie verwalten.
+ [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) — Amazon CloudWatch Logs zentralisiert die Protokolle all Ihrer Systeme, Anwendungen und AWS-Services, die Sie verwenden. Sie können die Protokolle anzeigen und überwachen, sie nach bestimmten Fehlercodes oder Mustern durchsuchen, sie nach bestimmten Feldern filtern oder sie für future Analysen sicher archivieren.
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) ─ AWS Systems Manager ist ein AWS-Service, mit dem Sie Ihre Infrastruktur auf AWS anzeigen und steuern können. Mithilfe der Systems Manager Manager-Konsole können Sie Betriebsdaten von mehreren AWS-Services anzeigen und betriebliche Aufgaben in Ihren AWS-Ressourcen automatisieren. Systems Manager unterstützt Sie bei der Aufrechterhaltung von Sicherheit und Compliance, indem es Ihre verwalteten Instanzen scannt und festgestellte Richtlinienverstöße meldet (oder Korrekturmaßnahmen ergreift).

**Tools**
+ [Visual Studio](https://visualstudio.microsoft.com/) oder [Visual Studio Code](https://code.visualstudio.com/) — Tools zum Erstellen von.NET-Anwendungen APIs, Web- und anderen Programmen.
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) — Eine Erweiterung für Visual Studio, die beim Entwickeln, Debuggen und Bereitstellen von.NET-Anwendungen hilft, die AWS-Services verwenden.
+ [Docker Desktop](https://www.docker.com/products/docker-desktop) — Ein Tool, das die Erstellung und Bereitstellung containerisierter Anwendungen vereinfacht.
+ [NDepend](https://www.ndepend.com/features/)— Ein Analysator, der .NET-Code auf Abhängigkeiten, Qualitätsprobleme und Codeänderungen überwacht.
+ [Portierungsassistent für .NET](https://aws.amazon.com/porting-assistant-dotnet/) — Ein Analysetool, das .NET-Code scannt, um Inkompatibilitäten mit .NET Core zu identifizieren und den Migrationsaufwand abzuschätzen.

## Epen
<a name="modernize-asp-net-web-forms-applications-on-aws-epics"></a>

### Portieren Sie Ihre Legacy-Anwendung auf .NET 5 oder eine neuere Version
<a name="port-your-legacy-application-to-net-5-or-later-version"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren Sie Ihre.NET Framework-Legacy-Anwendung auf .NET 5. | Sie können den Portierungsassistenten für .NET verwenden, um Ihre ältere ASP.NET Web Forms-Anwendung auf .NET 5 oder höher zu konvertieren. Folgen Sie den Anweisungen in der [Dokumentation zu Porting Assistant for .NET](https://docs.aws.amazon.com/portingassistant/latest/userguide/porting-assistant-getting-started.html). | App-Developer | 
| Generieren Sie NDepend Berichte. | Wenn Sie Ihre ASP.NET Web Forms-Anwendung modernisieren, indem Sie sie in Microservices zerlegen, benötigen Sie möglicherweise nicht alle .cs-Dateien aus der Legacy-Anwendung. Sie können NDepend damit einen Bericht für jede Code-Behind (.cs) -Datei generieren, um alle Anrufer und Anrufer abzurufen. Dieser Bericht hilft Ihnen dabei, nur die erforderlichen Dateien in Ihren Microservices zu identifizieren und zu verwenden.Öffnen Sie nach der Installation NDepend (siehe Abschnitt [Voraussetzungen](#modernize-asp-net-web-forms-applications-on-aws-prereqs)) die Lösung (.sln-Datei) für Ihre Legacy-Anwendung in Visual Studio und gehen Sie wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Dieser Vorgang generiert einen Bericht für die Code-Behind-Datei, in der alle Anrufer und Anrufer aufgeführt sind. [Weitere Informationen zum Abhängigkeitsdiagramm finden Sie in der Dokumentation. NDepend ](https://www.ndepend.com/docs/visual-studio-dependency-graph) | App-Developer | 
| Erstellen Sie eine neue.NET 5-Lösung. | So erstellen Sie eine neue.NET 5-Struktur (oder höher) für Ihr modernisiertes ASP.NET Core-Web: APIs[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Weitere Informationen zum Erstellen von Projekten und Lösungen finden Sie in der [Visual Studio-Dokumentation](https://docs.microsoft.com/en-us/visualstudio/ide/creating-solutions-and-projects).Beim Erstellen der Lösung und beim Überprüfen der Funktionalität können Sie zusätzlich zu den NDepend identifizierten Dateien mehrere zusätzliche Dateien identifizieren, die der Lösung hinzugefügt werden sollen. | App-Developer | 

### Aktualisieren Sie Ihren Anwendungscode
<a name="update-your-application-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Implementieren Sie das Web APIs mit ASP.NET Core. | *Nehmen wir an, dass es sich bei einem der Microservices, die Sie in Ihrer alten Monolith-Einkaufswagen-Anwendung identifiziert haben, um Produkte handelt.* Sie haben im vorherigen Epos ein neues ASP.NET Core-Web-API-Projekt für *Produkte* erstellt. *In diesem Schritt identifizieren und modernisieren Sie alle Webformulare (.aspx-Seiten), die sich auf Produkte beziehen.* [Gehen wir davon aus, dass *Produkte* aus vier Webformularen bestehen, wie weiter oben im Abschnitt Architektur dargestellt:](#modernize-asp-net-web-forms-applications-on-aws-architecture)[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Sie sollten jedes Webformular analysieren, alle Anfragen identifizieren, die an die Datenbank gesendet werden, um eine gewisse Logik auszuführen, und Antworten erhalten. Sie können jede Anfrage als Web-API-Endpunkt implementieren. Aufgrund ihrer Webformulare können *Produkte* die folgenden möglichen Endpunkte haben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Wie bereits erwähnt, können Sie auch alle anderen Projekte, die Sie auf .NET 5 aktualisiert haben, wiederverwenden, einschließlich Business Logic, Data Access und shared/common Projekte. | App-Developer | 
| Konfigurieren Sie Amazon CloudWatch Logs. | Sie können [Amazon CloudWatch Logs verwenden, um die Protokolle](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) Ihrer Anwendung zu überwachen, zu speichern und darauf zuzugreifen. Sie können Daten mithilfe eines AWS-SDK in Amazon CloudWatch Logs protokollieren. Sie können auch.NET-Anwendungen in CloudWatch Logs integrieren, indem Sie gängige .NET-Logging-Frameworks wie [NLog](https://www.nuget.org/packages/AWS.Logger.NLog/)[Log4Net](https://www.nuget.org/packages/AWS.Logger.Log4net/) und das [ASP.NET Core-Logging-Framework](https://www.nuget.org/packages/AWS.Logger.AspNetCore/) verwenden.Weitere Informationen zu diesem Schritt finden Sie im Blogbeitrag [Amazon CloudWatch Logs and.NET Logging Frameworks](https://aws.amazon.com/blogs/developer/amazon-cloudwatch-logs-and-net-logging-frameworks/). | App-Developer | 
| Konfigurieren Sie den AWS Systems Manager Parameter Store. | Sie können den [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) verwenden, um Anwendungseinstellungen wie Verbindungszeichenfolgen getrennt vom Code Ihrer Anwendung zu speichern. Das NuGet Paket [Amazon.Extensions.Configuration. SystemsManager](https://www.nuget.org/packages/Amazon.Extensions.Configuration.SystemsManager/)vereinfacht, wie Ihre Anwendung diese Einstellungen aus dem AWS Systems Manager Parameter Store in das .NET Core-Konfigurationssystem lädt. Weitere Informationen zu diesem Schritt finden Sie im Blogbeitrag [.NET Core-Konfigurationsanbieter für AWS Systems Manager](https://aws.amazon.com/blogs/developer/net-core-configuration-provider-for-aws-systems-manager/). | App-Developer | 

### Fügen Sie Authentifizierung und Autorisierung hinzu
<a name="add-authentication-and-authorization"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Verwenden Sie ein geteiltes Cookie zur Authentifizierung. | Die Modernisierung einer älteren Monolith-Anwendung ist ein iterativer Prozess, bei dem der Monolith und seine modernisierte Version nebeneinander existieren müssen. Sie können ein geteiltes Cookie verwenden, um eine nahtlose Authentifizierung zwischen den beiden Versionen zu erreichen. Die ältere ASP.NET-Anwendung validiert weiterhin die Benutzeranmeldeinformationen und gibt das Cookie aus, während die modernisierte ASP.NET Core-Anwendung das Cookie validiert. [Anweisungen und Beispielcode finden Sie im Beispielprojekt. GitHub ](https://github.com/aws-samples/dotnet-share-auth-cookie-between-monolith-and-modernized-apps) | App-Developer | 

### Erstellen Sie den Container und führen Sie ihn lokal aus
<a name="build-and-run-the-container-locally"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein Docker-Image mit Visual Studio. | In diesem Schritt erstellen Sie eine Docker-Datei mithilfe der Visual Studio for .NET Core-Web-API.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html)Visual Studio erstellt eine Docker-Datei für Ihr Projekt. Eine Docker-Beispieldatei finden Sie unter [Visual Studio Container Tools for Docker](https://docs.microsoft.com/en-us/visualstudio/containers/overview) auf der Microsoft-Website. | App-Developer | 
| Erstellen Sie den Container mit Docker Desktop und führen Sie ihn aus. | Jetzt können Sie den Container in Docker Desktop erstellen, erstellen und ausführen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-asp-net-web-forms-applications-on-aws.html) | App-Developer | 

## Zugehörige Ressourcen
<a name="modernize-asp-net-web-forms-applications-on-aws-resources"></a>
+ [Einen ASP.NET Core-Web-API-Docker-Container auf einer Amazon EC2 Linux-Instance ausführen](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-an-asp-net-core-web-api-docker-container-on-an-amazon-ec2-linux-instance.html) (AWS Prescriptive Guidance)
+ [Amazon ECS-Workshop](https://ecsworkshop.com/)
+ [Durchführung von blue/green ECS-Bereitstellungen CodeDeploy mithilfe von AWS CloudFormation ( CloudFormation AWS-Dokumentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html))
+ [Erste Schritte mit NDepend](https://www.ndepend.com/docs/getting-started-with-ndepend) (NDepend Dokumentation)
+ [Portierungsassistent für .NET](https://aws.amazon.com/porting-assistant-dotnet/)

## Zusätzliche Informationen
<a name="modernize-asp-net-web-forms-applications-on-aws-additional"></a>

Die folgenden Tabellen enthalten Beispiele für Beispielprojekte für eine ältere Warenkorbanwendung und die entsprechenden Projekte in Ihrer modernisierten ASP.NET Core-Anwendung.

**Legacy-Lösung:**


| 
| 
| Project name | Vorlage für ein Projekt | Target framework | 
| --- |--- |--- |
| Geschäftsoberfläche  | Klassenbibliothek  | .NET Framework.  | 
| BusinessLogic  | Klassenbibliothek  | .NET Framework.  | 
| WebApplication  | ASP.NET Framework-Webanwendung  | .NET Framework.  | 
| UnitTests  | NUnit Projekt testen  | .NET Framework.  | 
| Geteilt -> Allgemein  | Klassenbibliothek  | .NET Framework.  | 
| Geteilt -> Framework  | Klassenbibliothek  | .NET Framework.  | 

**Neue Lösung:**


| 
| 
| Project name | Vorlage für ein Projekt | Target framework | 
| --- |--- |--- |
| BusinessLogic  | Klassenbibliothek  | .NET 5.0  | 
| <WebAPI>  | ASP.NET-Core-Web-API  | .NET 5.0  | 
| <WebAPI>. UnitTests  | NUnit 3 Testprojekt  | .NET 5.0  | 
| Geteilt -> Allgemein  | Klassenbibliothek  | .NET 5.0  | 
| Geteilt -> Framework  | Klassenbibliothek  | .NET 5.0  | 

# Mandanten-Onboarding in der SaaS-Architektur für das Silomodell mit C\$1 und AWS CDK
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk"></a>

*Tabby Ward, Susmitha Reddy Gankidi und Vijai Anand Ramalingam, Amazon Web Services*

## Zusammenfassung
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-summary"></a>

Software-as-a-Service (SaaS) -Anwendungen können mit einer Vielzahl unterschiedlicher Architekturmodelle erstellt werden. Das *Silomodell* bezieht sich auf eine Architektur, in der Mandanten dedizierte Ressourcen zur Verfügung gestellt werden.

SaaS-Anwendungen basieren auf einem reibungslosen Modell für die Einführung neuer Mandanten in ihre Umgebung. Dies erfordert häufig die Orchestrierung einer Reihe von Komponenten, um alle Elemente, die für die Erstellung eines neuen Mandanten erforderlich sind, erfolgreich bereitzustellen und zu konfigurieren. Dieser Prozess wird in der SaaS-Architektur als Mandanten-Onboarding bezeichnet. Das Onboarding sollte für jede SaaS-Umgebung vollständig automatisiert werden, indem Infrastruktur als Code in Ihrem Onboarding-Prozess verwendet wird.

Dieses Muster führt Sie durch ein Beispiel für die Erstellung eines Mandanten und die Bereitstellung einer Basisinfrastruktur für den Mandanten auf Amazon Web Services (AWS). Das Muster verwendet C\$1 und das AWS Cloud Development Kit (AWS CDK).

Da dieses Muster einen Fakturierungsalarm auslöst, empfehlen wir, den Stack in der AWS-Region USA Ost (Nord-Virginia) oder US-East-1 bereitzustellen. Weitere Informationen finden Sie in der [AWS-Dokumentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html).

## Voraussetzungen und Einschränkungen
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-prereqs"></a>

**Voraussetzungen******
+ Ein aktives [AWS-Konto](https://aws.amazon.com/account/).
+ Ein AWS Identity and Access Management (IAM) -Principal mit ausreichendem IAM-Zugriff, um AWS-Ressourcen für dieses Muster zu erstellen. Weitere Informationen finden Sie unter [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).
+ [Installieren Sie Amazon Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [konfigurieren Sie AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) für die AWS-CDK-Bereitstellung.
+ [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/) wurde heruntergeladen und installiert oder [Visual Studio Code](https://code.visualstudio.com/download) wurde heruntergeladen und installiert.
+ Einrichtung des [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html).
+ [.NET Core 3.1 oder höher](https://dotnet.microsoft.com/download/dotnet-core/3.1) (erforderlich für C\$1 AWS CDK-Anwendungen)
+ [Amazon.Lambda.Tools installiert](https://github.com/aws/aws-extensions-for-dotnet-cli#aws-lambda-amazonlambdatools).

**Einschränkungen******
+ AWS CDK verwendet [AWS CloudFormation](https://aws.amazon.com/cloudformation/), sodass AWS-CDK-Anwendungen CloudFormation Service-Kontingenten unterliegen. Weitere Informationen finden Sie unter [ CloudFormation AWS-Kontingente](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html). 
+ Der CloudFormation Mandanten-Stack wird mit einer CloudFormation Servicerolle `infra-cloudformation-role` mit Platzhalterzeichen für Aktionen (`sns`\$1 und`sqs*`) erstellt, wobei die Ressourcen jedoch auf das `tenant-cluster` Präfix beschränkt sind. Evaluieren Sie diese Einstellung für einen Produktionsanwendungsfall und gewähren Sie nur den erforderlichen Zugriff auf diese Servicerolle. Die `InfrastructureProvision` Lambda-Funktion verwendet auch ein Platzhalterzeichen (`cloudformation*`), um den CloudFormation Stack bereitzustellen, wobei die Ressourcen jedoch auf das `tenant-cluster` Präfix beschränkt sind.
+ Der Docker-Build dieses Beispielcodes verwendet`--platform=linux/amd64`, um `linux/amd64` basierte Images zu erzwingen. Dadurch soll sichergestellt werden, dass die endgültigen Bildartefakte für Lambda geeignet sind, das standardmäßig die x86-64-Architektur verwendet. Wenn Sie die Lambda-Zielarchitektur ändern müssen, stellen Sie sicher, dass Sie sowohl die Dockerfiles als auch die AWS-CDK-Codes ändern. Weitere Informationen finden Sie im Blogbeitrag [Migration von AWS Lambda Lambda-Funktionen auf ARM-basierte AWS Graviton2-Prozessoren](https://aws.amazon.com/blogs/compute/migrating-aws-lambda-functions-to-arm-based-aws-graviton2-processors/).
+ Beim Löschen des Stacks werden keine vom Stack generierten CloudWatch Protokolle (Protokollgruppen und Protokolle) bereinigt. Sie müssen die Protokolle manuell über die AWS-Managementkonsole, die CloudWatch Amazon-Konsole oder die API bereinigen.

Dieses Muster dient als Beispiel. Evaluieren Sie für den Einsatz in der Produktion die folgenden Konfigurationen und nehmen Sie je nach Ihren Geschäftsanforderungen Änderungen vor:
+ Für den Bucket [AWS Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) ist in diesem Beispiel der Einfachheit halber die Versionierung nicht aktiviert. Evaluieren und aktualisieren Sie das Setup nach Bedarf.
+ In diesem Beispiel werden der [Einfachheit halber Amazon API Gateway](https://aws.amazon.com/api-gateway/) REST-API-Endpunkte ohne Authentifizierung, Autorisierung oder Drosselung eingerichtet. Für den Produktionseinsatz empfehlen wir, das System in die Sicherheitsinfrastruktur des Unternehmens zu integrieren. Bewerten Sie diese Einstellung und fügen Sie bei Bedarf die erforderlichen Sicherheitseinstellungen hinzu.
+ Für dieses Beispiel mit einer Mandanteninfrastruktur haben [Amazon Simple Notification Service (Amazon SNS)](https://aws.amazon.com/sns/) und [Amazon Simple Queue Service (Amazon SQS)](https://aws.amazon.com/sqs/) nur Mindestkonfigurationen. Der [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) für jeden Mandanten wird für [Amazon CloudWatch - und Amazon](https://aws.amazon.com/cloudwatch/) SNS SNS-Services im Konto geöffnet, um sie auf der Grundlage der [AWS KMS KMS-Schlüsselrichtlinie](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-key-management.html#compatibility-with-aws-services) zu nutzen. Das Setup ist nur ein Beispiel für einen Platzhalter. Passen Sie die Setups je nach Bedarf an Ihren geschäftlichen Anwendungsfall an.
+ Das gesamte Setup, das unter anderem API-Endpunkte und die Bereitstellung und Löschung von Backend-Mandanten mithilfe von AWS umfasst CloudFormation, deckt nur den grundlegenden Happy-Path-Fall ab. Evaluieren und aktualisieren Sie das Setup mit der erforderlichen Wiederholungslogik, zusätzlicher Fehlerbehandlungslogik und Sicherheitslogik auf der Grundlage Ihrer Geschäftsanforderungen.
+ Der Beispielcode wurde mit up-to-date [cdk-nag](https://github.com/cdklabs/cdk-nag) getestet, um zu überprüfen, ob es zum Zeitpunkt der Erstellung dieses Artikels Richtlinien gibt. In future könnten neue Richtlinien durchgesetzt werden. Diese neuen Richtlinien erfordern möglicherweise, dass Sie den Stack anhand der Empfehlungen manuell ändern müssen, bevor der Stack bereitgestellt werden kann. Überprüfen Sie den vorhandenen Code, um sicherzustellen, dass er Ihren Geschäftsanforderungen entspricht.
+ Der Code verwendet das AWS-CDK, um ein zufälliges Suffix zu generieren, anstatt sich auf statisch zugewiesene physische Namen für die meisten erstellten Ressourcen zu verlassen. Dieses Setup soll sicherstellen, dass diese Ressourcen einzigartig sind und nicht mit anderen Stacks in Konflikt geraten. Weitere Informationen finden Sie in der [AWS-CDK-Dokumentation](https://docs.aws.amazon.com/cdk/v2/guide/resources.html#resources_physical_names). Passen Sie dies an Ihre Geschäftsanforderungen an.
+ Dieser Beispielcode packt .NET Lambda-Artefakte in Docker-basierte Images und wird mit der von Lambda bereitgestellten [Container-Image-Laufzeit](https://docs.aws.amazon.com/lambda/latest/dg/csharp-image.html) ausgeführt. Die Container-Image-Laufzeit bietet Vorteile für standardmäßige Übertragungs- und Speichermechanismen (Container-Registries) und genauere lokale Testumgebungen (über das Container-Image). Sie können das Projekt so umstellen, dass es die von [Lambda bereitgestellten .NET-Laufzeiten](https://docs.aws.amazon.com/lambda/latest/dg/lambda-csharp.html) verwendet, um die Erstellungszeit der Docker-Images zu reduzieren. Dann müssen Sie jedoch Übertragungs- und Speichermechanismen einrichten und sicherstellen, dass das lokale Setup mit dem Lambda-Setup übereinstimmt. Passen Sie den Code an die Geschäftsanforderungen der Benutzer an.

**Produktversionen**
+ AWS CDK Version 2.45.0 oder höher
+ Visual Studio 2022

## Architektur
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-architecture"></a>

**Technologie-Stack**
+ Amazon API Gateway
+ AWS CloudFormation
+ Amazon CloudWatch
+ Amazon DynamoDB
+ AWS Identity and Access Management (IAM)
+ AWS KMS
+ AWS Lambda
+ Amazon S3
+ Amazon SNS
+ Amazon SQS

**Architektur**

Das folgende Diagramm zeigt den Ablauf der Erstellung von Mandanten-Stacks. Weitere Informationen zu den Technologie-Stacks für Steuerungsebene und Mandanten finden Sie im Abschnitt *Zusätzliche* Informationen.

![\[Workflow zur Erstellung eines Mandanten und zur Bereitstellung einer Basisinfrastruktur für den Mandanten auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5baef800-fe39-4eb8-b11d-2c23eb3175fc/images/0b579484-b87c-4acb-8c60-8c33c18370e3.png)


**Ablauf zur Erstellung eines Mandanten-Stacks**

1. Der Benutzer sendet eine POST-API-Anfrage mit neuer Mandanten-Payload (Mandantenname, Mandantenbeschreibung) in JSON an eine von Amazon API Gateway gehostete REST-API. Das API Gateway verarbeitet die Anfrage und leitet sie an die Lambda Tenant Onboarding-Funktion im Backend weiter. In diesem Beispiel gibt es keine Autorisierung oder Authentifizierung. In einer Produktionsumgebung sollte diese API in das Sicherheitssystem der SaaS-Infrastruktur integriert werden.

1. Die Tenant Onboarding-Funktion verifiziert die Anfrage. Anschließend wird versucht, den Mandantendatensatz, der den Namen des Mandanten, die generierte allgemeine eindeutige Kennung (UUID) und die Mandantenbeschreibung enthält, in der Amazon DynamoDB Tenant Onboarding-Tabelle zu speichern. 

1. Nachdem DynamoDB den Datensatz gespeichert hat, initiiert ein DynamoDB-Stream die nachgeschaltete Lambda Tenant Infrastructure-Funktion.

1. Die Lambda-Funktion Tenant Infrastructure agiert auf der Grundlage des empfangenen DynamoDB-Streams. Wenn der Stream für das INSERT-Ereignis bestimmt ist, verwendet die Funktion den NewImage Abschnitt des Streams (letzter Aktualisierungsdatensatz, Feld Mandantenname), um mithilfe der Vorlage, die im S3-Bucket gespeichert ist, eine neue Mandanteninfrastruktur aufzurufen CloudFormation . Für die CloudFormation Vorlage ist der Parameter Tenant Name erforderlich. 

1. AWS CloudFormation erstellt die Mandanteninfrastruktur auf der Grundlage der CloudFormation Vorlage und der Eingabeparameter.

1. Jede Einrichtung der Mandanteninfrastruktur verfügt über einen CloudWatch Alarm, einen Abrechnungsalarm und ein Alarmereignis.

1. Das Alarmereignis wird zu einer Nachricht an ein SNS-Thema, die mit dem AWS-KMS-Schlüssel des Mandanten verschlüsselt wird.

1. Das SNS-Thema leitet die empfangene Alarmmeldung an die SQS-Warteschlange weiter, die mit dem AWS-KMS-Verschlüsselungsschlüssel des Mandanten verschlüsselt wird.

Andere Systeme können in Amazon SQS integriert werden, um Aktionen auf der Grundlage von Nachrichten in der Warteschlange durchzuführen. In diesem Beispiel bleiben eingehende Nachrichten in der Warteschlange und müssen manuell gelöscht werden, um den Code generisch zu halten.

**Ablauf beim Löschen von Mandantenstapeln**

1. Der Benutzer sendet eine DELETE-API-Anfrage mit neuer Mandanten-Payload (Mandantenname, Mandantenbeschreibung) in JSON an die von Amazon API Gateway gehostete REST-API, die die Anfrage verarbeitet und an die Tenant-Onboarding-Funktion weiterleitet. In diesem Beispiel gibt es keine Autorisierung oder Authentifizierung. In einem Produktionssetup wird diese API in das Sicherheitssystem der SaaS-Infrastruktur integriert.

1. Die Tenant-Onboarding-Funktion überprüft die Anfrage und versucht dann, den Mandantendatensatz (Mandantenname) aus der Tenant-Onboarding-Tabelle zu löschen. 

1. Nachdem DynamoDB den Datensatz erfolgreich gelöscht hat (der Datensatz ist in der Tabelle vorhanden und wird gelöscht), initiiert ein DynamoDB-Stream die Downstream-Funktion Lambda Tenant Infrastructure.

1. Die Lambda-Funktion Tenant Infrastructure handelt auf der Grundlage des empfangenen DynamoDB-Stream-Datensatzes. Wenn der Stream für das REMOVE-Ereignis bestimmt ist, verwendet die Funktion den OldImage Abschnitt des Datensatzes (Datensatzinformationen und Feld Mandantenname vor der letzten Änderung, d. h. Löschen), um das Löschen eines vorhandenen Stacks auf der Grundlage dieser Datensatzinformationen zu initiieren.

1. AWS CloudFormation löscht den Zielmandanten-Stack entsprechend der Eingabe.

## Tools
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-tools"></a>

**AWS-Services**
+ [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) unterstützt Sie bei der Erstellung, Veröffentlichung, Wartung, Überwachung und Sicherung von REST, HTTP und WebSocket APIs in jeder Größenordnung.
+ Das [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/home.html) ist ein Softwareentwicklungs-Framework, das Sie bei der Definition und Bereitstellung der AWS-Cloud-Infrastruktur im Code unterstützt.
+ [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/v2/guide/cli.html) ist ein Befehlszeilen-Cloud-Entwicklungskit, mit dem Sie mit Ihrer AWS Cloud Development Kit (AWS CDK) -App interagieren können.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) hilft Ihnen dabei, AWS-Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und Regionen hinweg zu verwalten.
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
+ [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 Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [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.
+ [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 Queue Service (Amazon SQS)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html) bietet eine sichere, dauerhafte und verfügbare gehostete Warteschlange, mit der Sie verteilte Softwaresysteme und -komponenten integrieren und entkoppeln können.
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) ist ein Plugin für die integrierte Entwicklungsumgebung (IDE) von Visual Studio. Das Toolkit for Visual Studio unterstützt die Entwicklung, das Debuggen und die Bereitstellung von.NET-Anwendungen, die AWS-Services verwenden.

**Andere Tools**
+ [Visual Studio](https://docs.microsoft.com/en-us/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022) ist eine IDE, die Compiler, Tools zur Codevervollständigung, Grafikdesigner und andere Funktionen zur Unterstützung der Softwareentwicklung enthält.

**Code**

Der Code für dieses Muster befindet sich im [APG-Beispiel-Repository Tenant Onboarding in SaaS Architecture for Silo Model](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example).

## Epen
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-epics"></a>

### AWS CDK einrichten
<a name="set-up-aws-cdk"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Installation von Node.js. | Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Node.js auf Ihrem lokalen Computer installiert ist.<pre>node --version</pre> | AWS-Administrator, AWS DevOps | 
| Installieren Sie das AWS CDK Toolkit. | Führen Sie den folgenden Befehl aus, um AWS CDK Toolkit auf Ihrem lokalen Computer zu installieren.<pre>npm install -g aws-cdk</pre>[Wenn npm nicht installiert ist, können Sie es von der Website Node.js aus installieren.](https://nodejs.org/en/download/package-manager/) | AWS-Administrator, AWS DevOps | 
| Überprüfen Sie die Version des AWS CDK Toolkit. | Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Version des AWS CDK Toolkit korrekt auf Ihrem Computer installiert ist.  <pre>cdk --version</pre> | AWS-Administrator, AWS DevOps | 

### Überprüfen Sie den Code für die Onboarding-Kontrollebene des Mandanten
<a name="review-the-code-for-the-tenant-onboarding-control-plane"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das Repository | Klonen Sie das [Repository](https://github.com/aws-samples/tenant-onboarding-in-saas-architecture-for-silo-model-apg-example) und navigieren Sie zu dem `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example` Ordner.Öffnen Sie die `\src\TenantOnboardingInfra.sln` Lösung in Visual Studio 2022. Öffnen Sie die `TenantOnboardingInfraStack.cs` Datei und überprüfen Sie den Code.Die folgenden Ressourcen werden als Teil dieses Stacks erstellt:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | AWS-Administrator, AWS DevOps | 
| Überprüfen Sie die CloudFormation Vorlage. | Öffnen `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\template` `infra.yaml` Sie im Ordner die CloudFormation Vorlage und überprüfen Sie sie. Diese Vorlage wird mit dem Mandantennamen, der aus der DynamoDB-Tabelle zum Onboarding des Mandanten abgerufen wurde, hydratisiert.Die Vorlage stellt die mandantenspezifische Infrastruktur bereit. In diesem Beispiel werden der AWS-KMS-Schlüssel, Amazon SNS, Amazon SQS und der CloudWatch Alarm bereitgestellt. | App-Entwickler, AWS DevOps | 
| Sehen Sie sich die Onboarding-Funktion für Mandanten an. | Öffnen `Function.cs` und überprüfen Sie den Code für die Mandanten-Onboarding-Funktion, die mit der Visual Studio AWS Lambda Lambda-Projektvorlage (.NET Core-C\$1) mit dem.NET 6-Blueprint (Container Image) erstellt wurde.Öffnen Sie die `Dockerfile` und überprüfen Sie den Code. Das `Dockerfile` ist eine Textdatei, die Anweisungen zum Erstellen des Lambda-Container-Images enthält.Beachten Sie, dass die folgenden NuGet Pakete dem `TenantOnboardingFunction` Projekt als Abhängigkeiten hinzugefügt werden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | App-Entwickler, AWS DevOps | 
| Überprüfen Sie die InfraProvisioning Mandantenfunktion. | Navigieren Sie zu `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\InfraProvisioningFunction`.Öffnen `Function.cs` und überprüfen Sie den Code für die Funktion zur Bereitstellung der Mandanteninfrastruktur, die mit der Vorlage Visual Studio AWS Lambda Project (.NET Core — C\$1) mit dem.NET 6-Blueprint (Container Image) erstellt wurde.Öffnen Sie die `Dockerfile` und überprüfen Sie den Code. Beachten Sie, dass die folgenden NuGet Pakete dem `InfraProvisioningFunction` Projekt als Abhängigkeiten hinzugefügt werden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | App-Entwickler, AWS DevOps | 

### Stellen Sie die AWS-Ressourcen bereit
<a name="deploy-the-aws-resources"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Lösung. | Gehen Sie wie folgt vor, um die Lösung zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Stellen Sie sicher, dass Sie das `Amazon.CDK.Lib NuGet` Paket auf die neueste Version im `\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example\src\TenantOnboardingInfra` Projekt aktualisieren, bevor Sie die Lösung erstellen. | App-Developer | 
| Bootstrap für die AWS-CDK-Umgebung. | Öffnen Sie die Windows-Befehlszeile und navigieren Sie zum Stammordner der AWS CDK-App, in dem die `cdk.json` Datei verfügbar ist (`\tenant-onboarding-in-saas-architecture-for-silo-model-apg-example`). Führen Sie den folgenden Befehl für das Bootstrapping aus.<pre>cdk bootstrap </pre>Wenn Sie ein AWS-Profil für die Anmeldeinformationen erstellt haben, verwenden Sie den Befehl mit Ihrem Profil.<pre>cdk bootstrap --profile <profile name><br />  </pre> | AWS-Administrator, AWS DevOps | 
| Listet die AWS-CDK-Stacks auf. | Führen Sie den folgenden Befehl aus, um alle Stacks aufzulisten, die im Rahmen dieses Projekts erstellt werden sollen.<pre>cdk ls<br />cdk ls --profile <profile name></pre>Wenn Sie ein AWS-Profil für die Anmeldeinformationen erstellt haben, verwenden Sie den Befehl mit Ihrem Profil.<pre>cdk ls --profile <profile name></pre> | AWS-Administrator, AWS DevOps | 
| Prüfen Sie, welche AWS-Ressourcen erstellt werden. | Führen Sie den folgenden Befehl aus, um alle AWS-Ressourcen zu überprüfen, die im Rahmen dieses Projekts erstellt werden.<pre>cdk diff</pre>Wenn Sie ein AWS-Profil für die Anmeldeinformationen erstellt haben, verwenden Sie den Befehl mit Ihrem Profil.<pre>cdk diff --profile <profile name></pre> | AWS-Administrator, AWS DevOps | 
| Stellen Sie alle AWS-Ressourcen mithilfe von AWS CDK bereit. | Führen Sie den folgenden Befehl aus, um alle AWS-Ressourcen bereitzustellen.<pre>cdk deploy --all --require-approval never</pre>Wenn Sie ein AWS-Profil für die Anmeldeinformationen erstellt haben, verwenden Sie den Befehl mit Ihrem Profil.<pre>cdk deploy --all --require-approval never --profile <profile name></pre>Kopieren Sie nach Abschluss der Bereitstellung die API-URL aus dem Ausgabebereich in der Befehlszeile, wie im folgenden Beispiel gezeigt.<pre>Outputs:<br />TenantOnboardingInfraStack.TenantOnboardingAPIEndpoint42E526D7 = https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/</pre> | AWS-Administrator, AWS DevOps | 

### Überprüfen Sie die Funktionalität
<a name="verify-the-functionality"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen neuen Mandanten. | Um den neuen Mandanten zu erstellen, senden Sie die folgende Curl-Anfrage.<pre>curl -X POST <TenantOnboardingAPIEndpoint* from CDK Output>tenant -d '{"Name":"Tenant123", "Description":"Stack for Tenant123"}'</pre>Ändern Sie den Platzhalter `<TenantOnboardingAPIEndpoint* from CDK Output>` auf den tatsächlichen Wert von AWS CDK, wie im folgenden Beispiel gezeigt.<pre>curl -X POST https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant -d '{"Name":"Tenant123", "Description":"test12"}'</pre>Das folgende Beispiel zeigt die Ausgabe.<pre>{"message": "A new tenant added - 5/4/2022 7:11:30 AM"}</pre> | App-Entwickler, AWS-Administrator, AWS DevOps | 
| Überprüfen Sie die neu erstellten Mandantendetails in DynamoDB. | Gehen Sie wie folgt vor, um die neu erstellten Mandantendetails in DynamoDB zu überprüfen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | App-Entwickler, AWS-Administrator, AWS DevOps | 
| Überprüfen Sie die Stack-Erstellung für den neuen Mandanten. | Stellen Sie sicher, dass der neue Stack erfolgreich erstellt und mit der Infrastruktur für den neu erstellten Mandanten gemäß der CloudFormation Vorlage ausgestattet wurde.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | App-Entwickler, AWS-Administrator, AWS DevOps | 
| Löschen Sie den Mandanten-Stack. | Um den Tenant-Stack zu löschen, senden Sie die folgende Curl-Anfrage.<pre>curl -X DELETE <TenantOnboardingAPIEndpoint* from CDK Output>tenant/<Tenant Name from previous step></pre>Ändern Sie den Platzhalter `<TenantOnboardingAPIEndpoint* from CDK Output>` auf den tatsächlichen Wert aus AWS CDK und ändern Sie ihn `<Tenant Name from previous step>` auf den tatsächlichen Wert aus dem vorherigen Schritt zur Mandantenerstellung, wie im folgenden Beispiel gezeigt.<pre>curl -X DELETE https://j2qmp8ds21i1i.execute-api.us-west-2.amazonaws.com/prod/tenant/Tenant123</pre>Das folgende Beispiel zeigt die Ausgabe.<pre>{"message": "Tenant destroyed - 5/4/2022 7:14:48 AM"}</pre> | App-Entwickler, AWS DevOps, AWS-Administrator | 
| Überprüfen Sie, ob der Stack für den vorhandenen Mandanten gelöscht wurde. | Gehen Sie wie folgt vor, um zu überprüfen, ob der vorhandene Mandanten-Stack gelöscht wurde:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html) | App-Entwickler, AWS-Administrator, AWS DevOps | 

### Bereinigen
<a name="clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Zerstöre die Umwelt. | Stellen Sie vor dem Aufräumen des Stacks Folgendes sicher:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk.html)Nach Abschluss der Tests kann AWS CDK verwendet werden, um alle Stacks und zugehörigen Ressourcen zu löschen, indem Sie den folgenden Befehl ausführen.<pre>cdk destroy --all;</pre>Wenn Sie ein AWS-Profil für die Anmeldeinformationen erstellt haben, verwenden Sie das Profil.Bestätigen Sie die Aufforderung zum Löschen des Stacks, um den Stack zu löschen. | AWS-Administrator, AWS DevOps | 
| Bereinigen Sie Amazon CloudWatch Logs. | Beim Löschen des Stacks werden keine CloudWatch Protokolle (Protokollgruppen und Protokolle) bereinigt, die vom Stack generiert wurden. Bereinigen Sie die CloudWatch Ressourcen manuell mithilfe der CloudWatch Konsole oder der API. | App-Entwickler, AWS DevOps, AWS-Administrator | 

## Zugehörige Ressourcen
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-resources"></a>
+ [AWS CDK .NET-Workshop](https://cdkworkshop.com/40-dotnet.html)
+ [Arbeiten mit dem AWS-CDK in C\$1](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-csharp.html)
+ [CDK.NET-Referenz](https://docs.aws.amazon.com/cdk/api/v2/dotnet/api/index.html)

## Zusätzliche Informationen
<a name="tenant-onboarding-in-saas-architecture-for-the-silo-model-using-c-and-aws-cdk-additional"></a>

**Technologie-Stack auf Steuerungsebene**

Der in .NET geschriebene CDK-Code wird verwendet, um die Infrastruktur der Steuerungsebene bereitzustellen, die aus den folgenden Ressourcen besteht:

1. **API Gateway**

   Dient als REST-API-Einstiegspunkt für den Kontrollebenen-Stack.

1. **Lambda-Funktion für Mandanten-Onboarding**

   Diese Lambda-Funktion wird von API Gateway mit der Methode m initiiert.

   Eine API-Anfrage der POST-Methode führt dazu, dass (`tenant name`,`tenant description`) in die DynamoDB-Tabelle `Tenant Onboarding` eingefügt wird.

   In diesem Codebeispiel wird der Mandantenname auch als Teil des Mandanten-Stack-Namens und der Namen der Ressourcen innerhalb dieses Stacks verwendet. Dies soll die Identifizierung dieser Ressourcen erleichtern. Dieser Mandantenname muss im gesamten Setup eindeutig sein, um Konflikte oder Fehler zu vermeiden. Eine detaillierte Einrichtung der Eingabevalidierung wird in der Dokumentation zu den [IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) und im Abschnitt *Einschränkungen* erläutert.

   Der Persistenzprozess für die DynamoDB-Tabelle ist nur erfolgreich, wenn der Mandantenname in keinem anderen Datensatz in der Tabelle verwendet wird.

   Der Mandantenname ist in diesem Fall der Partitionsschlüssel für diese Tabelle, da nur der Partitionsschlüssel als Bedingungsausdruck verwendet werden kann. `PutItem`

   Wenn der Mandantenname noch nie zuvor aufgezeichnet wurde, wird der Datensatz erfolgreich in der Tabelle gespeichert.

   Wenn der Mandantenname jedoch bereits von einem vorhandenen Datensatz in der Tabelle verwendet wird, schlägt der Vorgang fehl und löst eine DynamoDB-Ausnahme `ConditionalCheckFailedException` aus. Die Ausnahme wird verwendet, um eine Fehlermeldung (`HTTP BadRequest`) zurückzugeben, die angibt, dass der Mandantenname bereits existiert.

   Eine `DELETE` Methoden-API-Anfrage entfernt den Datensatz für einen bestimmten Mandantennamen aus der `Tenant Onboardin` G-Tabelle.

   Das Löschen von DynamoDB-Datensätzen in diesem Beispiel ist erfolgreich, auch wenn der Datensatz nicht existiert.

   Wenn der Zieldatensatz existiert und gelöscht wird, wird ein DynamoDB-Stream-Datensatz erstellt. Andernfalls wird kein Downstream-Datensatz erstellt.

1. **Einbindung von Mandanten in DynamoDB mit aktivierten Amazon DynamoDB DynamoDB-Streams**

   Dadurch werden die Metadateninformationen des Mandanten aufgezeichnet, und bei jedem Speichern oder Löschen von Datensätzen wird ein Stream flussabwärts an die `Tenant Infrastructure` Lambda-Funktion gesendet. 

1. **Lambda-Funktion für Mandanteninfrastruktur**

   Diese Lambda-Funktion wird durch den DynamoDB-Stream-Datensatz aus dem vorherigen Schritt initiiert. Wenn sich der Datensatz auf ein `INSERT` Ereignis bezieht, ruft er AWS CloudFormation auf, um eine neue Mandanteninfrastruktur mit der CloudFormation Vorlage zu erstellen, die in einem S3-Bucket gespeichert ist. Wenn der Datensatz für ist`REMOVE`, initiiert er das Löschen eines vorhandenen Stacks auf der Grundlage des Felds `Tenant Name` des Stream-Datensatzes.

1. **S3 bucket**

   Dies dient zum Speichern der CloudFormation Vorlage.

1. **IAM-Rollen für jede Lambda-Funktion und eine Servicerolle für CloudFormation**

   Jede Lambda-Funktion hat ihre eigene IAM-Rolle mit den geringsten [Rechten, um ihre Aufgabe zu erfüllen](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Die `Tenant On-boarding` Lambda-Funktion hat beispielsweise read/write Zugriff auf DynamoDB, und die `Tenant Infrastructure` Lambda-Funktion kann nur den DynamoDB-Stream lesen.

   Für die Bereitstellung von Mandanten-Stacks wird eine benutzerdefinierte CloudFormation Servicerolle erstellt. Diese Servicerolle enthält zusätzliche Berechtigungen für die CloudFormation Stack-Bereitstellung (z. B. den AWS-KMS-Schlüssel). Dadurch werden Rollen zwischen Lambda aufgeteilt und alle Berechtigungen CloudFormation für eine einzelne Rolle (Infrastructure Lambda-Rolle) vermieden.

   Berechtigungen, die leistungsstarke Aktionen (wie das Erstellen und Löschen von CloudFormation Stacks) ermöglichen, sind gesperrt und nur für Ressourcen zulässig, die mit beginnen. `tenantcluster-` Die Ausnahme ist AWS KMS aufgrund seiner Benennungskonvention für Ressourcen. Dem aus der API aufgenommenen Mandantennamen werden `tenantcluster-` zusammen mit anderen Validierungsprüfungen vorangestellt (nur alphanumerisch mit Bindestrich und begrenzt auf weniger als 30 Zeichen, sodass er in die meisten AWS-Ressourcenbenennungen passt). Dadurch wird sichergestellt, dass der Mandantenname nicht versehentlich zu einer Störung der Stacks oder Ressourcen der Kerninfrastruktur führt.

**Technologie-Stack für Mandanten**

Eine CloudFormation Vorlage wird im S3-Bucket gespeichert. [Die Vorlage stellt den mandantenspezifischen AWS-KMS-Schlüssel, einen CloudWatch Alarm, ein SNS-Thema, eine SQS-Warteschlange und eine SQS-Richtlinie bereit.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-identity-based-policies.html)

Der AWS-KMS-Schlüssel wird von Amazon SNS und Amazon SQS für die Datenverschlüsselung ihrer Nachrichten verwendet. Die Sicherheitspraktiken für [AwsSolutions— SNS2 und AwsSolutions — SQS2](https://github.com/cdklabs/cdk-nag/blob/main/RULES.md) empfehlen, dass Sie Amazon SNS und Amazon SQS mit Verschlüsselung einrichten. CloudWatch Alarme funktionieren jedoch nicht mit Amazon SNS, wenn Sie einen von AWS verwalteten Schlüssel verwenden. Daher müssen Sie in diesem Fall einen vom Kunden verwalteten Schlüssel verwenden. Weitere Informationen finden Sie im [AWS Knowledge Center](https://aws.amazon.com/premiumsupport/knowledge-center/cloudwatch-receive-sns-for-alarm-trigger/).

Die SQS-Richtlinie wird in der Amazon SQS SQS-Warteschlange verwendet, damit das erstellte SNS-Thema die Nachricht an die Warteschlange übermitteln kann. Ohne die SQS-Richtlinie wird der Zugriff verweigert. Weitere Informationen finden Sie in der [Amazon SNS SNS-Dokumentation](https://docs.aws.amazon.com/sns/latest/dg/subscribe-sqs-queue-to-sns-topic.html#SendMessageToSQS.sqs.permissions).

# Zerlegen Sie Monolithen mithilfe von CQRS und Event Sourcing in Microservices
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing"></a>

*Rodolfo Jr. Cerrada, Dmitry Gulin und Tabby Ward,* Amazon Web Services

## Zusammenfassung
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-summary"></a>

Dieses Muster kombiniert zwei Muster und verwendet sowohl das Command Query Responsibility Separation (CQRS) -Muster als auch das Event Sourcing-Muster. Das CQRS-Muster trennt die Zuständigkeiten der Befehls- und Abfragemodelle. Das Eventsourcing-Muster nutzt die Vorteile der asynchronen ereignisgesteuerten Kommunikation, um die allgemeine Benutzererfahrung zu verbessern.

Sie können CQRS- und Amazon Web Services (AWS) -Services verwenden, um jedes Datenmodell unabhängig zu verwalten und zu skalieren und gleichzeitig Ihre Monolith-Anwendung in eine Microservices-Architektur umzustrukturieren. Anschließend können Sie das Event Sourcing Pattern verwenden, um Daten aus der Befehlsdatenbank mit der Abfragedatenbank zu synchronisieren.

Dieses Muster verwendet Beispielcode, der eine Lösungsdatei (\$1.sln) enthält, die Sie mit der neuesten Version von Visual Studio öffnen können. Das Beispiel enthält Reward-API-Code, der zeigt, wie CQRS und Event Sourcing in serverlosen und traditionellen oder lokalen AWS-Anwendungen funktionieren.

[Weitere Informationen zu CQRS und Event Sourcing finden Sie im Abschnitt Zusätzliche Informationen.](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional)

## Voraussetzungen und Einschränkungen
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Amazon CloudWatch
+ Amazon-DynamoDB-Tabellen
+ Amazon DynamoDB Streams
+ Zugriffsschlüssel und geheimer Schlüssel für AWS Identity and Access Management (IAM); weitere Informationen finden Sie im Video im Abschnitt *Verwandte Ressourcen*
+ AWS Lambda
+ Vertrautheit mit Visual Studio
+ *Vertrautheit mit AWS Toolkit for Visual Studio; weitere Informationen finden Sie im *Demo-Video zu AWS Toolkit for Visual Studio* im Abschnitt Verwandte Ressourcen*

**Produktversionen**
+ [Visual Studio 2019 Community-Ausgabe](https://visualstudio.microsoft.com/downloads/).
+ [AWS Toolkit for Visual Studio 2019](https://aws.amazon.com/visualstudio/).
+ .NET Core 3.1. Diese Komponente ist eine Option in der Visual Studio-Installation. Um .NET Core bei der Installation einzubeziehen, wählen Sie **plattformübergreifende Entwicklung mit NET Core** aus.

**Einschränkungen**
+ Der Beispielcode für eine herkömmliche lokale Anwendung (ASP.NET Core-Web-API und Datenzugriffsobjekte) ist nicht im Lieferumfang einer Datenbank enthalten. Er wird jedoch mit dem `CustomerData` In-Memory-Objekt geliefert, das als Scheindatenbank fungiert. Der bereitgestellte Code reicht aus, um das Muster zu testen.

## Architektur
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-architecture"></a>

**Quelltechnologie-Stack**
+ ASP.NET Core-Web-API-Projekt
+ IIS-Webserver
+ Datenzugriffsobjekt
+ CRUD-Modell

**Quellarchitektur**

In der Quellarchitektur enthält das CRUD-Modell sowohl Befehls- als auch Abfrageschnittstellen in einer Anwendung. Beispielcode finden Sie unter `CustomerDAO.cs` (angehängt).

![\[Verbindungen zwischen Anwendung, Serviceschnittstelle, Kunden-CRUD-Modell und Datenbank.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1cd3a84c-12c7-4306-99aa-23f2c53d3cd3.png)


**Zieltechnologie-Stack**
+ Amazon DynamoDB
+ Amazon DynamoDB Streams
+ AWS Lambda
+ (Fakultativ) Amazon API Gateway
+ (Optional) Amazon Simple Notification Service (Amazon SNS)

**Zielarchitektur**

In der Zielarchitektur sind die Befehls- und Abfrageschnittstellen getrennt. Die im folgenden Diagramm gezeigte Architektur kann mit API Gateway und Amazon SNS erweitert werden. Weitere Informationen finden Sie im Abschnitt [Zusätzliche Informationen](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional).

![\[Anwendung, die eine Verbindung mit den serverlosen Microservices Customer Command und Customer Query herstellt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/1c665697-e3ac-4ef4-98d0-86c2cbf164c1.png)


1. Befehls-Lambda-Funktionen führen Schreiboperationen wie Erstellen, Aktualisieren oder Löschen in der Datenbank durch.

1. Lambda-Abfragefunktionen führen Lesevorgänge wie Get oder Select in der Datenbank durch.

1. Diese Lambda-Funktion verarbeitet die DynamoDB-Streams aus der Befehlsdatenbank und aktualisiert die Query-Datenbank für die Änderungen.

## Tools
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-tools"></a>

**Tools**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) — Amazon DynamoDB ist ein vollständig verwalteter NoSQL-Datenbankservice, der schnelle und vorhersehbare Leistung mit nahtloser Skalierbarkeit bietet.
+ [Amazon DynamoDB Streams — DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html) erfasst eine zeitlich geordnete Abfolge von Änderungen auf Elementebene in jeder DynamoDB-Tabelle. Anschließend werden diese Informationen bis zu 24 Stunden lang in einem Protokoll gespeichert. Die Verschlüsselung ruhender Daten verschlüsselt die Daten in DynamoDB Streams.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) — AWS Lambda ist ein Rechenservice, der die Ausführung von Code unterstützt, ohne Server bereitzustellen oder zu verwalten. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch – von einigen Anforderungen pro Tag bis zu Tausenden pro Sekunde. Sie bezahlen nur für die Datenverarbeitungszeit, die Sie wirklich nutzen und es werden keine Gebühren in Rechnung gestellt, wenn Ihr Code nicht ausgeführt wird.
+ [AWS-Managementkonsole](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/learn-whats-new.html) — Die AWS-Managementkonsole ist eine Webanwendung, die eine breite Sammlung von Servicekonsolen für die Verwaltung von AWS-Services umfasst.
+ [Visual Studio 2019 Community Edition](https://visualstudio.microsoft.com/downloads/) — Visual Studio 2019 ist eine integrierte Entwicklungsumgebung (IDE). Die Community Edition ist für Open-Source-Mitwirkende kostenlos. In diesem Muster verwenden Sie Visual Studio 2019 Community Edition, um Beispielcode zu öffnen, zu kompilieren und auszuführen. Nur zur Anzeige können Sie einen beliebigen Texteditor oder [Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) verwenden.
+ [AWS Toolkit für Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html) — Das AWS Toolkit for Visual Studio ist ein Plugin für die Visual Studio-IDE. Das AWS Toolkit for Visual Studio erleichtert Ihnen das Entwickeln, Debuggen und Bereitstellen von.NET-Anwendungen, die AWS-Services verwenden.

**Code**

Der Beispielcode ist angehängt. Anweisungen zur Bereitstellung des Beispielcodes finden Sie im Abschnitt *Epics*.

## Epen
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-epics"></a>

### Öffnen und erstellen Sie die Lösung
<a name="open-and-build-the-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Öffnen Sie die Lösung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Developer | 
| Erstellen Sie die Lösung. | Öffnen Sie das Kontextmenü (mit der rechten Maustaste) für die Lösung und wählen Sie dann **Lösung erstellen** aus. Dadurch werden alle Projekte in der Lösung erstellt und kompiliert. Es sollte erfolgreich kompiliert werden.Visual Studio Solution Explorer sollte die Verzeichnisstruktur anzeigen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Developer | 

### Erstellen Sie die DynamoDB-Tabellen
<a name="build-the-dynamodb-tables"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Geben Sie die Anmeldeinformationen an. | Wenn Sie noch keinen Zugriffsschlüssel haben, sehen Sie sich das Video im Abschnitt *Verwandte Ressourcen* an.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Entwickler, Dateningenieur, DBA | 
| Erstellen Sie das Projekt. | **Um das Projekt zu erstellen, öffnen Sie das Kontextmenü (Rechtsklick) für das Projekt **aws.apg.cqrses.Build** und wählen Sie dann Build aus.** | App-Entwickler, Dateningenieur, DBA | 
| Erstellen und füllen Sie die Tabellen. | ****Um die Tabellen zu erstellen und sie mit Ausgangsdaten zu füllen, öffnen Sie das Kontextmenü (mit der rechten Maustaste) für das Projekt **aws.apg.cqrses.Build** und wählen Sie dann Debug, Start New Instance aus.**** | App-Entwickler, Dateningenieur, DBA | 
| Überprüfen Sie die Tabellenkonstruktion und die Daten. | Gehen Sie zur Überprüfung zu **AWS Explorer** und erweitern Sie **Amazon DynamoDB**. Es sollte die Tabellen anzeigen. Öffnen Sie jede Tabelle, um die Beispieldaten anzuzeigen. | App-Entwickler, Dateningenieur, DBA | 

### Führen Sie lokale Tests durch
<a name="run-local-tests"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das CQRS-Projekt. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Entwickler, Testingenieur | 
| Erstellen Sie das Eventsourcing-Projekt. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Entwickler, Testingenieur | 
| Führen Sie die Tests aus. | Um alle Tests auszuführen, wählen Sie **Ansicht**, **Test Explorer** und dann **Alle Tests in Ansicht ausführen** aus. Alle Tests sollten erfolgreich sein, was durch ein grünes Häkchen gekennzeichnet ist.  | App-Entwickler, Testingenieur | 

### Veröffentlichen Sie die CQRS Lambda-Funktionen in AWS
<a name="publish-the-cqrs-lambda-functions-to-aws"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Veröffentlichen Sie die erste Lambda-Funktion. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Entwickler, DevOps Ingenieur | 
| Überprüfen Sie den Funktions-Upload. | (Optional) Sie können überprüfen, ob die Funktion erfolgreich geladen wurde, indem Sie zu AWS Explorer navigieren und **AWS Lambda** erweitern. Um das Testfenster zu öffnen, wählen Sie die Lambda-Funktion (Doppelklick). | App-Entwickler, Ingenieur DevOps  | 
| Testen Sie die Lambda-Funktion. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Alle CQRS Lambda-Projekte befinden sich in den Ordnern `CQRS AWS Serverless\CQRS\Command Microservice` und ` CQRS AWS Serverless\CQRS\Command Microservice` Solution. Das Lösungsverzeichnis und die Projekte finden Sie unter **Quellcodeverzeichnis** im Abschnitt [Zusätzliche Informationen](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | App-Entwickler, DevOps Ingenieur | 
| Veröffentlichen Sie die verbleibenden Funktionen. | Wiederholen Sie die vorherigen Schritte für die folgenden Projekte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Entwickler, DevOps Ingenieur | 

### Richten Sie die Lambda-Funktion als Event-Listener ein
<a name="set-up-the-lambda-function-as-an-event-listener"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Veröffentlichen Sie die Lambda-Event-Handler „Customer“ und „Reward“. | Um die einzelnen Event-Handler zu veröffentlichen, folgen Sie den Schritten im vorherigen Abschnitt.Die Projekte befinden sich in den Ordnern `CQRS AWS Serverless\Event Source\Customer Event` und `CQRS AWS Serverless\Event Source\Reward Event` Solution. Weitere Informationen finden Sie unter *Quellcode-Verzeichnis* im Abschnitt [Zusätzliche Informationen](#decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional). | App-Developer | 
| Hängen Sie den Lambda-Event-Listener an, der das Ereignis ausgibt. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html)Nachdem der Listener erfolgreich an die DynamoDB-Tabelle angehängt wurde, wird er auf der Lambda-Designer-Seite angezeigt. | App-Developer | 
| Veröffentlichen Sie die EventSourceReward Lambda-Funktion und hängen Sie sie an. | Um die `EventSourceReward` Lambda-Funktion zu veröffentlichen und anzuhängen, wiederholen Sie die Schritte in den beiden vorherigen Storys und wählen Sie **cqrses-reward-cmd**aus der Dropdownliste der **DynamoDB-Tabelle** aus. | App-Developer | 

### Testen und validieren Sie die DynamoDB-Streams und den Lambda-Trigger
<a name="test-and-validate-the-dynamodb-streams-and-lambda-trigger"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie den Stream und den Lambda-Trigger. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Developer | 
| Überprüfen Sie, indem Sie die DynamoDDB-Belohnungsabfragetabelle verwenden. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Developer | 
| Bestätigen Sie mithilfe von Protokollen. CloudWatch  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing.html) | App-Developer | 
| Validieren Sie den Trigger EventSourceCustomer . | Um den `EventSourceCustomer` Trigger zu validieren, wiederholen Sie die Schritte in diesem Epic und verwenden Sie dabei die entsprechende Kundentabelle und die CloudWatch Logs des `EventSourceCustomer` Triggers. | App-Developer | 

## Zugehörige Ressourcen
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-resources"></a>

**Referenzen**
+ [Visual Studio 2019 Community Edition wird heruntergeladen](https://visualstudio.microsoft.com/downloads/)
+ [AWS Toolkit for Visual Studio herunterladen](https://aws.amazon.com/visualstudio/)
+ [AWS Toolkit for Visual Studio — Benutzerhandbuch](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)
+ [Serverlos auf AWS](https://aws.amazon.com/serverless/)
+ [DynamoDB-Anwendungsfälle und Entwurfsmuster](https://aws.amazon.com/blogs/database/dynamodb-streams-use-cases-and-design-patterns/)
+ [Martin Fowler CQRS](https://martinfowler.com/bliki/CQRS.html)
+ [Martin Fowler Beschaffung von Veranstaltungen](https://martinfowler.com/eaaDev/EventSourcing.html)

**Videos**
+ [Demo zum AWS Toolkit for Visual Studio](https://www.youtube.com/watch?v=B190tcu1ERk)
+ [Wie erstelle ich eine Zugriffsschlüssel-ID für einen neuen IAM-Benutzer?](https://www.youtube.com/watch?v=665RYobRJDY)

## Zusätzliche Informationen
<a name="decompose-monoliths-into-microservices-by-using-cqrs-and-event-sourcing-additional"></a>

**CQRS und Eventsourcing**

*CQRS*

Das CQRS-Muster unterteilt ein einzelnes konzeptionelles Betriebsmodell, z. B. ein einzelnes CRUD-Modell (Create, Read, Update, Delete) für Datenzugriffsobjekte, in Befehls- und Abfrageoperationsmodelle. Das Befehlsmodell bezieht sich auf jede Operation, z. B. Erstellen, Aktualisieren oder Löschen, die den Status ändert. Das Abfragemodell bezieht sich auf jede Operation, die einen Wert zurückgibt.

![\[Architektur mit Serviceschnittstelle, CRUD-Modell und Datenbank.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/3f64756d-681e-4f0e-8034-746263d857b2.png)


1. Das Kunden-CRUD-Modell umfasst die folgenden Schnittstellen:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`

Wenn Ihre Anforderungen immer komplexer werden, können Sie von diesem Einzelmodellansatz abrücken. CQRS verwendet ein Befehlsmodell und ein Abfragemodell, um die Verantwortung für das Schreiben und Lesen von Daten zu trennen. Auf diese Weise können die Daten unabhängig voneinander verwaltet und verwaltet werden. Bei einer klaren Trennung der Zuständigkeiten wirken sich Verbesserungen an den einzelnen Modellen nicht auf das andere aus. Diese Trennung verbessert Wartung und Leistung und reduziert die Komplexität der Anwendung, wenn sie wächst.

![\[Die Anwendung wurde in Befehls- und Abfragemodelle aufgeteilt und nutzt eine einzige Datenbank.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/12db023c-eb81-4c27-bbb9-b085b13176ae.png)


 

1. Schnittstellen im Customer Command-Modell:
   + `Create Customer()`
   + `UpdateCustomer()`
   + `DeleteCustomer()`
   + `AddPoints()`
   + `RedeemPoints()`

1. Schnittstellen im Modell Customer Query:
   + `GetVIPCustomers()`
   + `GetCustomerList()`
   + `GetCustomerPoints()`
   + `GetMonthlyStatement()`

Beispielcode finden Sie unter *Quellcode-Verzeichnis*.

Das CQRS-Muster entkoppelt dann die Datenbank. Diese Entkopplung führt zur vollständigen Unabhängigkeit der einzelnen Dienste, was der Hauptbestandteil der Microservice-Architektur ist.

![\[Separate Datenbanken für Befehls- und Abfragemodelle.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/016dbfa8-3bd8-42ee-afa1-38a98986c7d5.png)


 Mit CQRS in der AWS-Cloud können Sie jeden Service weiter optimieren. Sie können beispielsweise verschiedene Recheneinstellungen festlegen oder zwischen einem serverlosen oder einem containerbasierten Microservice wählen. Sie können Ihr lokales Caching durch Amazon ersetzen. ElastiCache Wenn Sie ein lokales publish/subscribe Messaging-Programm haben, können Sie es durch Amazon Simple Notification Service (Amazon SNS) ersetzen. Darüber hinaus können Sie die pay-as-you-go Preisgestaltung und das breite Spektrum an AWS-Services nutzen, bei denen Sie nur für das bezahlen, was Sie tatsächlich nutzen.

CQRS bietet die folgenden Vorteile:
+ Unabhängige Skalierung — Für jedes Modell kann die Skalierungsstrategie an die Anforderungen und die Nachfrage des Dienstes angepasst werden. Ähnlich wie bei Hochleistungsanwendungen ermöglicht die Trennung von Lese- und Schreibvorgängen, dass das Modell unabhängig skaliert werden kann, um jeder Anforderung gerecht zu werden. Sie können auch Rechenressourcen hinzufügen oder reduzieren, um den Skalierbarkeitsanforderungen eines Modells gerecht zu werden, ohne dass sich dies auf das andere Modell auswirkt.
+ Unabhängige Wartung — Die Trennung von Abfrage- und Befehlsmodellen verbessert die Wartbarkeit der Modelle. Sie können Codeänderungen und Erweiterungen an einem Modell vornehmen, ohne dass sich dies auf das andere auswirkt.
+ Sicherheit — Es ist einfacher, die Berechtigungen und Richtlinien auf separate Modelle zum Lesen und Schreiben anzuwenden.
+ Optimierte Lesevorgänge — Sie können ein Schema definieren, das für Abfragen optimiert ist. Sie können beispielsweise ein Schema für die aggregierten Daten und ein separates Schema für die Faktentabellen definieren.
+ Integration — CQRS passt gut zu ereignisbasierten Programmiermodellen.
+ Verwaltete Komplexität — Die Trennung in Abfrage- und Befehlsmodelle eignet sich für komplexe Domänen.

Beachten Sie bei der Verwendung von CQRS die folgenden Vorbehalte:
+ Das CQRS-Muster gilt nur für einen bestimmten Teil einer Anwendung und nicht für die gesamte Anwendung. Wenn es in einer Domäne implementiert wird, die dem Muster nicht entspricht, kann es die Produktivität verringern, das Risiko erhöhen und zu Komplexität führen.
+ Das Muster eignet sich am besten für häufig verwendete Modelle mit einem Ungleichgewicht zwischen Lese- und Schreibvorgängen.
+ Für leseintensive Anwendungen, wie z. B. große Berichte, deren Verarbeitung einige Zeit in Anspruch nimmt, bietet Ihnen CQRS die Möglichkeit, die richtige Datenbank auszuwählen und ein Schema zum Speichern Ihrer aggregierten Daten zu erstellen. Dadurch wird die Reaktionszeit beim Lesen und Anzeigen des Berichts verbessert, da die Berichtsdaten nur einmal verarbeitet und in der aggregierten Tabelle abgelegt werden.
+ Für schreibintensive Anwendungen können Sie die Datenbank für Schreibvorgänge konfigurieren und dem Befehls-Microservice ermöglichen, unabhängig zu skalieren, wenn der Schreibbedarf steigt. Beispiele finden Sie unter den `AWS.APG.CQRSES.CommandRedeemRewardLambda` Microservices und. `AWS.APG.CQRSES.CommandAddRewardLambda`

*Ereignis-Sourcing*

Der nächste Schritt besteht darin, die Abfragedatenbank mithilfe von Event Sourcing zu synchronisieren, wenn ein Befehl ausgeführt wird. Betrachten Sie beispielsweise die folgenden Ereignisse:
+ Ein Kundenprämienpunkt wird hinzugefügt, sodass die Gesamtzahl oder die aggregierten Prämienpunkte des Kunden in der Abfragedatenbank aktualisiert werden müssen.
+ Der Nachname eines Kunden wird in der Befehlsdatenbank aktualisiert, weshalb die Ersatzkundeninformationen in der Abfragedatenbank aktualisiert werden müssen.

Im herkömmlichen CRUD-Modell stellen Sie die Konsistenz der Daten sicher, indem Sie die Daten sperren, bis eine Transaktion abgeschlossen ist. Beim Event Sourcing werden die Daten synchronisiert, indem eine Reihe von Ereignissen veröffentlicht wird, die dann von einem Abonnenten genutzt werden, um seine jeweiligen Daten zu aktualisieren.

Das Muster der Ereignisbeschaffung gewährleistet und zeichnet eine vollständige Reihe von Aktionen auf, die an den Daten vorgenommen wurden, und veröffentlicht sie in einer Abfolge von Ereignissen. Diese Ereignisse stellen eine Reihe von Änderungen an den Daten dar, die Abonnenten dieses Ereignisses verarbeiten müssen, um ihre Aufzeichnungen auf dem neuesten Stand zu halten. Diese Ereignisse werden vom Abonnenten verarbeitet, wodurch die Daten in der Datenbank des Abonnenten synchronisiert werden. In diesem Fall ist das die Abfragedatenbank.

Das folgende Diagramm zeigt Event Sourcing, das mit CQRS auf AWS verwendet wird.

![\[Microservice-Architektur für die CQRS- und Eventsourcing-Muster unter Verwendung serverloser AWS-Services.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/cc9bc84a-60b4-4459-9a5c-2334c69dbb4e.png)


1. Befehls-Lambda-Funktionen führen Schreiboperationen wie Erstellen, Aktualisieren oder Löschen in der Datenbank durch.

1. Lambda-Abfragefunktionen führen Lesevorgänge wie Get oder Select in der Datenbank durch.

1. Diese Lambda-Funktion verarbeitet die DynamoDB-Streams aus der Befehlsdatenbank und aktualisiert die Query-Datenbank für die Änderungen. Sie können diese Funktion auch verwenden, um eine Nachricht an Amazon SNS zu veröffentlichen, damit die Abonnenten die Daten verarbeiten können.

1. (Optional) Der Lambda-Event-Abonnent verarbeitet die von Amazon SNS veröffentlichte Nachricht und aktualisiert die Query-Datenbank.

1. (Optional) Amazon SNS sendet eine E-Mail-Benachrichtigung über den Schreibvorgang.

Auf AWS kann die Abfragedatenbank mit DynamoDB Streams synchronisiert werden. DynamoDB erfasst eine zeitlich geordnete Abfolge von Änderungen auf Elementebene in einer DynamoBDB-Tabelle nahezu in Echtzeit und speichert die Informationen dauerhaft innerhalb von 24 Stunden.

Durch die Aktivierung von DynamoDB Streams kann die Datenbank eine Sequenz von Ereignissen veröffentlichen, die das Eventsourcing-Muster ermöglicht. Das Event-Sourcing-Muster fügt den Event-Abonnenten hinzu. Die Anwendung für Event-Abonnenten verarbeitet das Ereignis und verarbeitet es je nach Verantwortung des Abonnenten. Im vorherigen Diagramm überträgt der Ereignisabonnent die Änderungen an die Query DynamoDB-Datenbank, um die Daten synchron zu halten. Durch die Verwendung von Amazon SNS, dem Message Broker und der Event-Abonnentenanwendung bleibt die Architektur entkoppelt.

Event Sourcing bietet die folgenden Vorteile:
+ Konsistenz für Transaktionsdaten
+ Ein zuverlässiger Prüfpfad und eine Historie der Maßnahmen, anhand derer die anhand der Daten ergriffenen Maßnahmen überwacht werden können
+ Ermöglicht verteilten Anwendungen wie Microservices, ihre Daten in der gesamten Umgebung zu synchronisieren
+ Zuverlässige Veröffentlichung von Ereignissen, wann immer sich der Status ändert
+ Rekonstruktion oder Wiederholung vergangener Staaten
+ Lose gekoppelte Entitäten, die Ereignisse austauschen, um von einer monolithischen Anwendung zu Microservices zu migrieren
+ Reduzierung von Konflikten, die durch gleichzeitige Aktualisierungen verursacht werden; durch die Ereignisbeschaffung entfällt die Notwendigkeit, Objekte direkt im Datenspeicher zu aktualisieren
+ Flexibilität und Erweiterbarkeit durch die Entkopplung von Aufgabe und Ereignis
+ Updates für externe Systeme
+ Verwaltung mehrerer Aufgaben in einem einzigen Ereignis

Beachten Sie bei der Verwendung von Event Sourcing die folgenden Vorbehalte:
+ Da es bei der Aktualisierung von Daten zwischen den Quell-Abonnentendatenbanken zu Verzögerungen kommt, besteht die einzige Möglichkeit, eine Änderung rückgängig zu machen, darin, dem Ereignisspeicher ein kompensierendes Ereignis hinzuzufügen.
+ Die Implementierung von Event Sourcing ist aufgrund des unterschiedlichen Programmierstils mit einer gewissen Lernkurve verbunden.

**Daten testen**

Verwenden Sie die folgenden Testdaten, um die Lambda-Funktion nach erfolgreicher Bereitstellung zu testen.

**CommandCreate Kunde**

```
{  "Id":1501,  "Firstname":"John",  "Lastname":"Done",  "CompanyName":"AnyCompany",  "Address": "USA",  "VIP":true }
```

**CommandUpdate Kunde**

```
{  "Id":1501,  "Firstname":"John",  "Lastname":"Doe",  "CompanyName":"Example Corp.",  "Address": "Seattle, USA",  "VIP":true }
```

**CommandDelete Kunde**

Geben Sie die Kunden-ID als Anfragedaten ein. Wenn die Kunden-ID beispielsweise 151 ist, geben Sie 151 als Anforderungsdaten ein.

```
151
```

**QueryCustomerList**

Das ist leer. Wenn es aufgerufen wird, werden alle Kunden zurückgegeben.

**CommandAddReward**

Dadurch werden dem Kunden mit der ID 1 (Richard) 40 Punkte gutgeschrieben.

```
{
  "Id":10101,
  "CustomerId":1,
  "Points":40
}
```

**CommandRedeemReward**

Dem Kunden mit der ID 1 (Richard) werden dadurch 15 Punkte abgezogen.

```
{
  "Id":10110,
  "CustomerId":1,
  "Points":15
}
```

**QueryReward**

Geben Sie die ID des Kunden ein. Geben Sie beispielsweise 1 für Richard, 2 für Arnav und 3 für Shirley ein.

```
2 
```

**Quellcode-Verzeichnis**

Verwenden Sie die folgende Tabelle als Leitfaden für die Verzeichnisstruktur der Visual Studio-Lösung. 

*Lösungsverzeichnis mit lokalen CQRS-Codebeispielen*

![\[Lösungsverzeichnis mit erweiterten Befehls- und Abfragediensten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/4811c2c0-643b-410f-bb87-0b86ec5e194c.png)


**CRUD-Modell für Kunden**

Lokales CQRS-Codebeispiel\$1 CRUD-Modell\$1 AWS.APG.CQRSES.DAL-Projekt

**CQRS-Version des Kunden-CRUD-Modells**
+ Kundenbefehl: Projekt `CQRS On-Premises Code Sample\CQRS Model\Command Microservice\AWS.APG.CQRSES.Command`
+ Kundenanfrage: `CQRS On-Premises Code Sample\CQRS Model\Query Microservice\AWS.APG.CQRSES.Query` Projekt

**Microservices für Befehle und Abfragen**

Der Command-Mikroservice befindet sich im Lösungsordner: `CQRS On-Premises Code Sample\CQRS Model\Command Microservice`
+ `AWS.APG.CQRSES.CommandMicroservice`Das ASP.NET Core API-Projekt dient als Einstiegspunkt, über den Verbraucher mit dem Dienst interagieren.
+ `AWS.APG.CQRSES.Command`.NET Core-Projekt ist ein Objekt, das befehlsbezogene Objekte und Schnittstellen hostet.

Der Abfrage-Microservice befindet sich im Lösungsordner: `CQRS On-Premises Code Sample\CQRS Model\Query Microservice`
+ `AWS.APG.CQRSES.QueryMicroservice`Das ASP.NET Core API-Projekt dient als Einstiegspunkt, über den Verbraucher mit dem Dienst interagieren.
+ `AWS.APG.CQRSES.Query`.NET Core-Projekt ist ein Objekt, das abfragebezogene Objekte und Schnittstellen hostet.

*CQRS AWS-Lösungsverzeichnis für serverlosen Code*

![\[Lösungsverzeichnis, das sowohl Microservices als auch die Eventquelle enthält, erweitert.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9f1bc700-def4-4201-bb2d-f1fa27404f15/images/23f8655c-95ad-422c-b20a-e29dc145e995.png)


 

Dieser Code ist die AWS-Version des lokalen Codes, der serverlose AWS-Services verwendet.

In C\$1.NET Core wird jede Lambda-Funktion durch ein .NET Core-Projekt repräsentiert. Im Beispielcode dieses Musters gibt es für jede Schnittstelle im Befehls- und Abfragemodell ein eigenes Projekt.

**CQRS verwendet AWS-Services**

Sie finden das Stammlösungsverzeichnis für CQRS, das AWS-Serverless-Services verwendet, im `CQRS AWS Serverless\CQRS` Ordner. Das Beispiel umfasst zwei Modelle: Customer und Reward.

Die Befehle Lambda-Funktionen für Customer und Reward befinden sich in den `CQRS\Command Microservice\Reward` Ordnern `CQRS\Command Microservice\Customer` und. Sie enthalten die folgenden Lambda-Projekte:
+ Kundenbefehl:`CommandCreateLambda`,`CommandDeleteLambda`, und `CommandUpdateLambda`
+ Belohnungsbefehl: `CommandAddRewardLambda` und `CommandRedeemRewardLambda`

Die Lambda-Abfragefunktionen für Customer und Reward befinden sich in den `CQRS\QueryMicroservice\Reward` Ordnern `CQRS\Query Microservice\Customer` und. Sie enthalten die Projekte `QueryCustomerListLambda` und `QueryRewardLambda` Lambda.

**CQRS-Testprojekt**

Das Testprojekt befindet sich unter dem `CQRS\Tests` Ordner. Dieses Projekt enthält ein Testskript zur Automatisierung des Testens der CQRS-Lambda-Funktionen.

**Beschaffung von Veranstaltungen mithilfe von AWS-Services**

Die folgenden Lambda-Event-Handler werden von den DynamoDB-Streams Customer und Reward initiiert, um die Daten in Abfragetabellen zu verarbeiten und zu synchronisieren.
+ Die `EventSourceCustomer` Lambda-Funktion ist dem DynamoDB-Stream Customer table (`cqrses-customer-cmd`) zugeordnet.
+ Die `EventSourceReward` Lambda-Funktion ist dem DynamoDB-Stream Reward table (`cqrses-reward-cmd`) zugeordnet.

## Anlagen
<a name="attachments-9f1bc700-def4-4201-bb2d-f1fa27404f15"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/9f1bc700-def4-4201-bb2d-f1fa27404f15/attachments/attachment.zip)

# Mehr Muster
<a name="modernization-more-patterns-pattern-list"></a>

**Topics**
+ [Greifen Sie mit AWS PrivateLink und einem Network Load Balancer privat auf Container-Anwendungen auf Amazon EKS zu](access-container-applications-privately-on-amazon-eks-using-aws-privatelink-and-a-network-load-balancer.md)
+ [Automatisieren Sie das Hinzufügen oder Aktualisieren von Windows-Registrierungseinträgen mit AWS Systems Manager](automate-adding-or-updating-windows-registry-entries-using-aws-systems-manager.md)
+ [Automatisieren Sie regionsübergreifendes Failover und Failback mithilfe des DR Orchestrator Framework](automate-cross-region-failover-and-failback-by-using-dr-orchestrator-framework.md)
+ [Automatisches Erstellen und Bereitstellen einer Java-Anwendung auf Amazon EKS mithilfe einer CI/CD Pipeline](automatically-build-and-deploy-a-java-application-to-amazon-eks-using-a-ci-cd-pipeline.md)
+ [Automatisches Erstellen von CI/CD Pipelines und Amazon ECS-Clustern für Microservices mithilfe von AWS CDK](automatically-build-ci-cd-pipelines-and-amazon-ecs-clusters-for-microservices-using-aws-cdk.md)
+ [Mainframe-Daten mithilfe von BMC AMI Cloud Data auf Amazon S3 sichern und archivieren](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Erstellen Sie ein Micro Focus Enterprise Server PAC mit Amazon EC2 Auto Scaling und Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Bauen Sie mit Amazon ein Datennetz für Unternehmen auf DataZone AWS CDK, und AWS CloudFormation](build-enterprise-data-mesh-amazon-data-zone.md)
+ [Containerisieren Sie Mainframe-Workloads, die von Blu Age modernisiert wurden](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [EBCDIC-Daten mithilfe von Python in ASCII auf AWS konvertieren und entpacken](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Konvertieren Sie Mainframe-Datendateien mit komplexen Datensatzlayouts mit Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Erstellen Sie ein Portal für Mikro-Frontends mithilfe AWS Amplify von Angular und Module Federation](create-amplify-micro-frontend-portal.md)
+ [Container mithilfe von Elastic Beanstalk bereitstellen](deploy-containers-by-using-elastic-beanstalk.md)
+ [Emulieren Sie Oracle DR mithilfe einer PostgreSQL-kompatiblen globalen Aurora-Datenbank](emulate-oracle-dr-by-using-a-postgresql-compatible-aurora-global-database.md)
+ [Generieren Sie Dateneinblicke mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Generieren Sie Einblicke in z/OS Db2-Daten mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Automatische Identifizierung doppelter Container-Images bei der Migration zu einem Amazon ECR-Repository](identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.md)
+ [Implementieren Sie KI-gestützte Kubernetes-Diagnose und -Fehlerbehebung mit der Integration von K8SGPT und Amazon Bedrock](implement-ai-powered-kubernetes-diagnostics-and-troubleshooting-with-k8sgpt-and-amazon-bedrock-integration.md)
+ [Implementieren Sie die auf Microsoft Entra ID basierende Authentifizierung in einer modernisierten Mainframe-Anwendung von AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Implementieren Sie die pfadbasierte API-Versionierung mithilfe benutzerdefinierter Domains in Amazon API Gateway](implement-path-based-api-versioning-by-using-custom-domains.md)
+ [Schrittweise Migration von Amazon RDS for Oracle zu Amazon RDS for PostgreSQL mithilfe von Oracle SQL Developer und AWS SCT](incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.md)
+ [Integrieren Sie Stonebranch Universal Controller in AWS Mainframe Modernization](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [AWS Service Catalog-Produkte in mehreren AWS-Konten und AWS-Regionen verwalten](manage-aws-service-catalog-products-in-multiple-aws-accounts-and-aws-regions.md)
+ [Migrieren Sie ein AWS Mitgliedskonto von AWS Organizations zu AWS Control Tower](migrate-an-aws-member-account-from-aws-organizations-to-aws-control-tower.md)
+ [Migrieren und replizieren Sie VSAM-Dateien mit Connect von Precisely zu Amazon RDS oder Amazon MSK](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Migrieren Sie mithilfe von AWS DMS von SAP ASE zu Amazon RDS for SQL Server](migrate-from-sap-ase-to-amazon-rds-for-sql-server-using-aws-dms.md)
+ [Migrieren Sie externe Oracle-Tabellen zu Amazon Aurora PostgreSQL-kompatibel](migrate-oracle-external-tables-to-amazon-aurora-postgresql-compatible.md)
+ [Modernisieren Sie die CardDemo Mainframe-Anwendung mithilfe von AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernisieren und implementieren Sie Mainframe-Anwendungen mithilfe von Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernisieren Sie Mainframe-Batchdruck-Workloads mithilfe AWS von Rocket Enterprise Server und LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisieren Sie Mainframe-Online-Druck-Workloads auf AWS mithilfe von Micro Focus Enterprise Server und LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Modernisieren Sie das Mainframe-Output-Management mithilfe AWS von Rocket Enterprise Server und LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Verschieben Sie Mainframe-Dateien mit Transfer Family direkt nach Amazon S3](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Optimieren Sie serverlose Bereitstellungen mit mehreren Konten mithilfe der AWS CDK Workflows und Aktionen GitHub](optimize-multi-account-serverless-deployments.md)
+ [Optimieren Sie die Leistung Ihrer modernisierten AWS Blu Age-Anwendung](optimize-performance-aws-blu-age-modernized-application.md)
+ [Automatisieren Sie blue/green die Bereitstellung globaler Amazon Aurora Aurora-Datenbanken mithilfe von IaC-Prinzipien](p-automate-blue-green-deployments-aurora-global-databases-iac.md)
+ [Replizieren Sie Mainframe-Datenbanken mithilfe von Precisely Connect nach AWS](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)
+ [Führen Sie Amazon ECS-Aufgaben auf Amazon WorkSpaces mit Amazon ECS Anywhere aus](run-amazon-ecs-tasks-on-amazon-workspaces-with-amazon-ecs-anywhere.md)
+ [Senden Sie Telemetriedaten von AWS Lambda zu OpenSearch für Analysen und Visualisierungen in Echtzeit](send-telemetry-data-from-lambda-to-opensearch-for-analytics-visualization.md)
+ [Richten Sie die CloudFormation Drifterkennung in einer Organisation mit mehreren Regionen und mehreren Konten ein](set-up-aws-cloudformation-drift-detection-in-a-multi-region-multi-account-organization.md)
+ [Strukturieren Sie ein Python-Projekt in hexagonaler Architektur mit AWS Lambda](structure-a-python-project-in-hexagonal-architecture-using-aws-lambda.md)
+ [Testen Sie die AWS Infrastruktur mithilfe LocalStack von Terraform-Tests](test-aws-infra-localstack-terraform.md)
+ [Verwandeln Sie Easytrieve mithilfe von Custom in moderne Sprachen AWS Transform](transform-easytrieve-modern-languages.md)
+ [Aktualisieren Sie SAP Pacemaker-Cluster von ENSA1 auf ENSA2](upgrade-sap-pacemaker-clusters-from-ensa1-to-ensa2.md)
+ [Verwenden Sie Amazon Q Developer als Programmierassistenten, um Ihre Produktivität zu steigern](use-q-developer-as-coding-assistant-to-increase-productivity.md)
+ [Validieren Sie den Code von Account Factory for Terraform (AFT) lokal](validate-account-factory-for-terraform-aft-code-locally.md)

# Großrechner
<a name="mainframe-pattern-list"></a>

**Topics**
+ [Zugriff AWS-Services von IBM z/OS durch Installation des AWS CLI](access-aws-services-from-ibm-z-os-by-installing-aws-cli.md)
+ [Mainframe-Daten mithilfe von BMC AMI Cloud Data auf Amazon S3 sichern und archivieren](back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.md)
+ [Erstellen Sie COBOL Db2-Programme mit und AWS Mainframe Modernization AWS CodeBuild](build-cobol-db2-programs-mainframe-modernization-codebuild.md)
+ [Erstellen Sie ein Micro Focus Enterprise Server PAC mit Amazon EC2 Auto Scaling und Systems Manager](build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.md)
+ [Erstellen Sie einen fortschrittlichen Mainframe-Dateiviewer in der AWS-Cloud](build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.md)
+ [Containerisieren Sie Mainframe-Workloads, die von Blu Age modernisiert wurden](containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.md)
+ [EBCDIC-Daten mithilfe von Python in ASCII auf AWS konvertieren und entpacken](convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.md)
+ [Konvertieren Sie Mainframe-Dateien vom EBCDIC-Format in das durch Zeichen getrennte ASCII-Format in Amazon S3 mit AWS Lambda](convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.md)
+ [Konvertieren Sie Mainframe-Datendateien mit komplexen Datensatzlayouts mit Micro Focus](convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.md)
+ [Stellen Sie mithilfe von Terraform eine Umgebung für containerisierte Blu Age-Anwendungen bereit](deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.md)
+ [Generieren Sie Einblicke in z/OS Db2-Daten mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.md)
+ [Generieren Sie Dateneinblicke mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.md)
+ [Implementieren Sie die auf Microsoft Entra ID basierende Authentifizierung in einer modernisierten Mainframe-Anwendung von AWS Blu Age](implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.md)
+ [Integrieren Sie Stonebranch Universal Controller in AWS Mainframe Modernization](integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.md)
+ [Migrieren und replizieren Sie VSAM-Dateien mit Connect von Precisely zu Amazon RDS oder Amazon MSK](migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.md)
+ [Modernisieren Sie die CardDemo Mainframe-Anwendung mithilfe von AWS Transform](modernize-carddemo-mainframe-app.md)
+ [Modernisieren und implementieren Sie Mainframe-Anwendungen mithilfe von Terraform AWS Transform](modernize-mainframe-app-transform-terraform.md)
+ [Modernisieren Sie das Mainframe-Output-Management mithilfe AWS von Rocket Enterprise Server und LRS X PageCenter](modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.md)
+ [Modernisieren Sie Mainframe-Batchdruck-Workloads mithilfe AWS von Rocket Enterprise Server und LRS VPSX/MFI](modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Mainframe-Modernisierung: DevOps Weiter AWS mit Rocket Software Enterprise Suite](mainframe-modernization-devops-on-aws-with-micro-focus.md)
+ [Modernisieren Sie Mainframe-Online-Druck-Workloads auf AWS mithilfe von Micro Focus Enterprise Server und LRS VPSX/MFI](modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.md)
+ [Verschieben Sie Mainframe-Dateien mit Transfer Family direkt nach Amazon S3](move-mainframe-files-directly-to-amazon-s3-using-transfer-family.md)
+ [Optimieren Sie die Leistung Ihrer modernisierten AWS Blu Age-Anwendung](optimize-performance-aws-blu-age-modernized-application.md)
+ [Sicherer und optimierter Benutzerzugriff in einer Db2-Verbunddatenbank auf AWS mithilfe vertrauenswürdiger Kontexte](secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.md)
+ [Übertragung umfangreicher z/OS Db2-Daten in CSV-Dateien nach Amazon S3](transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.md)
+ [Verwandeln Sie Easytrieve mithilfe von Custom in moderne Sprachen AWS Transform](transform-easytrieve-modern-languages.md)
+ [Mehr Muster](mainframe-more-patterns-pattern-list.md)

# Zugriff AWS-Services von IBM z/OS durch Installation des AWS CLI
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli"></a>

*Souma Ghosh, Paulo Vitor Pereira und Phil de Valence, Amazon Web Services*

## Zusammenfassung
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-summary"></a>

The [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) ist ein Open-Source-Tool zur Verwaltung mehrerer AWS Dienste mithilfe von Befehlen in einer Befehlszeilen-Shell. Mit minimaler Konfiguration können Sie Befehle von Befehlszeilensitzungen wie der Befehlszeile, dem Terminal und der Bash-Shell aus ausführen, um Funktionen zu implementieren, die der browserbasierten AWS-Managementkonsole Version entsprechen.

Alle Administrations-, Management- und Zugriffsfunktionen von AWS Infrastructure as a Service (IaaS) in der AWS-Managementkonsole sind in der AWS API und AWS CLI verfügbar. Sie können den AWS CLI auf einem z/OS IBM-Mainframe installieren, um von z/OS AWS-Services aus direkt darauf zuzugreifen, ihn zu verwalten und mit ihm zu interagieren. Das AWS CLI ermöglicht es Benutzern und Anwendungen, verschiedene Aufgaben auszuführen, wie z. B.:
+ Übertragung von Dateien oder Datensätzen zwischen z/OS einem Amazon Simple Storage Service (Amazon S3) -Objektspeicher und Anzeigen des Inhalts von Buckets
+ Starten und Stoppen verschiedener AWS Ressourcen, z. B. Starten eines Batch-Jobs in einer Umgebung AWS Mainframe Modernization 
+ Aufruf einer AWS Lambda Funktion zur Implementierung allgemeiner Geschäftslogik
+ Integration mit Diensten für künstliche Intelligenz und maschinelles Lernen (AI/ML) sowie Analysedienste

Dieses Muster beschreibt, wie Sie das auf Benutzerebene oder AWS CLI auf z/OS. You can install it globally, so it's available to all z/OS Benutzerebene installieren, konfigurieren und verwenden. Das Muster beschreibt auch, wie der AWS CLI in einer interaktiven Befehlszeilensitzung von z/OS Unix System Services (USS) oder als Batch-Job verwendet wird.

## Voraussetzungen und Einschränkungen
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-prereqs"></a>

**Voraussetzungen**
+ **Netzwerkkommunikation von z/OS bis AWS**

  Standardmäßig AWS CLI sendet der Anfragen unter Verwendung AWS-Services von HTTPS an TCP-Port 443. Um das AWS CLI erfolgreich verwenden zu können, müssen Sie in der Lage sein, ausgehende Verbindungen über den TCP-Port 443 herzustellen. Sie können jeden der folgenden z/OS USS-Befehle (einige davon sind möglicherweise nicht in Ihrer Umgebung installiert) verwenden, um die Netzwerkkonnektivität von bis zu zu zu z/OS zu zu AWS testen:

  ```
  ping amazonaws.com
  dig amazonaws.com
  traceroute amazonaws.com
  curl -k https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
  ```
+ **AWS Anmeldedaten**

  Um mit den AWS Cloud Diensten von z/OS kommunizieren zu können, AWS CLI müssen Sie einige Anmeldeinformationen mit Rechten für den Zugriff auf das Ziel AWS-Konto konfigurieren. Für programmatische Befehle können Sie Zugriffsschlüssel verwenden, die aus einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel bestehen. AWS Wenn Sie noch keine Zugriffsschlüssel besitzen, können Sie diese über die AWS-Managementkonsole erstellen. Es hat sich bewährt, die Zugriffsschlüssel für den AWS-Konto Root-Benutzer für keine Aufgabe zu verwenden, es sei denn, der Root-Benutzer ist erforderlich. [Erstellen Sie stattdessen einen neuen Administrator-IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) und [bereiten Sie sich auf die Berechtigungen mit den geringsten](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#LeastPrivilege) Rechten vor****, um den Benutzer mit Zugriffsschlüsseln einzurichten. Nachdem Sie den Benutzer erstellt haben, können Sie [eine Zugriffsschlüssel-ID und einen geheimen Zugriffsschlüssel für diesen Benutzer erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)
+ **IBM Python für z/OS**

  Das AWS CLI erfordert Python 3.8 oder höher. IBM hat Python für die Ausführung z/OS mit [IBM Open Enterprise Python for z/OS](https://www.ibm.com/products/open-enterprise-python-zos) aktiviert. [IBM Open Enterprise Python ist kostenlos über Shopz SMP/E erhältlich, oder Sie können die PAX-Datei von der IBM-Website herunterladen.](https://www.ibm.com/account/reg/signup?formid=urx-49465) Anweisungen finden Sie in der [Installations- und Konfigurationsdokumentation](https://www.ibm.com/docs/en/python-zos) für IBM Open Enterprise Python for z/OS.

**Einschränkungen**
+ Die in diesem Muster enthaltenen Installationsanweisungen gelten **nur für AWS CLI Version 1.** Die neueste Version von AWS CLI ist Version 2. Dieses Muster verwendet jedoch die ältere Version, da die Installationsmethoden für Version 2 unterschiedlich sind und die für Version 2 verfügbaren binären ausführbaren Dateien nicht mit dem z/OS System kompatibel sind.

**Produktversionen**
+ AWS CLI Version 1
+ Python 3.8 oder höher

## Architektur
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-architecture"></a>

**Technologie-Stack**
+ Mainframe, auf dem z/OS ausgeführt wird
+  z/OS Mainframe-UNIX-Systemdienste (USS)
+ Mainframe Open MVS (OMVS) — Befehlsschnittstelle für die z/OS UNIX-Shell-Umgebung
+ Mainframe-Festplatte, z. B. ein Direct-Access-Speichergerät (DASD)
+ AWS CLI

**Zielarchitektur**

Das folgende Diagramm zeigt eine AWS CLI Bereitstellung auf IBM z/OS. Sie können die AWS CLI in einer interaktiven Benutzersitzung wie SSH und in Telnet-Sitzungen aufrufen. Sie können ihn auch von einem Batchjob aus aufrufen, indem Sie die Job Control Language (JCL) verwenden, oder von einem beliebigen Programm aus, das einen Unix-Shell-Befehl aufrufen kann. z/OS 

![\[AWS-CLI auf einem z/OS IBM-Mainframe, der auf AWS-Services zugreift.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/c3883500-bd00-4c56-982a-26d5e0b8b093.png)


Der AWS CLI kommuniziert mit AWS-Service Endpunkten über ein Netzwerk. TCP/IP Diese Netzwerkverbindung kann über das Internet oder über eine private AWS Direct Connect Verbindung vom Kundenrechenzentrum zu AWS Cloud den Rechenzentren erfolgen. Die Kommunikation wird mit AWS Anmeldeinformationen authentifiziert und verschlüsselt. 

**Automatisierung und Skalierung**

Sie können die Funktionen von und AWS-Service mit dem erkunden AWS CLI und USS-Shell-Skripte entwickeln, um Ihre AWS Ressourcen von z/OS aus zu verwalten. Sie können auch AWS CLI Befehle und Shell-Skripte in der z/OS Batch-Umgebung ausführen und Batch-Jobs automatisieren, sodass sie nach einem bestimmten Zeitplan ausgeführt werden, indem Sie sie in Mainframe-Scheduler integrieren. AWS CLI Befehle oder Skripten können innerhalb von Parametern (PARMs) und Prozeduren (PROCs) codiert und skaliert werden, indem man dem Standardansatz folgt, PARM oder PROC von verschiedenen Batchjobs mit unterschiedlichen Parametern aus aufzurufen.

## Tools
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-tools"></a>
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie AWS-Services über Befehle in Ihrer Befehlszeilen-Shell interagieren können.

## Best Practices
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-best-practices"></a>
+ Beschränken Sie aus Sicherheitsgründen die Zugriffsberechtigungen auf das USS-Verzeichnis, in dem die AWS Zugangsschlüsseldetails gespeichert sind. Erlauben Sie den Zugriff nur Benutzern oder Programmen, die den verwenden AWS CLI.
+ Verwenden Sie die AWS-Konto Root-Benutzerzugriffstasten für keine Aufgabe. [Erstellen Sie stattdessen einen neuen Administrator-IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin) für sich selbst und richten Sie ihn mit Zugriffsschlüsseln ein.


| 
| 
| IAM-Benutzer verfügen über langfristige Anmeldeinformationen, die ein Sicherheitsrisiko darstellen. Um dieses Risiko zu minimieren, empfehlen wir, diesen Benutzern nur die Berechtigungen zu gewähren, die sie für die Ausführung der Aufgabe benötigen, und diese Benutzer zu entfernen, wenn sie nicht mehr benötigt werden. | 
| --- |

## Epen
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-epics"></a>

### Installieren Sie AWS CLI Version 1 auf USS z/OS
<a name="install-cli-version-1-on-z-os-uss"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie Python 3.8 oder höher. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe-Administrator z/OS  | 
| Legen Sie die USS-Umgebungsvariablen fest. | Fügen Sie dem Profil Umgebungsvariablen hinzu. Sie können diese entweder der `/u/cliuser/.profile` Datei für einen einzelnen Benutzer (`cliuser`) oder der `/etc/profile` Datei für alle Benutzer hinzufügen.Dieses Muster geht davon aus, dass Python in dem `/u/awscli/python` Verzeichnis installiert wurde. Wenn Ihr Installationsverzeichnis anders ist, aktualisieren Sie den Code entsprechend.<pre># Python configuration<br />export BPXKAUTOCVT='ON'<br />export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)'<br />export TAGREDIR_ERR=txt<br />export TAGREDIR_IN=txt<br />export TAGREDIR_OUT=txt<br /><br /># AWS CLI configuration<br />export PATH=/u/cliuser/python/bin:$PATH<br />export PYTHONPATH=/u/cliuser/python:$PYTHONPATH</pre> | Mainframe-Administrator z/OS  | 
| Testen Sie die Python-Installation. | Führen Sie den **Python-Befehl** aus:<pre>python --version</pre>Die Ausgabe sollte bestätigen, dass Sie Python 3.8 oder höher korrekt installiert haben. | Mainframe-Administrator z/OS  | 
| Überprüfen oder installieren Sie **Pip**. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe-Administrator z/OS  | 
| Installieren Sie AWS CLI Version 1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe-Administrator z/OS  | 

### Konfigurieren Sie den AWS CLI Zugriff von z/OS aus
<a name="configure-cli-access-from-z-os"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die AWS Zugriffstasten, die Standardregion und die Ausgabe. | In der [AWS CLI Dokumentation](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html) werden verschiedene Optionen für die Einrichtung des AWS Zugriffs beschrieben. Sie können eine Konfiguration wählen, die den Standards Ihrer Organisation entspricht. In diesem Beispiel wird die Konfiguration mit kurzfristigen Anmeldeinformationen verwendet.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | AWS-Administrator, z/OS Mainframe-Administrator, Mainframe-Entwickler z/OS  | 
| Testen Sie das. AWS CLI | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe-Administrator, Mainframe-Entwickler z/OS z/OS  | 

### Option 1 ‒ Daten interaktiv aus einer USS-Sitzung von USS zu Amazon S3 übertragen
<a name="option-1-transfer-data-from-uss-to-s3-interactively-from-a-uss-session"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die CSV-Beispieldatei herunter und übertragen Sie sie. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | App-Entwickler, Mainframe-Entwickler z/OS  | 
| Erstellen Sie einen S3-Bucket und laden Sie die CSV-Datei hoch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | App-Entwickler, z/OS Mainframe-Entwickler | 
| Sehen Sie sich den S3-Bucket und die hochgeladene Datei an. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)Weitere Informationen zum Hochladen von Objekten finden Sie unter [Erste Schritte mit Amazon S3 in der Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html) S3-Dokumentation. | Allgemeines AWS | 
| Führen Sie eine SQL-Abfrage für eine Amazon Athena Athena-Tabelle aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html)In der Ausgabe der SQL-Abfrage wird der Inhalt Ihrer CSV-Datei angezeigt. | Allgemein AWS, App-Entwickler | 

### Option 2 ‒ Daten mithilfe von Batch-JCL von USS nach Amazon S3 übertragen
<a name="option-2-transfer-data-from-uss-to-s3-by-using-batch-jcl"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Beispieldatei hoch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe-Entwickler z/OS  | 
| Erstellen Sie eine Batch-JCL. | Codieren Sie die Batch-JCL wie folgt, um den Ziel-S3-Bucket zu erstellen, den Datensatz hochzuladen und den Bucket-Inhalt aufzulisten. Stellen Sie sicher, dass Sie den Verzeichnisnamen, die Dateinamen und den Bucket-Namen durch Ihre eigenen Werte ersetzen.<pre>//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), <br />// NOTIFY=&SYSUID,TIME=1440 <br />//*---------------------------------------------------------<br />//* Sample job for AWS CLI <br />//*--------------------------------------------------------- <br />//USSCMD EXEC PGM=BPXBATCH<br />//STDERR  DD SYSOUT=*<br />//STDOUT  DD SYSOUT=*<br />//STDENV  DD *<br /> export PATH=/u/cliuser/python/bin:$PATH<br />//STDPARM DD *<br />SH<br /> export _BPXK_AUTOCVT=ON;<br /> aws s3 mb s3://DOC-EXAMPLE-BUCKET2;<br /> cp "//'USER.DATA.FIXED'" /tmp/tmpfile;<br /> aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; <br /> rm /tmp/tmpfile;<br /> aws s3 ls s3://DOC-EXAMPLE-BUCKET2;<br />/*</pre> | Mainframe-Entwickler z/OS  | 
| Reichen Sie den Batch-JCL-Job ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Mainframe-Entwickler z/OS  | 
| Sehen Sie sich den Datensatz an, der in den S3-Bucket hochgeladen wurde. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/access-aws-services-from-ibm-z-os-by-installing-aws-cli.html) | Allgemeines AWS | 

## Zugehörige Ressourcen
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-resources"></a>
+ [AWS CLI Dokumentation zu Version 1](https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html)
+ [AWS Mainframe Modernization CLI-Befehlsreferenz](https://docs.aws.amazon.com/cli/latest/reference/m2/)
+ [AWS Mainframe Modernization](https://aws.amazon.com/mainframe-modernization/)

## Zusätzliche Informationen
<a name="access-aws-services-from-ibm-z-os-by-installing-aws-cli-additional"></a>

**USER.DATA.FIXED in der ISPF-Option 3.4 (Hilfsprogramm zur Datensatzliste)**

![\[Den Inhalt des Datensatzes in z/OS anzeigen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/96c25145-3d4d-4007-99f6-5eeb9e88642d.png)


**SYSOUT des übermittelten Batch-Jobs**

![\[Standardausgabe aus dem Job-Protokoll.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4e3188d8-287f-4ced-8c29-80a01cbbdf50/images/03fffbd2-7d2b-43b2-bf14-736b3d150e38.png)


## Anlagen
<a name="attachments-4e3188d8-287f-4ced-8c29-80a01cbbdf50"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/4e3188d8-287f-4ced-8c29-80a01cbbdf50/attachments/attachment.zip)

# Mainframe-Daten mithilfe von BMC AMI Cloud Data auf Amazon S3 sichern und archivieren
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data"></a>

*Santosh Kumar Singh, Gilberto Biondo und Maggie Li, Amazon Web Services*

*Mikhael Liberman, Modell 9 Mainframe-Software*

## Zusammenfassung
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-summary"></a>

Dieses Muster zeigt, wie Mainframe-Daten direkt in Amazon Simple Storage Service (Amazon S3) gesichert und archiviert werden. Anschließend werden diese Daten mithilfe von BMC AMI Cloud Data (früher bekannt als Model9 Manager) abgerufen und auf dem Mainframe wiederhergestellt. Wenn Sie nach einer Möglichkeit suchen, Ihre Sicherungs- und Archivierungslösung im Rahmen eines Mainframe-Modernisierungsprojekts zu modernisieren oder um Compliance-Anforderungen zu erfüllen, kann dieses Muster Ihnen helfen, diese Ziele zu erreichen.

In der Regel verwenden Unternehmen, die wichtige Geschäftsanwendungen auf Mainframes ausführen, eine virtuelle Bandbibliothek (VTL), um Datenspeicher wie Dateien und Protokolle zu sichern. Diese Methode kann teuer sein, da sie gebührenpflichtiges MIPS verbraucht und auf die auf Bändern außerhalb des Mainframes gespeicherten Daten nicht zugegriffen werden kann. Um diese Probleme zu vermeiden, können Sie BMC AMI Cloud Data verwenden, um betriebliche und historische Mainframe-Daten schnell und kostengünstig direkt zu Amazon S3 zu übertragen. Sie können BMC AMI Cloud Data verwenden, um Daten zu sichern und TCP/IP zu archivieren und AWS gleichzeitig die Vorteile der IBM z Integrated Information Processor (zIIP) -Engines zu nutzen, um Kosten, Parallelität und Übertragungszeiten zu reduzieren.

## Voraussetzungen und Einschränkungen
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ BMC AMI Cloud Data mit einem gültigen Lizenzschlüssel
+ TCP/IP-Konnektivität zwischen dem Mainframe und AWS
+ Eine AWS Identity and Access Management (IAM-) Rolle für read/write den Zugriff auf einen S3-Bucket
+ Zugriff auf das Mainframe-Sicherheitsprodukt (RACF) zur Ausführung von BMC AMI-Cloud-Prozessen vorhanden
+ Ein BMC AMI z/OS Cloud-Agent (Java Version 8 64-Bit SR5 FP16 oder höher) mit verfügbaren Netzwerkports, Firewallregeln, die den Zugriff auf S3-Buckets ermöglichen, und einem dedizierten Dateisystem z/FS 
+ Die [Anforderungen](https://docs.bmc.com/docs/cdacv27/management-server-requirements-1245343255.html) für den BMC AMI Cloud-Verwaltungsserver wurden erfüllt

**Einschränkungen**
+ BMC AMI Cloud Data speichert seine Betriebsdaten in einer PostgreSQL-Datenbank, die als Docker-Container auf derselben Amazon Elastic Compute Cloud (Amazon EC2) -Instance wie der Management-Server ausgeführt wird. Amazon Relational Database Service (Amazon RDS) wird derzeit nicht als Backend für BMC AMI Cloud Data unterstützt. Weitere Informationen zu den neuesten Produktupdates finden Sie unter [Was ist neu?](https://docs.bmc.com/docs/cdacv27/what-s-new-1245343246.html) in der BMC-Dokumentation.
+ Mit diesem Muster werden nur z/OS Mainframe-Daten gesichert und archiviert. BMC AMI Cloud Data sichert und archiviert nur Mainframe-Dateien.
+ Dieses Muster konvertiert keine Daten in offene Standardformate wie JSON oder CSV. Verwenden Sie einen zusätzlichen Transformationsdienst wie [BMC AMI Cloud Analytics](https://www.bmc.com/it-solutions/bmc-ami-cloud-analytics.html) (früher bekannt als Model9 Gravity), um die Daten in offene Standardformate zu konvertieren. Cloud-native Anwendungen und Datenanalysetools können auf die Daten zugreifen, nachdem sie in die Cloud geschrieben wurden.

**Produktversionen**
+ BMC AMI Cloud-Daten Version 2.x

## Architektur
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-architecture"></a>

**Quelltechnologie-Stack**
+ Mainframe, auf dem z/OS ausgeführt wird
+ Mainframe-Dateien wie Datensätze und z/OS UNIX System Services (USS) -Dateien
+ Mainframe-Festplatte, z. B. ein Direct-Access-Speichergerät (DASD)
+ Mainframe-Band (virtuelle oder physische Bandbibliothek)

**Zieltechnologie-Stack**
+ Amazon S3
+  EC2 Amazon-Instanz in einer virtuellen privaten Cloud (VPC)
+ AWS Direct Connect
+ Amazon Elastic File System (Amazon EFS)

**Zielarchitektur**

Das folgende Diagramm zeigt eine Referenzarchitektur, in der BMC AMI Cloud Data-Softwareagenten auf einem Mainframe die älteren Datensicherungs- und Archivierungsprozesse ausführen, die die Daten in Amazon S3 speichern.

![\[BMC AMI Cloud Data-Softwareagenten auf einem Mainframe, die ältere Datensicherungs- und Archivierungsprozesse vorantreiben\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bde3b029-184e-4eb0-933b-f8caf6cc40ab/images/a24cd6c1-b131-49ea-8238-f3aea5ab8134.png)


Das Diagramm zeigt den folgenden Workflow:

1. BMC AMI Cloud Data-Softwareagenten werden auf logischen Mainframe-Partitionen () LPARs ausgeführt. Die Softwareagenten lesen und schreiben Mainframe-Daten von DASD oder Band direkt über TCP/IP in Amazon S3.

1. AWS Direct Connect richtet eine physische, isolierte Verbindung zwischen dem lokalen Netzwerk und ein. AWS Führen Sie zur Erhöhung der Sicherheit zusätzlich ein site-to-site VPN aus, um Daten während der Übertragung Direct Connect zu verschlüsseln.

1. Der S3-Bucket speichert Mainframe-Dateien als Objektspeicherdaten, und BMC AMI Cloud Data-Agents kommunizieren direkt mit den S3-Buckets. Zertifikate werden für die HTTPS-Verschlüsselung der gesamten Kommunikation zwischen dem Agenten und Amazon S3 verwendet. Die Amazon S3 S3-Datenverschlüsselung wird verwendet, um die Daten im Ruhezustand zu verschlüsseln und zu schützen.

1. BMC AMI Cloud Data Management Server werden als Docker-Container auf EC2 Instanzen ausgeführt. Die Instances kommunizieren mit Agenten, die auf Mainframe LPARs - und S3-Buckets ausgeführt werden.

1. Amazon EFS wird sowohl auf aktiven als auch auf passiven EC2 Instances bereitgestellt, um den NFS-Speicher (Network File System) gemeinsam zu nutzen. Dadurch wird sichergestellt, dass Metadaten, die sich auf eine auf dem Management-Server erstellte Richtlinie beziehen, im Falle eines Failovers nicht verloren gehen. Im Falle eines Failovers durch den aktiven Server kann ohne Datenverlust auf den passiven Server zugegriffen werden. Wenn der passive Server ausfällt, kann ohne Datenverlust auf den aktiven Server zugegriffen werden.

## Tools
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) hilft Ihnen bei der Erstellung und Konfiguration gemeinsam genutzter Dateisysteme in der AWS Cloud.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, mit dem Sie nahezu jede Datenmenge speichern, schützen und abrufen können.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS.
+ [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)verbindet Ihr internes Netzwerk über ein Standard-Ethernet-Glasfaserkabel mit einem AWS Direct Connect Standort. Mit dieser Verbindung können Sie virtuelle Schnittstellen direkt zu öffentlichen AWS Diensten einrichten und gleichzeitig Internetdienstanbieter in Ihrem Netzwerkpfad umgehen.
+ [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.

**BMC-Tools**
+ Der [BMC AMI Cloud Management Server](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) ist eine GUI-Anwendung, die als Docker-Container auf einem Amazon Linux Amazon Machine Image (AMI) für Amazon läuft. EC2 Der Management-Server bietet Funktionen zur Verwaltung von BMC AMI Cloud-Aktivitäten wie Berichten, Erstellen und Verwalten von Richtlinien, Ausführen von Archiven und Durchführen von Backups, Rückrufen und Wiederherstellungen.
+ Der [BMC AMI Cloud-Agent](https://docs.bmc.com/docs/cdacv27/bmc-ami-cloud-overview-1245343249.html) wird auf einem lokalen Mainframe-LPAR ausgeführt, der Dateien mithilfe von TCP/IP direkt in den Objektspeicher liest und schreibt. Eine gestartete Aufgabe wird auf einem Mainframe-LPAR ausgeführt und ist für das Lesen und Schreiben von Sicherungs- und Archivdaten in und von Amazon S3 verantwortlich.
+ Das [BMC AMI Cloud Mainframe Command Line Interface (M9CLI)](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) bietet Ihnen eine Reihe von Befehlen, mit denen Sie BMC AMI Cloud-Aktionen direkt von TSO/E oder in Batch-Vorgängen ausführen können, ohne vom Management-Server abhängig zu sein.

## Epen
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-epics"></a>

### Erstellen Sie einen S3-Bucket und eine IAM-Richtlinie
<a name="create-an-s3-bucket-and-iam-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | [Erstellen Sie einen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), um die Dateien und Volumes zu speichern, die Sie aus Ihrer Mainframe-Umgebung sichern und archivieren möchten. | Allgemeines AWS | 
| Erstellen Sie eine IAM-Richtlinie. | Alle BMC AMI Cloud-Verwaltungsserver und -Agenten benötigen Zugriff auf den S3-Bucket, den Sie im vorherigen Schritt erstellt haben.Um den erforderlichen Zugriff zu gewähren, erstellen Sie die folgende IAM-Richtlinie:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Listfolder",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation",<br />                "s3:ListBucketVersions"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>"<br />            ]<br />        },<br />        {<br />            "Sid": "Objectaccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::<Bucket Name>/*"<br />            ]<br />        }<br />    ]<br />}</pre> | Allgemeines AWS | 

### Holen Sie sich die BMC AMI Cloud-Softwarelizenz und laden Sie die Software herunter
<a name="get-the-bmc-ami-cloud-software-license-and-download-the-software"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Besorgen Sie sich eine BMC AMI Cloud-Softwarelizenz. | Um einen Softwarelizenzschlüssel zu erhalten, wenden Sie sich an das [BMC AMI Cloud-Team](https://www.bmc.com/it-solutions/bmc-ami-cloud.html?vd=model9-io). Die Ausgabe des z/OS `D M=CPU` Befehls ist für die Generierung einer Lizenz erforderlich. | Blei aufbauen | 
| Laden Sie die BMC AMI Cloud-Software und den Lizenzschlüssel herunter. | Besorgen Sie sich die Installationsdateien und den Lizenzschlüssel, indem Sie den Anweisungen in der [BMC-Dokumentation](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-bmc-ami-cloud-agent-1245343285.html) folgen. | Administrator der Mainframe-Infrastruktur | 

### Installieren Sie den BMC AMI Cloud-Softwareagenten auf dem Mainframe
<a name="install-the-bmc-ami-cloud-software-agent-on-the-mainframe"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie den BMC AMI Cloud-Softwareagenten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Administrator der Mainframe-Infrastruktur | 

### Richten Sie einen BMC AMI Cloud-Verwaltungsserver auf einer Instanz ein EC2
<a name="set-up-a-bmc-ami-cloud-management-server-on-an-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie Amazon EC2 Linux 2-Instances. | Starten Sie zwei Amazon EC2 Linux 2-Instances in verschiedenen Availability Zones, indem Sie den Anweisungen in [Schritt 1: Starten einer Instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) in der EC2 Amazon-Dokumentation folgen.Die Instance muss die folgenden empfohlenen Hardware- und Softwareanforderungen erfüllen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Weitere Informationen finden Sie in der [BMC-Dokumentation](https://docs.bmc.com/docs/cdacv27/preparing-to-install-the-management-server-on-linux-1245343268.html). | Cloud-Architekt, Cloud-Administrator | 
| Erstellen Sie ein Amazon EFS-Dateisystem. | Erstellen Sie ein Amazon EFS-Dateisystem, indem Sie den Anweisungen unter [Schritt 1: Erstellen Sie Ihr Amazon EFS-Dateisystem](https://docs.aws.amazon.com/efs/latest/ug/gs-step-two-create-efs-resources.html) in der Amazon EFS-Dokumentation folgen.Gehen Sie beim Erstellen des Dateisystems wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Cloud-Administrator, Cloud-Architekt | 
| Installieren Sie Docker und konfigurieren Sie den Management-Server. | **Connect zu Ihren EC2 Instances her:**Stellen Sie eine Verbindung zu Ihren EC2 Instances her, indem Sie den Anweisungen unter [Connect to your Linux Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) in der EC2 Amazon-Dokumentation folgen.**Konfigurieren Sie Ihre EC2 Instances:**Gehen Sie für jede EC2 Instanz wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Cloud-Architekt, Cloud-Administrator | 
| Installieren Sie die Management-Server-Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Um Probleme zu beheben, gehen Sie zu den Protokollen, die im Ordner gespeichert sind. `/data/model9/logs/`**** Weitere Informationen finden Sie in der [BMC-Dokumentation](https://docs.bmc.com/docs/cdacv27/performing-the-management-server-installation-on-linux-1245343272.html). | Cloud-Architekt, Cloud-Administrator | 

### Fügen Sie einen Agenten hinzu und definieren Sie eine Sicherungs- oder Archivierungsrichtlinie auf dem BMC AMI Cloud-Verwaltungsserver
<a name="add-an-agent-and-define-a-backup-or-archive-policy-on-the-bmc-ami-cloud-management-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie einen neuen Agenten hinzu. | Bevor Sie einen neuen Agenten hinzufügen, bestätigen Sie Folgendes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Sie müssen einen Agenten auf dem Management-Server erstellen, bevor Sie Sicherungs- und Archivierungsrichtlinien definieren. Gehen Sie wie folgt vor, um den Agenten zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Nachdem der Agent erstellt wurde, wird in einem neuen Fenster, das in der Tabelle angezeigt wird, der **Verbindungsstatus** für den Objektspeicher und den Mainframe-Agenten angezeigt. | Mainframe-Speicheradministrator oder Entwickler | 
| Erstellen Sie eine Sicherungs- oder Archivierungsrichtlinie. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Mainframe-Speicheradministrator oder Entwickler | 

### Führen Sie die Sicherungs- oder Archivierungsrichtlinie vom Management-Server aus
<a name="run-the-backup-or-archive-policy-from-the-management-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie die Sicherungs- oder Archivierungsrichtlinie aus. | Führen Sie die Datensicherungs- oder Archivierungsrichtlinie, die Sie zuvor auf dem Management-Server erstellt haben, entweder manuell oder automatisch (nach einem Zeitplan) aus. Gehen Sie wie folgt vor, um die Richtlinie manuell auszuführen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Mainframe-Speicheradministrator oder Entwickler | 
| Stellen Sie die Sicherungs- oder Archivierungsrichtlinie wieder her. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html) | Mainframe-Speicheradministrator oder Entwickler | 

### Führen Sie die Sicherungs- oder Archivierungsrichtlinie vom Mainframe aus
<a name="run-the-backup-or-archive-policy-from-the-mainframe"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie die Sicherungs- oder Archivierungsrichtlinie mithilfe von M9CLI aus. | Verwenden Sie die M9CLI, um Sicherungs- und Wiederherstellungsprozesse von TSO/E, REXX oder so aus durchzuführen, JCLs ohne Regeln auf dem BMC AMI Cloud-Verwaltungsserver einzurichten.**Verwenden von TSO/E:**Wenn Sie TSO/E verwenden, stellen Sie sicher, dass dies mit verknüpft ist. `M9CLI REXX` `TSO` Verwenden Sie den Befehl, um einen Datensatz über TSO/E zu sichern. `TSO M9CLI BACKDSN <DSNAME>`Weitere Informationen zu M9CLI-Befehlen finden Sie in der [CLI-Referenz](https://docs.bmc.com/docs/cdacv27/command-line-interface-cli-reference-1245343519.html) in der BMC-Dokumentation.** JCLsVerwenden von:**Um die Sicherungs- und Archivierungsrichtlinie mithilfe auszuführen JCLs, führen Sie den `M9CLI` Befehl aus.**Verwenden von Batch-Operationen:**Das folgende Beispiel zeigt Ihnen, wie Sie einen Datensatz archivieren, indem Sie den `M9CLI` Befehl im Batch ausführen:<pre>//JOBNAME JOB …<br />//M9CLI EXEC PGM=IKJEFT01<br />//STEPLIB DD DISP=SHR,DSN=<MODEL9 LOADLIB><br />//SYSEXEC DD DISP=SHR,DSN=<MODEL9 EXEC LIB><br />//SYSTSPRT DD SYSOUT=*<br />//SYSPRINT DD SYSOUT=*<br />//SYSTSIN DD TSO M9CLI ARCHIVE <br /> M9CLI ARCHIVE <DSNNAME OR DSN PATTERN>   <br />/</pre> | Mainframe-Speicheradministrator oder Entwickler | 
| Führen Sie die Sicherungs- oder Archivierungsrichtlinie im JCL-Batch aus. | **BMC AMI Cloud bietet eine JCL-Beispielroutine namens M9SAPIJ.** Sie können **M9SAPIJ** so anpassen, dass eine bestimmte Richtlinie ausgeführt wird, die auf dem Management-Server mit einer JCL erstellt wurde. Dieser Job kann auch Teil eines Batch-Schedulers sein, mit dem Sicherungs- und Wiederherstellungsprozesse automatisch ausgeführt werden.Der Batch-Job erwartet die folgenden obligatorischen Werte:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data.html)Sie können auch andere Werte ändern, indem Sie den Anweisungen im Beispieljob folgen. | Mainframe-Speicheradministrator oder Entwickler | 

## Zugehörige Ressourcen
<a name="back-up-and-archive-mainframe-data-to-amazon-s3-using-bmc-ami-cloud-data-resources"></a>
+ [Mainframe-Modernisierung mit AWS (AWS-Dokumentation](https://aws.amazon.com/mainframe/))
+ [Wie Cloud Backup für Mainframes mit Model9 und AWS Kosten senkt (AWS-Partnernetzwerk-Blog](https://aws.amazon.com/blogs/apn/how-cloud-backup-for-mainframes-cuts-costs-with-model9-and-aws/))
+ [So aktivieren Sie Mainframe-Datenanalysen auf AWS mithilfe von Model9](https://aws.amazon.com/blogs/apn/how-to-enable-mainframe-data-analytics-on-aws-using-model9/) (AWS-Partnernetzwerk-Blog)
+ [Empfehlungen zur Ausfallsicherheit von AWS Direct Connect](https://aws.amazon.com/directconnect/resiliency-recommendation/?nc=sn&loc=4&dn=2) (AWS-Dokumentation)
+ [BMC AMI Cloud-Dokumentation](https://docs.bmc.com/docs/cdacv27/getting-started-1245343248.html) (BMC-Webseite)

# Erstellen Sie COBOL Db2-Programme mit und AWS Mainframe Modernization AWS CodeBuild
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild"></a>

*Luis Gustavo Dantas und Eduardo Zimelewicz, Amazon Web Services*

## Zusammenfassung
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-summary"></a>

**Anmerkung**  
AWS Mainframe Modernization Der Service (Managed Runtime Environment Experience) steht Neukunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Dieses Muster erklärt, wie Sie mithilfe der AWS CodeBuild Replatform-Tools ein einfaches Projekt erstellen, um COBOL Db2-Programme vorzukompilieren und zu binden. AWS Mainframe Modernization Dies ermöglicht die Bereitstellung und Ausführung dieser Programme in der Replatform-Laufzeitumgebung. AWS Mainframe Modernization 

COBOL, eine geschäftsorientierte Programmiersprache, unterstützt aufgrund ihrer Zuverlässigkeit und Lesbarkeit viele kritische Anwendungen. IBM Db2, ein relationales Datenbankmanagementsystem, verwaltet große Datenmengen effizient und lässt sich über SQL in COBOL-Programme integrieren. Zusammen bilden COBOL und Db2 trotz des Aufkommens neuerer Technologien das Rückgrat geschäftskritischer Abläufe in Branchen wie Finanzen und Behörden.

Die Migration von COBOL- und Db2-Komponenten aus der Mainframe-Umgebung auf andere Plattformen führt zu Herausforderungen wie Plattformkompatibilität, Integrationskomplexität, Datenmigration und Leistungsoptimierung. Die Migration dieser kritischen Komponenten erfordert sorgfältige Planung, technisches Fachwissen und Ressourcen, um eine reibungslose Migration zu gewährleisten und gleichzeitig Zuverlässigkeit und Funktionalität zu gewährleisten.

Der AWS Mainframe Modernization Service bietet Tools und Ressourcen zur Neuplattformierung von Mainframe-Anwendungen und Datenbanken, sodass sie auf AWS Infrastrukturen wie Amazon Elastic Compute Cloud (Amazon EC2) -Instances ausgeführt werden können. Dies beinhaltet die Verlagerung von Mainframe-Workloads in die Cloud ohne größere Codeänderungen.

Der Db2-Vorkompilierungs- und Bindungsprozess ist für die Optimierung der Leistung und Zuverlässigkeit von Datenbankanwendungen unerlässlich. Durch die Vorkompilierung werden eingebettete SQL-Anweisungen in ausführbaren Code umgewandelt, wodurch der Laufzeitaufwand reduziert und die Effizienz gesteigert wird. Der Bind-Prozess verknüpft den vorkompilierten Code mit Datenbankstrukturen und erleichtert so die Zugriffspfade und die Abfrageoptimierung. Dieser Prozess gewährleistet die Datenintegrität, verbessert die Reaktionsfähigkeit von Anwendungen und schützt vor Sicherheitslücken. Ordnungsgemäß vorkompilierte und gebundene Anwendungen minimieren den Ressourcenverbrauch, verbessern die Skalierbarkeit und verringern die Risiken von SQL-Injection-Angriffen.

## Voraussetzungen und Einschränkungen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-prereqs"></a>

**Voraussetzungen**
+ Ein AWS-Konto Konsolenzugriff auf Administratorebene.
+ Ein IBM Db2-Datenbanksystem, wie IBM Db2 für z/OS oder Db2 für Linux, Unix und Windows (LUW).
+ [Die IBM Data Server Client-Software, die von der IBM-Website heruntergeladen werden kann.](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers) Weitere Informationen finden Sie unter [IBM Data Server Client- und Data Server-Treibertypen](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients).
+ Ein COBOL Db2-Programm, das kompiliert und gebunden werden soll. Alternativ bietet dieses Muster ein grundlegendes Beispielprogramm, das Sie verwenden können.
+ Eine virtuelle private Cloud (VPC) AWS mit einem privaten Netzwerk. Informationen zum Erstellen einer VPC finden Sie in der Dokumentation zu [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html).
+ Ein Quellcodeverwaltungs-Repository wie GitHub oder. GitLab

**Einschränkungen**
+ Informationen zu AWS CodeBuild Kontingenten finden Sie unter [Kontingente für AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html).
+ Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie [AWS-Services unter Nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie auf der Seite [Dienstendpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Dienst aus.

## Architektur
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-architecture"></a>

**Quelltechnologie-Stack**

Der Quellstapel umfasst:
+ COBOL-Programme, die eine Db2-Datenbank zum Speichern von Daten verwenden
+ IBM COBOL-Compiler und Db2 für Precompiler z/OS 
+ Andere Teile des Mainframe-Setups, wie das Dateisystem, der Transaktionsmanager und der Spool

**Zieltechnologie-Stack**

Der Ansatz dieses Musters funktioniert für zwei Optionen: das Verschieben von Daten von Db2 für LUW z/OS nach Db2 oder das Verbleiben auf Db2 für z/OS. Die Zielarchitektur umfasst:
+ COBOL-Programme, die eine Db2-Datenbank zum Speichern von Daten verwenden
+ AWS Mainframe Modernization Kompilierungstools auf eine neue Plattform
+ AWS CodeBuild als Infrastruktur für die Erstellung der Anwendung
+ Andere AWS Cloud Ressourcen wie Amazon Linux

**Zielarchitektur**

![\[Architektur für die Erstellung von COBOL Db2-Programmen auf AWS.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/5895fa34-f05b-4cc3-a59f-a596f9116c66/images/0dda414a-21a7-41d1-b86b-7ff3b1c6fbda.png)


Das Diagramm veranschaulicht folgende Vorgänge:

1. Der Benutzer lädt seinen Code in ein Quellcodeverwaltungs-Repository wie oder hoch. GitHub GitLab

1. AWS CodePipeline bemerkt die Änderung und ruft den Code aus dem Repository ab.

1. CodePipeline startet AWS CodeBuild und sendet den Code.

1. CodeBuild folgt den Anweisungen in der `buildspec.yml` Vorlage (im Abschnitt [Zusätzliche Informationen](#build-cobol-db2-programs-mainframe-modernization-codebuild-additional)), um:

   1. Holen Sie sich den IBM Data Server Client aus einem Amazon Simple Storage Service (Amazon S3) -Bucket.

   1. Installieren und richten Sie den IBM Data Server Client ein.

   1. Rufen Sie die Db2-Anmeldeinformationen von ab AWS Secrets Manager.

   1. Stellen Sie eine Verbindung zum Db2-Server her.

   1. Kompilieren Sie das COBOL-Programm vor, kompilieren Sie es und binden Sie es.

   1. Speichern Sie die fertigen Produkte zur AWS CodeDeploy Verwendung in einem S3-Bucket.

1. CodePipeline beginnt CodeDeploy.

1. CodeDeploy koordiniert seine Agenten, die bereits in den Laufzeitumgebungen installiert sind. Die Agenten rufen die Anwendung von Amazon S3 ab und installieren sie gemäß den Anweisungen in`appspec.yml`.

Um die Dinge einfach zu halten und sich auf den Build zu konzentrieren, decken die Anweisungen in diesem Muster die Schritte 1 bis 4 ab, beinhalten jedoch nicht die Bereitstellung des COBOL Db2-Programms.

**Automatisierung und Skalierung**

Der Einfachheit halber beschreibt dieses Muster, wie Ressourcen manuell bereitgestellt werden. Es stehen jedoch zahlreiche Automatisierungsoptionen zur Verfügung, wie, und HashiCorp Terraform CloudFormation AWS Cloud Development Kit (AWS CDK), mit denen diese Aufgaben automatisiert werden können. Weitere Informationen finden Sie in der Dokumentation [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)und [AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/home.html).

## Tools
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-tools"></a>

**AWS-Services**
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)ist ein vollständig verwalteter Build-Service, der Sie beim Kompilieren von Quellcode, beim Ausführen von Komponententests und beim Erstellen von Artefakten unterstützt, die sofort einsatzbereit sind.
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)automatisiert Bereitstellungen für Amazon EC2 - oder lokale Instances, AWS Lambda Funktionen oder Amazon Elastic Container Service (Amazon ECS) -Services.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)hilft Ihnen dabei, die verschiedenen Phasen einer Softwareversion schnell zu modellieren und zu konfigurieren und die Schritte zu automatisieren, die für die kontinuierliche Veröffentlichung von Softwareänderungen erforderlich sind.
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)stellt Tools und Ressourcen bereit, die Sie bei der Planung und Implementierung der Migration und Modernisierung von Mainframes zu AWS verwalteten Runtime-Umgebungen unterstützen.

**Andere Tools**
+ **Amazon ECR-Image für AWS Mainframe Modernization Replatform-Tools**. Um eine COBOL-Anwendung zu kompilieren, müssen Sie sie CodeBuild mithilfe eines Amazon Elastic Container Registry (Amazon ECR) -Images initiieren, das die AWS Mainframe Modernization Replatform-Tools enthält:

  `673918848628.dkr.ecr.<your-region>.amazonaws.com/m2-enterprise-build-tools:9.0.7.R1`

  *Weitere Informationen zum verfügbaren ECR-Image finden Sie im [Tutorial im Benutzerhandbuch](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-build-mf.html).AWS Mainframe Modernization *
+ Die [IBM Data Server Client-Software](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients) ist für die Vorkompilierung und Einbindung von COBOL Db2-Programmen unverzichtbar. CodeBuild Sie fungiert als Brücke zwischen dem COBOL-Compiler und Db2.

## Best Practices
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-best-practices"></a>
+ Nicht jedes COBOL-Programm stützt sich auf Db2 als Datenpersistenzschicht. Stellen Sie sicher, dass Kompilierungsanweisungen für den Zugriff auf Db2 nur auf COBOL-Programme angewendet werden, die speziell für die Interaktion mit Db2 entwickelt wurden. Implementieren Sie eine Logik, um zwischen COBOL-Db2-Programmen und COBOL-Programmen zu unterscheiden, die Db2 nicht verwenden.
+ Es wird empfohlen, das Kompilieren von Programmen zu vermeiden, die nicht geändert wurden. Implementieren Sie einen Prozess, um zu ermitteln, welche Programme kompiliert werden müssen.

## Epen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-epics"></a>

### Erstellen Sie die Cloud-Infrastruktur
<a name="create-the-cloud-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket, um den IBM Data Server Client und die Pipeline-Artefakte zu hosten. | Sie müssen einen S3-Bucket einrichten, um (a) den IBM Data Server Client hochzuladen, (b) Ihren Code aus dem Repository zu speichern und (c) die Ergebnisse des Build-Prozesses zu speichern.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Informationen zum Erstellen eines S3-Buckets finden Sie in der [Amazon S3 S3-Dokumentation.](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) | Allgemeines AWS | 
| Laden Sie den IBM Data Server Client in den S3-Bucket hoch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Allgemeines AWS | 
| Erstellen Sie ein AWS Secrets Manager Geheimnis für Ihre Db2-Anmeldeinformationen. | Um ein Geheimnis zu erstellen, um Ihre DB2 Anmeldeinformationen sicher zu speichern:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Weitere Informationen zum Erstellen von Geheimnissen finden Sie in der [Secrets Manager Manager-Dokumentation](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html). | Allgemeines AWS | 
| Stellen Sie sicher, dass auf Db2 vom VPC-Subnetz aus zugegriffen werden kann. | AWS CodeBuild benötigt eine Verbindung zum Db2-Server, damit der Data Server Client Vorkompilierungs- und Bindungsvorgänge durchführen kann. Stellen Sie sicher, dass der Db2-Server über eine sichere Verbindung erreicht werden CodeBuild kann.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | Netzwerkadministrator, General AWS | 

### Erstellen Sie die Anwendungsartefakte
<a name="create-the-application-artifacts"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das COBOL Db2-Asset. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | App-Developer | 
| Erstellen Sie die Datei `buildspec.yml`. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Connect dein Repository mit CodePipeline. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Sie benötigen den Amazon-Ressourcennamen (ARN) für die Verbindung, wenn Sie CodePipeline in einem späteren Schritt die AWS Identity and Access Management (IAM) -Richtlinie für erstellen. | AWS DevOps | 

### Konfigurieren von -Berechtigungen
<a name="configure-permissions"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine IAM-Richtlinie für CodeBuild. | Das CodeBuild Projekt benötigt Zugriff auf einige Ressourcen, darunter Secrets Manager und Amazon S3.So richten Sie die erforderlichen Berechtigungen ein:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html)Weitere Informationen zum Erstellen von IAM-Richtlinien finden Sie in der [IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html). | Allgemeines AWS | 
| Erstellen Sie eine IAM-Rolle für CodeBuild. | Um die Sicherheitsrichtlinien für verfügbar zu machen CodeBuild, müssen Sie eine IAM-Rolle konfigurieren.Um diese Rolle zu erstellen:1. Wählen Sie in der [IAM-Konsole](https://console.aws.amazon.com/iam) im Navigationsbereich **Rollen**, **Rolle erstellen** aus.3. Behalten Sie für den **Entitätstyp Vertrauenswürdig** die **AWS-Service**Standardeinstellung bei.4. Wählen **Sie unter Anwendungsfall** den CodeBuild Dienst aus und klicken Sie dann auf **Weiter**.4. Suchen Sie in der Liste der verfügbaren IAM-Richtlinien nach der Richtlinie, für die Sie sie erstellt haben CodeBuild, und klicken Sie dann auf **Weiter**, um sie der Rolle hinzuzufügen.5. Geben Sie einen Namen für die Rolle an und wählen Sie **Rolle erstellen** aus, um sie zur future in zu speichern CodeBuild.Weitere Informationen zum Erstellen einer IAM-Rolle für eine AWS-Service finden Sie in der [IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | Allgemeines AWS | 
| Erstellen Sie eine IAM-Richtlinie für CodePipeline. | Die AWS CodePipeline Pipeline benötigt Zugriff auf einige Ressourcen, einschließlich Ihres Code-Repositorys und Amazon S3.Wiederholen Sie die zuvor beschriebenen Schritte CodeBuild , um eine IAM-Richtlinie für zu erstellen CodePipeline (wählen Sie in Schritt 2 **CodePipeline**statt **CodeBuild**). | AWS DevOps | 
| Erstellen Sie eine IAM-Rolle für CodePipeline. | Um die Sicherheitsrichtlinien für verfügbar zu machen CodePipeline, müssen Sie eine IAM-Rolle konfigurieren.Um diese Rolle zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 

### Kompilieren und binden Sie das COBOL Db2-Programm
<a name="compile-and-bind-the-cobol-db2-program"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine CodePipeline Pipeline und ein CodeBuild Projekt. | So erstellen Sie eine CodePipeline Pipeline und das CodeBuild Projekt, das das COBOL Db2-Programm kompiliert und bindet:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-cobol-db2-programs-mainframe-modernization-codebuild.html) | AWS DevOps | 
| Überprüfen Sie die Ausgabe. | Überprüfen Sie den Erfolg des Builds, indem Sie die CodePipeline Build-Logs überprüfen. | AWS DevOps | 
| Überprüfen Sie die Ergebnisse in Db2. | Überprüfen Sie die Paketversion in der SYSPLAN-Tabelle.<pre>select CAST(NAME AS VARCHAR(10)) as name, VALIDATE, LAST_BIND_TIME, LASTUSED, CAST(PKGVERSION AS VARCHAR(10)) as PKGVERSION from SYSIBM.SYSPLAN where NAME = 'CDB2SMP' order by LAST_BIND_TIME desc<br /></pre>Die Version muss mit der CodeBuild Build-ID übereinstimmen, die `CDB2SMP` in unserem Beispiel wie folgt lautet:<pre>NAME       VALIDATE LAST_BIND_TIME             LASTUSED   PKGVERSION<br />---------- -------- -------------------------- ---------- ----------<br />CDB2SMP    B        2024-05-18-11.53.11.503738 01/01/0001 19</pre> |  | 

## Fehlerbehebung
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Gelegentlich wechselt die AWS Konsole zwischen Regionen, wenn Sie zwischen Diensten wechseln. | Stellen Sie sicher, dass Sie bei AWS-Region jedem Wechsel zwischen Diensten die Auswahl überprüfen.Der AWS-Region Selektor befindet sich in der oberen rechten Ecke des Konsolenfensters. | 
| Es kann schwierig sein, Db2-Konnektivitätsprobleme anhand von zu identifizieren. CodeBuild | Um Verbindungsprobleme zu beheben, fügen Sie der `buildspec.yml` Datei den folgenden DB2 Verbindungsbefehl hinzu. Dieser Zusatz hilft Ihnen beim Debuggen und Beheben von Verbindungsproblemen.<pre>db2 connect to $DB_NAME user $DB2USER using $DB2PASS</pre> | 
| Gelegentlich wird im Rollenbereich der IAM-Konsole die von Ihnen erstellte IAM-Richtlinie nicht sofort angezeigt. | Wenn Sie auf eine Verzögerung stoßen, aktualisieren Sie den Bildschirm, um die neuesten Informationen anzuzeigen. | 

## Zugehörige Ressourcen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-resources"></a>

**IBM-Dokumentation**
+ [IBM Data Server Client- und Treibertypen](https://www.ibm.com/docs/en/db2/11.5?topic=overviews-data-server-clients)
+ [Laden Sie IBM Data Server Client und Treibertypen herunter](https://www.ibm.com/support/pages/download-initial-version-115-clients-and-drivers)

**AWS Dokumentation**
+ [Amazon S3 S3-Benutzerhandbuch](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)
+ [AWS CodeBuild Benutzerhandbuch](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS Mainframe Modernization Benutzerhandbuch](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)
+ [AWS Secrets Manager Benutzerhandbuch](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS CodePipeline Benutzerhandbuch](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [AWS CodeDeploy Benutzerhandbuch** **](https://docs.aws.amazon.com/codedeploy/latest/userguide/getting-started-codedeploy.html)

## Zusätzliche Informationen
<a name="build-cobol-db2-programs-mainframe-modernization-codebuild-additional"></a>

**CodeBuild Richtlinie**

Ersetzen Sie die Platzhalter `<RegionID>``<AccountID>`,, `<SubnetARN>``<BucketARN>`, und `<DB2CredSecretARN>` durch Ihre Werte.

```
{"Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": "ecr:GetAuthorizationToken", "Effect": "Allow", "Resource": "*" },
        {"Action": ["ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", 
                    "ecr:BatchCheckLayerAvailability"],
         "Effect": "Allow", 
         "Resource": "arn:aws:ecr:*:673918848628:repository/m2-enterprise-build-tools"},
        {"Action": "s3:PutObject", "Effect": "Allow", "Resource": "arn:aws:s3:::aws-m2-repo-*/*"},
        {"Action": ["logs:PutLogEvents", "logs:CreateLogStream", "logs:CreateLogGroup"],
         "Effect": "Allow", "Resource": "arn:aws:logs:<RegionId>:<AccountId>:*"},
        {"Action": ["ec2:DescribeVpcs", "ec2:DescribeSubnets", 
                    "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", 
                    "ec2:DescribeDhcpOptions", "ec2:DeleteNetworkInterface", 
                    "ec2:CreateNetworkInterface"],
         "Effect": "Allow", "Resource": "*"},
        {"Action": "ec2:CreateNetworkInterfacePermission", 
         "Effect": "Allow", "Resource": ["<SubnetARN>"]},
        {"Action": "s3:*", "Effect": "Allow", "Resource": ["<BucketARN>/*","<BucketARN>"]},
        {"Action": "secretsmanager:GetSecretValue", 
         "Effect": "Allow", "Resource": "<DB2CredSecretARN>"}
    ]
}
```

**CodePipeline Richtlinie**

Ersetzen Sie die Platzhalter `<BucketARN>` und `<ConnectionARN>` durch Ihre Werte.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {"Action": ["s3:List*", "s3:GetObjectVersion", "s3:GetObject", "s3:GetBucketVersioning" ], 
        "Effect": "Allow",
        "Resource": ["<BucketARN>/*", "<BucketARN>"]},
        {"Action": ["codebuild:StartBuild", "codebuild:BatchGetBuilds"], 
         "Effect": "Allow", "Resource": "*"},
        {"Action": ["codestar-connections:UseConnection"],
         "Effect": "Allow", "Resource": "<ConnectionARN>"}
        ]
}
```

**`buildspec.yml`**

Ersetzen Sie den `<your-bucket-name>` Platzhalter durch Ihren tatsächlichen S3-Bucket-Namen.

```
version: 0.2
phases:
  pre_build:
    commands:
      - /var/microfocuslicensing/bin/mfcesd -no > /var/microfocuslicensing/logs/mfcesd_startup.log 2>&1 &
      - |
        mkdir $CODEBUILD_SRC_DIR/db2client
        aws s3 cp s3://<your-bucket-name>/v11.5.8_linuxx64_client.tar.gz $CODEBUILD_SRC_DIR/db2client/ >> /dev/null 2>&1
        tar -xf $CODEBUILD_SRC_DIR/db2client/v11.5.8_linuxx64_client.tar.gz -C $CODEBUILD_SRC_DIR/db2client/
        cd $CODEBUILD_SRC_DIR/db2client/
        ./client/db2_install -f sysreq -y -b /opt/ibm/db2/V11.5 >> /dev/null 2>&1        
        useradd db2cli
        /opt/ibm/db2/V11.5/instance/db2icrt -s client -u db2cli db2cli
        DB2CRED=$(aws secretsmanager get-secret-value --secret-id dev-db2-cred | jq -r '.SecretString | fromjson')
        read -r DB2USER DB2PASS DB_NODE DB_HOST DB_PORT DB_NAME DB_QUAL <<<$(echo $DB2CRED | jq -r '.username, .password, .db2node, .db2host, .db2port, .db2name, .qualifier')
        . /home/db2cli/sqllib/db2profile
        db2 catalog tcpip node $DB_NODE remote $DB_HOST server $DB_PORT
        db2 catalog db $DB_NAME as $DB_NAME at node $DB_NODE authentication server
  build:
    commands:
      - |
        revision=$CODEBUILD_SRC_DIR/loadlib
        mkdir -p $revision; cd $revision
        . /opt/microfocus/EnterpriseDeveloper/bin/cobsetenv
        cob -zU $CODEBUILD_SRC_DIR/CDB2SMP.cbl -C "DB2(DB==${DB_NAME} PASS==${DB2USER}.${DB2PASS} VERSION==${CODEBUILD_BUILD_NUMBER} COLLECTION==DB2AWSDB"
artifacts:
  files:
    - "**/*"
  base-directory: $revision
```

# Erstellen Sie ein Micro Focus Enterprise Server PAC mit Amazon EC2 Auto Scaling und Systems Manager
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager"></a>

*Kevin Yung und Krithika Palani Selvam, Amazon Web Services*

*Peter Woods, keiner*

*Abraham Rondon, Mikrofokus*

## Zusammenfassung
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-summary"></a>

Dieses Muster führt eine skalierbare Architektur für Mainframe-Anwendungen ein, die [Micro Focus Enterprise Server im Scale-Out Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html) und eine Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling Scaling-Gruppe auf Amazon Web Services () verwenden.AWS Die Lösung ist vollständig automatisiert AWS Systems Manager und verfügt über Lifecycle-Hooks von Amazon EC2 Auto Scaling. Mithilfe dieses Musters können Sie Ihre Mainframe-Online- und Batch-Anwendungen so einrichten, dass sie durch automatische Ein- und Ausskalierung auf der Grundlage Ihrer Kapazitätsanforderungen eine hohe Ausfallsicherheit erreichen. 

**Anmerkung**  
Dieses Muster wurde mit Micro Focus Enterprise Server Version 6.0 getestet. Informationen zu Version 8 finden Sie unter [Micro Focus Runtime einrichten (bei Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

## Voraussetzungen und Einschränkungen
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Micro Focus Enterprise Server-Software und -Lizenz. Weitere Informationen erhalten Sie vom [Micro Focus-Vertrieb](https://www.microfocus.com/en-us/contact/contactme).
+ Ein Verständnis des Konzepts der Neuerstellung und Bereitstellung einer Mainframe-Anwendung zur Ausführung auf Micro Focus Enterprise Server. Einen allgemeinen Überblick finden Sie im [Micro Focus Enterprise Server-Datenblatt](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Ein Verständnis der Konzepte im Micro Focus Enterprise Server Scale-out Performance and Availability Cluster. Weitere Informationen finden Sie in der [Micro Focus Enterprise Server-Dokumentation](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-F6E1BBB7-AEC2-45B1-9E36-1D86B84D2B85.html).
+ Ein Verständnis des Gesamtkonzepts einer Mainframe-Anwendung DevOps mit kontinuierlicher Integration (CI). Ein von AWS und Micro Focus entwickeltes AWS Prescriptive Guidance-Muster finden Sie unter [Mainframe-Modernisierung: DevOps weiter AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) mit Micro Focus.

**Anmerkung**  
Dieses Muster wurde mit Micro Focus Enterprise Server Version 6 getestet. Informationen zu Version 8 finden Sie unter [Micro Focus Runtime einrichten (bei Amazon EC2)](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html).

**Einschränkungen**
+ Eine Liste der Plattformen, die von Micro Focus Enterprise Server unterstützt werden, finden Sie im [Micro Focus Enterprise Server-Datenblatt](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf).
+ Die in diesem Muster verwendeten Skripts und Tests basieren auf Amazon EC2 Windows Server 2019; andere Windows Server-Versionen und Betriebssysteme wurden nicht auf dieses Muster getestet.
+ Das Muster basiert auf Micro Focus Enterprise Server 6.0 für Windows. Frühere oder spätere Versionen wurden bei der Entwicklung dieses Musters nicht getestet.

**Produktversionen**
+ Micro Focus Enterprise Server 6.0
+ Windows Server 2019

## Architektur
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-architecture"></a>

In der herkömmlichen Mainframe-Umgebung müssen Sie Hardware bereitstellen, um Ihre Anwendungen und Unternehmensdaten zu hosten. Um den saisonalen, monatlichen, vierteljährlichen oder sogar beispiellosen oder unerwarteten Bedarfsspitzen gerecht zu werden und diese zu bewältigen, müssen Mainframe-Benutzer *skalieren*, indem sie zusätzliche Speicher- und Rechenkapazität erwerben. Durch die Erhöhung der Anzahl der Speicher- und Rechenkapazitätsressourcen wird die Gesamtleistung verbessert, die Skalierung erfolgt jedoch nicht linear.

Dies ist nicht der Fall, wenn Sie mit der Einführung eines On-Demand-Nutzungsmodells auf AWS beginnen, indem Sie Amazon EC2 Auto Scaling und Micro Focus Enterprise Server verwenden. In den folgenden Abschnitten wird detailliert beschrieben, wie Sie mithilfe des Micro Focus Enterprise Server Scale-Out Performance and Availability Clusters (PAC) mit einer Amazon EC2 Auto Scaling-Gruppe eine vollautomatische, skalierbare Mainframe-Anwendungsarchitektur aufbauen. 

**Die automatische Skalierungsarchitektur von Micro Focus Enterprise Server**

Zunächst ist es wichtig, die grundlegenden Konzepte von Micro Focus Enterprise Server zu verstehen. Diese Umgebung bietet eine Mainframe-kompatible x86-Bereitstellungsumgebung für Anwendungen, die traditionell auf dem IBM Mainframe ausgeführt wurden. Sie bietet sowohl Online- als auch Batchläufe sowie eine Transaktionsumgebung, die Folgendes unterstützt:
+ IBM COBOL
+ IBM PL/I
+ IBM JCL-Batchaufträge
+ IBM CICS- und IMS TM-Transaktionen
+ Web-Services
+ Gängige Batch-Dienstprogramme, einschließlich SORT

Micro Focus Enterprise Server ermöglicht die Ausführung von Mainframe-Anwendungen mit minimalen Änderungen. Bestehende Mainframe-Workloads können auf x86-Plattformen verlagert und modernisiert werden, um die Vorteile der nativen AWS-Cloud-Erweiterungen für eine schnelle Expansion in neue Märkte oder Regionen zu nutzen. 

Das AWS Prescriptive Guidance Guidance-Muster [Mainframe-Modernisierung: DevOps auf AWS mit Micro Focus](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/mainframe-modernization-devops-on-aws-with-micro-focus.html) wurde die Architektur eingeführt, um die Entwicklung und das Testen von Mainframe-Anwendungen auf AWS mithilfe von Micro Focus Enterprise Developer und Enterprise Test Server mit AWS und AWS zu beschleunigen. CodePipeline CodeBuild Dieses Muster konzentriert sich auf die Bereitstellung von Mainframe-Anwendungen in der AWS-Produktionsumgebung, um eine hohe Verfügbarkeit und Ausfallsicherheit zu erreichen.

In einer Mainframe-Produktionsumgebung haben Sie möglicherweise IBM Parallel Sysplex auf dem Mainframe eingerichtet, um eine hohe Leistung und hohe Verfügbarkeit zu erreichen. Um eine Scale-Out-Architektur zu schaffen, die Sysplex ähnelt, hat Micro Focus den Performance and Availability Cluster (PAC) in Enterprise Server eingeführt. PACs unterstützt die Bereitstellung von Mainframe-Anwendungen auf mehreren Enterprise Server-Regionen, die als einzelnes Image verwaltet und in EC2 Amazon-Instances skaliert werden. PACs unterstützt außerdem vorhersehbare Anwendungsleistung und Systemdurchsatz bei Bedarf. 

In einem PAC arbeiten mehrere Enterprise Server-Instanzen als eine einzige logische Einheit zusammen. Der Ausfall einer Enterprise Server-Instance beeinträchtigt daher nicht die Geschäftskontinuität, da die Kapazität mit anderen Regionen geteilt wird, während neue Instances automatisch mit Industriestandardfunktionen wie einer Amazon EC2 Auto Scaling Scaling-Gruppe gestartet werden. Dadurch werden einzelne Fehlerquellen beseitigt und die Widerstandsfähigkeit gegenüber Hardware-, Netzwerk- und Anwendungsproblemen verbessert. Skalierte Enterprise Server-Instanzen können mithilfe der Enterprise Server Common Web Administration (ESCWA) betrieben und verwaltet werden APIs, was die betriebliche Wartung und Wartungsfreundlichkeit von Enterprise Servern vereinfacht. 

**Anmerkung**  
Micro Focus empfiehlt, dass der [Performance and Availability Cluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-C06DC883-8A67-44DB-8553-8F0DD2062DAB.html) aus mindestens drei Enterprise Server-Regionen bestehen sollte, damit die Verfügbarkeit nicht beeinträchtigt wird, falls eine Enterprise Server-Region ausfällt oder gewartet werden muss.

Für die PAC-Konfiguration ist ein unterstützter relationaler Datenbankverwaltungsdienst (RDBMS) zur Verwaltung der Regionsdatenbank, einer regionsübergreifenden Datenbank und optionaler Datenspeicherdatenbanken erforderlich. Für die Verwaltung von VSAM-Dateien (Virtual Storage Access Method) mithilfe der Micro Focus Database File Handler-Unterstützung sollte eine Datenspeicher-Datenbank verwendet werden, um die Verfügbarkeit und Skalierbarkeit zu verbessern. RDBMSs Zu den unterstützten Produkten gehören:
+ Microsoft SQL Server 2009 R2 und höher
+ PostgreSQL 10.x, einschließlich Amazon Aurora PostgreSQL-kompatibler Edition
+ DB2 10.4 und höher

Einzelheiten zu den unterstützten RDBMS- und PAC-Anforderungen finden Sie unter [Micro Focus Enterprise Server — Voraussetzungen](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-486C5A4B-E3CD-4B17-81F3-32F9DE970EA5.html) und [Micro Focus Enterprise Server — Empfohlene](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-7038DB6F-E89F-4B5F-BCAA-BD1456F6CCA3.html) PAC-Konfiguration.

Das folgende Diagramm zeigt ein typisches AWS-Architektur-Setup für ein Micro Focus PAC. 

![\[Eine Architektur mit drei Verfügbarkeitszonen und fünf Schritten, die in einer Tabelle nach dem Diagramm beschrieben werden.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/df291568-a442-454f-80bf-49e4ffff4f6d.png)


 


| 
| 
|  | **Komponente** | **Beschreibung** | 
| --- |--- |--- |
| 1 | Automatische Skalierung der Enterprise Server-Instanzen (Gruppe) | Richten Sie eine automatische Skalierungsgruppe ein, die mit Enterprise Server-Instanzen in einem PAC bereitgestellt wird. Die Anzahl der Instances kann durch CloudWatch Amazon-Alarme mithilfe von CloudWatch Metriken nach oben oder unten skaliert werden. | 
| 2 | Automatische Skalierung der ESCWA-Instanzen von Enterprise Server  | Richten Sie eine automatische Skalierungsgruppe ein, die mit Enterprise Server Common Web Administration (ESCWA) bereitgestellt wird. ESCWA bietet Clusterverwaltung. APIs   Die ESCWA-Server dienen als Steuerungsebene zum Hinzufügen oder Entfernen von Enterprise Servern und zum Starten oder Stoppen von Enterprise Server-Regionen in der PAC während der automatischen Skalierungsereignisse der Enterprise Server-Instanz.   Da die ESCWA-Instanz nur für das PAC-Management verwendet wird, ist ihr Datenverkehrsmuster vorhersehbar, und die gewünschte Kapazitätsanforderung für die automatische Skalierung kann auf 1 gesetzt werden.  | 
| 3 | Amazon Aurora Aurora-Instance in einem Multi-AZ-Setup | Richten Sie ein relationales Datenbankmanagementsystem (RDBMS) ein, um sowohl Benutzer- als auch Systemdatendateien zu hosten, die von den Enterprise Server-Instances gemeinsam genutzt werden sollen. | 
| 4 | Amazon-Instanz ElastiCache (Redis OSS) und Replikat | Richten Sie eine primäre Instance ElastiCache (Redis OSS) und mindestens ein Replikat ein, um Benutzerdaten zu hosten und als Scale-Out-Repository (SOR) für die Enterprise Server-Instances zu fungieren. Sie können ein oder mehrere [Scale-Out-Repositorys konfigurieren, um bestimmte Arten von Benutzerdaten](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-3840E10F-80AA-4109-AF2C-894237D3AD00.html) zu speichern.   Enterprise Server verwendet eine Redis NoSQL-Datenbank als SOR, [eine Voraussetzung für die Aufrechterhaltung der PAC-Integrität](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-176B97CA-4F9F-4CE1-952F-C3F4FB0ADD25.html). | 
| 5 | Network Load Balancer | Richten Sie einen Load Balancer ein, der einen Hostnamen für Anwendungen bereitstellt, um eine Verbindung zu den von Enterprise Server-Instanzen bereitgestellten Diensten herzustellen (z. B. für den Zugriff auf die Anwendung über einen 3270-Emulator). | 

Diese Komponenten bilden die Mindestanforderung für einen Micro Focus Enterprise Server PAC-Cluster. Der nächste Abschnitt befasst sich mit der Automatisierung der Clusterverwaltung.

**Verwenden von AWS Systems Manager Automation für die Skalierung**

Nachdem der PAC-Cluster auf AWS bereitgestellt wurde, wird der PAC über die Enterprise Server Common Web Administration (ESCWA) APIs verwaltet. 

Um die Clusterverwaltungsaufgaben bei automatischen Skalierungsereignissen zu automatisieren, können Sie Systems Manager Automation-Runbooks und Amazon EC2 Auto Scaling mit Amazon EventBridge verwenden. Die Architektur dieser Automatisierungen ist in der folgenden Abbildung dargestellt.

![\[AWS architecture diagram showing EventBridge, Systems Manager, and EC2 Auto Scaling integration.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/64e3c22b-1058-4ab8-855f-18bbbed5dc13/images/6f9e4035-fafd-4aee-a6cc-d5e95d6514c2.png)


 


| 
| 
|  | **Komponente** | **Beschreibung** | 
| --- |--- |--- |
| 1 | Automatischer Skalierungslebenszyklus-Hook | Richten Sie automatische Skalierungs-Lifecycle-Hooks ein und senden Sie Benachrichtigungen an Amazon, EventBridge wenn neue Instances gestartet und bestehende Instances in der automatischen Skalierungsgruppe beendet werden. | 
| 2 | Amazon EventBridge | Richten Sie eine EventBridge Amazon-Regel ein, um automatische Skalierungsereignisse an Systems Manager Automation-Runbook-Ziele weiterzuleiten. | 
| 3 | Runbooks für die Automatisierung | Richten Sie Systems Manager Automation-Runbooks ein, um PowerShell Windows-Skripts auszuführen, und rufen Sie ESCWA auf, um das PAC APIs zu verwalten. Beispiele finden Sie im Abschnitt *Zusätzliche* Informationen. | 
| 4 | Enterprise Server ESCWA-Instanz in einer automatischen Skalierungsgruppe | Richten Sie eine Enterprise Server ESCWA-Instanz in einer automatischen Skalierungsgruppe ein. Die ESCWA-Instanz ermöglicht APIs die Verwaltung des PAC.  | 

## Tools
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-tools"></a>
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) — Micro Focus Enterprise Server bietet die Ausführungsumgebung für Anwendungen, die mit einer beliebigen IDE-Variante (Integrated Development Environment) von Enterprise Developer erstellt wurden.
+ [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html) — Amazon EC2 Auto Scaling hilft Ihnen sicherzustellen, dass Ihnen die richtige Anzahl von EC2 Amazon-Instances zur Verfügung steht, um die Last für Ihre Anwendung zu bewältigen. Sie erstellen Sammlungen von EC2 Instances, sogenannte Auto Scaling Scaling-Gruppen, und geben die Mindest- und Höchstanzahl von Instances an.
+ [Amazon ElastiCache (Redis OSS)](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/WhatIs.html) — Amazon ElastiCache ist ein Webservice zum Einrichten, Verwalten und Skalieren einer verteilten In-Memory-Datenspeicher- oder Cache-Umgebung in der Cloud. Es handelt sich um eine leistungsstarke, skalierbare und kostengünstige Caching-Lösung.
+ [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) — Amazon Relational Database Service (Amazon RDS) ist ein Webservice, der die Einrichtung, den Betrieb und die Skalierung einer relationalen Datenbank in der AWS-Cloud erleichtert. Er bietet kosteneffiziente, anpassbare Kapazität für eine relationale Datenbank und verwaltet allgemeine Datenbankverwaltungsaufgaben. 
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) — AWS Systems Manager ist ein AWS-Service, mit dem Sie Ihre Infrastruktur auf AWS anzeigen und steuern können. Mithilfe der Systems Manager Manager-Konsole können Sie Betriebsdaten von mehreren AWS-Services anzeigen und betriebliche Aufgaben in Ihren AWS-Ressourcen automatisieren. Systems Manager unterstützt Sie bei der Aufrechterhaltung von Sicherheit und Compliance, indem er Ihre verwalteten Instances scannt und über festgestellte Richtlinienverstöße (oder Abhilfemaßnahmen ergreifen) berichtet.

## Epen
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-epics"></a>

### Eine Amazon Aurora Aurora-Instance erstellen
<a name="create-an-amazon-aurora-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine CloudFormation AWS-Vorlage für eine Amazon Aurora Aurora-Instance. | Verwenden Sie den [AWS-Beispielcodeausschnitt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_RDS.html), um eine CloudFormation Vorlage zu erstellen, mit der eine Amazon Aurora PostgreSQL-kompatible Edition-Instance erstellt wird. | Cloud-Architekt | 
| Stellen Sie einen CloudFormation Stack bereit, um die Amazon Aurora Aurora-Instance zu erstellen. | Verwenden Sie die CloudFormation Vorlage, um eine Aurora PostgreSQL-kompatible Instance zu erstellen, für die Multi-AZ-Replikation für Produktions-Workloads aktiviert ist. | Cloud-Architekt | 
| Konfigurieren Sie die Datenbankverbindungseinstellungen für Enterprise Server. | Folgen Sie den Anweisungen in der [Micro Focus-Dokumentation](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-40748F62-84B3-4B7B-8E96-5484ADEDFB5F.html), um die Verbindungszeichenfolgen und die Datenbankkonfiguration für Micro Focus Enterprise Server vorzubereiten. | Dateningenieur, DevOps Ingenieur | 

### Erstellen Sie einen ElastiCache Amazon-Cluster für die Redis-Instance
<a name="create-an-elclong-cluster-for-the-redis-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine CloudFormation Vorlage für den ElastiCache Amazon-Cluster für die Redis-Instance. | Verwenden Sie den [AWS-Beispielcodeausschnitt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_ElastiCache.html), um eine CloudFormation Vorlage zu erstellen, die einen ElastiCache Amazon-Cluster für die Redis-Instance erstellt. | Cloud-Architekt | 
| Stellen Sie den CloudFormation Stack bereit, um einen ElastiCache Amazon-Cluster für die Redis-Instance zu erstellen. | Erstellen Sie den ElastiCache Amazon-Cluster für die Redis-Instance, für die Multi-AZ-Replikation für Produktions-Workloads aktiviert ist. | Cloud-Architekt | 
| Konfigurieren Sie die PSOR-Verbindungseinstellungen für Enterprise Server. | Folgen Sie den Anweisungen in der [Micro Focus-Dokumentation](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html), um die Verbindungskonfiguration des PAC Scale-Out Repository (PSOR) für Micro Focus Enterprise Server PAC vorzubereiten. | DevOps Ingenieur | 

### Erstellen Sie eine automatische ESCWA-Skalierungsgruppe für Micro Focus Enterprise Server
<a name="create-a-micro-focus-enterprise-server-escwa-automatic-scaling-group"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein Micro Focus Enterprise Server-AMI. | Erstellen Sie eine Amazon EC2 Windows Server-Instance und installieren Sie die Micro Focus Enterprise Server-Binärdatei in der EC2 Instance. Erstellen Sie ein Amazon Machine Image (AMI) der EC2 Instance. Weitere Informationen finden Sie in der [Enterprise Server-Installationsdokumentation](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-FACEF60F-BAE3-446C-B2B4-4379A5DF6D9F.html). | Cloud-Architekt | 
| Erstellen Sie eine CloudFormation Vorlage für Enterprise Server ESCWA.  | Verwenden Sie den [AWS-Beispielcodeausschnitt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html), um eine Vorlage für die Erstellung eines benutzerdefinierten Stacks von Enterprise Server ESCWA in einer automatischen Skalierungsgruppe zu erstellen. | Cloud-Architekt | 
| Stellen Sie den CloudFormation Stack bereit, um eine EC2 Amazon-Skalierungsgruppe für Enterprise Server ESCWA zu erstellen. | Verwenden Sie die CloudFormation Vorlage, um die automatische Skalierungsgruppe mit dem Micro Focus Enterprise Server ESCWA-AMI bereitzustellen, das in der vorherigen Geschichte erstellt wurde. | Cloud-Architekt | 

### Erstellen Sie ein AWS Systems Manager Automation Automation-Runbook
<a name="create-an-aws-systems-manager-automation-runbook"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine CloudFormation Vorlage für ein Systems Manager Automation-Runbook. | Verwenden Sie die Beispielcodefragmente im Abschnitt *Zusätzliche Informationen*, um eine CloudFormation Vorlage zu erstellen, mit der ein Systems Manager Automation-Runbook zur Automatisierung der PAC-Erstellung, Enterprise Server Scale In und Enterprise Server Scale Out erstellt wird. | Cloud-Architekt | 
| Stellen Sie den CloudFormation Stack bereit, der das Systems Manager Automation-Runbook enthält. | Verwenden Sie die CloudFormation Vorlage, um einen Stack bereitzustellen, der das Automation-Runbook für die PAC-Erstellung, Enterprise Server Scale In und Enterprise Server Scale Out enthält. | Cloud-Architekt | 

### Erstellen Sie eine automatische Skalierungsgruppe für Micro Focus Enterprise Server
<a name="create-an-automatic-scaling-group-for-micro-focus-enterprise-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine CloudFormation Vorlage für die Einrichtung einer automatischen Skalierungsgruppe für Micro Focus Enterprise Server. | Verwenden Sie den [AWS-Beispielcodeausschnitt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_AutoScaling.html), um eine CloudFormation Vorlage zu erstellen, die eine automatische Skalierungsgruppe erstellt. Diese Vorlage wird dasselbe AMI wiederverwenden, das für die Micro Focus Enterprise Server ESCWA-Instanz erstellt wurde. Verwenden Sie dann einen [AWS-Beispielcodeausschnitt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-rule.html), um das automatische Skalierungslebenszyklusereignis zu erstellen, und richten Sie Amazon so ein, dass in derselben EventBridge Vorlage nach Scale-Out- und Scale-In-Ereignissen gefiltert wird. CloudFormation  | Cloud-Architekt | 
| Stellen Sie den CloudFormation Stack für die automatische Skalierungsgruppe für Micro Focus Enterprise Server bereit. | Stellen Sie den CloudFormation Stack bereit, der die automatische Skalierungsgruppe für Micro Focus Enterprise Server enthält. | Cloud-Architekt | 

## Zugehörige Ressourcen
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-resources"></a>
+ [Micro Focus Enterprise Server Leistungs- und Verfügbarkeitscluster (PAC)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-613F5E2D-2FBC-47AE-9327-48CA4FF84C5B.html) 
+ [Lebenszyklus-Hooks von Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/lifecycle-hooks.html)
+ [Ausführen von Automatisierungen mit Triggern unter Verwendung von EventBridge](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-cwe-target.html)

## Zusätzliche Informationen
<a name="build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager-additional"></a>

Die folgenden Szenarien müssen für die Ein- oder Ausskalierung der PAC-Cluster automatisiert werden.

**Automatisierung für den Start oder die Neuerstellung eines PAC**

Beim Start eines PAC-Clusters verlangt Enterprise Server, dass ESCWA aufgerufen wird, um eine APIs PAC-Konfiguration zu erstellen. Dadurch werden Enterprise Server-Regionen gestartet und dem PAC hinzugefügt. Gehen Sie wie folgt vor, um eine PAC zu erstellen oder neu zu erstellen: 

1. Konfigurieren Sie ein [PAC Scale-Out Repository (PSOR)](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2A420ADD-4CA6-472D-819F-371C037C0653.html) in ESCWA mit einem bestimmten Namen.

   ```
   POST /server/v1/config/groups/sors
   ```

1. Erstellen Sie ein PAC mit einem bestimmten Namen und hängen Sie den PSOR daran an.

   ```
   POST /server/v1/config/groups/pacs
   ```

1. Konfigurieren Sie die Regionsdatenbank und die regionsübergreifende Datenbank, wenn Sie zum ersten Mal eine PAC einrichten.
**Anmerkung**  
In diesem Schritt werden SQL-Abfragen und das Befehlszeilentool **dbhfhadmin** der Micro Focus Enterprise Suite verwendet, um die Datenbank zu erstellen und die ersten Daten zu importieren.

1. Installieren Sie die PAC-Definition in den Enterprise Server-Regionen.

   ```
   POST /server/v1/config/mfds 
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Starten Sie die Enterprise Server-Regionen im PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

Die vorherigen Schritte können mithilfe eines PowerShell Windows-Skripts implementiert werden. 

In den folgenden Schritten wird erklärt, wie Sie mithilfe des PowerShell Windows-Skripts eine Automatisierung für die Erstellung einer PAC erstellen.

1. Erstellen Sie eine EC2 Amazon-Startvorlage, die das PowerShell Windows-Skript als Teil des Bootstrap-Prozesses herunterlädt oder erstellt. Sie können beispielsweise EC2 Benutzerdaten verwenden, um das Skript aus einem Amazon Simple Storage Service (Amazon S3) -Bucket herunterzuladen.

1. Erstellen Sie ein AWS Systems Manager Automation Automation-Runbook, um das PowerShell Windows-Skript aufzurufen.

1. Ordnen Sie das Runbook mithilfe des Instance-Tags der ESCWA-Instance zu.

1. Erstellen Sie mithilfe der Startvorlage eine ESCWA-Skalierungsgruppe für automatische Skalierung. 

Sie können das folgende CloudFormation AWS-Beispiel-Snippet verwenden, um das Automation-Runbook zu erstellen.

* CloudFormation Beispielausschnitt für ein Systems Manager Automation-Runbook, das für die PAC-Erstellung verwendet wird*

```
  PACInitDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to create Enterprise Server PAC
         mainSteps:
         - action: aws:runPowerShellScript
           name: CreatePAC
           inputs:
             onFailure: Abort
             timeoutSeconds: "1200"
             runCommand:
             - | 
               C:\Scripts\PAC-Init.ps1
  PacInitAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         description: Prepare Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunPACInitDocument
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref PACInitDocument
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
   PacInitDocumentAssociation:
     Type: AWS::SSM::Association
     Properties:
       DocumentVersion: "$LATEST"
       Name: !Ref PACInitDocument
       Targets:
         - Key: tag:Enterprise Server - ESCWA
           Values:
             - "true"
```

Weitere Informationen finden Sie unter [Micro Focus Enterprise Server — Konfiguration eines PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

**Automatisierung für die horizontale Skalierung mit einer neuen Enterprise Server-Instanz**

Wenn eine Enterprise Server-Instanz horizontal skaliert wird, muss ihre Enterprise Server-Region der PAC hinzugefügt werden. In den folgenden Schritten wird erklärt, wie ESCWA aufgerufen APIs und die Enterprise Server-Region zur PAC hinzugefügt wird. 

1. Installieren Sie die PAC-Definition in den Enterprise Server-Regionen.

   ```
   POST '/server/v1/config/mfds'
   POST /native/v1/config/groups/pacs/${pac_uid}/install
   ```

1. Warmstart der Region im PAC.

   ```
   POST /native/v1/regions/${host_ip}/${port}/${region_name}/start
   ```

1. Fügen Sie die Enterprise Server-Instanz dem Load Balancer hinzu, indem Sie die automatische Skalierungsgruppe dem Load Balancer zuordnen.

Die vorherigen Schritte können mithilfe eines Windows-Skripts implementiert werden. PowerShell Weitere Informationen finden Sie unter [Micro Focus Enterprise Server — Konfiguration eines PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-2B15EBA5-84AF-47C3-9F8E-EE57EB17245F.html).

Die folgenden Schritte können verwendet werden, um eine ereignisgesteuerte Automatisierung zu erstellen, bei der eine neu gestartete Enterprise Server-Instanz durch Wiederverwendung des PowerShell Windows-Skripts zu einer PAC hinzugefügt wird. 

1. Erstellen Sie eine EC2 Amazon-Startvorlage für eine Enterprise Server-Instance, die beim Bootstrap eine Enterprise Serverregion bereitstellt. Sie können beispielsweise den Micro Focus Enterprise Server-Befehl mfds verwenden, um eine Regionskonfiguration zu importieren. Weitere Informationen und Optionen, die für diesen Befehl verfügbar sind, finden Sie in der [Enterprise Server-Referenz.](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/HRADRHCOMM06.html)

1. Erstellen Sie eine automatische Skalierungsgruppe für Enterprise Server, die die im vorherigen Schritt erstellte Startvorlage verwendet.

1. Erstellen Sie ein Systems Manager Automation-Runbook, um das PowerShell Windows-Skript aufzurufen. 

1. Ordnen Sie das Runbook mithilfe des Instance-Tags der ESCWA-Instanz zu.

1. Erstellen Sie eine EventBridge Amazon-Regel, um nach dem Ereignis EC2 Instance Launch Successful für die automatische Skalierungsgruppe Enterprise Server zu filtern, und erstellen Sie das Ziel für die Verwendung des Automation-Runbooks.

Sie können den folgenden CloudFormation Beispielausschnitt verwenden, um das Automation-Runbook und die Regel zu erstellen. EventBridge 

* CloudFormation Beispielausschnitt für Systems Manager, der für die Skalierung von Enterprise Server-Instanzen verwendet wird*

```
  ScaleOutDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Adding MFDS Server into an existing PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Add_MFDS
           inputs:
             onFailure: Abort
             timeoutSeconds: "300"
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-Out.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleOutAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         description: Scale Out 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleOutCommand
             action: aws:runCommand
             timeoutSeconds: 300
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleOutDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 InstanceId: "{{InstanceId}}"
                 MfdsPort: "{{MfdsPort}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
```

**Automatisierung für die Skalierung in einer Enterprise Server-Instanz**

Ähnlich wie beim Skalieren wird bei der *Skalierung* einer Enterprise Server-Instanz das Ereignis EC2 Instance-Terminate Lifecycle Action ausgelöst, und die folgenden Prozess- und API-Aufrufe sind erforderlich, um eine Micro Focus Enterprise Server-Instanz aus dem PAC zu entfernen. 

1. Beenden Sie die Region in der beendenden Enterprise Server-Instanz.

   ```
   POST "/native/v1/regions/${host_ip}/${port}/${region_name}/stop"
   ```

1. Entfernen Sie die Enterprise Server-Instanz aus dem PAC.

   ```
   DELETE "/server/v1/config/mfds/${uid}"
   ```

1. Senden Sie ein Signal, um mit dem Beenden der Enterprise Server-Instanz fortzufahren.

Die vorherigen Schritte können in einem PowerShell Windows-Skript implementiert werden. Weitere Informationen zu diesem Prozess finden Sie im [Dokument Micro Focus Enterprise Server — Verwaltung einer PAC](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-E864E2E9-EB49-43BF-9AAD-7FE334749441.html).

In den folgenden Schritten wird erklärt, wie Sie eine ereignisgesteuerte Automatisierung erstellen, um eine Enterprise Server-Instanz von einem PAC aus zu beenden, indem Sie das Windows-Skript wiederverwenden. PowerShell  

1. Erstellen Sie ein Systems Manager Automation-Runbook, um das PowerShell Windows-Skript aufzurufen.

1. Ordnen Sie das Runbook mithilfe des Instance-Tags der ESCWA-Instanz zu.

1. Erstellen Sie einen Lifecycle-Hook für automatische Skalierungsgruppen zur EC2 Instanzbeendigung.

1. Erstellen Sie eine EventBridge Amazon-Regel, um das Ereignis EC2 Instance-Terminate Lifecycle Action für die automatische Skalierungsgruppe Enterprise Server zu filtern, und erstellen Sie das Ziel für die Verwendung des Automation-Runbooks. 

Sie können die folgende CloudFormation Beispielvorlage verwenden, um ein Systems Manager Automation-Runbook, einen Lifecycle-Hook und eine EventBridge Regel zu erstellen.

* CloudFormation Beispielausschnitt für ein Systems Manager Automation-Runbook, das für die Skalierung in einer Enterprise Server-Instanz verwendet wird*

```
  ScaleInDocument:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Command
       Content:
         schemaVersion: '2.2'
         description: Operation Runbook to Remove MFDS Server from PAC 
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"
           InstanceId:
             type: String
             default: "Not-Available"
         mainSteps:
         - action: aws:runPowerShellScript
           name: Remove_MFDS
           inputs:
             onFailure: Abort
             runCommand:
             - |
               $ip = "{{InstanceIpAddress}}"
               if ( ${ip} -eq "Not-Available" ) {
                 $ip = aws ec2 describe-instances --instance-id {{InstanceId}} --output text --query "Reservations[0].Instances[0].PrivateIpAddress"
               }            
               C:\Scripts\Scale-In.ps1 -host_ip ${ip} -port {{MfdsPort}}
 
   PacScaleInAutomation:
     Type: AWS::SSM::Document
     Properties:
       DocumentType: Automation
       Content:
         parameters:
           MfdsPort:
             type: String
           InstanceIpAddress:
             type: String
             default: "Not-Available"            
           InstanceId:
             type: String
             default: "Not-Available"                
         description: Scale In 1 New Server in Micro Focus PAC Cluster via ESCWA Server
         schemaVersion: '0.3'
         assumeRole: !GetAtt SsmAssumeRole.Arn
         mainSteps:
           - name: RunScaleInCommand
             action: aws:runCommand
             timeoutSeconds: "600"
             onFailure: Abort
             inputs:
               DocumentName: !Ref ScaleInDocument
               Parameters:
                 InstanceIpAddress: "{{InstanceIpAddress}}"
                 MfdsPort: "{{MfdsPort}}"
                 InstanceId: "{{InstanceId}}"
               Targets:
                 - Key: tag:Enterprise Server - ESCWA
                   Values:
                     - "true"
           - name: TerminateTheInstance
             action: aws:executeAwsApi
             inputs:
               Service: autoscaling
               Api: CompleteLifecycleAction
               AutoScalingGroupName: !Ref AutoScalingGroup
               InstanceId: "{{ InstanceId }}"
               LifecycleActionResult: CONTINUE
               LifecycleHookName: !Ref ScaleInLifeCycleHook
```

**Automatisierung für einen EC2 automatischen Skalierungsauslöser von Amazon**

Die Einrichtung einer Skalierungsrichtlinie für Enterprise Server-Instances erfordert ein Verständnis des Anwendungsverhaltens. In den meisten Fällen können Sie Skalierungsrichtlinien für die Zielverfolgung einrichten. Sie können beispielsweise die durchschnittliche CPU-Auslastung als CloudWatch Amazon-Metrik verwenden, um die automatische Skalierungsrichtlinie festzulegen. Weitere Informationen finden Sie unter [Target-Tracking-Skalierungsrichtlinien für Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scaling-target-tracking.html). Für Anwendungen mit regelmäßigen Datenverkehrsmustern sollten Sie die Verwendung einer Richtlinie zur vorausschauenden Skalierung in Betracht ziehen. Weitere Informationen finden Sie unter [Prädiktive Skalierung für Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-predictive-scaling.html). 

# Erstellen Sie einen fortschrittlichen Mainframe-Dateiviewer in der AWS-Cloud
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud"></a>

*Biopathie GOPALSAMY und Jeremiah O'Connor, Amazon Web Services*

## Zusammenfassung
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-summary"></a>

Dieses Muster enthält Codebeispiele und Schritte, mit denen Sie mithilfe von serverlosen AWS-Services ein erweitertes Tool zum Durchsuchen und Überprüfen Ihrer Mainframe-Dateien im festen Format erstellen können. Das Muster bietet ein Beispiel dafür, wie eine Mainframe-Eingabedatei zum Durchsuchen und Suchen in ein Amazon OpenSearch Service-Dokument konvertiert wird. Das Datei-Viewer-Tool kann Ihnen dabei helfen, Folgendes zu erreichen:
+ Behalten Sie die gleiche Mainframe-Dateistruktur und das gleiche Layout für Konsistenz in Ihrer AWS-Zielmigrationsumgebung bei (Sie können beispielsweise dasselbe Layout für Dateien in einer Batch-Anwendung beibehalten, die Dateien an externe Parteien überträgt)
+ Beschleunigen Sie die Entwicklung und das Testen während Ihrer Mainframe-Migration
+ Support von Wartungsaktivitäten nach der Migration

## Voraussetzungen und Einschränkungen
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine virtuelle private Cloud (VPC) mit einem Subnetz, das über Ihre Legacy-Plattform erreichbar ist
+ 
**Anmerkung**  
Eine Eingabedatei und das dazugehörige COBOL-Copybook (Common Business-Oriented Language) (: Beispiele für Eingabedateien und COBOL-Copybooks finden Sie im Repository. [gfs-mainframe-solutions](https://github.com/aws-samples/gfs-mainframe-patterns.git) GitHub Weitere Informationen zu COBOL-Copybooks finden Sie im [Enterprise COBOL for z/OS ](https://publibfp.boulder.ibm.com/epubs/pdf/igy6pg30.pdf) 6.3 Programming Guide auf der IBM-Website.)

**Einschränkungen**
+ Das Parsen von Copybooks ist auf nicht mehr als zwei verschachtelte Ebenen beschränkt (OCCURS)

## Architektur
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-architecture"></a>

**Quelltechnologie-Stack**
+ Eingabedateien im [FB-Format (Fixed Blocked)](https://www.ibm.com/docs/en/zos-basic-skills?topic=set-data-record-formats)
+ COBOL-Copybook-Layout

**Zieltechnologie-Stack**
+ Amazon Athena
+  OpenSearch Amazon-Dienst
+ Amazon Simple Storage Service (Amazon-S3)
+ AWS Lambda
+ AWS Step Functions

**Zielarchitektur**

Das folgende Diagramm zeigt den Prozess des Parsens und Konvertierens einer Mainframe-Eingabedatei in ein OpenSearch Servicedokument zum Durchsuchen und Suchen.

![\[Prozess zum Analysieren und Konvertieren einer Mainframe-Eingabedatei in einen Service. OpenSearch\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/cce68438-bcf2-48c1-b86b-01242235ec76.png)


Das Diagramm zeigt den folgenden Workflow:

1. Ein Admin-Benutzer oder eine Admin-Anwendung überträgt Eingabedateien in einen S3-Bucket und COBOL-Copybooks in einen anderen S3-Bucket.

1. 
**Anmerkung**  
Der S3-Bucket mit den Eingabedateien ruft eine Lambda-Funktion auf, die einen serverlosen Step Functions Functions-Workflow startet. : Die Verwendung eines S3-Ereignistriggers und einer Lambda-Funktion zur Steuerung des Step Functions Functions-Workflows in diesem Muster ist optional. Die GitHub Codebeispiele in diesem Muster beinhalten nicht die Verwendung dieser Dienste, aber Sie können diese Dienste je nach Ihren Anforderungen verwenden.

1. Der Step Functions Functions-Workflow koordiniert alle Batch-Prozesse aus den folgenden Lambda-Funktionen:
   + Die `s3copybookparser.py` Funktion analysiert das Copybook-Layout und extrahiert Feldattribute, Datentypen und Offsets (erforderlich für die Verarbeitung der Eingabedaten).
   + Die `s3toathena.py` Funktion erstellt ein Athena-Tabellenlayout. Athena analysiert die Eingabedaten, die von der `s3toathena.py` Funktion verarbeitet werden, und konvertiert die Daten in eine CSV-Datei.
   + Die `s3toelasticsearch.py` Funktion nimmt die Ergebnisdatei aus dem S3-Bucket auf und leitet die Datei an den Service weiter. OpenSearch 

1. Benutzer greifen mit OpenSearch Service auf OpenSearch Dashboards zu, um die Daten in verschiedenen Tabellen- und Spaltenformaten abzurufen und dann Abfragen für die indizierten Daten auszuführen.

## Tools
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-tools"></a>

**AWS-Services**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon Simple Storage Service (Amazon S3) analysieren können.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Rechenservice, mit dem Sie Code ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen. In diesem Muster verwenden Sie Lambda, um Kernlogik zu implementieren, z. B. das Parsen von Dateien, das Konvertieren von Daten und das Laden von Daten in OpenSearch Service für den interaktiven Dateizugriff.
+ [Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/what-is.html) ist ein verwalteter Service, der Sie bei der Bereitstellung, dem Betrieb und der Skalierung von OpenSearch Service-Clustern in der AWS-Cloud unterstützt. In diesem Muster verwenden Sie OpenSearch Service, um die konvertierten Dateien zu indizieren und Benutzern interaktive Suchfunktionen bereitzustellen.
+ [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 Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [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 Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) ist ein serverloser Orchestrierungsservice, mit dem Sie Lambda-Funktionen und andere AWS-Services kombinieren können, um geschäftskritische Anwendungen zu erstellen. In diesem Muster verwenden Sie Step Functions, um Lambda-Funktionen zu orchestrieren.

**Andere Tools**
+ [GitHub](https://github.com/)ist ein Code-Hosting-Dienst, der Tools für die Zusammenarbeit und Versionskontrolle bereitstellt.
+ [Python](https://www.python.org/) ist eine Programmiersprache auf hohem Niveau.

**Code**

Der Code für dieses Muster ist im GitHub [gfs-mainframe-patterns](https://github.com/aws-samples/gfs-mainframe-patterns.git)Repository verfügbar.

## Epen
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-epics"></a>

### Bereiten Sie die Zielumgebung vor
<a name="prepare-the-target-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den S3-Bucket. | [Erstellen Sie einen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) zum Speichern der Copybooks, Eingabedateien und Ausgabedateien. Wir empfehlen die folgende Ordnerstruktur für Ihren S3-Bucket:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 
| Erstellen Sie die Funktion s3copybookparser. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 
| Erstellen Sie die Funktion s3toathena. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 
| Erstellen Sie die Funktion s3toelasticsearch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 
| Erstellen Sie den OpenSearch Service-Cluster. | **Erstellen Sie den Cluster**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)**Gewähren Sie Zugriff auf die IAM-Rolle**Gehen Sie wie folgt vor, um einen detaillierten Zugriff auf die IAM-Rolle (`arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**`) der Lambda-Funktion bereitzustellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 
| Erstellen Sie Step Functions für die Orchestrierung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 

### Bereitstellen und ausführen
<a name="deploy-and-run"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Eingabedateien und Copybooks in den S3-Bucket hoch. | Laden Sie Beispieldateien aus dem [GitHub ](https://github.com/aws-samples/gfs-mainframe-patterns.git)Repository-Beispielordner herunter und laden Sie die Dateien in den S3-Bucket hoch, den Sie zuvor erstellt haben.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 
| Rufen Sie die Step Functions auf. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)<pre>{<br />  "s3_copybook_bucket_name": "<BUCKET NAME>",<br />  "s3_copybook_bucket_key": "<COPYBOOK PATH>",<br />  "s3_source_bucket_name": "<BUCKET NAME",<br />  "s3_source_bucket_key": "INPUT FILE PATH"<br />}</pre>Beispiel:<pre>{<br />  "s3_copybook_bucket_name": "fileaidtest",<br />  "s3_copybook_bucket_key": "copybook/acctix.cpy",<br />  "s3_source_bucket_name": "fileaidtest",<br />  "s3_source_bucket_key": "input/acctindex"<br />}</pre> | Allgemeines AWS | 
| Validieren Sie die Workflow-Ausführung in Step Functions. | Überprüfen Sie in der [Step Functions Functions-Konsole](https://console.aws.amazon.com/states/home) die Workflow-Ausführung im **Graph Inspector**. Die Status des Ausführungslaufs sind farblich gekennzeichnet, um den Ausführungsstatus darzustellen. Blau steht beispielsweise für **In Bearbeitung**, Grün für **Erfolgreich** und Rot für **Fehlgeschlagen**. Ausführlichere Informationen zu den **Ausführungsereignissen finden Sie auch in der Tabelle im Abschnitt Verlauf** der Ausführungsereignisse.Ein Beispiel für eine grafische Workflow-Ausführung finden Sie im *Diagramm Step Functions* im Abschnitt *Zusätzliche Informationen* dieses Musters. | Allgemeines AWS | 
| Überprüfen Sie die Lieferprotokolle in Amazon CloudWatch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html)Ein Beispiel für erfolgreiche Zustellungsprotokolle finden Sie unter *CloudWatch Übermittlungsprotokolle* im Abschnitt *Zusätzliche Informationen* dieses Musters. | Allgemeines AWS | 
| Überprüfen Sie die formatierte Datei in OpenSearch Dashboards und führen Sie Dateioperationen durch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/build-an-advanced-mainframe-file-viewer-in-the-aws-cloud.html) | Allgemeines AWS | 

## Zugehörige Ressourcen
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-resources"></a>

**Referenzen**
+ [Beispiel für ein COBOL-Copybook](https://www.ibm.com/docs/en/record-generator/3.0?topic=SSMQ4D_3.0.0/documentation/cobol_rcg_examplecopybook.html) (IBM-Dokumentation)
+ [BMC Compuware File-AID](https://www.bmc.com/it-solutions/bmc-compuware-file-aid.html) (BMC-Dokumentation)

**Tutorials**
+ [Tutorial: Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion (AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) Lambda-Dokumentation)
+ [Wie erstelle ich einen serverlosen Workflow mit AWS Step Functions und AWS Lambda](https://aws.amazon.com/getting-started/hands-on/create-a-serverless-workflow-step-functions-lambda/) (AWS-Dokumentation)
+ [Verwenden von OpenSearch Dashboards mit Amazon OpenSearch Service](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/dashboards.html) (AWS-Dokumentation)

## Zusätzliche Informationen
<a name="build-an-advanced-mainframe-file-viewer-in-the-aws-cloud-additional"></a>

**Diagramm der Step Functions**

Das folgende Beispiel zeigt ein Step Functions Functions-Diagramm. Das Diagramm zeigt den Ausführungsstatus der in diesem Muster verwendeten Lambda-Funktionen.

![\[Das Diagramm Step Functions zeigt den Ausführungsstatus der in diesem Muster verwendeten Lambda-Funktionen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/36d72b00-d163-455f-9e59-e2c872e7c28a/images/11093e5d-2f9e-4bbf-8abc-f3b2980dd550.png)


**CloudWatch Zustellungsprotokolle**

Das folgende Beispiel zeigt erfolgreiche Zustellungsprotokolle für die Ausführung der `s3toelasticsearch` Ausführung.


| 
| 
| 2022-08-10T 15:53:33.033-05:00 | Anzahl der Verarbeitungsdokumente: 100 |  | 
| --- |--- |--- |
|  | 2022-08-10T 15:53:33.171-05:00 | [INFO] 20.08.2022 20:53:33.171 Z a1b2c3d4-5678-90ab-cdef- Beitrag:443/\$1Bulk [Status:200 Anfrage:0,100s] EXAMPLE11111 https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com | 
|  | 10.08.2022 UM 15:53:33.172-05:00 | Massen-Schreibvorgänge waren erfolgreich: 100 Dokumente | 

# Containerisieren Sie Mainframe-Workloads, die von Blu Age modernisiert wurden
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age"></a>

*Richard Milner-Watts, Amazon Web Services*

## Zusammenfassung
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-summary"></a>

[Dieses Muster bietet ein Beispiel für eine Container-Umgebung zum Ausführen von Mainframe-Workloads, die mithilfe des Blu Age-Tools modernisiert wurden.](https://www.bluage.com/) Blu Age konvertiert ältere Mainframe-Workloads in modernen Java-Code. Dieses Muster bietet einen Wrapper für die Java-Anwendung, sodass Sie sie mithilfe von Container-Orchestrierungsdiensten wie [Amazon Elastic Container Service (Amazon ECS) oder Amazon Elastic](https://aws.amazon.com/ecs/) [Kubernetes Service (Amazon](https://aws.amazon.com/eks/) EKS) ausführen können.

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 modernisierter Blu-Age-Mainframe-Workloads auf einer serverlosen AWS-Infrastruktur](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Stellen Sie mithilfe von Terraform eine Umgebung für containerisierte Blu Age-Anwendungen bereit](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.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="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-prereqs"></a>

**Voraussetzungen**
+ Eine modernisierte Java-Anwendung, die von Blu Age erstellt wurde. Zu Testzwecken bietet dieses Muster eine Java-Beispielanwendung, die Sie als Machbarkeitsnachweis verwenden können.
+ Eine [Docker-Umgebung](https://aws.amazon.com/docker/), mit der Sie den Container erstellen können.

**Einschränkungen**

Je nachdem, welche Container-Orchestrierungsplattform Sie verwenden, sind die Ressourcen, die dem Container zur Verfügung gestellt werden können (wie CPU, RAM und Speicher), möglicherweise begrenzt. Wenn Sie beispielsweise Amazon ECS mit AWS Fargate verwenden, finden Sie in der [Amazon ECS-Dokumentation](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/AWS_Fargate.html) Einschränkungen und Überlegungen.

## Architektur
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-architecture"></a>

**Quelltechnologie-Stack**
+ Blaues Zeitalter
+ Java

**Zieltechnologie-Stack**
+ Docker

**Zielarchitektur**

Das folgende Diagramm zeigt die Architektur der Blu Age-Anwendung in einem Docker-Container.

![\[Blu Age-Anwendung im Docker-Container\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/c1747094-357b-4222-b4eb-b1336d810f83/images/0554332d-eff5-49ca-9789-da39b5a10045.png)


1. Der Einstiegspunkt für den Container ist das Wrapper-Skript. Dieses Bash-Skript ist dafür verantwortlich, die Laufzeitumgebung für die Blu Age-Anwendung vorzubereiten und die Ausgaben zu verarbeiten.

1. Umgebungsvariablen innerhalb des Containers werden verwendet, um Variablen im Wrapper-Skript zu konfigurieren, wie z. B. die Bucket-Namen und Datenbankanmeldeinformationen von Amazon Simple Storage Service (Amazon S3). Umgebungsvariablen werden entweder von AWS Secrets Manager oder Parameter Store, einer Funktion von AWS Systems Manager, bereitgestellt. Wenn Sie Amazon ECS als Container-Orchestrierungsservice verwenden, können Sie die Umgebungsvariablen auch in der Amazon ECS-Aufgabendefinition hartcodieren.

1. Das Wrapper-Skript ist dafür verantwortlich, alle Eingabedateien aus dem S3-Bucket in den Container zu ziehen, bevor Sie die Blu Age-Anwendung ausführen. Die AWS-Befehlszeilenschnittstelle (AWS CLI) ist im Container installiert. Dies bietet einen Mechanismus für den Zugriff auf Objekte, die in Amazon S3 gespeichert sind, über den Gateway-Endpunkt der Virtual Private Cloud (VPC).

1. Die Java-Archivdatei (JAR) für die Blu Age-Anwendung muss möglicherweise mit anderen Datenquellen wie Amazon Aurora kommunizieren.

1. Nach Abschluss liefert das Wrapper-Skript die resultierenden Ausgabedateien zur weiteren Verarbeitung (z. B. durch Amazon CloudWatch Logging Services) in einen S3-Bucket. Das Muster unterstützt auch die Übermittlung komprimierter Protokolldateien an Amazon S3, wenn Sie eine Alternative zur CloudWatch Standardprotokollierung verwenden.

## Tools
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-tools"></a>

**AWS-Services**
+ [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.

**Tools**
+ [Docker](https://aws.amazon.com/docker/) ist eine Softwareplattform zum Erstellen, Testen und Bereitstellen von Anwendungen. Docker packt Software in standardisierte Einheiten, sogenannte [Container](https://aws.amazon.com/containers/), die alles enthalten, was die Software zum Ausführen benötigt, einschließlich Bibliotheken, Systemtools, Code und Laufzeit. Sie können Docker verwenden, um Anwendungen in jeder Umgebung bereitzustellen und zu skalieren.
+ [Bash](https://www.gnu.org/software/bash/manual/) ist eine Befehlssprachenschnittstelle (Shell) für das GNU-Betriebssystem.
+ [Java](https://www.java.com/) ist die Programmiersprache und Entwicklungsumgebung, die in diesem Muster verwendet werden.
+ [Blu Age](https://www.bluage.com/) ist ein AWS-Mainframe-Modernisierungstool, das ältere Mainframe-Workloads, einschließlich Anwendungscode, Abhängigkeiten und Infrastruktur, in moderne Workloads für die Cloud umwandelt.

**Code-Repository**

Der Code für dieses Muster ist im GitHub [Blu Age-Beispielcontainer-Repository](https://github.com/aws-samples/aws-blu-age-sample-container) verfügbar.

## Best Practices
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-best-practices"></a>
+ Externalisieren Sie die Variablen, um das Verhalten Ihrer Anwendung mithilfe von Umgebungsvariablen zu ändern. Diese Variablen ermöglichen es der Container-Orchestrierungslösung, die Laufzeitumgebung zu ändern, ohne den Container neu erstellen zu müssen. Dieses Muster enthält Beispiele für Umgebungsvariablen, die für Blu Age-Anwendungen nützlich sein können.
+ Überprüfen Sie alle Anwendungsabhängigkeiten, bevor Sie Ihre Blu Age-Anwendung ausführen. Stellen Sie beispielsweise sicher, dass die Datenbank verfügbar und die Anmeldeinformationen gültig sind. Schreiben Sie Tests in das Wrapper-Skript, um Abhängigkeiten zu überprüfen, und schlagen Sie frühzeitig fehl, wenn sie nicht erfüllt werden.
+ Verwenden Sie eine ausführliche Protokollierung innerhalb des Wrapper-Skripts. Die direkte Interaktion mit einem laufenden Container kann je nach Orchestrierungsplattform und Dauer der Aufgabe eine Herausforderung sein. Stellen Sie sicher, dass nützliche Informationen geschrieben werden, `STDOUT` um Probleme diagnostizieren zu können. Die Ausgabe kann beispielsweise den Inhalt des Arbeitsverzeichnisses der Anwendung sowohl vor als auch nach der Ausführung der Anwendung enthalten.

## Epen
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-epics"></a>

### Besorgen Sie sich eine JAR-Datei für die Blu-Age-Anwendung
<a name="obtain-a-blu-age-application-jar-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Option 1 — Arbeiten Sie mit Blu Age zusammen, um die JAR-Datei Ihrer Anwendung zu erhalten. | Der Container in diesem Muster erfordert eine Blu Age-Anwendung. Alternativ können Sie die Java-Beispielanwendung, die mit diesem Muster geliefert wird, für einen Prototyp verwenden.Arbeiten Sie mit dem Blu Age-Team zusammen, um eine JAR-Datei für Ihre Anwendung zu erhalten, die in den Container integriert werden kann. Wenn die JAR-Datei nicht verfügbar ist, lesen Sie die nächste Aufgabe, um stattdessen die Beispielanwendung zu verwenden. | Cloud-Architekt | 
| Option 2 — Erstellen oder verwenden Sie die mitgelieferte JAR-Datei der Beispielanwendung. | Dieses Muster stellt eine vorgefertigte Beispiel-JAR-Datei bereit. Diese Datei gibt die Umgebungsvariablen der Anwendung an aus, `STDOUT` bevor sie 30 Sekunden lang in den Ruhemodus wechselt und dann beendet wird.Diese Datei hat einen Namen `bluAgeSample.jar` und befindet sich im [Docker-Ordner](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/docker) des GitHub Repositorys.[Wenn Sie den Code ändern und Ihre eigene Version der JAR-Datei erstellen möchten, verwenden Sie den Quellcode unter. /java\$1 sample/src/sample \$1java\$1app.java im Repository](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample/src). GitHub [Sie können das Build-Skript unter verwenden. ](https://github.com/aws-samples/aws-blu-age-sample-container/tree/main/java_sample)/java\$1sample/build.sh, um den Java-Quellcode zu kompilieren und eine neue JAR-Datei zu erstellen. | App-Developer | 

### Erstellen Sie den Blue Age-Container
<a name="build-the-blu-age-container"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das GitHub Repository. | Klonen Sie das Beispielcode-Repository mit dem folgenden Befehl:<pre>git clone https://github.com/aws-samples/aws-blu-age-sample-container</pre> | AWS DevOps | 
| Verwenden Sie Docker, um den Container zu erstellen. | Verwenden Sie Docker, um den Container zu erstellen, bevor Sie ihn in eine Docker-Registry wie Amazon ECR pushen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html) | AWS DevOps | 
| Testen Sie den Blu Age-Container. | (Optional) Testen Sie den Container bei Bedarf lokal mit dem folgenden Befehl:<pre>docker run -it <tag> /bin/bash</pre> | AWS DevOps | 
| Authentifizieren Sie sich bei Ihrem Docker-Repository. | Wenn Sie Amazon ECR verwenden möchten, folgen Sie den Anweisungen in der [Amazon ECR-Dokumentation](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html), um die AWS-CLI zu installieren und zu konfigurieren und die Docker-CLI bei Ihrer Standardregistrierung zu authentifizieren.[Wir empfehlen, den Befehl zur Authentifizierung zu verwenden. get-login-password ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ecr/get-login-password.html)  Die [Amazon ECR-Konsole](https://console.aws.amazon.com/ecr/) bietet eine vorausgefüllte Version dieses Befehls, wenn Sie die Schaltfläche „**Push-Befehle anzeigen**“ verwenden. Weitere Informationen finden Sie in der [Amazon ECR-Dokumentation](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-console.html).<pre>aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <account>.dkr.ecr.<region>.amazonaws.com</pre>Wenn Sie Amazon ECR nicht verwenden möchten, folgen Sie den Anweisungen für Ihr Container-Registrierungssystem. | AWS DevOps | 
| Erstellen Sie ein Container-Repository. | Erstellen Sie ein Repository in Amazon ECR. Anweisungen finden Sie im Muster [Bereitstellen einer Umgebung für containerisierte Blu Age-Anwendungen mithilfe von Terraform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html).Wenn Sie ein anderes Container-Registrierungssystem verwenden, folgen Sie den Anweisungen für dieses System. | AWS DevOps | 
| Markieren Sie Ihren Container und übertragen Sie ihn in das Ziel-Repository. | Wenn Sie Amazon ECR verwenden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/containerize-mainframe-workloads-that-have-been-modernized-by-blu-age.html)Weitere Informationen finden Sie unter [Pushing a Docker-Image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) im *Amazon ECR-Benutzerhandbuch*. | AWS DevOps | 

## Zugehörige Ressourcen
<a name="containerize-mainframe-workloads-that-have-been-modernized-by-blu-age-resources"></a>

**AWS-Ressourcen**
+ [AWS Blu Age Age-Probencontainer-Repository](https://github.com/aws-samples/aws-blu-age-sample-container)
+ [Ausführung modernisierter Blu-Age-Mainframe-Workloads auf einer serverlosen AWS-Infrastruktur](https://docs.aws.amazon.com/prescriptive-guidance/latest/run-bluage-modernized-mainframes/)
+ [Stellen Sie mithilfe von Terraform eine Umgebung für containerisierte Blu Age-Anwendungen bereit](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-an-environment-for-containerized-blu-age-applications-by-using-terraform.html)
+ [Verwenden von Amazon ECR mit der AWS-CLI](https://docs.aws.amazon.com/AmazonECR/latest/userguide/getting-started-cli.html) (*Amazon ECR-Benutzerhandbuch*)
+ [Authentifizierung in privaten Registern](https://docs.aws.amazon.com/AmazonECR/latest/userguide/registry_auth.html) (*Amazon ECR-Benutzerhandbuch*)
+ [Amazon ECS-Dokumentation](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)
+ [Amazon EKS-Dokumentation](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html)

**Weitere Ressourcen**
+ [Blu Age-Webseite](https://www.bluage.com/)
+ [Docker-Webseite](https://docker.com/)

# EBCDIC-Daten mithilfe von Python in ASCII auf AWS konvertieren und entpacken
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Zusammenfassung
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-summary"></a>

Da Mainframes in der Regel wichtige Geschäftsdaten hosten, ist die Modernisierung von Daten eine der wichtigsten Aufgaben bei der Migration von Daten in die Amazon Web Services (AWS) -Cloud oder eine andere American Standard Code for Information Interchange (ASCII) -Umgebung. Auf Mainframes werden Daten in der Regel im EBCDIC-Format (Extended Binary-Coded Decimal Interchange Code) codiert. Beim Exportieren von Datenbank-, Virtual Storage Access Method- (VSAM) oder Flatfiles werden im Allgemeinen gepackte, binäre EBCDIC-Dateien erzeugt, deren Migration komplexer ist. Die am häufigsten verwendete Lösung für die Datenbankmigration ist Change Data Capture (CDC), die in den meisten Fällen die Datenkodierung automatisch konvertiert. CDC-Mechanismen sind jedoch möglicherweise nicht für diese Datenbank-, VSAM- oder Flatfiles verfügbar. Für diese Dateien ist ein alternativer Ansatz zur Modernisierung der Daten erforderlich.

Dieses Muster beschreibt, wie EBCDIC-Daten modernisiert werden, indem sie in das ASCII-Format konvertiert werden. Nach der Konvertierung können Sie die Daten in verteilte Datenbanken laden oder Anwendungen in der Cloud die Daten direkt verarbeiten lassen. Das Muster verwendet das Konvertierungsskript und die Beispieldateien im [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Repository.

## Voraussetzungen und Einschränkungen
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Eine EBCDIC-Eingabedatei und das dazugehörige COBOL-Copybook (Common Business-Oriented Language). Eine EBCDIC-Beispieldatei und ein COBOL-Copybook sind im Repository enthalten. [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Weitere Informationen zu COBOL-Copybooks finden Sie im [Enterprise COBOL for z/OS 6.4](https://publibfp.dhe.ibm.com/epubs/pdf/igy6pg40.pdf) Programming Guide auf der IBM-Website.

**Einschränkungen**
+ In COBOL-Programmen definierte Dateilayouts werden nicht unterstützt. Sie müssen separat zur Verfügung gestellt werden.

**Produktversionen**
+ Python-Version 3.8 oder höher

## Architektur
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-architecture"></a>

**Quelltechnologie-Stack**
+ EBCDIC-Daten auf einem Mainframe
+ COBOL-Copybook

**Zieltechnologie-Stack**
+ Amazon Elastic Compute Cloud (Amazon EC2) -Instanz in einer virtuellen privaten Cloud (VPC)
+ Amazon Elastic Block Store (Amazon EBS)
+ Python und die erforderlichen Pakete, JavaScript Object Notation (JSON), sys und datetime
+ ASCII-Flatdatei, die bereit ist, von einer modernen Anwendung gelesen oder in eine relationale Datenbanktabelle geladen zu werden

**Zielarchitektur**

![\[EBCDIC-Daten wurden auf einer EC2 Instanz mithilfe von Python-Skripten und einem COBOL-Copybook in ASCII konvertiert\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f5907bfe-7dff-4cd0-8523-57015ad48c4b/images/4f97b1dd-3f20-4966-a291-22180680ea99.png)


Das Architekturdiagramm zeigt den Prozess der Konvertierung einer EBCDIC-Datei in eine ASCII-Datei auf einer Instanz: EC2 

1. Mithilfe des Skripts **parse\$1copybook\$1to\$1json.py** konvertieren Sie das COBOL-Copybook in eine JSON-Datei.

1. Mithilfe der JSON-Datei und des Skripts **extract\$1ebcdic\$1to\$1ascii.py** konvertieren Sie die EBCDIC-Daten in eine ASCII-Datei.

**Automatisierung und Skalierung**

Sobald die für die ersten manuellen Dateikonvertierungen benötigten Ressourcen vorhanden sind, können Sie die Dateikonvertierung automatisieren. Dieses Muster enthält keine Anweisungen zur Automatisierung. Es gibt mehrere Möglichkeiten, die Konvertierung zu automatisieren. Im Folgenden finden Sie einen Überblick über einen möglichen Ansatz:

1. Kapseln Sie die AWS-Befehlszeilenschnittstelle (AWS CLI) und die Python-Skriptbefehle in ein Shell-Skript.

1. Erstellen Sie eine AWS-Lambda-Funktion, die den Shell-Skriptjob asynchron an eine Instance weiterleitet. EC2 Weitere Informationen finden Sie unter [SSH-Jobs mit AWS Lambda planen](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/).

1. Erstellen Sie einen Amazon Simple Storage Service (Amazon S3) -Trigger, der die Lambda-Funktion jedes Mal aufruft, wenn eine Legacy-Datei hochgeladen wird. Weitere Informationen finden Sie unter [Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html).

## Tools
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/?id=docs_gateway) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server starten, wie Sie benötigen, und diese schnell nach oben oder unten skalieren.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) bietet Speichervolumes auf Blockebene zur Verwendung mit Amazon Elastic Compute Cloud (Amazon EC2) -Instances.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit AWS-Services interagieren können.
+ [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.

**Andere Tools**
+ [GitHub](https://github.com/)ist ein Code-Hosting-Dienst, der Tools für die Zusammenarbeit und Versionskontrolle bereitstellt.
+ [Python](https://www.python.org/) ist eine Programmiersprache auf hohem Niveau.

**Code-Repository**

Der Code für dieses Muster ist im [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities) GitHub Repository verfügbar.

## Epen
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-epics"></a>

### Bereite die Instanz vor EC2
<a name="prepare-the-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie eine EC2 Instanz. | Die EC2 Instance muss über ausgehenden Internetzugang verfügen. Dadurch kann die Instanz auf den Python-Quellcode zugreifen, der auf verfügbar ist GitHub. Um die Instanz zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Allgemeines AWS | 
| Installieren Sie Git. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Allgemein AWS, Linux | 
| Installieren Sie Python. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Allgemein AWS, Linux | 
| Klonen Sie das GitHub Repository. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html) | Allgemeines AWS, GitHub | 

### Erstellen Sie die ASCII-Datei aus den EBCDIC-Daten
<a name="create-the-ascii-file-from-the-ebcdic-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie das COBOL-Copybook in die JSON-Layoutdatei. | **Führen Sie innerhalb des `mainframe-data-utilities` Ordners das Skript parse\$1copybook\$1to\$1json.py aus.** Dieses Automatisierungsmodul liest das Datei-Layout aus einem COBOL-Copybook und erstellt eine JSON-Datei. Die JSON-Datei enthält die Informationen, die zum Interpretieren und Extrahieren der Daten aus der Quelldatei erforderlich sind. Dadurch werden die JSON-Metadaten aus dem COBOL-Copybook erstellt. Der folgende Befehl konvertiert das COBOL-Copybook in eine JSON-Datei.<pre>python3 parse_copybook_to_json.py \<br />-copybook LegacyReference/COBPACK2.cpy \<br />-output sample-data/cobpack2-list.json \<br />-dict sample-data/cobpack2-dict.json \<br />-ebcdic sample-data/COBPACK.OUTFILE.txt \<br />-ascii sample-data/COBPACK.ASCII.txt \<br />-print 10000</pre>Das Skript druckt die empfangenen Argumente.<pre>-----------------------------------------------------------------------<br />Copybook file...............| LegacyReference/COBPACK2.cpy<br />Parsed copybook (JSON List).| sample-data/cobpack2-list.json<br />JSON Dict (documentation)...| sample-data/cobpack2-dict.json<br />ASCII file..................| sample-data/COBPACK.ASCII.txt<br />EBCDIC file.................| sample-data/COBPACK.OUTFILE.txt<br />Print each..................| 10000<br />-----------------------------------------------------------------------</pre>Weitere Informationen zu den Argumenten finden Sie in der [README-Datei](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) im GitHub Repository. | Allgemein AWS, Linux | 
| Untersuchen Sie die JSON-Layoutdatei. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)<pre> "input": "extract-ebcdic-to-ascii/COBPACK.OUTFILE.txt",<br /> "output": "extract-ebcdic-to-ascii/COBPACK.ASCII.txt",<br /> "max": 0,<br /> "skip": 0,<br /> "print": 10000,<br /> "lrecl": 150,<br /> "rem-low-values": true,<br /> "separator": "|",<br /> "transf": [<br /> {<br /> "type": "ch",<br /> "bytes": 19,<br /> "name": "OUTFILE-TEXT"<br /> } </pre>Die wichtigsten Attribute der JSON-Layoutdatei sind:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Weitere Informationen zur JSON-Layoutdatei finden Sie in der [README-Datei](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) im GitHub Repository. | Allgemein AWS, JSON | 
| Erstellen Sie die ASCII-Datei.  | Führen Sie das Skript **extract\$1ebcdic\$1to\$1ascii.py** aus, das im GitHub geklonten Repository enthalten ist. Dieses Skript liest die EBCDIC-Datei und schreibt eine konvertierte und lesbare ASCII-Datei.<pre>python3 extract_ebcdic_to_ascii.py -local-json sample-data/cobpack2-list.json</pre>Während das Skript die EBCDIC-Daten verarbeitet, druckt es für jeden Stapel von 10.000 Datensätzen eine Nachricht. Sehen Sie sich das folgende Beispiel an.<pre>------------------------------------------------------------------<br />2023-05-15 21:21:46.322253 | Local Json file   | -local-json | sample-data/cobpack2-list.json<br />2023-05-15 21:21:47.034556 | Records processed | 10000<br />2023-05-15 21:21:47.736434 | Records processed | 20000<br />2023-05-15 21:21:48.441696 | Records processed | 30000<br />2023-05-15 21:21:49.173781 | Records processed | 40000<br />2023-05-15 21:21:49.874779 | Records processed | 50000<br />2023-05-15 21:21:50.705873 | Records processed | 60000<br />2023-05-15 21:21:51.609335 | Records processed | 70000<br />2023-05-15 21:21:52.292989 | Records processed | 80000<br />2023-05-15 21:21:52.938366 | Records processed | 89280<br />2023-05-15 21:21:52.938448 Seconds 6.616232</pre>Informationen zum Ändern der Druckfrequenz finden Sie in der [README-Datei im Repository](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md). GitHub  | Allgemeines AWS | 
| Untersuchen Sie die ASCII-Datei. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)Wenn Sie die bereitgestellte EBCDIC-Beispieldatei verwendet haben, ist der folgende Datensatz der erste Datensatz in der ASCII-Datei.<pre>00000000: 2d30 3030 3030 3030 3030 3130 3030 3030  -000000000100000<br />00000010: 3030 307c 3030 3030 3030 3030 3031 3030  000|000000000100<br />00000020: 3030 3030 3030 7c2d 3030 3030 3030 3030  000000|-00000000<br />00000030: 3031 3030 3030 3030 3030 7c30 7c30 7c31  0100000000|0|0|1<br />00000040: 3030 3030 3030 3030 7c2d 3130 3030 3030  00000000|-100000<br />00000050: 3030 307c 3130 3030 3030 3030 307c 2d31  000|100000000|-1<br />00000060: 3030 3030 3030 3030 7c30 3030 3030 7c30  00000000|00000|0<br />00000070: 3030 3030 7c31 3030 3030 3030 3030 7c2d  0000|100000000|-<br />00000080: 3130 3030 3030 3030 307c 3030 3030 3030  100000000|000000<br />00000090: 3030 3030 3130 3030 3030 3030 307c 2d30  0000100000000|-0<br />000000a0: 3030 3030 3030 3030 3031 3030 3030 3030  0000000001000000<br />000000b0: 3030 7c41 7c41 7c0a                      00|A|A|.</pre> | Allgemein AWS, Linux | 
| Evaluieren Sie die EBCDIC-Datei. | Geben Sie in der EC2 Amazon-Konsole den folgenden Befehl ein. Dadurch wird der erste Datensatz der EBCDIC-Datei geöffnet.<pre>head sample-data/COBPACK.OUTFILE.txt -c 150 | xxd</pre>Wenn Sie die EBCDIC-Beispieldatei verwendet haben, ist das Ergebnis wie folgt.<pre> 00000000: 60f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 f0f0 `...............<br /> 00000010: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 f0f0 ................<br /> 00000020: f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f0f0 f1f0 ................<br /> 00000030: f0f0 f0f0 f0f0 d000 0000 0005 f5e1 00fa ................<br /> 00000040: 0a1f 0000 0000 0005 f5e1 00ff ffff fffa ................<br /> 00000050: 0a1f 0000 000f 0000 0c10 0000 000f 1000 ................<br /> 00000060: 0000 0d00 0000 0000 1000 0000 0f00 0000 ................<br /> 00000070: 0000 1000 0000 0dc1 c100 0000 0000 0000 ................<br /> 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................<br /> 00000090: 0000 0000 0000 ......</pre>Um die Gleichwertigkeit zwischen den Quell- und Zieldateien zu bewerten, sind umfassende Kenntnisse über EBCDIC erforderlich. Das erste Zeichen der EBCDIC-Beispieldatei ist beispielsweise ein Bindestrich (). `-` In der hexadezimalen Schreibweise der EBCDIC-Datei wird dieses Zeichen durch dargestellt`60`, und in der hexadezimalen Schreibweise der ASCII-Datei wird dieses Zeichen durch dargestellt. `2D` [Eine EBCDIC-to-ASCII Umrechnungstabelle finden Sie auf der IBM-Website unter EBCDIC zu ASCII.](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) | Allgemein AWS, Linux, EBCDIC | 

## Zugehörige Ressourcen
<a name="convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python-resources"></a>

**Referenzen**
+ [Der EBCDIC-Zeichensatz](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (IBM-Dokumentation)
+ [EBCDIC zu ASCII](https://www.ibm.com/docs/en/iis/11.3?topic=tables-ebcdic-ascii) (IBM-Dokumentation)
+ [COBOL](https://www.ibm.com/docs/en/i/7.1?topic=languages-cobol) (IBM-Dokumentation)
+ [Grundlegende JCL-Konzepte](https://www.ibm.com/docs/en/zos-basic-skills?topic=collection-basic-jcl-concepts) (IBM-Dokumentation)
+ [Connect zu Ihrer Linux-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) her ( EC2 Amazon-Dokumentation)

**Tutorials**
+ [Planung von SSH-Jobs mit AWS Lambda](https://aws.amazon.com/blogs/compute/scheduling-ssh-jobs-using-aws-lambda/) (AWS-Blogbeitrag)
+ [Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion (AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html) Lambda-Dokumentation)

# Konvertieren Sie Mainframe-Dateien vom EBCDIC-Format in das durch Zeichen getrennte ASCII-Format in Amazon S3 mit AWS Lambda
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Zusammenfassung
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie eine AWS Lambda Funktion starten, die EBCDIC-Dateien (Extended Binary Coded Decimal Interchange Code) für Mainframes automatisch in durch Zeichen getrennte ASCII-Dateien (American Standard Code for Information Interchange) konvertiert. Die Lambda-Funktion wird ausgeführt, nachdem die ASCII-Dateien in einen Amazon Simple Storage Service (Amazon S3) -Bucket hochgeladen wurden. Nach der Dateikonvertierung können Sie die ASCII-Dateien auf x86-basierten Workloads lesen oder die Dateien in moderne Datenbanken laden.

Der in diesem Muster vorgestellte Ansatz zur Dateikonvertierung kann Ihnen helfen, die Herausforderungen bei der Arbeit mit EBCDIC-Dateien in modernen Umgebungen zu bewältigen. In EBCDIC kodierte Dateien enthalten häufig Daten, die in einem binären oder komprimierten Dezimalformat dargestellt werden, und Felder haben eine feste Länge. Diese Eigenschaften stellen Hindernisse dar, da moderne x86-basierte Workloads oder verteilte Umgebungen im Allgemeinen mit ASCII-kodierten Daten arbeiten und EBCDIC-Dateien nicht verarbeiten können.

## Voraussetzungen und Einschränkungen
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Ein Amazon S3 S3-Bucket
+ Ein AWS Identity and Access Management (IAM-) Benutzer mit Administratorrechten
+ AWS CloudShell
+ [Python 3.8.0 oder höher](https://www.python.org/downloads/release/python-380/)
+ Eine in EBCDIC kodierte Flatfile und die dazugehörige Datenstruktur in einem COBOL-Copybook (Common Business Oriented Language)

**Anmerkung**  
[Dieses Muster verwendet eine EBCDIC-Beispieldatei ([Client.EBCDIC.txt](https://github.com/aws-samples/mainframe-data-utilities/blob/main/sample-data/CLIENT.EBCDIC.txt)) und das entsprechende COBOL-Copybook (COBKS05.cpy).](https://github.com/aws-samples/mainframe-data-utilities/blob/main/LegacyReference/COBKS05.cpy) Beide GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)Dateien sind im Repository verfügbar.

**Einschränkungen**
+ COBOL-Copybooks enthalten normalerweise mehrere Layoutdefinitionen. Das [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)Projekt kann diese Art von Copybook analysieren, kann aber nicht ableiten, welches Layout bei der Datenkonvertierung berücksichtigt werden soll. Das liegt daran, dass Copybooks diese Logik nicht verwenden (die stattdessen bei COBOL-Programmen verbleibt). Folglich müssen Sie die Regeln für die Auswahl von Layouts manuell konfigurieren, nachdem Sie das Copybook analysiert haben.
+ Dieses Muster unterliegt [Lambda-Quoten](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).

## Architektur
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-architecture"></a>

**Quelltechnologie-Stack**
+ IBM z/OS, IBM i und andere EBCDIC-Systeme
+ Sequentielle Dateien mit in EBCDIC codierten Daten (z. B. IBM Db2-Entladungen)
+ COBOL-Copybook

**Zieltechnologie-Stack**
+ Amazon S3
+ Amazon S3 S3-Ereignisbenachrichtigung
+ IAM
+ Lambda-Funktion
+ Python 3.8 oder höher
+ Mainframe-Datendienstprogramme
+ JSON-Metadaten
+ ASCII-Dateien, die durch Zeichen getrennt sind

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur für die Konvertierung von Mainframe-EBCDIC-Dateien in ASCII-Dateien.

![\[Architektur für die Konvertierung von Mainframe-EBCDIC-Dateien in ASCII-Dateien\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/97ab4129-2639-4733-86cb-962d91526df4/images/3ca7ca44-373a-434f-8c40-09e7c2abf5ec.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Benutzer führt das Copybook-Parser-Skript aus, das das COBOL-Copybook in eine JSON-Datei konvertiert.

1. Der Benutzer lädt die JSON-Metadaten in einen Amazon S3 S3-Bucket hoch. Dadurch werden die Metadaten von der Lambda-Funktion zur Datenkonvertierung lesbar.

1. Der Benutzer oder ein automatisierter Prozess lädt die EBCDIC-Datei in den Amazon S3 S3-Bucket hoch.

1. Das Amazon S3 S3-Benachrichtigungsereignis löst die Lambda-Funktion zur Datenkonvertierung aus.

1. AWS überprüft die Lese- und Schreibberechtigungen des Amazon S3 S3-Buckets für die Lambda-Funktion.

1. Lambda liest die Datei aus dem Amazon S3 S3-Bucket und konvertiert die Datei lokal von EBCDIC nach ASCII.

1. Lambda protokolliert den Prozessstatus in Amazon CloudWatch.

1. Lambda schreibt die ASCII-Datei zurück nach Amazon S3.

**Anmerkung**  
Das Copybook-Parser-Skript wird einmal ausgeführt, um die Konvertierung der Metadaten in das JSON-Format durchzuführen, das anschließend in einem Amazon S3 S3-Bucket gespeichert wird. Nach der ersten Konvertierung verwenden alle nachfolgenden EBCDIC-Dateien, die auf dieselbe JSON-Datei im Amazon S3 S3-Bucket verweisen, die bestehende Metadatenkonfiguration.

## Tools
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-tools"></a>

**AWS-Services**
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) hilft Ihnen dabei, die Kennzahlen Ihrer AWS Ressourcen und der Anwendungen, auf denen Sie laufen, AWS in Echtzeit zu überwachen.
+ [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 CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)ist eine browserbasierte Shell, die Sie zur Verwaltung mithilfe AWS-Services von AWS Command Line Interface (AWS CLI) und einer Reihe vorinstallierter Entwicklungstools verwenden können.
+ [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 Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Lambda führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

**Andere Tools**
+ [GitHub](https://github.com/)ist ein Code-Hosting-Dienst, der Tools für die Zusammenarbeit und Versionskontrolle bereitstellt.
+ [Python](https://www.python.org/) ist eine Programmiersprache auf hohem Niveau.

**Code**

Der Code für dieses Muster ist im GitHub [mainframe-data-utilities](https://github.com/aws-samples/mainframe-data-utilities)Repository verfügbar.

## Best Practices
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-best-practices"></a>

Bedenken Sie die folgenden bewährten Methoden:
+ Legen Sie die erforderlichen Berechtigungen auf der Ebene des Amazon-Ressourcennamens (ARN) fest.
+ Gewähren Sie immer Berechtigungen mit den geringsten Rechten für IAM-Richtlinien. Weitere Informationen finden Sie in der IAM-Dokumentation unter [Bewährte Sicherheitsmethoden in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).

## Epen
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-epics"></a>

### Erstellen Sie Umgebungsvariablen und einen Arbeitsordner
<a name="create-environment-variables-and-a-working-folder"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Umgebungsvariablen. | Kopieren Sie die folgenden Umgebungsvariablen in einen Texteditor und ersetzen Sie dann die `<placeholder>` Werte im folgenden Beispiel durch Ihre Ressourcenwerte:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre>Sie erstellen Verweise auf Ihren Amazon S3 S3-Bucket und AWS-Region später. AWS-KontoUm Umgebungsvariablen zu definieren, öffnen Sie die [CloudShell Konsole](https://console.aws.amazon.com/cloudshell/) und kopieren Sie dann Ihre aktualisierten Umgebungsvariablen und fügen Sie sie in die Befehlszeile ein.Sie müssen diesen Schritt bei jedem Neustart der CloudShell Sitzung wiederholen. | Allgemeines AWS | 
| Erstellen Sie einen Arbeitsordner. | Um die spätere Bereinigung von Ressourcen zu vereinfachen, erstellen Sie einen Arbeitsordner in, CloudShell indem Sie den folgenden Befehl ausführen:<pre>mkdir workdir; cd workdir</pre>Sie müssen jedes Mal, wenn Sie die Verbindung zu Ihrer CloudShell Sitzung verlieren, das Verzeichnis in das Arbeitsverzeichnis (`workdir`) ändern. | Allgemeines AWS | 

### Definieren Sie eine IAM-Rolle und -Richtlinie
<a name="define-an-iam-role-and-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Vertrauensrichtlinie für die Lambda-Funktion. | Der EBCDIC-Konverter läuft in einer Lambda-Funktion. Die Funktion muss eine IAM-Rolle haben. Bevor Sie die IAM-Rolle erstellen, müssen Sie ein Dokument mit einer Vertrauensrichtlinie definieren, das es Ressourcen ermöglicht, diese Richtlinie zu übernehmen.Erstellen Sie im CloudShell Arbeitsordner ein Richtliniendokument, indem Sie den folgenden Befehl ausführen:<pre>E2ATrustPol=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Principal": {<br />                "Service": "lambda.amazonaws.com"<br />            },<br />            "Action": "sts:AssumeRole"<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2ATrustPol" > E2ATrustPol.json</pre> | Allgemeines AWS | 
| Erstellen Sie die IAM-Rolle für die Lambda-Konvertierung. | Um eine IAM-Rolle zu erstellen, führen Sie den folgenden AWS CLI Befehl im CloudShell Arbeitsordner aus:<pre>aws iam create-role --role-name E2AConvLambdaRole --assume-role-policy-document file://E2ATrustPol.json</pre> | Allgemeines AWS | 
| Erstellen Sie das IAM-Richtliniendokument für die Lambda-Funktion. | Die Lambda-Funktion muss Lese- und Schreibzugriff auf den Amazon S3 S3-Bucket und Schreibberechtigungen für Amazon Logs haben. CloudWatch Um eine IAM-Richtlinie zu erstellen, führen Sie den folgenden Befehl im Arbeitsordner aus: CloudShell <pre>E2APolicy=$(cat <<EOF<br />{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "Logs",<br />            "Effect": "Allow",<br />            "Action": [<br />                "logs:PutLogEvents",<br />                "logs:CreateLogStream",<br />                "logs:CreateLogGroup"<br />            ],<br />            "Resource": [<br />                "arn:aws:logs:*:*:log-group:*",<br />                "arn:aws:logs:*:*:log-group:*:log-stream:*"<br />            ]<br />        },<br />        {<br />            "Sid": "S3",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:GetObject",<br />                "s3:PutObject",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::%s/*",<br />                "arn:aws:s3:::%s"<br />            ]<br />        }<br />    ]<br />}<br />EOF<br />)<br />printf "$E2APolicy" "$bucket" "$bucket" > E2AConvLambdaPolicy.json</pre> | Allgemeines AWS | 
| Hängen Sie das IAM-Richtliniendokument an die IAM-Rolle an. | Um die IAM-Richtlinie an die IAM-Rolle anzuhängen, geben Sie den folgenden Befehl aus Ihrem Arbeitsordner ein: CloudShell <pre>aws iam put-role-policy --role-name E2AConvLambdaRole --policy-name E2AConvLambdaPolicy --policy-document file://E2AConvLambdaPolicy.json</pre> | Allgemeines AWS | 

### Erstellen Sie die Lambda-Funktion für die EBCDIC-Konvertierung
<a name="create-the-lam-function-for-ebcdic-conversion"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie den Quellcode für die EBCDIC-Konvertierung herunter. | Führen Sie im CloudShell Arbeitsordner den folgenden Befehl aus, um den mainframe-data-utilities Quellcode herunterzuladen: GitHub<pre>git clone https://github.com/aws-samples/mainframe-data-utilities.git mdu</pre> | Allgemeines AWS | 
| Erstellen Sie das ZIP-Paket. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um das ZIP-Paket zu erstellen, das die Lambda-Funktion für die EBCDIC-Konvertierung erstellt:<pre>cd mdu; zip ../mdu.zip *.py; cd ..</pre> | Allgemeines AWS | 
| So erstellen Sie die Lambda-Funktion: | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um die Lambda-Funktion für die EBCDIC-Konvertierung zu erstellen:<pre>aws lambda create-function \<br />--function-name E2A \<br />--runtime python3.9 \<br />--zip-file fileb://mdu.zip \<br />--handler extract_ebcdic_to_ascii.lambda_handler \<br />--role arn:aws:iam::$account:role/E2AConvLambdaRole \<br />--timeout 10 \<br />--environment "Variables={layout=$bucket/layout/}"</pre> Das Layout der Umgebungsvariablen teilt der Lambda-Funktion mit, wo sich die JSON-Metadaten befinden. | Allgemeines AWS | 
| Erstellen Sie die ressourcenbasierte Richtlinie für die Lambda-Funktion. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, damit Ihre Amazon S3 S3-Ereignisbenachrichtigung die Lambda-Funktion für die EBCDIC-Konvertierung auslöst:<pre>aws lambda add-permission \<br />--function-name E2A \<br />--action lambda:InvokeFunction \<br />--principal s3.amazonaws.com \<br />--source-arn arn:aws:s3:::$bucket \<br />--source-account $account \<br />--statement-id 1</pre> | Allgemeines AWS | 

### Erstellen Sie die Amazon S3 S3-Ereignisbenachrichtigung
<a name="create-the-s3-event-notification"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das Konfigurationsdokument für die Amazon S3 S3-Ereignisbenachrichtigung. | Die Amazon S3 S3-Ereignisbenachrichtigung initiiert die Lambda-Funktion für die EBCDIC-Konvertierung, wenn Dateien im Eingabeordner platziert werden.Führen Sie im CloudShell Arbeitsordner den folgenden Befehl aus, um das JSON-Dokument für die Amazon S3 S3-Ereignisbenachrichtigung zu erstellen:<pre>S3E2AEvent=$(cat <<EOF<br />{<br />"LambdaFunctionConfigurations": [<br />    {<br />      "Id": "E2A",<br />      "LambdaFunctionArn": "arn:aws:lambda:%s:%s:function:E2A",<br />      "Events": [ "s3:ObjectCreated:Put" ],<br />      "Filter": {<br />        "Key": {<br />          "FilterRules": [<br />            {<br />              "Name": "prefix",<br />              "Value": "input/"<br />            }<br />          ]<br />        }<br />      }<br />    }<br />  ]<br />}<br />EOF<br />)<br />printf "$S3E2AEvent" "$region" "$account" > S3E2AEvent.json</pre> | Allgemeines AWS | 
| Erstellen Sie die Amazon S3 S3-Ereignisbenachrichtigung. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um die Amazon S3 S3-Ereignisbenachrichtigung zu erstellen:<pre>aws s3api put-bucket-notification-configuration --bucket $bucket --notification-configuration file://S3E2AEvent.json</pre> | Allgemeines AWS | 

### Erstellen Sie die JSON-Metadaten und laden Sie sie hoch
<a name="create-and-upload-the-json-metadata"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Analysieren Sie das COBOL-Copybook. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um ein COBOL-Beispiel-Copybook in eine JSON-Datei zu parsen (die definiert, wie die Datendatei richtig gelesen und aufgeteilt wird):<pre>python3       mdu/parse_copybook_to_json.py \<br />-copybook     mdu/LegacyReference/COBKS05.cpy \<br />-output       CLIENT.json \<br />-output-s3key CLIENT.ASCII.txt \<br />-output-s3bkt $bucket \<br />-output-type  s3 \<br />-print        25</pre> | Allgemeines AWS | 
| Fügen Sie die Transformationsregel hinzu. | Die Beispieldatendatei und das entsprechende COBOL-Copybook sind eine Datei mit mehreren Layouts. Das bedeutet, dass bei der Konvertierung Daten nach bestimmten Regeln aufgeteilt werden müssen. In diesem Fall definieren die Bytes an den Positionen 3 und 4 in jeder Zeile das Layout.Bearbeiten Sie die `CLIENT.json` Datei im CloudShell Arbeitsordner und ändern Sie `"transf-rule": [],` den Inhalt wie folgt:<pre>"transf-rule": [<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0002",<br />"transf": "transf1"<br />},<br />{<br />"offset": 4,<br />"size": 2,<br />"hex": "0000",<br />"transf": "transf2"<br />}<br />],</pre> | Allgemein AWS, IBM Mainframe, Cobol | 
| Laden Sie die JSON-Metadaten in den Amazon S3 S3-Bucket hoch. | Geben Sie im CloudShell Arbeitsordner den folgenden AWS CLI Befehl ein, um die JSON-Metadaten in Ihren Amazon S3 S3-Bucket hochzuladen:<pre>aws s3 cp CLIENT.json s3://$bucket/layout/CLIENT.json</pre> | Allgemeines AWS | 

### Konvertieren Sie die EBCDIC-Datei
<a name="convert-the-ebcdic-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Senden Sie die EBCDIC-Datei an den Amazon S3 S3-Bucket. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um die EBCDIC-Datei an den Amazon S3 S3-Bucket zu senden:<pre>aws s3 cp mdu/sample-data/CLIENT.EBCDIC.txt s3://$bucket/input/</pre> Wir empfehlen, unterschiedliche Ordner für Eingabe- (EBCDIC) und Ausgabedateien (ASCII) festzulegen, um zu vermeiden, dass die Lambda-Konvertierungsfunktion erneut aufgerufen wird, wenn die ASCII-Datei in den Amazon S3 S3-Bucket hochgeladen wird. | Allgemeines AWS | 
| Überprüfen Sie die Ausgabe. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um zu überprüfen, ob die ASCII-Datei in Ihrem Amazon S3 S3-Bucket generiert wurde:<pre>aws s3 ls s3://$bucket/</pre> Die Datenkonvertierung kann mehrere Sekunden dauern. Wir empfehlen Ihnen, einige Male nach der ASCII-Datei zu suchen.Nachdem die ASCII-Datei verfügbar ist, geben Sie den folgenden Befehl ein, um den Inhalt der konvertierten Datei im Amazon S3 S3-Bucket anzuzeigen. Bei Bedarf können Sie es herunterladen oder direkt aus dem Amazon S3 S3-Bucket verwenden:<pre>aws s3 cp s3://$bucket/CLIENT.ASCII.txt - | head</pre>Überprüfen Sie den Inhalt der ASCII-Datei:<pre>0|0|220|<br />1|1|HERBERT MOHAMED|1958-08-31|BACHELOR|0010000.00|<br />1|2|36|THE ROE AVENUE|<br />2|1|JAYLEN GEORGE|1969-05-29|ELEMENTARY|0020000.00|<br />2|2|365|HEATHFIELD ESPLANADE|<br />3|1|MIKAEEL WEBER|1982-02-17|MASTER|0030000.00|<br />3|2|4555|MORRISON STRAND|<br />4|1|APRIL BARRERA|1967-01-12|DOCTOR|0030000.00|<br />4|2|1311|MARMION PARK|<br />5|1|ALEEZA PLANT|1985-03-01|BACHELOR|0008000.00|</pre> | Allgemeines AWS | 

### Säubere die Umwelt
<a name="clean-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| (Optional) Bereiten Sie die Variablen und den Ordner vor. | Wenn Sie die Verbindung mit verlieren CloudShell, stellen Sie die Verbindung erneut her und geben Sie dann den folgenden Befehl ein, um das Verzeichnis in den Arbeitsordner zu ändern:<pre>cd workdir</pre>Stellen Sie sicher, dass die Umgebungsvariablen definiert sind:<pre>bucket=<your_bucket_name><br />account=<your_account_number><br />region=<your_region_code></pre> | Allgemeines AWS | 
| Entfernen Sie die Benachrichtigungskonfiguration für den Bucket. | Führen Sie im CloudShell Arbeitsordner den folgenden Befehl aus, um die Konfiguration der Amazon S3 S3-Ereignisbenachrichtigung zu entfernen:<pre>aws s3api put-bucket-notification-configuration \<br />--bucket=$bucket \<br />--notification-configuration="{}"</pre> | Allgemeines AWS | 
| Löschen Sie die Lambda-Funktion. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um die Lambda-Funktion für den EBCDIC-Konverter zu löschen:<pre>aws lambda delete-function \<br />--function-name E2A</pre> | Allgemeines AWS | 
| Löschen Sie die IAM-Rolle und -Richtlinie. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um die EBCDIC-Konverter-Rolle und -Richtlinie zu entfernen:<pre>aws iam delete-role-policy \<br />--role-name E2AConvLambdaRole \<br />--policy-name E2AConvLambdaPolicy<br /><br />aws iam delete-role \<br />--role-name E2AConvLambdaRole</pre> | Allgemeines AWS | 
| Löschen Sie die im Amazon S3 S3-Bucket generierten Dateien. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um die im Amazon S3 S3-Bucket generierten Dateien zu löschen:<pre>aws s3 rm s3://$bucket/layout --recursive<br />aws s3 rm s3://$bucket/input --recursive<br />aws s3 rm s3://$bucket/CLIENT.ASCII.txt</pre> | Allgemeines AWS | 
| Löschen Sie den Arbeitsordner. | Geben Sie im CloudShell Arbeitsordner den folgenden Befehl ein, um ihn `workdir` und seinen Inhalt zu entfernen:<pre>cd ..; rm -Rf workdir</pre> | Allgemeines AWS | 

## Zugehörige Ressourcen
<a name="convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda-resources"></a>
+ [README () für Mainframe-Datendienstprogramme](https://github.com/aws-samples/mainframe-data-utilities/blob/main/README.md) GitHub
+ [Der EBCDIC-Zeichensatz](https://www.ibm.com/docs/en/zos-basic-skills?topic=mainframe-ebcdic-character-set) (IBM-Dokumentation)
+ [EBCDIC zu ASCII](https://www.ibm.com/docs/en/iis/11.7.0?topic=tables-ebcdic-ascii) (IBM-Dokumentation)
+ [COBOL](https://www.ibm.com/docs/en/i/7.6.0?topic=languages-cobol) (IBM-Dokumentation)
+ [Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion (Dokumentation](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html))AWS Lambda 

# Konvertieren Sie Mainframe-Datendateien mit komplexen Datensatzlayouts mit Micro Focus
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus"></a>

*Peter West, Amazon Web Services*

## Zusammenfassung
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-summary"></a>

Hinweis: AWS Mainframe Modernization Der Service (Managed Runtime Environment Experience) steht Neukunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Dieses Muster zeigt Ihnen, wie Sie Mainframe-Datendateien mit Nicht-Textdaten und komplexen Datensatzlayouts mithilfe einer Micro Focus-Strukturdatei von der EBCDIC-Zeichenkodierung (Extended Binary Coded Decimal Interchange Code) in die ASCII-Zeichenkodierung (American Standard Code for Information Interchange) konvertieren. Um die Dateikonvertierung abzuschließen, müssen Sie wie folgt vorgehen:

1. Bereiten Sie eine einzelne Quelldatei vor, die alle Datenelemente und Datensatzlayouts in Ihrer Mainframe-Umgebung beschreibt.

1. Erstellen Sie mit dem Micro Focus Data File Editor als Teil der Micro Focus Classic Data File Tools oder Data File Tools eine Strukturdatei, die das Datensatzlayout der Daten enthält. Die Strukturdatei identifiziert die Nicht-Textdaten, sodass Sie Ihre Mainframe-Dateien korrekt von EBCDIC nach ASCII konvertieren können.

1. Testen Sie die Strukturdatei mithilfe der Classic Data File Tools oder Data File Tools.

## Voraussetzungen und Einschränkungen
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Micro Focus Enterprise Developer für Windows, erhältlich über [AWS Mainframe](https://aws.amazon.com/mainframe-modernization/) Modernization

**Produktversionen**
+ Micro Focus Enterprise Server 7.0 und höher

## Tools
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-tools"></a>
+ [Micro Focus Enterprise Developer](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html) bietet die Ausführungsumgebung für Anwendungen, die mit einer beliebigen IDE-Variante (Integrated Development Environment) von Enterprise Developer erstellt wurden.
+ Die Micro Focus [Classic Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-06115324-0FBC-4CB7-BE9D-04BCFEA5821A.html) helfen Ihnen beim Konvertieren, Navigieren, Bearbeiten und Erstellen von Datendateien. Zu den klassischen Datendatei-Tools gehören der [Datendateikonverter](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFCV.html), der [Datensatzlayout-Editor](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHRLMF.html) und der [Datendatei-Editor](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html).
+ Mit den Micro Focus [Data File Tools](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-B1BCB613-6947-451C-8F71-72FB8254076A.html) können Sie Datendateien erstellen, bearbeiten und verschieben. Zu den Datendateitools gehören der [Datendatei-Editor](https://www.microfocus.com/documentation/visual-cobol/vc60/VS2017/BKFHFHDFED.html), die [Dateikonvertierungsprogramme](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/BKFHFHCONV.html) und das [Befehlszeilenprogramm für die Datendateistruktur](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GUID-E84348EB-A93A-481A-A47C-61B0E1C076E6.html).

## Epen
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-epics"></a>

### Bereiten Sie die Quelldatei vor
<a name="prepare-the-source-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Identifizieren Sie die Quellkomponenten. | Identifizieren Sie alle möglichen Datensatzlayouts für die Datei, einschließlich aller Neudefinitionen, die Daten enthalten, die keine Textdaten enthalten.Wenn Sie Layouts haben, die Neudefinitionen enthalten, müssen Sie diese Layouts auf eindeutige Layouts reduzieren, die jede mögliche Permutation der Datenstruktur beschreiben. In der Regel können die Datensatzlayouts einer Datendatei durch die folgenden Archetypen beschrieben werden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Weitere Informationen zum Erstellen vereinfachter Datensatzlayouts für Dateien, die komplexe Datensatzlayouts enthalten, finden Sie unter [Rehosting von EBCDIC-Anwendungen in ASCII-Umgebungen für Mainframe-Migrationen](https://docs.aws.amazon.com/prescriptive-guidance/latest/mainframe-rehost-ebcdic-ascii/introduction.html). | App-Developer | 
| Identifizieren Sie die Bedingungen für das Datensatzlayout. | Identifizieren Sie bei Dateien mit mehreren Datensatzlayouts oder bei Dateien, die komplexe Layouts mit einer REDEFINES-Klausel enthalten, die Daten und Bedingungen innerhalb eines Datensatzes, anhand derer Sie definieren können, welches Layout bei der Konvertierung verwendet werden soll. Wir empfehlen Ihnen, diese Aufgabe mit einem Fachexperten (SME) zu besprechen, der sich mit den Programmen auskennt, die diese Dateien verarbeiten.Eine Datei kann beispielsweise zwei Datensatztypen enthalten, die keine Textdaten enthalten. Sie können die Quelle überprüfen und möglicherweise Code finden, der dem folgenden ähnelt:<pre>MOVE "M" TO PART-TYPE<br /> MOVE "MAIN ASSEMBLY" TO PART-NAME<br />MOVE "S" TO PART-TYPE<br /> MOVE "SUB ASSEMBLY 1" TO PART-NAME</pre>Der Code hilft Ihnen dabei, Folgendes zu identifizieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Sie können die Werte dokumentieren, die von diesem Feld verwendet werden, um die Datensatzlayouts den richtigen Datensätzen in der Datei zuzuordnen. | App-Developer | 
| Erstellen Sie die Quelldatei. | Wenn die Datei in mehreren Quelldateien beschrieben wird oder wenn das Datensatzlayout Nicht-Textdaten enthält, die einer REDEFINES-Klausel untergeordnet sind, erstellen Sie eine neue Quelldatei, die die Datensatzlayouts enthält. Das neue Programm muss die Datei nicht mit SELECT- und FD-Anweisungen beschreiben. Das Programm kann die Datensatzbeschreibungen einfach als 10 Stufen innerhalb von Working-Storage enthalten.Sie können für jede Datendatei eine Quelldatei oder eine Master-Quelldatei erstellen, die alle Datendateien beschreibt. | App-Developer | 
| Kompilieren Sie die Quelldatei. | Kompilieren Sie die Quelldatei, um das Datenwörterbuch zu erstellen. Es wird empfohlen, die Quelldatei mit dem EBCDIC-Zeichensatz zu kompilieren. Wenn die IBMCOMP-Direktive oder die ODOSLIDE-Direktive verwendet werden, müssen Sie diese Direktiven auch in der Quelldatei verwenden.IBMCOMP beeinflusst die Bytespeicherung von COMP-Feldern und ODOSLIDE beeinflusst die Auffüllung von OCCURS VARIIERENDEN Strukturen. Wenn diese Direktiven falsch gesetzt sind, liest das Konvertierungstool den Datensatz nicht korrekt. Dies führt zu fehlerhaften Daten in der konvertierten Datei. | App-Developer | 

### (Option A) Erstellen Sie die Strukturdatei mit den klassischen Datendatei-Tools
<a name="option-a-create-the-structure-file-using-classic-data-file-tools"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie das Tool und laden Sie das Wörterbuch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | App-Developer | 
| Erstellen Sie das Standard-Datensatzlayout. | Verwenden Sie das Standard-Datensatzlayout für alle Datensätze, die keinen bedingten Layouts entsprechen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Das Standardlayout wird im Bereich **Layouts** angezeigt und ist an dem roten Ordnersymbol zu erkennen. | App-Developer | 
| Erstellen Sie ein bedingtes Datensatzlayout. | Verwenden Sie das bedingte Datensatzlayout, wenn eine Datei mehr als ein Datensatzlayout enthält.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | App-Developer | 

### (Option B) Erstellen Sie die Strukturdatei mithilfe von Data File Tools
<a name="option-b-create-the-structure-file-using-data-file-tools"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie das Tool und laden Sie das Wörterbuch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | App-Developer | 
| Erstellen Sie das Standard-Datensatzlayout. | Verwenden Sie das Standard-Datensatzlayout für alle Datensätze, die keinem bedingten Layout entsprechen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html)Das Standardlayout wird im Bereich **Layouts** angezeigt und ist an dem blauen „D“ -Symbol zu erkennen. | App-Developer | 
| Erstellen Sie ein bedingtes Datensatzlayout. | Verwenden Sie das bedingte Datensatzlayout, wenn eine Datei mehr als ein Datensatzlayout enthält.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | App-Developer | 

### (Option A) Testen Sie die Strukturdatei mit den klassischen Datendatei-Tools
<a name="option-a-test-the-structure-file-using-classic-data-file-tools"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie eine EBCDIC-Datendatei. | Vergewissern Sie sich, dass Sie Ihre Strukturdatei verwenden können, um eine EBCDIC-Testdatendatei korrekt anzuzeigen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | App-Developer | 

### (Option B) Testen Sie die Strukturdatei mit den Datendatei-Tools
<a name="option-b-test-the-structure-file-using-data-file-tools"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie eine EBCDIC-Datendatei. | Vergewissern Sie sich, dass Sie Ihre Strukturdatei verwenden können, um eine EBCDIC-Testdatendatei korrekt anzuzeigen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | App-Developer | 

### Testen Sie die Konvertierung der Datendatei
<a name="test-data-file-conversion"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie die Konvertierung einer EBCDIC-Datei. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus.html) | App-Developer | 

## Zugehörige Ressourcen
<a name="convert-mainframe-data-files-with-complex-record-layouts-using-micro-focus-resources"></a>
+ Micro Focus ([Micro Focus-Dokumentation](https://www.microfocus.com/en-us/products/enterprise-suite/overview))
+ [Mainframe und Legacy-Code](https://aws.amazon.com/blogs/?awsf.blog-master-category=category%23mainframe-and-legacy) (AWS-Blogbeiträge)
+ [AWS Prescriptive Guidance](https://docs.aws.amazon.com/prescriptive-guidance/) (AWS-Dokumentation)
+ [AWS-Dokumentation](https://docs.aws.amazon.com/index.html) (AWS-Dokumentation)
+ [Allgemeine AWS-Referenz](https://docs.aws.amazon.com/general/latest/gr/Welcome.html) (AWS-Dokumentation)
+ [AWS-Glossar](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html) (AWS-Dokumentation)

# 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)

# Generieren Sie Einblicke in z/OS Db2-Daten mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack und Santosh Kumar Singh, Amazon Web Services*

## Zusammenfassung
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-summary"></a>

Hinweis: AWS Mainframe Modernization Der Service (Managed Runtime Environment-Erlebnis) steht Neukunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Wenn Ihr Unternehmen geschäftskritische Daten in einer IBM Db2-Mainframe-Umgebung hostet, ist es entscheidend, Erkenntnisse aus diesen Daten zu gewinnen, um Wachstum und Innovation voranzutreiben. Durch die Erschließung von Mainframe-Daten können Sie schnellere, sichere und skalierbare Business Intelligence aufbauen, um datengestützte Entscheidungen, Wachstum und Innovation in der Amazon Web Services ()AWS Cloud zu beschleunigen.

Dieses Muster bietet eine Lösung für die Generierung von Geschäftseinblicken und die Erstellung gemeinsam nutzbarer Geschichten aus Mainframe-Daten in IBM Db2 für Tabellen. z/OS Mainframe-Datenänderungen werden mithilfe von [AWS Mainframe Modernization Data](https://docs.aws.amazon.com/m2/latest/userguide/precisely.html) Replication with Precisely zum Thema [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) gestreamt. Mithilfe von [Amazon Redshift Streaming Ingestion](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html) werden Amazon MSK-Themendaten in Amazon [Redshift Serverless Data Warehouse-Tabellen für Analysen in Amazon](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-whatis.html) Quick Sight gespeichert.

Sobald die Daten in Quick Sight verfügbar sind, können Sie mit [Amazon Q in Quick Sight Aufforderungen in](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) natürlicher Sprache verwenden, um Zusammenfassungen der Daten zu erstellen, Fragen zu stellen und Datenstorys zu generieren. Sie müssen keine SQL-Abfragen schreiben oder ein Business Intelligence (BI) -Tool erlernen.

**Geschäftlicher Kontext**

Dieses Muster stellt eine Lösung für Anwendungsfälle von Mainframe-Datenanalysen und Datenerkenntnissen dar. Mithilfe des Musters erstellen Sie ein visuelles Dashboard für die Daten Ihres Unternehmens. Um die Lösung zu demonstrieren, verwendet dieses Muster ein Gesundheitsunternehmen, das seinen Mitgliedern in den USA medizinische, zahnärztliche und augenärztliche Pläne anbietet. In diesem Beispiel werden demografische Daten und Versicherungsinformationen der Mitglieder in den z/OS Datentabellen IBM Db2 for gespeichert. Das visuelle Dashboard zeigt Folgendes:
+ Verteilung der Mitglieder nach Regionen
+ Verteilung der Mitglieder nach Geschlecht
+ Verteilung der Mitglieder nach Alter
+ Verteilung der Mitglieder nach Tariftyp
+ Mitglieder, die die Schutzimpfung noch nicht abgeschlossen haben

Beispiele für die Verteilung der Mitglieder nach Regionen und Mitgliedern, die die präventive Impfung nicht abgeschlossen haben, finden Sie im Abschnitt Zusätzliche Informationen.

Nachdem Sie das Dashboard erstellt haben, generieren Sie eine Datenstory, die die Erkenntnisse aus der vorherigen Analyse erklärt. Die Datenstory enthält Empfehlungen zur Erhöhung der Zahl der Mitglieder, die präventive Impfungen abgeschlossen haben.

## Voraussetzungen und Einschränkungen
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto. Diese Lösung wurde auf Amazon Linux 2 auf Amazon Elastic Compute Cloud (Amazon EC2) entwickelt und getestet.
+ Eine virtuelle private Cloud (VPC) mit einem Subnetz, auf das Ihr Mainframe-System zugreifen kann.
+ Eine Mainframe-Datenbank mit Geschäftsdaten. Die Beispieldaten, die zum Erstellen und Testen dieser Lösung verwendet wurden, finden Sie im Abschnitt *Anlagen*.
+ Change Data Capture (CDC) ist in den z/OS Db2-Tabellen aktiviert. [Informationen zur Aktivierung von CDC auf Db2 z/OS finden Sie in der IBM-Dokumentation.](https://www.ibm.com/docs/en/daafz/7.5?topic=cdc-enabling-data-capture-changes)
+ Precisely Connect CDC for ist auf dem z/OS System z/OS installiert, das die Quelldatenbanken hostet. Das Precisely Connect CDC for z/OS Image wird als Zip-Datei im [AWS Mainframe Modernization - Data Replication for IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?applicationId=AWSMPContessa&ref_=beagle&sr=0-1) Amazon Machine Image (AMI) bereitgestellt. Informationen zur Installation von Precisely Connect CDC for z/OS auf dem Mainframe finden Sie in der [Precisely Installationsdokumentation](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS).

**Einschränkungen**
+ Ihre Mainframe-Db2-Daten sollten einen Datentyp haben, der von Precisely Connect CDC unterstützt wird. Eine Liste der unterstützten Datentypen finden Sie in der [CDC-Dokumentation von Precisely Connect](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Data-replication-overview/Supported-source-data-types).
+ Ihre Daten bei Amazon MSK sollten einen Datentyp haben, der von Amazon Redshift unterstützt wird. Eine Liste der unterstützten Datentypen finden Sie in der [Amazon Redshift Redshift-Dokumentation](https://docs.aws.amazon.com/redshift/latest/dg/c_Supported_data_types.html).
+ Amazon Redshift hat unterschiedliche Verhaltensweisen und Größenbeschränkungen für verschiedene Datentypen. Weitere Informationen finden Sie in der [Amazon Redshift Redshift-Dokumentation](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-ingestion-limitations).
+ Die Daten in Quick Sight nahezu in Echtzeit hängen vom Aktualisierungsintervall ab, das für die Amazon Redshift Redshift-Datenbank festgelegt wurde.
+ Einige AWS-Services sind nicht in allen AWS-Regionen verfügbar. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie [AWS-Services unter Nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Amazon Q in Quick Sight ist derzeit nicht in jeder Region verfügbar, die Quick Sight unterstützt. Informationen zu bestimmten Endpunkten finden Sie auf der Seite [Service-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Service.

**Produktversionen**
+ AWS Mainframe Modernization Datenreplikation mit Precisiely Version 4.1.44
+ Python-Version 3.6 oder höher
+ Apache Kafka Version 3.5.1****

## Architektur
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-architecture"></a>

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur zur Generierung von Geschäftseinblicken aus Mainframe-Daten mithilfe von Data [Replication AWS Mainframe Modernization with Precisely](https://aws.amazon.com/mainframe-modernization/capabilities/data-replication/) und Amazon Q in Quick Sight.

![\[Prozess in sieben Schritten vom z/OS Mainframe zu Amazon. QuickSight\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/cddb6d20-14ae-4276-90d8-14df435db824.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Precisely Log Reader Agent liest Daten aus Db2-Protokollen und schreibt die Daten in einen vorübergehenden Speicher auf einem OMVS-Dateisystem auf dem Mainframe.

1. Der Publisher Agent liest die unformatierten Db2-Protokolle aus dem transienten Speicher.

1. Der lokale Controller-Daemon authentifiziert, autorisiert, überwacht und verwaltet Vorgänge.

1. Der Apply Agent wird mithilfe des vorkonfigurierten AMI auf Amazon EC2 bereitgestellt. Er stellt über den Controller-Daemon mithilfe von TCP/IP eine Verbindung zum Publisher Agent her. Der Apply Agent überträgt Daten mithilfe mehrerer Worker an Amazon MSK, um einen hohen Durchsatz zu erzielen.

1. Die Mitarbeiter schreiben die Daten im JSON-Format in das Amazon MSK-Thema. Als Zwischenziel für die replizierten Nachrichten bietet Amazon MSK die hochverfügbaren und automatisierten Failover-Funktionen.

1. Amazon Redshift Streaming Ingestion ermöglicht die schnelle Datenaufnahme mit geringer Latenz und hoher Geschwindigkeit von Amazon MSK in eine Amazon Redshift Serverless-Datenbank. Eine gespeicherte Prozedur in Amazon Redshift führt den Mainframe-Abgleich der Änderungsdaten (insert/update/deletes) in Amazon Redshift Redshift-Tabellen durch. Diese Amazon Redshift Redshift-Tabellen dienen als Datenanalysequelle für Quick Sight.

1. Benutzer greifen auf die Daten in Quick Sight zu, um Analysen und Einblicke zu erhalten. Sie können Amazon Q in Quick Sight verwenden, um mithilfe von Eingabeaufforderungen in natürlicher Sprache mit den Daten zu interagieren.

## Tools
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server starten, wie Sie benötigen, und diese schnell vergrößern oder verkleinern.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.
+ [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) ist ein vollständig verwalteter Service, der Sie beim Erstellen und Ausführen von Anwendungen unterstützt, die Apache Kafka zur Verarbeitung von Streaming-Daten verwenden.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) ist ein Business Intelligence (BI) -Service auf Cloud-Ebene, mit dem Sie Ihre Daten in einem einzigen Dashboard visualisieren, analysieren und Berichte erstellen können. Dieses Muster verwendet die generativen BI-Funktionen von Amazon Q in Quick Sight.
+ [Amazon Redshift Serverless](https://aws.amazon.com/redshift/redshift-serverless/) ist eine serverlose Option von Amazon Redshift, mit der Analysen in Sekundenschnelle effizienter ausgeführt und skaliert werden können, ohne dass eine Data Warehouse-Infrastruktur eingerichtet und verwaltet werden muss.
+ Mit [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) können Sie fest codierte Anmeldeinformationen im Code (einschließlich Passwörter) durch einen API-Aufruf an Secrets Manager ersetzen und das Geheimnis programmgesteuert abrufen.

**Andere Tools**
+ [Precisely Connect CDC](https://support.precisely.com/products/connect-cdc-formerly-sqdata/) sammelt und integriert Daten aus Altsystemen in Cloud- und Datenplattformen.

**Code-Repository**

Der Code für dieses Muster ist im GitHub [Mainframe\$1 DataInsights \$1change\$1data\$1reconciliation-Repository](https://github.com/aws-samples/Mainframe_DataInsights_change_data_reconcilition) verfügbar. Der Code ist eine gespeicherte Prozedur in Amazon Redshift. Diese gespeicherte Prozedur gleicht Mainframe-Datenänderungen (Einfügungen, Aktualisierungen und Löschungen) aus Amazon MSK mit den Amazon Redshift Redshift-Tabellen ab. Diese Amazon Redshift Redshift-Tabellen dienen als Datenanalysequelle für Quick Sight.

## Best Practices
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-best-practices"></a>
+ Folgen Sie bei der Einrichtung Ihres Amazon MSK-Clusters den [Best Practices](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html).
+ Folgen Sie den [Best Practices für das Analysieren von Amazon Redshift Redshift-Daten](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html#materialized-view-streaming-recommendations), um die Leistung zu verbessern.
+ Wenn Sie die AWS Identity and Access Management (IAM-) Rollen für das Precisely Setup erstellen, folgen Sie dem Prinzip der geringsten Rechte und gewähren Sie die Mindestberechtigungen, die zur Ausführung einer Aufgabe erforderlich sind. Weitere Informationen finden Sie in der IAM-Dokumentation unter [Gewährung der geringsten Rechte](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) und [bewährte Methoden zur Sicherheit](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).

## Epen
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-epics"></a>

### Richten Sie die AWS Mainframe Modernization Datenreplikation mit Precisely auf Amazon ein EC2
<a name="set-up-m2long-data-replication-with-precisely-on-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie eine Sicherheitsgruppe ein. | Um eine Verbindung mit dem Controller-Daemon und dem Amazon MSK-Cluster [herzustellen, erstellen Sie eine Sicherheitsgruppe](https://docs.aws.amazon.com/vpc/latest/userguide/creating-security-groups.html) für die EC2 Instance. Fügen Sie die folgenden Regeln für eingehenden und ausgehenden Datenverkehr hinzu:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Notieren Sie sich den Namen der Sicherheitsgruppe. Sie müssen den Namen angeben, wenn Sie die EC2 Instance starten und den Amazon MSK-Cluster konfigurieren. | DevOps Ingenieur, AWS DevOps | 
| Erstellen Sie eine IAM-Richtlinie und eine IAM-Rolle. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | DevOps Ingenieur, AWS-Systemadministrator | 
| Stellen Sie eine EC2 Instanz bereit. | Gehen Sie wie folgt vor, um eine EC2 Instance für die Ausführung von Precisely CDC und die Verbindung zu Amazon MSK bereitzustellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | AWS-Administrator, DevOps Ingenieur | 

### Amazon MSK einrichten
<a name="set-up-msk"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den Amazon MSK-Cluster. | Gehen Sie wie folgt vor, um einen Amazon MSK-Cluster zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Die Erstellung eines bereitgestellten Clusters dauert in der Regel bis zu 15 Minuten. Nachdem der Cluster erstellt wurde, ändert sich sein Status von **Creating** zu **Active**. | AWS DevOps, Cloud-Administrator | 
| Richten Sie die SASL/SCRAM Authentifizierung ein. | Gehen Sie wie folgt vor, um die SASL/SCRAM Authentifizierung für einen Amazon MSK-Cluster einzurichten:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Cloud-Architekt | 
| Erstellen Sie das Amazon MSK-Thema. | Gehen Sie wie folgt vor, um das Amazon MSK-Thema zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Cloud-Administrator | 

### Konfigurieren Sie die Precisely Apply Engine bei Amazon EC2
<a name="configure-the-precisely-apply-engine-on-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie die Precisely Scripts ein, um Datenänderungen zu replizieren. | Gehen Sie wie folgt vor, um die Precisely Connect CDC-Skripts so einzurichten, dass sie geänderte Daten vom Mainframe in das Amazon MSK-Thema replizieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)[Beispielweise.ddl-Dateien finden Sie im Abschnitt Zusätzliche Informationen.](#generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional) | App-Entwickler, Cloud-Architekt | 
| Generieren Sie den Netzwerk-ACL-Schlüssel. | Gehen Sie wie folgt vor, um den Netzwerk-ACL-Schlüssel (Network Access Control List) zu generieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Cloud-Architekt, AWS DevOps | 

### Bereiten Sie die Mainframe-Quellumgebung vor
<a name="prepare-the-mainframe-source-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie die Standardeinstellungen auf dem ISPF-Bildschirm. | [Folgen Sie den Anweisungen in der Precisely Dokumentation, um die Standardeinstellungen in der Interactive System Productivity Facility (ISPF) zu konfigurieren.](https://help.precisely.com/r/AWS-Mainframe-Modernization/Latest/en-US/AWS-Mainframe-Modernization-Data-Replication-for-IBM-z/OS/Install-Precisely-Connect-CDC-z/OS/Start-ISPF-Panel-Interface) | Mainframe-Systemadministrator | 
| Konfigurieren Sie den Controller-Daemon. | Gehen Sie wie folgt vor, um den Controller-Daemon zu konfigurieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Mainframe-Systemadministrator | 
| Konfigurieren Sie den Publisher. | Gehen Sie wie folgt vor, um den Herausgeber zu konfigurieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Mainframe-Systemadministrator | 
| Aktualisieren Sie die Daemon-Konfigurationsdatei. | Gehen Sie wie folgt vor, um die Herausgeberdetails in der Controller-Daemon-Konfigurationsdatei zu aktualisieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Mainframe-Systemadministrator | 
| Erstellen Sie den Job, um den Controller-Daemon zu starten. | Gehen Sie wie folgt vor, um den Job zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Mainframe-Systemadministrator | 
| Generieren Sie die JCL-Datei für den Capture Publisher. | Gehen Sie wie folgt vor, um die Capture Publisher-JCL-Datei zu generieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Mainframe-Systemadministrator | 
| Überprüfen und aktualisieren Sie CDC. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Mainframe-Systemadministrator | 
| Reichen Sie die JCL-Dateien ein. | Reichen Sie die folgenden JCL-Dateien ein, die Sie in den vorherigen Schritten konfiguriert haben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Nachdem Sie die JCL-Dateien eingereicht haben, können Sie die Apply Engine in Precisely auf der EC2 Instanz starten. | Mainframe-Systemadministrator | 

### Führen Sie CDC aus und validieren Sie es
<a name="run-and-validate-cdc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Starten Sie die Apply Engine und validieren Sie das CDC. | Gehen Sie wie folgt vor, um die Apply Engine auf der EC2 Instanz zu starten und das CDC zu validieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Cloud-Architekt, App-Entwickler | 
| Überprüfen Sie die Datensätze zum Thema Amazon MSK. | Gehen Sie wie folgt vor, um die Nachricht aus dem Kafka-Thema zu lesen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | App-Entwickler, Cloud-Architekt | 

### Speichern Sie Mainframe-Änderungsdaten in einem Amazon Redshift Serverless Data Warehouse
<a name="store-mainframe-change-data-in-an-rsslong-data-warehouse"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Amazon Redshift Serverless ein. | [Folgen Sie den Anweisungen in der Dokumentation, um ein Amazon Redshift Serverless Data Warehouse zu erstellen.AWS](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)Überprüfen Sie im Amazon Redshift Serverless-Dashboard, ob der Namespace und die Arbeitsgruppe erstellt wurden und verfügbar sind. Bei diesem Beispielmuster kann der Vorgang 2—5 Minuten dauern. | Dateningenieur | 
| Richten Sie die IAM-Rolle und die Vertrauensrichtlinie ein, die für die Streaming-Aufnahme erforderlich sind. | Gehen Sie wie folgt vor, um die serverlose Amazon Redshift Redshift-Streaming-Aufnahme von Amazon MSK einzurichten:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Dateningenieur | 
| Connect Amazon Redshift Serverless mit Amazon MSK. | Um eine Verbindung zum Amazon MSK-Thema herzustellen, erstellen Sie ein externes Schema in Amazon Redshift Serverless. Führen Sie im Amazon Redshift Query Editor v2 den folgenden SQL-Befehl aus, `'iam_role_arn'` ersetzen Sie ihn durch die Rolle, die Sie zuvor erstellt haben, und ersetzen Sie `'MSK_cluster_arn` 'durch den ARN für Ihren Cluster.<pre>CREATE EXTERNAL SCHEMA member_schema<br />FROM MSK<br />IAM_ROLE 'iam_role_arn'<br />AUTHENTICATION iam<br />URI 'MSK_cluster_arn';</pre> | Migrationsingenieur | 
| Erstellen Sie eine materialisierte Ansicht. | Um die Daten aus dem Amazon MSK-Thema in Amazon Redshift Serverless zu nutzen, erstellen Sie eine materialisierte Ansicht. Führen Sie im Amazon Redshift Query Editor v2 die folgenden SQL-Befehle aus und `<MSK_Topic_name>` ersetzen Sie sie durch den Namen Ihres Amazon MSK-Themas.<pre>CREATE MATERIALIZED VIEW member_view<br />AUTO REFRESH YES<br />AS SELECT<br />kafka_partition, <br />kafka_offset, <br />refresh_time, <br />json_parse(kafka_value) AS Data<br />FROM member_schema.<MSK_Topic_name><br />WHERE CAN_JSON_PARSE(kafka_value); <br /></pre> | Ingenieur für Migration | 
| Erstellen Sie Zieltabellen in Amazon Redshift. | Amazon Redshift Redshift-Tabellen stellen die Eingabe für Quick Sight bereit. Dieses Muster verwendet die Tabellen `member_dtls` und`member_plans`, die den Db2-Quelltabellen auf dem Mainframe entsprechen.Um die beiden Tabellen in Amazon Redshift zu erstellen, führen Sie die folgenden SQL-Befehle im Amazon Redshift Query Editor v2 aus:<pre>-- Table 1: members_dtls<br />CREATE TABLE members_dtls (<br /> memberid INT ENCODE AZ64,<br /> member_name VARCHAR(100) ENCODE ZSTD,<br /> member_type VARCHAR(50) ENCODE ZSTD,<br /> age INT ENCODE AZ64,<br /> gender CHAR(1) ENCODE BYTEDICT,<br /> email VARCHAR(100) ENCODE ZSTD,<br /> region VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;<br /><br />-- Table 2: member_plans<br />CREATE TABLE member_plans (<br /> memberid INT ENCODE AZ64,<br /> medical_plan CHAR(1) ENCODE BYTEDICT,<br /> dental_plan CHAR(1) ENCODE BYTEDICT,<br /> vision_plan CHAR(1) ENCODE BYTEDICT,<br /> preventive_immunization VARCHAR(50) ENCODE ZSTD<br />) DISTSTYLE AUTO;</pre> | Migrationsingenieur | 
| Erstellen Sie eine gespeicherte Prozedur in Amazon Redshift. | Dieses Muster verwendet eine gespeicherte Prozedur, um Änderungsdaten (`INSERT`,`UPDATE`,`DELETE`) vom Quell-Mainframe mit der Amazon Redshift Redshift-Data-Warehouse-Zieltabelle für Analysen in Quick Sight zu synchronisieren.Um die gespeicherte Prozedur in Amazon Redshift zu erstellen, verwenden Sie den Abfrage-Editor v2, um den Code der gespeicherten Prozedur auszuführen, der sich im GitHub Repository befindet. | Migrationsingenieur | 
| Lesen Sie aus der materialisierten Streaming-Ansicht und laden Sie sie in die Zieltabellen. | Die gespeicherte Prozedur liest Datenänderungen aus der materialisierten Streaming-Ansicht und lädt die Datenänderungen in die Zieltabellen. Verwenden Sie den folgenden Befehl, um die gespeicherte Prozedur auszuführen:<pre>call SP_Members_Load();</pre>Sie können [Amazon](https://aws.amazon.com/eventbridge/) verwenden EventBridge, um die Jobs in Ihrem Amazon Redshift Data Warehouse so zu planen, dass diese gespeicherte Prozedur auf der Grundlage Ihrer Datenlatenzanforderungen aufgerufen wird. EventBridge führt Jobs in festen Intervallen aus. Um zu überprüfen, ob der vorherige Aufruf der Prozedur abgeschlossen wurde, müssen Sie möglicherweise einen Mechanismus wie eine [AWS Step Functions](https://aws.amazon.com/step-functions/)Zustandsmaschine verwenden. Weitere Informationen finden Sie in den folgenden Ressourcen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Eine weitere Option besteht darin, den Amazon Redshift Query Editor v2 zu verwenden, um die Aktualisierung zu planen. Weitere Informationen finden Sie unter [Planen einer Abfrage mit dem Abfrage-Editor v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-schedule-query.html). | Ingenieur für Migration | 

### Quick Sight mit Daten in Amazon Redshift Connect
<a name="connect-quick-sight-to-data-in-rs"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Quick Sight ein. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html), um Quick Sight einzurichten. | Ingenieur für Migration | 
| Richten Sie eine sichere Verbindung zwischen Quick Sight und Amazon Redshift ein. | Gehen Sie wie folgt vor, um eine sichere Verbindung zwischen Quick Sight und Amazon Redshift einzurichten[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Migrationsingenieur | 
| Erstellen Sie einen Datensatz für Quick Sight. | Gehen Sie wie folgt vor, um einen Datensatz für Quick Sight aus Amazon Redshift zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Migrationsingenieur | 
| Treten Sie dem Datensatz bei. | Um Analysen in Quick Sight zu erstellen, verbinden Sie die beiden Tabellen, indem Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/joining-data.html#create-a-join) folgen.Wählen **Sie im Bereich Join-Konfiguration** für **Verbindungstyp** die Option **Left** aus. Verwenden **Sie unter Join-Klauseln** die Option`memberid from member_plans = memberid from members_details`. | Ingenieur für Migration | 

### Gewinnen Sie mithilfe von Amazon Q in Quick Sight Geschäftseinblicke aus den Mainframe-Daten
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Amazon Q in Quick Sight ein. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/generative-bi-get-started.html), um die generative BI-Funktion von Amazon Q in Quick Sight einzurichten. | Migrationsingenieur | 
| Analysieren Sie Mainframe-Daten und erstellen Sie ein visuelles Dashboard. | Gehen Sie wie folgt vor, um Ihre Daten in Quick Sight zu analysieren und zu visualisieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html)Wenn Sie fertig sind, können Sie Ihr Dashboard veröffentlichen, um es mit anderen in Ihrer Organisation zu teilen. Beispiele finden Sie unter *Visuelles Mainframe-Dashboard* im Abschnitt [Zusätzliche Informationen](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Ingenieur für Migration | 

### Erstellen Sie mit Amazon Q in Quick Sight eine Data Story aus Mainframe-Daten
<a name="create-a-data-story-with-qdev-in-quick-sight-from-mainframe-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Datenstory. | Erstellen Sie eine Datenstory, um die Erkenntnisse aus der vorherigen Analyse zu erläutern, und geben Sie eine Empfehlung zur Erhöhung der präventiven Impfungen für Mitglieder ab:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Ingenieur für Migration | 
| Sehen Sie sich die generierte Datenstory an. | Um die generierte Datenstory anzuzeigen, wählen Sie diese Story auf der Seite **Data Stories aus**. | Ingenieur für Migration | 
| Bearbeiten Sie eine generierte Datenstory. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html), um die Formatierung, das Layout oder die visuelle Darstellung in einer Data Story zu ändern. | Ingenieur für Migration | 
| Teilen Sie eine Datenstory. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html), um eine Data Story mit anderen zu teilen. | Ingenieur für Migration | 

## Fehlerbehebung
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Für Quick Sight to Amazon Redshift ist die Datensatzerstellung `Validate Connection` fehlgeschlagen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | 
| Beim Versuch, die Apply Engine auf der EC2 Instance zu starten, wird der folgende Fehler zurückgegeben:`-bash: sqdeng: command not found` | Exportieren Sie den `sqdata` Installationspfad, indem Sie den folgenden Befehl ausführen:<pre>export PATH=$PATH:/usr/sbin:/opt/precisely/di/sqdata/bin</pre> | 
| Beim Versuch, die Apply Engine zu starten, wird einer der folgenden Verbindungsfehler zurückgegeben:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight.html) | Überprüfen Sie den Mainframe-Spool, um sicherzustellen, dass die Controller-Daemon-Jobs ausgeführt werden. | 

## Zugehörige Ressourcen
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-resources"></a>
+ [Generieren Sie Erkenntnisse mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html?did=pg_card&trk=pg_card) (Muster)
+ [Generieren Sie Dateneinblicke mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight](https://youtu.be/F8b7l79p6TM?si=gASuQtFbMVuEm7IJ) (Demo)
+ [AWS Mainframe Modernization - Datenreplikation für IBM z/OS](https://aws.amazon.com/marketplace/pp/prodview-doe2lroefogia?sr=0-4&ref_=beagle&applicationId=AWSMPContessa)
+ [Amazon Redshift Streaming-Aufnahme in eine materialisierte Ansicht](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-streaming-ingestion.html)

## Zusätzliche Informationen
<a name="generate-db2-zos-data-insights-aws-mainframe-modernization-amazon-q-in-quicksight-additional"></a>

**Beispieldateien im Format .ddl**

*members\$1details.ddl*

```
CREATE TABLE MEMBER_DTLS (
memberid INTEGER NOT NULL,
member_name VARCHAR(50),
member_type VARCHAR(20),
age INTEGER,
gender CHAR(1),
email VARCHAR(100),
region VARCHAR(20)
);
```

*member\$1plans.ddl*

```
CREATE TABLE MEMBER_PLANS (
memberid INTEGER NOT NULL,
medical_plan CHAR(1),
dental_plan CHAR(1),
vision_plan CHAR(1),
preventive_immunization VARCHAR(20)
);
```

**Beispiel für eine .sqd-Datei**

**`<kafka topic name>`**Ersetzen Sie es durch den Namen Ihres Amazon MSK-Themas.

*script.sqd*

```
-- Name: DB2ZTOMSK: DB2z To MSK JOBNAME DB2ZTOMSK;REPORT EVERY 1;OPTIONS CDCOP('I','U','D');-- Source Descriptions
JOBNAME DB2ZTOMSK;
REPORT EVERY 1;
OPTIONS CDCOP('I','U','D');

-- Source Descriptions 
BEGIN GROUP DB2_SOURCE; 
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_details.ddl AS MEMBER_DTLS;
DESCRIPTION DB2SQL /var/precisely/di/sqdata/apply/DB2ZTOMSK/ddl/mem_plans.ddl AS MEMBER_PLANS; 
END GROUP;
-- Source Datastore 
DATASTORE cdc://<zos_host_name>/DB2ZTOMSK/DB2ZTOMSK
OF UTSCDC 
AS CDCIN 
DESCRIBED BY GROUP DB2_SOURCE ;
-- Target Datastore(s)
DATASTORE 'kafka:///<kafka topic name>/key'
OF JSON
AS TARGET
DESCRIBED BY GROUP DB2_SOURCE;
PROCESS INTO TARGET
SELECT
{
REPLICATE(TARGET)
}
FROM CDCIN;
```

**Visuelles Mainframe-Dashboard**

Das folgende Datenbild wurde von Amazon Q in Quick Sight für die Analysefrage erstellt `show member distribution by region`*.*

![\[Der Nordosten und der Südwesten haben 8 Mitglieder, der Südwesten hat 5 Mitglieder, der Mittlere Westen hat 4 Mitglieder.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/b40a784c-c1fc-444b-b6df-8bd1f7a6abaa.png)


Das folgende Datenbild wurde von Amazon Q in Quick Sight für die Frage erstellt`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Der Südosten zeigt 6, der Südwesten zeigt 5 und der Mittlere Westen zeigt 4.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8a95da3c-df4a-458b-9cfe-44e34f80a235.png)


**Ausgabe von Data Story**

Die folgenden Screenshots zeigen Abschnitte der Data Story, die von Amazon Q in Quick Sight für die Aufforderung erstellt wurde`Build a data story about Region with most numbers of members. Also show the member distribution by age, member distribution by gender. Recommend how to motivate members to complete immunization. Include 4 points of supporting data for this pattern`.

In der Einleitung wird in der Datenstory empfohlen, die Region mit den meisten Mitgliedern auszuwählen, um die größtmögliche Wirkung der Impfmaßnahmen zu erzielen.

![\[Einführungsbildschirm für Analysen auf der Grundlage geografischer, demografischer Daten und des Alters der Mitglieder.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/40f13957-2db4-42b7-b7a4-a0dd3dad6899.png)


Die Datenstory bietet eine Analyse der Mitgliederzahlen für die vier Regionen. Die Regionen Nordosten, Südwesten und Südosten haben die meisten Mitglieder.

![\[Die Regionen Nordosten und Südwesten haben 8 Mitglieder, Südosten hat 6 Mitglieder und Mittlerer Westen hat 4 Mitglieder.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc6ed0a0-b79c-4397-95ac-a2fc4c87482a.png)


Die Datenstory enthält eine Analyse der Mitglieder nach Alter.

![\[Die Grafik zeigt, dass sich die Mitgliederbasis eher jüngeren Erwachsenen und Erwachsenen mittleren Alters zuwendet.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/8c56f1ec-3a2e-47a6-bbc4-3631782aa333.png)


Die Datengeschichte konzentriert sich auf Impfmaßnahmen im Mittleren Westen.

![\[Empfehlung für eine Kampagne zur persönlichen Öffentlichkeitsarbeit und für regionale Herausforderungen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/84a647e8-c7d5-4637-94f0-03a611f899b3.png)


![\[Fortsetzung der Datenanalyse mit erwarteten Ergebnissen und Schlußfolgerungen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/18e72bcb-1b9a-406a-8220-83aca7743ad2/images/fc9094fc-2a20-485d-b238-e5e4ec70f1d3.png)


## Anlagen
<a name="attachments-18e72bcb-1b9a-406a-8220-83aca7743ad2"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/18e72bcb-1b9a-406a-8220-83aca7743ad2/attachments/attachment.zip)

# Generieren Sie Dateneinblicke mithilfe AWS Mainframe Modernization von Amazon Q in Quick Sight
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight"></a>

*Shubham Roy, Roshna Razack und Santosh Kumar Singh, Amazon Web Services*

## Zusammenfassung
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-summary"></a>

Hinweis: AWS Mainframe Modernization Der Service (Managed Runtime Environment-Erlebnis) steht Neukunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Wenn Ihr Unternehmen geschäftskritische Daten in einer Mainframe-Umgebung hostet, ist es entscheidend, Erkenntnisse aus diesen Daten zu gewinnen, um Wachstum und Innovation voranzutreiben. Durch die Erschließung von Mainframe-Daten können Sie schnellere, sichere und skalierbare Business Intelligence aufbauen, um datengestützte Entscheidungen, Wachstum und Innovation in der Amazon Web Services ()AWS Cloud zu beschleunigen.

Dieses Muster bietet eine Lösung für die Generierung von Geschäftseinblicken und die Erstellung gemeinsam nutzbarer Geschichten aus Mainframe-Daten mithilfe der [AWS Mainframe Modernization Dateiübertragung](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) mit BMC und [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) in Quick Sight. Mainframe-Datensätze werden mithilfe der AWS Mainframe Modernization Dateiübertragung mit BMC an [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) übertragen. Eine AWS Lambda Funktion formatiert die Mainframe-Datendatei und bereitet sie für das Laden in Quick Sight vor.

Sobald die Daten in Quick Sight verfügbar sind, können Sie mit [Amazon Q](https://docs.aws.amazon.com/quicksight/latest/user/quicksight-gen-bi.html) in Quick Sight Aufforderungen in natürlicher Sprache verwenden, um Zusammenfassungen der Daten zu erstellen, Fragen zu stellen und Datenstorys zu generieren. Sie müssen keine SQL-Abfragen schreiben oder ein Business Intelligence (BI) -Tool erlernen.

**Geschäftlicher Kontext**

Dieses Muster stellt eine Lösung für Anwendungsfälle von Mainframe-Datenanalysen und Datenerkenntnissen dar. Mithilfe des Musters erstellen Sie ein visuelles Dashboard für die Daten Ihres Unternehmens. Um die Lösung zu demonstrieren, verwendet dieses Muster ein Gesundheitsunternehmen, das seinen Mitgliedern in den USA medizinische, zahnärztliche und augenärztliche Pläne anbietet. In diesem Beispiel werden demografische Daten und Versicherungsinformationen der Mitglieder in den Mainframe-Datensätzen gespeichert. Das visuelle Dashboard zeigt Folgendes:
+ Verteilung der Mitglieder nach Regionen
+ Verteilung der Mitglieder nach Geschlecht
+ Verteilung der Mitglieder nach Alter
+ Verteilung der Mitglieder nach Tariftyp
+ Mitglieder, die die Schutzimpfung noch nicht abgeschlossen haben

Nachdem Sie das Dashboard erstellt haben, generieren Sie eine Datenstory, die die Erkenntnisse aus der vorherigen Analyse erklärt. Die Datenstory enthält Empfehlungen zur Erhöhung der Zahl der Mitglieder, die präventive Impfungen abgeschlossen haben.

## Voraussetzungen und Einschränkungen
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Mainframe-Datensätze mit Geschäftsdaten
+ Zugriff auf die Installation eines File Transfer Agents auf dem Mainframe

**Einschränkungen**
+ Ihre Mainframe-Datendatei sollte in einem der von Quick Sight unterstützten Dateiformate vorliegen. Eine Liste der unterstützten Dateiformate finden Sie unter [Unterstützte Datenquellen](https://docs.aws.amazon.com/quicksuite/latest/userguide/supported-data-sources.html).
+ Dieses Muster verwendet eine Lambda-Funktion, um die Mainframe-Datei in ein von Quick Sight unterstütztes Format zu konvertieren.

## Architektur
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-architecture"></a>

Das folgende Diagramm zeigt eine Architektur zur Generierung von Geschäftseinblicken aus Mainframe-Daten mithilfe von AWS Mainframe Modernization Dateiübertragung mit BMC und Amazon Q in Quick Sight.

![\[Die Beschreibung des Architekturdiagramms folgt dem Diagramm.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/6fe0f1d9-961c-4089-a746-e5b8d5fd6c1e.png)


Das Diagramm zeigt den folgenden Workflow:

1. Ein Mainframe-Datensatz mit Geschäftsdaten wird mithilfe der AWS Mainframe Modernization Dateiübertragung mit BMC an Amazon S3 übertragen.

1. Die Lambda-Funktion konvertiert die Datei, die sich im S3-Bucket des Ziels für die Dateiübertragung befindet, in das CSV-Format (Comma-Separated Values).

1. Die Lambda-Funktion sendet die konvertierte Datei an den S3-Bucket des Quelldatensatzes.

1. Die Daten in der Datei werden von Quick Sight aufgenommen.

1. Benutzer greifen in Quick Sight auf die Daten zu. Sie können Amazon Q in Quick Sight verwenden, um mithilfe von Eingabeaufforderungen in natürlicher Sprache mit den Daten zu interagieren.

## Tools
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-tools"></a>

**AWS-Services**
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [AWS Mainframe Modernization File Transfer mit BMC](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer.html) konvertiert Mainframe-Datensätze und überträgt sie an Amazon S3 für Anwendungsfälle zur Mainframe-Modernisierung, -Migration und Erweiterung.
+ [Amazon Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) ist ein BI-Service auf Cloud-Ebene, mit dem Sie Ihre Daten in einem einzigen Dashboard visualisieren, analysieren und Berichte erstellen können. Dieses Muster verwendet die generativen BI-Funktionen von [Amazon Q in Quick Sight](https://docs.aws.amazon.com/quicksight/latest/user/working-with-quicksight-q.html).
+ [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.

## Best Practices
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-best-practices"></a>
+ [Wenn Sie die AWS Identity and Access Management (IAM-) Rollen für die AWS Mainframe Modernization Dateiübertragung mit BMC und der Lambda-Funktion erstellen, folgen Sie dem Prinzip der geringsten Rechte.](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)
+ Stellen Sie sicher, dass Ihr Quelldatensatz [Datentypen für Quick Sight unterstützt](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html). Wenn Ihr Quelldatensatz Datentypen enthält, die nicht unterstützt werden, konvertieren Sie diese in unterstützte Datentypen. Informationen zu nicht unterstützten Mainframe-Datentypen und deren Konvertierung in Datentypen, die von Amazon Q in Quick Sight unterstützt werden, finden Sie im Abschnitt [Verwandte Ressourcen](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources).

## Epen
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-epics"></a>

### Richten Sie die AWS Mainframe Modernization Dateiübertragung mit BMC ein
<a name="set-up-m2long-file-transfer-with-bmc"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie den File Transfer Agent. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/m2/latest/userguide/m2-agent-installation.html), um den AWS Mainframe Modernization File Transfer Agent zu installieren. | Mainframe-Systemadministrator | 
| Erstellen Sie einen S3-Bucket für die Mainframe-Dateiübertragung. | [Erstellen Sie einen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), um die Ausgabedatei der AWS Mainframe Modernization Dateiübertragung mit BMC zu speichern. Im Architekturdiagramm ist dies der Ziel-Bucket für die Dateiübertragung. | Ingenieur für Migration | 
| Erstellen Sie den Endpunkt für die Datenübertragung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Spezialist AWS AWS-Mainframe-Modernisierung | 

### Konvertieren Sie die Mainframe-Dateinamenerweiterung für die Quick Sight-Integration
<a name="convert-the-mainframe-file-name-extension-for-quick-sight-integration"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen S3-Bucket. | [Erstellen Sie einen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) für die Lambda-Funktion, um die konvertierte Mainframe-Datei von der Quelle in den endgültigen Ziel-Bucket zu kopieren. | Ingenieur für Migration | 
| Erstellen Sie eine Lambda-Funktion. | Gehen Sie wie folgt vor, um eine Lambda-Funktion zu erstellen, die die Dateierweiterung ändert und die Mainframe-Datei in den Ziel-Bucket kopiert:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingenieur für Migration | 
| Erstellen Sie einen Amazon S3 S3-Trigger, um die Lambda-Funktion aufzurufen. | Gehen Sie wie folgt vor, um einen Trigger zu konfigurieren, der die Lambda-Funktion aufruft:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Weitere Informationen finden Sie unter [Tutorial: Verwenden eines Amazon S3-Auslösers zum Aufrufen einer Lambda-Funktion](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html). | Leiter der Migration | 
| Stellen Sie IAM-Berechtigungen für die Lambda-Funktion bereit. | Für den Zugriff der Lambda-Funktion auf die S3-Buckets des Dateiübertragungsziels und des Quelldatensatzes sind IAM-Berechtigungen erforderlich. Aktualisieren Sie die Richtlinie, die mit der Lambda-Funktionsausführungsrolle verknüpft ist, indem Sie den Ziel-S3-Bucket**** für die Dateiübertragung `s3:GetObject` und `s3:DeleteObject`**** den `s3:PutObject` Zugriff auf den S3-Bucket des Quelldatensatzes zulassen und gewähren.Weitere Informationen finden Sie im**** Abschnitt [Erstellen einer Berechtigungsrichtlinie](https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example.html#with-s3-example-create-policy) in *Tutorial: Verwenden eines Amazon S3 S3-Triggers zum Aufrufen einer Lambda-Funktion*. | Leiter der Migration | 

### Definieren Sie eine Mainframe-Datenübertragungsaufgabe
<a name="define-a-mainframe-data-transfer-task"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Übertragungsaufgabe, um die Mainframe-Datei in den S3-Bucket zu kopieren. | [Folgen Sie den Anweisungen in der Dokumentation, um eine Mainframe-Dateiübertragungsaufgabe zu erstellen.AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html)**Geben Sie die **Quellcodepage-Kodierung auf IBM1** **047** und die **Ziel-Codepage-Kodierung auf UTF-8** an.** | Ingenieur für Migration | 
| Überprüfen Sie die Übertragungsaufgabe. | Folgen Sie den Anweisungen in der [AWS Mainframe Modernization Dokumentation](https://docs.aws.amazon.com/m2/latest/userguide/filetransfer-transfer-tasks.html#filetransfer-ts-view-console), um zu überprüfen, ob die Datenübertragung erfolgreich war. Vergewissern Sie sich, dass sich die Mainframe-Datei im Ziel-S3-Bucket für die Dateiübertragung befindet. | Leiter der Migration | 
| Überprüfen Sie die Lambda-Kopierfunktion. | Stellen Sie sicher, dass die Lambda-Funktion initiiert wurde und dass die Datei mit der Erweiterung.csv in den S3-Bucket des Quelldatensatzes kopiert wurde.Die von der Lambda-Funktion erstellte .csv-Datei ist die Eingabedatendatei für Quick Sight. Beispieldaten finden Sie in der `Sample-data-member-healthcare-APG` Datei im Abschnitt [Anlagen](#attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68). | Leiter der Migration | 

### Quick Sight mit den Mainframe-Daten Connect
<a name="connect-quick-sight-to-the-mainframe-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Quick Sight ein. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html), um Quick Sight einzurichten. | Leiter der Migration | 
| Erstellen Sie einen Datensatz für Quick Sight. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/create-a-data-set-s3.html), um einen Datensatz für Quick Sight zu erstellen. Die Eingabedatendatei ist die konvertierte Mainframe-Datei, die bei der Definition der Mainframe-Datenübertragungsaufgabe erstellt wurde. | Leiter der Migration | 

### Gewinnen Sie mithilfe von Amazon Q in Quick Sight Geschäftseinblicke aus den Mainframe-Daten
<a name="get-business-insights-from-the-mainframe-data-by-using-qdev-in-quick-sight"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Amazon Q in Quick Sight ein. | Für diese Funktion ist die Enterprise Edition erforderlich. Gehen Sie wie folgt vor, um Amazon Q in Quick Sight einzurichten:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Leiter der Migration | 
| Analysieren Sie Mainframe-Daten und erstellen Sie ein visuelles Dashboard. | Gehen Sie wie folgt vor, um Ihre Daten in Quick Sight zu analysieren und zu visualisieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html)Wenn Sie fertig sind, können Sie Ihr Dashboard veröffentlichen, um es mit anderen in Ihrer Organisation zu teilen. Beispiele finden Sie unter *Visuelles Mainframe-Dashboard* im Abschnitt [Zusätzliche Informationen](#generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional). | Ingenieur für Migration | 

### Erstellen Sie mit Amazon Q in Quick Sight aus den Mainframe-Daten eine Datenstory
<a name="create-a-data-story-with-qdev-in-quick-sight-from-the-mainframe-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Datenstory. | Erstellen Sie eine Datenstory, um die Erkenntnisse aus der vorherigen Analyse zu erläutern, und geben Sie eine Empfehlung zur Erhöhung der präventiven Impfungen für Mitglieder ab:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | Ingenieur für Migration | 
| Sehen Sie sich die generierte Datenstory an. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-view.html), um die generierte Datenstory anzusehen. | Leitung der Migration | 
| Bearbeiten Sie eine generierte Datenstory. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-edit.html), um die Formatierung, das Layout oder die visuelle Darstellung in einer Data Story zu ändern. | Leiter der Migration | 
| Teilen Sie eine Datenstory. | Folgen Sie den Anweisungen in der [AWS Dokumentation](https://docs.aws.amazon.com/quicksight/latest/user/working-with-stories-share.html), um eine Data Story mit anderen zu teilen. | Ingenieur für Migration | 

## Fehlerbehebung
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Die Mainframe-Dateien oder Datensätze, die in die **Suchkriterien** für Datensätze für die **Aufgabe Übertragung bei AWS Mainframe Modernization Dateiübertragung mit BMC erstellen** eingegeben wurden, konnten nicht gefunden werden. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight.html) | 

## Zugehörige Ressourcen
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-resources"></a>

Um Mainframe-Datentypen wie [PACKED-DECIMAL (COMP-3) oder BINARY (COMP](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-packed-decimal-comp-3) [oder COMP-4) in einen von Quick Sight](https://www.ibm.com/docs/en/cobol-zos/6.3?topic=v6-binary-comp-comp-4) unterstützten [Datentyp](https://docs.aws.amazon.com/quicksight/latest/user/supported-data-types-and-values.html) zu konvertieren, verwenden Sie die folgenden Muster:
+ [EBCDIC-Daten mithilfe von Python in ASCII umwandeln und entpacken AWS](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-and-unpack-ebcdic-data-to-ascii-on-aws-by-using-python.html)
+ [Konvertieren Sie Mainframe-Dateien vom EBCDIC-Format in das durch Zeichen getrennte ASCII-Format in Amazon S3 mit AWS Lambda](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/convert-mainframe-files-from-ebcdic-format-to-character-delimited-ascii-format-in-amazon-s3-using-aws-lambda.html)

## Zusätzliche Informationen
<a name="generate-data-insights-by-using-aws-mainframe-modernization-and-amazon-q-in-quicksight-additional"></a>

**S3 .py CopyLambda**

Der folgende Python-Code wurde mithilfe einer Aufforderung mit Amazon Q in einer IDE generiert:

```
#Create a lambda function triggered by S3. display the S3 bucket name and key
import boto3
s3 = boto3.client('s3')
def lambda_handler(event, context):
print(event)
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print(bucket, key)
#If key starts with object_created, skip copy, print "copy skipped". Return lambda with key value.
if key.startswith('object_created'):
print("copy skipped")
return {
'statusCode': 200,
'body': key
}
# Copy the file from the source bucket to the destination bucket. Destination_bucket_name = 'm2-filetransfer-final-opt-bkt'. Destination_file_key = 'healthdata.csv'
copy_source = {'Bucket': bucket, 'Key': key}
s3.copy_object(Bucket='m2-filetransfer-final-opt-bkt', Key='healthdata.csv', CopySource=copy_source)
print("file copied")
#Delete the file from the source bucket.
s3.delete_object(Bucket=bucket, Key=key)
return {
'statusCode': 200,
'body': 'Copy Successful'
}
```

**Visuelles Mainframe-Dashboard**

Das folgende Datenbild wurde von Amazon Q in Quick Sight für die Analysefrage erstellt `show member distribution by region`*.*

![\[Diagramm mit den Mitgliederzahlen für den Südwesten, Mittleren Westen, Nordosten und Südosten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/e5c1d049-407d-42ff-bc51-28f9d2b24d4f.png)


Das folgende Datenbild wurde von Amazon Q in Quick Sight für die Frage erstellt`show member distribution by Region who have not completed preventive immunization, in pie chart`.

![\[Pie chart showing preventive immunization incompletion by region: Southeast 40%, Southwest 33%, Midwest 27%.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/47efa1c1-54c9-47cc-b668-416090021d34.png)


**Ausgabe von Data Story**

Die folgenden Screenshots zeigen Abschnitte der Data Story, die von Amazon Q in Quick Sight für die Aufforderung erstellt wurde. `Build a data story about Region with most numbers of members. Also show the member distribution by medical plan, vision plan, dental plan. Recommend how to motivate members to complete immunization. Include 4 points of supporting data.`

In der Einleitung wird in der Datenstory empfohlen, die Region mit den meisten Mitgliedern auszuwählen, um die größtmögliche Wirkung der Impfmaßnahmen zu erzielen.

![\[Einführungsseite für eine Datenstory, die sich auf die Abschlussquoten der Impfungen konzentriert.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/4612fcc7-51fd-48a5-bc58-b6b0aa9b0ef3.png)


Die Datenstory enthält eine Analyse der Mitgliederzahlen für die drei wichtigsten Regionen und nennt den Südwesten als die Region, in der der Schwerpunkt auf Impfmaßnahmen liegt.

![\[Pie chart showing member distribution by region, with Southwest and Northeast leading at 31% each.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/53572abb-06c6-4dd7-add4-8fad7e9bfa68/images/30d3b56b-3b92-4748-9cef-a73ff9339fee.png)


**Anmerkung**  
Die Regionen Südwesten und Nordosten haben jeweils acht Mitglieder. Im Südwesten gibt es jedoch mehr Mitglieder, die nicht vollständig geimpft sind, sodass er mehr Potenzial hat, von Initiativen zur Erhöhung der Impfraten zu profitieren.

## Anlagen
<a name="attachments-53572abb-06c6-4dd7-add4-8fad7e9bfa68"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/53572abb-06c6-4dd7-add4-8fad7e9bfa68/attachments/attachment.zip)

# Implementieren Sie die auf Microsoft Entra ID basierende Authentifizierung in einer modernisierten Mainframe-Anwendung von AWS Blu Age
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application"></a>

*Vishal Jaswani und Rimpy Tewani, Amazon Web Services*

## Zusammenfassung
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-summary"></a>

**Anmerkung**  
AWS Mainframe Modernization Service (Managed Runtime Environment Experience) steht Neukunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Mainframe-Anwendungen, die mithilfe von Refactoring-Mustern modernisiert werden, wie z. B. die von [AWS Mainframe Modernization Refactor mit AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html), erfordern eine sorgfältige Integration der Authentifizierungsmechanismen in die neue Anwendungsarchitektur. Diese Integration wird in der Regel erst nach der Modernisierung angegangen. Die Aufgabe kann komplex sein und beinhaltet häufig die Migration oder Externalisierung vorhandener Authentifizierungssysteme, um sie an moderne Sicherheitsstandards und Cloud-native Praktiken anzupassen. Entwickler müssen überlegen, wie sie die Authentifizierung effektiv implementieren können, während sie gleichzeitig die Einschränkungen der Laufzeitumgebung und der Bibliotheken der modernisierten Anwendung einhalten. AWS Bietet nach der Modernisierung Möglichkeiten, wie Sie Ihren modernen AWS Blu-Age-Code einfacher in Identitäts- und Zugriffsverwaltungssysteme wie [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) und [Microsoft Entra ID](https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-id) (früher bekannt als Azure AD) integrieren können.

Dieses Muster erklärt, wie Sie einen Authentifizierungsmechanismus in Ihrer modernisierten Anwendung implementieren können, wenn der Authentifizierungsanbieter Microsoft Entra ID ist, ohne Zeit für Recherchen und Tests aufzuwenden. Das Muster bietet:
+ Praxiserprobte und relevante Angular-Bibliotheken aus der Microsoft Authentication Library (MSAL) und anderen Microsoft Entra ID-Dokumentationen, die für die Authentifizierungsimplementierung unerlässlich sind. 
+ Konfigurationen, die auf der AWS Blu Age Runtime erforderlich sind, um Spring Security mithilfe von 2.0 zu aktivieren. OAuth 
+ Eine Bibliothek, die die Identitäten authentifizierter Benutzer erfasst und an die AWS Blu Age Runtime weitergibt.
+ Sicherheitsmaßnahmen, deren Implementierung wir empfehlen.
+ Tipps zur Fehlerbehebung für häufig auftretende Probleme mit dem Microsoft Entra ID-Setup.

**Anmerkung**  
Dieses Muster verwendet die AWS Blu OAuth Age-Erweiterungsbibliothek, die Kunden im Rahmen ihrer [AWS Professional Services-Vereinbarung](https://aws.amazon.com/professional-services/) zur Verfügung gestellt wird. Diese Bibliothek ist nicht Teil der AWS Blu Age Runtime.

## Voraussetzungen und Einschränkungen
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-prereqs"></a>

**Voraussetzungen**
+ Eine modernisierte Anwendung, die mit den Refactoring-Tools für die Mainframe-Modernisierung von AWS Blu Age entwickelt wurde. Dieses Muster dient [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)als Beispiel für eine Open-Source-Mainframe-Anwendung.
+ Die AWS Blu OAuth Age-Erweiterungsbibliothek, die Ihnen das AWS Blu Age-Team im Rahmen Ihres Engagements bei [AWS Professional Services](https://aws.amazon.com/professional-services/) zur Verfügung stellt.
+ Aktiv AWS-Konto für die Bereitstellung und das Testen der modernisierten Anwendung.
+ Vertrautheit mit AWS Blu Age-Konfigurationsdateien und den Grundlagen von Microsoft Entra ID.

**Einschränkungen**
+ Dieses Muster deckt die OAuth 2.0-Authentifizierung und grundlegende tokenbasierte Autorisierungsabläufe ab. Fortgeschrittene Autorisierungsszenarien und detaillierte Zugriffskontrollmechanismen sind nicht im Anwendungsbereich enthalten.
+ Einige AWS-Services sind nicht in allen verfügbar. AWS-Regionen Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie [AWS-Services unter Nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie unter [Dienstendpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Dienst aus.

**Produktversionen**

Dieses Muster wurde entwickelt unter Verwendung von:
+ AWS Blu Age Runtime Version 4.1.0 (das Muster funktioniert auch mit späteren Versionen, die abwärtskompatibel sind)
+ MSAL-Bibliothek, Version 3.0.23
+ Version 17 des Java-Entwicklungskits (JDK)
+ Winkelversion 16.1

## Architektur
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-architecture"></a>

**Quelltechnologie-Stack**

In typischen Mainframe-Umgebungen wird die Authentifizierung über Benutzerprofile implementiert. Diese Profile identifizieren Benutzer im System, definieren, wer sich anmelden kann, und geben an, welche Funktionen Benutzer mit Systemressourcen ausführen können. Benutzerprofile werden von Sicherheitsbeauftragten oder Sicherheitsadministratoren verwaltet.

**Zieltechnologie-Stack**
+ Microsoft Entra ID
+ Modernisiertes Backend auf Basis von Java Spring Boot
+ AWS Blue Age Runtime
+ Spring Security mit OAuth 2.0
+ Angular Single-Page-Anwendung (SPA)

**Zielarchitektur**

AWS Blu Age Runtime unterstützt standardmäßig die OAuth 2.0-basierte Authentifizierung, sodass das Pattern diesen Standard zum Schutz des Backends APIs verwendet.

Das folgende Diagramm veranschaulicht den Prozessablauf.

**Anmerkung**  
Das Diagramm enthält Amazon Aurora als Beispiel für die Datenbankmodernisierung, obwohl Aurora nicht in den Schritten für dieses Muster enthalten ist.

![\[Prozessablauf für die Entra ID-basierte Authentifizierung für eine AWS Blu Age Age-Anwendung.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/e51f24b8-178f-4974-aae9-23a0cc8540f5/images/0fdcdb22-9e46-4b02-86b2-395cba3e2f81.png)


Wobei:

1. Ein Benutzer versucht, sich mit Microsoft Entra ID zu authentifizieren.

1. Microsoft Entra ID gibt Aktualisierungs-, Zugriffs- und ID-Tokens zurück, die die Anwendung bei nachfolgenden Aufrufen verwendet.

1. Der MSAL-Interceptor fügt das Zugriffstoken in den `Authorization` Header einer HTTPS-Anfrage ein, um die Blu Age Runtime AWS aufzurufen.

1. Die AWS Blu `extension-oauth` Age-Bibliothek extrahiert die Benutzerinformationen mithilfe einer AWS Blu Age Runtime-Konfigurationsdatei (`application-main.yml`) aus dem Header und platziert diese Informationen in einem `SharedContext` Objekt, sodass die Geschäftslogik sie verarbeiten kann.
**Anmerkung**  
`SharedContext`ist eine von AWS Blu Age bereitgestellte Laufzeitkomponente, die den Anwendungskontext und die Statusinformationen in der gesamten modernisierten Anwendung verwaltet. Weitere Informationen zu den Komponenten und Updates von AWS Blu Age Runtime finden Sie in den [Versionshinweisen zu AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html) in der AWS Mainframe Modernization Dokumentation. Weitere Informationen zur `application-main.yml` Datei finden Sie in der AWS Mainframe Modernization Dokumentation unter [Konfiguration für AWS Blu Age Runtime einrichten](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html).

1. Die AWS Blu Age Runtime prüft, ob das Token vorhanden ist. 

   1. Wenn das Token vorhanden ist, überprüft es die Gültigkeit des Tokens, indem es mit der Microsoft Entra ID kommuniziert. 

   1. Wenn das Token nicht vorhanden ist, gibt die AWS Blu Age Runtime einen Fehler mit dem HTTP-Statuscode 403 zurück.

1. Wenn das Token gültig ist, ermöglicht die AWS Blue Age Runtime die Fortsetzung der Geschäftslogik. Wenn das Token ungültig ist, gibt die AWS Blu Age Runtime einen Fehler mit dem HTTP-Statuscode 403 zurück.

**OAuth 2.0-Arbeitsablauf**

Ein allgemeines Diagramm des OAuth 2.0-Workflows finden Sie in der [Microsoft Entra-Dokumentation](https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow#protocol-details).

## Tools
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools"></a>

**AWS-Services**

[AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html)stellt Tools und Ressourcen bereit, die Sie bei der Planung und Implementierung der Migration und Modernisierung von Mainframes zu AWS verwalteten Laufzeitumgebungen unterstützen. Sie können die von AWS Blu Age bereitgestellten Refactoring-Funktionen dieses Services nutzen, um Ihre älteren Mainframe-Anwendungen zu konvertieren und zu modernisieren.

**Anmerkung**  
AWS Mainframe Modernization Der Service (Managed Runtime Environment Experience) steht neuen Kunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

**Code-Repository**

Die CardDemo Anwendung wurde aktualisiert, um die Integration mit Microsoft Entra ID zu demonstrieren. Sie können auf den Code [für dieses Muster aus dem GitHub Repository](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app) zugreifen.

**Backend-Konfiguration**

Dieses Muster erfordert Änderungen an der `application-main.yml`**** Konfigurationsdatei, um Spring Security mithilfe von OAuth 2.0 in der Backend-Anwendung zu aktivieren.  Die `.yml` Datei sieht so aus:

```
gapwalk-application.security: enabled
gapwalk-application:
  security: 
    identity: oauth
    issuerUri: ${issuerUrl}
    claim:
      claims:
        -
          claimName: upn
          claimMapValue: username
spring:
  autoconfigure:
    exclude:
     - org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration
     - org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration
  security:
    oauth2:
      client:
        registration: 
          azure:
            client-id: {clientId}
            client-secret: ${clientSecret}
            provider: azure
            authorization-grant-type: authorization_code
            redirect-uri: ${redirectUri}
            scope: openid
           
        provider:
          azure:
            authorization-uri: ${gapwalk-application.security.issuerUri}/oauth2/v2.0/authorize
            token-uri:  ${gapwalk-application.security.issuerUri}/oauth2/v2.0/token
            jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
      resourceserver:
        jwt:
          jwk-set-uri: ${gapwalk-application.security.issuerUri}/discovery/v2.0/keys
```

**AWS Blu OAuth Age-Erweiterungsfilterbibliothek**

Die AWS Blu OAuth Age-Erweiterungsbibliothek wird vom AWS Blu Age-Team während Ihres Aufenthalts bei [AWS Professional Services](https://aws.amazon.com/professional-services/) bereitgestellt.

Diese Bibliothek liest die `claim.claims` Konfiguration in der `application-main.yml` Datei, die im vorherigen Codeblock gezeigt wurde. Diese Konfiguration ist eine Liste. Jedes Element in der Liste bietet zwei Werte: `claimName` und`claimMapValue`. `claimName`steht für einen Schlüsselnamen in einem vom Frontend gesendeten JSON Web Token (JWT) und `claimMapValue` ist der Name des Schlüssels in. `SharedContext` Wenn Sie beispielsweise die Benutzer-ID im Backend erfassen möchten, legen `claimName` Sie den Schlüsselnamen im JWT fest, der die von Microsoft bereitgestellte Entra-ID enthält, und legen Sie den Schlüsselnamen fest, `claimMapValue` um die Benutzer-ID im Backend-Code abzurufen. `userId`

Wenn Sie beispielsweise angeben, können Sie `UserId` den folgenden Code verwenden`claimMapValue`, um die Benutzer-ID zu extrahieren:

```
SharedContext.get().getValue("userId", [UserId]);
```

## Best Practices
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-best-practices"></a>

Berücksichtigen Sie bei der Implementierung dieses Musters die folgenden wichtigen Sicherheitsüberlegungen.

**Wichtig**  
Dieses Muster bietet eine Grundlage für die Integration der Authentifizierung. Wir empfehlen Ihnen, zusätzlich zu den in diesem Abschnitt beschriebenen Sicherheitsmaßnahmen auf der Grundlage Ihrer Geschäftsanforderungen zu ergreifen, bevor Sie das Produkt in der Produktion einsetzen.
+ **AWS Sicherheit der Konfiguration.**Verschieben Sie sensible Konfigurationswerte von `application-main.yml` nach AWS Secrets Manager. Konfigurieren Sie beispielsweise die folgenden Eigenschaften mithilfe von Secrets Manager:

  ```
  security:
      oauth2:
        client:
          registration: 
            azure:
              client-id: {clientId}
              client-secret: ${clientSecret}
  ```

  Weitere Informationen darüber, wie Sie Secrets Manager zur Konfiguration von AWS Blu Age-Parametern verwenden können, finden Sie in der AWS Mainframe Modernization Dokumentation unter [AWS Blu Age Runtime Secrets](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config-app-secrets.html).
+ **Schutz der Runtime-Umgebung.** Konfigurieren Sie die modernisierte Anwendungsumgebung mit geeigneten AWS Sicherheitskontrollen:

  ```
  server: 
    tomcat: 
      remoteip: 
       protocol-header: X-Forwarded-Proto 
       remote-ip-header: X-Forwarded-For 
    forward-headers-strategy: NATIVE
  ```
+ ** CloudWatch Amazon-Protokollierung.** Erwägen Sie, die Datei hinzuzufügen`logback-spring.xml to src/main/resources`:

  ```
  <configuration> 
   <appender name="CLOUDWATCH" class="com.amazonaws.services.logs.logback.CloudWatchAppender">  
     <logGroup>/aws/bluage/application</logGroup> 
     <logStream>${AWS_REGION}-${ENVIRONMENT}</logStream> 
     <layout> 
      <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> 
     </layout> 
   </appender> 
  
   <root level="INFO"> 
   <appender-ref ref="CLOUDWATCH"/> 
   </root> 
  </configuration>
  ```

  Informationen zur Aktivierung der Ablaufverfolgung mit CloudWatch finden Sie in der CloudWatch Dokumentation unter [Aktivieren der Ablaufverfolgung zur Protokollierung der Korrelation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html).
+ **Konfiguration und Handhabung von Token.** Konfigurieren Sie die Token-Gültigkeitsdauer in Microsoft Entra ID entsprechend Ihren Sicherheitsanforderungen. Legen Sie fest, dass Zugriffstoken innerhalb von 1 Stunde ablaufen, und aktualisieren Sie Tokens so, dass sie innerhalb von 24 Stunden ablaufen. Stellen Sie in der AWS Blu Age Runtime-Konfiguration (`application-main.yml`) sicher, dass die JWT-Validierung ordnungsgemäß mit den exakten Aussteller-URI- und Zielgruppenwerten aus Ihrer Entra ID-Anwendungsregistrierung konfiguriert ist.

  Wenn ein Token abläuft und aktualisiert wird:

  1. Der Error Interceptor der Angular-Anwendung verarbeitet die 401-Antwort, indem er über MSAL ein neues Token erhält.

  1. Das neue Token wird mit der nachfolgenden Anfrage gesendet.

  1. Der OAuth Filter der AWS Blu Age Runtime validiert das neue Token und aktualisiert es automatisch `SharedContext` mit den aktuellen Benutzerinformationen. Dadurch wird sichergestellt, dass die Geschäftslogik über `SharedContext.get().getValue()` Aufrufe weiterhin Zugriff auf den gültigen Benutzerkontext hat.

  Weitere Informationen zu den AWS Blu Age Runtime-Komponenten und ihren Updates finden Sie in den [AWS Blu Age-Versionshinweisen](https://docs.aws.amazon.com/m2/latest/userguide/ba-release-notes.html).
+ **AWS Blu Age Runtime-Sicherheit.** Die von AWS Blu Age bereitgestellte `oauth2-ext` Bibliothek muss im richtigen gemeinsamen Verzeichnis (`{app-server-home}/shared/`) mit den richtigen Dateiberechtigungen platziert werden. Stellen Sie sicher, dass die Bibliothek erfolgreich Benutzerinformationen extrahiert, JWTs indem Sie die `SharedContext` Objektpopulation in Ihren Protokollen überprüfen.
+ **Spezifische Anspruchskonfiguration.** Definieren Sie in `application-main.yml` explizit die Ansprüche, die Sie von Microsoft Entra ID benötigen. Um beispielsweise die E-Mail-Adresse und die Rollen des Benutzers zu erfassen, geben Sie Folgendes an:

  ```
  gapwalk-application:
    security:
      claim:
        claims:
          - claimName: upn
            claimMapValue: username
          - claimName: roles
            claimMapValue: userRoles
          - claimName: email
            claimMapValue: userEmail
  ```
+ **Behandlung von Fehlern.** Fügen Sie eine Fehlerbehandlung hinzu, um Authentifizierungsfehler in Ihrer Angular-Anwendung zu beheben; zum Beispiel:

  ```
  @Injectable()
  export class AuthErrorInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
      return next.handle(request).pipe(
        catchError((error: HttpErrorResponse) => {
          if (error.status === 401) {
            // Handle token expiration
            this.authService.login();
          }
          if (error.status === 403) {
            // Handle unauthorized access
            this.router.navigate(['/unauthorized']);
          }
          return throwError(() => error);
        })
      );
    }
  }
  ```
+ **Konfiguration des Sitzungs-Timeouts.** Konfigurieren Sie die Einstellungen für das Sitzungstimeout sowohl in der AWS Blu Age Runtime als auch in der Microsoft Entra ID. Fügen Sie Ihrer Datei beispielsweise den folgenden Code hinzu`application-main.yml`:

  ```
  server:
    servlet:
      session:
        timeout: 3600 # 1 hour in seconds
  ```
+ **MsalGuard.** Sie müssen die MsalGuard Funktion für alle geschützten Routen implementieren, um unbefugten Zugriff zu verhindern. Beispiel:

  ```
  const routes: Routes = [
      { path: '', redirectTo: '/transaction-runner', pathMatch: 'full' },
      { path: 'transaction-runner', component: TransactionRunnerComponent, canActivate:guards },
      { path: 'user-info', component: UserInfoComponent, canActivate:guards },
      { path: 'term/:transid/:commarea', component: TermComponent, canActivate:guards },
  	{ path: 'code', component: TransactionRunnerComponent  }
  ];
  ```

  Routen, die nicht MsalGuard geschützt sind, sind ohne Authentifizierung zugänglich, wodurch möglicherweise vertrauliche Funktionen offengelegt werden. Stellen Sie sicher, dass alle Routen, für die eine Authentifizierung erforderlich ist, die Guards in ihrer Konfiguration enthalten.

## Epen
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-epics"></a>

### Richten Sie eine Microsoft Entra ID ein
<a name="set-up-a-microsoft-entra-id"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie ein Microsoft Azure-Konto ein, um eine Entra-ID zu erstellen. | Optionen und Anweisungen finden Sie auf der [Microsoft Azure-Website](https://azure.microsoft.com/en-us/free/). | App-Developer | 
| Richten Sie in Ihrer Anwendung eine Microsoft Entra ID ein. | [Informationen zum Hinzufügen der Microsoft Entra ID B2C-Authentifizierung (Azure AD B2C) zu Ihrem Angular SPA finden Sie in der Microsoft-Dokumentation.](https://learn.microsoft.com/en-us/azure/active-directory-b2c/enable-authentication-angular-spa-app#add-the-authentication-components) Das heißt:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | App-Developer | 

### Klonen Sie das Repository und stellen Sie Ihren AWS Blu Age-Code bereit
<a name="clone-the-repository-and-deploy-your-aws-blu-age-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Klonen Sie das GitHub Repository, um den für die Authentifizierung erforderlichen Angular-Code zu erhalten. | Führen Sie den folgenden Befehl aus, um das [GitHub Repository](https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app), das mit diesem Muster bereitgestellt wurde, in Ihr lokales aktuelles Arbeitsverzeichnis zu klonen:<pre>git clone https://github.com/aws-samples/sample-microsoft-entra-id-based-auth-in-aws-bluage-modernized-mainframe-app.git</pre> | App-Developer | 
| Stellen Sie den modernisierten AWS Blu-Age-Code auf einem Tomcat-Server bereit, um die Authentifizierung zu implementieren. | Um die lokale Umgebung einzurichten, die Tomcat und den Angular-Entwicklungsserver umfasst, folgen Sie den Installationsschritten, die das AWS Blu Age-Team im Rahmen Ihrer Kundenbindung mit AWS Professional Services bereitgestellt hat. | App-Developer | 

### Erstellen Sie die Authentifizierungslösung
<a name="build-the-authentication-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktivieren Sie die AWS Blu Age Runtime-Sicherheit, um die AWS Blu Age REST-API-Endpunkte zu schützen. | Konfigurieren Sie die `application-main.yml` Datei, die die AWS Blu Age Runtime verwendet, wie folgt. Ein Beispiel für diese Datei finden Sie im Abschnitt [Code-Repository](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) weiter oben in diesem Muster.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | App-Developer | 
| Integrieren Sie den Beispielcode aus Ihrer lokalen Umgebung in Ihre modernisierte Angular-Codebasis von Blu Age. | Informationen darüber, wie Sie das Beispiel in Ihre modernisierte AWS Blu Age-Angular-Codebasis integrieren können, finden Sie im Abschnitt [Code-Repository weiter](#implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-tools) oben in diesem Muster. | App-Developer | 
| Platzieren Sie die `oauth2-ext` Bibliothek im gemeinsam genutzten Verzeichnis. | **Platzieren Sie die `oauth2-ext` Bibliothek im**** gemeinsam genutzten Verzeichnis des Anwendungsservers, sodass Ihre modernisierte **AWS **Blu Age-Anwendung sie verwenden kann.**Führen Sie die folgenden Befehle aus:<pre>cd oauth2-ext/target<br />cp extension-oauth-filter-<version>.jar /{app-server-home}/shared/</pre> | App-Developer | 

### Stellen Sie die Authentifizierungslösung bereit
<a name="deploy-the-authentication-solution"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Frontend-Anwendung bereit. | Führen Sie die folgenden Befehle aus, um die Frontend-Anwendung lokal zu starten:<pre>npm install <br />ng serve --ssl<br />npm start</pre>Durch das Hinzufügen des `--ssl` Flags zum `ng serve` Befehl wird sichergestellt, dass der Entwicklungsserver HTTPS verwendet, das sicherer als andere Protokolle ist und eine bessere Simulation einer Produktionsumgebung ermöglicht. | App-Developer | 
| Starten Sie die Backend-Anwendung. | Starten Sie den Tomcat-Server in Eclipse. | App-Developer | 

### Testen der Anwendung
<a name="test-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie die Anmeldefunktion. | Rufen Sie die lokal bereitgestellte Anwendung unter auf, `http://localhost:4200` um zu überprüfen, ob Benutzer aufgefordert werden, ihre Identität zu bestätigen.HTTP wird hier zu Demonstrationszwecken verwendet. In einer Produktionsumgebung oder einer anderen öffentlich zugänglichen Umgebung müssen Sie aus Sicherheitsgründen HTTPS verwenden. Selbst für die lokale Entwicklung empfehlen wir, dass Sie, wenn möglich, HTTPS einrichten.Die Microsoft-Anmeldeaufforderung sollte angezeigt werden, und Benutzer, die in Microsoft Entra ID konfiguriert sind, sollten auf die Anwendung zugreifen können. | App-Developer | 
| Testen Sie den Autorisierungsheader in der Anfrage. | In den folgenden Schritten wird die [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)Anwendung als Beispiel verwendet. Die Testschritte für andere moderne Anwendungen werden variieren.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application.html) | App-Developer | 
| Testen Sie die Abmeldefunktion. | Wählen Sie **Quit**, um sich abzumelden, und versuchen Sie erneut, auf die Anwendung zuzugreifen. Es sollte eine neue Anmeldeaufforderung angezeigt werden. | App-Developer | 

## Fehlerbehebung
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Das von Microsoft Entra ID ausgegebene Token ist nicht mit der Spring Boot OAuth 2.0-Sicherheit kompatibel. | Eine Lösung für das Problem finden Sie im OAuth Blog unter [Microsoft OAuth Entra ID Flow](https://authguidance.com/azure-ad-troubleshooting/). | 
| Allgemeine Fragen zu Tokens. | [Verwenden Sie die Website https://jwt.io/, um den Inhalt eines JWT-Tokens zu dekodieren und anzuzeigen.](https://jwt.io/) | 

## Zugehörige Ressourcen
<a name="implement-entra-id-authentication-in-aws-blu-age-modernized-mainframe-application-resources"></a>
+ [Informationen zum Refactoring Ihrer Anwendung mithilfe von AWS Blu Age finden Sie in der Dokumentation.AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)
+ Informationen zur Funktionsweise von OAuth 2.0 finden Sie auf der [OAuth 2.0-Website](https://oauth.net/2/).
+ Einen Überblick über die Microsoft Authentication Library (MSAL) finden Sie in der [Microsoft Entra-Dokumentation](https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-overview).
+ Informationen zu Benutzerprofilen auf einem AS/400-System finden Sie im [IBM i (AS400) -Tutorial](https://www.go4as400.com/subsystem-jobs-user-profile-in-as400/jobs.aspx?cid=14).
+ Informationen zum Authentifizierungsablauf OAuth 2.0 und OpenID Connect (OIDC) in der Microsoft Identity Platform finden Sie in der Microsoft [Entra-Dokumentation](https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols).

# Integrieren Sie Stonebranch Universal Controller in AWS Mainframe Modernization
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization"></a>

*Vaidy Sankaran und Pablo Alonso Prieto, Amazon Web Services*

*Robert Lemieux und Hüseyin Gomleksizoglu, Stonebranch*

## Zusammenfassung
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-summary"></a>

Hinweis: AWS Mainframe Modernization Der Service (Managed Runtime Environment Experience) steht Neukunden nicht mehr zur Verfügung. Funktionen, die AWS Mainframe Modernization Service (Managed Runtime Environment-Erfahrung) ähneln, finden Sie unter AWS Mainframe Modernization Service (Self-Managed Experience). Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Mainframe Modernization Verfügbarkeit](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html).

Dieses Muster erklärt, wie die [Workload-Orchestrierung des Stonebranch Universal Automation Center (UAC)](https://www.stonebranch.com/stonebranch-platform/universal-automation-center) in den Mainframe-Modernisierungsservice von [Amazon Web Services (AWS)](https://aws.amazon.com/mainframe-modernization/) integriert wird. Der AWS Mainframe Modernization Service migriert und modernisiert Mainframe-Anwendungen in die AWS-Cloud. Es bietet zwei Muster: [AWS Mainframe Modernization Replatform](https://aws.amazon.com/mainframe-modernization/patterns/replatform/) mit Micro Focus Enterprise-Technologie und [AWS Mainframe Modernization Automated Refactor mit AWS](https://aws.amazon.com/mainframe-modernization/patterns/refactor/?mainframe-blogs.sort-by=item.additionalFields.createdDate&mainframe-blogs.sort-order=desc) Blu Age.  

Stonebranch UAC ist eine Echtzeit-IT-Automatisierungs- und Orchestrierungsplattform. UAC wurde entwickelt, um Jobs, Aktivitäten und Workflows in hybriden IT-Systemen zu automatisieren und zu orchestrieren, von On-Premise bis hin zu AWS. Unternehmenskunden, die Mainframe-Systeme verwenden, stellen auf Cloud-zentrierte, modernisierte Infrastrukturen und Anwendungen um. Die Tools und professionellen Services von Stonebranch erleichtern die Migration vorhandener Scheduler und Automatisierungsfunktionen in die AWS-Cloud.

Wenn Sie Ihre Mainframe-Programme mithilfe des AWS Mainframe Modernization Service in die AWS-Cloud migrieren oder modernisieren, können Sie diese Integration nutzen, um die Batch-Planung zu automatisieren, die Agilität zu erhöhen, die Wartung zu verbessern und die Kosten zu senken.

Dieses Muster enthält Anweisungen für die Integration von [Stonebranch Scheduler](https://www.stonebranch.com/) in Mainframe-Anwendungen, die zur Laufzeit des AWS Mainframe Modernization Service Micro Focus Enterprise migriert wurden. Dieses Muster richtet sich an Lösungsarchitekten, Entwickler, Berater, Migrationsspezialisten und andere Personen, die in den Bereichen Migrationen, Modernisierungen, Betrieb oder tätig sind. DevOps

**Angestrebtes Ergebnis**

Dieses Muster konzentriert sich auf die Erzielung der folgenden Zielergebnisse:
+ Die Möglichkeit, Mainframe-Batch-Jobs, die im AWS Mainframe Modernization Service (Microfocus Runtime) ausgeführt werden, von Stonebranch Universal Controller aus zu planen, zu automatisieren und auszuführen.
+ Überwachen Sie die Batch-Prozesse der Anwendung vom Stonebranch Universal Controller aus.
+ Start/Restart/Rerun/StopBatch-Prozesse automatisch oder manuell vom Stonebranch Universal Controller aus.
+ Rufen Sie die Ergebnisse der Batch-Prozesse für die AWS Mainframe-Modernisierung ab.
+ Erfassen Sie die [ CloudWatchAWS-Protokolle](https://aws.amazon.com/cloudwatch/) der Batch-Jobs in Stonebranch Universal Controller.

## Voraussetzungen und Einschränkungen
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Micro Focus [Bank-Demo-Anwendung](https://d1vi4vxke6c2hu.cloudfront.net/demo/bankdemo_runtime.zip) mit Job Control Language (JCL) -Dateien und einem Batch-Prozess, der in einer AWS Mainframe Modernization Service-Umgebung (Micro Focus Runtime) bereitgestellt wird
+ [Grundkenntnisse zum Erstellen und Bereitstellen einer Mainframe-Anwendung, die auf Micro Focus Enterprise Server läuft](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf)
+ Grundkenntnisse über Stonebranch Universal Controller
+ [Stonebranch-Testlizenz (wenden Sie sich an Stonebranch)](https://www.stonebranch.com/)
+ Windows- oder Linux-Instances von Amazon Elastic Compute Cloud (Amazon EC2) (z. B. xlarge) mit mindestens vier Kernen, 8 GB Arbeitsspeicher und 2 GB Festplattenspeicher
+ Apache Tomcat Version 8.5.x oder 9.0.x
+ Oracle Java Runtime Environment (JRE) oder OpenJDK Version 8 oder 11
+ [Amazon Aurora MySQL-kompatible Edition](https://aws.amazon.com/rds/aurora/)
+ [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/) -Bucket für das Export-Repository
+ [Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) für Agenten Stonebranch Universal Message Service (OMS) -Verbindungen für Hochverfügbarkeit (HA)
+ Installationsdateien für Stonebranch Universal Controller 7.2 Universal Agent 7.2
+ [Vorlage für die Aufgabenplanung](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) von AWS Mainframe Modernization (neueste veröffentlichte Version der ZIP-Datei)

**Einschränkungen**
+ Das Produkt und die Lösung wurden nur mit OpenJDK 8 und 11 getestet und ihre Kompatibilität validiert.
+ Die Aufgabenplanungsvorlage [aws-mainframe-modernization-stonebranch-integration](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) funktioniert nur mit dem AWS Mainframe Modernization Service.
+ Diese Vorlage zur Aufgabenplanung funktioniert nur auf einer Unix-, Linux- oder Windows-Edition von Stonebranch-Agenten.
+ Einige AWS-Services sind nicht in allen AWS-Regionen verfügbar. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie unter [AWS-Services nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie auf der Seite [Service-Endpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Service.

## Architektur
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-architecture"></a>

**Architektur des Zielzustands**

Das folgende Diagramm zeigt die AWS-Beispielumgebung, die für dieses Pilotprojekt erforderlich ist.

![\[Stonebranch UAC interagiert mit der AWS-Mainframe-Modernisierungsumgebung.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4a7bea37-0a5b-4663-902b-9b051e92f0cb.png)


1. Das Stonebranch Universal Automation Center (UAC) umfasst zwei Hauptkomponenten: Universal Controller und Universal Agents. Stonebranch OMS wird als Nachrichtenbus zwischen dem Controller und einzelnen Agenten verwendet.

1. Die Stonebranch UAC-Datenbank wird von Universal Controller verwendet. Die Datenbank kann mit MySQL, Microsoft SQL Server, Oracle oder Aurora MySQL kompatibel sein.

1. AWS Mainframe Modernization Service — Micro Focus-Laufzeitumgebung mit der [bereitgestellten BankDemo Anwendung](https://aws.amazon.com/blogs/aws/modernize-your-mainframe-applications-deploy-them-in-the-cloud/). Die BankDemo Anwendungsdateien werden in einem S3-Bucket gespeichert. Dieser Bucket enthält auch die Mainframe-JCL-Dateien.

1. Stonebranch UAC kann die folgenden Funktionen für den Batchlauf ausführen:

   1. Starten Sie einen Batch-Job mit dem JCL-Dateinamen, der im S3-Bucket vorhanden ist, der mit dem AWS-Mainframe-Modernisierungsservice verknüpft ist.

   1. Rufen Sie den Status des ausgeführten Batch-Jobs ab.

   1. Warten Sie, bis die Batch-Job-Ausführung abgeschlossen ist.

   1. Ruft die Protokolle der Batch-Job-Ausführung ab.

   1. Führen Sie die fehlgeschlagenen Batch-Jobs erneut aus.

   1. Brechen Sie den Batch-Job ab, während der Job ausgeführt wird.

1. Stonebranch UAC kann die folgenden Funktionen für die Anwendung ausführen:

   1. Anwendung starten

   1. Status der Bewerbung abrufen

   1. Warten Sie, bis die Anwendung gestartet oder gestoppt ist

   1. Anwendung beenden

   1. Protokolle des Anwendungsbetriebs abrufen

**Konvertierung von Stonebranch-Jobs**

Das folgende Diagramm zeigt den Prozess der Umstellung von Arbeitsplätzen bei Stonebranch während der Modernisierung. Es wird beschrieben, wie die Jobpläne und Aufgabendefinitionen in ein kompatibles Format konvertiert werden, mit dem Batch-Aufgaben von AWS Mainframe Modernization ausgeführt werden können.

![\[Prozess vom Mainframe bis zur Konvertierung zum Job Scheduler auf Amazon EC2 mit JCL-Dateien in Amazon S3.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/4d2ed890-f143-455e-8180-4d967b71c494.png)


1. Für den Konvertierungsprozess werden die Jobdefinitionen aus dem vorhandenen Mainframe-System exportiert.

1. JCL-Dateien können in den S3-Bucket für die Mainframe-Modernisierungsanwendung hochgeladen werden, sodass diese JCL-Dateien vom AWS Mainframe Modernization Service bereitgestellt werden können.

1. Das Konvertierungstool konvertiert die exportierten Auftragsdefinitionen in UAC-Aufgaben.

1. Nachdem alle Aufgabendefinitionen und Jobpläne erstellt wurden, werden diese Objekte in den Universal Controller importiert. Die konvertierten Aufgaben führen dann die Prozesse im AWS Mainframe Modernization Service aus, anstatt sie auf dem Mainframe auszuführen.

**Stonebranch UAC-Architektur**

Das folgende Architekturdiagramm stellt ein active-active-passive Modell eines Universal Controllers mit hoher Verfügbarkeit (HA) dar. Stonebranch UAC wird in mehreren Availability Zones eingesetzt, um hohe Verfügbarkeit zu gewährleisten und Disaster Recovery (DR) zu unterstützen.

![\[Multi-AZ-Umgebung mit DR und Controllern, Amazon EFS, Aurora und einem S3-Bucket für Backups.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/3f94b855-c146-4fcb-902c-5d343438a558.png)


*Universeller Controller*

Zwei Linux-Server werden als Universal Controller bereitgestellt. Beide stellen eine Verbindung zum selben Datenbankendpunkt her. Jeder Server beherbergt eine Universal Controller-Anwendung und OMS. Zum Zeitpunkt der Bereitstellung wird die neueste Version von Universal Controller verwendet.

Die Universal Controller werden in der Tomcat-Webapp als Dokument ROOT bereitgestellt und auf Port 80 bereitgestellt. Diese Bereitstellung erleichtert die Konfiguration des Frontend-Load Balancers.

HTTP über TLS oder HTTPS wird mithilfe des Stonebranch-Platzhalterzertifikats aktiviert (z. B.). `https://customer.stonebranch.cloud` Dadurch wird die Kommunikation zwischen dem Browser und der Anwendung gesichert.

*OMS*

Ein Universal Agent und OMS (Opswise Message Service) befinden sich auf jedem Universal Controller-Server. Alle vom Kunden bereitgestellten Universal Agents sind so eingerichtet, dass sie eine Verbindung zu beiden OMS-Diensten herstellen. OMS fungiert als gemeinsamer Messaging-Dienst zwischen den Universal Agents und dem Universal Controller.

Amazon EFS mountet auf jedem Server ein Spool-Verzeichnis. OMS verwendet dieses gemeinsam genutzte Spool-Verzeichnis, um die Verbindungs- und Aufgabeninformationen von Controllern und Agenten zu speichern. OMS arbeitet in einem Hochverfügbarkeitsmodus. Wenn das aktive OMS ausfällt, hat das passive OMS Zugriff auf alle Daten und nimmt den aktiven Betrieb automatisch wieder auf. Universal Agents erkennen diese Änderung und stellen automatisch eine Verbindung zum neuen aktiven OMS her.

*Datenbank*

Amazon Relational Database Service (Amazon RDS) beherbergt die UAC-Datenbank, deren Engine mit Amazon Aurora MySQL kompatibel ist. Amazon RDS hilft bei der Verwaltung und Bereitstellung von geplanten Backups in regelmäßigen Abständen. Beide Universal Controller-Instances stellen eine Verbindung mit demselben Datenbank-Endpunkt her.

*Load Balancer*

Für jede Instanz wird ein Application Load Balancer eingerichtet. Der Load Balancer leitet den Datenverkehr zu einem bestimmten Zeitpunkt an den aktiven Controller weiter. Ihre Instance-Domainnamen verweisen auf die jeweiligen Load Balancer-Endpunkte.

*URLs*

Jede Ihrer Instances hat eine URL, wie im folgenden Beispiel gezeigt.


| 
| 
| Umgebung | Instance | 
| --- |--- |
| **Produktion** | `customer.stonebranch.cloud` | 
| **Entwicklung (Nichtproduktion)** | `customerdev.stonebranch.cloud` | 
| **Testen (außerhalb der Produktion)** | `customertest.stonebranch.cloud` | 

**Anmerkung**  
  Instanznamen, die nicht zur Produktion verwendet werden, können Ihren Anforderungen entsprechend festgelegt werden.

*Hohe Verfügbarkeit*

Hochverfügbarkeit (HA) ist die Fähigkeit eines Systems, über einen bestimmten Zeitraum kontinuierlich ohne Ausfall zu arbeiten. Zu diesen Ausfällen gehören unter anderem Speicher, Reaktionsverzögerungen bei der Serverkommunikation aufgrund von CPU- oder Speicherproblemen und Netzwerkkonnektivität.

Um die HA-Anforderungen zu erfüllen:
+ Alle EC2-Instances, Datenbanken und anderen Konfigurationen werden in zwei separaten Availability Zones innerhalb derselben AWS-Region gespiegelt.
+ Der Controller wird über ein Amazon Machine Image (AMI) auf zwei Linux-Servern in den beiden Availability Zones bereitgestellt. Wenn Sie beispielsweise in der Region Europa eu-west-1 bereitgestellt werden, haben Sie einen Universal Controller in der Availability Zone eu-west-1a und der Availability Zone eu-west-1c.
+ Jobs dürfen nicht direkt auf den Anwendungsservern ausgeführt werden und es dürfen keine Daten auf diesen Servern gespeichert werden.
+ Der Application Load Balancer führt Integritätsprüfungen auf jedem Universal Controller durch, um den aktiven Controller zu identifizieren und den Datenverkehr an ihn weiterzuleiten. Falls bei einem Server Probleme auftreten, versetzt der Load Balancer den passiven Universal Controller automatisch in einen aktiven Status. Der Load Balancer identifiziert dann die neue aktive Universal Controller-Instanz anhand der Integritätsprüfungen und leitet den Datenverkehr weiter. Der Failover erfolgt innerhalb von vier Minuten ohne Jobverlust, und die Frontend-URL bleibt unverändert.
+ Der Aurora MySQL-kompatible Datenbankdienst speichert Universal Controller-Daten. Für Produktionsumgebungen wird ein Datenbankcluster mit zwei Datenbank-Instances in zwei verschiedenen Availability Zones innerhalb einer einzigen AWS-Region erstellt. Beide Universal Controller verwenden eine Java Database Connectivity (JDBC) -Schnittstelle, die auf einen einzelnen Datenbankcluster-Endpunkt verweist. Falls bei einer Datenbankinstanz Probleme auftreten, verweist der Datenbankcluster-Endpunkt dynamisch auf die fehlerfreie Instanz. Es ist kein manueller Eingriff erforderlich.

*Backup und Löschen*

Stonebranch Universal Controller ist so eingestellt, dass alte Daten nach dem in der Tabelle angegebenen Zeitplan gesichert und gelöscht werden.


| 
| 
| Typ | Plan | 
| --- |--- |
| **Aktivität** | 7 Tage | 
| **Prüfung** | 90 Tage | 
| **Verlauf** | 60 Tage | 

Backup-Daten, die älter als die angegebenen Daten sind, werden in das XML-Format exportiert und im Dateisystem gespeichert. Nach Abschluss des Sicherungsvorgangs werden ältere Daten aus der Datenbank gelöscht und für Produktionsinstanzen bis zu einem Jahr in einem S3-Bucket archiviert.

Sie können diesen Zeitplan in Ihrer Universal Controller-Oberfläche anpassen. Eine Verlängerung dieser Zeitrahmen kann jedoch zu längeren Ausfallzeiten während der Wartung führen.

## Tools
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-tools"></a>

**AWS-Services**
+ [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) ist eine Cloud-native AWS-Plattform, mit der Sie Ihre Mainframe-Anwendungen auf von AWS verwaltete Laufzeitumgebungen modernisieren können. Er bietet Tools und Ressourcen, die Sie bei der Planung und Implementierung von Migration und Modernisierung unterstützen.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) bietet Volumes für die Speicherung auf Blockebene, die in Verbindung mit Amazon-EC2-Instances verwendet werden.
+ [Amazon Elastic File System (Amazon EFS)](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html) unterstützt Sie bei der Erstellung und Konfiguration gemeinsam genutzter Dateisysteme in der AWS-Cloud.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud. Dieses Muster verwendet Amazon Aurora MySQL-Compatible Edition.
+ [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.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) verteilt eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele. Sie können beispielsweise den Datenverkehr auf Amazon EC2 EC2-Instances, Container und IP-Adressen in einer oder mehreren Availability Zones verteilen. Dieses Muster verwendet einen Application Load Balancer.

**Stonebranch**
+ Das [Universal Automation Center (UAC)](https://stonebranchdocs.atlassian.net/wiki/spaces/SD/pages/239239169/Universal+Automation+Center) ist ein System von Produkten zur Workload-Automatisierung für Unternehmen. Dieses Muster verwendet die folgenden UAC-Komponenten:
  + [Universal Controller](https://www.stonebranch.com/documentation-universal-controller), eine Java-Webanwendung, die in einem Tomcat-Webcontainer ausgeführt wird, ist die Lösung für Enterprise Job Scheduler und Workload Automation Broker von Universal Automation Center. Der Controller bietet eine Benutzeroberfläche zum Erstellen, Überwachen und Konfigurieren von Controller-Informationen, verwaltet die Planungslogik, verarbeitet alle Nachrichten an und von Universal Agents und synchronisiert einen Großteil des Hochverfügbarkeitsbetriebs von Universal Automation Center.
  + [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) ist ein herstellerunabhängiger Planungsagent, der mit dem vorhandenen Job Scheduler auf allen wichtigen Computerplattformen zusammenarbeitet, sowohl auf älteren als auch auf verteilten Computerplattformen. Alle Scheduler, die unter Unixz/Series, i/Series, Linux oder Windows laufen, werden unterstützt.
+ [Universal Agent](https://www.stonebranch.com/documentation-universal-agent) ist ein herstellerunabhängiger Scheduling-Agent, der mit bestehenden Job-Schedulern auf allen wichtigen Computerplattformen zusammenarbeitet, sowohl auf älteren als auch auf verteilten Computerplattformen. Alle Scheduler, die unter Unixz/Series, i/Series, Linux oder Windows laufen, werden unterstützt.
+ [Stonebranch aws-mainframe-modernization-stonebranch -integration AWS Mainframe Modernization Universal Extension](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases) ist die Integrationsvorlage zum Ausführen, Überwachen und erneuten Ausführen von Batch-Jobs auf der AWS Mainframe Modernization Platform.

**Code**

[Der Code für dieses Muster ist im Repository -integration verfügbar. aws-mainframe-modernization-stonebranch](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases/) GitHub 

## Epen
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-epics"></a>

### Installieren Sie Universal Controller und Universal Agent auf Amazon EC2
<a name="install-universal-controller-and-universal-agent-on-amazon-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie die Installationsdateien herunter. | Laden Sie die Installation von den Stonebranch-Servern herunter. Wenden Sie sich an Stonebranch, um die Installationsdateien zu erhalten. | Cloud-Architekt | 
| Starten Sie die EC2-Instanz. | Sie benötigen etwa 3 GB zusätzlichen Speicherplatz für die Universal Controller- und Universal Agent-Installationen. Stellen Sie also mindestens 30 GB Festplattenspeicher für die Instanz bereit.Fügen Sie der Sicherheitsgruppe Port 8080 hinzu, damit darauf zugegriffen werden kann. | Cloud-Architekt | 
| Überprüfen Sie die Voraussetzungen. | Gehen Sie vor der Installation wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Cloud-Administrator, Linux-Administrator | 
| Installieren Sie Universal Controller. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Cloud-Architekt, Linux-Administrator | 
| Installieren Sie Universal Agent. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Cloud-Administrator, Linux-Administrator | 
| Fügen Sie OMS zu Universal Controller hinzu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 

### Importieren Sie AWS Mainframe Modernization Universal Extension und erstellen Sie eine Aufgabe
<a name="import-aws-mainframe-modernization-universal-extension-and-create-a-task"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Integrationsvorlage importieren. | Für diesen Schritt benötigen Sie die [AWS Mainframe Modernization Universal Extension](https://github.com/aws-samples/aws-mainframe-modernization-stonebranch-integration/releases). Stellen Sie sicher, dass die neueste veröffentlichte Version der ZIP-Datei heruntergeladen wurde.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html)Nachdem die Integrationsvorlage importiert wurde, werden unter **Verfügbare Services** **AWS Mainframe Modernization Tasks** angezeigt. | Universeller Controller-Administrator | 
| Aktivieren Sie auflösbare Anmeldeinformationen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 
| Starten Sie die Aufgabe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 

### Testen Sie das Starten eines Batch-Jobs
<a name="test-starting-a-batch-job"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Aufgabe für den Batch-Job. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 
| Starten Sie die Aufgabe. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 

### Erstellen Sie einen Workflow für mehrere Aufgaben
<a name="create-a-workflow-for-multiple-tasks"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Kopieren Sie die Aufgaben. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 
| Aufgaben aktualisieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 
| Erstellen Sie einen Workflow. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 
| Überprüfen Sie den Status des Workflows. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 

### Beheben Sie fehlgeschlagene Batch-Jobs und führen Sie sie erneut aus
<a name="troubleshoot-failed-batch-jobs-and-rerun"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Korrigieren Sie die fehlgeschlagene Aufgabe und führen Sie sie erneut aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 

### Aufgaben „Anwendung starten“ und „Anwendung beenden“ erstellen
<a name="create-start-application-and-stop-application-tasks"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Aktion „Anwendung starten“. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) | Universeller Controller-Administrator | 

### Eine Aufgabe zum Abbrechen der Batch-Ausführung erstellen
<a name="create-a-cancel-batch-execution-task"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Aktion Batch stornieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/integrate-stonebranch-universal-controller-with-aws-mainframe-modernization.html) |  | 

## Zugehörige Ressourcen
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-resources"></a>
+ [Universeller Controller](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/overview)
+ [Universeller Agent](https://stonebranchdocs.atlassian.net/wiki/spaces/UA77/overview)
+ [LDAP-Einstellungen](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794552355/LDAP+Settings)
+ [SAML-Single-Sign-On](https://stonebranchdocs.atlassian.net/wiki/spaces/UC77/pages/794553130/SAML+Single+Sign-On)
+ [Xpress-Konvertierungstool](https://www.stonebranch.com/resources/xpress-conversion-windows)

## Zusätzliche Informationen
<a name="integrate-stonebranch-universal-controller-with-aws-mainframe-modernization-additional"></a>

**Symbole im Workflow-Editor**

![\[RUNHELLO-Aufgabe oben, FOOBAR in der Mitte und die restlichen Aufgaben auf der dritten Ebene.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/837430ee-3159-4fe2-8e17-65168294ef1e.png)


**Alle Aufgaben sind miteinander verbunden**

![\[RUNHELLO stellt eine Verbindung zu FOOBAR her, wodurch eine Verbindung zu den drei verbleibenden Aufgaben hergestellt wird.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/fe483348-9a6f-450b-87e6-ceae6b2bdaad.png)


**Status des Workflows**

![\[Die FOOBAR-Aufgabe schlägt fehl und die verbleibenden drei Aufgaben warten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/01c6f9fa-87e6-459a-b694-5e03dd7f7952/images/5ea4e239-fbbe-4fa4-9ffa-b7a9443b7975.png)


# Migrieren und replizieren Sie VSAM-Dateien mit Connect von Precisely zu Amazon RDS oder Amazon MSK
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely"></a>

*Prachi Khanna und Biopathie GOPALSAMY, Amazon Web Services*

## Zusammenfassung
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie mithilfe von [Connect](https://www.precisely.com/product/precisely-connect/connect) from Precisely VSAM-Dateien (Virtual Storage Access Method) von einem Mainframe in eine Zielumgebung in der AWS-Cloud migrieren und replizieren. Zu den Zielumgebungen, die in diesem Muster behandelt werden, gehören Amazon Relational Database Service (Amazon RDS) und Amazon Managed Streaming for Apache Kafka (Amazon MSK). Connect verwendet [Change Data Capture (CDC)](https://www.precisely.com/resource-center/productsheets/change-data-capture-with-connect), um Aktualisierungen Ihrer VSAM-Quelldateien kontinuierlich zu überwachen und diese Updates dann in eine oder mehrere Ihrer AWS-Zielumgebungen zu übertragen. Sie können dieses Muster verwenden, um Ihre Ziele im Bereich Anwendungsmodernisierung oder Datenanalyse zu erreichen. Beispielsweise können Sie Connect verwenden, um Ihre VSAM-Anwendungsdateien mit geringer Latenz in die AWS-Cloud zu migrieren, oder Ihre VSAM-Daten zu einem AWS-Data Warehouse oder Data Lake für Analysen migrieren, die Synchronisationslatenzen tolerieren können, die höher sind als für die Anwendungsmodernisierung erforderlich.

## Voraussetzungen und Einschränkungen
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-prereqs"></a>

**Voraussetzungen**
+ [IBM V2R1 oder höher z/OS ](https://www-40.ibm.com/servers/resourcelink/svc00100.nsf/pages/zosv2r1-pdf-download?OpenDocument)
+ [CICS Transaction Server für z/OS (CICS TS) V5.1 oder höher (CICS/VSAM-Datenerfassung)](https://www.ibm.com/support/pages/cics-transaction-server-zos-51-detailed-system-requirements)
+ [IBM MQ 8.0 oder höher](https://www.ibm.com/support/pages/downloading-ibm-mq-80)
+ Einhaltung der [z/OS-Sicherheitsanforderungen](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS) (z. B. APF-Autorisierung für SQData Ladebibliotheken)
+ Die VSAM-Wiederherstellungsprotokolle sind aktiviert
+ (Optional) [CICS VSAM Recovery Version (CICS VR) zur automatischen Erfassung von CDC-Protokollen](https://www.ibm.com/docs/en/cics-vr/5.1?topic=started-introducing-cics-vr)
+ Ein aktives AWS-Konto
+ Eine [Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) mit einem Subnetz, das über Ihre Legacy-Plattform erreichbar ist
+ Eine VSAM Connect-Lizenz von Precisely

**Einschränkungen**
+ Connect unterstützt keine automatische Erstellung von Zieltabellen auf der Grundlage von Quell-VSAM-Schemas oder Copybooks. Sie müssen die Zieltabellenstruktur zum ersten Mal definieren.
+ Für Nicht-Streaming-Ziele wie Amazon RDS müssen Sie die Zuordnung von Konvertierungsquelle zu Ziel im Apply Engine-Konfigurationsskript angeben.
+ Protokollierungs-, Überwachungs- und Warnfunktionen werden über externe Komponenten (wie Amazon CloudWatch) implementiert APIs und erfordern, dass sie voll funktionsfähig sind.

**Produktversionen**
+ SQData 40134 für z/OS
+ SQData 4.0.43 für das Amazon Linux Amazon Machine Image (AMI) auf Amazon Elastic Compute Cloud (Amazon) EC2

## Architektur
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-architecture"></a>

**Quelltechnologie-Stack**
+ Sprache zur Jobkontrolle (JCL)
+ z/OS Unix-Shell und Interactive System Productivity Facility (ISPF)
+ VSAM-Dienstprogramme (IDCAMS)

**Zieltechnologie-Stack**
+ Amazon EC2
+ Amazon MSK
+ Amazon RDS
+ Amazon VPC

**Zielarchitektur**

*Migrieren von VSAM-Dateien zu Amazon RDS*

Das folgende Diagramm zeigt, wie VSAM-Dateien in Echtzeit oder nahezu in Echtzeit in eine relationale Datenbank wie Amazon RDS migriert werden, indem das CDC agent/publisher in der Quellumgebung (lokaler Mainframe) und die [Apply Engine](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) in der Zielumgebung (AWS Cloud) verwendet werden.

![\[Diagram showing VSAM file migration from on-premises mainframe to AWS Cloud using CDC and Apply Engine.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/47cefbde-e0c8-4c36-ba48-cccc2c443074.png)


Das Diagramm zeigt den folgenden Batch-Workflow:

1. Connect erfasst Änderungen an einer Datei, indem es VSAM-Dateien mit Backupdateien vergleicht, um Änderungen zu identifizieren, und sendet die Änderungen dann an den Logstream.

1. Der Herausgeber verwendet Daten aus dem System-Logstream.

1. Der Herausgeber übermittelt die erfassten Datenänderungen über TCP/IP an eine Ziel-Engine. Der Controller-Daemon authentifiziert die Kommunikation zwischen der Quell- und der Zielumgebung.

1. Die Apply Engine in der Zielumgebung empfängt die Änderungen vom Publisher-Agent und wendet sie auf eine relationale oder nicht-relationale Datenbank an.

Das Diagramm zeigt den folgenden Online-Workflow:

1. Connect erfasst Änderungen in der Online-Datei mithilfe einer Protokollreplikation und streamt dann die erfassten Änderungen in einen Logstream.

1. Der Herausgeber verwendet Daten aus dem System-Logstream.

1. Der Herausgeber übermittelt die erfassten Datenänderungen über TCP/IP an die Ziel-Engine. Der Controller-Daemon authentifiziert die Kommunikation zwischen der Quell- und der Zielumgebung.

1. Die Apply Engine in der Zielumgebung empfängt die Änderungen vom Publisher-Agent und wendet sie dann auf eine relationale oder nicht-relationale Datenbank an.

*Migrieren von VSAM-Dateien zu Amazon MSK*

Das folgende Diagramm zeigt, wie Sie VSAM-Datenstrukturen im Hochleistungsmodus von einem Mainframe zu Amazon MSK streamen und automatisch JSON- oder AVRO-Schemakonvertierungen generieren, die in Amazon MSK integriert werden.

![\[Diagram showing data flow from on-premises mainframe to AWS Cloud services via Amazon VPC.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/4ee183bd-1c0d-449d-8cdc-eb6e2c41a695/images/13eb27ad-c0d2-489b-91e1-5b2a729fb8dd.png)


Das Diagramm zeigt den folgenden Batch-Workflow:

1. Connect erfasst Änderungen an einer Datei mithilfe von CICS VR oder durch den Vergleich von VSAM-Dateien mit Backupdateien, um Änderungen zu identifizieren. Erfasste Änderungen werden an den Logstream gesendet.

1. Der Herausgeber verwendet Daten aus dem System-Logstream.

1. Der Herausgeber übermittelt die erfassten Datenänderungen über TCP/IP an die Ziel-Engine. Der Controller-Daemon authentifiziert die Kommunikation zwischen der Quell- und der Zielumgebung.

1. Die Replicator Engine, die im Parallelverarbeitungsmodus arbeitet, teilt die Daten in eine Arbeitseinheit auf.

1. Worker-Threads erfassen die Daten aus dem Cache.

1. Daten werden aus den Worker-Threads in Amazon MSK-Themen veröffentlicht.

1. [Benutzer wenden mithilfe von Konnektoren Änderungen von Amazon MSK auf Ziele wie Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) oder Amazon OpenSearch Service an.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

Das Diagramm zeigt den folgenden Online-Workflow:

1. Änderungen in der Online-Datei werden mithilfe eines Protokollreplikats erfasst. Erfasste Änderungen werden in den Logstream gestreamt.

1. Der Herausgeber verwendet Daten aus dem System-Logstream.

1. Der Herausgeber übermittelt die erfassten Datenänderungen über TCP/IP an die Ziel-Engine. Der Controller-Daemon authentifiziert die Kommunikation zwischen der Quell- und der Zielumgebung.

1. Die Replicator Engine, die im Parallelverarbeitungsmodus arbeitet, teilt die Daten in eine Arbeitseinheit auf.

1. Worker-Threads erfassen die Daten aus dem Cache.

1. Daten werden aus den Worker-Threads in Amazon MSK-Themen veröffentlicht.

1. [Benutzer wenden Änderungen von Amazon MSK mithilfe von Konnektoren auf Ziele wie DynamoDB, Amazon S3 oder OpenSearch Service an.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-connect-connectors.html)

## Tools
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-tools"></a>
+ [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html) ist ein vollständig verwalteter Service, der Sie beim Erstellen und Ausführen von Anwendungen unterstützt, die Apache Kafka zur Verarbeitung von Streaming-Daten verwenden.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.

## Epen
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-epics"></a>

### Bereiten Sie die Quellumgebung (Mainframe) vor
<a name="prepare-the-source-environment-mainframe"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie Connect CDC 4.1. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | IBM Mainframe-Entwickler/Administrator | 
| Richten Sie das ZFS-Verzeichnis ein. | Um ein ZFS-Verzeichnis einzurichten, folgen Sie den Anweisungen unter [ZFS-Variablenverzeichnisse](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-zOS/Prerequisites-for-z/OS/Security-authorization-requirements-for-z/OS/zFS-variable-directories) in der Dokumentation Precisely.Controller-Daemon- und Capture/Publisher Agentenkonfigurationen werden im Dateisystem der z/OS UNIX Systems Services (als ZFS bezeichnet) gespeichert. Die Agenten Controller Daemon, Capture, Storage und Publisher benötigen eine vordefinierte ZfS-Verzeichnisstruktur zum Speichern einer kleinen Anzahl von Dateien. | IBM Mainframe-Entwickler/Administrator | 
|  TCP/IP Ports konfigurieren. | Folgen Sie zur Konfiguration von TCP/IP Ports den Anweisungen unter [TCP/IP-Ports](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX/Prerequisites-for-UNIX/Security-authorization-requirements-for-UNIX/TCP/IP-ports) in der Dokumentation Precisely.Der Controller-Daemon benötigt TCP/IP Ports auf den Quellsystemen. Die Ports werden von den Engines auf den Zielsystemen referenziert (auf denen die erfassten Änderungsdaten verarbeitet werden). | IBM Mainframe-Entwickler/Administrator | 
| Erstellen Sie einen Logstream. z/OS  | Um einen [z/OS-Logstream](https://www.ibm.com/docs/en/was/8.5.5?topic=SSEQTP_8.5.5/com.ibm.websphere.installation.zseries.doc/ae/cins_logstrm.html) zu erstellen, folgen Sie den Anweisungen unter [Create z/OS system LogStreams](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) in der Dokumentation Precisely.Connect verwendet den Logstream, um während der Migration Daten zwischen Ihrer Quell- und Zielumgebung zu erfassen und zu streamen.Ein Beispiel für eine JCL, die eine erstellt z/OS LogStream, finden Sie unter [Create z/OS system LogStreams](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-TM-EXIT-capture/Prepare-environment/Create-z/OS-system-logStreams?tocId=wy6243SXlIiEczwR8JE8WA) in der Dokumentation Precisely. | IBM Mainframe-Entwickler | 
| Identifizieren und autorisieren Sie IDs für ZFS-Benutzer und gestartete Aufgaben. | Verwenden Sie RACF, um Zugriff auf das OMVS ZfS-Dateisystem zu gewähren. Ein Beispiel für eine JCL finden Sie in der Dokumentation Precisely unter [Identifizieren und Autorisieren des ZFS-Benutzers und der gestarteten Aufgabe](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/IMS-z/OS/IMS-log-reader-capture/Prepare-environment/Identify-and-authorize-zFS-user-and-started-task-IDs?tocId=MrBXpFu~N0iAy~8VTrH0tQ). IDs | IBM Mainframe-Entwickler/Administrator | 
| Generieren Sie z/OS öffentliche/private Schlüssel und die autorisierte Schlüsseldatei. | Führen Sie die JCL aus, um das key pair zu generieren. Ein Beispiel finden Sie unter *Schlüsselpaar-Beispiel* im Abschnitt *Zusätzliche Informationen* dieses Musters.Anweisungen finden Sie in der Dokumentation Precisely unter [Generieren z/OS öffentlicher und privater Schlüssel und autorisierter Schlüsseldatei](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Db2-z/OS/Prepare-the-environment/Generate-z/OS-public-and-private-keys-and-authorized-key-file?tocId=fceE77dWT8smZsSaE~FeMQ). | IBM Mainframe-Entwickler/Administrator | 
| Aktivieren Sie das CICS VSAM Log Replicate und hängen Sie es an den Logstream an. | Führen Sie das folgende JCL-Skript aus:<pre> //STEP1 EXEC PGM=IDCAMS<br /> //SYSPRINT DD SYSOUT=*<br /> //SYSIN DD *<br />   ALTER SQDATA.CICS.FILEA -<br />   LOGSTREAMID(SQDATA.VSAMCDC.LOG1) -<br />   LOGREPLICATE</pre> | IBM Mainframe-Entwickler/Administrator | 
| Aktivieren Sie das VSAM-Dateiwiederherstellungsprotokoll über ein FCT. | Ändern Sie die File Control Table (FCT), um die folgenden Parameteränderungen widerzuspiegeln:<pre> Configure FCT Parms<br />   CEDA ALT FILE(name) GROUP(groupname)<br />   DSNAME(data set name)<br />   RECOVERY(NONE|BACKOUTONLY|ALL)<br />   FWDRECOVLOG(NO|1–99)<br />   BACKUPTYPE(STATIC|DYNAMIC)<br />   RECOVERY PARAMETERS<br />   RECOVery : None | Backoutonly | All<br />   Fwdrecovlog : No | 1-99<br />   BAckuptype : Static | Dynamic</pre> | IBM Mainframe-Entwickler/Administrator | 
| Richten Sie CDCz Log für den Publisher-Agent ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | IBM Mainframe-Entwickler/Administrator | 
| Aktivieren Sie den Controller-Daemon. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | IBM Mainframe-Entwickler/Administrator | 
| Aktivieren Sie den Herausgeber. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | IBM Mainframe-Entwickler/Administrator | 
| Aktivieren Sie den Logstream. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | IBM Mainframe-Entwickler/Administrator | 

### Bereiten Sie die Zielumgebung vor (AWS)
<a name="prepare-the-target-environment-aws"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Genau auf einer EC2 Instanz installieren. | Um Connect von Precisely auf dem Amazon Linux AMI für Amazon zu installieren EC2, folgen Sie den Anweisungen unter [Connect CDC (SQData) unter UNIX installieren](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Installation/Install-Connect-CDC-SQData-on-UNIX) in der Dokumentation Precisely. | Allgemeines AWS | 
|  TCP/IP Ports öffnen. | Um die Sicherheitsgruppe so zu ändern, dass sie die Controller-Daemon-Ports für eingehenden und ausgehenden Zugriff enthält, folgen Sie den Anweisungen unter [TCP/IP](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/Change-data-capture/Transient-storage-and-publishing/TCP/IP) in der Dokumentation von Precisely. | Allgemeines AWS | 
| Erstellen Sie Dateiverzeichnisse. | Um Dateiverzeichnisse zu erstellen, folgen Sie den Anweisungen unter [Prepare target apply environment](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-targets/Kafka/Prepare-target-apply-environment) in der Dokumentation Precisely. | Allgemeines AWS | 
| Erstellen Sie die Apply Engine-Konfigurationsdatei. | Erstellen Sie die Apply Engine-Konfigurationsdatei im Arbeitsverzeichnis der Apply Engine. Die folgende Beispielkonfigurationsdatei zeigt Apache Kafka als Ziel:<pre>builtin.features=SASL_SCRAM<br />  security.protocol=SASL_SSL<br />  sasl.mechanism=SCRAM-SHA-512<br />  sasl.username=<br />  sasl.password=<br />  metadata.broker.list=</pre>Weitere Informationen finden Sie unter [Sicherheit](https://kafka.apache.org/documentation/#security) in der Apache Kafka-Dokumentation. | Allgemeines AWS | 
| Erstellen Sie Skripts für die Apply Engine-Verarbeitung. | Erstellen Sie die Skripts für die Apply Engine, um Quelldaten zu verarbeiten und Quelldaten auf das Ziel zu replizieren. Weitere Informationen finden Sie in der Dokumentation Precisely unter [Erstellen eines Apply-Engine-Skripts](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Create-an-apply-engine-script). | Allgemeines AWS | 
| Führen Sie die Skripte aus. | Verwenden Sie die `SQDENG` Befehle `SQDPARSE` und, um das Skript auszuführen. Weitere Informationen finden Sie unter [Parse a script for zOS](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine/Apply-engine-script-development/Parse-a-script/Parse-a-script-for-zOS) in der Precisely Dokumentation. | Allgemeines AWS | 

### Validieren Sie die Umgebung
<a name="validate-the-environment"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Überprüfen Sie die Liste der VSAM-Dateien und Zieltabellen für die CDC-Verarbeitung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Allgemein AWS, Mainframe | 
| Stellen Sie sicher, dass das Connect SQData CDC-Produkt verknüpft ist. | Führen Sie einen Testauftrag aus und stellen Sie sicher, dass der Rückgabecode für diesen Job 0 (erfolgreich) lautet.Die Statusmeldungen der Connect CDC SQData Apply Engine sollten aktive Verbindungsmeldungen anzeigen. | Allgemein AWS, Mainframe | 

### Testfälle ausführen und validieren (Batch)
<a name="run-and-validate-test-cases-batch"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie den Batch-Job auf dem Mainframe aus. | Führen Sie den Batch-Anwendungsauftrag mit einer modifizierten JCL aus. Fügen Sie Schritte in die modifizierte JCL ein, die Folgendes bewirken:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Allgemein AWS, Mainframe | 
| Überprüfen Sie den Logstream. | Überprüfen Sie den Logstream, um sicherzustellen, dass Sie die Änderungsdaten für den abgeschlossenen Mainframe-Batch-Job sehen können. | Allgemein AWS, Mainframe | 
| Überprüfen Sie die Anzahl der Quell-Delta-Änderungen und der Zieltabelle. | Gehen Sie wie folgt vor, um zu überprüfen, ob die Datensätze gezählt wurden:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | Allgemein AWS, Mainframe | 

### Testfälle ausführen und validieren (online)
<a name="run-and-validate-test-cases-online"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie die Online-Transaktion in einer CICS-Region aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely.html) | IBM Mainframe-Entwickler | 
| Überprüfen Sie den Logstream. | Vergewissern Sie sich, dass der Logstream mit bestimmten Änderungen auf Datensatzebene gefüllt ist. | AWS-Mainframe-Entwickler | 
| Überprüfen Sie die Anzahl in der Zieldatenbank. | Überwachen Sie die Apply Engine auf Zählungen auf Datensatzebene. | Genau, Linux | 
| Überprüfen Sie die Anzahl der Datensätze und Datensätze in der Zieldatenbank. | Fragen Sie die Zieldatenbank ab, um die Anzahl der Datensätze und Datensätze zu überprüfen. | Allgemeines AWS | 

## Zugehörige Ressourcen
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-resources"></a>
+ [VSAM z/OS (Genaue](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Setup-and-configure-sources/VSAM-z/OS) Dokumentation)
+ [Engine anwenden](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Apply-engine) (Präzise Dokumentation)
+ [Replicator-Engine](https://help.precisely.com/r/Connect-CDC-SQData/4.1.43/en-US/Connect-CDC-SQData-Help/Source-and-Target-Configuration/Replicator-engine) (Präzise Dokumentation)
+ [Der Log-Stream](https://www.ibm.com/docs/en/zos/2.3.0?topic=logger-log-stream) (IBM-Dokumentation)

## Zusätzliche Informationen
<a name="migrate-and-replicate-vsam-files-to-amazon-rds-or-amazon-msk-using-connect-from-precisely-additional"></a>

**Beispiel für eine Konfigurationsdatei**

Dies ist eine Beispielkonfigurationsdatei für einen Logstream, bei dem die Quellumgebung ein Mainframe und die Zielumgebung Amazon MSK ist:

```
 
  -- JOBNAME -- PASS THE SUBSCRIBER NAME
  -- REPORT  progress report will be produced after "n" (number) of Source records processed.
  
  JOBNAME VSMTOKFK;
  --REPORT EVERY 100;
  -- Change Op has been ‘I’ for insert, ‘D’ for delete , and ‘R’ for Replace. For RDS it is 'U' for update
  -- Character Encoding on z/OS is Code Page 1047, on Linux and UNIX it is Code Page 819 and on Windows, Code Page 1252
  OPTIONS
  CDCOP('I', 'U', 'D'),
  PSEUDO NULL = NO,
  USE AVRO COMPATIBLE NAMES,
  APPLICATION ENCODING SCHEME = 1208;
  
  --       SOURCE DESCRIPTIONS
  
  BEGIN GROUP VSAM_SRC;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       TARGET DESCRIPTIONS
  
  BEGIN GROUP VSAM_TGT;
  DESCRIPTION COBOL ../copybk/ACCOUNT AS account_file;
  END GROUP;
  
  --       SOURCE DATASTORE (IP & Publisher name)
  
  DATASTORE cdc://10.81.148.4:2626/vsmcdct/VSMTOKFK
  OF VSAMCDC
  AS CDCIN
  DESCRIBED BY GROUP VSAM_SRC ACCEPT ALL;
  
  --       TARGET DATASTORE(s) - Kafka and topic name
  
  DATASTORE 'kafka:///MSKTutorialTopic/key'
  OF JSON
  AS CDCOUT
  DESCRIBED BY GROUP VSAM_TGT FOR INSERT;
  
  --       MAIN SECTION
  
  PROCESS INTO
  CDCOUT
  SELECT
  {
  SETURL(CDCOUT, 'kafka:///MSKTutorialTopic/key')
  REMAP(CDCIN, account_file, GET_RAW_RECORD(CDCIN, AFTER), GET_RAW_RECORD(CDCIN, BEFORE))
  REPLICATE(CDCOUT, account_file)
  }
  FROM CDCIN;
```

**Beispiel für ein Schlüsselpaar**

Dies ist ein Beispiel dafür, wie die JCL ausgeführt wird, um das key pair zu generieren:

```
//SQDUTIL EXEC PGM=SQDUTIL //SQDPUBL DD DSN=&USER..NACL.PUBLIC, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPKEY DD DSN=&USER..NACL.PRIVATE, // DCB=(RECFM=FB,LRECL=80,BLKSIZE=21200), // DISP=(,CATLG,DELETE),UNIT=SYSDA, // SPACE=(TRK,(1,1)) //SQDPARMS DD  keygen //SYSPRINT DD SYSOUT= //SYSOUT DD SYSOUT=* //SQDLOG DD SYSOUT=* //*SQDLOG8 DD DUMMY
```

# Modernisieren Sie die CardDemo Mainframe-Anwendung mithilfe von AWS Transform
<a name="modernize-carddemo-mainframe-app"></a>

*Santosh Kumar Singh und Cheryl du Preez, Amazon Web Services*

## Zusammenfassung
<a name="modernize-carddemo-mainframe-app-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)wurde entwickelt, um die Modernisierung von Mainframe-Anwendungen zu beschleunigen. Es verwendet generative KI, um den Mainframe-Modernisierungsprozess zu rationalisieren. Es automatisiert komplexe Aufgaben wie: Analyse von Legacy-Code, Mainframe-Dokumentation, Extraktion von Geschäftsregeln, Zerlegung monolithischer Anwendungen in Geschäftsdomänen und Code-Refactoring. Es beschleunigt Modernisierungsprojekte durch die Automatisierung komplexer Aufgaben wie Anwendungsanalyse und Planung der Migrationssequenz. Bei der Zerlegung monolithischer Anwendungen erfolgt eine AWS Transform intelligente Sequenzierung der Mainframe-Anwendungstransformation, sodass Sie Geschäftsfunktionen parallel transformieren können. AWS Transform kann die Entscheidungsfindung beschleunigen und die betriebliche Flexibilität und Migrationseffizienz verbessern.

Dieses Muster enthält step-by-step Anleitungen, mit denen Sie die Möglichkeiten zur Mainframe-Modernisierung von AWS Transform by using [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)testen können. Dabei handelt es sich um ein Beispiel für eine Open-Source-Mainframe-Anwendung.

## Voraussetzungen und Einschränkungen
<a name="modernize-carddemo-mainframe-app-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ AWS IAM Identity Center, [aktiviert](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ [Berechtigungen](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-enable-transform), mit denen Administratoren Folgendes aktivieren können AWS Transform
+ [Berechtigungen](https://docs.aws.amazon.com/transform/latest/userguide/security_iam_id-based-policy-examples.html#id-based-policy-examples-admin-connector), die es Administratoren ermöglichen, Verbindungsanfragen von Amazon Simple Storage Service (Amazon S3) für die AWS Transform Webanwendung anzunehmen

**Einschränkungen**
+ AWS Transform ist nur in einigen Fällen verfügbar AWS-Regionen. Eine vollständige Liste der unterstützten Regionen finden Sie unter [Unterstützte Regionen für AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ AWS Transform unterstützt Codeanalyse, Dokumentgenerierung, Extraktion, Dekomposition und Refactoring von Common Business-Oriented Language (COBOL) auf Java. Weitere Informationen finden Sie unter [Funktionen und Hauptfunktionen und](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-features) [Unterstützte Dateitypen](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-supported-files) für die Transformation von Mainframe-Anwendungen.
+ Es gibt ein Servicekontingent für Mainframe-Transformationsfunktionen in. AWS Transform Weitere Informationen finden Sie unter [Kontingente für AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Um in einem gemeinsamen Arbeitsbereich zusammenarbeiten zu können, müssen alle Benutzer registrierte Benutzer derselben Instanz sein AWS IAM Identity Center , die mit Ihrer Instanz der AWS Transform Webanwendung verknüpft ist.
+ Der Amazon S3 S3-Bucket AWS Transform muss sich in derselben AWS-Konto Region befinden.

## Architektur
<a name="modernize-carddemo-mainframe-app-architecture"></a>

Das folgende Diagramm zeigt die Architektur, die Sie nach diesem Muster eingerichtet haben.

![\[Verwendung von AWS Transform zur Modernisierung einer Mainframe-Anwendung, die in einem Amazon S3 S3-Bucket gespeichert ist.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/0e539474-b733-452d-b0fb-6b3f4cbd5075/images/75be6d78-5b43-448c-ad07-bf74b9ae14ad.png)


Das Diagramm zeigt den folgenden Workflow:

1. AWS Transform verwendet einen Connector für den Zugriff auf die CardDemo Mainframe-Anwendung, die in einem Amazon S3 S3-Bucket gespeichert ist.

1. AWS Transform verwendet AWS IAM Identity Center , um den Benutzerzugriff und die Authentifizierung zu verwalten. Das System implementiert mehrere Ebenen von Sicherheitskontrollen für Authentifizierung, Autorisierung, Verschlüsselung und Zugriffsverwaltung, um Code und Artefakte während der Verarbeitung zu schützen. Benutzer interagieren mit dem AWS Transform Agenten über eine Chat-Oberfläche. Sie können dem KI-Agenten Anweisungen für bestimmte Aufgaben auf Englisch geben. Weitere Informationen finden Sie in der AWS Transform Dokumentation unter [Human in the Loop (HITL)](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html#transform-app-mainframe-hitl).

1. Der KI-Agent interpretiert die Anweisungen des Benutzers, erstellt einen Jobplan, unterteilt den Job in ausführbare Aufgaben und führt ihn selbstständig aus. Benutzer können die Transformation überprüfen und genehmigen. Zu den Transformationsaufgaben gehören die folgenden:
   + **Codeanalyse** — AWS Transform analysiert den Code in jeder Datei auf Details wie Dateiname, Dateityp, Codezeilen und deren Pfade. Der Agent analysiert den Quellcode, führt Klassifizierungen durch, erstellt Abhängigkeitszuordnungen und identifiziert alle fehlenden Artefakte. Er identifiziert auch doppelte Komponenten.
   + **Dokumentgenerierung** — AWS Transform generiert Dokumentation für die Mainframe-Anwendung. Durch die Analyse des Codes kann automatisch eine detaillierte Dokumentation der Anwendungsprogramme erstellt werden, einschließlich Beschreibungen der Geschäftslogik, Abläufe, Integrationen und Abhängigkeiten, die in Ihren Altsystemen vorhanden sind.
   + **Extraktion von Geschäftslogik** — AWS Transform analysiert COBOL-Programme, um deren Kerngeschäftslogik zu dokumentieren und Ihnen zu helfen, die grundlegende Geschäftslogik zu verstehen.
   + **Codezerlegung** — AWS Transform zerlegt den Code in Domänen, die Abhängigkeiten zwischen Programmen und Komponenten berücksichtigen. Die Gruppierung verwandter Dateien und Programme innerhalb derselben Domäne verbessert die Organisation und trägt dazu bei, die logische Struktur der Anwendung beizubehalten, wenn sie in kleinere Komponenten aufgeteilt wird.
   + **Planung von Migrationswellen** — Basierend auf den Domänen, die Sie während der Zerlegungsphase erstellt haben, wird ein Migrationswellenplan mit der empfohlenen Modernisierungsreihenfolge AWS Transform generiert.
   + **Code-Refactoring** — AWS Transform Refaktorierung des Codes in allen oder ausgewählten Domaindateien in Java-Code. Ziel dieses Schritts ist es, die kritische Geschäftslogik der Anwendung beizubehalten und sie gleichzeitig in eine modernisierte, Cloud-optimierte Java-Anwendung umzuwandeln.

1. AWS Transform speichert den umgestalteten Code, die generierten Dokumente, die zugehörigen Artefakte und die Laufzeitbibliotheken in Ihrem Amazon S3 S3-Bucket. Sie haben die folgenden Möglichkeiten:
   + Greifen Sie auf den Runtime-Ordner in Ihrem Amazon S3 S3-Bucket zu.
   + Folgen Sie beim Erstellen und Bereitstellen der Anwendung den Anweisungen zum [Erstellen und Bereitstellen Ihrer modernisierten Anwendung nach dem Refactoring](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow-build-deploy.html) in der Dokumentation. AWS Transform 
   + Fordern Sie über die Chat-Oberfläche ein Beispiel AWS CloudFormation oder eine Hashicorp Terraform-Vorlage an und laden Sie sie herunter. AWS Cloud Development Kit (AWS CDK) Diese Vorlagen können Ihnen dabei helfen, die AWS Ressourcen bereitzustellen, die zur Unterstützung der umgestalteten Anwendung erforderlich sind.
   + Verwenden Sie [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge), um die Qualität von umgestaltetem Code mithilfe umfangreicher Sprachmodelle () zu verbessern. LLMs Die Refactoring-Engine bewahrt die funktionale Äquivalenz von COBOL und wandelt es gleichzeitig in Java-Code um. Reforge ist ein optionaler Schritt, der nach der Transformation verfügbar ist. In diesem Schritt wird der Code so umstrukturiert LLMs , dass er dem nativen Java sehr ähnlich ist, was die Lesbarkeit und Wartbarkeit verbessern kann. Reforge fügt außerdem menschenlesbare Kommentare hinzu, um Ihnen das Verständnis des Codes zu erleichtern, und implementiert moderne Codierungsmuster und bewährte Methoden.

## Tools
<a name="modernize-carddemo-mainframe-app-tools"></a>

**AWS-Services**
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)verwendet agentische KI, um Ihnen zu helfen, die Modernisierung älterer Workloads wie .NET, Mainframe und Workloads zu beschleunigen. VMware 
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)hilft Ihnen dabei, den Single Sign-On-Zugriff (SSO) auf Ihre und Cloud-Anwendungen zentral zu verwalten. AWS-Konten 
+ [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.

**Code-Repository**

Sie können die AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)Open-Source-Mainframe-Anwendung als Beispielanwendung verwenden, um mit der Mainframe-Modernisierung zu beginnen.

## Best Practices
<a name="modernize-carddemo-mainframe-app-best-practices"></a>
+ **Klein anfangen** — Beginnen Sie mit kleinem, weniger komplexem Code (15.000—20.000 Codezeilen), um zu verstehen, wie Mainframe-Anwendungen AWS Transform analysiert und transformiert werden.
+ **Kombinieren Sie es mit menschlichem Fachwissen** — Nutzen Sie es AWS Transform als Beschleuniger und setzen Sie gleichzeitig menschliches Fachwissen ein, um optimale Ergebnisse zu erzielen.
+ **Gründlich prüfen und testen** — Überprüfen Sie den transformierten Code immer sorgfältig und führen Sie umfassende Tests durch, um die funktionale Gleichwertigkeit nach der Transformation zu überprüfen.
+ **Feedback geben** — Um Feedback und Verbesserungsvorschläge zu geben, verwenden Sie die Schaltfläche **Feedback senden** im AWS-Managementkonsole oder erstellen Sie einen Fall mit. [AWS Support](https://support.console.aws.amazon.com/) Weitere Informationen finden Sie unter [Erstellen eines Supportfalls](https://docs.aws.amazon.com/awssupport/latest/user/case-management.html). Ihr Beitrag ist wertvoll für Serviceverbesserungen und future Entwicklungen.

## Epen
<a name="modernize-carddemo-mainframe-app-epics"></a>

### Bereiten Sie die Mainframe-Anwendung vor
<a name="prepare-the-mainframe-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Bucket. | Erstellen Sie einen Amazon S3 S3-Bucket in derselben AWS-Konto und Region, in der AWS Transform es aktiviert ist. Sie verwenden diesen Bucket zum Speichern des Mainframe-Anwendungscodes und AWS Transform diesen Bucket zum Speichern der generierten Dokumente, des umgestalteten Codes und anderer mit der Transformation verknüpfter Dateien. Anweisungen finden Sie in der Amazon S3 S3-Dokumentation unter [Bucket erstellen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Allgemeines AWS | 
| Bereiten Sie die Mainframe-Beispielanwendung vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | App-Entwickler, Ingenieur DevOps  | 

### Konfigurieren Sie IAM Identity Center und AWS Transform
<a name="configure-sso-and-trn"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Fügen Sie Benutzer zum IAM Identity Center hinzu. | Fügen Sie Ihre potenziellen Benutzer zum IAM Identity Center hinzu. Folgen Sie den Anweisungen unter [Hinzufügen von Benutzern in IAM Identity Center](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html#transform-add-idc-users) in der AWS Transform Dokumentation. | AWS-Administrator | 
| Benutzer aktivieren AWS Transform und hinzufügen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | AWS-Administrator | 
| Konfigurieren Sie den Benutzerzugriff auf die AWS Transform Webanwendung. | Jeder Benutzer muss die Einladung annehmen, um auf die AWS Transform Webanwendung zuzugreifen. Folgen Sie den Anweisungen in [der AWS Transform Dokumentation unter Annahme der Einladung](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-invitation). | App-Entwickler, App-Besitzer | 
| Loggen Sie sich in die AWS Transform Webanwendung ein. | Folgen Sie den Anweisungen [unter Anmelden bei AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-onboarding.html#transform-user-signin). | App-Entwickler, App-Besitzer | 
| Richten Sie einen Workspace ein. | Richten Sie einen Arbeitsbereich ein, in dem Benutzer in der AWS Transform Webanwendung zusammenarbeiten können. Folgen Sie den Anweisungen unter [Starten Sie Ihr Projekt](https://docs.aws.amazon.com/transform/latest/userguide/transform-environment.html#start-workflow) in der AWS Transform Dokumentation. | AWS-Administrator | 

### Transformieren Sie die Mainframe-Anwendung
<a name="transform-the-mainframe-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Transformationsjob. | Erstellen Sie einen Transformationsjob, um die CardDemo Mainframe-Anwendung zu modernisieren. Anweisungen finden Sie in der Dokumentation unter [Einen Job erstellen und starten](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-start-job). AWS Transform Wenn Sie in der AWS Transform Chat-Oberfläche aufgefordert werden, die Ziele festzulegen, wählen Sie **Mainframe-Modernisierung durchführen (IBM z/OS to AWS)** und dann **Code analysieren, Technische Dokumentation generieren, Geschäftslogik, Code zerlegen, Migrationssequenz planen und Code in Java umwandeln** aus. | App-Entwickler, App-Besitzer | 
| Richten Sie den Connector ein. | Richten Sie einen Connector zum Amazon S3 S3-Bucket ein, der die CardDemo Mainframe-Anwendung enthält. Dieser Konnektor ermöglicht AWS Transform den Zugriff auf Ressourcen im Bucket und die Ausführung aufeinanderfolgender Transformationsfunktionen. Anweisungen finden Sie in der AWS Transform Dokumentation unter [Einen Konnektor einrichten](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector). | AWS-Administrator | 
| Führen Sie eine Codeanalyse durch. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Weitere Informationen finden Sie in der AWS Transform Dokumentation unter [Codeanalyse](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-code-analysis). | App-Entwickler, App-Besitzer | 
| Generieren Sie technische Dokumentation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Weitere Informationen finden Sie in der [Dokumentation unter Generieren von technischer](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-generate-documentation) AWS Transform Dokumentation. | App-Entwickler, App-Besitzer | 
| Extrahieren Sie die Geschäftslogik. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Weitere Informationen finden Sie in der AWS Transform Dokumentation unter [Geschäftslogik extrahieren](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic). | App-Entwickler, App-Besitzer | 
| Zerlegen Sie den Code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Weitere Informationen zu Zersetzung und Samen finden Sie in der Dokumentation unter [Zersetzung](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-decomposition). AWS Transform  | App-Entwickler, App-Besitzer | 
| Planen Sie die Migrationswellen. | Planen Sie die Migrationswellen für die CardDemo Anwendung. Folgen Sie den Anweisungen unter [Planung der Migrationswelle](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-wave-planning) in der AWS Transform Dokumentation, um den Wellenplan zu überprüfen und zu bearbeiten. | App-Entwickler, App-Besitzer | 
| Refaktorieren Sie den Code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html) | App-Entwickler, App-Besitzer | 
| (Optional) Verwenden Sie Reforge, um den Java-Code zu verbessern. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Weitere Informationen finden Sie in der AWS Transform Dokumentation unter [Reforge](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-refactor-code-reforge). | App-Entwickler, App-Besitzer | 
| Rationalisieren Sie die Bereitstellung. | AWS Transform kann IaC-Vorlagen (Infrastructure as Code) für CloudFormation AWS CDK, oder Terraform bereitstellen. Diese Vorlagen helfen Ihnen bei der Bereitstellung von Kernkomponenten, einschließlich Rechen-, Datenbank-, Speicher- und Sicherheitsressourcen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)Weitere Informationen finden Sie in der Dokumentation unter [Bereitstellungsfunktionen](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-features-deployment). AWS Transform  | App-Entwickler, App-Besitzer | 

## Fehlerbehebung
<a name="modernize-carddemo-mainframe-app-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Sie können den Quellcode oder das generierte Dokument in der AWS Transform Webanwendung nicht anzeigen. | Fügen Sie der CORS-Berechtigung eine Richtlinie hinzu, die der Amazon S3 S3-Bucket AWS Transform als Ursprung zulassen soll. Weitere Informationen finden Sie in der Dokumentation unter [CORS-Berechtigungen für den AWS Transform S3-Bucket](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3). | 

## Zugehörige Ressourcen
<a name="modernize-carddemo-mainframe-app-resources"></a>

**AWS Dokumentation**
+ [Transformation von Mainframe-Anwendungen](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html) (AWS Transform Dokumentation)

**Andere Ressourcen AWS **
+ [Beschleunigen Sie Ihre Mainframe-Modernisierung mithilfe von KI-Agenten mit AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/) (AWS Blogbeitrag)
+ [AWS Transform FAQs](https://aws.amazon.com/transform/faq/)
+ [AWS IAM Identity Center FAQs](https://aws.amazon.com/iam/identity-center/faqs/)

**Videos und Tutorials**
+ [Einführung in Amazon Q Developer: Transform](https://explore.skillbuilder.aws/learn/courses/21893/aws-flash-introduction-to-amazon-q-developer-transform) (AWS Skill Builder)
+ [AWS re:Invent 2024 — Schnellere Modernisierung von Mainframe-Anwendungen mit Amazon](https://www.youtube.com/watch?v=pSi0XtYfY4o) Q Developer () YouTube
+ [AWS re:Invent 2024 — Automatisierung von Migration und Modernisierung zur](https://www.youtube.com/watch?v=9FjxnEoH5wg) Beschleunigung der Transformation () YouTube
+ [AWS re:Invent 2024 — Toyota treibt Innovationen voran und verbessert die betriebliche Effizienz](https://www.youtube.com/watch?v=_NXc1MJenw4) mit KI der Generation () YouTube

**Anmerkung**  
AWS Transform war zuvor als *Amazon Q Developer Transform for Mainframe* bekannt.

# Modernisieren und implementieren Sie Mainframe-Anwendungen mithilfe von Terraform AWS Transform
<a name="modernize-mainframe-app-transform-terraform"></a>

*Mason Cahill, Polaris Jhandi, Prachi Khanna, Sivasubramanian Ramani und Santosh Kumar Singh, Amazon Web Services*

## Zusammenfassung
<a name="modernize-mainframe-app-transform-terraform-summary"></a>

[AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)kann die groß angelegte Modernisierung von.NET, VMware Mainframe und Workloads beschleunigen. Es setzt spezialisierte KI-Agenten ein, die komplexe Aufgaben wie Bewertungen, Codeanalysen, Refactoring, Zerlegung, Zuordnung von Abhängigkeiten, Validierung und Transformationsplanung automatisieren. [Dieses Muster zeigt, wie eine Mainframe-Anwendung modernisiert und anschließend mithilfe AWS Transform von Hashicorp Terraform in der Infrastruktur bereitgestellt wird. AWS](https://developer.hashicorp.com/terraform/intro) Diese step-by-step Anweisungen helfen Ihnen bei der Transformation [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo), bei der es sich um eine Open-Source-Mainframe-Beispielanwendung handelt, von COBOL zu einer modernen Java-Anwendung.

## Voraussetzungen und Einschränkungen
<a name="modernize-mainframe-app-transform-terraform-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto
+ Administratorberechtigungen zum Erstellen von AWS Ressourcen und zum Bereitstellen von Anwendungen
+ [Terraform Version 1.5.7 oder höher, konfiguriert](https://developer.hashicorp.com/terraform/tutorials/aws-get-started?utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS)
+ AWS [Anbieter für Terraform, konfiguriert](https://registry.terraform.io/providers/hashicorp/aws/2.36.0/docs#authentication)
+ AWS IAM Identity Center[, aktiviert](https://docs.aws.amazon.com/singlesignon/latest/userguide/enable-identity-center.html)
+ AWS Transform, [aktiviert](https://docs.aws.amazon.com/transform/latest/userguide/getting-started.html)
+ Ein Benutzer, der in [einen AWS Transform Workspace mit einer Mitwirkendenrolle aufgenommen wurde](https://docs.aws.amazon.com/transform/latest/userguide/transform-user-management.html) und Transformationsjobs ausführen kann

**Einschränkungen**
+ AWS Transform ist nur in einigen verfügbar. AWS-Regionen Eine vollständige Liste der unterstützten Regionen finden Sie unter [Unterstützte Regionen für AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/regions.html).
+ Es gibt ein Servicekontingent für Mainframe-Transformationsfunktionen in AWS Transform. Weitere Informationen finden Sie unter [Kontingente für AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html).
+ Um an einem gemeinsamen Arbeitsbereich zusammenzuarbeiten, müssen alle Benutzer registrierte Benutzer derselben Instanz sein AWS IAM Identity Center , die mit Ihrer Instanz der AWS Transform Webanwendung verknüpft ist.
+ Der Amazon Simple Storage Service (Amazon S3) -Bucket AWS Transform muss sich in derselben AWS-Konto Region befinden.

## Architektur
<a name="modernize-mainframe-app-transform-terraform-architecture"></a>

Das folgende Diagramm zeigt die end-to-end Modernisierung der Legacy-Anwendung und deren Bereitstellung für AWS Cloud. Anwendungs- und Datenbankanmeldedaten werden in gespeichert AWS Secrets Manager, und Amazon CloudWatch bietet Überwachungs- und Protokollierungsfunktionen.

![\[AWS Transform modernisiert eine Mainframe-Anwendung und Bereitstellung über Terraform.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/78bc1e6e-cd3d-4c6d-ae4b-0675a6898fd9/images/332ccf35-f55a-449e-a05d-7e321b3867b7.png)


Das Diagramm zeigt den folgenden Workflow:

1. Durch authentifiziert AWS IAM Identity Center sich der Benutzer und greift auf den zu. AWS Transform AWS-Konto

1. Der Benutzer lädt den COBOL-Mainframe-Code in den Amazon S3 S3-Bucket hoch und initiiert die Transformation in. AWS Transform

1. AWS Transform modernisiert den COBOL-Code in Cloud-nativen Java-Code und speichert den modernisierten Code im Amazon S3 S3-Bucket.

1. Terraform erstellt die AWS Infrastruktur für die Bereitstellung der modernisierten Anwendung, einschließlich eines Application Load Balancer, einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance und einer Amazon Relational Database Service (Amazon RDS) -Datenbank. Terraform stellt den modernisierten Code auf der Amazon EC2 EC2-Instance bereit.

1. Die VSAM-Dateien werden auf Amazon EC2 hochgeladen und von Amazon EC2 in die Amazon RDS-Datenbank migriert.

## Tools
<a name="modernize-mainframe-app-transform-terraform-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) bietet sichere und skalierbare Rechenkapazität in der AWS Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren. In diesem Muster werden SQL Server-Failover-Cluster-Instances auf Amazon EC2 EC2-Instances installiert.
+ [AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)hilft Ihnen dabei, den Single Sign-On-Zugriff (SSO) auf Ihre AWS-Konten und Cloud-Anwendungen zentral zu verwalten.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der. AWS Cloud
+ Mit [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) können Sie fest codierte Anmeldeinformationen im Code (einschließlich Passwörter) durch einen API-Aufruf an Secrets Manager ersetzen und das Geheimnis programmgesteuert abrufen.
+ [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 Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)verwendet agentische KI, um Ihnen zu helfen, die Modernisierung älterer Workloads wie .NET, Mainframe und Workloads zu beschleunigen. VMware 

**Andere Tools**
+ [Apache Maven](https://maven.apache.org/) ist ein Open-Source-Software-Projektmanagement- und Build-Automatisierungstool für Java-Projekte.
+ [Apache Tomcat](https://tomcat.apache.org/) ist ein Open-Source-Servlet-Container und Webserver für Java-Code.
+ [HashiCorp Terraform](https://www.terraform.io/docs) ist ein IaC-Tool (Infrastructure as Code), mit dem Sie mithilfe von Code Cloud-Infrastruktur und -Ressourcen bereitstellen und verwalten können.
+ [Spring Boot](https://spring.io/projects/spring-boot) ist ein Open-Source-Framework, das auf dem Spring Framework in Java aufbaut.

**Code-Repository**

Der Code für dieses Muster ist im GitHub [Mainframe Transformation E2E-Repository](https://github.com/aws-samples/sample-mainframe-transformation-e2e) verfügbar. Dieses Muster verwendet die AWS [CardDemo](https://github.com/aws-samples/aws-mainframe-modernization-carddemo)Open-Source-Mainframe-Anwendung als Beispielanwendung.

## Best Practices
<a name="modernize-mainframe-app-transform-terraform-best-practices"></a>
+ Weisen Sie den vollen Besitz von Code und Ressourcen zu, die für die Migration vorgesehen sind.
+ Entwickeln und testen Sie einen Machbarkeitsnachweis, bevor Sie auf eine vollständige Migration skalieren.
+ Sicheres Engagement aller Beteiligten.
+ Richten Sie klare Kommunikationskanäle ein.
+ Definieren und dokumentieren Sie die Mindestanforderungen für lebensfähige Produkte (MVP).
+ Legen Sie klare Erfolgskriterien fest.

## Epen
<a name="modernize-mainframe-app-transform-terraform-epics"></a>

### Bereiten Sie den Mainframe-Anwendungscode vor und laden Sie ihn hoch
<a name="prepare-and-upload-the-mainframe-application-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen Bucket. | Erstellen Sie einen Amazon S3 S3-Bucket in derselben AWS-Konto Region, in der er aktiviert AWS Transform ist. Sie verwenden diesen Bucket, um den Mainframe-Anwendungscode, Daten und zusätzliche Skripts zu speichern, die für die Erstellung und Ausführung der Anwendung erforderlich sind. AWS Transform verwendet diesen Bucket, um den umgestalteten Code und andere mit der Transformation verknüpfte Dateien zu speichern. Anweisungen finden Sie in der Amazon S3 S3-Dokumentation unter [Bucket erstellen](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). | Allgemein AWS, AWS-Administrator | 
| Legen Sie die CORS-Berechtigungen für den Bucket fest. | Wenn Sie Ihren Bucket für AWS Transform den Zugriff einrichten, müssen Sie Cross-Origin Resource Sharing (CORS) für den Bucket konfigurieren. Wenn dies nicht korrekt eingerichtet ist, können Sie möglicherweise die Funktionen für die Inline-Anzeige oder den Dateivergleich von nicht verwenden. AWS Transform Anweisungen zur Konfiguration von CORS für einen Bucket finden Sie unter [Using Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html) im Amazon S3 S3-Bucket. Informationen zur Richtlinie finden Sie in der Dokumentation unter [CORS-Berechtigungen für den S3-Bucket](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-setup-connector-s3). AWS Transform  | Allgemein AWS, AWS-Administrator | 
| Bereiten Sie den Beispielcode für die Mainframe-Anwendung vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Allgemein AWS, App-Entwickler | 

### Transformieren Sie die Mainframe-Anwendung
<a name="transform-the-mainframe-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie den AWS Transform Job ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, App-Besitzer | 
| Richten Sie einen Connector ein. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, App-Besitzer | 
| Transformieren Sie den Code. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, App-Besitzer | 

### Stellen Sie die Infrastruktur über Terraform bereit
<a name="deploy-the-infrastructure-through-terraform"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktualisieren Sie die Vorlagen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html)Für produktive oder produktionsähnliche Umgebungen konfigurieren Sie zusätzliche Sicherheitskomponenten. Aktivieren Sie beispielsweise [AWS WAF Schutzmaßnahmen für Ihren Application Load Balancer](https://aws.amazon.com/about-aws/whats-new/2024/02/aws-application-load-balancer-one-click-waf-integrations/). | Allgemein AWS, AWS-Administrator | 
| Stellen Sie die Infrastruktur bereit. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Terraform | 

### Installieren und konfigurieren Sie Apache Tomcat auf der Amazon EC2 EC2-Instance
<a name="install-and-configure-apache-tomcat-on-the-ec2-instance"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die erforderliche Software. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 
| Überprüfen Sie die Softwareinstallation. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 

### Kompilieren und verpacken Sie den modernisierten Anwendungscode
<a name="compile-and-package-the-modernized-application-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Laden Sie den generierten Code herunter und extrahieren Sie ihn. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 
| Erstellen Sie die modernisierte Anwendung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 

### Migrieren Sie die Datenbank
<a name="migrate-the-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie die Datenbank und die JICS-Schemas. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 
| Validieren Sie die Datenbankerstellung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 
| Migrieren Sie Daten in die JICS-Datenbank. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 

### Installieren Sie die modernisierte Anwendung
<a name="install-the-modernized-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie die modernisierte Anwendung auf der Amazon EC2 EC2-Instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Cloud-Architekt | 
| Starten Sie den Tomcat-Server neu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Cloud-Architekt | 
| Migrieren Sie den VSAM-Datensatz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Migrationsingenieur | 
| Aktualisieren Sie die Parameter in den Groovy-Skripten. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Developer | 

### Testen der Anwendung
<a name="test-the-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Testen Sie die modernisierte Anwendung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Testingenieur | 
| Überprüfen Sie die Batch-Skripte. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | App-Entwickler, Testingenieur | 

### Bereinigen
<a name="clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Bereiten Sie sich darauf vor, die Infrastruktur zu löschen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Allgemeines AWS | 
| Löschen Sie die Infrastruktur. | Durch diese Schritte werden Ihre Ressourcen dauerhaft gelöscht. Stellen Sie sicher, dass Sie alle wichtigen Daten gesichert haben, bevor Sie fortfahren.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | Allgemeines AWS | 

## Fehlerbehebung
<a name="modernize-mainframe-app-transform-terraform-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Terraform-Authentifizierung | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| Fehler im Zusammenhang mit Tomcat | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-app-transform-terraform.html) | 
| URL-Name wird nicht geladen | Stellen Sie sicher, dass die Application Load Balancer Balancer-Sicherheitsgruppe Ihre IP-Adresse in der Regel für eingehenden Datenverkehr als Quelle hat. | 
| Authentifizierungsproblem im Tomcat-Protokoll | Vergewissern Sie sich, dass das geheime Datenbankkennwort in AWS Secrets Manager und das Passwort in **server.xml** übereinstimmen. | 

## Zugehörige Ressourcen
<a name="modernize-mainframe-app-transform-terraform-resources"></a>

**AWS Präskriptive Leitlinien**
+ [Modernisieren Sie die CardDemo Mainframe-Anwendung mithilfe von AWS Transform](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-carddemo-mainframe-app.html)

**AWS Servicedokumentation**
+ [AWS Blue Age Bluesam Administrationskonsole](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-bac-userguide.html)
+ [Voraussetzungen für die Einrichtung der Infrastruktur für AWS Blu Age Runtime (nicht verwaltet)](https://docs.aws.amazon.com/m2/latest/userguide/ba-infrastructure-setup.html)
+ [Einführung in AWS Blu Age Runtime](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-setup-onboard.html)
+ [Modernisierung von Mainframe-Anwendungen](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/transform-app-mainframe.html)
+ [Richten Sie die Konfiguration für AWS Blu Age Runtime ein](https://docs.aws.amazon.com/m2/latest/userguide/ba-runtime-config.html)

**AWS Blog-Beiträge**
+ [Beschleunigen Sie Ihre Mainframe-Modernisierung mithilfe von KI-Agenten mit AWS Transform](https://aws.amazon.com/blogs/migration-and-modernization/accelerate-your-mainframe-modernization-journey-using-ai-agents-with-aws-transform/)

# Modernisieren Sie das Mainframe-Output-Management mithilfe AWS von Rocket Enterprise Server und LRS X PageCenter
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx"></a>

*Shubham Roy, Amazon Web Services*

*Abraham Rondon, Mikrofokus*

*Guy Tucker, Levi, Ray und Shoup Inc*

## Zusammenfassung
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-summary"></a>

Durch die Modernisierung Ihres Mainframe-Output-Managements können Sie Kosteneinsparungen erzielen, den technischen Aufwand für die Wartung älterer Systeme verringern und die Ausfallsicherheit und Agilität mithilfe DevOps der Cloud-nativen Technologien von Amazon Web Services (AWS) verbessern. Dieses Muster zeigt Ihnen, wie Sie Ihre geschäftskritischen Mainframe-Output-Management-Workloads in der AWS-Cloud modernisieren können. Das Muster verwendet [Rocket Enterprise Server](https://www.rocketsoftware.com/en-us/products/enterprise-suite/enterprise-server) als Laufzeit für eine modernisierte Mainframe-Anwendung, wobei Levi, Ray & Shoup, Inc. (LRS) VPSX/MFI (Micro Focus Interface) als Druckserver und LRS X als Archivserver verwendet werden. PageCenter LRS PageCenter X bietet Output-Management-Lösungen für die Anzeige, Indizierung, Suche, Archivierung und Sicherung des Zugriffs auf Geschäftsergebnisse.

Das Muster basiert auf dem Ansatz der [Replatform](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Mainframe-Modernisierung. Mainframe-Anwendungen werden von [AWS Mainframe Modernization](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) auf Amazon Elastic Compute Cloud (Amazon) migriert. EC2 Mainframe-Output-Management-Workloads werden zu Amazon migriert EC2, und eine Mainframe-Datenbank (wie IBM Db2 forz/OS, is migrated to Amazon Relational Database Service (Amazon RDS). The LRS Directory Integration Server (LRS/DIS) arbeitet mit AWS Directory Service für Microsoft Active Directory für die Workflow-Authentifizierung und Autorisierung des Output-Management-Workflows zusammen.

## Voraussetzungen und Einschränkungen
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto.
+ Ein Mainframe-Workload für das Output-Management.
+ Grundkenntnisse zum Wiederaufbau und zur Bereitstellung einer Mainframe-Anwendung, die auf Rocket Enterprise Server läuft. Weitere Informationen finden Sie im [Rocket Enterprise Server-Datenblatt](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) in der Rocket Software-Dokumentation.
+ Grundkenntnisse der Cloud-Printing-Lösungen und -Konzepte von LRS. Weitere Informationen finden Sie unter *Output Modernization* in der LRS-Dokumentation.
+ Rocket Enterprise Server-Software und -Lizenz. Für weitere Informationen wenden Sie sich an [Rocket Software](https://www.rocketsoftware.com/products/enterprise-suite/request-contact).
+ VPSX/MFI, LRS PageCenterX, LRS/Queue, and LRS/DISLRS-Software und -Lizenzen. Weitere Informationen erhalten Sie bei [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/). Sie müssen die Hostnamen der EC2 Instanzen angeben, auf denen die LRS-Produkte installiert werden.


| 
| 
| Hinweis: Weitere Informationen zu Überlegungen zur Konfiguration von Mainframe-Output-Management-Workloads finden Sie unter *Überlegungen* im Abschnitt [Zusätzliche](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional) Informationen dieses Musters. | 
| --- |

**Produktversionen**
+ [Rocket Enterprise Server 10.0](https://www.rocketsoftware.com/products/enterprise-suite/enterprise-test-server)
+ [LRS VPSX/MFI](https://www.lrsoutputmanagement.com/products/modernization-products/)
+ [LRS X V1R3 oder später PageCenter](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/)

## Architektur
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-architecture"></a>

**Quelltechnologie-Stack**
+ Betriebssystem — IBM z/OS
+ Programmiersprache — Common Business Oriented Language (COBOL), Job Control Language (JCL) und Customer Information Control System (CICS)
+ Datenbank — IBM Db2 für z/OS, IBM Information Management System (IMS) -Datenbank und Virtual Storage Access Method (VSAM)
+ Sicherheit — Resource Access Control Facility (RACF), CA Top Secret für z/OS und Access Control Facility 2 () ACF2
+ Druck- und Archivierungslösungen — IBM z/OS Mainframe-Ausgabe- und Druckprodukte (IBM Infoprint Server for z/OS, LRS und CA Deliver) und Archivierungslösungen (CA Deliver, ASG Mobius oder CA Bundle)

**Quellarchitektur**

Das folgende Diagramm zeigt eine typische aktuelle Architektur für einen Mainframe-Output-Management-Workload.

![\[Mainframe-Ausgabeprozess in sieben Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/d170394a-c9b2-43c0-a3d4-677b5f7c2473.png)


Das Diagramm zeigt den folgenden Workflow:

1. Benutzer führen Geschäftstransaktionen auf einem System of Engagement (SoE) durch, das auf einer in COBOL geschriebenen IBM CICS-Anwendung basiert.

1. Das SoE ruft den Mainframe-Service auf, der die Geschäftstransaktionsdaten in einer system-of-records (SoR) -Datenbank wie IBM Db2 for z/OS aufzeichnet.

1. Das SoR speichert die Geschäftsdaten aus dem SoE.

1. Der Batch-Job-Scheduler initiiert einen Batch-Job, um eine Druckausgabe zu generieren.

1. Der Batch-Job extrahiert Daten aus der Datenbank. Er formatiert die Daten entsprechend den Geschäftsanforderungen und generiert anschließend Geschäftsergebnisse wie Abrechnungen, Personalausweise oder Kreditauszüge. Schließlich leitet der Batch-Job die Ausgabe an das Output Management weiter, um die Ausgabe entsprechend den Geschäftsanforderungen zu formatieren, zu veröffentlichen und zu speichern.

1. Das Output-Management empfängt die Ausgabe des Batch-Jobs. Output Management indexiert, ordnet und veröffentlicht die Ausgabe an einem bestimmten Ziel im Output-Management-System, z. B. LRS PageCenter X-Lösungen (wie in diesem Muster gezeigt) oder CA View.

1. Benutzer können die Ausgabe anzeigen, suchen und abrufen.

**Zieltechnologie-Stack**
+ Betriebssystem — Windows Server läuft auf Amazon EC2
+ Rechnen — Amazon EC2
+ Speicher — Amazon Elastic Block Store (Amazon EBS) und Amazon FSx für Windows File Server
+ Programmiersprache — COBOL, JCL und CICS
+ Datenbank — Amazon RDS
+ Sicherheit — AWS Managed Microsoft AD
+ Drucken und Archivieren — LRS-Druck- (VPSX) und Archivierungslösung (PageCenterX) auf AWS
+ Mainframe-Laufzeitumgebung — Rocket Enterprise Server

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur für einen Mainframe-Output-Management-Workload, der in der AWS-Cloud bereitgestellt wird.

![\[Zielarchitektur für Batch-Anwendungs- und Output-Management in sieben Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/3e25ab03-bf3a-4fea-b5eb-38cea9e50138.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Batch-Job-Scheduler initiiert einen Batch-Job, um Ausgaben wie Abrechnungen, Personalausweise oder Kreditauszüge zu erstellen.

1. Der Mainframe-Batch-Job ([auf Amazon umgestellt EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) verwendet die Rocket Enterprise Server-Laufzeit, um Daten aus der Anwendungsdatenbank zu extrahieren, Geschäftslogik auf die Daten anzuwenden und die Daten zu formatieren. Anschließend werden die Daten mithilfe des [Druckerexit-Moduls von Rocket Software](https://www.microfocus.com/documentation/enterprise-developer/ed100/ED-Eclipse/HCOMCMJCLOU020.html) (OpenText Micro Focus-Dokumentation) an ein Ausgabeziel gesendet.

1. Die Anwendungsdatenbank (ein SoR, der auf Amazon RDS läuft) speichert Daten für die Druckausgabe.

1. Die VPSX/MFI LRS-Drucklösung wird auf Amazon EC2 bereitgestellt und ihre Betriebsdaten werden in Amazon EBS gespeichert. LRS VPSX/MFI verwendet den TCP/IP-based LRS/Queue Übertragungsagenten, um Ausgabedaten über die JES Print Exit API von Rocket Software zu sammeln.

   LRS VPSX/MFI führt eine Datenvorverarbeitung durch, z. B. die Umwandlung von EBCDIC in ASCII. Es erledigt auch komplexere Aufgaben, einschließlich der Konvertierung von Mainframe-exklusiven Datenströmen wie IBM Advanced Function Presentation (AFP) und Xerox Line Conditioned Data Stream (LCDS) in gängigere Datenströme zum Anzeigen und Drucken wie Printer Command Language (PCL) und PDF.

   Während des Wartungsfensters von LRS PageCenter X behält LRS die Ausgabewarteschlange bei und dient als Backup für die VPSX/MFI Ausgabewarteschlange. LRS VPSX/MFI stellt mithilfe des Protokolls eine Verbindung her und sendet die Ausgabe an LRS PageCenter X. LRS/Queue LRS/Queue führt einen Austausch zwischen Bereitschaft und Abschluss der Aufträge durch, um sicherzustellen, dass die Datenübertragung stattfindet.

   **Hinweise:**

   Weitere Informationen zu Druckdaten, die von Rocket Software Print Exit an Mainframe-Batchmechanismen weitergegeben werden, LRS/Queue und zu den von LRS VPSX/MFI unterstützten Batchmechanismen finden Sie unter *Druckdatenerfassung* im Abschnitt [Zusätzliche Informationen](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

   LRS VPSX/MFI kann Zustandsprüfungen auf Ebene der Druckerflotte durchführen. Weitere Informationen finden Sie im Abschnitt „[Zusätzliche Informationen](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)“ dieses Musters unter „*Printer-Fleet Health Checks*“.

1. Die Output-Management-Lösung LRS PageCenter X wird auf Amazon bereitgestellt EC2, und ihre Betriebsdaten werden in Amazon FSx for Windows File Server gespeichert. LRS PageCenter X bietet ein zentrales Berichtsverwaltungssystem für alle in LRS PageCenter X importierten Dateien sowie für alle Benutzer, die auf die Dateien zugreifen können. Benutzer können bestimmte Dateiinhalte anzeigen oder in mehreren Dateien nach übereinstimmenden Kriterien suchen.

   Bei der LRS/NetX Komponente handelt es sich um einen Webanwendungsserver mit mehreren Threads, der eine gemeinsame Laufzeitumgebung für die LRS PageCenter X-Anwendung und andere LRS-Anwendungen bereitstellt. Die LRS/Web Connect-Komponente ist auf Ihrem Webserver installiert und stellt einen Connector vom Webserver zum LRS/NetX Webanwendungsserver bereit.

1. LRS PageCenter X bietet Speicher für Dateisystemobjekte. Die Betriebsdaten von LRS PageCenter X werden in Amazon FSx for Windows File Server gespeichert.

1. Die Authentifizierung und Autorisierung des Output-Managements erfolgt durch AWS Managed Microsoft AD mit LRS/DIS.

**Anmerkung**  
Die Ziellösung erfordert in der Regel keine Anwendungsänderungen, um Mainframe-Formatierungssprachen wie IBM AFP oder Xerox LCDS zu berücksichtigen.

**AWS-Infrastrukturarchitektur**

Das folgende Diagramm zeigt eine hochverfügbare und sichere AWS-Infrastrukturarchitektur für einen Mainframe-Output-Management-Workload.

![\[Multi-AZ-AWS-Infrastruktur mit einem Workflow in sieben Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/images/8d8aa995-b576-4ecd-8a7c-5f566740a515.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Batch-Scheduler initiiert den Batch-Prozess und wird auf Amazon EC2 in mehreren [Availability Zones](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) für hohe Verfügbarkeit (HA) bereitgestellt.
**Anmerkung**  
Dieses Muster deckt die Implementierung des Batch-Schedulers nicht ab. Weitere Informationen zur Implementierung finden Sie in der Dokumentation des Softwareanbieters für Ihren Scheduler.

1. Der Mainframe-Batchjob (geschrieben in einer Programmiersprache wie JCL oder COBOL) verwendet die Kerngeschäftslogik, um Druckausgaben wie Abrechnungen, Ausweise und Kreditauszüge zu verarbeiten und zu generieren. Der Batch-Job wird auf Amazon EC2 in zwei Availability Zones für HA bereitgestellt. Es verwendet die Rocket Software Print Exit API, um die Druckausgabe VPSX/MFI zur Datenvorverarbeitung an LRS weiterzuleiten.

1. Der VPSX/MFI LRS-Druckserver wird auf Amazon EC2 in zwei Availability Zones für HA (redundantes Active-Standby-Paar) bereitgestellt. Es verwendet [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) als Betriebsdatenspeicher. Der Network Load Balancer führt eine Integritätsprüfung der VPSX/MFI EC2 LRS-Instances durch. Wenn sich eine aktive Instance in einem fehlerhaften Zustand befindet, leitet der Load Balancer den Datenverkehr an Hot-Standby-Instances in der anderen Availability Zone weiter. Die Druckanforderungen werden in jeder Instanz lokal in der LRS-Auftragswarteschlange gespeichert. EC2 Im Falle eines Fehlers muss eine ausgefallene Instanz neu gestartet werden, bevor die LRS-Dienste die Verarbeitung der Druckanforderung fortsetzen können.
**Anmerkung**  
LRS VPSX/MFI kann auch Zustandsprüfungen auf Ebene der Druckerflotte durchführen. Weitere Informationen finden Sie im Abschnitt „[Zusätzliche Informationen](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional)“ dieses Musters unter „*Printer-Fleet Health Checks*“.

1. Das LRS PageCenter X-Output-Management wird auf Amazon EC2 in zwei Availability Zones für HA (redundantes Active-Standby-Paar) bereitgestellt. Es verwendet [Amazon FSx for Windows File Server](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/what-is.html) als Betriebsdatenspeicher. Wenn sich eine aktive Instance in einem fehlerhaften Zustand befindet, führt der Load Balancer eine Integritätsprüfung der LRS PageCenter EC2 X-Instances durch und leitet den Datenverkehr an Standby-Instances in der anderen Availability Zone weiter.

1. Ein [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) stellt einen DNS-Namen zur Integration des VPSX/MFI LRS-Servers in LRS X bereit. PageCenter
**Anmerkung**  
LRS PageCenter X unterstützt einen Layer-4-Load Balancer.

1. LRS PageCenter X verwendet Amazon FSx for Windows File Server als Betriebsdatenspeicher, der in zwei Availability Zones für HA bereitgestellt wird. LRS PageCenter X versteht nur Dateien, die sich in der Dateifreigabe befinden, nicht in einer externen Datenbank.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) wird mit verwendet, LRS/DIS um die Workflow-Authentifizierung und Autorisierung im Output-Management-Workflow durchzuführen. Weitere Informationen finden Sie unter *Authentifizierung und Autorisierung der Druckausgabe* im Abschnitt [Zusätzliche Informationen](#modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional).

## Tools
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-tools"></a>

**AWS-Services**
+ [AWS Directory Service für Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) ermöglicht Ihren verzeichnissensitiven Workloads und AWS-Ressourcen die Nutzung von Microsoft Active Directory in der AWS-Cloud.
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) bietet Speichervolumes auf Blockebene zur Verwendung mit Amazon Elastic Compute Cloud (Amazon EC2) -Instances.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [Elastic Load Balancing (ELB)](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) verteilt eingehenden Anwendungs- oder Netzwerkverkehr auf mehrere Ziele. Sie können beispielsweise den Traffic auf EC2 Amazon-Instances, Container und IP-Adressen in einer oder mehreren Availability Zones verteilen. Dieses Muster verwendet einen Network Load Balancer.
+ [Amazon FSx](https://docs.aws.amazon.com/fsx/?id=docs_gateway) bietet Dateisysteme, die branchenübliche Konnektivitätsprotokolle unterstützen und Hochverfügbarkeit und Replikation in allen AWS-Regionen bieten. Dieses Muster verwendet Amazon FSx for Windows File Server.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.

**Andere Tools**
+ Die [LRS PageCenter X-Software](https://www.lrsoutputmanagement.com/products/content-management/pagecenterx-for-open-systems/) bietet eine skalierbare Content-Management-Lösung für Dokumente und Berichte, mit der Benutzer mithilfe automatisierter Indexierung, Verschlüsselung und erweiterter Suchfunktionen maximalen Nutzen aus Informationen ziehen können.
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), das von LRS und Rocket Software gemeinsam entwickelt wurde, erfasst die Ausgabe von einem JES-Spool von Rocket Software und überträgt sie zuverlässig an ein bestimmtes Druckziel.
+ LRS/Queue is a transmission agent that’s TCP/IP based. LRS VPSX/MFI uses LRS/Queueum Druckdaten über die JES Print Exit-Programmierschnittstelle von Rocket Software zu sammeln oder zu erfassen.
+ Der LRS Directory Integration Server (LRS/DIS) wird für die Authentifizierung und Autorisierung während des Druckworkflows verwendet.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed80/ES-WIN/GUID-F7D8FD6E-BDE0-4169-8D8C-96DDFFF6B495.html) ist eine Umgebung zur Anwendungsbereitstellung für Mainframe-Anwendungen. Sie bietet die Laufzeitumgebung für Mainframe-Anwendungen, die mithilfe einer beliebigen Version von Rocket Enterprise Developer migriert oder erstellt wurden.

## Epen
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-epics"></a>

### Richten Sie die Rocket-Laufzeit ein und stellen Sie eine Mainframe-Batch-Anwendung bereit
<a name="set-up-the-rocket-runtime-and-deploy-a-mainframe-batch-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie die Runtime ein und stellen Sie eine Demo-Anwendung bereit. | Um Rocket Enterprise Server auf Amazon einzurichten EC2 und die BankDemo Demonstrationsanwendung von Rocket Software bereitzustellen, folgen Sie den Anweisungen im AWS Mainframe Modernization [User](https://docs.aws.amazon.com/m2/latest/userguide/mf-runtime-setup.html) Guide.Die BankDemo Anwendung ist eine Mainframe-Batch-Anwendung, die die Druckausgabe erstellt und dann initiiert. | Cloud-Architekt | 

### Richten Sie einen LRS-Druckserver bei Amazon ein EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon EC2 Windows-Instance. | Um eine Amazon EC2 Windows-Instance zu starten, folgen Sie den Anweisungen unter [Starten einer EC2 Amazon-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) in der EC2 Amazon-Dokumentation. Verwenden Sie denselben Hostnamen, den Sie für Ihre LRS-Produktlizenz verwendet haben.Ihre Instance muss die folgenden Hardware- und Softwareanforderungen für LRS VPSX/MFI erfüllen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Die oben genannten Hardware- und Softwareanforderungen sind für eine kleine Druckerflotte (etwa 500-1000) vorgesehen. Um die vollständigen Anforderungen zu erfahren, wenden Sie sich an Ihre LRS- und AWS-Ansprechpartner.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Installieren Sie LRS VPSX/MFI auf der EC2 Instanz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Installieren Sie LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Installieren Sie LRS/DIS. | Das LRS/DIS Produkt ist häufig in der LRS VPSX-Installation enthalten. Wenn LRS/DIS es jedoch nicht zusammen mit LRS VPSX installiert wurde, gehen Sie wie folgt vor, um es zu installieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie eine Zielgruppe. | Erstellen Sie eine Zielgruppe, indem Sie den Anweisungen unter [Erstellen einer Zielgruppe für Ihren Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) folgen. Wenn Sie die Zielgruppe erstellen, registrieren Sie die VPSX/MFI EC2 LRS-Instanz als Ziel:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie einen Network Load Balancer. | Folgen Sie den Anweisungen in der [Elastic Load Balancing-Dokumentation, um den Network Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancer zu erstellen. Ihr Network Load Balancer leitet den Verkehr vom Rocket Enterprise Server zur VPSX/MFI EC2 LRS-Instance weiter.Wenn Sie den Network Load Balancer erstellen, wählen Sie auf der Seite **Listener und Routing** die folgenden Werte aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 

### Integrieren Sie Rocket Enterprise Server mit LRS/Queue und LRS VPSX/MFI
<a name="integrate-rocket-enterprise-server-with-lrs-queue-and-lrs-vpsx-mfi"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie Rocket Enterprise Server für die LRS/Queue Integration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Konfigurieren Sie Rocket Enterprise Server für die VPSX/MFI LRS-Integration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 

### Richten Sie die Druckwarteschlange und die Druckbenutzer ein
<a name="set-up-the-print-queue-and-the-print-users"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ordnen Sie das Rocket Software Print Exit-Modul dem Serverausführungsprozess des Rocket Enterprise Server-Batchdruckers zu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie eine Druckausgabewarteschlange in LRS VPSX/MFI und integrieren Sie sie in PageCenter LRS X. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie einen Druckbenutzer in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 

### Richten Sie einen LRS PageCenter X-Server bei Amazon ein EC2
<a name="set-up-an-lrs-pagecenterx-server-on-amazon-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Amazon EC2 Windows-Instance. | Starten Sie eine Amazon EC2 Windows-Instance, indem Sie den Anweisungen in [Schritt 1: Starten einer Instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) in der EC2 Amazon-Dokumentation folgen. Verwenden Sie denselben Hostnamen, den Sie für Ihre LRS-Produktlizenz verwendet haben.Ihre Instance muss die folgenden Hardware- und Softwareanforderungen für PageCenter LRS X erfüllen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html)Die oben genannten Hardware- und Softwareanforderungen sind für eine kleine Druckerflotte (etwa 500—1000) vorgesehen. Um die vollständigen Anforderungen zu erfahren, wenden Sie sich an Ihre LRS- und AWS-Ansprechpartner.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Installieren Sie LRS PageCenter X auf der EC2 Instanz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Installieren Sie LRS/DIS. | Das LRS/DIS Produkt ist häufig in der LRS VPSX-Installation enthalten. Wenn LRS/DIS es jedoch nicht zusammen mit LRS VPSX installiert wurde, gehen Sie wie folgt vor, um es zu installieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie eine Zielgruppe. | Erstellen Sie eine Zielgruppe, indem Sie den Anweisungen unter [Erstellen einer Zielgruppe für Ihren Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) folgen. Wenn Sie die Zielgruppe erstellen, registrieren Sie die LRS PageCenter EC2 X-Instance als Ziel:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie einen Network Load Balancer. | Folgen Sie den Anweisungen in der [Elastic Load Balancing-Dokumentation, um den Network Load](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) Balancer zu erstellen. Ihr Network Load Balancer leitet den Datenverkehr von LRS VPSX/MFI zur LRS X-Instance weiter PageCenter. EC2 Wenn Sie den Network Load Balancer erstellen, wählen Sie auf der Seite **Listener und Routing** die folgenden Werte aus:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 

### Richten Sie Output-Management-Funktionen in LRS X ein PageCenter
<a name="set-up-output-management-features-in-lrs-pagecenterx"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktivieren Sie die Importfunktion in LRS X. PageCenter | Sie können die LRS PageCenter X-Importfunktion verwenden, um die Ausgaben, die auf LRS PageCenter X landen, anhand von Kriterien wie Jobname oder Formular-ID zu erkennen. Anschließend können Sie die Ausgaben an bestimmte Ordner in LRS X weiterleiten. PageCenterGehen Sie wie folgt vor, um die Importfunktion zu aktivieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Konfigurieren Sie die Richtlinie zur Aufbewahrung von Dokumenten. | LRS PageCenter X verwendet eine Richtlinie zur Aufbewahrung von Dokumenten, um zu entscheiden, wie lange ein Dokument in PageCenter LRS X aufbewahrt werden soll.Gehen Sie wie folgt vor, um die Richtlinie zur Aufbewahrung von Dokumenten zu konfigurieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie eine Regel, um das Ausgabedokument an einen bestimmten Ordner in LRS PageCenter X weiterzuleiten. | **In LRS PageCenter X bestimmt **Destination** den Ordnerpfad, an den die Ausgabe gesendet wird, wenn dieses Ziel von der Berichtsdefinition aufgerufen wird.** Erstellen Sie für dieses Beispiel einen Ordner, der auf dem **Formular-ID-Ordner** in der Berichtsdefinition basiert, und speichern Sie die Ausgabe in diesem Ordner.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie eine Berichtsdefinition. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 

### Richten Sie Authentifizierung und Autorisierung für das Output-Management ein
<a name="set-up-authentication-and-authorization-for-output-management"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine von AWS verwaltete Microsoft AD-Domain mit Benutzern und Gruppen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Verbinden Sie die EC2 Instances mit einer von AWS verwalteten Microsoft AD-Domain. | Verbinden Sie die LRS VPSX/MFI - und LRS PageCenter EC2 X-Instances [automatisch](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (AWS Knowledge Center-Dokumentation) oder [manuell](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (AWS Directory Service-Dokumentation) mit Ihrer AWS Managed Microsoft AD-Domain. | Cloud-Architekt | 
| Konfiguration und Integration LRS/DIS mit AWS Managed Microsoft AD für die LRS PageCenter EC2 X-Instance. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Konfigurieren Sie eine Importgruppe, um die Ausgabe von LRS VPSX nach LRS X zu importieren. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Fügen Sie der Importgruppe eine Sicherheitsregel hinzu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Erstellen Sie in LRS PageCenter X einen Benutzer, um den Ausgabeimport von LRS VPSX/MFI durchzuführen.  | Wenn Sie in LRS PageCenter X einen Benutzer für den Ausgabeimport erstellen, sollte der Benutzername mit der **VPSX-ID der Druckausgabewarteschlange in LRS VPSX/MFI** identisch sein. In diesem Beispiel lautet die VPSX-ID. **VPS1**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Fügen Sie den LRS PageCenter X-Import-Benutzer der Gruppe Nur importieren hinzu. | Gehen Sie wie folgt vor, um die erforderlichen Berechtigungen für den Dokumentenimport von LRS VPSX nach LRS PageCenter X zu erteilen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 
| Konfigurieren Sie LRS/DIS mit AWS Managed Microsoft AD für die VPSX/MFI EC2 LRS-Instanz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 

### Amazon FSx für Windows File Server als Betriebsdatenspeicher für LRS X PageCenter konfigurieren
<a name="configure-amazon-fsx-for-windows-file-server-as-the-operational-data-store-for-lrs-pagecenterx"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie ein Dateisystem für LRS X. PageCenter | Um Amazon FSx for Windows File Server als Betriebsdatenspeicher für LRS PageCenter X in einer Multi-AZ-Umgebung zu verwenden, folgen Sie den Anweisungen in [Schritt 1: Erstellen Sie Ihr Dateisystem](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step1.html). | Cloud-Architekt | 
| Ordnen Sie die Dateifreigabe der LRS PageCenter EC2 X-Instanz zu. | Um die im vorherigen Schritt erstellte Dateifreigabe der LRS PageCenter EC2 X-Instanz zuzuordnen, folgen Sie den Anweisungen in [Schritt 2: Ordnen Sie Ihre Dateifreigabe einer EC2 Instanz zu, auf der Windows Server ausgeführt wird](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/getting-started-step2.html). | Cloud-Architekt | 
| Ordnen Sie das LRS PageCenter X Control Directory und das Master Folder Directory dem FSx Amazon-Netzwerk-Share-Laufwerk zu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Cloud-Architekt | 

### Testen Sie einen Output-Management-Workflow
<a name="test-an-output-management-workflow"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Initiieren Sie eine Batch-Druckanfrage über die Rocket BankDemo Software-App. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Testingenieur | 
| Überprüfen Sie die Druckausgabe in LRS X. PageCenter | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx.html) | Testingenieur | 

## Zugehörige Ressourcen
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-resources"></a>
+ [LRS](https://www.lrsoutputmanagement.com/products/modernization-products)
+ [Datenstrom zur Präsentation erweiterter Funktionen](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (IBM-Dokumentation)
+ [Linienkonditionierter Datenstrom (LCDS)](https://www.compart.com/en/lcds) (Compart-Dokumentation)
+ [Unterstützung von Enterprise-Mainframe-Workloads auf AWS mit Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (Blogbeitrag)
+ [Modernisieren Sie Ihre Mainframe-Online-Druck-Workloads auf AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Guidance)
+ [Modernisieren Sie Ihre Mainframe-Batchdruck-Workloads auf AWS (AWS Prescriptive](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) Guidance)

## Zusätzliche Informationen
<a name="modernize-mainframe-output-management-on-aws-by-using-rocket-enterprise-server-and-lrs-pagecenterx-additional"></a>

**Überlegungen**

Während Ihrer Modernisierung könnten Sie eine Vielzahl von Konfigurationen für Mainframe-Batch- und Online-Prozesse und die damit generierte Ausgabe in Betracht ziehen. Die Mainframe-Plattform wurde von allen Kunden und Anbietern, die sie verwenden, an spezielle Anforderungen angepasst, die sich direkt auf den Druck auswirken. Beispielsweise könnte Ihre aktuelle Plattform den IBM AFP-Datenstream oder Xerox LCDS in den aktuellen Workflow integrieren. Darüber hinaus können [Mainframe-Wagen-Steuerzeichen](https://www.ibm.com/docs/en/cmofz/10.5.0?topic=tips-ansi-machine-carriage-controls) und [Kanalbefehle](https://www.ibm.com/docs/en/zos/3.1.0?topic=devices-channel-command-words) das Aussehen der gedruckten Seite beeinflussen und erfordern möglicherweise eine besondere Behandlung. Im Rahmen der Planung der Modernisierung empfehlen wir Ihnen, die Konfigurationen in Ihrer spezifischen Druckumgebung zu bewerten und zu verstehen.  

**Erfassung von Druckdaten**

Rocket Software Print Exit leitet die erforderlichen Informationen weiter, damit LRS VPSX/MFI die Spool-Datei effektiv verarbeiten kann. Die Informationen bestehen aus Feldern, die in den entsprechenden Steuerblöcken übergeben werden, wie zum Beispiel den folgenden:
+ NAME DES AUFTRAGS
+ BESITZER (BENUTZER-ID)
+ ZIEL
+ BILDEN
+ DATEINAME
+ SCHRIFTSTELLER

LRS VPSX/MFI unterstützt die folgenden Mainframe-Batch-Mechanismen zur Erfassung von Daten von Rocket Enterprise Server:
+  print/spool BATCH-COBOL-Verarbeitung mit standardmäßigen z/OS JCL-SYSOUT-Anweisungen. DD/OUTPUT 
+  print/spool BATCH-COBOL-Verarbeitung mit standardmäßigen z/OS JCL CA-SPOOL SUBSYS DD-Anweisungen.
+ IMS/COBOL print/spoolVerarbeitung mit der CBLTDLI-Schnittstelle. Eine vollständige Liste der unterstützten Methoden und Programmierbeispiele finden Sie in der LRS-Dokumentation, die in Ihrer Produktlizenz enthalten ist.

**Gesundheitschecks zwischen Drucker und Flotte**

LRS VPSX/MFI (LRS LoadX) kann tiefgreifende Gesundheitschecks durchführen, einschließlich Gerätemanagement und Betriebsoptimierung. Die Geräteverwaltung kann Fehler in einem Druckergerät erkennen und die Druckanforderung an einen fehlerfreien Drucker weiterleiten. Weitere Informationen zu umfassenden Integritätsprüfungen für Druckerflotten finden Sie in der LRS-Dokumentation, die in Ihrer Produktlizenz enthalten ist.

**Authentifizierung und Autorisierung drucken**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or a Lightweight Directory Access Protocol (LDAP) server. In addition to basic print authorization, LRS/DISkann in den folgenden Anwendungsfällen auch detaillierte Drucksicherheitskontrollen anwenden:
+ Steuert, wer den Druckerauftrag durchsuchen kann.
+ Verwaltet die Navigationsebene der Aufträge anderer Benutzer.
+ Verwalten Sie betriebliche Aufgaben, z. B. Sicherheitsfunktionen auf Befehlsebene wie Sperren oder Freigeben, Löschen, Ändern, Kopieren und Umleiten. Die Sicherheit kann entweder anhand der Benutzer-ID oder der Gruppe eingerichtet werden, ähnlich wie bei einer Active Directory-Sicherheitsgruppe oder einer LDAP-Gruppe.

## Anlagen
<a name="attachments-f9ad041d-b9f0-4a9a-aba7-40fdc3088b27"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/f9ad041d-b9f0-4a9a-aba7-40fdc3088b27/attachments/attachment.zip)

# Modernisieren Sie Mainframe-Batchdruck-Workloads mithilfe AWS von Rocket Enterprise Server und LRS VPSX/MFI
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy und Kevin Yung, Amazon Web Services*

*Abraham Rondon, Mikrofokus*

*Guy Tucker, Levi, Ray und Shoup Inc*

## Zusammenfassung
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie Ihre geschäftskritischen Mainframe-Batchdruck-Workloads in der Amazon Web Services (AWS) Cloud modernisieren können, indem Sie Rocket Enterprise Server als Runtime für eine modernisierte Mainframe-Anwendung und LRS VPSX/MFI (Micro Focus Interface) als Druckserver verwenden. [Das Muster basiert auf dem Ansatz der Replatform Mainframe-Modernisierung.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Bei diesem Ansatz migrieren Sie Ihre Mainframe-Batch-Jobs zu Amazon Elastic Compute Cloud (Amazon EC2) und migrieren Ihre Mainframe-Datenbank (z. B. IBM DB2 forz/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS) ist in AWS Managed Microsoft AD integriert. Durch die Modernisierung Ihrer Batchdruck-Workloads können Sie die IT-Infrastrukturkosten senken, den technischen Aufwand für die Wartung älterer Systeme verringern, Datensilos beseitigen, die Agilität und Effizienz mit einem DevOps Modell erhöhen und die Vorteile von On-Demand-Ressourcen und Automatisierung in der AWS-Cloud nutzen.

## Voraussetzungen und Einschränkungen
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein Mainframe-Druck- oder Output-Management-Workload
+ Grundkenntnisse zum Wiederaufbau und zur Bereitstellung einer Mainframe-Anwendung, die auf Rocket Enterprise Server läuft (Weitere Informationen finden Sie im [Rocket Enterprise Server-Datenblatt](https://www.rocketsoftware.com/sites/default/files/resource_files/enterprise-server.pdf) in der Rocket-Dokumentation.)
+ Grundkenntnisse der [Cloud-Printing-Lösungen und -Konzepte von LRS](https://www.lrsoutputmanagement.com/solutions/solutions-cloud-printing/)
+ Rocket Enterprise Server-Software und -Lizenz (Weitere Informationen erhalten Sie vom [Rocket-Vertrieb](https://www.rocketsoftware.com/en-us/products/enterprise-suite/request-contact).)
+ VPSX/MFI, LRS/Queue, and LRS/DISLRS-Software und -Lizenzen (Weitere Informationen erhalten Sie vom [LRS-Vertrieb](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**Anmerkung**  
Weitere Informationen zu Überlegungen zur Konfiguration von Mainframe-Batchdruck-Workloads finden Sie unter *Überlegungen* im Abschnitt [Zusätzliche Informationen dieses Musters](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional).

**Produktversionen**
+ [Rocket Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 6.0 (Produktupdate 7)
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/) oder höher

## Architektur
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Quelltechnologie-Stack**
+ Betriebssystem — IBM z/OS
+ Programmiersprache — Common Business-Oriented Language (COBOL), Job Control Language (JCL) und Customer Information Control System (CICS)
+ Datenbank — IBM DB2 für z/OS und Virtual Storage Access Method (VSAM)
+ Sicherheit — Resource Access Control Facility (RACF), CA Top Secret für z/OS und Access Control Facility 2 () ACF2
+ Druck- und Ausgabemanagement — IBM z/OS Mainframe-Druckprodukte (IBM Tivoli Output Manager für z/OS, LRS und CA View)

**Zieltechnologie-Stack**
+ Betriebssystem — Microsoft Windows Server läuft auf Amazon EC2
+ Rechnen — Amazon EC2
+ Programmiersprache — COBOL, JCL und CICS
+ Datenbank — Amazon RDS
+ Sicherheit — AWS Managed Microsoft AD
+ Druck- und Ausgabemanagement — LRS-Drucklösung auf AWS
+ Mainframe-Laufzeitumgebung — Rocket Enterprise Server

**Quellarchitektur**

Das folgende Diagramm zeigt eine typische Architektur im aktuellen Zustand für einen Mainframe-Batchdruck-Workload:

![\[Vom Benutzer zum Mainframe-Service, Db2 für z/OS, Job-Scheduler, Batch-Job und Ausgabe in sechs Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/83d82435-0aa6-4eb8-a5c8-0920102afb09.png)


Das Diagramm zeigt den folgenden Workflow:

1. Benutzer führen Geschäftstransaktionen auf einem System of Engagement (SoE) durch, das auf einer in COBOL geschriebenen IBM CICS-Anwendung basiert.

1. Das SoE ruft den Mainframe-Service auf, der die Geschäftstransaktionsdaten in einer system-of-records (SoR) -Datenbank wie IBM for z/OS aufzeichnet. DB2 

1. Das SoR speichert die Geschäftsdaten des SoE.

1. Der Batch-Job-Scheduler initiiert einen Batch-Job, um eine Druckausgabe zu generieren.

1. Der Batch-Job extrahiert Daten aus der Datenbank, formatiert die Daten entsprechend den Geschäftsanforderungen und generiert dann Geschäftsergebnisse wie Abrechnungen, Personalausweise oder Kreditauszüge. Schließlich leitet der Batch-Job die Ausgabe an das Printing Output Management weiter, wo sie auf der Grundlage der Geschäftsanforderungen verarbeitet und ausgegeben werden kann. 

1. Das Printing Output Management empfängt die Druckausgabe des Batch-Auftrags und sendet diese Ausgabe dann an ein bestimmtes Ziel, z. B. eine E-Mail, eine Dateifreigabe, die sicheres FTP verwendet, einen physischen Drucker, der LRS-Drucklösungen verwendet (wie in diesem Muster gezeigt), oder IBM Tivoli.

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur für einen Mainframe-Batchdruck-Workload, der in der AWS-Cloud bereitgestellt wird:

![\[Batch-Anwendung auf AWS mit Scheduler, Rocket Enterprise Server und Datenbank in vier Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/8cdd4ef7-3cbd-476a-9aa4-c1c0924f17c6.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Batch-Job-Scheduler initiiert einen Batch-Job, um Druckausgaben wie Abrechnungen, Personalausweise oder Kreditauszüge zu erstellen.

1. Der Mainframe-Batch-Job ([auf Amazon umgestellt EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) verwendet die Rocket Enterprise Server-Laufzeit, um Daten aus der Anwendungsdatenbank zu extrahieren, Geschäftslogik auf die Daten anzuwenden, die Daten zu formatieren und die Daten dann mithilfe von [Rocket Software Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (Micro Focus-Dokumentation) an ein Druckziel zu senden.

1. Die Anwendungsdatenbank (ein SoR, der auf Amazon RDS läuft) speichert Daten für die Druckausgabe.

1. Die VPSX/MFI LRS-Drucklösung wird auf Amazon bereitgestellt EC2 und ihre Betriebsdaten werden im Amazon Elastic Block Store (Amazon EBS) gespeichert. LRS VPSX/MFI verwendet den TCP/IP-based LRS/Queue Übertragungsagenten, um Druckdaten über die JES Print Exit API von Rocket Software zu sammeln und die Daten an ein bestimmtes Druckziel zu senden.

**Anmerkung**  
Die Ziellösung erfordert in der Regel keine Anwendungsänderungen, um Mainframe-Formatierungssprachen wie IBM Advanced Function Presentation (AFP) oder Xerox Line Condition Data Stream (LCDS) zu berücksichtigen. Weitere Informationen zur Verwendung von Rocket Software für die Migration und Modernisierung von Mainframe-Anwendungen auf AWS finden Sie im Blogbeitrag [Empowering Enterprise Mainframe Workloads on AWS with Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**AWS-Infrastrukturarchitektur**

Das folgende Diagramm zeigt eine hochverfügbare und sichere AWS-Infrastrukturarchitektur für einen Mainframe-Batchdruck-Workload:

![\[Multi-AZ-Bereitstellung auf AWS mit Rocket Software- und LRS-Komponenten in sieben Schritten.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/36de7312-4860-4702-a325-c01cf74c4f33/images/287dd143-338c-4d83-a9b2-8e39214a81b0.png)


Das Diagramm zeigt den folgenden Workflow:

1. Der Batch-Scheduler initiiert den Batch-Prozess und wird auf Amazon EC2 in mehreren [Availability Zones](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) für hohe Verfügbarkeit (HA) bereitgestellt. 
**Anmerkung**  
Dieses Muster deckt die Implementierung des Batch-Schedulers nicht ab. Weitere Informationen zur Implementierung finden Sie in der Dokumentation des Softwareanbieters für Ihren Scheduler.

1. Der Mainframe-Batchjob (geschrieben in einer Programmiersprache wie JCL oder COBOL) verwendet die Kerngeschäftslogik, um Druckausgaben wie Abrechnungen, Ausweise und Kreditauszüge zu verarbeiten und zu generieren. Der Auftrag wird auf Amazon EC2 in zwei Availability Zones für HA bereitgestellt und verwendet Rocket Software Print Exit, um die Druckausgabe VPSX/MFI für den Endbenutzer-Druck an LRS weiterzuleiten.

1. LRS VPSX/MFI verwendet Befehle. TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Rocket Software JES Print Exit programming interface. Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the spool file and dynamically build LRS/Queue Die Befehle werden dann mit einer integrierten Standardfunktion von Rocket Software ausgeführt. 
**Anmerkung**  
Weitere Informationen zu Druckdaten, die von Rocket Software Print Exit an Mainframe-Batchmechanismen übergeben werden, LRS/Queue und zu den von LRS VPSX/MFI unterstützten Mainframe-Batch-Mechanismen finden Sie unter *Druckdatenerfassung* im Abschnitt [Zusätzliche Informationen](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) dieses Musters.

1. 
**Anmerkung**  
Ein [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) stellt einen DNS-Namen zur Integration von Rocket Enterprise Server in LRS bereit VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI und leitet den Datenverkehr an die registrierten Ziele weiter, die fehlerfrei sind.

1. 
**Anmerkung**  
Der VPSX/MFI LRS-Druckserver wird auf Amazon EC2 in zwei Availability Zones für HA bereitgestellt und verwendet [Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) als Betriebsdatenspeicher. LRS VPSX/MFI unterstützt sowohl den aktiv-aktiven als auch den aktiv-passiven Servicemodus. Diese Architektur verwendet mehrere AZs in einem Aktiv-Passiv-Paar als aktiven Standby und Hot-Standby. Der Network Load Balancer führt eine Integritätsprüfung der VPSX/MFI EC2 LRS-Instances durch und leitet den Datenverkehr an Hot-Standby-Instances in der anderen AZ weiter, wenn sich eine aktive Instance in einem fehlerhaften Zustand befindet. Die Druckanforderungen werden in jeder Instanz lokal in der LRS-Auftragswarteschlange gespeichert. EC2 Im Falle einer Wiederherstellung muss eine ausgefallene Instanz neu gestartet werden, damit die LRS-Dienste die Verarbeitung der Druckanforderung fortsetzen können. : LRS VPSX/MFI kann auch Zustandsprüfungen auf Ebene der Druckerflotte durchführen. Weitere Informationen finden Sie unter *Integritätsprüfungen der Druckerflotte* im Abschnitt [Zusätzliche Informationen](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) dieses Musters.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) lässt sich integrieren LRS/DIS , um die Authentifizierung und Autorisierung von Druckworkflows durchzuführen. Weitere Informationen finden Sie unter *Druckauthentifizierung und Autorisierung* im Abschnitt [Zusätzliche Informationen](#modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional) dieses Musters.

1. LRS VPSX/MFI verwendet Amazon EBS für Blockspeicher. Sie können Amazon EBS-Daten von aktiven EC2 Instances als point-in-time Snapshots auf Amazon S3 sichern und sie auf Hot-Standby-EBS-Volumes wiederherstellen. [Um die Erstellung, Aufbewahrung und Löschung von Amazon EBS-Volume-Snapshots zu automatisieren, können Sie [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) verwenden, um die Häufigkeit automatisierter Snapshots festzulegen und sie auf der Grundlage Ihrer RTO/RPO-Anforderungen wiederherzustellen.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Tools
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**AWS-Services**
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html) bietet Speichervolumen auf Blockebene zur Verwendung mit EC2 Instances. EBS-Volumes verhalten sich wie unformatierte Blockgeräte. Sie können diese Volumes als Geräte auf Ihren Instances mounten.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können Amazon verwenden EC2 , um so viele oder so wenige virtuelle Server zu starten, wie Sie benötigen, und Sie können nach oben oder unten skalieren.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) ist ein Webservice, der die Einrichtung, den Betrieb und die Skalierung einer relationalen Datenbank in der AWS-Cloud erleichtert. Er bietet kosteneffiziente, anpassbare Kapazität für eine relationale Datenbank und verwaltet allgemeine Datenbankverwaltungsaufgaben.
+ [AWS Directory Service for Microsoft Active Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html), auch bekannt als AWS Managed Microsoft AD, ermöglicht Ihren verzeichnissensitiven Workloads und AWS-Ressourcen die Nutzung von Microsoft Active Directory in der AWS-Cloud.

**Andere Tools**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/vpsx-enterprise/), das von LRS und Rocket Software gemeinsam entwickelt wurde, erfasst die Ausgabe von einem Rocket Enterprise Server JES-Spool und leitet sie zuverlässig an ein bestimmtes Druckziel weiter.
+ Der LRS Directory Information Server (LRS/DIS) wird für die Authentifizierung und Autorisierung während des Druckworkflows verwendet.
+ TCP/IP-based LRS/Queue transmission agent is used by LRS VPSX/MFIum Druckdaten über die JES Print Exit-Programmierschnittstelle von Rocket Software zu sammeln oder zu erfassen.
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) ist eine Umgebung zur Anwendungsbereitstellung für Mainframe-Anwendungen. Sie bietet die Ausführungsumgebung für Mainframe-Anwendungen, die mithilfe einer beliebigen Version von Rocket Software Enterprise Developer migriert oder erstellt wurden.

## Epen
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Rocket Enterprise Server auf Amazon einrichten EC2 und eine Mainframe-Batch-Anwendung bereitstellen
<a name="set-up-rocket-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-batch-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Rocket Enterprise Server ein und stellen Sie eine Demo-Anwendung bereit. | Richten Sie Rocket Enterprise Server auf Amazon EC2 ein und stellen Sie dann die BankDemo Demonstrationsanwendung von Rocket Software auf Amazon bereit EC2.Die BankDemo Anwendung ist eine Mainframe-Batch-Anwendung, die die Druckausgabe erstellt und dann initiiert. | Cloud-Architekt | 

### Richten Sie einen LRS-Druckserver bei Amazon ein EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Besorgen Sie sich eine LRS-Produktlizenz zum Drucken. | Um eine LRS-Produktlizenz für LRS zu erhaltenVPSX/MFI, LRS/Queue, and LRS/DIS, wenden Sie sich an das [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/) Output Management-Team. Sie müssen die Hostnamen der EC2 Instanzen angeben, auf denen die LRS-Produkte installiert werden. | Bauen Sie einen Vorsprung auf | 
| Erstellen Sie eine Amazon EC2 Windows-Instance, um LRS VPSX/MFI zu installieren. | Starten Sie eine Amazon EC2 Windows-Instance, indem Sie den Anweisungen unter [Starten einer EC2 Amazon-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html) in der EC2 Amazon-Dokumentation folgen. Ihre Instance muss die folgenden Hardware- und Softwareanforderungen für LRS VPSX/MFI erfüllen:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Die oben genannten Hardware- und Softwareanforderungen sind für eine kleine Druckerflotte (etwa 500—1000) vorgesehen. Um die vollständigen Anforderungen zu erfahren, wenden Sie sich an Ihre LRS- und AWS-Ansprechpartner.Gehen Sie beim Erstellen Ihrer Windows-Instance wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Installieren Sie LRS VPSX/MFI auf der EC2 Instanz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Installieren Sie LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Installieren Sie LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Erstellen Sie eine Zielgruppe und registrieren Sie LRS VPSX/MFI EC2 als Ziel. | Erstellen Sie eine Zielgruppe, indem Sie den Anweisungen unter [Erstellen Sie eine Zielgruppe für Ihren Network Load Balancer in der Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) Balancing-Dokumentation folgen.Gehen Sie beim Erstellen der Zielgruppe wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Erstellen Sie einen Network Load Balancer. | Folgen Sie den Anweisungen unter [Network Load Balancer erstellen](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) in der Elastic Load Balancing Balancing-Dokumentation. Ihr Network Load Balancer leitet den Verkehr vom Rocket Enterprise Server an VPSX/MFI EC2 LRS weiter.Wenn Sie den Network Load Balancer erstellen, gehen Sie auf der Seite **Listener und Routing** wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Integrieren Sie Rocket Enterprise Server mit LRS VPSX/MFI und LRS/Queue
<a name="integrate-rocket-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie Rocket Enterprise Server für die LRS/Queue Integration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)LRS unterstützt derzeit eine maximale Zeichenbeschränkung von 50 für DNS-Namen, dies kann sich jedoch in future ändern. Wenn Ihr DNS-Name größer als 50 ist, können Sie alternativ die IP-Adresse des Network Load Balancer verwenden. | Cloud-Architekt | 
| Konfigurieren Sie Rocket Enterprise Server für die VPSX/MFI LRS-Integration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Richten Sie Drucker und Druckbenutzer in Rocket Enterprise Server und LRS VPSX/MFI ein
<a name="set-up-printers-and-print-users-in-rocket-enterprise-server-and-lrs-vpsx-mfi"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Ordnen Sie das Rocket Software Print Exit-Modul dem Serverausführungsprozess des Rocket Enterprise Server-Batchdruckers zu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Weitere Informationen zur Konfiguration finden Sie unter [Using the Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOS025.html) in der Micro Focus-Dokumentation. | Cloud-Architekt | 
| Fügen Sie einen Drucker in LRS VPSX/MFI hinzu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Erstellen Sie einen Druckbenutzer in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Richten Sie die Druckauthentifizierung und -autorisierung ein
<a name="set-up-print-authentication-and-authorization"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine von AWS verwaltete Microsoft AD-Domain mit Benutzern und Gruppen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Verbinden Sie LRS VPSX/MFI EC2 mit einer von AWS verwalteten Microsoft AD-Domain. | Verbinden Sie LRS VPSX/MFI EC2 [automatisch](https://repost.aws/knowledge-center/ec2-systems-manager-dx-domain) (AWS Knowledge Center-Dokumentation) oder [manuell](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/launching_instance.html) (AWS Directory Service-Dokumentation) mit Ihrer AWS Managed Microsoft AD-Domain. | Cloud-Architekt | 
| Konfiguration und Integration LRS/DIS mit AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Testen Sie einen Druck-Workflow
<a name="test-a-print-workflow"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Initiieren Sie eine Batch-Druckanfrage über die Rocket BankDemo Software-App. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html) | Testingenieur | 
| Überprüfen Sie die Druckausgabe in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi.html)Sie können jetzt die Druckausgabe eines Kontoauszugs mit Spalten für die **Kontonummer sehen.** , **Beschreibung**, **Datum**, **Betrag** und **Saldo**. Ein Beispiel finden Sie im Anhang **batch\$1print\$1output** für dieses Muster. | Testingenieur | 

## Zugehörige Ressourcen
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernisierung der LRS-Leistung](https://www.lrsoutputmanagement.com/) (LRS-Dokumentation)
+ [ANSI und Maschinenwagensteuerungen](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (IBM-Dokumentation)
+ [Kanalbefehle (](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words)IBM-Dokumentation)
+ [Unterstützung von Mainframe-Workloads für Unternehmen auf AWS mit Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (AWS-Partnernetzwerk-Blog)
+ [Erstellen Sie ein Micro Focus Enterprise Server PAC mit Amazon EC2 Auto Scaling und Systems Manager (Dokumentation](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) zu AWS Prescriptive Guidance)
+ [AFP-Datenstream (Advanced Function Presentation)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (IBM-Dokumentation)
+ [Line Conditioned Data Stream (LCDS) (Compart-Dokumentation)](https://www.compart.com/en/lcds)

## Zusätzliche Informationen
<a name="modernize-mainframe-batch-printing-workloads-on-aws-by-using-rocket-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Überlegungen**

Während Ihrer Modernisierung können Sie eine Vielzahl von Konfigurationen sowohl für Mainframe-Batch-Prozesse als auch für die damit generierte Leistung in Betracht ziehen. Die Mainframe-Plattform wurde von allen Kunden und Anbietern, die sie verwenden, an spezielle Anforderungen angepasst, die sich direkt auf den Druck auswirken. Beispielsweise kann Ihre aktuelle Plattform IBM Advanced Function Presentation (AFP) oder den Xerox Line Condition Data Stream (LCDS) in den aktuellen Arbeitsablauf integrieren. Darüber hinaus können [Mainframe-Wagen-Steuerzeichen](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) und [Kanalbefehle](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) das Aussehen der gedruckten Seite beeinflussen und erfordern möglicherweise eine besondere Behandlung. Im Rahmen der Planung der Modernisierung empfehlen wir Ihnen, die Konfigurationen in Ihrer spezifischen Druckumgebung zu bewerten und zu verstehen.

**Erfassung von Druckdaten**

Rocket Software Print Exit leitet die erforderlichen Informationen weiter, damit LRS VPSX/MFI die Spool-Datei effektiv verarbeiten kann. Die Informationen bestehen aus Feldern, die in den entsprechenden Steuerblöcken übergeben werden, wie z. B.:
+ NAME DES AUFTRAGS
+ BESITZER (BENUTZER-ID)
+ ZIEL
+ BILDEN
+ DATEINAME
+ SCHRIFTSTELLER

LRS VPSX/MFI unterstützt die folgenden Mainframe-Batch-Mechanismen zur Erfassung von Daten von Rocket Enterprise Server.
+  print/spool BATCH-COBOL-Verarbeitung mit standardmäßigen z/OS JCL-SYSOUT-Anweisungen DD/OUTPUT 
+  print/spool BATCH-COBOL-Verarbeitung mit standardmäßigen z/OS JCL-CA-SPOOL-SUBSYS-DD-Anweisungen
+ IMS/COBOL print/spoolVerarbeitung mithilfe der CBLTDLI-Schnittstelle (Eine vollständige Liste der unterstützten Methoden und Programmierbeispiele finden Sie in der LRS-Dokumentation, die in Ihrer Produktlizenz enthalten ist.)

**Zustandsprüfungen der Druckerflotte**

LRS VPSX/MFI (LRS LoadX) kann tiefgreifende Zustandsprüfungen durchführen, einschließlich Geräteverwaltung und Betriebsoptimierung. Die Geräteverwaltung kann Fehler in einem Druckergerät erkennen und die Druckanforderung an einen fehlerfreien Drucker weiterleiten. Weitere Informationen zu umfassenden Integritätsprüfungen für Druckerflotten finden Sie in der LRS-Dokumentation, die in Ihrer Produktlizenz enthalten ist.

**Authentifizierung und Autorisierung drucken**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DISkann in den folgenden Anwendungsfällen auch detaillierte Drucksicherheitskontrollen anwenden:
+ Steuert, wer den Druckerauftrag durchsuchen kann.
+ Verwaltet die Navigationsebene der Aufträge anderer Benutzer.
+ Operative Aufgaben verwalten. Zum Beispiel Sicherheitsfunktionen auf Befehlsebene wie „Sperren/Freigeben“, „Löschen“, „Ändern“, „Kopieren“ und „Umleiten“. Die Sicherheit kann entweder anhand der Benutzer-ID oder der Gruppe eingerichtet werden (ähnlich wie bei der AD-Gruppe oder der LDAP-Gruppe). ****

## Anlagen
<a name="attachments-36de7312-4860-4702-a325-c01cf74c4f33"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/36de7312-4860-4702-a325-c01cf74c4f33/attachments/attachment.zip)

# Mainframe-Modernisierung: DevOps Weiter AWS mit Rocket Software Enterprise Suite
<a name="mainframe-modernization-devops-on-aws-with-micro-focus"></a>

*Kevin Yung, Amazon Web Services*

## Zusammenfassung
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-summary"></a>

**Herausforderungen für Kunden**

Organizations, die Kernanwendungen auf Mainframe-Hardware ausführen, stehen in der Regel vor einigen Herausforderungen, wenn die Hardware skaliert werden muss, um den Anforderungen digitaler Innovationen gerecht zu werden. Zu diesen Herausforderungen gehören die folgenden Einschränkungen. 
+ Mainframe-Entwicklungs- und Testumgebungen können aufgrund der geringen Flexibilität der Mainframe-Hardwarekomponenten und der hohen Änderungskosten nicht skaliert werden.
+ In der Mainframe-Entwicklung mangelt es an Fachkräften, weil neue Entwickler sich mit den herkömmlichen Mainframe-Entwicklungstools nicht auskennen und auch nicht daran interessiert sind. Moderne Technologien wie Container, Continuous integration/continuous Delivery (CI/CD) -Pipelines und moderne Test-Frameworks sind in der Mainframe-Entwicklung nicht verfügbar.

**Musterergebnisse**

Um diesen Herausforderungen zu begegnen, haben Amazon Web Services (AWS) und Rocket Software Micro Focus, ein AWS Partner Network (APN) -Partner, zusammengearbeitet, um dieses Muster zu entwickeln. Die Lösung soll Ihnen helfen, die folgenden Ergebnisse zu erzielen.
+ Verbesserte Entwicklerproduktivität. Entwicklern können innerhalb von Minuten neue Mainframe-Entwicklungsinstanzen zur Verfügung gestellt werden.
+ Verwendung von AWS Cloud zur Erstellung neuer Mainframe-Testumgebungen mit praktisch unbegrenzter Kapazität.
+ Schnelle Bereitstellung einer neuen CI/CD Mainframe-Infrastruktur. Die Bereitstellung auf AWS kann innerhalb einer Stunde mithilfe von und abgeschlossen werden. AWS CloudFormation AWS Systems Manager
+ Nativer Einsatz von AWS DevOps Tools für die Mainframe-Entwicklung, einschließlich AWS CodeBuild, AWS CodeCommit, AWS CodePipeline AWS CodeDeploy, und Amazon Elastic Container Registry (Amazon ECR).
+ Verwandeln Sie die traditionelle Wasserfallentwicklung in eine agile Entwicklung in Mainframe-Projekten.

**Zusammenfassung der Technologien**

In diesem Muster enthält der Zielstapel die folgenden Komponenten.


| 
| 
| Logische Komponenten | Implementierungslösungen | Description | 
| --- |--- |--- |
| Quellcode-Repositorien | Rocket Software AccuRev Server CodeCommit, Amazon ECR  | Quellcodeverwaltung — Die Lösung verwendet zwei Arten von Quellcode: Mainframe-Quellcode, zum Beispiel COBOL und JCL. AWS Infrastrukturvorlagen und Automatisierungsskripte Beide Arten von Quellcode benötigen eine Versionskontrolle, werden aber unterschiedlich verwaltet SCMs. Quellcode, der auf Mainframe- oder Rocket Software Enterprise Servern bereitgestellt wird, wird auf Rocket Software Micro Focus AccuRev Server verwaltet. AWS Vorlagen und Automatisierungsskripte werden in CodeCommit verwaltet. Amazon ECR wird für die Docker-Image-Repositorys verwendet.  | 
| Instanzen von Unternehmensentwicklern | Amazon Elastic Compute Cloud (Amazon EC2), Unternehmensentwickler von Rocket Software für Eclipse | Mainframe-Entwickler können mithilfe EC2 von Rocket Software Enterprise Developer for Eclipse Code in Amazon entwickeln. Dadurch müssen Sie sich nicht mehr auf Mainframe-Hardware verlassen, um Code zu schreiben und zu testen.  | 
| Lizenzverwaltung für die Rocket Software Enterprise Suite | License Manager für Rocket Software Enterprise Suite | Für die zentrale Lizenzverwaltung und Steuerung der Rocket Software Enterprise Suite verwendet die Lösung den Rocket Software Enterprise Suite License Manager, um die erforderliche Lizenz zu hosten. | 
| CI/CD-Pipelines | CodePipeline, CodeBuild CodeDeploy, Rocket Software Enterprise Developer in einem Container, Rocket Software Enterprise Testserver in einem Container, Rocket Software Micro Focus Enterprise Server | Mainframe-Entwicklungsteams benötigen CI/CD Pipelines, um Codekompilierung, Integrationstests und Regressionstests durchzuführen. In AWS CodePipeline und CodeBuild können nativ mit Rocket Software Enterprise Developer und Enterprise Test Server in einem Container arbeiten. | 

## Voraussetzungen und Einschränkungen
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-prereqs"></a>

**Voraussetzungen**


| 
| 
| Name | Description | 
| --- |--- |
| py3270 | py3270 ist eine Python-Schnittstelle zu x3270, einem IBM 3270-Terminalemulator. Sie stellt eine API für einen x3270- oder s3270-Subprozess bereit. | 
| x3270 | x3270 ist ein IBM 3270-Terminalemulator für das X Window System und Windows.  Dies kann vom Entwickler für lokale Komponententests verwendet werden. | 
| Robot-Framework-Mainframe-3270-Bibliothek | Mainframe3270 ist eine Bibliothek für Robot Framework, die auf dem Projekt py3270 basiert. | 
| Rocket Software Verastream | Rocket Software Verastream ist eine Integrationsplattform, die es ermöglicht, Mainframe-Assets so zu testen, wie mobile Apps, Webanwendungen und SOA-Webdienste getestet werden. | 
| Installation und Lizenz für Rocket Software Unified Functional Testing (UFT) | Rocket Software Unified Functional Testing ist eine Software, die die Automatisierung von Funktions- und Regressionstests für Softwareanwendungen und -umgebungen ermöglicht. | 
| Installation und Lizenz für Rocket Software Enterprise Server | Enterprise Server bietet die Laufzeitumgebung für Mainframe-Anwendungen. | 
| Installation und Lizenz für den Rocket Software Enterprise Test Server | Rocket Software Enterprise Test Server ist eine IBM Mainframe-Anwendungstestumgebung. | 
| Rocket AccuRev Software-Installationsprogramm und -Lizenz für Server und Rocket Software Micro AccuRev Focus-Installationsprogramm und -Lizenz für Windows- und Linux-Betriebssysteme  | AccuRev bietet Quellcodeverwaltung (SCM). Das AccuRev System ist für die Verwendung durch ein Team von Personen konzipiert, die eine Reihe von Dateien entwickeln. | 
| Installationsprogramm, Patch und Lizenz für Rocket Software Enterprise Developer für Eclipse | Enterprise Developer bietet Mainframe-Entwicklern eine Plattform für die Entwicklung und Wartung der wichtigsten Mainframe-Online- und Batch-Anwendungen. | 

**Einschränkungen**
+ Das Erstellen eines Windows Docker-Images wird in nicht unterstützt. CodeBuild Dieses [gemeldete Problem](https://github.com/docker-library/docker/issues/49) benötigt Unterstützung von Windows Kernel/HCS - und Docker-Teams. Die Problemumgehung besteht darin, mithilfe von Systems Manager ein Docker-Image-Build-Runbook zu erstellen. Dieses Muster verwendet die Problemumgehung, um Container-Images für Rocket Software Enterprise Developer for Eclipse und Rocket Software Micro Focus Enterprise Test Server zu erstellen. 
+ Die Virtual Private Cloud (VPC) -Konnektivität von CodeBuild wird in Windows noch nicht unterstützt, daher verwendet das Pattern nicht den Rocket Software License Manager, um Lizenzen in OpenText Rocket Software Enterprise Developer- und Rocket Software Enterprise Test Server-Containern zu verwalten.

**Produktversionen**
+ Rocket Software Enterprise Developer 5.5 oder höher
+ Rocket Software Enterprise Test Server 5.5 oder höher
+ Rocket Software Enterprise Server 5.5 oder höher
+ Rocket Software AccuRev 7.x oder höher
+ **Windows Docker-Basisimage für Rocket Software Enterprise Developer und Enterprise Test Server: microsoft/dotnet-framework-4.7.2-runtime**
+ **Linux-Docker-Basisimage für AccuRev den Client: amazonlinux:2**

## Architektur
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-architecture"></a>

**Mainframe-Umgebung**

Bei der konventionellen Mainframe-Entwicklung müssen die Entwickler Mainframe-Hardware verwenden, um Programme zu entwickeln und zu testen. Sie sind mit Kapazitätsbeschränkungen konfrontiert, z. B. einer Beschränkung auf Millionen Befehle pro Sekunde (MIPS) für die dev/test Umgebung, und sie müssen sich auf die Tools verlassen, die auf den Mainframe-Computern verfügbar sind.

In vielen Unternehmen folgt die Mainframe-Entwicklung der Methode der Wasserfallentwicklung, wobei sich die Teams bei der Veröffentlichung von Änderungen auf lange Zyklen verlassen. Diese Release-Zyklen sind in der Regel länger als die Entwicklung digitaler Produkte.   

Das folgende Diagramm zeigt mehrere Mainframe-Projekte, bei deren Entwicklung Mainframe-Hardware gemeinsam genutzt wird. Bei Mainframe-Hardware ist es teuer, eine Entwicklungs- und Testumgebung für mehr Projekte zu skalieren.

![\[Diagram showing mainframe architecture with z/OS, databases, programming languages, and user groups.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/84e717fc-5aea-41a6-977a-d7e7a7ca5da7.png)


 

 

*AWS***-Architektur**

Dieses Muster erweitert die Mainframe-Entwicklung auf die. AWS Cloud Zunächst verwendet es AccuRev SCM, um den Mainframe-Quellcode zu hosten. AWS Anschließend stehen Enterprise Developer und Enterprise Test Server für die Erstellung und das Testen des Mainframe-Codes zur Verfügung. AWS 

In den folgenden Abschnitten werden die drei Hauptkomponenten des Musters beschrieben.

**1. SCM**

In wird das Muster verwendet AWS, AccuRev um eine Reihe von SCM-Workspaces und Versionskontrolle für den Mainframe-Quellcode zu erstellen. Seine stream-basierte Architektur ermöglicht die parallel Mainframe-Entwicklung für mehrere Teams. AccuRev Verwendet das Promote-Konzept, um eine Änderung zusammenzuführen. Um diese Änderung zu anderen Arbeitsbereichen hinzuzufügen, AccuRev wird das Aktualisierungskonzept verwendet.

Auf Projektebene kann jedes Team einen oder mehrere Streams erstellen, AccuRev um Änderungen auf Projektebene nachzuverfolgen. Diese werden als Projekt-Streams bezeichnet. Diese Projekt-Streams werden von demselben übergeordneten Stream übernommen. Der übergeordnete Stream wird verwendet, um die Änderungen aus verschiedenen Projekt-Streams zusammenzuführen.

In jeden Projekt-Stream kann Code hochgestuft werden AccuRev, und es wird ein Trigger zum Heraufstufen nach der Veröffentlichung eingerichtet, um die AWS CI/CD-Pipeline zu initiieren. Der erfolgreiche Build für eine Änderung des Projekt-Streams kann für weitere Regressionstests in seinen übergeordneten Stream hochgestuft werden.  

Normalerweise wird der übergeordnete Stream als Systemintegrationsstream bezeichnet. Wenn von einem Projekt-Stream zu einem Systemintegrationsstream heraufgestuft wird, initiiert ein Trigger nach der Heraufstufung eine weitere CI/CD Pipeline zur Ausführung von Regressionstests.

Dieses Muster umfasst neben Mainframe-Code auch AWS CloudFormation Vorlagen, Systems Manager Automation-Dokumente und Skripts. Gemäß den infrastructure-as-code bewährten Methoden sind sie versionskontrolliert. CodeCommit 

Wenn Sie Mainframe-Code für die Bereitstellung wieder mit einer Mainframe-Umgebung synchronisieren müssen, bietet Rocket Software die Enterprise Sync-Lösung, die Code vom SCM zurück zum AccuRev Mainframe-SCM synchronisiert.

**2. Entwickler- und Testumgebungen**

In einer großen Organisation ist die Skalierung von mehr als hundert oder sogar mehr als tausend Mainframe-Entwicklern eine Herausforderung. Um diese Einschränkung zu umgehen, verwendet das Muster Amazon EC2 Windows-Instances für die Entwicklung. Auf den Instances sind die Tools von Enterprise Developer for Eclipse installiert. Der Entwickler kann alle Mainframe-Codetests und das Debugging lokal auf der Instanz durchführen. 

AWS Systems Manager State Manager- und Automation-Dokumente werden verwendet, um die Bereitstellung von Entwicklerinstanzen zu automatisieren. Die durchschnittliche Zeit für die Erstellung einer Entwicklerinstanz beträgt 15 Minuten. Die folgende Software und Konfigurationen sind vorbereitet:
+ AccuRev Windows-Client zum Auschecken und Einspielen von Quellcode AccuRev
+ Enterprise Developers for Eclipse Tool zum lokalen Schreiben, Testen und Debuggen von Mainframe-Code
+ Open-Source-Testframeworks Python-Testframework Behavior-driven Development (BDD) Behavior, py3270 und der x3270-Emulator zum Erstellen von Skripten zum Testen von Anwendungen
+ Ein Docker-Entwicklertool zum Erstellen des Enterprise Test Server-Docker-Images und zum Testen der Anwendung im Enterprise Test Server Docker-Container 

Im Entwicklungszyklus verwenden Entwickler die EC2 Instanz, um Mainframe-Code lokal zu entwickeln und zu testen. Wenn die lokalen Änderungen erfolgreich getestet wurden, übertragen die Entwickler die Änderung auf dem AccuRev Server.  

**3. CI/CD Rohrleitungen**

In diesem Muster werden CI/CD Pipelines vor der Bereitstellung in der Produktionsumgebung für Integrationstests und Regressionstests verwendet. 

Wie im Abschnitt SCM erklärt, werden zwei Arten von Streams AccuRev verwendet: ein Projekt-Stream und ein Integrationsstream. Jeder Stream ist mit CI/CD Pipelines verbunden. Um die Integration zwischen dem AccuRev Server und durchzuführen AWS CodePipeline, verwendet das Pattern ein AccuRev Post-Promotion-Skript, um ein Ereignis zur Initiierung von CI/CD zu erstellen.

Wenn ein Entwickler beispielsweise eine Änderung an einem Projekt-Stream heraufstuft, initiiert er ein Post-Promotion-Skript AccuRev, das auf dem Server ausgeführt wird. AccuRev Anschließend lädt das Skript die Metadaten der Änderung in einen Amazon Simple Storage Service (Amazon S3) -Bucket hoch, um ein Amazon S3-Ereignis zu erstellen. Dieses Ereignis initiiert die Ausführung einer CodePipeline konfigurierten Pipeline. 

Derselbe Mechanismus zur Auslösung von Ereignissen wird für den Integrationsstream und die zugehörigen Pipelines verwendet. 

Wird in der CI/CD Pipeline CodeBuild zusammen mit dem AccuRev Linux-Client-Container CodePipeline verwendet, um den neuesten Code aus den Streams auszuchecken. AccuRev Dann beginnt die Pipeline, den Enterprise Developer Windows-Container CodeBuild zu verwenden, um den Quellcode zu kompilieren und den Enterprise Test Server Windows-Container zum Testen von Mainframe-Anwendungen CodeBuild zu verwenden.

Die CI/CD Pipelines werden mithilfe von CloudFormation Vorlagen erstellt, und der Blueprint wird für neue Projekte verwendet. Durch die Verwendung der Vorlagen dauert es weniger als eine Stunde, bis ein Projekt eine neue CI/CD Pipeline erstellt hat. AWS

Um Ihre Mainframe-Testkapazitäten zu skalieren AWS, besteht das Muster aus der Rocket DevOps Software-Testsuite, Verastream und dem UFT-Server. Mithilfe der modernen DevOps Tools können Sie so viele Tests ausführen, wie Sie benötigen. AWS 

Ein Beispiel für eine Mainframe-Entwicklungsumgebung mit aktivierter Rocket Software AWS ist in der folgenden Abbildung dargestellt.

![\[AWS development pipeline with shared components for multiple project teams.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/27da6a52-4573-44cb-8716-1ac49430f618.png)


 

*Zieltechnologie-Stack*

Dieser Abschnitt bietet einen genaueren Blick auf die Architektur der einzelnen Komponenten im Muster.

**1. Quellcode-Repository — AccuRev SCM**

AccuRev SCM ist für die Verwaltung von Mainframe-Quellcodeversionen eingerichtet. AccuRev Unterstützt für hohe Verfügbarkeit den Primär- und Replikatmodus. Betreiber können bei Wartungsarbeiten am Primärknoten einen Failover auf das Replikat durchführen. 

Um die Reaktion der CI/CD Pipeline zu beschleunigen, verwendet das Pattern Amazon CloudWatch Events, um Änderungen am Quellcode zu erkennen und den Start der Pipeline zu initiieren.

1. Die Pipeline ist für die Verwendung einer Amazon S3 S3-Quelle eingerichtet.

1. Eine CloudWatch Ereignisregel wird eingerichtet, um S3-Ereignisse aus einem S3-Quell-Bucket zu erfassen.

1. Die CloudWatch Ereignisregel legt ein Ziel für die Pipeline fest.

1. AccuRev SCM ist so konfiguriert, dass nach Abschluss der Heraufstufung ein Skript nach der Heraufstufung lokal ausgeführt wird.

1. AccuRev SCM generiert eine XML-Datei, die die Metadaten der Promotion enthält, und das Skript lädt die XML-Datei in den S3-Quell-Bucket hoch.

1. Nach dem Upload sendet der Quell-S3-Bucket Ereignisse, die der CloudWatch Ereignisregel entsprechen, und die CloudWatch Ereignisregel initiiert die Ausführung der Pipeline. 

Wenn die Pipeline ausgeführt wird, startet sie ein CodeBuild Projekt, bei dem mithilfe eines AccuRev Linux-Client-Containers der neueste Mainframe-Code aus einem zugehörigen Stream ausgecheckt wird. AccuRev   

Das folgende Diagramm zeigt ein AccuRev Server-Setup.

![\[AWS Cloud diagram showing AccuRev setup with primary and replica instances across availability zones.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/e60345cc-2283-4b03-8f57-e3dac1770978.png)


**2. Vorlage für Unternehmensentwickler** 

Das Muster verwendet EC2 Amazon-Vorlagen, um die Erstellung der Entwicklerinstanz zu vereinfachen. Mithilfe von State Manager können Software- und Lizenzeinstellungen konsistent auf EC2 Instances angewendet werden.

Die EC2 Amazon-Vorlage integriert ihre VPC-Kontexteinstellungen und die Standard-Instance-Einstellungen und entspricht den Enterprise-Tagging-Anforderungen. Mithilfe einer Vorlage kann ein Team seine eigenen neuen Entwicklungsinstanzen erstellen. 

Wenn eine Entwicklerinstanz durch Zuordnung zu Tags gestartet wird, verwendet Systems Manager State Manager, um die Automatisierung anzuwenden. Die Automatisierung umfasst die folgenden allgemeinen Schritte.

1. Installieren Sie die Enterprise Developer-Software und installieren Sie Patches.

1. Installieren Sie den AccuRev Client für Windows.

1. Installieren Sie das vorkonfigurierte Skript, damit Entwickler dem AccuRev Stream beitreten können. Initialisieren Sie Eclipse-Arbeitsbereiche.

1. Installieren Sie Entwicklungstools, einschließlich x3270, py3270 und Docker.

1. Konfigurieren Sie die Lizenzeinstellungen so, dass sie auf einen License Manager Manager-Load Balancer verweisen.

Das folgende Diagramm zeigt eine Enterprise Developer-Instance, die mit der EC2 Amazon-Vorlage erstellt wurde, wobei Software und Konfiguration von State Manager auf die Instance angewendet wurden. Enterprise-Developer-Instances stellen eine Verbindung AWS License Manager zu her, um ihre Lizenz zu aktivieren.

![\[AWS Cloud diagram showing Enterprise Developer Instance setup with License Manager and Systems Manager components.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/7ca8f538-8362-4a11-a842-7ecff6fa0248.png)


 

**3.  CI/CD-Rohrleitungen**

Wie im Abschnitt AWS Architektur erläutert, gibt es im Muster Pipelines auf Projektebene und CI/CD Pipelines zur Systemintegration. Jedes Mainframe-Projektteam erstellt eine Pipeline oder mehrere CI/CD Pipelines für die Erstellung der Programme, die es in einem Projekt entwickelt. Diese CI/CD Projekt-Pipelines checken Quellcode aus einem zugehörigen Stream aus. AccuRev  

In einem Projektteam bewerben Entwickler ihren Code im zugehörigen AccuRev Stream. Anschließend leitet die Beförderung die Projektpipeline ein, um den Code zu erstellen und Integrationstests durchzuführen. 

Jede CI/CD Projektpipeline verwendet CodeBuild Projekte mit dem Enterprise Developer-Tool Amazon ECR Image und dem Enterprise Test Server-Tool Amazon ECR Image. 

CodePipeline und CodeBuild werden zur Erstellung der Pipelines verwendet. CI/CD Denn CodeBuild ohne CodePipeline Vorabgebühren oder Verpflichtungen zahlen Sie nur für das, was Sie tatsächlich nutzen. Im Vergleich zu Mainframe-Hardware reduziert die AWS Lösung die Vorlaufzeit für die Hardwarebereitstellung erheblich und senkt die Kosten Ihrer Testumgebung.

In der modernen Entwicklung werden mehrere Testmethoden verwendet. Zum Beispiel testgetriebene Entwicklung (TDD), BDD und Robot Framework. Mit diesem Muster können Entwickler diese modernen Tools für Mainframe-Tests verwenden. Mithilfe von x3270, py3270 und dem Python-Testtool Behave können Sie beispielsweise das Verhalten einer Online-Anwendung definieren. In diesen Pipelines können Sie auch das Build Mainframe 3270 Robot Framework verwenden. CI/CD 

Das folgende Diagramm zeigt die Team-Stream-Pipeline. CI/CD  

![\[AWS Cloud CI/CD pipeline showing CodeCommit, CodePipeline, and CodeBuild with Micro Focus tools integration.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/da59f837-2f23-404f-948b-41402cc6fe0c.png)


Das folgende Diagramm zeigt den CI/CD Projekt-Testbericht, der von Mainframe3270 Robot Framework erstellt wurde CodePipeline .

![\[Test report summary showing 100% pass rate for 3 test cases in 2.662 seconds.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/4752321a-c60d-455c-ac2f-6f0e2bc3dca0.png)


Das folgende Diagramm zeigt den CI/CD Projekt-Testbericht, der von CodePipeline in Py3270 und Behave BDD erstellt wurde.

![\[Test report summary showing 100% pass rate for 2 test cases in a pipeline.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/d005466e-aeb8-4fd6-8342-743ed049f98a.png)


Nachdem die Tests auf Projektebene erfolgreich bestanden wurden, wird der getestete Code manuell in den Integrationsstream in SCM hochgestuft. AccuRev Sie können diesen Schritt automatisieren, wenn sich die Teams darauf verlassen können, dass die Tests in ihrer Projektpipeline durchgeführt werden.

Wenn Code beworben wird, checkt die CI/CD Systemintegrationspipeline den zusammengeführten Code aus und führt Regressionstests durch. Der zusammengeführte Code wird aus allen parallel Projektstreams beworben.

Je nachdem, wie detailliert die Testumgebung sein muss, können Kunden mehr CI/CD Systemintegrations-Pipelines in einer anderen Umgebung einsetzen, z. B. UAT oder Pre-Production. 

In dem Muster sind die in der Systemintegrationspipeline verwendeten Tools Enterprise Test Server, UFT Server und Verastream. All diese Tools können im Docker-Container bereitgestellt und mit verwendet werden. CodeBuild

Nach erfolgreichem Testen der Mainframe-Programme wird das Artefakt mit Versionskontrolle in einem S3-Bucket gespeichert. 

Das folgende Diagramm zeigt eine Pipeline zur Systemintegration CI/CD .

![\[CI/CD pipeline showing AWS-Services and Micro Focus tools for source, build, test, and promote stages.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/693212e5-1cd0-4f82-a910-39b00d977c38.png)


 

Nachdem das Artefakt erfolgreich in den CI/CD Systemintegrationspipelines getestet wurde, kann es für den Produktionseinsatz freigegeben werden. 

Wenn Sie Quellcode wieder auf dem Mainframe bereitstellen müssen, bietet Rocket Software die Enterprise Sync-Lösung an, mit der Sie den Quellcode von AccuRev hinten nach Mainframe Endeavour synchronisieren können.

Das folgende Diagramm zeigt eine CI/CD Produktionspipeline, in der das Artefakt auf Unternehmensservern bereitgestellt wird. In diesem Beispiel wird die Bereitstellung des getesteten Mainframe-Artefakts auf Enterprise Server CodeDeploy orchestriert.

![\[CI/CD pipeline diagram showing CodePipeline, CodeBuild, and CodeDeploy stages for artifact deployment.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/2359db4c-f351-45a6-8516-88a3b62e61f9/images/56749c2a-e038-4e56-9487-b2ff83894725.png)


Zusätzlich zur Architektur-Komplettlösung der CI/CD Pipeline finden Sie im AWS DevOps Blogbeitrag [Automatisieren von Tausenden von Mainframe-Tests AWS mit der Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) weitere Informationen zum Testen von Mainframe-Anwendungen in und. CodeBuild CodePipeline (Micro Focus ist jetzt Rocket Software.) Im Blogbeitrag finden Sie bewährte Methoden und Einzelheiten zur Durchführung von Mainframe-Tests auf AWS.

## Tools
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-tools"></a>

**AWS Tools für die Automatisierung**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+ [ CloudWatch Amazon-Veranstaltungen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)
+ [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html)
+ [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)

**Softwaretools von Rocket**
+ [Rocket Enterprise-Entwickler für Eclipse](https://www.microfocus.com/documentation/enterprise-developer/ed60/ED-Eclipse/GUID-8D6B7358-AC35-4DAF-A445-607D8D97EBB2.html)
+ [Rocket Enterprise-Testserver](https://www.microfocus.com/documentation/enterprise-developer/ed60/ETS-help/GUID-ECA56693-D9FE-4590-8798-133257BFEBE7.html)
+ [Rocket Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/es_60/) (Produktionsbereitstellung)
+ [Rocket Software AccuRev](https://supportline.microfocus.com/documentation/books/AccuRev/AccuRev/6.2/webhelp/wwhelp/wwhimpl/js/html/wwhelp.htm)
+ [License Manager für Rocket Software Enterprise Suite](https://www.microfocus.com/documentation/slm/)
+ [Rocket Software Verastream Hostintegrator](https://www.microfocus.com/documentation/verastream-host-integrator/)
+ [Rocket Software UFT Eins](https://admhelp.microfocus.com/uft/en/24.4/UFT_Help/Content/User_Guide/Ch_UFT_Intro.htm)

**Andere Tools**
+ x3270
+ [py3270](https://pypi.org/project/py3270/)
+ [Robot-Framework-Mainframe-3270-Bibliothek](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)

## Epen
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-epics"></a>

### Erstellen Sie die AccuRev SCM-Infrastruktur
<a name="create-the-accurev-scm-infrastructure"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie einen primären AccuRev SCM-Server bereit, indem Sie CloudFormation. |  | AWS CloudFormation | 
| Erstellen Sie den AccuRev Administratorbenutzer. | Melden Sie sich bei AccuRev SCM Server an und führen Sie den CLI-Befehl aus, um einen Administratorbenutzer zu erstellen. | AccuRev SCM-Serveradministrator | 
|  AccuRev Streams erstellen. | Erstellen Sie AccuRev Streams, die nacheinander von den oberen Streams erben: Produktion, Systemintegration, Team-Streams. | AccuRev SCM-Administrator | 
| Erstellen Sie die AccuRev Entwickler-Anmeldekonten. | Verwenden Sie AccuRev SCM-CLI-Befehle, um AccuRev Benutzeranmeldekonten für Mainframe-Entwickler zu erstellen. | AccuRev SCM-Administrator | 

### Erstellen Sie die Amazon EC2 Launch-Vorlage für Enterprise Developer
<a name="create-the-enterprise-developer-ec2-launch-template"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die EC2 Amazon-Startvorlage bereit, indem Sie CloudFormation. | Wird verwendet CloudFormation , um eine EC2 Amazon-Startvorlage für Enterprise Developer-Instances bereitzustellen. Die Vorlage enthält ein Systems Manager Automation-Dokument für die Rocket Enterprise Developer-Instanz. | AWS CloudFormation | 
| Erstellen Sie die Enterprise Developer-Instance aus der EC2 Amazon-Vorlage. |  | AWS-Konsolenanmeldung und Kenntnisse als Mainframe-Entwickler | 

### Erstellen Sie das Docker-Image für das Enterprise Developer-Tool
<a name="create-the-enterprise-developer-tool-docker-image"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das Docker-Image des Enterprise Developer-Tools. | Verwenden Sie den Docker-Befehl und das Enterprise Developer-Tool Dockerfile, um das Docker-Image zu erstellen. | Docker | 
| Erstellen Sie das Docker-Repository in Amazon ECR. | Erstellen Sie auf der Amazon ECR-Konsole das Repository für das Enterprise Developer Docker-Image. | Amazon ECR | 
| Übertragen Sie das Docker-Image des Enterprise Developer-Tools auf Amazon ECR. | Führen Sie den Befehl Docker push aus, um das Docker-Image des Enterprise Developer-Tools zu pushen und es im Docker-Repository in Amazon ECR zu speichern. | Docker | 

### Erstellen Sie das Docker-Image für den Enterprise Test Server
<a name="create-the-enterprise-test-server-docker-image"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das Docker-Image für den Enterprise Test Server. | Verwenden Sie den Docker-Befehl und das Enterprise Test Server Dockerfile, um das Docker-Image zu erstellen. | Docker | 
| Erstellen Sie das Docker-Repository in Amazon ECR. | Erstellen Sie auf der Amazon ECR-Konsole das Amazon ECR-Repository für das Enterprise Test Server Docker-Image. | Amazon ECR | 
| Senden Sie das Enterprise Test Server Docker-Image an Amazon ECR. | Führen Sie den Befehl Docker push aus, um das Enterprise Test Server-Docker-Image in Amazon ECR zu pushen und zu speichern. | Docker | 

### Erstellen Sie die Team-Stream-Pipeline CI/CD
<a name="create-the-team-stream-ci-cd-pipeline"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das CodeCommit Repository. | Erstellen Sie auf der CodeCommit Konsole ein Git-basiertes Repository für Infrastruktur und CloudFormation Code. | AWS CodeCommit | 
| Laden Sie die CloudFormation Vorlage und den Automatisierungscode in das CodeCommit Repository hoch. | Führen Sie den Befehl Git push aus, um CloudFormation Vorlagen- und Automatisierungscode in das Repository hochzuladen. | Git | 
| Stellen Sie die CI/CD Team-Stream-Pipeline bereit, indem Sie CloudFormation. | Verwenden Sie die vorbereitete CloudFormation Vorlage, um eine CI/CD Team-Stream-Pipeline bereitzustellen. | AWS CloudFormation | 

### Erstellen Sie die CI/CD Systemintegrationspipeline
<a name="create-the-system-integration-ci-cd-pipeline"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das UFT-Docker-Image. | Verwenden Sie den Docker-Befehl und das UFT-Dockerfile, um das Docker-Image zu erstellen. | Docker | 
| Erstellen Sie das Docker-Repository in Amazon ECR für das UFT-Image. | Erstellen Sie auf der Amazon ECR-Konsole das Docker-Repository für das UFT-Image. | Amazon ECR | 
| Senden Sie das UFT-Docker-Image an Amazon ECR. | Führen Sie den Befehl Docker push aus, um das Enterprise Test Server-Docker-Image in Amazon ECR zu pushen und zu speichern. | Docker | 
| Erstellen Sie das Verastream-Docker-Image. | Verwenden Sie den Docker-Befehl und das Verastream-Dockerfile, um das Docker-Image zu erstellen. | Docker | 
| Erstellen Sie das Docker-Repository in Amazon ECR für das Verastream-Image. | Erstellen Sie auf der Amazon ECR-Konsole das Docker-Repository für das Verastream-Image. | Amazon ECR | 
| Stellen Sie die CI/CD Systemintegrationspipeline bereit, indem Sie CloudFormation | Verwenden Sie die vorbereitete CloudFormation Vorlage, um eine CI/CD Systemintegrationspipeline bereitzustellen. | AWS CloudFormation | 

### CI/CD Pipeline für die Produktionsbereitstellung erstellen
<a name="create-production-deployment-ci-cd-pipeline"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie Enterprise Server mithilfe des AWS Quick Start bereit. | Um Enterprise Server mithilfe von bereitzustellen CloudFormation, starten Sie den Enterprise Server auf AWS Quick Start. | AWS CloudFormation | 
| Stellen Sie eine CI/CD Pipeline für die Produktionsbereitstellung bereit. | Verwenden Sie auf der CloudFormation Konsole die CloudFormation Vorlage, um eine CI/CD Pipeline für die Produktionsbereitstellung bereitzustellen. | AWS CloudFormation | 

## Zugehörige Ressourcen
<a name="mainframe-modernization-devops-on-aws-with-micro-focus-resources"></a>

**Referenzen**
+ [AWS DevOps Blog — Automatisieren Sie Tausende von Mainframe-Tests AWS mit der Micro Focus Enterprise Suite](https://aws.amazon.com/blogs/devops/automate-mainframe-tests-on-aws-with-micro-focus/) (Micro Focus ist jetzt Rocket Software).
+ [py3270/py3270-Repository GitHub ](https://github.com/py3270/py3270)
+ [Altran-pt-gdc/Robot-Framework-Mainframe-3270-Bibliotheks-Repository GitHub ](https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library)
+ [Willkommen bei Behave\$1](https://behave.readthedocs.io/en/latest/index.html)
+ [APN-Partnerblog — Tag: Micro Focus](https://aws.amazon.com/blogs/apn/tag/micro-focus/) (Micro Focus ist jetzt Rocket Software.)
+ [Eine Instance über eine Startvorlage starten](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**AWS Marketplace**
+ [Rocket Software UFT One](https://aws.amazon.com/marketplace/pp/B01EGCA5OS?ref_=srh_res_product_title)

**AWS Schnellstart**
+ [Rocket Enterprise Server auf AWS](https://aws.amazon.com/quickstart/architecture/micro-focus-enterprise-server/)

# Modernisieren Sie Mainframe-Online-Druck-Workloads auf AWS mithilfe von Micro Focus Enterprise Server und LRS VPSX/MFI
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>

*Shubham Roy und Kevin Yung, Amazon Web Services*

*Abraham Rondon, Mikrofokus*

*Guy Tucker, Levi, Ray und Shoup Inc*

## Zusammenfassung
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie Ihre geschäftskritischen Mainframe-Online-Druck-Workloads in der Amazon Web Services (AWS) -Cloud modernisieren können, indem Sie Micro Focus Enterprise Server als Laufzeit für eine modernisierte Mainframe-Anwendung und LRS VPSX/MFI (Micro Focus Interface) als Druckserver verwenden. [Das Muster basiert auf dem Ansatz der Replatform Mainframe-Modernisierung.](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/) Bei diesem Ansatz migrieren Sie Ihre Mainframe-Online-Anwendung zu Amazon Elastic Compute Cloud (Amazon EC2) und migrieren Ihre Mainframe-Datenbank (z. B. IBM DB2 fürz/OS, to Amazon Relational Database Service (Amazon RDS). The authentication and authorization for the modernized print workflow is performed by AWS Directory Service for Microsoft Active Directory, also known as AWS Managed Microsoft AD. The LRS Directory Information Server (LRS/DIS), die in AWS Managed Microsoft AD für die Authentifizierung und Autorisierung von Druckworkflows integriert ist. Durch die Modernisierung Ihrer Online-Druck-Workloads können Sie die IT-Infrastrukturkosten senken, den technischen Aufwand für die Wartung älterer Systeme verringern, Datensilos beseitigen, die Agilität und Effizienz mit einem DevOps Modell erhöhen und die Vorteile von On-Demand-Ressourcen und Automatisierung in der AWS-Cloud nutzen.

## Voraussetzungen und Einschränkungen
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Ein Mainframe-Workload für Online-Druck oder Output-Management
+ Grundkenntnisse zur Neuerstellung und Bereitstellung einer Mainframe-Anwendung, die auf Micro Focus Enterprise Server ausgeführt wird (Weitere Informationen finden Sie im [Enterprise Server-Datenblatt](https://www.microfocus.com/media/data-sheet/enterprise_server_ds.pdf) in der Micro Focus-Dokumentation.)
+ Grundkenntnisse der LRS Cloud-Printing-Lösungen und -Konzepte (Weitere Informationen finden Sie unter [Output Modernization](https://www.lrsoutputmanagement.com/products/modernization-products) in der LRS-Dokumentation.)
+ Micro Focus Enterprise Server-Software und -Lizenz (Weitere Informationen erhalten Sie vom [Micro Focus-Vertrieb](https://www.microfocus.com/en-us/contact/contactme).)
+ VPSX/MFI, LRS/Queue, and LRS/DISLRS-Software und -Lizenzen (Weitere Informationen erhalten Sie vom [LRS-Vertrieb](https://www.lrsoutputmanagement.com/about-us/contact-us/).)

**Anmerkung**  
Weitere Informationen zu Überlegungen zur Konfiguration von Mainframe-Online-Druck-Workloads finden Sie unter *Überlegungen* im Abschnitt *Zusätzliche Informationen dieses Musters*.

**Produktversionen**
+ [Micro Focus Enterprise Server](https://www.microfocus.com/en-us/products/enterprise-server/overview?utm_campaign=7018e000000PgfnAAC&utm_content=SCH-BR-AMC-AppM-AMS&gclid=EAIaIQobChMIoZCQ6fvS9wIVxQN9Ch2MzAOlEAAYASAAEgKx2fD_BwE) 8.0 oder höher
+ [LRS VPSX/MFI V1R3](https://www.lrsoutputmanagement.com/products/modernization-products/) oder höher

## Architektur
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-architecture"></a>

**Quelltechnologie-Stack**
+ Betriebssystem — IBM z/OS
+ Programmiersprache — Common Business-Oriented Language (COBOL) und Customer Information Control System (CICS) 
+ Datenbank — IBM DB2 für z/OS IBM Information Management System (IMS) und Virtual Storage Access Method (VSAM)
+ Sicherheit — Resource Access Control Facility (RACF), CA Top Secret für z/OS und Access Control Facility 2 () ACF2
+ Druck- und Ausgabemanagement — IBM z/OS Mainframe-Druckprodukte (IBM Infoprint Server für z/OS, LRS und CA View)

**Zieltechnologie-Stack**
+ Betriebssystem — Microsoft Windows Server läuft auf Amazon EC2
+ Rechnen — Amazon EC2
+ Programmiersprache — COBOL und CICS
+ Datenbank — Amazon RDS
+ Sicherheit — AWS Managed Microsoft AD
+ Druck- und Ausgabemanagement — LRS-Drucklösung auf AWS
+ Mainframe-Laufzeitumgebung — Micro Focus Enterprise Server

**Quellarchitektur**

Das folgende Diagramm zeigt eine typische aktuelle Architektur für einen Mainframe-Online-Druck-Workload.

![\[Sechsstufiger Prozess zur Erzeugung sichtbarer Ergebnisse.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/293368f5-d102-4f4e-b290-71da4aeff347.png)


Das Diagramm zeigt den folgenden Workflow:

1. Benutzer führen Geschäftstransaktionen auf einem System of Engagement (SoE) durch, das auf einer in COBOL geschriebenen IBM CICS-Anwendung basiert.

1. Das SoE ruft den Mainframe-Service auf, der die Geschäftstransaktionsdaten in einer system-of-records (SoR) -Datenbank wie IBM for z/OS aufzeichnet. DB2 

1. Das SoR speichert die Geschäftsdaten aus dem SoE.

1. Ein Benutzer initiiert eine Anforderung zur Generierung der Druckausgabe vom CICS-SoE, wodurch eine Drucktransaktionsanwendung zur Verarbeitung der Druckanforderung initiiert wird. 

1. Die Anwendung für Drucktransaktionen (z. B. ein CICS- und COBOL-Programm) extrahiert Daten aus der Datenbank, formatiert die Daten gemäß den Geschäftsanforderungen und generiert Geschäftsergebnisse (Druckdaten) wie Abrechnungen, Personalausweise oder Kreditauszüge. Anschließend sendet die Anwendung mithilfe der Virtual Telecommunications Access Method (VTAM) eine Druckanforderung. Ein z/OS Druckserver (wie IBM Infoprint Server) verwendet NetSpool oder eine ähnliche VTAM-Komponente, um die Druckanforderungen abzufangen, und erstellt dann Druckausgabedatensätze auf dem JES-Spool mithilfe von JES-Ausgabeparametern. Die JES-Ausgabeparameter geben Routing-Informationen an, die der Druckserver verwendet, um die Ausgabe an einen bestimmten Netzwerkdrucker zu übertragen. Der Begriff *VTAM* bezieht sich auf den z/OS Communications Server und das System Network Architecture (SNA) -Serviceelement von z/OS.

1. Die Komponente zur Übertragung der Druckausgabe überträgt die ausgegebenen Druckdatensätze vom JES-Spool an externe Drucker oder Druckserver wie LRS (wie in diesem Muster gezeigt), IBM Infoprint Server oder E-Mail-Ziele.

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur für einen Mainframe-Online-Druck-Workload, der in der AWS-Cloud bereitgestellt wird:

![\[Vierstufiger Prozess von der Initiierung der Druckanfrage über die Verarbeitung auf AWS bis hin zum LRS-Druck.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/07c97b6f-1a86-493d-a4e0-b8321b46f9b7.png)


Das Diagramm zeigt den folgenden Workflow:

1. Ein Benutzer initiiert über eine Online-Benutzeroberfläche (CICS) eine Druckanfrage, um Druckausgaben wie Rechnungsauszüge, Personalausweise oder Kreditauszüge zu erstellen.

1. Die Mainframe-Online-Anwendung ([auf Amazon umgestellt EC2](https://aws.amazon.com/blogs/apn/demystifying-legacy-migration-options-to-the-aws-cloud/)) verwendet die Micro Focus Enterprise Server-Laufzeit, um Daten aus der Anwendungsdatenbank zu extrahieren, Geschäftslogik auf die Daten anzuwenden, die Daten zu formatieren und die Daten dann mithilfe von [Micro Focus CICS Print Exit](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/HCOMCMJCLOU020.html) (DFHUPRNT) an ein Druckziel zu senden. 

1. Die Anwendungsdatenbank (ein SoR, der auf Amazon RDS läuft) speichert Daten für die Druckausgabe.

1. Die VPSX/MFI LRS-Drucklösung wird auf Amazon EC2 bereitgestellt und ihre Betriebsdaten werden im Amazon Elastic Block Store (Amazon EBS) gespeichert. LRS VPSX/MFI verwendet einen TCP/IP-based LRS/Queue transmission agent to collect print data through the Micro Focus CICS Print Exit API (DFHUPRNT) and deliver the data to a specified printer destination. The original TERMID (TERM) that’s used in the modernized CICS application is used as the VPSX/MFI Warteschlangennamen. 

**Anmerkung**  
Die Ziellösung erfordert in der Regel keine Anwendungsänderungen, um Mainframe-Formatierungssprachen wie IBM Advanced Function Presentation (AFP) oder Xerox Line Condition Data Stream (LCDS) zu berücksichtigen. Weitere Informationen zur Verwendung von Micro Focus für die Migration und Modernisierung von Mainframe-Anwendungen auf AWS finden Sie in der AWS-Dokumentation unter [Empowering Enterprise Mainframe Workloads on AWS with Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/).

**AWS-Infrastrukturarchitektur**

Das folgende Diagramm zeigt eine hochverfügbare und sichere AWS-Infrastrukturarchitektur für einen Mainframe-Online-Druck-Workload:

![\[Zwei Availability Zones mit eingeschaltetem Micro Focus Enterprise Server EC2, Amazon RDS und LRS-Druck.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/images/093555a1-342c-420c-bb90-e9440d2e8650.png)


Das Diagramm zeigt den folgenden Workflow:

1. Die Mainframe-Online-Anwendung (geschrieben in einer Programmiersprache wie CICS oder COBOL) verwendet die Kerngeschäftslogik, um Druckausgaben wie Abrechnungen, Personalausweise und Kreditauszüge zu verarbeiten und zu generieren. Die Online-Anwendung wird auf Amazon EC2 in zwei [Availability Zones](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) (AZ) für hohe Verfügbarkeit (HA) bereitgestellt und verwendet Micro Focus CICS Print Exit, um die Druckausgabe an LRS VPSX/MFI weiterzuleiten, damit der Endbenutzer drucken kann.

1. LRS verwendet Befehle. VPSX/MFI TCP/IP-based LRS/Queue transmission agent to collect or capture print data from the Micro Focus online Print Exit programming interface. Online Print Exit passes the necessary information to enable LRS VPSX/MFI to effectively process the print file and dynamically build LRS/Queue 
**Anmerkung**  
*Weitere Informationen zu den verschiedenen Methoden der CICS-Anwendungsprogrammierung für den Druck und deren Unterstützung in Micro Focus Enterprise Server und LRS VPSX/MFI finden Sie unter *Druckdatenerfassung* im Abschnitt Zusätzliche Informationen dieses Musters.*

1. 
**Anmerkung**  
Ein [Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html) stellt einen DNS-Namen zur Integration von Micro Focus Enterprise Server in LRS bereit VPSX/MFI. : LRS VPSX/MFI supports a Layer 4 load balancer. The Network Load Balancer also does a basic health check on LRS VPSX/MFI und leitet den Datenverkehr an die registrierten Ziele weiter, die fehlerfrei sind.

1. Der VPSX/MFI LRS-Druckserver wird auf Amazon EC2 in zwei Availability Zones für HA bereitgestellt und verwendet [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) als Betriebsdatenspeicher. LRS VPSX/MFI unterstützt sowohl den aktiv-aktiven als auch den aktiv-passiven Servicemodus. Diese Architektur verwendet mehrere Availability Zones in einem Aktiv-Passiv-Paar als aktiven und Hot-Standby. Der Network Load Balancer führt eine Integritätsprüfung der VPSX/MFI EC2 LRS-Instances durch und leitet den Datenverkehr an Hot-Standby-Instances in einer anderen Availability Zone weiter, wenn sich eine aktive Instance in einem fehlerhaften Zustand befindet. Die Druckanforderungen werden in jeder Instanz lokal in der LRS-Auftragswarteschlange gespeichert. EC2 Im Falle einer Wiederherstellung muss eine ausgefallene Instanz neu gestartet werden, damit die LRS-Dienste die Verarbeitung der Druckanforderung fortsetzen können. 
**Anmerkung**  
LRS VPSX/MFI kann auch Zustandsprüfungen auf Ebene der Druckerflotte durchführen. Weitere Informationen finden Sie unter *Integritätsprüfungen der Druckerflotte* im Abschnitt *Zusätzliche Informationen* dieses Musters.

1. [AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/directory_microsoft_ad.html) lässt sich integrieren LRS/DIS , um die Authentifizierung und Autorisierung von Druckworkflows durchzuführen. Weitere Informationen finden Sie unter *Druckauthentifizierung und Autorisierung* im Abschnitt *Zusätzliche Informationen* dieses Musters.

1. LRS VPSX/MFI verwendet Amazon EBS für Blockspeicher. Sie können Amazon EBS-Daten von aktiven EC2 Instances als point-in-time Snapshots auf Amazon S3 sichern und sie auf Hot-Standby-EBS-Volumes wiederherstellen. [Um die Erstellung, Aufbewahrung und Löschung von Amazon EBS-Volume-Snapshots zu automatisieren, können Sie [Amazon Data Lifecycle Manager](https://aws.amazon.com/blogs/aws/new-lifecycle-management-for-amazon-ebs-snapshots/) verwenden, um die Häufigkeit automatisierter Snapshots festzulegen und sie auf der Grundlage Ihrer RTO/RPO-Anforderungen wiederherzustellen.](https://docs.aws.amazon.com/whitepapers/latest/disaster-recovery-workloads-on-aws/disaster-recovery-options-in-the-cloud.html)

## Tools
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-tools"></a>

**AWS-Services**
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) bietet Speichervolumen auf Blockebene zur Verwendung mit Amazon-Instances. EC2 EBS-Volumes verhalten sich wie unformatierte Blockgeräte. Sie können diese Volumes als Geräte auf Ihren Instances mounten.
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.
+ [AWS Directory Service for Microsoft Active Directory (AD)](https://aws.amazon.com/directoryservice/active-directory/), auch bekannt als AWS Managed Microsoft Active Directory, ermöglicht es Ihren verzeichnissensitiven Workloads und AWS-Ressourcen, verwaltetes Active Directory in AWS zu verwenden.

**Andere Tools**
+ [LRS VPSX/MFI (Micro Focus Interface)](https://www.lrsoutputmanagement.com/products/modernization-products/), das gemeinsam von LRS und Micro Focus entwickelt wurde, erfasst die Ausgabe von einem Micro Focus Enterprise Server JES-Spool und leitet sie zuverlässig an ein bestimmtes Druckziel weiter.
+ Der LRS Directory Information Server (LRS/DIS) wird für die Authentifizierung und Autorisierung während des Druckworkflows verwendet.
+ LRS/Queue is a TCP/IP-based LRS/Queue transmission agent, used by LRS VPSX/MFI, um Druckdaten über die Online-Programmierschnittstelle Print Exit von Micro Focus zu sammeln oder zu erfassen.
+ [Micro Focus Enterprise Server](https://www.microfocus.com/documentation/enterprise-developer/ed60/ES-WIN/GUID-A2F23243-962B-440A-A071-480082DF47E7.html) ist eine Umgebung zur Anwendungsbereitstellung für Mainframe-Anwendungen. Sie bietet die Ausführungsumgebung für Mainframe-Anwendungen, die mithilfe einer beliebigen Version von Micro Focus Enterprise Developer migriert oder erstellt wurden.

## Epen
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-epics"></a>

### Richten Sie Micro Focus Enterprise Server auf Amazon ein EC2 und stellen Sie eine Mainframe-Online-Anwendung bereit
<a name="set-up-micro-focus-enterprise-server-on-amazon-ec2-and-deploy-a-mainframe-online-application"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie Micro Focus Enterprise Server ein und stellen Sie eine Demo-Online-Anwendung bereit. | Richten Sie Micro Focus Enterprise Server auf Amazon EC2 ein und stellen Sie dann die Micro Focus Account Demo-Anwendung (ACCT-Demo) auf Amazon bereit, EC2 indem Sie den Anweisungen unter [Tutorial: CICS-Support](https://www.microfocus.com/documentation/enterprise-developer/ed70/ED-Eclipse/GMWALK00.html) in der Micro Focus-Dokumentation folgen.Die ACCT-Demo-Anwendung ist eine Mainframe-Online-Anwendung (CICS), die die Druckausgabe erstellt und dann initiiert. | Cloud-Architekt | 

### Richten Sie einen LRS-Druckserver bei Amazon ein EC2
<a name="set-up-an-lrs-print-server-on-amazon-ec2"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Besorgen Sie sich eine LRS-Produktlizenz zum Drucken. | Um eine LRS-Produktlizenz für LRS zu erhaltenVPSX/MFI, LRS/Queue, and LRS/DIS, wenden Sie sich an das [LRS](https://www.lrsoutputmanagement.com/about-us/contact-us/) Output Management-Team. Sie müssen die Hostnamen der EC2 Instanzen angeben, auf denen die LRS-Produkte installiert werden. | Bauen Sie einen Vorsprung auf | 
| Erstellen Sie eine Amazon EC2 Windows-Instance, um LRS VPSX/MFI zu installieren. | Starten Sie eine Amazon EC2 Windows-Instance, indem Sie den Anweisungen in [Schritt 1: Starten einer Instance](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-launch-instance) in der EC2 Amazon-Dokumentation folgen. Ihre Instance muss die folgenden Hardware- und Softwareanforderungen für LRS VPSX/MFI erfüllen:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Die oben genannten Hardware- und Softwareanforderungen sind für eine kleine Druckerflotte (etwa 500—1000) vorgesehen. Um die vollständigen Anforderungen zu erfahren, wenden Sie sich an Ihre LRS- und AWS-Ansprechpartner.Gehen Sie beim Erstellen Ihrer Windows-Instance wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Installieren Sie LRS VPSX/MFI auf der EC2 Instanz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Installieren Sie LRS/Queue. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Installieren Sie LRS/DIS. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Erstellen Sie eine Zielgruppe und registrieren Sie LRS VPSX/MFI EC2 als Ziel. | Erstellen Sie eine Zielgruppe, indem Sie den Anweisungen unter [Erstellen Sie eine Zielgruppe für Ihren Network Load Balancer in der Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-target-group.html) Balancing-Dokumentation folgen.Gehen Sie beim Erstellen der Zielgruppe wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Erstellen Sie einen Network Load Balancer. | Folgen Sie den Anweisungen unter [Network Load Balancer erstellen](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) in der Elastic Load Balancing Balancing-Dokumentation. Ihr Network Load Balancer leitet den Datenverkehr vom Micro Focus Enterprise Server an VPSX/MFI EC2 LRS weiter.Wenn Sie den Network Load Balancer erstellen, gehen Sie auf der Seite **Listener und Routing** wie folgt vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Integrieren Sie Micro Focus Enterprise Server mit LRS VPSX/MFI und LRS/Queue
<a name="integrate-micro-focus-enterprise-server-with-lrs-vpsx-mfi-and-lrs-queue"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie Micro Focus Enterprise Server für die LRS/Queue Integration. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Stellen Sie CICS Print Exit (DFHUPRNT) für die Initialisierung von Micro Focus Enterprise Server zur Verfügung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Stellen Sie sicher, dass Micro Focus Enterprise Server CICS Print Exit (DFHUPRNT) erkannt hat**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Definieren Sie die Terminal-ID (TERMIDs) des CICS-Druckers als Micro Focus Enterprise Server. | **Aktivieren Sie den 3270-Druck in Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)**Definieren Sie das Terminal des CICS-Druckers in Micro Focus Enterprise Server**[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Richten Sie Drucker und Druckbenutzer in Micro Focus Enterprise Server und LRS VPSX/MFI ein
<a name="set-up-printers-and-print-users-in-micro-focus-enterprise-server-and-lrs-vpsx-mfi"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Druckwarteschlange im LRS VPSX. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Die Druckerwarteschlange muss dem in Micro Focus Enterprise TERMIDs Server erstellten Druck entsprechen. | Cloud-Architekt | 
| Erstellen Sie einen Druckbenutzer in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Richten Sie die Druckauthentifizierung und -autorisierung ein
<a name="set-up-print-authentication-and-authorization"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine von AWS verwaltete Microsoft AD-Domain mit Benutzern und Gruppen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 
| Verbinden Sie LRS VPSX/MFI EC2 mit einer von AWS verwalteten Microsoft AD-Domain. | Verbinden Sie LRS VPSX/MFI EC2 [automatisch](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-systems-manager-dx-domain/) (AWS Knowledge Center-Dokumentation) oder [manuell](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/join_windows_instance.html) (AWS Directory Service-Dokumentation) mit Ihrer AWS Managed Microsoft AD-Domain. | Cloud-Architekt | 
| Konfiguration und Integration LRS/DIS mit AWS Managed Microsoft AD. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html) | Cloud-Architekt | 

### Testen Sie einen Online-Druck-Workflow
<a name="test-an-online-print-workflow"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Initiieren Sie über die Micro Focus ACCT Demo-App eine Online-Druckanfrage. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Die Meldung „Print Request Scheduled“ wird am unteren Bildschirmrand angezeigt. Dadurch wird bestätigt, dass aus der ACCT-Demo-Anwendung eine Online-Druckanfrage generiert und VPS/MFI zur Druckverarbeitung an LRS gesendet wurde.  | Cloud-Architekt | 
| Überprüfen Sie die Druckausgabe in LRS VPSX/MFI. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi.html)Sie können jetzt die Druckausgabe eines Kontoauszugs mit Spalten für Kontonummer, NACHNAME, VORNAME, ADRESSE, TELEFON, Nr. sehen. Ausgestellte Karten, Ausstellungsdatum, Betrag und Saldo.Ein Beispiel für dieses Muster finden Sie im Anhang **online\$1print\$1output**. | Testingenieur | 

## Zugehörige Ressourcen
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-resources"></a>
+ [Modernisierung der LRS-Leistung](https://www.lrsoutputmanagement.com/products/modernization-products) (LRS-Dokumentation)
+ [VTAM-Netzwerkkonzepte](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-vtam-networking-concepts) (IBM-Dokumentation)
+ [Zusammenfassung der LU-Typen (Logical Unit)](https://www.ibm.com/docs/en/wsfz-and-o/1.1?topic=installation-summary-logical-unit-lu-types) (IBM-Dokumentation)
+ [ANSI und Maschinenwagensteuerungen](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) (IBM-Dokumentation)
+ [Unterstützung von Mainframe-Workloads für Unternehmen auf AWS mit Micro Focus](https://aws.amazon.com/blogs/apn/empowering-enterprise-grade-mainframe-workloads-on-aws-with-micro-focus/) (AWS-Partnernetzwerk-Blog)
+ [Erstellen Sie ein Micro Focus Enterprise Server PAC mit Amazon EC2 Auto Scaling und Systems Manager (Dokumentation](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/build-a-micro-focus-enterprise-server-pac-with-amazon-ec2-auto-scaling-and-systems-manager.html) zu AWS Prescriptive Guidance)
+ [AFP-Datenstream (Advanced Function Presentation)](https://www.ibm.com/docs/en/i/7.4?topic=streams-advanced-function-presentation-data-stream) (IBM-Dokumentation)
+ [Line Conditioned Data Stream (LCDS) (Compart-Dokumentation)](https://www.compart.com/en/lcds)

## Zusätzliche Informationen
<a name="modernize-mainframe-online-printing-workloads-on-aws-by-using-micro-focus-enterprise-server-and-lrs-vpsx-mfi-additional"></a>

**Überlegungen**

Während Ihrer Modernisierung können Sie eine Vielzahl von Konfigurationen für Mainframe-Online-Prozesse und die damit generierte Leistung in Betracht ziehen. Die Mainframe-Plattform wurde von allen Kunden und Anbietern, die sie verwenden, an spezielle Anforderungen angepasst, die sich direkt auf den Druck auswirken. Beispielsweise kann Ihre aktuelle Plattform IBM Advanced Function Presentation (AFP) oder den Xerox Line Condition Data Stream (LCDS) in den aktuellen Arbeitsablauf integrieren. Darüber hinaus können [Mainframe-Wagen-Steuerzeichen](https://www.ibm.com/docs/en/cmofz/9.5.0?topic=tips-ansi-machine-carriage-controls) und [Kanalbefehle](https://www.ibm.com/docs/en/zos/2.3.0?topic=devices-channel-command-words) das Aussehen der gedruckten Seite beeinflussen und erfordern möglicherweise eine besondere Behandlung. Im Rahmen der Planung der Modernisierung empfehlen wir Ihnen, die Konfigurationen in Ihrer spezifischen Druckumgebung zu bewerten und zu verstehen.

**Erfassung von Druckdaten**

In diesem Abschnitt werden die Methoden zur CICS-Anwendungsprogrammierung zusammengefasst, die Sie in einer IBM-Mainframe-Umgebung zum Drucken verwenden können. VPSX/MFI LRS-Komponenten bieten Techniken, mit denen dieselben Anwendungsprogramme Daten auf dieselbe Weise erstellen können. In der folgenden Tabelle wird beschrieben, wie die einzelnen Methoden der Anwendungsprogrammierung in einer modernisierten CICS-Anwendung unterstützt werden, die in AWS und Micro Focus Enterprise Server mit einem VPSX/MFI LRS-Druckserver ausgeführt wird.


| 
| 
| Methode | Description | Support der Methode in einer modernisierten Umgebung | 
| --- |--- |--- |
| FÜHRUNGSKRÄFTE SENDEN TEXT... oder EXEC CICS SEND MAP..  | Diese CICS- und VTAM-Methoden sind für die Erstellung und Bereitstellung von 3270/SCS-Druckdatenströmen an LUTYPE0,, und Druckgeräte verantwortlich. LUTYPE1 LUTYPE3  | Eine Micro Focus Online Print Exit (DFHUPRNT) -Anwendungsprogrammschnittstelle (API) ermöglicht die Verarbeitung von Druckdaten, VPSX/MFI sobald 3270/SCS-Druckdatenströme mit einer dieser Methoden erstellt werden.  | 
| FÜHRUNGSKRÄFTE SENDEN TEXT... oder EXEC CICS SEND MAP.. (mit IBM Mainframe-Software eines Drittanbieters) | Die CICS- und VTAM-Methoden sind für die Erstellung und Bereitstellung von 3270/SCS-Druckdatenströmen an LUTYPE0,, und Druckgeräte verantwortlich. LUTYPE1 LUTYPE3 Softwareprodukte von Drittanbietern fangen die Druckdaten ab, konvertieren die Daten in Standarddruckformatdaten mit einem ASA/MCH Steuerzeichen und platzieren die Daten auf dem JES-Spool, damit sie von Mainframe-basierten Drucksystemen verarbeitet werden können, die JES verwenden.  | Eine Micro Focus Online Print Exit (DFHUPRNT) -API ermöglicht die Verarbeitung von Druckdaten, VPSX/MFI wenn 3270/SCS-Druckdatenströme mit einer dieser Methoden erstellt werden.  | 
| FÜHREN SIE CICS SPOOLOPEN AUS  | Diese Methode wird von CICS-Anwendungsprogrammen verwendet, um Daten direkt in den JES-Spool zu schreiben. Die Daten stehen dann für die Verarbeitung durch Mainframe-basierte Drucksysteme zur Verfügung, die JES verwenden.  | Micro Focus Enterprise Server spoolt die Daten in den Enterprise Server-Spool, wo sie mit dem VPSX/MFI Batch Print Exit (LRSPRTE6) verarbeitet werden können, der die Daten zu VPSX spoolt.  | 
| DRS/API | Eine von LRS bereitgestellte programmatische Schnittstelle wird zum Schreiben von Druckdaten in JES verwendet.  | VPSX/MFI bietet eine Ersatzschnittstelle, die die Druckdaten direkt an VPSX weiterleitet.  | 

**Zustandsprüfungen der Druckerflotte**

LRS VPSX/MFI (LRS LoadX) kann tiefgreifende Zustandsprüfungen durchführen, einschließlich Geräteverwaltung und Betriebsoptimierung. Die Geräteverwaltung kann Fehler in einem Druckergerät erkennen und die Druckanforderung an einen fehlerfreien Drucker weiterleiten. Weitere Informationen zu umfassenden Integritätsprüfungen für Druckerflotten finden Sie in der LRS-Dokumentation, die in Ihrer Produktlizenz enthalten ist.

**Authentifizierung und Autorisierung drucken**

LRS/DIS enables LRS applications to authenticate user IDs and passwords by using Microsoft Active Directory or an LDAP server. In addition to basic print authorization, LRS/DISkann in den folgenden Anwendungsfällen auch detaillierte Drucksicherheitskontrollen anwenden:
+ Steuert, wer den Druckerauftrag durchsuchen kann.
+ Verwaltet die Navigationsebene der Aufträge anderer Benutzer.
+ Operative Aufgaben verwalten. Zum Beispiel Sicherheitsfunktionen auf Befehlsebene wie „Sperren/Freigeben“, „Löschen“, „Ändern“, „Kopieren“ und „Umleiten“. Die Sicherheit kann entweder anhand der Benutzer-ID oder der Gruppe (ähnlich der AD-Gruppe oder der LDAP-Gruppe) eingerichtet werden.

## Anlagen
<a name="attachments-924cdae7-9265-4fc9-8e5e-bb2da5368e7e"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/924cdae7-9265-4fc9-8e5e-bb2da5368e7e/attachments/attachment.zip)

# Verschieben Sie Mainframe-Dateien mit Transfer Family direkt nach Amazon S3
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family"></a>

*Luis Gustavo Dantas, Amazon Web Services*

## Zusammenfassung
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-summary"></a>

Im Rahmen der Modernisierung können Sie sich der Herausforderung stellen, Dateien zwischen Ihren lokalen Servern und der Amazon Web Services (AWS) Cloud zu übertragen. Die Übertragung von Daten von Mainframes kann eine große Herausforderung sein, da Mainframes in der Regel nicht auf moderne Datenspeicher wie Amazon Simple Storage Service (Amazon S3), Amazon Elastic Block Store (Amazon EBS) oder Amazon Elastic File System (Amazon EFS) zugreifen können.

Viele Kunden verwenden Intermediate-Staging-Ressourcen wie lokale Linux-, Unix- oder Windows-Server, um Dateien in die AWS-Cloud zu übertragen. Sie können diese indirekte Methode vermeiden, indem Sie AWS Transfer Family mit dem Secure Shell (SSH) File Transfer Protocol (SFTP) verwenden, um Mainframe-Dateien direkt auf Amazon S3 hochzuladen.

## Voraussetzungen und Einschränkungen
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine virtuelle private Cloud (VPC) mit einem Subnetz, das über Ihre Legacy-Plattform erreichbar ist
+ Ein Transfer Family Family-Endpunkt für Ihre VPC
+ Mainframe-VSAM-Dateien (Virtual Storage Access Method) wurden in sequentielle Dateien mit [fester](https://www.ibm.com/docs/en/zos/2.1.0?topic=reports-converting-vb-fb) Länge konvertiert (IBM-Dokumentation)

**Einschränkungen**
+ SFTP überträgt Dateien standardmäßig im Binärmodus, was bedeutet, dass Dateien unter Beibehaltung der EBCDIC-Kodierung auf Amazon S3 hochgeladen werden. Wenn Ihre Datei keine binären oder gepackten Daten enthält, können Sie den [Unterbefehl **sftp** ascii](https://www.ibm.com/docs/en/zos/2.3.0?topic=version-what-zos-openssh-supports) (IBM-Dokumentation) verwenden, um Ihre Dateien während der Übertragung in Text zu konvertieren.
+ Sie müssen [Mainframe-Dateien (AWS Prescriptive Guidance) entpacken](https://apg-library.amazonaws.com/content/f5907bfe-7dff-4cd0-8523-57015ad48c4b), die gepackte und binäre Inhalte enthalten, um diese Dateien in Ihrer Zielumgebung verwenden zu können.
+ Amazon S3 S3-Objekte können eine Größe von mindestens 0 Byte bis zu einem Maximum von 5 TB haben. Weitere Informationen zu den Funktionen von Amazon S3 finden Sie unter [Amazon S3 FAQs](https://aws.amazon.com/s3/faqs/?nc1=h_ls).

## Architektur
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-architecture"></a>

**Quelltechnologie-Stack**
+ Sprache zur Jobkontrolle (JCL)
+ z/OS Unix-Shell und ISPF
+ SFTP
+ VSAM und Flatfiles

**Zieltechnologie-Stack**
+ Transfer Family
+ Amazon S3
+ Amazon Virtual Private Cloud (Amazon VPC)

**Zielarchitektur**

Das folgende Diagramm zeigt eine Referenzarchitektur für die Verwendung von Transfer Family mit SFTP, um Mainframe-Dateien direkt in einen S3-Bucket hochzuladen.

![\[Verwenden von Transfer Family mit SFTP zum direkten Hochladen von Mainframe-Dateien in einen S3-Bucket\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/1f4fa1fd-b681-41bc-81d8-d556426b14c2/images/110491d5-b58d-4451-8de9-e742756bb192.png)


Das Diagramm zeigt den folgenden Workflow:

1. Sie verwenden einen JCL-Job, um Ihre Mainframe-Dateien über Direct Connect vom Legacy-Mainframe in die AWS-Cloud zu übertragen.

1. Direct Connect ermöglicht es Ihrem Netzwerkverkehr, im globalen AWS-Netzwerk zu bleiben und das öffentliche Internet zu umgehen. Direct Connect verbessert auch die Netzwerkgeschwindigkeit, angefangen bei 50 Mbit/s bis hin zur Skalierung auf bis zu 100 Gbit/s.

1. Der VPC-Endpunkt ermöglicht Verbindungen zwischen Ihren VPC-Ressourcen und den unterstützten Diensten, ohne das öffentliche Internet zu nutzen. Der Zugriff auf Transfer Family und Amazon S3 ermöglicht eine hohe Verfügbarkeit, da er über die elastischen Netzwerkschnittstellen erfolgt, die sich in zwei privaten Subnetzen und Availability Zones befinden.

1. Transfer Family authentifiziert Benutzer und verwendet SFTP, um Ihre Dateien aus der Legacy-Umgebung zu empfangen und in einen S3-Bucket zu verschieben.

**Automatisierung und Skalierung**

Nachdem der Transfer Family Family-Service eingerichtet wurde, können Sie eine unbegrenzte Anzahl von Dateien vom Mainframe auf Amazon S3 übertragen, indem Sie einen JCL-Job als SFTP-Client verwenden. Sie können die Dateiübertragung auch automatisieren, indem Sie einen Mainframe-Batch-Job-Scheduler verwenden, um die SFTP-Jobs auszuführen, wenn Sie bereit sind, die Mainframe-Dateien zu übertragen.

## Tools
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-tools"></a>
+ [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.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) hilft Ihnen, AWS-Ressourcen in einem von Ihnen definierten virtuellen Netzwerk zu starten. Dieses virtuelle Netzwerk ähnelt einem herkömmlichen Netzwerk, das Sie in Ihrem eigenen Rechenzentrum betreiben würden, mit den Vorteilen der skalierbaren Infrastruktur von AWS.
+ Mit der [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) können Sie Ihre wiederkehrenden business-to-business Dateiübertragungen an Amazon S3 und Amazon EFS mithilfe der Protokolle SFTP, FTPS und FTP sicher skalieren.

## Epen
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-epics"></a>

### Erstellen Sie den S3-Bucket und die Zugriffsrichtlinie
<a name="create-the-s3-bucket-and-the-access-policy"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den S3-Bucket. | [Erstellen Sie einen S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html), um die Dateien zu hosten, die Sie aus Ihrer Legacy-Umgebung übertragen. | Allgemeines AWS | 
| Erstellen Sie die IAM-Rolle und -Richtlinie. | Transfer Family verwendet Ihre AWS Identity and Access Management (IAM) -Rolle, um Zugriff auf den S3-Bucket zu gewähren, den Sie zuvor erstellt haben.[Erstellen Sie eine IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html), die die folgende [IAM-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) umfasst:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "UserFolderListing",<br />            "Action": [<br />                "s3:ListBucket",<br />                "s3:GetBucketLocation"<br />            ],<br />            "Effect": "Allow",<br />            "Resource": [<br />                "arn:aws:s3:::<your-bucket-name>"<br />            ]<br />        },<br />        {<br />            "Sid": "HomeDirObjectAccess",<br />            "Effect": "Allow",<br />            "Action": [<br />                "s3:PutObject",<br />                "s3:GetObjectAcl",<br />                "s3:GetObject",<br />                "s3:DeleteObjectVersion",<br />                "s3:DeleteObject",<br />                "s3:PutObjectAcl",<br />                "s3:GetObjectVersion"<br />            ],<br />            "Resource": "arn:aws:s3:::<your-bucket-name>/*"<br />        }<br />    ]<br />}</pre>Sie müssen den Anwendungsfall Transfer auswählen, wenn Sie die IAM-Rolle erstellen. | Allgemeines AWS | 

### Definieren Sie den Transferservice
<a name="define-the-transfer-service"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den SFTP-Server. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Weitere Informationen zur Einrichtung eines SFTP-Servers finden Sie unter [Erstellen eines SFTP-fähigen Servers](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) (AWS Transfer Family Family-Benutzerhandbuch). | Allgemeines AWS | 
| Holen Sie sich die Serveradresse. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Allgemeines AWS | 
| Erstellen Sie das SFTP-Client-Schlüsselpaar. | Erstellen Sie ein SSH-Schlüsselpaar für [Microsoft Windows](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#windows-ssh) oder [macOS/Linux/UNIX](https://docs.aws.amazon.com/transfer/latest/userguide/key-management.html#macOS-linux-unix-ssh). | Allgemeines AWS, SSH | 
| Erstellen Sie den SFTP-Benutzer. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Allgemeines AWS | 

### Übertragen Sie die Mainframe-Datei
<a name="transfer-the-mainframe-file"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Senden Sie den privaten SSH-Schlüssel an den Mainframe. | Verwenden Sie SFTP oder SCP, um den privaten SSH-Schlüssel an die Legacy-Umgebung zu senden.SFTP-Beispiel:<pre>sftp [USERNAME@mainframeIP]<br />[password]<br />cd [/u/USERNAME]<br />put [your-key-pair-file]</pre>SCP-Beispiel:<pre>scp [your-key-pair-file] [USERNAME@MainframeIP]:/[u/USERNAME]</pre>Als Nächstes speichern Sie den SSH-Schlüssel im z/OS Unix-Dateisystem unter dem Benutzernamen, der später den Batch-Job für die Dateiübertragung ausführen wird (z. B.`/u/CONTROLM`). Weitere Informationen zur z/OS Unix-Shell finden Sie unter [Einführung in die z/OS Shells](https://www.ibm.com/docs/en/zos/2.2.0?topic=shells-introduction-zos) (IBM-Dokumentation). | Mainframe, z/OS Unix-Shell, FTP, SCP | 
| Erstellen Sie den JCL-SFTP-Client. | Da Mainframes keinen nativen SFTP-Client haben, müssen Sie das BPXBATCH-Hilfsprogramm verwenden, um den SFTP-Client von der Unix-Shell aus auszuführen. z/OS Erstellen Sie im ISPF-Editor den JCL-SFTP-Client. Beispiel:<pre>//JOBNAM JOB ...<br />//**********************************************************************<br />//SFTP EXEC PGM=BPXBATCH,REGION=0M <br />//STDPARM DD * <br />SH cp "//'MAINFRAME.FILE.NAME'" filename.txt; <br />echo 'put filename.txt' > uplcmd; <br />sftp -b uplcmd -i ssh_private_key_file ssh_username@<transfer service ip or DNS>; <br />//SYSPRINT DD SYSOUT=* <br />//STDOUT DD SYSOUT=* <br />//STDENV DD * <br />//STDERR DD SYSOUT=*</pre>Weitere Informationen zur Ausführung eines Befehls in der z/OS Unix-Shell finden Sie unter [Das BPXBATCH-Hilfsprogramm](https://www.ibm.com/docs/en/zos/2.2.0?topic=ispf-bpxbatch-utility) (IBM-Dokumentation). [Weitere Informationen zum Erstellen oder Bearbeiten von JCL-Jobs in z/OS finden Sie unter Was ist ISPF?](https://www.ibm.com/docs/en/zos-basic-skills?topic=interfaces-what-is-ispf) und [Der ISPF-Editor](https://www.ibm.com/docs/en/zos-basic-skills?topic=ispf-editor) (IBM-Dokumentation). | JCL, Mainframe, Unix-Shell z/OS  | 
| Führen Sie den JCL-SFTP-Client aus. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html)Weitere Informationen zur Überprüfung der Aktivität von Batch-Jobs finden Sie im [z/OS SDSF User's](https://www.ibm.com/docs/en/zos/2.4.0?topic=sdsf-zos-users-guide) Guide (IBM-Dokumentation). | Mainframe, JCL, ISPF | 
| Bestätigen Sie die Dateiübertragung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/move-mainframe-files-directly-to-amazon-s3-using-transfer-family.html) | Allgemeines AWS | 
| Automatisieren Sie den JCL-SFTP-Client. | Verwenden Sie den Job-Scheduler, um den JCL-SFTP-Client automatisch auszulösen.Sie können Mainframe-Job-Scheduler wie [BMC Control-M](https://www.bmcsoftware.pt/it-solutions/control-m.html) oder [CA Workload Automation](https://www.broadcom.com/products/mainframe/workload-automation/ca7) verwenden, um Batch-Jobs für Dateiübertragungen auf der Grundlage von Zeit und anderen Abhängigkeiten von Batch-Jobs zu automatisieren. | Jobplaner | 

## Zugehörige Ressourcen
<a name="move-mainframe-files-directly-to-amazon-s3-using-transfer-family-resources"></a>
+ [So funktioniert die AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/how-aws-transfer-works.html)

# Optimieren Sie die Leistung Ihrer modernisierten AWS Blu Age-Anwendung
<a name="optimize-performance-aws-blu-age-modernized-application"></a>

*Vishal Jaswani, Manish Roy und Himanshu Sah, Amazon Web Services*

## Zusammenfassung
<a name="optimize-performance-aws-blu-age-modernized-application-summary"></a>

Mainframe-Anwendungen, die mit AWS Blu Age modernisiert wurden, erfordern Funktions- und Leistungsgleichwertigkeitstests, bevor sie in der Produktion eingesetzt werden. Bei Leistungstests können modernisierte Anwendungen langsamer ausgeführt werden als ältere Systeme, insbesondere bei komplexen Batch-Jobs. Dieser Unterschied besteht darin, dass Mainframe-Anwendungen monolithisch sind, wohingegen moderne Anwendungen mehrstufige Architekturen verwenden. [Dieses Muster stellt Optimierungstechniken zur Behebung dieser Leistungslücken für Anwendungen vor, die mithilfe von automatisiertem Refactoring mit Blu Age modernisiert wurden. AWS](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html)

Das Muster verwendet das AWS Blu Age-Modernisierungsframework mit systemeigenen Java- und Datenbankoptimierungsfunktionen, um Leistungsengpässe zu identifizieren und zu beheben. Das Muster beschreibt, wie Sie mithilfe von Profilerstellung und Überwachung Leistungsprobleme anhand von Kennzahlen wie SQL-Ausführungszeiten, Speicherauslastung und Mustern identifizieren können. I/O Anschließend wird erklärt, wie Sie gezielte Optimierungen anwenden können, darunter die Umstrukturierung von Datenbankabfragen, das Zwischenspeichern und die Verfeinerung der Geschäftslogik.

Die Verbesserungen der Batch-Verarbeitungszeiten und der Auslastung der Systemressourcen tragen dazu bei, dass Sie das Mainframe-Leistungsniveau Ihrer modernisierten Systeme erreichen. Dieser Ansatz gewährleistet die funktionale Gleichwertigkeit beim Übergang zu modernen Cloud-basierten Architekturen.

[Um dieses Muster zu verwenden, richten Sie Ihr System ein und identifizieren Sie Leistungsprobleme, indem Sie den Anweisungen im Abschnitt [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) folgen und die Optimierungstechniken anwenden, die im Abschnitt Architektur ausführlich behandelt werden.](#optimize-performance-aws-blu-age-modernized-application-architecture)

## Voraussetzungen und Einschränkungen
<a name="optimize-performance-aws-blu-age-modernized-application-prereqs"></a>

**Voraussetzungen**
+ Eine modernisierte AWS Anwendung von Blue Age
+ [Eine Lizenz JProfiler ](https://www.ej-technologies.com/store/jprofiler)
+ Administratorrechte zur Installation des Datenbankclients und der Profilerstellungstools
+ AWS Blu Age [Level 3-Zertifizierung](https://bluinsights.aws/certification/)
+ Kenntnisse des AWS Blu Age-Frameworks, der generierten Codestruktur und der Java-Programmierung auf mittlerem Niveau

**Einschränkungen**

Die folgenden Optimierungsmöglichkeiten und Merkmale fallen nicht in den Geltungsbereich dieses Musters:
+ Optimierung der Netzwerklatenz zwischen Anwendungsebenen
+ Optimierungen auf Infrastrukturebene durch Amazon Elastic Compute Cloud (Amazon EC2) Instance-Typen und Speicheroptimierung
+ Gleichzeitige Benutzerlasttests und Stresstests

**Produktversionen**
+ JProfiler Version 13.0 oder höher (wir empfehlen die neueste Version)
+ pgAdmin Version 8.14 oder höher

## Architektur
<a name="optimize-performance-aws-blu-age-modernized-application-architecture"></a>

Dieses Muster richtet mithilfe von Tools wie pgAdmin eine Profilierungsumgebung für eine AWS Blu Age-Anwendung ein. JProfiler Es unterstützt die Optimierung mit dem von AWS Blu SQLExecution Age APIs bereitgestellten DAOManager and Builder.

Der Rest dieses Abschnitts enthält detaillierte Informationen und Beispiele zur Identifizierung von Performance-Hotspots und Optimierungsstrategien für Ihre modernisierten Anwendungen. Die Schritte im Abschnitt [Epics](#optimize-performance-aws-blu-age-modernized-application-epics) beziehen sich auf diese Informationen, um weitere Anleitungen zu erhalten.

**Identifizierung von Leistungs-Hotspots in modernisierten Mainframe-Anwendungen**

In modernisierten Mainframe-Anwendungen sind *Performance-Hotspots* bestimmte Bereiche im Code, die zu erheblichen Verlangsamungen oder Ineffizienzen führen. Diese Hotspots werden häufig durch die architektonischen Unterschiede zwischen Mainframe- und modernisierten Anwendungen verursacht. Um diese Leistungsengpässe zu identifizieren und die Leistung Ihrer modernisierten Anwendung zu optimieren, können Sie drei Techniken verwenden: SQL-Protokollierung, Abfrageplan und Analyse. `EXPLAIN` JProfiler 

*Technik zur Identifizierung von Hotspots: SQL-Protokollierung*

Moderne Java-Anwendungen, einschließlich solcher, die mithilfe von AWS Blu Age modernisiert wurden, verfügen über integrierte Funktionen zum Protokollieren von SQL-Abfragen. Sie können spezielle Logger in AWS Blu Age-Projekten aktivieren, um die von Ihrer Anwendung ausgeführten SQL-Anweisungen zu verfolgen und zu analysieren. Diese Technik ist besonders nützlich, um ineffiziente Datenbankzugriffsmuster zu identifizieren, wie z. B. zu viele einzelne Abfragen oder schlecht strukturierte Datenbankaufrufe, die durch Batching oder Verfeinerung von Abfragen optimiert werden könnten.

Um die SQL-Protokollierung in Ihrer modernisierten AWS Blu Age-Anwendung zu implementieren, setzen Sie die Protokollebene auf `DEBUG` für SQL-Anweisungen in der `application.properties` Datei, um Details zur Abfrageausführung zu erfassen:

```
level.org.springframework.beans.factory.support.DefaultListableBeanFactory : WARN
level.com.netfective.bluage.gapwalk.runtime.sort.internal: WARN
level.org.springframework.jdbc.core.StatementCreatorUtils: DEBUG
level.com.netfective.bluage.gapwalk.rt.blu4iv.dao: DEBUG
level.com.fiserv.signature: DEBUG
level.com.netfective.bluage.gapwalk.database.support.central: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.configuration.DatabaseConfiguration: DEBUG
level.com.netfective.bluage.gapwalk.rt.db.DatabaseInteractionLoggerUtils: DEBUG
level.com.netfective.bluage.gapwalk.database.support.AbstractDatabaseSupport: DEBUG
level.com.netfective.bluage.gapwalk.rt: DEBUG
```

Überwachen Sie Abfragen mit hoher Frequenz und langsamer Leistung, indem Sie die protokollierten Daten verwenden, um Optimierungsziele zu identifizieren. Konzentrieren Sie sich auf Abfragen innerhalb von Batch-Prozessen, da diese in der Regel die größte Auswirkung auf die Leistung haben.

*Technik zur Identifizierung von Hotspots: EXPLAIN-Plan abfragen*

Diese Methode nutzt die Funktionen zur Abfrageplanung relationaler Datenbankmanagementsysteme. Sie können Befehle wie `EXPLAIN` in PostgreSQL oder MySQL oder `EXPLAIN PLAN` in Oracle verwenden, um zu untersuchen, wie Ihre Datenbank eine bestimmte Abfrage ausführen will. Die Ausgabe dieser Befehle bietet wertvolle Einblicke in die Strategie zur Abfrageausführung, einschließlich der Frage, ob Indizes verwendet oder vollständige Tabellenscans durchgeführt werden. Diese Informationen sind entscheidend für die Optimierung der Abfrageleistung, insbesondere in Fällen, in denen eine ordnungsgemäße Indizierung die Ausführungszeit erheblich reduzieren kann.

Extrahieren Sie die sich am häufigsten wiederholenden SQL-Abfragen aus den Anwendungsprotokollen und analysieren Sie den Ausführungspfad langsamer Abfragen mithilfe des für Ihre Datenbank spezifischen `EXPLAIN` Befehls. Hier ist ein Beispiel für eine PostgreSQL-Datenbank.

Abfrage:

```
SELECT * FROM tenk1 WHERE unique1 < 100;
```

`EXPLAIN`Befehl:

```
EXPLAIN SELECT * FROM tenk1 where unique1 < 100;
```

Ausgabe:

```
Bitmap Heap Scan on tenk1 (cost=5.06..224.98 rows=100 width=244) 
Recheck Cond: (unique1 < 100) 
-> Bitmap Index Scan on tenk1_unique1 (cost=0.00..5.04 rows=100 width=0)
Index Cond: (unique1 < 100)
```

Sie können die `EXPLAIN` Ausgabe wie folgt interpretieren:
+ Lesen Sie den `EXPLAIN` Plan von den innersten bis zu den äußersten Operationen (von unten nach oben).
+ Suchen Sie nach Schlüsselbegriffen. `Seq Scan`Zeigt beispielsweise einen vollständigen Tabellenscan an und `Index Scan` zeigt die Indexnutzung an.
+ Überprüfen Sie die Kostenwerte: Die erste Zahl steht für die Startkosten und die zweite Zahl für die Gesamtkosten.
+ Sehen Sie sich den `rows` Wert für die geschätzte Anzahl von Ausgabezeilen an.

In diesem Beispiel verwendet die Abfrage-Engine einen Indexscan, um die passenden Zeilen zu finden, und ruft dann nur diese Zeilen ab (`Bitmap Heap Scan`). Dies ist trotz der höheren Kosten für den Zugriff auf einzelne Zeilen effizienter als das Scannen der gesamten Tabelle.

Tabellenscanvorgänge in der Ausgabe eines `EXPLAIN` Plans deuten auf einen fehlenden Index hin. Die Optimierung erfordert die Erstellung eines geeigneten Indexes.

*Technik zur Identifizierung von Hotspots: Analyse JProfiler *

JProfiler ist ein umfassendes Java-Profiling-Tool, mit dem Sie Leistungsengpässe beheben können, indem es langsame Datenbankaufrufe und CPU-intensive Aufrufe identifiziert. Dieses Tool ist besonders effektiv bei der Identifizierung langsamer SQL-Abfragen und ineffizienter Speichernutzung.

Beispielanalyse für eine Abfrage:

```
select evt. com.netfective.bluage.gapwalk.rt.blu4iv.dao.Blu4ivTableManager.queryNonTrasactional
```

Die Ansicht „ JProfiler Hot Spots“ enthält die folgenden Informationen:
+ Spalte „**Zeit**“
  + Zeigt die gesamte Ausführungsdauer an (z. B. 329 Sekunden)
  + Zeigt den Prozentsatz der gesamten Anwendungszeit an (z. B. 58,7%)
  + Hilft bei der Identifizierung der zeitaufwändigsten Vorgänge
+ Spalte „**Durchschnittliche Zeit**“
  + Zeigt die Dauer pro Ausführung an (z. B. 2.692 Mikrosekunden)
  + Zeigt die Leistung des einzelnen Vorgangs an
  + Hilft dabei, langsame Einzelvorgänge zu erkennen
+ Spalte „**Ereignisse**“
  + Zeigt die Anzahl der Ausführungen an (z. B. 122.387 Mal)
  + Zeigt die Betriebsfrequenz an
  + Hilft bei der Identifizierung häufig aufgerufener Methoden

Für die Beispielergebnisse:
+ Hohe Frequenz: 122.387 Ausführungen weisen auf Optimierungspotenzial hin
+ Bedenken hinsichtlich der Leistung: 2.692 Mikrosekunden für die durchschnittliche Zeit deuten auf Ineffizienz hin
+ Kritische Auswirkung: 58,7% der Gesamtzeit deuten auf einen großen Engpass hin

JProfiler kann das Laufzeitverhalten Ihrer Anwendung analysieren, um Hotspots aufzudecken, die durch statische Codeanalyse oder SQL-Protokollierung möglicherweise nicht erkennbar sind. Diese Kennzahlen helfen Ihnen dabei, die Abläufe zu identifizieren, die optimiert werden müssen, und die Optimierungsstrategie zu bestimmen, die am effektivsten wäre. Weitere Informationen zu den JProfiler Funktionen finden Sie in der [JProfiler Dokumentation](https://www.ej-technologies.com/resources/jprofiler/help/doc/main/introduction.html).

Wenn Sie diese drei Techniken (SQL-Protokollierung, `EXPLAIN` Abfrageplan und JProfiler) zusammen verwenden, können Sie sich einen ganzheitlichen Überblick über die Leistungsmerkmale Ihrer Anwendung verschaffen. Indem Sie die kritischsten Performance-Hotspots identifizieren und beheben, können Sie die Leistungslücke zwischen Ihrer ursprünglichen Mainframe-Anwendung und Ihrem modernisierten cloudbasierten System schließen.

Nachdem Sie die Performance-Hotspots Ihrer Anwendung identifiziert haben, können Sie Optimierungsstrategien anwenden, die im nächsten Abschnitt erläutert werden.

**Optimierungsstrategien für die Mainframe-Modernisierung**

In diesem Abschnitt werden die wichtigsten Strategien zur Optimierung von Anwendungen beschrieben, die von Mainframe-Systemen aus modernisiert wurden. Es konzentriert sich auf drei Strategien: Nutzung vorhandener Strategien APIs, Implementierung von effektivem Caching und Optimierung der Geschäftslogik.

*Optimierungsstrategie: Nutzung vorhandener APIs*

AWS Blu Age bietet mehrere leistungsstarke APIs In-DAO-Schnittstellen, mit denen Sie die Leistung optimieren können. Zwei Hauptschnittstellen — DAOManager und SQLExecution Builder — bieten Funktionen zur Verbesserung der Anwendungsleistung.

**DAOManager**

DAOManager dient als primäre Schnittstelle für Datenbankoperationen in modernisierten Anwendungen. Es bietet mehrere Methoden zur Verbesserung der Datenbankoperationen und zur Verbesserung der Anwendungsleistung, insbesondere für einfache Erstellungs-, Lese-, Aktualisierungs- und Löschvorgänge (CRUD) und die Stapelverarbeitung.
+ **Verwenden SetMaxResults.** In der DAOManager API können Sie die **SetMaxResults**Methode verwenden, um die maximale Anzahl von Datensätzen anzugeben, die in einem einzigen Datenbankvorgang abgerufen werden sollen. DAOManager Ruft standardmäßig nur 10 Datensätze gleichzeitig ab, was bei der Verarbeitung großer Datenmengen zu mehreren Datenbankaufrufen führen kann. Verwenden Sie diese Optimierung, wenn Ihre Anwendung eine große Anzahl von Datensätzen verarbeiten muss und derzeit mehrere Datenbankaufrufe durchführt, um sie abzurufen. Dies ist besonders nützlich in Batchverarbeitungsszenarien, in denen Sie durch einen großen Datensatz iterieren. Im folgenden Beispiel verwendet der Code auf der linken Seite (vor der Optimierung) den Standardwert für den Datenabruf von 10 Datensätzen. Der Code auf der rechten Seite (nach der Optimierung) legt fest **setMaxResults**, dass 100.000 Datensätze gleichzeitig abgerufen werden.  
![\[Beispiel für die Verwendung SetMaxResults zur Vermeidung mehrerer Datenbankaufrufe.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/beb9623e-e7a8-45ef-adc6-19a249224b05.png)
**Anmerkung**  
Wählen Sie größere Batchgrößen sorgfältig aus und überprüfen Sie die Objektgröße, da diese Optimierung den Speicherbedarf erhöht.
+ **Ersetze SetOnGreatorOrEqual durch SetOnEqual.** Diese Optimierung beinhaltet die Änderung der Methode, mit der Sie die Bedingungen für das Abrufen von Datensätzen festlegen. Die **SetOnGreatorOrEqual**Methode ruft Datensätze ab, die größer oder gleich einem angegebenen Wert sind, wohingegen nur Datensätze **SetOnEqual**abgerufen werden, die genau dem angegebenen Wert entsprechen.

  Verwenden Sie, **SetOnEqual**wie im folgenden Codebeispiel dargestellt, wenn Sie wissen, dass Sie exakte Übereinstimmungen benötigen und Sie derzeit die **SetOnGreatorOrEqual**Methode verwenden, gefolgt von **readNextEqual()**. Diese Optimierung reduziert unnötiges Abrufen von Daten.  
![\[Beispiel für die Verwendung SetOnEqual zum Abrufen von Datensätzen, die auf einer exakten Übereinstimmung basieren.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/5ce0dac9-f281-4862-a71f-1614493a83f0.png)
+ **Verwenden Sie Batch-Schreib- und Aktualisierungsvorgänge.** Sie können Batch-Operationen verwenden, um mehrere Schreib- oder Aktualisierungsvorgänge in einer einzigen Datenbanktransaktion zu gruppieren. Dies reduziert die Anzahl der Datenbankaufrufe und kann die Leistung von Vorgängen, die mehrere Datensätze umfassen, erheblich verbessern.

  Im folgenden Beispiel führt der Code auf der linken Seite Schreiboperationen in einer Schleife aus, was die Leistung der Anwendung verlangsamt. Sie können diesen Code optimieren, indem Sie einen Batch-Schreibvorgang verwenden: Bei jeder Iteration der `WHILE` Schleife fügen Sie Datensätze zu einem Stapel hinzu, bis die Batchgröße eine vorgegebene Größe von 100 erreicht. Sie können den Stapel dann leeren, wenn er die vorgegebene Batchgröße erreicht hat, und anschließend alle verbleibenden Datensätze in die Datenbank übernehmen. Dies ist besonders nützlich in Szenarien, in denen Sie große Datenmengen verarbeiten, die aktualisiert werden müssen.  
![\[Beispiel für die Gruppierung mehrerer Operationen in einer einzigen Datenbanktransaktion.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/e3bd60d4-06f5-4c1c-9cbd-463f6835a1ba.png)
+ **Fügen Sie Indizes hinzu.** Das Hinzufügen von Indizes ist eine Optimierung auf Datenbankebene, die die Abfrageleistung erheblich verbessern kann. Ein Index ermöglicht es der Datenbank, schnell Zeilen mit einem bestimmten Spaltenwert zu finden, ohne die gesamte Tabelle zu scannen. Verwenden Sie die Indizierung für Spalten, die häufig in `WHERE` Klauseln, `JOIN` Bedingungen oder `ORDER BY` Anweisungen verwendet werden. Dies ist besonders wichtig bei großen Tabellen oder wenn ein schneller Datenabruf entscheidend ist.

**SQLExecutionBaumeister**

SQLExecutionBuilder ist eine flexible API, mit der Sie die Kontrolle über die auszuführenden SQL-Abfragen übernehmen und nur bestimmte Spalten abrufen können, `INSERT` indem Sie dynamische Tabellennamen verwenden und verwenden. `SELECT` Im folgenden Beispiel verwendet SQLExecutor Builder eine benutzerdefinierte Abfrage, die Sie definieren. 

![\[Beispiel für die Verwendung von SQLExecutor Builder mit einer benutzerdefinierten Abfrage.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/364e9fb1-0cbc-47d0-936d-46fb3b48b608.png)


**Wählen Sie zwischen DAOManager und SQLExecution Builder**

Die Wahl zwischen diesen APIs hängt von Ihrem spezifischen Anwendungsfall ab:
+ Verwenden Sie diese Option DAOManager , wenn Sie möchten, dass AWS Blu Age Runtime die SQL-Abfragen generiert, anstatt sie selbst zu schreiben.
+ Wählen Sie SQLExecution Builder, wenn Sie SQL-Abfragen schreiben müssen, um datenbankspezifische Funktionen zu nutzen oder optimale SQL-Abfragen zu schreiben.

*Optimierungsstrategie: Caching*

In modernisierten Anwendungen kann die Implementierung effektiver Caching-Strategien die Anzahl der Datenbankaufrufe erheblich reduzieren und die Antwortzeiten verbessern. Dies trägt dazu bei, die Leistungslücke zwischen Mainframe- und Cloud-Umgebungen zu schließen.

In AWS Blu Age-Anwendungen verwenden einfache Caching-Implementierungen interne Datenstrukturen wie Hashmaps oder Array-Listen, sodass Sie keine externe Caching-Lösung einrichten müssen, die eine Kosten- und Code-Restrukturierung erfordert. Dieser Ansatz ist besonders effektiv für Daten, auf die häufig zugegriffen wird, die sich jedoch selten ändern. Wenn Sie das Caching implementieren, sollten Sie Speicherbeschränkungen und Aktualisierungsmuster berücksichtigen, um sicherzustellen, dass die zwischengespeicherten Daten konsistent bleiben und tatsächliche Leistungsvorteile bieten.

Der Schlüssel zu erfolgreichem Caching liegt in der Identifizierung der richtigen Daten für den Cache. Im folgenden Beispiel liest der Code auf der linken Seite immer Daten aus der Tabelle, wohingegen der Code auf der rechten Seite Daten aus der Tabelle liest, wenn die lokale Hashmap keinen Wert für einen bestimmten Schlüssel enthält. `cacheMap`ist ein Hashmap-Objekt, das im Kontext des Programms erstellt und in der Cleanup-Methode des Programmkontextes gelöscht wird.

Zwischenspeichern mit: DAOManager

![\[Beispiel für Caching-Optimierungen mit. DAOManager\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/4efd3d22-c694-4f7d-a543-2bed341d1651.png)


Caching mit Builder: SQLExecution

![\[Beispiel für Caching-Optimierungen mit Builder. SQLExecution\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/c8964804-96eb-4e26-b2bf-8742e62b4c33.png)


*Optimierungsstrategie: Optimierung der Geschäftslogik*

Die Optimierung der Geschäftslogik konzentriert sich auf die Umstrukturierung von automatisch generiertem Code aus AWS Blu Age, um ihn besser an die Funktionen moderner Architekturen anzupassen. Dies wird notwendig, wenn der generierte Code dieselbe Logikstruktur wie der ältere Mainframe-Code beibehält, was für moderne Systeme möglicherweise nicht optimal ist. Ziel ist es, die Leistung zu verbessern und gleichzeitig die funktionale Äquivalenz mit der ursprünglichen Anwendung aufrechtzuerhalten.

Dieser Optimierungsansatz geht über einfache API-Optimierungen und Caching-Strategien hinaus. Es beinhaltet Änderungen an der Art und Weise, wie die Anwendung Daten verarbeitet und mit der Datenbank interagiert. Zu den gängigen Optimierungen gehören die Vermeidung unnötiger Lesevorgänge für einfache Updates, das Entfernen redundanter Datenbankaufrufe und die Umstrukturierung der Datenzugriffsmuster, um sie besser an die moderne Anwendungsarchitektur anzupassen. Nachfolgend sind einige Beispiele aufgeführt:
+ **Aktualisierung von Daten direkt in der Datenbank.**Strukturieren Sie Ihre Geschäftslogik neu, indem Sie direkte SQL-Updates anstelle mehrerer DAOManager Operationen mit Schleifen verwenden. Der folgende Code (linke Seite) führt beispielsweise mehrere Datenbankaufrufe durch und belegt übermäßig viel Speicher. Insbesondere werden mehrere Datenbank-Lese- und Schreiboperationen innerhalb von Schleifen, einzelne Aktualisierungen statt Stapelverarbeitung und unnötige Objekterstellung für jede Iteration verwendet.

  Der folgende optimierte Code (rechte Seite) verwendet einen einzigen Direct SQL-Aktualisierungsvorgang. Insbesondere verwendet er einen einzigen Datenbankaufruf anstelle mehrerer Aufrufe und benötigt keine Schleifen, da alle Aktualisierungen in einer einzigen Anweisung verarbeitet werden. Diese Optimierung sorgt für eine bessere Leistung und Ressourcennutzung und reduziert die Komplexität. Sie verhindert die SQL-Injection, ermöglicht eine bessere Zwischenspeicherung von Abfrageplänen und trägt zur Verbesserung der Sicherheit bei.  
![\[Restrukturierung von Code durch direkte SQL-Updates anstelle von DAOManager Operationen mit Schleifen.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/7d0a7879-8db2-4cc5-b41c-ee370b3f22e5.png)
**Anmerkung**  
Verwenden Sie immer parametrisierte Abfragen, um eine SQL-Injection zu verhindern und ein ordnungsgemäßes Transaktionsmanagement sicherzustellen.
+ **Reduzierung redundanter Datenbankaufrufe.** Redundante Datenbankaufrufe können die Anwendungsleistung erheblich beeinträchtigen, insbesondere wenn sie innerhalb von Schleifen erfolgen. Eine einfache, aber effektive Optimierungstechnik besteht darin, zu vermeiden, dass dieselbe Datenbankabfrage mehrmals wiederholt wird. Der folgende Codevergleich zeigt, wie durch das Verschieben des `retrieve()` Datenbankaufrufs außerhalb der Schleife die redundante Ausführung identischer Abfragen verhindert wird, was die Effizienz verbessert.  
![\[alt text not found\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6b42fafd-1535-416d-8abd-1a5f9007ddba/images/da9c15f4-bcf1-4827-b91a-73212fe35cca.png)
+ **Reduzierung von Datenbankaufrufen mithilfe der `JOIN` SQL-Klausel****.** Implementieren Sie SQLExecution Builder, um die Aufrufe der Datenbank zu minimieren. SQLExecutionBuilder bietet mehr Kontrolle über die SQL-Generierung und ist besonders nützlich für komplexe Abfragen, die DAOManager nicht effizient verarbeitet werden können. Der folgende Code verwendet beispielsweise mehrere DAOManager Aufrufe:

  ```
  List<Employee> employees = daoManager.readAll();
  for(Employee emp : employees) {
      Department dept = deptManager.readById(emp.getDeptId());  // Additional call for each employee
      Project proj = projManager.readById(emp.getProjId());     // Another call for each employee
      processEmployeeData(emp, dept, proj);
  }
  ```

  Der optimierte Code verwendet einen einzigen Datenbankaufruf in SQLExecution Builder:

  ```
  SQLExecutionBuilder builder = new SQLExecutionBuilder();
  builder.append("SELECT e.*, d.name as dept_name, p.name as proj_name");
  builder.append("FROM employee e");
  builder.append("JOIN department d ON e.dept_id = d.id");
  builder.append("JOIN project p ON e.proj_id = p.id");
  builder.append("WHERE e.status = ?", "ACTIVE");
  
  List<Map<String, Object>> results = builder.execute();  // Single database call
  for(Map<String, Object> result : results) {
      processComplexData(result);
  }
  ```

*Optimierungsstrategien gemeinsam verwenden*

Diese drei Strategien wirken synergistisch: APIs Bereitstellung der Tools für einen effizienten Datenzugriff, Caching reduziert die Notwendigkeit wiederholter Datenabrufe, und die Optimierung der Geschäftslogik stellt sicher, dass diese so effektiv wie möglich genutzt APIs werden. Die regelmäßige Überwachung und Anpassung dieser Optimierungen gewährleistet kontinuierliche Leistungsverbesserungen bei gleichzeitiger Wahrung der Zuverlässigkeit und Funktionalität der modernisierten Anwendung. Der Schlüssel zum Erfolg liegt darin, zu verstehen, wann und wie die einzelnen Strategien auf der Grundlage der Merkmale und Leistungsziele Ihrer Anwendung angewendet werden müssen.

## Tools
<a name="optimize-performance-aws-blu-age-modernized-application-tools"></a>
+ [JProfiler](https://www.ej-technologies.com/jprofiler)ist ein Java-Profiling-Tool, das für Entwickler und Performance-Ingenieure entwickelt wurde. Es analysiert Java-Anwendungen und hilft bei der Identifizierung von Leistungsengpässen, Speicherlecks und Threading-Problemen. JProfiler bietet CPU-, Speicher- und Thread-Profiling sowie Datenbank- und Java-Virtual-Machine-Überwachung (JVM), um Einblicke in das Anwendungsverhalten zu gewinnen.
**Anmerkung**  
Als Alternative dazu JProfiler können Sie [Java](https://visualvm.github.io/) VisualVM verwenden. Dies ist ein kostenloses Open-Source-Tool zur Erstellung und Überwachung von Leistungsprofilen und zur Überwachung von Java-Anwendungen, das eine Echtzeitüberwachung der CPU-Auslastung, des Speicherverbrauchs, der Threadverwaltung und der Garbage-Collection-Statistiken ermöglicht. Da es sich bei Java VisualVM um ein integriertes JDK-Tool handelt, ist es kostengünstiger als JProfiler für grundlegende Profilerstellungsanforderungen.
+ [pgAdmin](https://www.pgadmin.org/) ist ein Open-Source-Verwaltungs- und Entwicklungstool für PostgreSQL. Es bietet eine grafische Oberfläche, mit der Sie Datenbankobjekte erstellen, verwalten und verwenden können. Mit pgAdmin können Sie eine Vielzahl von Aufgaben ausführen, vom Schreiben einfacher SQL-Abfragen bis hin zur Entwicklung komplexer Datenbanken. Zu seinen Funktionen gehören ein SQL-Editor mit Syntaxhervorhebung, ein serverseitiger Code-Editor, ein Scheduling-Agent für SQL-, Shell- und Batch-Aufgaben sowie Unterstützung für alle PostgreSQL-Funktionen für Anfänger und erfahrene PostgreSQL-Benutzer.

## Best Practices
<a name="optimize-performance-aws-blu-age-modernized-application-best-practices"></a>

Identifizierung von Leistungs-Hotspots:
+ Dokumentieren Sie grundlegende Leistungskennzahlen, bevor Sie mit Optimierungen beginnen.
+ Legen Sie klare Ziele zur Leistungsverbesserung fest, die auf den Geschäftsanforderungen basieren.
+ Deaktivieren Sie beim Benchmarking die ausführliche Protokollierung, da dies die Leistung beeinträchtigen kann.
+ Richten Sie eine Suite für Leistungstests ein und führen Sie sie regelmäßig aus.
+ Verwenden Sie die neueste Version von pgAdmin. (Ältere Versionen unterstützen den `EXPLAIN` Abfrageplan nicht.)
+ Beim Benchmarking sollten Sie die Verbindung trennen, JProfiler nachdem Ihre Optimierungen abgeschlossen sind, da dies die Latenz erhöht.
+ Stellen Sie beim Benchmarking sicher, dass Sie den Server im Startmodus statt im Debug-Modus ausführen, da der Debug-Modus die Latenz erhöht.

Optimierungsstrategien:
+ Konfigurieren Sie **SetMaxResults**Werte in der `application.yaml` Datei, um Chargen mit der richtigen Größe gemäß Ihren Systemspezifikationen anzugeben.
+ Konfigurieren Sie **SetMaxResults**Werte auf der Grundlage von Datenvolumen und Speicherbeschränkungen.
+ Wechseln Sie **SetOnGreatorOrEqual**zu „**SetOnEqual**Nur“, wenn nachfolgende Aufrufe erfolgen`.readNextEqual()`.
+ Behandeln Sie bei Batch-Schreib- oder Aktualisierungsvorgängen den letzten Batch separat, da er möglicherweise kleiner als die konfigurierte Batchgröße ist und beim Schreib- oder Aktualisierungsvorgang übersehen werden könnte.

Zwischenspeichern:
+ Felder, die für das Caching eingeführt wurden `processImpl` und die bei jeder Ausführung mutieren, sollten immer im jeweiligen Kontext definiert werden. `processImpl` Die Felder sollten auch mit der Methode `doReset()` or `cleanUp()` gelöscht werden.
+ Wenn Sie In-Memory-Caching implementieren, passen Sie die Größe des Caches an. Sehr große Caches, die im Arbeitsspeicher gespeichert sind, können alle Ressourcen beanspruchen, was sich auf die Gesamtleistung Ihrer Anwendung auswirken kann.

SQLExecutionBuilder:
+ Verwenden Sie für Abfragen, die Sie in SQLExecution Builder verwenden möchten, Schlüsselnamen wie`PROGRAMNAME_STATEMENTNUMBER`.
+ Wenn Sie SQLExecution Builder verwenden, suchen Sie immer nach dem `Sqlcod` Feld. Dieses Feld enthält einen Wert, der angibt, ob die Abfrage korrekt ausgeführt wurde oder ob Fehler aufgetreten sind.
+ Verwenden Sie parametrisierte Abfragen, um eine SQL-Injection zu verhindern.

Optimierung der Geschäftslogik:
+ Achten Sie bei der Umstrukturierung von Code auf funktionale Äquivalenz und führen Sie Regressionstests und Datenbankvergleiche für die entsprechende Teilmenge von Programmen durch.
+ Pflegen Sie Schnappschüsse zur Profilerstellung zum Vergleich.

## Epen
<a name="optimize-performance-aws-blu-age-modernized-application-epics"></a>

### Install JProfiler und pgAdmin
<a name="install-jprofiler-and-pgadmin"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren und konfigurieren JProfiler. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | App-Developer | 
| Installieren und konfigurieren Sie pgAdmin. | In diesem Schritt installieren und konfigurieren Sie einen DB-Client für die Abfrage Ihrer Datenbank. Dieses Muster verwendet eine PostgreSQL-Datenbank und pgAdmin als Datenbankclient. Wenn Sie eine andere Datenbank-Engine verwenden, folgen Sie der Dokumentation für den entsprechenden DB-Client.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | App-Developer | 

### Identifizieren Sie Hotspots
<a name="identify-hotspots"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktivieren Sie die SQL-Abfrageprotokollierung in Ihrer AWS Blu Age-Anwendung. | Aktivieren Sie die Logger für die Protokollierung von SQL-Abfragen in der `application.properties` Datei Ihrer AWS Blu Age-Anwendung, wie im Abschnitt [Architektur](#optimize-performance-aws-blu-age-modernized-application-architecture) beschrieben. | App-Developer | 
| Generieren und analysieren Sie `EXPLAIN` Abfragepläne, um Schwachstellen bei der Datenbankleistung zu identifizieren. | Einzelheiten finden Sie im Abschnitt [Architektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | App-Developer | 
| Erstellen Sie einen JProfiler Snapshot, um einen Testfall mit langsamer Leistung zu analysieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | App-Developer | 
| Analysieren Sie den JProfiler Snapshot, um Leistungsengpässe zu identifizieren. | Gehen Sie wie folgt vor, um den Snapshot zu analysieren. JProfiler [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Weitere Informationen zur Verwendung JProfiler finden Sie im Abschnitt [Architektur](#optimize-performance-aws-blu-age-modernized-application-architecture) und in der [JProfiler Dokumentation](https://www.ej-technologies.com/jprofiler/docs). | App-Developer | 

### Legen Sie eine Ausgangsbasis fest
<a name="establish-a-baseline"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Legen Sie eine Leistungsbasis fest, bevor Sie Optimierungen implementieren. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | App-Developer | 

### Wenden Sie Optimierungsstrategien an
<a name="apply-optimization-strategies"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Optimieren Sie Leseanrufe. | Optimieren Sie den Datenabruf mithilfe der DAOManager **SetMaxResults**Methode. Weitere Informationen zu diesem Ansatz finden Sie im Abschnitt [Architektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | App-Entwickler, DAOManager | 
| Refaktorieren Sie die Geschäftslogik, um mehrere Aufrufe der Datenbank zu vermeiden. | Reduzieren Sie Datenbankaufrufe mithilfe einer `JOIN` SQL-Klausel. Einzelheiten und Beispiele finden Sie unter *Optimierung der Geschäftslogik* im Abschnitt [Architektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | App-Entwickler, SQLExecution Builder | 
| Refaktorieren Sie den Code so, dass er Caching verwendet, um die Latenz von Leseaufrufen zu reduzieren. | [Informationen zu dieser Technik finden Sie unter *Caching im Abschnitt* Architektur.](#optimize-performance-aws-blu-age-modernized-application-architecture) | App-Developer | 
| Schreiben Sie ineffizienten Code neu, der mehrere DAOManager Operationen für einfache Aktualisierungsvorgänge verwendet. | Weitere Informationen zum Aktualisieren von Daten direkt in der Datenbank finden Sie unter *Optimierung der Geschäftslogik* im Abschnitt [Architektur](#optimize-performance-aws-blu-age-modernized-application-architecture). | App-Developer | 

### Testen Sie Optimierungsstrategien
<a name="test-optimization-strategies"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Validieren Sie jede Optimierungsänderung iterativ unter Beibehaltung der funktionalen Äquivalenz. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html)Die Verwendung von Basiskennzahlen als Referenz gewährleistet eine genaue Messung der Auswirkungen jeder Optimierung bei gleichzeitiger Wahrung der Systemzuverlässigkeit. | App-Developer | 

## Fehlerbehebung
<a name="optimize-performance-aws-blu-age-modernized-application-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Wenn Sie die moderne Anwendung ausführen, wird eine Ausnahme mit dem Fehler angezeigt`Query_ID not found`. | So beheben Sie dieses Problem[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Sie haben Indizes hinzugefügt, sehen aber keine Leistungsverbesserungen. | Gehen Sie wie folgt vor, um sicherzustellen, dass die Abfrage-Engine den Index verwendet:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 
| Sie stoßen auf eine out-of-memory Ausnahme. | Stellen Sie sicher, dass der Code den in der Datenstruktur enthaltenen Speicher freigibt. | 
| Batch-Schreibvorgänge führen zu fehlenden Datensätzen in der Tabelle | Überprüfen Sie den Code, um sicherzustellen, dass ein zusätzlicher Schreibvorgang ausgeführt wird, wenn die Batchanzahl nicht Null ist. | 
| Die SQL-Protokollierung erscheint nicht in den Anwendungsprotokollen. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/optimize-performance-aws-blu-age-modernized-application.html) | 

## Zugehörige Ressourcen
<a name="optimize-performance-aws-blu-age-modernized-application-resources"></a>
+ [Automatisches Refactoring von Anwendungen mit AWS Blu Age](https://docs.aws.amazon.com/m2/latest/userguide/refactoring-m2.html) (*AWS Mainframe Modernization Benutzerhandbuch*)
+ [pgAdmin-Dokumentation](https://www.pgadmin.org/docs/)
+ [JProfiler Dokumentation](https://www.ej-technologies.com/jprofiler/docs)

# Sicherer und optimierter Benutzerzugriff in einer Db2-Verbunddatenbank auf AWS mithilfe vertrauenswürdiger Kontexte
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts"></a>

*Sai Parthasaradhi, Amazon Web Services*

## Zusammenfassung
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-summary"></a>

Viele Unternehmen migrieren ihre älteren Mainframe-Workloads zu Amazon Web Services (AWS). Diese Migration beinhaltet die Umstellung von IBM Db2 für z/OS Datenbanken auf Db2 für Linux, Unix und Windows (LUW) auf Amazon Elastic Compute Cloud (Amazon). EC2 Während einer schrittweisen Migration von lokal zu AWS müssen Benutzer möglicherweise auf Daten in IBM Db2 z/OS und in Db2 LUW auf Amazon zugreifen, EC2 bis alle Anwendungen und Datenbanken vollständig auf Db2 LUW migriert sind. In solchen Szenarien für den Fernzugriff auf Daten kann die Benutzerauthentifizierung eine Herausforderung sein, da verschiedene Plattformen unterschiedliche Authentifizierungsmechanismen verwenden.

Dieses Muster beschreibt, wie Sie einen Verbundserver auf Db2 für LUW mit Db2 for z/OS als Remotedatenbank einrichten. Das Muster verwendet einen vertrauenswürdigen Kontext, um die Identität eines Benutzers von Db2 LUW an Db2 weiterzugeben, ohne sich in der entfernten Datenbank erneut zu authentifizieren z/OS . [Weitere Informationen zu vertrauenswürdigen Kontexten finden Sie im Abschnitt Zusätzliche Informationen.](#secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional)

## Voraussetzungen und Einschränkungen
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ Eine Db2-Instance, die auf einer EC2 Amazon-Instance läuft
+ Eine z/OS Remote-Db2-Datenbank für eine lokal ausgeführte Datenbank
+ Das lokale Netzwerk, das über AWS [ Site-to-SiteVPN oder AWS AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect verbunden ist

## Architektur
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-architecture"></a>

**Zielarchitektur**

![\[Der lokale Mainframe stellt über einen lokalen Db2-Server und VPN eine Verbindung zur Db2-Datenbank her. EC2\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/9e04f0fe-bae2-412a-93ac-83da50222017/images/0a384695-7907-4fb8-bb7e-d170dcc114af.png)


## Tools
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-tools"></a>

**AWS-Services**
+ [Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) bietet skalierbare Rechenkapazität in der AWS-Cloud. Sie können so viele virtuelle Server wie nötig nutzen und sie schnell nach oben oder unten skalieren.
+ Mit [AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) können Sie den Datenverkehr zwischen Instances, die Sie auf AWS starten, und Ihrem eigenen Remote-Netzwerk weiterleiten.

**Andere Tools**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) ist der Db2-Befehl für die interaktive Befehlszeilenschnittstelle (CLI).

## Epen
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-epics"></a>

### Aktivieren Sie den Verbund in der Db2-LUW-Datenbank, die auf AWS ausgeführt wird
<a name="enable-federation-on-the-db2-luw-database-running-on-aws"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Aktivieren Sie den Verbund auf der DB2 LUW-DB. | Führen Sie den folgenden Befehl aus, um den Verbund auf DB2 LUW zu aktivieren.<pre>update dbm cfg using federated YES</pre> | DBA | 
| Starten Sie die Datenbank neu. | Führen Sie den folgenden Befehl aus, um die Datenbank neu zu starten.<pre>db2stop force;<br />db2start;</pre> | DBA | 

### Katalogisieren Sie die entfernte Datenbank
<a name="catalog-the-remote-database"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Katalogisieren Sie das z/OS Remote-DB2-Subsystem. | Verwenden Sie den folgenden Beispielbefehl, um die z/OS Remote-Db2-Datenbank auf Db2 LUW zu katalogisieren, die auf AWS ausgeführt wird.<pre>catalog TCPIP NODE tcpnode REMOTE mainframehost SERVER mainframeport</pre> | DBA | 
| Katalogisieren Sie die entfernte Datenbank. | Verwenden Sie den folgenden Beispielbefehl, um die entfernte Datenbank zu katalogisieren.<pre>catalog db dbnam1 as ndbnam1 at node tcpnode</pre> | DBA | 

### Erstellen Sie die Remoteserver-Definition
<a name="create-the-remote-server-definition"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Sammeln Sie Benutzeranmeldeinformationen für die entfernte z/OS Db2-Datenbank. | Bevor Sie mit den nächsten Schritten fortfahren, sammeln Sie die folgenden Informationen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts.html) | DBA | 
| Erstellen Sie den DRDA-Wrapper. | Führen Sie den folgenden Befehl aus, um den DRDA-Wrapper zu erstellen.<pre>CREATE WRAPPER DRDA;</pre> | DBA | 
| Erstellen Sie die Serverdefinition. | Führen Sie den folgenden Beispielbefehl aus, um die Serverdefinition zu erstellen.<pre>CREATE SERVER ndbserver<br />TYPE DB2/ZOS VERSION 12<br />WRAPPER DRDA<br />AUTHORIZATION "dbuser1" PASSWORD "dbpasswd" OPTIONS ( DBNAME 'ndbnam1',FED_PROXY_USER 'ZPROXY' );</pre>In dieser Definition wird der Proxybenutzer `FED_PROXY_USER` angegeben, der für den Aufbau vertrauenswürdiger Verbindungen zur z/OS Db2-Datenbank verwendet wird. Die Benutzer-ID und das Kennwort für die Autorisierung sind nur für die Erstellung des Remoteserverobjekts in der Db2-LUW-Datenbank erforderlich. Sie werden später während der Laufzeit nicht verwendet. | DBA | 

### Benutzerzuordnungen erstellen
<a name="create-user-mappings"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Benutzerzuordnung für den Proxybenutzer. | Führen Sie den folgenden Befehl aus, um eine Benutzerzuordnung für den Proxybenutzer zu erstellen.<pre>CREATE USER MAPPING FOR ZPROXY SERVER ndbserver OPTIONS (REMOTE_AUTHID 'ZPROXY', REMOTE_PASSWORD 'zproxy');</pre> | DBA | 
| Erstellen Sie Benutzerzuordnungen für jeden Benutzer auf Db2 LUW. | Erstellen Sie Benutzerzuordnungen für alle Benutzer in der Db2 LUW-Datenbank auf AWS, die über den Proxybenutzer auf Remote-Daten zugreifen müssen. Führen Sie den folgenden Befehl aus, um die Benutzerzuordnungen zu erstellen.<pre>CREATE USER MAPPING FOR PERSON1 SERVER ndbserver OPTIONS (REMOTE_AUTHID 'USERZID', USE_TRUSTED_CONTEXT 'Y');</pre>Die Anweisung gibt an, dass ein Benutzer auf Db2 LUW (`PERSON1`) eine vertrauenswürdige Verbindung zur entfernten z/OS Db2-Datenbank () herstellen kann. `USE_TRUSTED_CONTEXT 'Y'` Nachdem die Verbindung über den Proxybenutzer hergestellt wurde, kann der Benutzer mithilfe der z/OS Db2-Benutzer-ID () auf die Daten zugreifen. `REMOTE_AUTHID 'USERZID'` | DBA | 

### Erstellen Sie das vertrauenswürdige Kontextobjekt
<a name="create-the-trusted-context-object"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie das vertrauenswürdige Kontextobjekt. | Verwenden Sie den folgenden Beispielbefehl, um das vertrauenswürdige Kontextobjekt in der entfernten z/OS Db2-Datenbank zu erstellen.<pre>CREATE TRUSTED CONTEXT CTX_LUW_ZOS<br />BASED UPON CONNECTION USING SYSTEM AUTHID ZPROXY<br />ATTRIBUTES (<br />ADDRESS '10.10.10.10'<br />)<br />NO DEFAULT ROLE<br />ENABLE<br />WITH USE FOR PUBLIC WITHOUT AUTHENTICATION;</pre>In dieser Definition `CTX_LUW_ZOS` steht ein beliebiger Name für das vertrauenswürdige Kontextobjekt. Das Objekt enthält die Proxy-Benutzer-ID und die IP-Adresse des Servers, von dem die vertrauenswürdige Verbindung ausgehen muss. In diesem Beispiel ist der Server die Db2-LUW-Datenbank auf AWS. Sie können den Domainnamen anstelle der IP-Adresse verwenden. Die Klausel `WITH USE FOR PUBLIC WITHOUT AUTHENTICATION` gibt an, dass das Wechseln der Benutzer-ID bei einer vertrauenswürdigen Verbindung für jede Benutzer-ID zulässig ist. Ein Passwort muss nicht angegeben werden. | DBA | 

## Zugehörige Ressourcen
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-resources"></a>
+ [IBM Resource Access Control Facility (RACF)](https://www.ibm.com/products/resource-access-control-facility)
+ [IBM Db2 LUW-Föderation](https://www.ibm.com/docs/en/db2/11.5?topic=federation)
+ [Vertrauenswürdige Kontexte](https://www.ibm.com/docs/en/db2-for-zos/13?topic=contexts-trusted)

## Zusätzliche Informationen
<a name="secure-and-streamline-user-access-in-a-db2-federation-database-on-aws-by-using-trusted-contexts-additional"></a>

**Vertrauenswürdige Db2-Kontexte**

Ein vertrauenswürdiger Kontext ist ein Db2-Datenbankobjekt, das eine Vertrauensstellung zwischen einem Verbundserver und einem entfernten Datenbankserver definiert. Um eine vertrauenswürdige Beziehung zu definieren, spezifiziert der vertrauenswürdige Kontext Vertrauensattribute. Es gibt drei Arten von Vertrauensattributen:
+ Die Systemautorisierungs-ID, die die erste Datenbankverbindungsanforderung stellt
+ Die IP-Adresse oder der Domainname, von dem aus die Verbindung hergestellt wird
+ Die Verschlüsselungseinstellung für die Datenkommunikation zwischen dem Datenbankserver und dem Datenbankclient

Eine vertrauenswürdige Verbindung wird hergestellt, wenn alle Attribute einer Verbindungsanforderung mit den Attributen übereinstimmen, die in einem vertrauenswürdigen Kontextobjekt angegeben sind, das auf dem Server definiert ist. Es gibt zwei Arten von vertrauenswürdigen Verbindungen: implizite und explizite. Nachdem eine implizite vertrauenswürdige Verbindung hergestellt wurde, erbt ein Benutzer eine Rolle, die ihm außerhalb des Geltungsbereichs dieser vertrauenswürdigen Verbindungsdefinition nicht zur Verfügung steht. Nachdem eine explizite vertrauenswürdige Verbindung hergestellt wurde, können Benutzer auf dieselbe physische Verbindung mit oder ohne Authentifizierung umgeschaltet werden. Darüber hinaus können Db2-Benutzern Rollen zugewiesen werden, die Rechte spezifizieren, die nur innerhalb der vertrauenswürdigen Verbindung verwendet werden dürfen. Dieses Muster verwendet eine explizite vertrauenswürdige Verbindung.

*Vertrauenswürdiger Kontext in diesem Muster*

Nachdem das Muster vollständig ist, greift LUW PERSON1 auf Db2 mithilfe eines föderierten vertrauenswürdigen Kontextes auf Remotedaten z/OS von Db2 zu. Die Verbindung für PERSON1 wird über einen Proxybenutzer hergestellt, wenn die Verbindung von der IP-Adresse oder dem Domänennamen stammt, der in der vertrauenswürdigen Kontextdefinition angegeben ist. Nachdem die Verbindung hergestellt wurde, PERSON1 wird die entsprechende z/OS Db2-Benutzer-ID ohne erneute Authentifizierung geändert, und der Benutzer kann auf Grundlage der für diesen Benutzer eingerichteten Db2-Berechtigungen auf die Daten oder Objekte zugreifen.

*Vorteile verbundener vertrauenswürdiger Kontexte*
+ Bei diesem Ansatz wird das Prinzip der geringsten Rechte beibehalten, indem die Verwendung einer gemeinsamen Benutzer-ID oder Anwendungs-ID vermieden wird, für die eine Obermenge aller von allen Benutzern benötigten Rechte erforderlich wäre.
+ Die tatsächliche Identität des Benutzers, der die Transaktion sowohl in der Verbunddatenbank als auch in der Remote-Datenbank durchführt, ist immer bekannt und kann überprüft werden.
+ Die Leistung verbessert sich, da die physische Verbindung von allen Benutzern wiederverwendet wird, ohne dass sich der Verbundserver erneut authentifizieren muss.

# Übertragung umfangreicher z/OS Db2-Daten in CSV-Dateien nach Amazon S3
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files"></a>

*Bruno Sahinoglu, Abhijit Kshirsagar und Ivan Schuster, Amazon Web Services*

## Zusammenfassung
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-summary"></a>

Ein Mainframe ist in vielen Unternehmen immer noch ein Aufzeichnungssystem, das eine riesige Menge an Daten enthält, einschließlich Stammdateneinheiten mit Aufzeichnungen über aktuelle und historische Geschäftstransaktionen. Es ist oft isoliert und die verteilten Systeme innerhalb desselben Unternehmens können nur schwer darauf zugreifen. Mit dem Aufkommen der Cloud-Technologie und der Demokratisierung von Big Data sind Unternehmen daran interessiert, die in den Mainframe-Daten verborgenen Erkenntnisse zu nutzen, um neue Geschäftsmöglichkeiten zu entwickeln.

Mit diesem Ziel möchten Unternehmen ihre Mainframe-Db2-Daten für ihre Amazon Web Services (AWS) Cloud-Umgebung öffnen. Die geschäftlichen Gründe sind vielfältig und die Übertragungsmethoden unterscheiden sich von Fall zu Fall. Möglicherweise ziehen Sie es vor, Ihre Anwendung direkt mit dem Mainframe zu verbinden, oder Sie ziehen es vor, Ihre Daten nahezu in Echtzeit zu replizieren. Wenn der Anwendungsfall darin besteht, ein Data Warehouse oder einen Data Lake zu speisen, ist das Vorhandensein einer up-to-date Kopie kein Problem mehr, und das in diesem Muster beschriebene Verfahren könnte ausreichend sein, insbesondere wenn Sie Lizenzkosten für Produkte von Drittanbietern vermeiden möchten. Ein weiterer Anwendungsfall könnte die Mainframe-Datenübertragung für ein Migrationsprojekt sein. In einem Migrationsszenario sind Daten für die Durchführung der funktionalen Äquivalenztests erforderlich. Der in diesem Beitrag beschriebene Ansatz ist eine kostengünstige Möglichkeit, die Db2-Daten in die AWS-Cloud-Umgebung zu übertragen.

Da Amazon Simple Storage Service (Amazon S3) einer der am stärksten integrierten AWS-Services ist, können Sie von dort aus auf die Daten zugreifen und mithilfe anderer AWS-Services wie Amazon Athena, AWS Lambda-Funktionen oder Amazon direkt Erkenntnisse gewinnen. QuickSight Sie können die Daten auch mithilfe von AWS Glue oder AWS Database Migration Service (AWS DMS) in Amazon Aurora oder Amazon DynamoDB laden. Vor diesem Hintergrund wird hier beschrieben, wie Db2-Daten in CSV-Dateien im ASCII-Format auf dem Mainframe entladen und die Dateien nach Amazon S3 übertragen werden.

Zu diesem Zweck wurden [Mainframe-Skripte](https://github.com/aws-samples/unloaddb2-samples) entwickelt, die bei der Generierung von Jobsteuerungssprachen (JCLs) helfen, mit denen Sie so viele Db2-Tabellen entladen und übertragen können, wie Sie benötigen.

## Voraussetzungen und Einschränkungen
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-prereqs"></a>

**Voraussetzungen**
+ Ein z/OS IBM-Betriebssystembenutzer mit der Berechtigung, Restructured Extended Executor (REXX) - und JCL-Skripts auszuführen.
+ Zugriff auf z/OS Unix System Services (USS) zur Generierung von privaten und öffentlichen SSH-Schlüsseln (Secure Shell).
+ Ein beschreibbarer S3-Bucket. Weitere Informationen finden Sie unter [Erstellen Sie Ihren ersten S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html) in der Amazon S3 S3-Dokumentation.
+ Ein SSH File Transfer Protocol (SFTP) -fähiger Server der AWS Transfer Family, der **Service Managed** als Identitätsanbieter und Amazon S3 als AWS-Speicherservice verwendet. Weitere Informationen finden Sie unter [Erstellen eines SFTP-fähigen Servers](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html) in der Dokumentation zur AWS Transfer-Familie.

**Einschränkungen**
+ Dieser Ansatz ist nicht für die Datensynchronisierung nahezu in Echtzeit oder in Echtzeit geeignet.
+ Daten können nur von Db2 z/OS nach Amazon S3 verschoben werden, nicht umgekehrt.

## Architektur
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-architecture"></a>

**Quelltechnologie-Stack**
+ Mainframe, auf dem Db2 auf z/OS läuft

**Zieltechnologie-Stack**
+ AWS Transfer Family
+ Amazon S3
+ Amazon Athena
+ Amazon QuickSight
+ AWS Glue
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon Aurora
+ Amazon Redshift

**Quell- und Zielarchitektur**

Das folgende Diagramm zeigt den Prozess zum Generieren, Extrahieren und Übertragen von z/OS Db2-Daten im ASCII-CSV-Format in einen S3-Bucket.

![\[Data flow from corporate data center to AWS Cloud, showing mainframe extraction and cloud processing steps.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/87b13e0d-0be9-4462-bdbf-67342334416c.png)


1. Eine Liste von Tabellen wird für die Datenmigration aus dem Db2-Katalog ausgewählt.

1. Die Liste wird verwendet, um die Generierung von Entladejobs mit den numerischen Spalten und Datenspalten im externen Format voranzutreiben.

1. Die Daten werden dann mithilfe der AWS Transfer Family an Amazon S3 übertragen.

1. Ein AWS Glue-Auftrag zum Extrahieren, Transformieren und Laden (ETL) kann die Daten transformieren und im angegebenen Format in einen verarbeiteten Bucket laden, oder AWS Glue kann die Daten direkt in die Datenbank einspeisen.

1. Amazon Athena und Amazon QuickSight können verwendet werden, um die Daten abzufragen und zu rendern, um Analysen voranzutreiben.

Das folgende Diagramm zeigt einen logischen Ablauf des gesamten Prozesses.

![\[Flowchart showing JCL process with TABNAME, REXXEXEC, and JCL decks steps, including inputs and outputs.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/66e6fa1a-1c7d-4b7a-8404-9ba85e433b24/images/d72f2572-10c9-43f9-b6c9-7e57c9a69d52.png)


1. Die erste JCL mit dem Namen TABNAME verwendet das Db2-Hilfsprogramm DSNTIAUL, um die Liste der Tabellen zu extrahieren und zu generieren, die Sie aus Db2 entladen möchten. Um Ihre Tabellen auszuwählen, müssen Sie die SQL-Eingabe manuell anpassen, um Filterkriterien für ein oder mehrere Db2-Schemas auszuwählen und hinzuzufügen.

1. Die zweite JCL, REXXEXEC genannt, verwendet ein JCL-Skelett und das REXX-Programm, das zur Verfügung gestellt wird, um die vom JCL TABNAME erstellte Tabellenliste zu verarbeiten und eine JCL pro Tabellennamen zu generieren. Jede JCL enthält einen Schritt zum Entladen der Tabelle und einen weiteren Schritt zum Senden der Datei an den S3-Bucket mithilfe des SFTP-Protokolls.

1. Der letzte Schritt besteht darin, die JCL auszuführen, um die Tabelle zu entladen, und die Datei an AWS zu übertragen. Der gesamte Prozess kann mithilfe eines Schedulers vor Ort oder auf AWS automatisiert werden.

## Tools
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-tools"></a>

**AWS-Services**
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon Simple Storage Service (Amazon S3) analysieren können.
+ [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html) ist eine vollständig verwaltete relationale Datenbank-Engine, die für die Cloud entwickelt wurde und mit MySQL und PostgreSQL kompatibel ist.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html) ist ein vollständig verwalteter Service zum Extrahieren, Transformieren und Laden (ETL). Er hilft Ihnen dabei, Daten zuverlässig zu kategorisieren, zu bereinigen, anzureichern und zwischen Datenspeichern und Datenströmen zu verschieben.
+ [Amazon QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) ist ein Business Intelligence (BI) -Service auf Cloud-Ebene, mit dem Sie Ihre Daten in einem einzigen Dashboard visualisieren, analysieren und melden können.
+ [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/getting-started.html) ist ein verwalteter Data-Warehouse-Service im Petabyte-Bereich in der AWS-Cloud.
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) unterstützt Sie bei der Einrichtung, dem Betrieb und der Skalierung einer relationalen Datenbank in der AWS-Cloud.
+ [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 Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html) ist ein sicherer Übertragungsservice, mit dem Sie Dateien in und aus AWS-Speicherservices übertragen können.

**Mainframe-Tools**
+ Das [SSH File Transfer Protocol (SFTP)](https://www.ssh.com/academy/ssh/sftp-ssh-file-transfer-protocol) ist ein sicheres Dateiübertragungsprotokoll, das die Fernanmeldung bei und die Dateiübertragung zwischen Servern ermöglicht. SSH bietet Sicherheit, indem es den gesamten Datenverkehr verschlüsselt.
+ [DSNTIAUL](https://www.ibm.com/docs/en/db2-for-zos/11?topic=dpasp-dsntiaul-sample-program) ist ein von IBM bereitgestelltes Beispielprogramm zum Entladen von Daten.
+ [DSNUTILB](https://www.ibm.com/docs/en/db2-for-zos/11?topic=sharing-recommendations-utilities-in-coexistence) ist ein von IBM bereitgestelltes Batchprogramm für Dienstprogramme zum Entladen von Daten mit verschiedenen Optionen aus DSNTIAUL.
+ [z/OS OpenSSH](https://www.ibm.com/docs/en/zos/2.4.0?topic=zbed-zos-openssh) ist ein Port von Open Source Software SSH, der auf dem Unix System Service unter dem IBM Betriebssystemnetzwerk ausgeführt wird. z/OS. SSH is a secure, encrypted connection program between two computers running on a TCP/IP Es bietet mehrere Dienstprogramme, darunter ssh-keygen.
+ Das [REXX-Skript (Restructured Extended Executor)](https://www.ibm.com/docs/en/zos/2.1.0?topic=guide-learning-rexx-language) wird verwendet, um die JCL-Generierung mit den Schritten Db2 Unload und SFTP zu automatisieren.

**Code**

[Der Code für dieses Muster ist im unloaddb2-Repository verfügbar. GitHub ](https://github.com/aws-samples/unloaddb2-samples)

## Best Practices
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-best-practices"></a>

Beim ersten Entladen JCLs sollten die generierten Daten die gesamten Tabellendaten entladen.

Führen Sie nach dem ersten vollständigen Entladen inkrementelle Entladungen durch, um die Leistung zu verbessern und Kosten zu sparen. Aktualisieren Sie die SQL-Abfrage im JCL-Deck der Vorlage, um alle Änderungen am Entladevorgang zu berücksichtigen.

Sie können das Schema manuell oder mithilfe eines Skripts auf Lambda mit dem Db2-SYSPUNCH als Eingabe konvertieren. Für einen industriellen Prozess ist [das AWS Schema Conversion Tool (SCT)](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.DB2zOS.html) die bevorzugte Option.

Verwenden Sie schließlich einen Mainframe-basierten Scheduler oder einen Scheduler auf AWS mit einem Agenten auf dem Mainframe, um den gesamten Prozess zu verwalten und zu automatisieren.

## Epen
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-epics"></a>

### Richten Sie den S3-Bucket ein
<a name="set-up-the-s3-bucket"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den S3-Bucket. | Anweisungen finden Sie unter [Erstellen Sie Ihren ersten S3-Bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). | Allgemeines AWS | 

### Richten Sie den Transfer Family Family-Server ein
<a name="set-up-the-transfer-family-server"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie einen SFTP-fähigen Server. | Gehen Sie wie folgt vor, um einen SFTP-Server auf der [AWS Transfer Family Family-Konsole](https://console.aws.amazon.com/transfer/) zu öffnen und zu erstellen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Allgemeines AWS | 
| Erstellen Sie eine IAM-Rolle für Transfer Family. | Um eine AWS Identity and Access Management (IAM) -Rolle für Transfer Family für den Zugriff auf Amazon S3 zu erstellen, folgen Sie den Anweisungen unter [Erstellen einer IAM-Rolle und](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-roles.html) -Richtlinie.  | AWS-Administrator | 
| Fügen Sie einen vom Amazon S3 S3-Dienst verwalteten Benutzer hinzu. | Um den vom Service verwalteten Amazon S3 S3-Benutzer hinzuzufügen, folgen Sie den Anweisungen in der [AWS-Dokumentation](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html#add-s3-user) und verwenden Sie Ihre Mainframe-Benutzer-ID. | Allgemeines AWS | 

### Sichern Sie das Kommunikationsprotokoll
<a name="secure-the-communication-protocol"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie den SSH-Schlüssel. | Führen Sie in Ihrer Mainframe-USS-Umgebung den folgenden Befehl aus.<pre>ssh-keygen -t rsa</pre>Wenn Sie zur Eingabe einer Passphrase aufgefordert werden, lassen Sie sie leer. | Mainframe-Entwickler | 
| Weisen Sie dem SSH-Ordner und den Schlüsseldateien die richtigen Autorisierungsstufen zu. | Standardmäßig werden die öffentlichen und privaten Schlüssel im Benutzerverzeichnis `/u/home/username/.ssh` gespeichert.Sie müssen den Schlüsseldateien die Autorisierung 644 und dem Ordner die Autorisierung 700 erteilen.<pre>chmod 644 .ssh/id_rsa<br />chmod 700 .ssh</pre> | Mainframe-Entwickler | 
| Kopieren Sie den Inhalt des öffentlichen Schlüssels auf Ihren vom Amazon S3 S3-Dienst verwalteten Benutzer. | Um den von USS generierten Inhalt des öffentlichen Schlüssels zu kopieren, öffnen Sie die [AWS Transfer Family Family-Konsole](https://console.aws.amazon.com/transfer/).[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html) | Mainframe-Entwickler | 

### Generieren Sie das JCLs
<a name="generate-the-jcls"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Generieren Sie die im Geltungsbereich enthaltene Db2-Tabellenliste. | Geben Sie Eingabe-SQL ein, um eine Liste der Tabellen zu erstellen, die für die Datenmigration vorgesehen sind. In diesem Schritt müssen Sie Auswahlkriterien angeben, indem Sie die DB2-Katalogtabelle SYSIBM.SYSTABLES mithilfe einer SQL WHERE-Klausel abfragen. Filter können so angepasst werden, dass sie ein bestimmtes Schema oder Tabellennamen enthalten, die mit einem bestimmten Präfix beginnen oder auf einem Zeitstempel für das inkrementelle Entladen basieren. Die Ausgabe wird in einem physikalischen sequentiellen Datensatz (PS) auf dem Mainframe erfasst. Dieser Datensatz dient als Eingabe für die nächste Phase der JCL-Generierung.Bevor Sie den JCL-TABNAMEN verwenden (Sie können ihn bei Bedarf umbenennen), nehmen Sie die folgenden Änderungen vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Job zum Extrahieren der DB2-Tabellenliste**<pre><Jobcard><br />//* <br />//* UNLOAD ALL THE TABLE NAMES FOR A PARTICULAR SCHEMA<br />//* <br />//STEP01  EXEC PGM=IEFBR14<br />//* <br />//DD1      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.TABLIST<br />//* <br />//DD2      DD  DISP=(MOD,DELETE,DELETE),<br />//         UNIT=SYSDA,<br />//         SPACE=(1000,(1,1)),<br />//         DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//UNLOAD  EXEC PGM=IKJEFT01,DYNAMNBR=20 <br />//SYSTSPRT DD  SYSOUT=* <br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//         DD  DISP=SHR,DSN=CEE.SCEERUN <br />//         DD  DISP=SHR,DSN=DSNC10.DBCG.RUNLIB.LOAD <br />//SYSTSIN  DD  *<br />  DSN SYSTEM(DBCG) <br />  RUN  PROGRAM(DSNTIAUL) PLAN(DSNTIB12) PARMS('SQL') - <br />       LIB('DSNC10.DBCG.RUNLIB.LOAD')<br />  END<br />//SYSPRINT DD SYSOUT=*<br />//* <br />//SYSUDUMP DD SYSOUT=*<br />//* <br />//SYSREC00 DD DISP=(NEW,CATLG,DELETE),<br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            DSN=<HLQ1>.DSN81210.TABLIST <br />//* <br />//SYSPUNCH DD DISP=(NEW,CATLG,DELETE), <br />//            UNIT=SYSDA,SPACE=(32760,(1000,500)),<br />//            VOL=SER=SCR03,RECFM=FB,LRECL=120,BLKSIZE=12 <br />//            DSN=<HLQ1>.DSN81210.SYSPUNCH <br />//* <br />//SYSIN    DD * <br />   SELECT CHAR(CREATOR), CHAR(NAME)<br />     FROM SYSIBM.SYSTABLES <br />    WHERE OWNER = '<Schema>' <br />      AND NAME LIKE '<Prefix>%' <br />      AND TYPE = 'T'; <br />/* </pre> | Mainframe-Entwickler | 
| Ändern Sie die JCL-Vorlagen. | Die mit diesem Muster bereitgestellten JCL-Vorlagen enthalten eine generische Job-Card und Bibliotheksnamen. Die meisten Mainframe-Websites werden jedoch ihre eigenen Benennungsstandards für Datensatznamen, Bibliotheksnamen und Jobkarten haben. Beispielsweise kann eine bestimmte Jobklasse erforderlich sein, um Db2-Jobs auszuführen. Das Job Entry Subsystem implementiert JES2 und JES3 kann zusätzliche Änderungen auferlegen. Standard-Ladebibliotheken haben möglicherweise einen anderen ersten Qualifier als `SYS1` den IBM-Standard. Passen Sie die Vorlagen daher an Ihre standortspezifischen Standards an, bevor Sie sie ausführen.Nehmen Sie die folgenden Änderungen am Grundgerüst JCL UNLDSKEL vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Entladen und SFTP-JCL-Skelett**<pre>//&USRPFX.U JOB (DB2UNLOAD),'JOB',CLASS=A,MSGCLASS=A, <br />//         TIME=1440,NOTIFY=&USRPFX<br />//* DELETE DATASETS<br />//STEP01   EXEC PGM=IEFBR14<br />//DD01     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//DD02     DD DISP=(MOD,DELETE,DELETE),<br />//            UNIT=SYSDA,<br />//            SPACE=(TRK,(1,1)),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//*<br />//* RUNNING DB2 EXTRACTION BATCH JOB FOR AWS DEMO<br />//*<br />//UNLD01   EXEC PGM=DSNUTILB,REGION=0M,<br />// PARM='<DSN>,UNLOAD'<br />//STEPLIB  DD  DISP=SHR,DSN=DSNC10.DBCG.SDSNEXIT<br />//         DD  DISP=SHR,DSN=DSNC10.SDSNLOAD<br />//SYSPRINT DD  SYSOUT=*<br />//UTPRINT  DD  SYSOUT=*<br />//SYSOUT   DD  SYSOUT=*<br />//SYSPUN01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(1,1),RLSE),<br />// DSN=&USRPFX..DB2.PUNCH.&JOBNAME<br />//SYSREC01 DD  DISP=(NEW,CATLG,DELETE),<br />//             SPACE=(CYL,(10,50),RLSE),<br />// DSN=&USRPFX..DB2.UNLOAD.&JOBNAME<br />//SYSPRINT DD SYSOUT=*<br />//SYSIN    DD *<br />  UNLOAD<br />  DELIMITED COLDEL ','<br />  FROM TABLE &TABNAME<br />  UNLDDN SYSREC01<br />  PUNCHDDN SYSPUN01<br />  SHRLEVEL CHANGE ISOLATION UR;<br /> /*<br />//*<br />//* FTP TO AMAZON S3 BACKED FTP SERVER IF UNLOAD WAS SUCCESSFUL<br />//*<br />//SFTP EXEC PGM=BPXBATCH,COND=(4,LE),REGION=0M<br />//STDPARM DD *<br /> SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTPSITE;<br /> rm &TABNAME..csv;<br /> //SYSPRINT DD SYSOUT=*<br /> //STDOUT DD SYSOUT=*<br /> //STDENV DD *<br /> //STDERR DD SYSOUT=*                                                </pre>  | Mainframe-Entwickler | 
| Generieren Sie die Mass Unload JCL. | Dieser Schritt beinhaltet die Ausführung eines REXX-Skripts in einer ISPF-Umgebung mithilfe von JCL. Geben Sie die Liste der im ersten Schritt erstellten Tabellen im Gültigkeitsbereich als Eingabe für die Massengenerierung von JCL anhand des Namens an. `TABLIST DD` Die JCL generiert eine neue JCL pro Tabellennamen in einem benutzerdefinierten partitionierten Datensatz, der anhand des Namens angegeben wird. `ISPFILE DD` Ordnen Sie diese Bibliothek vorher zu. Jede neue JCL besteht aus zwei Schritten: einem Schritt zum Entladen der Db2-Tabelle in eine Datei und einem Schritt zum Senden der Datei an den S3-Bucket.Nehmen Sie die folgenden Änderungen in der JCL REXXEXEC vor (Sie können den Namen ändern):[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**Auftrag zur Massengenerierung von JCL**<pre>//RUNREXX JOB (CREATEJCL),'RUNS ISPF TABLIST',CLASS=A,MSGCLASS=A,      <br />//         TIME=1440,NOTIFY=&SYSUID<br />//* Most of the values required can be updated to your site specific<br />//* values using the command 'TSO ISRDDN' in your ISPF session. <br />//* Update all the lines tagged with //update marker to desired<br />//* site specific values. <br />//ISPF EXEC PGM=IKJEFT01,REGION=2048K,DYNAMNBR=25<br />//SYSPROC   DD DISP=SHR,DSN=USER.Z23D.CLIST<br />//SYSEXEC   DD DISP=SHR,DSN=<HLQ1>.TEST.REXXLIB<br />//ISPPLIB   DD DISP=SHR,DSN=ISP.SISPPENU<br />//ISPSLIB   DD DISP=SHR,DSN=ISP.SISPSENU<br />//          DD DISP=SHR,DSN=<HLQ1>.TEST.ISPSLIB<br />//ISPMLIB   DD DSN=ISP.SISPMENU,DISP=SHR<br />//ISPTLIB   DD DDNAME=ISPTABL<br />//          DD DSN=ISP.SISPTENU,DISP=SHR<br />//ISPTABL   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPPROF   DD LIKE=ISP.SISPTENU,UNIT=VIO<br />//ISPLOG    DD SYSOUT=*,RECFM=VA,LRECL=125<br />//SYSPRINT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSTSPRT  DD SYSOUT=*<br />//SYSUDUMP  DD SYSOUT=*<br />//SYSDBOUT  DD SYSOUT=*<br />//SYSHELP   DD DSN=SYS1.HELP,DISP=SHR <br />//SYSOUT    DD SYSOUT=*<br />//* Input list of tablenames<br />//TABLIST   DD DISP=SHR,DSN=<HLQ1>.DSN81210.TABLIST<br />//* Output pds<br />//ISPFILE   DD DISP=SHR,DSN=<HLQ1>.TEST.JOBGEN<br />//SYSTSIN   DD *<br />ISPSTART CMD(ZSTEPS <MFUSER> <FTPUSER> <AWS TransferFamily IP>)<br />/*</pre>Bevor Sie das REXX-Skript verwenden, nehmen Sie die folgenden Änderungen vor:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files.html)**STEPS REX-Skript**<pre>/*REXX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */<br />/* 10/27/2021 - added new parms to accommodate ftp */<br />Trace "o" <br />    parse arg usrpfx ftpuser ftpsite<br />    Say "Start"<br />    Say "Ftpuser: " ftpuser "Ftpsite:" ftpsite<br />    Say "Reading table name list"<br />    "EXECIO * DISKR TABLIST (STEM LINE. FINIS"<br />    DO I = 1 TO LINE.0<br />      Say I<br />      suffix = I<br />      Say LINE.i<br />      Parse var LINE.i schema table rest<br />      tabname = schema !! "." !! table<br />      Say tabname<br />      tempjob= "LOD" !! RIGHT("0000" !! i, 5) <br />      jobname=tempjob<br />      Say tempjob<br />      ADDRESS ISPEXEC "FTOPEN "<br />      ADDRESS ISPEXEC "FTINCL UNLDSKEL"<br />      /* member will be saved in ISPDSN library allocated in JCL */<br />      ADDRESS ISPEXEC "FTCLOSE NAME("tempjob")"<br />    END<br /><br />    ADDRESS TSO "FREE F(TABLIST) "<br />    ADDRESS TSO "FREE F(ISPFILE) "<br /><br />exit 0</pre> | Mainframe-Entwickler | 

### Führen Sie das aus JCLs
<a name="run-the-jcls"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie den Schritt Db2 Unload aus. | Nach der JCL-Generierung werden Sie über so viele Tabellen verfügen, JCLs wie Sie haben, die entladen werden müssen.In dieser Geschichte werden die Struktur und die wichtigsten Schritte anhand eines von JCL generierten Beispiels erklärt.Von Ihrer Seite aus ist keine Aktion erforderlich. Die folgenden Informationen dienen nur als Referenz. Wenn Sie JCLs die im vorherigen Schritt generierten Daten einreichen möchten, fahren Sie mit dem Abschnitt LODnnnnn JCLs Aufgabe *einreichen* fort.Wenn Sie Db2-Daten mithilfe einer JCL mit dem von IBM bereitgestellten Hilfsprogramm DSNUTILB Db2 entladen, müssen Sie sicherstellen, dass die entladenen Daten keine komprimierten numerischen Daten enthalten. Verwenden Sie dazu den DSNUTILB-Parameter. `DELIMITED`Der `DELIMITED` Parameter unterstützt das Entladen der Daten im CSV-Format, indem er ein Zeichen als Trennzeichen und doppelte Anführungszeichen für das Textfeld hinzufügt, die Auffüllung in der VARCHAR-Spalte entfernt und alle numerischen Felder, einschließlich der DATE-Felder, in ein EXTERNES FORMAT konvertiert.Das folgende Beispiel zeigt, wie der Entladeschritt in der generierten JCL aussieht, wobei das Komma als Trennzeichen verwendet wird.<pre>                            <br /> UNLOAD<br /> DELIMITED COLDEL ',' <br /> FROM TABLE SCHEMA_NAME.TBNAME<br /> UNLDDN SYSREC01<br /> PUNCHDDN SYSPUN01<br /> SHRLEVEL CHANGE ISOLATION UR;</pre> | Mainframe-Entwickler, Systemingenieur | 
| Führen Sie den SFTP-Schritt aus. | Um das SFTP-Protokoll von einer JCL aus zu verwenden, verwenden Sie das BPXBATCH-Hilfsprogramm. Das SFTP-Hilfsprogramm kann nicht direkt auf die MVS-Datensätze zugreifen. Sie können den Befehl copy (`cp`) verwenden, um die sequenzielle Datei in das USS-Verzeichnis `&USRPFX..DB2.UNLOAD.&JOBNAME` zu kopieren, wo sie gespeichert wird. `&TABNAME..csv`Führen Sie den `sftp` Befehl mit dem privaten Schlüssel (`id_rsa`) und der RACF-Benutzer-ID als Benutzernamen aus, um eine Verbindung mit der IP-Adresse der AWS Transfer Family herzustellen.<pre>SH cp "//'&USRPFX..DB2.UNLOAD.&JOBNAME'"<br />   &TABNAME..csv;<br /> echo "ascii             " >> uplcmd;<br /> echo "PUT &TABNAME..csv " >>>> uplcmd;<br /> sftp -b uplcmd -i .ssh/id_rsa &FTPUSER.@&FTP_TF_SITE;<br /> rm &TABNAME..csv; </pre> | Mainframe-Entwickler, Systemingenieur | 
| Reichen Sie das LODnnnnn JCLs ein. | Die vorherige JCL hat alle LODnnnnn JCL-Tabellen generiert, die entladen, in CSV umgewandelt und in den S3-Bucket übertragen werden müssen.Führen Sie den `submit` Befehl für alle aus JCLs , die generiert wurden. | Mainframe-Entwickler, Systemingenieur | 

## Zugehörige Ressourcen
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-resources"></a>

Weitere Informationen zu den verschiedenen in diesem Dokument verwendeten Tools und Lösungen finden Sie im Folgenden:
+ [z/OS OpenSSH-Benutzerhandbuch](https://www-01.ibm.com/servers/resourcelink/svc00100.nsf/pages/zOSV2R4sc276806/$file/foto100_v2r4.pdf)
+ [Db2 z/OS — Beispiel für UNLOAD-Steueranweisungen](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-sample-control-statements)
+ [Db2 z/OS — Dateien mit Trennzeichen werden entladen](https://www.ibm.com/docs/en/db2-for-zos/11?topic=unload-unloading-delimited-files)
+ [Transfer Family — Erstellen Sie einen SFTP-fähigen Server](https://docs.aws.amazon.com/transfer/latest/userguide/create-server-sftp.html)
+ [Transfer Family — Arbeit mit dienstverwalteten Benutzern](https://docs.aws.amazon.com/transfer/latest/userguide/service-managed-users.html)

## Zusätzliche Informationen
<a name="transfer-large-scale-db2-z-os-data-to-amazon-s3-in-csv-files-additional"></a>

Nachdem Sie Ihre Db2-Daten auf Amazon S3 gespeichert haben, haben Sie viele Möglichkeiten, neue Erkenntnisse zu gewinnen. Da Amazon S3 in AWS-Datenanalyse-Services integriert ist, können Sie diese Daten frei verwenden oder auf der verteilten Seite verfügbar machen. Sie können z. B. Folgendes tun:
+ Erstellen Sie einen [Data Lake auf Amazon S3](https://aws.amazon.com/products/storage/data-lake-storage/) und gewinnen Sie wertvolle Erkenntnisse mithilfe query-in-place von Analyse- und Machine-Learning-Tools, ohne die Daten verschieben zu müssen.
+ Initiieren Sie eine [Lambda-Funktion](https://aws.amazon.com/lambda/), indem Sie einen Verarbeitungsworkflow nach dem Upload einrichten, der in die AWS Transfer Family integriert ist.
+ Entwickeln Sie neue Microservices für den Zugriff auf Daten in Amazon S3 oder in einer [vollständig verwalteten Datenbank](https://aws.amazon.com/free/database/?trk=ps_a134p000007CdNEAA0&trkCampaign=acq_paid_search_brand&sc_channel=PS&sc_campaign=acquisition_FR&sc_publisher=Google&sc_category=Database&sc_country=FR&sc_geo=EMEA&sc_outcome=acq&sc_detail=amazon%20relational%20database%20service&sc_content=Relational%20Database_e&sc_matchtype=e&sc_segment=548727697660&sc_medium=ACQ-P|PS-GO|Brand|Desktop|SU|Database|Solution|FR|EN|Text&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service&ef_id=CjwKCAjwzt6LBhBeEiwAbPGOgcGbQIl1-QsbHfWTgMZSSHEXzSG377R9ZyK3tCcbnHuT45L230FufxoCeEkQAvD_BwE:G:s&s_kwcid=AL!4422!3!548727697660!e!!g!!amazon%20relational%20database%20service) mithilfe von [AWS Glue](https://aws.amazon.com/glue/), einem serverlosen Datenintegrationsservice, der es einfach macht, Daten für Analysen, maschinelles Lernen und Anwendungsentwicklung zu entdecken, aufzubereiten und zu kombinieren.

In einem Anwendungsfall für die Migration können Sie, da Sie beliebige Daten vom Mainframe auf S3 übertragen können, wie folgt vorgehen:
+ Mit Amazon S3 Glacier und S3 Glacier Deep Archive können Sie die physische Infrastruktur außer Betrieb nehmen und eine kostengünstige Datenarchivierungsstrategie entwickeln. 
+ Entwickeln Sie skalierbare, langlebige und sichere Sicherungs- und Wiederherstellungslösungen mit Amazon S3 und anderen AWS-Services wie S3 Glacier und Amazon Elastic File System (Amazon EFS), um bestehende lokale Funktionen zu erweitern oder zu ersetzen.

# Verwandeln Sie Easytrieve mithilfe von Custom in moderne Sprachen AWS Transform
<a name="transform-easytrieve-modern-languages"></a>

*Shubham Roy, Subramanyam Malisetty und Harshitha Shashidhar, Amazon Web Services*

## Zusammenfassung
<a name="transform-easytrieve-modern-languages-summary"></a>

[https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6.html) language-to-language Es befasst sich mit den Herausforderungen der Modernisierung von Nischen- und proprietären EZT-Workloads für Mainframes, die häufig für die Verarbeitung von Batch-Daten und die Generierung von Berichten verwendet werden. Das Muster ersetzt teure, langwierige und fehleranfällige Migrationsansätze, die auf proprietären Tools und seltenem Mainframe-Fachwissen beruhen, durch eine maßgeschneiderte, automatisierte KI-Lösung, auf der Sie selbst erstellen. AWS Transform

Dieses Muster bietet eine gebrauchsfertige benutzerdefinierte Transformationsdefinition für die EZT-Transformation. Die Definition verwendet mehrere Transformationseingaben:
+ [Mit Hilfe AWS Transform von Mainframe extrahierte EZT-Geschäftsregeln](https://aws.amazon.com/transform/mainframe/)
+ Referenzdokumentation zur EZT-Programmierung
+ EZT-Quellcode
+ Mainframe-Eingabe- und Ausgabedatensätze

AWS Transform custom verwendet diese Eingaben, um funktional äquivalente Anwendungen in modernen Zielsprachen wie Java oder Python zu generieren.

Der Transformationsprozess verwendet intelligente Testausführung, automatisiertes Debugging und iterative Korrekturfunktionen, um die funktionale Äquivalenz anhand der erwarteten Ergebnisse zu überprüfen. Es unterstützt auch kontinuierliches Lernen und ermöglicht so die benutzerdefinierte Transformationsdefinition, um die Genauigkeit und Konsistenz bei aufeinanderfolgenden Transformationen zu verbessern. Mithilfe dieses Musters können Unternehmen den Migrationsaufwand und das Risiko reduzieren, technische Nischenprobleme bei Mainframes beheben und EZT-Workloads modernisieren, um Agilität, Zuverlässigkeit, Sicherheit und Innovation AWS zu verbessern.

## Voraussetzungen und Einschränkungen
<a name="transform-easytrieve-modern-languages-prereqs"></a>

**Voraussetzungen**
+ Ein aktives Konto AWS  
+ Ein Mainframe-EZT-Workload mit Eingabe- und Ausgabedaten 

**Einschränkungen**

*Einschränkungen des Geltungsbereichs*
+ **Sprachunterstützung** — Für dieses spezielle Transformationsmuster wird nur die Transformation von EZT zu Java unterstützt. 
+ **Außerhalb des Geltungsbereichs** — Für die Transformation anderer Mainframe-Programmiersprachen ist eine neue benutzerdefinierte Transformationsdefinition im benutzerdefinierten Format erforderlich. AWS Transform 

*Einschränkungen des Prozesses*
+ **Validierungsabhängigkeit** — Ohne Ausgangsdaten kann die Transformation nicht validiert werden. 
+ **Proprietäre Logik** — Hochspezifische, speziell entwickelte Dienstprogramme erfordern zusätzliche Benutzerdokumentation und Referenzmaterial, um vom KI-Agenten korrekt interpretiert zu werden.

*Technische Einschränkungen*
+ **Service-Limits** — AWS Transform Maßgeschneiderte Service-Limits und Kontingente finden Sie im [AWS Transform Benutzerhandbuch — Kontingente](https://docs.aws.amazon.com/transform/latest/userguide/transform-limits.html) und die [AWS allgemeine Referenz — Transform Quotas](https://docs.aws.amazon.com/general/latest/gr/aws-transform.html).

**Produktversionen**
+ AWS Transform CLI — Letzte Version
+ Node.js — Version 20 oder höher
+ Git — Letzte Version
+ Zielumgebung
  + Java — Version 17 oder höher
  + Spring Boot — Version 3.x ist das primäre Ziel für umgestaltete Anwendungen
  + Maven — Version 3.6 oder höher

## Architektur
<a name="transform-easytrieve-modern-languages-architecture"></a>

**Quelltechnologie-Stack**
+ **Betriebssystem** — IBM z/OS
+ **Programmiersprache** — Easytrieve, Job Control Language (JCL)
+ **Datenbank** — IBM DB2 für z/OS, Virtual Storage Access Method (VSAM), Mainframe-Flatfiles

**Zieltechnologie-Stack**
+ **Betriebssystem** — Amazon Linux
+ **Datenverarbeitung** — Amazon Elastic Compute Cloud (Amazon EC2)
+ **Programmiersprache** — Java
+ **Datenbank** Amazon Relational Database Service (Amazon RDS)

**Zielarchitektur**

![\[Zielarchitekturdiagramm für die Verwendung von AWS Transform custom zur Umwandlung von EZT in modernen Code.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/71f15422-42cb-4c7e-94fa-051a4f130445/images/eb89eed0-dd55-485c-a433-9869162eaad9.png)


**Workflow**

Diese Lösung verwendet ein AWS Transform benutzerdefiniertes Transformationsmuster für die language-to-language Migration, um Mainframe-Easytrieve (EZT) -Anwendungen mithilfe eines automatisierten Workflows in vier Schritten auf Java zu modernisieren.

*Schritt 1 — Stellen Sie Ihren Legacy-Code für Mainframe bereit, der: AWS Transform *
+ Analysiert den Code
+ Extrahiert die allgemeine Geschäftslogik
+ Extrahiert die detaillierte Geschäftslogik.

*Schritt 2 — Erstellen Sie einen Ordner mit den erforderlichen Eingaben:*
+ Mit Hilfe AWS Transform von Mainframe extrahierte EZT-Geschäftsregeln 
+ Referenzdokumentation zur EZT-Programmierung 
+ EZT-Quellcode
+ Mainframe-Eingabe- und Ausgabedatensätze

*Schritt 3 — Erstellen Sie eine benutzerdefinierte Transformationsdefinition und führen Sie sie aus*

1. Verwenden Sie die AWS Transform CLI, um Transformationsziele in natürlicher Sprache zu beschreiben. AWS Transform custom analysiert die BRE-, Quellcode- und EZT-Programmierleitfäden, um eine benutzerdefinierte Transformationsdefinition zur Überprüfung und Genehmigung durch Entwickler zu erstellen.

1. Rufen Sie dann die AWS Transform CLI mit dem Projektquellcode auf. AWS Transform custom erstellt Transformationspläne, konvertiert EZT nach Genehmigung in Java, generiert unterstützende Dateien, erstellt die ausführbare JAR und validiert die Exit-Kriterien.

1. Verwenden Sie den Validierungsagenten, um die funktionale Äquivalenz anhand der Mainframe-Ausgabe zu testen. Der Self-Debugger-Agent behebt Probleme selbstständig. Zu den endgültigen Ergebnissen gehören validierter Java-Code und HTML-Validierungsberichte.

**Automatisierung und Skalierung**
+ Agentic AI Multimode-Ausführungsarchitektur — AWS Transform kundenspezifisch nutzt agentische KI mit drei Ausführungsmodi (Konversation, interaktiv, vollständige Automatisierung), um komplexe Transformationsaufgaben wie Codeanalyse, Refactoring, Transformationsplanung und Tests zu automatisieren.
+ Adaptives Lern-Feedback-System — Die Plattform implementiert kontinuierliche Lernmechanismen durch Analyse von Codebeispielen, Analyse der Dokumentation und Integration von Entwickler-Feedback mit versionierten Transformationsdefinitionen.
+ Architektur für gleichzeitige Anwendungsverarbeitung — Das System ermöglicht die verteilte parallel Ausführung mehrerer Anwendungstransformationsvorgänge gleichzeitig in einer skalierbaren Infrastruktur.

## Tools
<a name="transform-easytrieve-modern-languages-tools"></a>

**AWS-Services  **
+ [AWS Transform custom](https://docs.aws.amazon.com/transform/latest/userguide/custom.html) ist ein agentischer KI-Service, der verwendet wird, um ältere EZT-Anwendungen in moderne Programmiersprachen umzuwandeln. 
+ [AWS Transform](https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html)verwendet agentic AI, um Ihnen zu helfen, die Modernisierung älterer Workloads wie .NET, Mainframe und Workloads zu beschleunigen. VMware 
+ [AWS Transform for Mainframe](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe.html) wird verwendet, um ältere EZT-Anwendungen zu analysieren, um eingebettete Geschäftslogik zu extrahieren und eine umfassende Dokumentation zu Geschäftsregeln zu erstellen, einschließlich logischer Zusammenfassungen, Akronymdefinitionen und strukturierter Wissensdatenbanken. Diese dienen als Eingabedaten für benutzerdefinierte Anwendungen. AWS Transform  
+ [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. Amazon S3 dient als primärer Speicherservice für AWS Transform Custom zum Speichern von Transformationsdefinitionen, Code-Repositorys und Verarbeitungsergebnissen. 
+ [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. IAM bietet das Sicherheitsframework für AWS Transform benutzerdefinierte, verwaltete Berechtigungen und Zugriffskontrolle für Transformationsvorgänge.

**Andere Tools**
+ [AWS Transform CLI](https://docs.aws.amazon.com/transform/latest/userguide/custom-command-reference.html) ist die Befehlszeilenschnittstelle für AWS Transform benutzerdefinierte Anwendungen, die es Entwicklern ermöglicht, benutzerdefinierte Codetransformationen durch Konversationen in natürlicher Sprache und automatisierte Ausführungsmodi zu definieren, auszuführen und zu verwalten. AWS Transform custom unterstützt sowohl interaktive Sitzungen (atx custom def exec) als auch autonome Transformationen für die skalierbare Modernisierung von Codebasen.
+ [Git-Versionskontrollsystem](https://git-scm.com/doc), das für den Branchschutz, die Änderungsverfolgung und Rollback-Funktionen bei der automatisierten Fix-Anwendung verwendet wird. 
+ [Java](https://www.java.com/en/) ist die Programmiersprache und Entwicklungsumgebung, die in diesem Muster verwendet werden. 

**Code-Repository**

Der Code für dieses Muster ist in [Easytrieve to Modern Languages Transformation mit aktivierter Option AWS Transform Benutzerdefiniert](https://github.com/aws-samples/sample-mainframe-easytrieve-transform?tab=readme-ov-file#easytrieve-to-modern-languages-transformation-with-aws-transform-custom) verfügbar. GitHub

## Best Practices
<a name="transform-easytrieve-modern-languages-best-practices"></a>
+ Etablieren Sie eine standardisierte Projektstruktur — Erstellen Sie eine Struktur mit vier Ordnern (Quellcode, Bre-Doc, Eingabedaten, Ausgabedaten), überprüfen Sie die Vollständigkeit und dokumentieren Sie den Inhalt vor der Transformation.
+ Verwenden Sie Basisdateien für die Validierung — Verwenden Sie Ausgangsdateien für die Produktion, führen Sie einen byte-by-byte Vergleich mit der Ausgangsausgabe durch und akzeptieren Sie eine Null-Toleranz für Abweichungen.
+ Alle verfügbaren Referenzdokumente verwenden — Um die Genauigkeit der Transformation zu erhöhen, stellen Sie alle verfügbaren Referenzdokumente bereit, z. B. Geschäftsanforderungen und Codierungs-Checklisten.
+ Geben Sie Anregungen zur Qualitätsverbesserung — AWS Transform Custom extrahiert automatisch Erkenntnisse aus Transformationsausführungen (Feedback von Entwicklern, Codeprobleme) und erstellt Wissenselemente für sie. Überprüfen Sie nach jeder erfolgreichen Transformation die Wissenselemente und genehmigen Sie die Wissenselemente, die Sie in future Ausführungen verwenden möchten. Dies verbessert die Qualität zukünftiger Transformationen.

## Epen
<a name="transform-easytrieve-modern-languages-epics"></a>

### Generieren Sie einen Geschäftsregelextrakt (BRE)
<a name="generate-a-business-rule-extract-bre"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
|  AWS Transform Für Mainframe konfigurieren. | Richten Sie die Umgebung und die erforderlichen AWS Identity and Access Management (IAM-) Berechtigungen zur Unterstützung von Workflows zur Mainframe-Modernisierung ein. Weitere Informationen finden Sie in der Dokumentation unter [Transformation von Mainframe-Anwendungen](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html). AWS  | App-Developer | 
| Generieren Sie die Dokumentation zu Business Rule Extract (BRE). | Extrahieren Sie Geschäftslogik aus dem EZT- oder COBOL-Quellcode, um funktionale Dokumentation zu generieren. Anweisungen, wie Sie den Extraktionsprozess einleiten und die Ausgabe überprüfen, finden Sie in der AWS Transform Dokumentation unter [Geschäftslogik extrahieren](https://docs.aws.amazon.com/transform/latest/userguide/transform-app-mainframe-workflow.html#transform-app-mainframe-workflow-extract-business-logic). | App-Developer | 

### AWS Transform Benutzerdefiniert einrichten
<a name="set-up-trn-custom"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie die Infrastruktur AWS Transform kundenspezifisch bereit. | Stellen Sie die produktionsbereite Infrastruktur bereit, die für die Bereitstellung einer sicheren Transformationsumgebung erforderlich ist. Dazu gehört eine private Amazon EC2 EC2-Instance, die mit den erforderlichen Tools, IAM-Berechtigungen und Netzwerkeinstellungen für die Konvertierung von Easytrieve-Code konfiguriert ist. Um die Umgebung mithilfe von Infrastructure as Code (IaC) bereitzustellen, folgen Sie den Bereitstellungsanweisungen im Repository [Easytrieve to](https://github.com/aws-samples/sample-mainframe-easytrieve-transform) Modern Languages Transformation with Custom. AWS Transform GitHub  | App-Entwickler, AWS-Administrator | 
| Bereiten Sie die Eingangsmaterialien für die Transformation vor. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | App-Developer | 

###  Erstellen Sie eine benutzerdefinierte Transformationsdefinition
<a name="create-a-custom-transformation-definition"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Transformationsdefinition. | Gehen Sie wie folgt vor, um die benutzerdefinierte Transformationsdefinition für die Transformation von EZT in Java mit funktionaler Validierung zu erstellen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | App-Developer | 
| Veröffentlichen Sie die Transformationsdefinition. | Nach der Überprüfung und Validierung der Transformationsdefinition können Sie sie mit einer Aufforderung in natürlicher Sprache in der AWS Transform benutzerdefinierten Registrierung veröffentlichen und dabei einen Definitionsnamen wie *EasyTrieve-to-Java-Migration* angeben. | App-Developer | 

### Bereiten Sie die Basisdaten für die Validierung vor.
<a name="prepare-baseline-data-for-validation"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Lesen Sie die Zusammenfassung der Transformationsvalidierung. | Stellen Sie vor der Ausführung der AWS Transform benutzerdefinierten Transformation sicher, dass der `input-data` Ordner die erforderlichen Datendateien enthält, die vor der Ausführung des Mainframe-Batchjobs erfasst wurden. Stellen Sie nach der Ausführung des Mainframe-Batchjobs sicher, dass der `output-data` Ordner die resultierenden Dateien aufzeichnet. Alle Dateien liegen im Sequential/Text/DB 2-Format vor und verwenden die EBCDIC-Codierung, die auf den Ausführungsanforderungen basiert.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | App-Developer | 
| Führen Sie den benutzerdefinierten Transformationsjob aus. | Führen Sie den AWS Transform CLI-Befehl aus und wählen Sie die nicht interaktive oder die interaktive Option aus:<pre>:# Non-interactive execution (fully autonomous):<br />atx custom def exec \<br />  --transformation-name "Easytrieve-to-Java-Migration" \<br />  --code-repository-path ~/root/transform-workspace/mainframe-source/source-code \<br />  --build-command "mvn clean install" \<br />  --non-interactive \<br />  --trust-all-tools \<br /><br /># Interactive execution (with human oversight):<br />atx custom def exec \<br />  -n "Easytrieve-to-Java-Migration" \<br />  -p ~/root/transform-workspace/mainframe-source/source-code \<br />  -c "mvn clean install"<br /><br /># Resume interrupted execution:<br />atx -resume<br /># OR<br />atx --conversation-id <conversation-id><br /></pre>AWS Transform validiert automatisch anhand von build/test Befehlen während der Ausführung der Transformation. | App-Developer | 

### Validiert und liefert getesteten Code
<a name="validate-and-deliver-tested-code"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Lesen Sie die Zusammenfassung der Transformationsvalidierung. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | App-Developer | 
| Greifen Sie auf Validierungsberichte zu. | Geben Sie die folgenden Befehle ein, um die detaillierten Validierungsartefakte zu überprüfen:<pre># Full validation report<br />cat ~/.aws/atx/custom/$LATEST_SESSION/artifacts/validation_report.html<br /><br /># Generated code location<br />ls ~/.aws/atx/custom/$LATEST_SESSION/generated/<br /><br /># Execution logs<br />cat ~/.aws/atx/custom/$LATEST_SESSION/logs/execution.log</pre> | App-Developer | 
| Aktivieren Sie Wissenselemente für kontinuierliches Lernen. | Verbessern Sie die Genauigkeit future Transformationen, indem Sie vorgeschlagene Wissenselemente in Ihre persistente Konfiguration aufnehmen. Nach einer Transformation speichert der Agent identifizierte Muster und Zuordnungsregeln in Ihrem lokalen Sitzungsverzeichnis. Führen Sie die folgenden Befehle auf Ihrer Amazon EC2 EC2-Instance aus, um diese erlernten Elemente zu überprüfen und anzuwenden:<pre># List all knowledge items for a specific transformation definition<br />atx custom def list-ki -n <transformation-name><br /><br /># Retrieve the details of a specific knowledge item<br />atx custom def get-ki -n <transformation-name> --id <id><br /><br /># Update the status of a knowledge item (ENABLED or DISABLED)<br />atx custom def update-ki-status -n <transformation-name> --id <id> --status ENABLED<br /><br /># Update the knowledge item configuration to enable auto-approval<br />atx custom def update-ki-config -n <transformation-name> --auto-enabled TRUE</pre> | App-Developer | 

## Fehlerbehebung
<a name="transform-easytrieve-modern-languages-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| *Konfiguration des Eingabe- und Ausgabepfads*Eingabedateien werden nicht gelesen oder Ausgabedateien werden nicht korrekt geschrieben.  | Geben Sie den vollständigen Verzeichnispfad an, in dem die Eingabedateien gespeichert werden, und geben Sie deutlich an, wo die Ausgabe geschrieben werden soll. Stellen Sie sicher, dass die richtigen Zugriffsberechtigungen für diese Verzeichnisse konfiguriert sind. Zu den bewährten Methoden gehören die Verwendung absoluter Pfade anstelle relativer Pfade, um Mehrdeutigkeiten zu vermeiden, und die Überprüfung, ob alle angegebenen Pfade mit den entsprechenden Berechtigungen vorhanden sind. read/write   | 
| *Wiederaufnahme unterbrochener Ausführungen*Die Ausführung wurde unterbrochen oder muss an der Stelle fortgesetzt werden, an der sie unterbrochen wurde | Sie können die Ausführung an der Stelle fortsetzen, an der Sie aufgehört haben, indem Sie die Konversations-ID im CLI-Befehl angeben.Suchen Sie die Konversations-ID in den Protokollen Ihres vorherigen Ausführungsversuchs.   | 
| *Behebung von Speicherbeschränkungen*Während der Ausführung tritt ein Fehler aufgrund unzureichender Speicherkapazität auf. | Sie können darum bitten AWS Transform , die aktuelle JVM-Größe im Arbeitsspeicher gemeinsam zu nutzen und dann die Speicherzuweisung auf der Grundlage dieser Informationen zu erhöhen. Diese Anpassung hilft, größeren Verarbeitungsanforderungen gerecht zu werden.Erwägen Sie, große Aufträge in kleinere Batches aufzuteilen, wenn nach Anpassungen weiterhin Speicherbeschränkungen bestehen.  | 
| *Behebung von Diskrepanzen in der Ausgabedatei*Die Ausgabedateien entsprechen nicht den Erwartungen und AWS Transform weisen darauf hin, dass keine weiteren Änderungen möglich sind. | Geben Sie konkretes Feedback und erläutern Sie technische Gründe, warum die aktuelle Ausgabe falsch ist. Fügen Sie zusätzliche technische oder geschäftliche Unterlagen hinzu, um Ihre Anforderungen zu untermauern. Dieser detaillierte Kontext hilft dabei, den Code zu AWS Transform korrigieren, um die richtigen Ausgabedateien zu generieren. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/transform-easytrieve-modern-languages.html) | 

## Zugehörige Ressourcen
<a name="transform-easytrieve-modern-languages-resources"></a>
+ [AWS Transform benutzerdefinierte Dokumentation](https://docs.aws.amazon.com/transform/latest/userguide/custom.html)
+ [Easytrieve Report Generator 11.6](https://techdocs.broadcom.com/us/en/ca-mainframe-software/devops/ca-easytrieve-report-generator/11-6/getting-started.html)

## Anlagen
<a name="attachments-71f15422-42cb-4c7e-94fa-051a4f130445"></a>

[Um auf zusätzliche Inhalte zuzugreifen, die mit diesem Dokument verknüpft sind, entpacken Sie die folgende Datei: attachment.zip](samples/p-attach/71f15422-42cb-4c7e-94fa-051a4f130445/attachments/attachment.zip)

# Mehr Muster
<a name="mainframe-more-patterns-pattern-list"></a>

**Topics**
+ [Stellen Sie die Security Automations for AWS WAF Solution mithilfe von Terraform bereit](deploy-the-security-automations-for-aws-waf-solution-by-using-terraform.md)
+ [Replizieren Sie Mainframe-Datenbanken mithilfe von Precisely Connect nach AWS](replicate-mainframe-databases-to-aws-by-using-precisely-connect.md)