Amazon DocumentDB Hochverfügbarkeit und Replikation - Amazon DocumentDB

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.

Amazon DocumentDB Hochverfügbarkeit und Replikation

Sie können Hochverfügbarkeit und Leseskalierung in Amazon DocumentDB (mit MongoDB-Kompatibilität) erreichen, indem Sie Replica-Instances verwenden. Ein einzelner Amazon DocumentDB-Cluster unterstützt eine einzelne primäre Instance und bis zu 15 Replikat-Instances. Diese Instances können über mehrere Availability Zones innerhalb der Cluster-Region verteilt werden. Die primäre Instance akzeptiert Lese- und Schreibverkehr, und Replikat-Instances akzeptieren nur Leseanforderungen.

Das Cluster-Volume besteht aus mehreren Kopien der Daten für den Cluster. Die Daten im Cluster-Volume werden jedoch als einzelnes logisches Volume für die primäre Instance und für Amazon DocumentDB DocumentDB-Replikate im Cluster dargestellt. Replikat-Instances sind „Eventually Consistent“. Sie geben Abfrageergebnisse mit minimaler Replikatverzögerung zurück – im Normalfall beträgt die Verzögerung weniger als 100 Millisekunden, nachdem die primäre Instance eine Aktualisierung geschrieben hat. Die Replica-Verzögerung variiert in Abhängigkeit vom Veränderungsgrad in der Datenbank. Das heißt, in Zeiten, in denen eine große Anzahl von Schreiboperationen für die Datenbank durchgeführt wird, kann es zu einer Erhöhung der Replikationsverzögerung kommen.

Skalierung von Lesevorgängen

Amazon DocumentDB DocumentDB-Replikate eignen sich gut für die Leseskalierung, da sie ausschließlich für Lesevorgänge auf Ihrem Cluster-Volume vorgesehen sind. Schreibvorgänge werden von der primären Instance verwaltet. Das Cluster-Volume wird von allen Instances in Ihrem Cluster gemeinsam genutzt. Daher müssen Sie nicht für jedes Amazon DocumentDB DocumentDB-Replikat eine Kopie der Daten replizieren und verwalten.

Hohe Verfügbarkeit

Wenn Sie einen Amazon DocumentDB-Cluster erstellen, stellt Amazon DocumentDB abhängig von der Anzahl der Availability Zones in der Subnetzgruppe (es müssen mindestens zwei vorhanden sein) Instances in den Availability Zones bereit. Wenn Sie Instances im Cluster erstellen, verteilt Amazon DocumentDB die Instances automatisch auf die Availability Zones in einer Subnetzgruppe, um den Cluster auszugleichen. Diese Vorgehensweise verhindert auch, dass sich alle Instances in derselben Availability Zone befinden.

Beispiel

Stellen Sie sich zur Veranschaulichung ein Beispiel vor, in dem Sie einen Cluster erstellen, der über eine Subnetzgruppe mit drei Availability Zones verfügt: AZ1, und. AZ2AZ3

Wenn die erste Instance im Cluster erstellt wird, ist diese die primäre Instance und befindet sich in einer der Availability Zones. In diesem Beispiel ist es in AZ1. Die zweite erstellte Instanz ist eine Replikatinstanz und befindet sich beispielsweise AZ2in einer der beiden anderen Availability Zones. Die dritte erstellte Instanz ist eine Replikatinstanz und befindet sich in der verbleibenden Availability Zone,. AZ3 Wenn Sie mehrere Instances erstellen, werden diese über die Availability Zones verteilt, sodass der Cluster ausbalanciert ist.

Wenn in der primären Instanz (AZ1) ein Fehler auftritt, wird ein Failover ausgelöst und eines der vorhandenen Replikate wird zur primären Instanz heraufgestuft. Wenn die alte Primäranlage wiederhergestellt wird, wird sie zu einem Replikat in derselben Availability Zone, in der sie bereitgestellt wurde (). AZ1 Wenn Sie einen Drei-Instanz-Cluster bereitstellen, behält Amazon DocumentDB diesen Drei-Instanz-Cluster weiterhin bei. Amazon DocumentDB kümmert sich automatisch um die Erkennung, den Failover und die Wiederherstellung von Instance-Ausfällen ohne manuelles Eingreifen.

Wenn Amazon DocumentDB einen Failover durchführt und eine Instance wiederherstellt, verbleibt die wiederhergestellte Instance in der Availability Zone, in der sie ursprünglich bereitgestellt wurde. Die Rolle der Instance ändert sich möglicherweise von der primären Instance zum Replikat. Dadurch wird ein Szenario verhindert, in dem eine Reihe von Failovers in allen Instances auftreten könnten, die sich in derselben Availability Zone befinden.

Sie können Amazon DocumentDB DocumentDB-Replikate als Failover-Ziele angeben. Das heißt, wenn die primäre Instance ausfällt, wird das angegebene Amazon DocumentDB DocumentDB-Replikat oder das Replikat aus einer Stufe zur primären Instance heraufgestuft. Es gibt dann eine kurze Unterbrechung, während der Lese- und Schreibanfragen an die primäre Instance mit einer Ausnahme fehlschlagen. Wenn Ihr Amazon DocumentDB-Cluster keine Amazon DocumentDB DocumentDB-Replikate enthält und die primäre Instance ausfällt, wird sie neu erstellt. Das Heraufstufen eines Amazon DocumentDB-Replikats ist viel schneller als das Neuerstellen der primären Instance.

