Multi-AZ-DB-Instance-Bereitstellungen - Amazon Relational Database Service

Multi-AZ-DB-Instance-Bereitstellungen

Amazon RDS bietet Hochverfügbarkeit und Failover-Unterstützung für DB-Instances, die Multi-AZ-Bereitstellungen mit einer einzelnen Standby-DB-Instance verwenden. Diese Art der Bereitstellung wird als Multi-AZ-DB-Instance-Bereitstellung bezeichnet. Amazon RDS verwendet mehrere verschiedene Technologien, um Failover-Unterstützung bereitzustellen. Multi-AZ-Bereitstellungen für MariaDB-, MySQL-, Oracle- und PostgreSQL-DB-Instances verwenden die Failover-Technologie von Amazon. DB-Instances von Microsoft SQL Server verwenden die SQL Server-Datenbankspiegelung oder Always On-Verfügbarkeitsgruppen. Informationen zur Unterstützung von SQL Server-Versionen für Multi-AZ finden Sie unter Multi-AZ-Bereitstellungen für Amazon RDS for Microsoft SQL Server.

Bei einer Multi-AZ-Bereitstellung einer DB-Instance sorgt Amazon RDS für eine automatische Bereitstellung und Verwaltung eines synchronen Standby-Replikats in einer anderen Availability Zone. Die primäre DB-Instance wird synchron über Availability Zones hinweg auf ein Standby-Replikat repliziert, um Datenredundanz bereitzustellen und Latenzspitzen während Systemsicherungen zu minimieren. Wenn Sie eine DB-Instance mit hoher Verfügbarkeit ausführen, kann dies die Verfügbarkeit bei geplanten Systemwartungen verbessern. Sie kann auch Ihre Datenbanken bei Ausfällen der DB-Instance und bei Nichtverfügbarkeit von Availability Zones schützen. Weitere Informationen über Availability Zones finden Sie unter Regionen, Availability Zones und Local Zones.

Anmerkung

Die Option für hohe Verfügbarkeit ist keine Skalierungslösung für schreibgeschützte Szenarien. Sie können kein Standby-Replikat verwenden, um Leseverkehr bereitzustellen. Um schreibgeschützten Datenverkehr bereitzustellen, verwenden Sie stattdessen einen Multi-AZ-DB-Cluster oder ein Lesereplikat. Weitere Informationen zu Multi-AZ-DB-Clustern finden Sie unter Multi-AZ-DB-Cluster-Bereitstellungen. Weitere Informationen über Lesereplikate finden Sie unter Arbeiten mit Lesereplikaten.


			Anwendungsszenario für hohe Verfügbarkeit

Sie können über die RDS-Konsole eine Multi-AZ-DB-Instance-Bereitstellung erstellen, indem Sie ganz einfach bei der Erstellung einer DB-Instance die Option „Multi-AZ“ angeben. Sie können über die Konsole bestehende DB-Instances in Multi-AZ-Bereitstellungen für DB-Instances umwandeln, indem Sie die DB-Instance ändern und die Option „Multi-AZ“ angeben. Sie können auch eine Multi-AZ-DB-Instance-Bereitstellung mit der AWS CLI oder der Amazon-RDS-API angeben. Verwenden Sie den CLI-Befehl create-db-instance oder modify-db-instance oder die API-Operation CreateDBInstance oder ModifyDBInstance.

In der RDS-Konsole wird die Availability Zone des Standby-Replikats angezeigt (auch als sekundäre AZ bezeichnet). Sie können auch den CLI-Befehl describe-db-instances oder die API-Operation DescribeDBInstances verwenden, um die sekundäre AZ zu suchen.

