Schnelle regionsübergreifende Disaster Recovery und globale Lesevorgänge mit geringer Latenz

mit Amazon Aurora Global Database

In diesem Tutorial werden Sie erfahren, wie Sie eine Amazon Aurora Global Database-Bereitstellung erstellen, die mehrere AWS-Regionen umfasst und Ihre Daten ohne Auswirkungen auf die Leistung repliziert. Aurora Global Database bietet Disaster Recovery nach regionsweiten Ausfällen und ermöglicht globale Lesevorgänge mit niedriger Latenz.

Amazon Aurora ist eine MySQL- und PostgreSQL-kompatible relationale Datenbank, die die Leistung und Verfügbarkeit herkömmlicher Unternehmensdatenbanken mit der Einfachheit und Kosteneffizienz von Open-Source-Datenbanken kombiniert.

Eine Aurora Global Database besteht aus einer primären AWS-Region, in der Ihre Daten verwaltet werden, sowie mehreren schreibgeschützten sekundären AWS-Regionen, in denen die Daten repliziert werden. Ihre Schreibvorgänge werden in der Primärdatenbank durchgeführt. Sie können jedoch aus jeder Region lesen und profitieren dabei von einer geringen Latenz.

In diesem Tutorial wird Amazon Aurora mit MySQL-Kompatibilität verwendet. Das Tutorial befindet sich nicht innerhalb des kostenlosen Kontingents und kostet weniger als 1 USD, sofern Sie die Schritte im Tutorial befolgen und Ihre Ressourcen am Ende des Lernprogramms löschen.

Voraussetzungen

Ein Amazon Aurora DB-Cluster besteht aus einer oder mehreren DB-Instances und einem Cluster-Volume, welches die Daten für diese DB-Instances verwaltet. Ein Aurora-Cluster-Volume ist ein virtuelles Datenbankspeicher-Volume, das sich über mehrere Verfügbarkeitszonen erstreckt, wobei jede Verfügbarkeitszone über eine Kopie der DB-Clusterdaten verfügt. Zwei Arten von DB-Instances bilden einen Aurora DB-Cluster: eine primäre DB-Instance, welche Lese- und Schreibvorgänge unterstützt, sowie eine Aurora Replica, die eine Verbindung zu demselben Speichervolumen wie die primäre DB-Instance herstellt und ausschließlich Lesevorgänge unterstützt. Jeder Aurora DB-Cluster kann bis zu 15 Aurora Replicas in separaten Verfügbarkeitszonen besitzen. Aurora führet automatisch einen Failover zu einem Aurora-Replikat aus, falls die primäre DB-Instance nicht mehr verfügbar ist.

In diesem Tutorial werden Sie eine Aurora Global Database erstellen – mit einem primären Cluster in einer Region und einem sekundären Cluster in einer anderen Region. Sie können sich aussuchen, welche Regionen Sie verwenden möchten. Es wird empfohlen, dass Sie in jeder der Regionen, die Sie verwenden, eine Anwendung besitzen. Wenn Ihre Aurora Global Database beispielsweise einen primären Cluster in us-east-1 und einen sekundären Cluster in eu-west-3 hat, sollten Sie eine Instance in us-east-1 und eine weitere in eu-west-3 besitzen.

Wenn Sie Zeit sparen möchten, können Sie für jede dieser Regionen eine Sicherheitsgruppe erstellen, die eingehende Verbindungen von Ihren Instances zulässt. Beispielsweise können Sie eine Sicherheitsgruppe mit einer eingehenden Regel vom Typ MYSQL/Aurora erstellen, welche TCP-Verbindungen auf Port 3306 über die Sicherheitsgruppe Ihrer Instances zulässt.

Zu guter Letzt benötigen Sie zum Testen Ihrer Aurora Global Database (siehe Schritt 8) einen MySQL-Client. Wenn auf Ihren Anwendungs-Instances Amazon Linux ausgeführt wird, kann die Installation eines MySQL-Clients so einfach sein wie die Ausführung von „sudo yum install mysql“. Der genaue Befehl hängt allerdings vom Betriebssystem ab, das Sie ausführen. Wenn Sie Windows verwenden, können Sie stattdessen die MySQL-Workbench herunterladen.

Über dieses Tutorial
Zeit 10 Minuten                                           
Kosten Weniger als 1 USD
Anwendungsfall Datenbanken
Produkte Amazon Aurora, Amazon RDS
Zielgruppe Datenbankadministratoren, Entwickler
Level Fortgeschritten
Letzte Aktualisierung 3. Juni 2019

Schritt 1: Zugriff auf die Amazon RDS-Konsole

1.1 — Öffnen Sie einen Browser und navigieren Sie zur Amazon RDS-Konsole. Wenn Sie bereits über ein AWS-Konto verfügen, melden Sie sich bei der Konsole an. Erstellen Sie andernfalls ein neues AWS-Konto, um loszulegen.

1.2 — Wählen Sie oben rechts die Region aus, in der Sie den primären Aurora DB-Cluster starten möchten. Für die Zwecke dieses Tutorials verwenden wir us-east-1 als Primärregion und eu-west-1 als Sekundärregion.