Für Hochverfügbarkeitsszenarien empfehlen wir, ein oder mehrere Amazon DocumentDB DocumentDB-Replikate zu erstellen. Diese Replikate sollten derselben Instance-Klasse wie die primäre Instance angehören und sich in unterschiedlichen Availability Zones für Ihren Amazon DocumentDB-Cluster befinden.

Weitere Informationen finden Sie hier:

Hohe Verfügbarkeit mit globalen Clustern

Um eine hohe Verfügbarkeit für mehrere zu gewährleisten AWS-Regionen, können Sie globale Amazon DocumentDB-Cluster einrichten. Jeder globale Cluster erstreckt sich über mehrere Regionen und ermöglicht globale Lesevorgänge mit geringer Latenz und die Notfallwiederherstellung nach Ausfällen in einer Region. AWS-Region Amazon DocumentDB übernimmt automatisch die Replikation aller Daten und Updates von der primären Region in jede der sekundären Regionen.

Hinzufügen von -Replicas

Die erste dem Cluster hinzugefügte Instance ist die primäre Instance. Jede Instance, die nach der ersten Instance hinzugefügt wird, ist eine Replikat-Instance. Ein Cluster kann zusätzlich zur primären bis zu 15 Replikatinstanzen haben.

Wenn Sie mit dem einen Cluster erstellen AWS Management Console, wird gleichzeitig automatisch eine primäre Instanz erstellt. Um ein Replikat gleichzeitig mit der Erstellung des Clusters und der primären Instance zu erstellen, wählen Sie Create replica in different zone (Replikat in unterschiedlicher Zone erstellen) aus. Weitere Informationen finden Sie in Schritt 4.d unter Einen Amazon DocumentDB-Cluster erstellen. Informationen zum Hinzufügen weiterer Replikate zu einem Amazon DocumentDB-Cluster finden Sie unter. Hinzufügen einer Amazon DocumentDB DocumentDB-Instance zu einem Cluster

Wenn Sie den verwenden AWS CLI , um Ihren Cluster zu erstellen, müssen Sie Ihre Primär- und Replikat-Instances explizit erstellen. Weitere Informationen finden Sie in den folgenden Themen im Abschnitt AWS CLI„Verwenden von“:

Replikationsverzögerung

Die Verzögerung bei der Replikation beträgt in der Regel 50 ms oder weniger. Die häufigsten Gründe für eine erhöhte Replikatverzögerung sind:

  • Eine hohe Schreibrate auf der Primärseite, die dazu führt, dass die Lesereplikate hinter die Primärreplikate zurückfallen.

  • Konflikt auf den Read Replicas zwischen Abfragen mit langer Laufzeit (z. B. umfangreiche sequentielle Scans, Aggregationsabfragen) und eingehender Schreibreplikation.

  • Sehr große Anzahl gleichzeitiger Abfragen an den Read Replicas.

Um die Verzögerung bei der Replikation zu minimieren, sollten Sie die folgenden Methoden zur Problembehandlung ausprobieren:

  • Wenn Sie eine hohe Schreibrate oder eine hohe CPU Auslastung haben, empfehlen wir Ihnen, die Instances in Ihrem Cluster zu skalieren.

  • Wenn Ihre Read Replicas lang andauern und die abgefragten Dokumente sehr häufig aktualisiert werden, sollten Sie in Erwägung ziehen, Ihre Abfragen mit langer Laufzeit zu ändern oder sie für das Primär-/Schreibreplikat auszuführen, um Konflikte bei den Read Replicas zu vermeiden.

  • Wenn es eine sehr große Anzahl gleichzeitiger Abfragen gibt oder nur die Read Replicas stark CPU ausgelastet sind, besteht eine weitere Möglichkeit darin, die Anzahl der Read Replicas zu skalieren, um die Arbeitslast zu verteilen.

  • Da die Verzögerung bei der Replikation auf einen hohen Schreibdurchsatz und lange laufende Abfragen zurückzuführen ist, empfehlen wir, die Replikationsverzögerung mithilfe der DBClusterReplicaLagMaximum CW-Metrik in Kombination mit dem langsamen Abfrage-Logger und den /-Metriken zu beheben. WriteThroughput WriteIOPS

Im Allgemeinen empfehlen wir, dass alle Ihre Replikate vom gleichen Instance-Typ sind, damit ein Cluster-Failover nicht zu Leistungseinbußen führt.

Wenn Sie zwischen Hochskalierung und Ausskalierung wählen (z. B. sechs kleinere Instances gegenüber drei größeren Instances), empfehlen wir generell, zuerst zu versuchen, vor dem Skalieren zu versuchen, bevor Sie die Skalierung verlassen, da Sie so einen größeren Puffer-Cache pro DB-Instance erhalten.

Proaktiv sollten Sie einen Alarm für die Verzögerung bei der Replikation einrichten und den Schwellenwert auf einen Wert setzen, der Ihrer Meinung nach die Obergrenze dafür darstellt, wie weit Ihre Daten auf Replikatinstanzen zurückliegen (oder „veraltet“) sein können, bevor sie die Funktionalität Ihrer Anwendung beeinträchtigen. Im Allgemeinen empfehlen wir, den Schwellenwert für die Replikationsverzögerung aufgrund vorübergehender Workloads für mehrere Datenpunkte zu überschreiten, bevor ein Alarm ausgelöst wird.

Anmerkung

Darüber hinaus empfehlen wir, einen weiteren Alarm für Replikationsverzögerungen von mehr als 10 Sekunden einzurichten. Wenn Sie diesen Schwellenwert für mehrere Datenpunkte überschreiten, empfehlen wir Ihnen, Ihre Instances zu skalieren oder Ihren Schreibdurchsatz auf der primären Instance zu reduzieren.