DB-Instances, die Multi-AZ-DB-Instance-Bereitstellungen verwenden, können im Vergleich zu einer Single-AZ-Bereitstellung eine höhere Schreib- und Commit-Latenz aufweisen. Dies kann aufgrund der auftretenden synchronen Datenreplikation geschehen. Die Latenz kann sich entsprechend ändern, wenn Ihre Bereitstellung ein Failover auf ein Standby-Replikat durchführt, obwohl AWS selbst mit einer Netzwerkanbindung zwischen Availability Zones mit einer geringen Latenz konzipiert ist. Für Produktionsworkloads empfehlen wir die Verwendung von bereitgestellten IOPS (Eingabe-/Ausgabevorgänge pro Sekunde) für eine schnelle, konsistente Leistung. Weitere Informationen zu DB-Instance-Klassen finden Sie unter DB-Instance-Klassen.

Ändern einer DB-Instance zu einer Multi-AZ-DB-Instance-Bereitstellung

Wenn Sie eine DB-Instance in einer Single-AZ-Bereitstellung haben und diese in eine Multi-AZ-Bereitstellung für Instances ändern (für andere Engines als Amazon Aurora), führt Amazon RDS mehrere Schritte aus. Zuerst erstellt Amazon RDS einen Snapshot von der primären DB-Instance aus Ihrer Bereitstellung und stellt dann diesen Snapshot in einer anderen Availability Zone zur Verfügung. Dann richtet Amazon RDS eine synchrone Replikation zwischen Ihrer primären DB-Instance und der neuen DB-Instance ein.

Informationen zum Ändern einer DB-Instance finden Sie unter Ändern einer Amazon RDS-DB-Instance.

Wichtig

Damit werden Ausfallzeiten bei der Umwandlung von Single-AZ in Multi-AZ vermieden, allerdings kommt es während und nach der Konvertierung in Multi-AZ zu Leistungseinbußen. Diese Auswirkung kann bei Workloads erheblich sein, die empfindlich auf Schreiblatenz reagieren.

Um Multi-AZ für eine DB-Instance zu aktivieren, erstellt RDS einen Snapshot des Amazon-EBS-Volumes der primären DB-Instance und stellt ihn auf dem neu erstellten Standby-Replikat wieder her. RDS synchronisiert dann beide Volumes. Aus vorhandenen EBS-Snapshots erstellte neue Volumes werden langsam im Hintergrund geladen. Diese Funktion ermöglicht die schnelle Wiederherstellung großer Volumes aus einem Snapshot, kann jedoch während der Änderung und nach Abschluss der Änderung zu Latenzen führen. Weitere Informationen finden Sie unter Wiederherstellen eines Amazon EBS-Volumes aus einem Snapshot in der Amazon EC2-Dokumentation.

Damit die Auswirkungen auf latenzempfindliche Workloads reduziert werden, empfehlen wir, während eines Wartungsfensters oder zu einem Zeitpunkt reduzierter Arbeitslast zuerst die DB-Instance so zu ändern, dass sie den bereitgestellten IOPS-Speichertyp verwendet. Legen Sie die Menge an bereitgestelltem IOPS-Speicher wesentlich höher fest, als Ihre Workload erfordert. Leiten Sie als Nächstes den Änderungsvorgang für die Multi-AZ-Bereitstellung ein. Nach Abschluss des Vorgangs führen Sie einen Failover auf die neu erstellte AZ durch, wo Sie dann vollständige Tabellenscanabfragen ausführen können, um das Laden der erforderlichen Daten in die neuen Speicher-Volumes zu beschleunigen.

Wenn Sie die Leistungsauswirkungen auf die DB-Instance vermeiden möchten, die derzeit die sensible Workload verarbeitet, erstellen Sie ein Read Replica, aktivieren Backups auf der Read Replica, ändern die Read Replica in Multi-AZ, führen Abfragen aus, die die Daten in die Volumes der Read Replica laden (auf beiden AZs) und reduzieren dann die Workload auf die Read Replica.

Nach Abschluss der Änderungen löst Amazon RDS ein Ereignis (RDS-EVENT-0025) aus, das anzeigt, dass der Prozess abgeschlossen ist. Sie können Amazon-RDS-Ereignisse überwachen. Weitere Informationen über -Ereignisse finden Sie unter Arbeiten mit Amazon-RDS-Ereignisbenachrichtigungen.