1.3 — Klicken Sie im Amazon Aurora-Fenster auf „Datenbank erstellen“.

1.4 — Scrollen Sie nach unten und klicken Sie im Aurora Global Database-Fenster auf „Jetzt testen“. Wenn die Option „Jetzt ausprobieren“ nicht angezeigt wird, klicken Sie hier.

Schritt 2: Engine-Optionen

2.1 — Wählen Sie unter Engine-Typ „Amazon Aurora“ aus.

2.2 — Wählen Sie unter Edition „Amazon Aurora mit MySQL-Kompatibilität“.

2.3 — Wählen Sie unter Version die neueste MySQL-Version aus.

2.4 — Wählen Sie unter Datenbank-Standort „Global“ aus.

2.5 — Wählen Sie die Vorlage „Produktion“.

Schritt 3: Globale Datenbank-Einstellungen

3.1 — Geben Sie als globale Datenbankkennung „global-database-1“ ein.

Schritt 4: Einstellungen für die Primärregion

4.1 — Wählen Sie für die DB-Instance-Größe eine große Instance (die mit .large endet).

4.2 — Wählen Sie für Verfügbarkeit und Haltbarkeit „Keine Aurora Replica erstellen“.

Beachten Sie, dass für Produktionsumgebungen empfohlen wird, eine ein Aurora Replica zu haben, da Sie damit Lesevorgänge skalieren und automatische Failover in derselben Region wie Ihre Primärdatenbank durchführen können. In diesem Tutorial fügen wir keine Aurora Replica hinzu, damit die Übung einfach bleibt.

Schritt 5: Anbindung

5.1 — Wählen Sie die VPC aus, in der Sie die Datenbank erstellen möchten.

Beachten Sie, dass eine einmal erstellte Datenbank nicht mehr auf eine andere VPC migriert werden kann.

5.2 — Klicken Sie auf „Zusätzliche Konnektivitätskonfiguration“.

5.3 — Wählen Sie den Standardwert für die Subnetzgruppe.

5.4 — Wählen Sie unter „Öffentlich zugänglich“ die Option „Nein“.

Dies bedeutet, dass Sie von einer EC2-Instance innerhalb derselben VPC aus eine Verbindung zur Datenbank herstellen müssen.

5.5 — Wählen Sie in der VPC-Sicherheitsgruppe „Neu erstellen“ aus. Wenn Sie zufällig eine Sicherheitsgruppe haben, die eingehende TCP-Verbindungen an Port 3306 zulässt, können Sie diese stattdessen auswählen.

5.6 — Geben Sie als Namen der neuen VPC-Sicherheitsgruppe „globale Datenbank“ ein.

5.7 — Belassen Sie den Standardwert für den Datenbankport.

Schritt 6: Zusätzliche Konfiguration

6.1 — Behalten Sie die Standardwerte für Datenbankoptionen, Sicherung, Überwachung, Protokollexporte, Wartung und Löschschutz bei.

6.2 — Klicken Sie auf „Datenbank erstellen“.

Während der Erstellung der Instances wird ein Banner angezeigt, in dem erläutert wird, wie Sie Ihre Anmeldeinformationen erhalten. Dies ist eine gute Gelegenheit, um die Anmeldeinformationen irgendwo abzuspeichern, da dies das einzige Mal ist, wenn Sie das Passwort anzeigen können.

6.3 — Klicken Sie auf „Anmeldedaten anzeigen“.

6.4 — Speichern Sie Benutzername und Passwort.

Schritt 7: Eine sekundäre Region hinzufügen

7.1 — Wählen Sie „global-database-1“ aus.

7.2 — Klicken Sie auf „Aktionen > Region hinzufügen”.

7.3 — Wählen Sie aus der Dropdown-Liste eine Region aus.

7.4 — Wiederholen Sie die Schritte 4.1 bis 5.7.

7.5 — Klicken Sie auf „Region hinzufügen“.

Sobald die Datenbanken verfügbar sind, fahren Sie mit Schritt 8 fort.

Schritt 8: Testen Sie Ihre Aurora Global Database

8.1 — Klicken Sie auf Ihre Primärdatenbank.

8.2 — Kopieren Sie den Schreiber-Endpunkt.

Öffnen Sie zwei Terminalfenster, melden Sie sich bei Ihren Instances in der primären und sekundären Region an und stellen Sie mit dem MySQL-Befehlszeilenclient eine Verbindung zu den Datenbanken her.

Sie können jetzt eine Datenbank und eine Tabelle erstellen sowie einige Datensätze schreiben. Alles, was Sie in den primären Cluster schreiben, wird im sekundären Cluster repliziert.

8.3 — Stellen Sie eine Verbindung zu Ihrer Primärdatenbank her:

$ mysql -h endpoint -P 3306 -u admin -p

Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie das Passwort ein, das Sie in Schritt 6.6 gespeichert haben.

8.4 — Erstellen Sie eine Datenbank und schreiben Sie einige Daten.

