

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.

# Automatisieren Sie die Replikation von Amazon RDS-Instances auf AWS-Konten
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts"></a>

*Parag Nagwekar und Arun Chandapillai, Amazon Web Services*

## Zusammenfassung
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-summary"></a>

Dieses Muster zeigt Ihnen, wie Sie den Prozess der Replikation, Nachverfolgung und Wiederherstellung Ihrer Amazon Relational Database Service (Amazon RDS) -DB-Instances auf verschiedenen Ebenen mithilfe AWS-Konten AWS Step Functions von und automatisieren können. AWS Lambda Sie können diese Automatisierung verwenden, um eine groß angelegte Replikation von RDS-DB-Instances ohne Leistungseinbußen oder betrieblichen Mehraufwand durchzuführen — unabhängig von der Größe Ihres Unternehmens. Sie können dieses Muster auch verwenden, um Ihr Unternehmen bei der Einhaltung verbindlicher Datenverwaltungsstrategien oder Compliance-Anforderungen zu unterstützen, die eine Replikation und Redundanz Ihrer Daten über verschiedene Länder hinweg erfordern. AWS-Konten AWS-Regionen Die kontenübergreifende Replikation von Amazon RDS-Daten in großem Umfang ist ein ineffizienter und fehleranfälliger manueller Prozess, der kostspielig und zeitaufwändig sein kann. Die Automatisierung in diesem Muster kann Ihnen jedoch dabei helfen, die kontenübergreifende Replikation sicher, effektiv und effizient durchzuführen.

## Voraussetzungen und Einschränkungen
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-prereqs"></a>