Failover-Prozess bei Amazon RDS

Wenn ein geplanter oder ungeplanter Ausfall Ihrer DB-Instance durch einen Infrastrukturdefekt resultiert, wechselt Amazon RDS automatisch zu einem Standby-Replikat in einer anderen Availability Zone, wenn Sie Multi-AZ aktiviert haben. Die Dauer, bis der Failover-Prozess für die Instance abgeschlossen ist, hängt von der Datenbankaktivität sowie von anderen Bedingungen zu dem Zeitpunkt ab, an dem die primäre DB-Instance ausgefallen ist. Der Failover-Prozess dauert normalerweise 60–120 Sekunden. Diese Failover-Dauer kann sich verlängern, wenn umfangreiche Transaktionen oder zeitintensive Wiederherstellungsprozesse durchgeführt werden. Wenn der eigentliche Failover-Prozess abgeschlossen ist, kann es noch einmal etwas dauern, bis die RDS-Konsole die Daten für die neue Availability Zone geladen hat.

Anmerkung

Sie können ein Failover manuell erzwingen, wenn Sie eine DB-Instance neu starten. Weitere Informationen finden Sie unter Neustarten einer DB-Instance.

Amazon RDS führt den Failover-Prozess automatisch durch, sodass der Datenbankbetrieb so schnell wie möglich und ohne Verwaltungseingriff wieder aufgenommen werden kann. Die primäre DB-Instance schaltet automatisch auf das Standby-Replikat um, wenn eine der in der folgenden Tabelle beschriebenen Bedingungen eintritt: Sie können diese Failover-Gründe im Ereignisprotokoll einsehen.

Failover-Grund Beschreibung
Das Betriebssystem, das der RDS-Datenbank-Instance zugrunde liegt, wird offline gepatcht.

Ein Failover wurde während des Wartungsfensters für einen Betriebssystem-Patch oder ein Sicherheitsupdate ausgelöst.

Weitere Informationen finden Sie unter Warten einer DB-Instance.

Der primäre Host der RDS-Multi-AZ-Instance ist fehlerhaft. Die Multi-AZ-DB-Instance-Bereitstellung hat eine beeinträchtigte primäre DB-Instance erkannt und ein Failover eingeleitet.
Der primäre Host der RDS-Multi-AZ-Instance ist aufgrund des Verlusts der Netzwerkverbindung nicht erreichbar.

Die RDS-Überwachung hat einen Fehler bei der Erreichbarkeit des Netzwerks für die primäre DB-Instance festgestellt und ein Failover ausgelöst.

Die RDS-Instance wurde vom Kunden geändert.

Eine Änderung der RDS-DB-Instance hat ein Failover ausgelöst.

Weitere Informationen finden Sie unter Ändern einer Amazon RDS-DB-Instance.

Die primäre RDS-Multi-AZ-Instance ist beschäftigt und reagiert nicht.

Die primäre DB-Instance reagiert nicht. Wir empfehlen Folgendes:

Weitere Informationen zu diesen Empfehlungen finden Sie unter Übersicht über die Überwachung von Metriken in Amazon RDS und Bewährte Methoden für Amazon RDS.

Das Speichervolumen, das dem primären Host der RDS-Multi-AZ-Instance zugrunde liegt, ist ausgefallen. Die Multi-AZ-DB-Instance-Bereitstellung hat ein Speicherproblem der primären DB-Instance erkannt und ein Failover eingeleitet.
Der Benutzer hat ein Failover der DB-Instance angefordert.

Sie haben die DB-Instance neu gestartet und Neustart mit Failover gewählt.

Weitere Informationen finden Sie unter Neustarten einer DB-Instance.