mysql> CREATE database tutorial;
Query OK, 1 row affected (0.01 sec)

Zu diesem Zeitpunkt können Sie die Turotial-Datenbank verwenden, Tabellen erstellen und einige Datensätze hinzufügen.

8.5 — Gehen Sie zur sekundären Region.

8.6 — Klicken Sie auf Ihre sekundäre Datenbank.

8.7 — Kopieren Sie den Leser-Endpunkt.

8.8 — Stellen Sie eine Verbindung zu Ihrer sekundären Datenbank her:

$ mysql -h endpoint -P 3306 -u admin -p

Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie das Passwort ein, das Sie in Schritt 6.6 gespeichert haben.

8.9 — Lesen Sie einige Daten:

mysql> USE tutorial;
Datenbank geändert

Jetzt können Sie überprüfen, ob die Datenbank in die sekundäre Datenbank repliziert wurde. Wenn Sie eine Tabelle erstellt haben, können Sie in den primären Cluster schreiben und die Daten aus dem sekundären Cluster lesen.

Schritt 9: Failover in eine sekundäre Region

Während der standardmäßige Aurora-Cluster Ihnen Failover-Funktionen innerhalb der Region bietet, können Sie mit Aurora Global Database ein Failover auf einen sekundären Cluster in einer anderen Region durchführen. Dies bedeutet, dass Ihre Datenbank auch dann überlebt, wenn eine ganze Region nicht mehr verfügbar ist.

Um ein Failover für eine Aurora Global Database durchzuführen, muss der sekundäre Cluster aus der ursprünglichen globalen Datenbank entfernt und somit wieder in einen regionalen Cluster mit vollständigen Lese- und Schreibfunktionen umgewandelt werden. Anschließend wird er als primärer Cluster in einer neuen Aurora Global Database verwendet.

Sie können ein Failover manuell durchführen, indem Sie die folgenden Anweisungen befolgen.

9.1 — Stoppen Sie das Schreiben in die Primärdatenbank.

9.2 — Wählen Sie den sekundären Cluster aus.

9.3 — Klicken Sie auf „Aktionen > Aus Global entfernen“.

9.4 — Bestätigen Sie mit „Entfernen und hochstufen“.

9.5 — Konfigurieren Sie Ihre Anwendung so, dass sie in den neu hochgestuften Cluster schreibt.

9.6 — Wählen Sie in der sekundären Region den regionalen Cluster aus.

9.7 — Klicken Sie auf „Aktionen > Globale Datenbank erstellen“.

9.8 — Wählen Sie aus der Dropdown-Liste eine Region aus.

9.9 — Wiederholen Sie die Schritte 4.1 bis 5.7.

Schritt 10: Bereinigung

Zum Abschluss dieses Tutorials werden Sie Ihre Aurora Global Database löschen. Sie können sie behalten, aber denken Sie daran, dass Ihnen dadurch Gebühren entstehen.

Um Ihre Aurora Global Database zu löschen, rufen Sie das RDS-Dashboard auf und befolgen Sie die folgenden Anweisungen:

10.1 — Wählen Sie im linken Bereich „Datenbanken“.

Hier finden Sie eine Liste aller Ihrer Aurora-DB-Cluster.

10.2 — Wählen Sie eine globale Datenbank-Instance aus.

10.3 — Klicken Sie auf „Aktionen > Löschen“.

10.4 — Sie werden gefragt, ob Sie eine abschließende Sicherung erstellen möchten. Dies wird normalerweise empfohlen, ist jedoch für dieses Tutorial nicht notwendig. Wählen Sie „Nein“ aus und klicken Sie auf „Löschen“.

10.5 — Wählen Sie einen globalen Datenbank-Cluster aus.

10.6 — Klicken Sie auf „Aktionen > Aus Global entfernen“.

10.7 — Bestätigen Sie durch Klicken auf „Aus Global entfernen“.

10.8 — Wählen Sie den regionalen Datenbank-Cluster aus.

10.9 — Klicken Sie auf „Actions > Delete“.

10.10 — Sie werden gefragt, ob Sie einen abschließenden Snapshot erstellen möchten. Dies wird normalerweise empfohlen, ist jedoch für dieses Tutorial nicht notwendig. Wählen Sie „Nein“ aus und klicken Sie auf „DB-Cluster löschen“.

10.11 — Wechseln Sie zur sekundären Region und führen Sie die Schritte 10.1 bis 10.9 aus.

10.12 — Wählen Sie die globale Datenbank aus.

10.13 — Klicken Sie auf „Aktionen > Löschen“.

10.14 — Bestätigen Sie mit der Eingabe von „delete me“ und klicken Sie auf „Löschen“.

Der Status Ihres Clusters ändert sich zu „wird gelöscht“.

Herzlichen Glückwunsch

Sie haben eine Aurora Global Database mit regionaler Replikation erstellt. Sie haben gelernt, wie Lesevorgänge auf andere Regionen skaliert werden, um von einer geringeren Latenz zu profitieren. Außerdem haben Sie ein Failover auf eine sekundäre Region durchgeführt.

War dieses Tutorial hilfreich?