**Voraussetzungen**
+ Zwei AWS-Konten
+ Eine RDS-DB-Instance, die in der Quelle läuft AWS-Konto
+ Eine Subnetzgruppe für die RDS-DB-Instance im Ziel AWS-Konto
+ Ein AWS Key Management Service (AWS KMS) -Schlüssel, der in der Quelle erstellt AWS-Konto und für das Zielkonto freigegeben wurde (Weitere Informationen zu Richtliniendetails finden Sie im Abschnitt [Zusätzliche Informationen](#automate-the-replication-of-amazon-rds-instances-across-aws-accounts-additional) dieses Musters.)
+ Ein AWS KMS key im Ziel AWS-Konto , um die Datenbank im Zielkonto zu verschlüsseln

**Einschränkungen**
+ 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/). 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.

**Produktversionen**
+ Python 3.9 (verwenden AWS Lambda)
+ PostgreSQL 11.3, 13.x und 14.x

## Architektur
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-architecture"></a>

**Technologie-Stack**
+ Amazon Relational Database Service (Amazon RDS)
+ Amazon-Simple-Notification-Service (Amazon-SNS)
+ AWS Key Management Service (AWS KMS)
+ AWS Lambda
+ AWS Secrets Manager
+ AWS Step Functions

**Zielarchitektur**

Das folgende Diagramm zeigt eine Architektur für die Verwendung von Step Functions zur Orchestrierung der geplanten On-Demand-Replikation von RDS-DB-Instances von einem Quellkonto (Konto A) zu einem Zielkonto (Konto B).

![Replizieren von Amazon RDS-DB-Instances über Quell- und Zielkonten hinweg mithilfe von Step Functions.](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/6310ad9b-1b1a-4a67-b684-ef605fef3e87/images/001550bb-cf6b-493d-9de9-0229a43753a1.png)


Im Quellkonto (Konto A im Diagramm) führt die Step Functions-Zustandsmaschine Folgendes aus:

1. Erstellt einen Snapshot von der RDS-DB-Instance in Konto A.

1. Kopiert und verschlüsselt den Snapshot mit einem AWS KMS key From-Konto A. Um die Verschlüsselung während der Übertragung sicherzustellen, wird der Snapshot verschlüsselt, unabhängig davon, ob die DB-Instance verschlüsselt ist oder nicht.

1. Teilt den DB-Snapshot mit Konto B, indem Konto B Zugriff auf den Snapshot gewährt wird.

1. Sendet eine Benachrichtigung an das SNS-Thema, und dann ruft das SNS-Thema die Lambda-Funktion in Konto B auf.

Im Zielkonto (Konto B im Diagramm) führt die Lambda-Funktion die Step Functions Functions-Zustandsmaschine aus, um Folgendes zu orchestrieren:

1. Kopiert den gemeinsam genutzten Snapshot von Konto A auf Konto B, wobei zuerst das AWS KMS key Absenderkonto A verwendet wird, um die Daten zu entschlüsseln und dann die Daten mit dem Konto B zu verschlüsseln. AWS KMS key 

1. Liest das Geheimnis aus Secrets Manager, um den Namen der aktuellen DB-Instance zu erfassen.

1. Stellt die DB-Instance aus dem Snapshot mit einem neuen Namen und Standard AWS KMS key für Amazon RDS wieder her.

1. Liest den Endpunkt der neuen Datenbank und aktualisiert das Geheimnis in Secrets Manager mit dem neuen Datenbank-Endpunkt und kennzeichnet dann die vorherige DB-Instance, sodass sie später gelöscht werden kann.

1. Behält die letzten N Instanzen der Datenbanken bei und löscht alle anderen Instanzen.

## Tools
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-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 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.
+ [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 AWS-Regionen zu verwalten.
+ [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.
+ [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 SDK für Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)ist ein Softwareentwicklungskit, mit dem Sie Ihre Python-Anwendung, -Bibliothek oder Ihr Skript integrieren können AWS-Services.
+ 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.
+ [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 Funktionen kombinieren können, um geschäftskritische Anwendungen AWS-Services zu erstellen.

**Code-Repository**

Der Code für dieses Muster ist im GitHub [Crossaccount RDS Replication](https://github.com/aws-samples/aws-rds-crossaccount-replication) Repository verfügbar.

## Epen
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-epics"></a>

### Automatisieren Sie die Replikation von RDS-DB-Instances AWS-Konten mit einem einzigen Klick
<a name="automate-the-replication-of-rds-db-instances-across-aws-accounts-with-a-single-click"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Stellen Sie den CloudFormation Stack im Quellkonto bereit. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Cloud-Administrator, Cloud-Architekt | 
| Stellen Sie den CloudFormation Stack im Zielkonto bereit. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Cloud-Architekt, DevOps Ingenieur, Cloud-Administrator | 
| Überprüfen Sie die Erstellung der RDS-DB-Instance im Zielkonto. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Cloud-Administrator, Cloud-Architekt, DevOps Ingenieur | 
| Abonnieren Sie die Lambda-Funktion für das SNS-Thema. | Sie müssen die folgenden Befehle AWS Command Line Interface (AWS CLI) ausführen, um die Lambda-Funktion im Zielkonto (Konto B) für das SNS-Thema im Quellkonto (Konto A) zu abonnieren.<br />Führen Sie in Konto A den folgenden Befehl aus:<pre>aws sns add-permission \<br />--label lambda-access --aws-account-id <DestinationAccount> \<br />--topic-arn <Arn of SNSTopic > \<br />--action-name Subscribe ListSubscriptionsByTopic </pre><br />Führen Sie in Konto B den folgenden Befehl aus:<pre>aws lambda add-permission \<br />--function-name <Name of InvokeStepFunction> \<br />--source-arn <Arn of SNSTopic > \<br />--statement-id function-with-sns \<br />--action lambda:InvokeFunction \<br />--principal sns.amazonaws.com</pre><br />Führen Sie in Konto B den folgenden Befehl aus:<pre>aws sns subscribe \<br />--protocol "lambda" \<br />--topic-arn <Arn of SNSTopic> \<br />--notification-endpoint <Arn of InvokeStepFunction></pre> | Cloud-Administrator, Cloud-Architekt, DBA | 
| Synchronisieren Sie die RDS-DB-Instance vom Quellkonto mit dem Zielkonto. | Initiieren Sie die On-Demand-Datenbankreplikation, indem Sie die Step Functions-Zustandsmaschine im Quellkonto starten.[See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html)Es gibt einen Scheduler, mit dem Sie die Replikation automatisch und planmäßig ausführen können. Der Scheduler ist jedoch standardmäßig ausgeschaltet. Den Namen der CloudWatch Amazon-Regel für den Scheduler finden Sie auf der Registerkarte **Ressourcen** des CloudFormation Stacks im Zielkonto. Anweisungen zum Ändern der CloudWatch Ereignisregel finden Sie in der Dokumentation unter [Löschen oder Deaktivieren einer CloudWatch Ereignisregel](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Delete-or-Disable-Rule.html). CloudWatch  | Cloud-Architekt, DevOps Ingenieur, Cloud-Administrator | 
| Führen Sie bei Bedarf ein Rollback Ihrer Datenbank auf eine der vorherigen Kopien durch. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/automate-the-replication-of-amazon-rds-instances-across-aws-accounts.html) | Cloud-Administrator, DBA, Ingenieur DevOps  | 

## Zugehörige Ressourcen
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-resources"></a>
+ [Regionsübergreifende Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.CrossRegionReadReplicas.html) (Amazon RDS-Dokumentation)
+ [Blaue/grüne Bereitstellungen](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RDS_Fea_Regions_DB-eng.Feature.BlueGreenDeployments.html) (Amazon RDS-Dokumentation)

## Zusätzliche Informationen
<a name="automate-the-replication-of-amazon-rds-instances-across-aws-accounts-additional"></a>

Sie können die folgende Beispielrichtlinie verwenden, um Ihre AWS KMS key Across gemeinsam zu nutzen. AWS-Konten

```
{
    "Version": "2012-10-17",		 	 	 
    "Id": "cross-account-rds-kms-key",
    "Statement": [
        {
            "Sid": "Enable user permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<SourceAccount>:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow administration of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<DestinationAccount>:root"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::<DestinationAccount>:root",
                    "arn:aws:iam::<SourceAccount>:root"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey",
                "kms:CreateGrant"
            ],
            "Resource": "*"
        }
    ]
}
```