Um festzustellen, ob Ihre Multi-AZ-DB-Instance erfolgreich ausgeführt wurde, können Sie Folgendes tun:

  • Sie können Benachrichtigungen per E-Mail oder per SMS für DB-Ereignisse abonnieren, bei denen ein Failover ausgelöst wird. Weitere Informationen über -Ereignisse finden Sie unter Arbeiten mit Amazon-RDS-Ereignisbenachrichtigungen.

  • Sie können Ihre DB-Ereignisse über die RDS-Konsole oder mittels API-Operationen anzeigen.

  • Zeigen Sie den aktuellen Status Ihrer Multi-AZ-DB-Instance-Bereitstellung mithilfe der RDS-Konsole oder API-Vorgänge an.

Informationen zur empfohlenen Vorgehensweise bei Failover-Situationen, zur Verringerung der Wiederherstellungsdauer und zu bewährten Methoden für Amazon RDS finden Sie unter Bewährte Methoden für Amazon RDS.

Festlegen des JVM-TTL-Werts für DNS-Name-Lookups

Bei dem Failover-Prozess wird der DNS-Datensatz (Domain Name System) der DB-Instance so geändert, dass er auf die Standby-DB-Instance verweist. Als Ergebnis müssen alle bestehenden Verbindungen zu Ihrer DB-Instance neu hergestellt werden. In einer JVM-Umgebung (Java Virtual Machine) müssen Sie aufgrund der besonderen Funktionsweise der Zwischenspeicherung von DNS-Informationen in Java möglicherweise die JVM-Einstellungen rekonfigurieren.

Die JVM speichert DNS-Name-Lookups zwischen. Wenn die JVM einen Hostnamen zu einer IP-Adresse auflöst, speichert sie die IP-Adresse für einen bestimmten Zeitraum zwischen. Diese Zeit ist als Time-to-Live (TTL, Lebensdauer) bekannt.

Da AWS-Ressourcen DNS-Namenseinträge nutzen, die sich gelegentlich ändern, empfehlen wir, dass Sie Ihre JVM mit einem TTL-Wert von maximal 60 Sekunden konfigurieren. Auf diese Weise wird bei Änderung der IP-Adresse einer Ressource sichergestellt, dass Ihre Anwendung die neue IP-Adresse der Ressource durch erneute Abfrage des DNS abrufen und nutzen kann.

Bei einigen Java-Konfigurationen ist die JVM-Standard-TTL so festgelegt, dass DNS-Einträge nie aktualisiert werden, bis die JVM neu gestartet wird. Ändert sich die IP-Adresse einer AWS-Ressource also, während Ihre Anwendung läuft, kann die Anwendung die Ressource erst wieder nutzen, nachdem Sie die JVM manuell neu starten und die zwischengespeicherten IP-Informationen aktualisiert wurden. In diesem Fall ist es wichtig, die TTL der JVM so einzustellen, dass sie die zwischengespeicherten IP-Daten von Zeit zu Zeit aktualisiert.

Anmerkung

Die Standard-TTL kann je nach Version Ihrer JVM und abhängig davon, ob ein Sicherheits-Manager installiert ist, unterschiedlich sein. Viele JVMs bieten eine Standard-TTL von weniger als 60 Sekunden. Wenn Sie eine solche JVM und keinen Sicherheits-Manager nutzen, können Sie den Rest dieses Themas ignorieren. Weitere Informationen zu Sicherheits-Managern in Oracle finden Sie unter The Security Manager in der Oracle-Dokumentation.

Um die TTL der JVM zu ändern, legen Sie den Eigenschaftswert networkaddress.cache.ttl fest. Nutzen Sie dazu eine der folgenden Methoden je nach Ihrem Bedarf:

  • Legen Sie in der networkaddress.cache.ttl-Datei $JAVA_HOME/jre/lib/security/java.security fest, um den Eigenschaftswert global für alle Anwendungen festzulegen, die die JVM verwenden.

    networkaddress.cache.ttl=60
  • Um die Eigenschaft nur für Ihre Anwendung lokal festzulegen, legen Sie networkaddress.cache.ttl im Initialisierungscode Ihrer Anwendung fest, bevor Netzwerkverbindungen hergestellt werden.

    java.security.Security.setProperty("networkaddress.cache.ttl" , "60");