Clusterübergreifende Replikation für Amazon Service OpenSearch - OpenSearch Amazon-Dienst

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.

Clusterübergreifende Replikation für Amazon Service OpenSearch

Mit der clusterübergreifenden Replikation in Amazon OpenSearch Service können Sie Benutzerindizes, Zuordnungen und Metadaten von einer Service-Domain auf eine OpenSearch andere replizieren. Die clusterübergreifende Replikation trägt dazu bei, die Wiederherstellung im Falle eines Ausfalls sicherzustellen, und ermöglicht es Ihnen, Daten über geografisch weit entfernte Rechenzentren hinweg zu replizieren, um die Latenz zu verringern. Sie zahlen die üblichen AWS Datenübertragungsgebühren für die zwischen Domains übertragenen Daten.

Die clusterübergreifende Replikation folgt einem aktiv-passiven Replikationsmodell, bei dem der lokale Index oder der Follower-Index Daten aus dem Remote- oder Leader-Index abruft. Der Leader-Index bezieht sich auf die Datenquelle oder den Index, aus dem Sie Daten replizieren möchten. Der Follower-Index bezieht sich auf das Ziel für die Daten oder den Index, in den Sie Daten replizieren möchten.

Die clusterübergreifende Replikation ist auf Domains verfügbar, auf denen Elasticsearch 7.10 oder 1.1 oder höher ausgeführt wird. OpenSearch

Anmerkung

In dieser Dokumentation wird beschrieben, wie Sie die clusterübergreifende Replikation aus Sicht von Amazon OpenSearch Service einrichten. Dazu gehört die Verwendung von AWS Management Console , um clusterübergreifende Verbindungen einzurichten, was auf einem OpenSearch selbstverwalteten Cluster nicht möglich ist. Eine vollständige Dokumentation, einschließlich einer Referenz zu Einstellungen und einer umfassenden API-Referenz, finden Sie in der Dokumentation unter Clusterübergreifende Replikation. OpenSearch

Einschränkungen

Clusterübergreifende Replikation weist folgende Einschränkungen auf:

  • Sie können keine Daten zwischen Amazon OpenSearch Service-Domains und selbstverwalteten Clustern OpenSearch oder Elasticsearch-Clustern replizieren.

  • Sie können einen Index nicht von einer Follower-Domain auf eine andere Follower-Domain replizieren. Wenn Sie einen Index auf mehrere Follower-Domains replizieren möchten, können Sie ihn nur von der Single-Leader-Domain aus replizieren.

  • Eine Domain kann über eine Kombination aus ein- und ausgehenden Verbindungen mit maximal 20 anderen Domains verbunden werden.

  • Wenn Sie anfänglich eine clusterübergreifende Verbindung einrichten, muss sich die Leader-Domain auf derselben oder einer höheren Version als die Follower-Domain befinden.

  • Sie können es nicht verwenden, AWS CloudFormation um Domänen zu verbinden.

  • Sie können die Cluster-übergreifende Replikation auf M3- oder (T2 und T3) Burstable Instances nicht verwenden.

  • Sie können keine Daten zwischen UltraWarm oder kalten Indizes replizieren. Beide Indizes müssen sich im Hot Storage befinden.

  • Wenn Sie einen Index aus der Leader-Domain löschen, wird der entsprechende Index in der Follower-Domain nicht automatisch gelöscht.

Voraussetzungen

Bevor Sie die Cluster-übergreifende Replikation einrichten, stellen Sie sicher, dass Ihre Domains die folgenden Anforderungen erfüllen:

Berechtigungsanforderungen

Um die Replikation zu starten, müssen Sie die es:ESCrossClusterGet-Berechtigung für die Remote (Leader)-Domain einschließen. Wir empfehlen die folgende IAM-Richtlinie für die Remotedomäne. Mit dieser Richtlinie können Sie auch andere Operationen ausführen, z. B. das Indizieren von Dokumenten und das Durchführen von Standardsuchen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/leader-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/leader-domain" } ] }

Stellen Sie sicher, dass die es:ESCrossClusterGet-Berechtigung auf /leader-domain und nicht /leader-domain/* angewendet wird.

Damit Nicht-Admin-Benutzer Replikationsaktivitäten ausführen können, müssen sie auch den entsprechenden Berechtigungen zugeordnet werden. Die meisten Berechtigungen entsprechen bestimmten REST-API-Operationen. Mit der Berechtigung indices:admin/plugins/replication/index/_resume können Sie beispielsweise die Replikation eines Index fortsetzen. Eine vollständige Liste der Berechtigungen finden Sie in der OpenSearch Dokumentation unter Replikationsberechtigungen.

Anmerkung

Die Befehle zum Starten der Replikation und zum Erstellen einer Replikationsregel sind Sonderfälle. Da sie Hintergrundprozesse in den Leader- und Follower-Domänen aufrufen, müssen Sie follower_cluster_role in der Anfrage ein leader_cluster_role UND übergeben. OpenSearch Der Service verwendet diese Rollen bei allen Backend-Replikationsaufgaben. Informationen zur Zuordnung und Verwendung dieser Rollen finden Sie in der Dokumentation unter Zuordnen der Leader- und Follower-Clusterrollen. OpenSearch

Einrichten einer clusterübergreifenden Verbindung

Um Indizes von einer Domain zu einer anderen zu replizieren, müssen Sie eine clusterübergreifende Verbindung zwischen den Domains einrichten. Der einfachste Weg, Domains zu verbinden, ist über die Registerkarte Verbindungen des Domain-Dashboards. Sie können auch die Konfigurations-API oder die AWS -CLI verwenden. Da die Cluster-übergreifende Replikation einem „Pull“-Modell folgt, initiieren Sie Verbindungen von der Follower-Domain.

Anmerkung

Wenn Sie zuvor zwei Domains verbunden haben, um clusterübergreifende Suchen durchzuführen, können Sie nicht dieselbe Verbindung für die Replikation verwenden. Die Verbindung ist in der Konsole mit SEARCH_ONLY gekennzeichnet. Um die Replikation zwischen zwei zuvor verbundenen Domains durchzuführen, müssen Sie die Verbindung löschen und neu erstellen. Wenn Sie dies getan haben, ist die Verbindung sowohl für die clusterübergreifende Suche als auch für die clusterübergreifende Replikation verfügbar.

So richten Sie eine Verbindung ein
  1. Wählen Sie in der Amazon OpenSearch Service-Konsole die Follower-Domain aus, wechseln Sie zur Registerkarte Verbindungen und wählen Sie Anfrage aus.

  2. Geben Sie unter Verbindungs-Alias einen Namen für die Verbindung ein.

  3. Wählen Sie, ob Sie sich mit einer Domain in Ihrer AWS-Konto Region oder mit einem anderen Konto oder einer anderen Region verbinden möchten.

    • Um eine Verbindung zu einer Domain in Ihrer Region AWS-Konto und Ihrer Region herzustellen, wählen Sie die Domain aus und klicken Sie auf Anfrage.

    • Um eine Verbindung zu einer Domain in einer anderen Region AWS-Konto oder Region herzustellen, geben Sie den ARN der Remotedomäne an und wählen Sie Request.

OpenSearch Der Dienst validiert die Verbindungsanfrage. Wenn die Domains nicht kompatibel sind, schlägt die Verbindung fehl. Wenn die Validierung erfolgreich ist, wird sie zur Genehmigung an die Ziel-Domain gesendet. Wenn die ZielDomain die Anforderung genehmigt, können Sie mit der Replikation beginnen.

Die clusterübergreifende Replikation unterstützt die bidirektionale Replikation. Das bedeutet, dass Sie eine ausgehende Verbindung von Domäne A zu Domäne B und eine weitere ausgehende Verbindung von Domäne B zu Domäne A herstellen können. Anschließend können Sie die Replikation so einrichten, dass Domäne A einem Index in Domäne B und Domäne B einem Index in Domäne A folgt.

So starten Sie eine Replikation

Nachdem Sie eine clusterübergreifende Verbindung hergestellt haben, können Sie damit beginnen, Daten zu replizieren. Erstellen Sie zunächst einen Index für die zu replizierende Leader-Domain:

PUT leader-01

Um diesen Index zu replizieren, senden Sie diesen Befehl an die Follower-Domain:

PUT _plugins/_replication/follower-01/_start { "leader_alias": "connection-alias", "leader_index": "leader-01", "use_roles":{ "leader_cluster_role": "all_access", "follower_cluster_role": "all_access" } }

Sie finden den Verbindungsalias auf der Registerkarte Verbindungen in Ihrem Domain-Dashboard.

In diesem Beispiel wird davon ausgegangen, dass ein Administrator die Anfrage ausgibt und der Einfachheit halber all_access für leader_cluster_role und follower_cluster_role verwendet. In Produktionsumgebungen empfehlen wir jedoch, dass Sie Replikationsbenutzer sowohl für den Leader- als auch für den Follower-Index anlegen und diese entsprechend zuweisen. Die Benutzernamen müssen identisch sein. Informationen zu diesen Rollen und deren Zuordnung finden Sie in der Dokumentation unter Zuordnen der Rollen des Leader- und Follower-Clusters. OpenSearch

Replikation bestätigen

Um zu bestätigen, dass die Replikation stattfindet, rufen Sie den Replikationsstatus ab:

GET _plugins/_replication/follower-01/_status { "status" : "SYNCING", "reason" : "User initiated", "leader_alias" : "connection-alias", "leader_index" : "leader-01", "follower_index" : "follower-01", "syncing_details" : { "leader_checkpoint" : -5, "follower_checkpoint" : -5, "seq_no" : 0 } }

Die Checkpoint-Werte für Leader und Follower beginnen als negative Ganzzahlen und spiegeln die Anzahl der Shards wider, die Sie haben (-1 für einen Shard, -5 für fünf Shards usw.). Die Werte erhöhen sich bei jeder Änderung, die Sie vornehmen, zu positiven Ganzzahlen. Wenn die Werte identisch sind, bedeutet dies, dass die Indizes vollständig synchronisiert sind. Sie können diese Checkpoint-Werte verwenden, um die Replikationslatenz in Ihren Domains zu messen.

Um die Replikation weiter zu überprüfen, fügen Sie dem Führungslinien-Index ein Dokument hinzu:

PUT leader-01/_doc/1 { "Doctor Sleep":"Stephen King" }

Und bestätige, dass es im Follower-Index angezeigt wird:

GET follower-01/_search { ... "max_score" : 1.0, "hits" : [ { "_index" : "follower-01", "_type" : "_doc", "_id" : "1", "_score" : 1.0, "_source" : { "Doctor Sleep" : "Stephen King" } } ] } }

Replikation pausieren und Fortsetzen

Sie können die Replikation vorübergehend unterbrechen, wenn Sie Probleme beheben oder die Belastung der Leader-Domain reduzieren müssen. Senden Sie diese Anfrage an die Follower-Domain. Vergewissern Sie sich, einen leeren Anforderungstext einzubeziehen:

POST _plugins/_replication/follower-01/_pause {}

Rufen Sie dann den Status ab, um sicherzustellen, dass die Replikation angehalten wurde:

GET _plugins/_replication/follower-01/_status { "status" : "PAUSED", "reason" : "User initiated", "leader_alias" : "connection-alias", "leader_index" : "leader-01", "follower_index" : "follower-01" }

Wenn Sie mit den Änderungen fertig sind, setzen Sie die Replikation fort. Senden Sie diese Anfrage an die Follower-Domain. Vergewissern Sie sich, einen leeren Anforderungstext einzubeziehen:

POST _plugins/_replication/follower-01/_resume {}

Sie können die Replikation nicht fortsetzen, nachdem sie länger als 12 Stunden pausiert wurde. Sie müssen die Replikation beenden, den Follower-Index löschen und die Replikation des Leader neu starten.

Replikation beenden

Wenn Sie die Replikation vollständig einstellen, folgt der Follower-Index dem Leader-Index nicht mehr und wird zu einem Standard-Index. Sie können eine Replikation nicht neu starten, nachdem Sie sie gestoppt haben.

Beenden Sie die Replikation von der Follower-Domain. Vergewissern Sie sich, einen leeren Anforderungstext einzubeziehen:

POST _plugins/_replication/follower-01/_stop {}

Automatisches Folgen

Sie können eine Reihe von Replikationsregeln für eine einzelne Führungs-Domain definieren, die automatisch Indizes replizieren, die einem bestimmten Muster entsprechen. Wenn ein Index auf der Leader-Domain einem der Muster entspricht (z. B.books*), wird ein entsprechender Follower-Index auf der Follower-Domain erstellt. OpenSearch Service repliziert alle vorhandenen Indizes, die dem Muster entsprechen, sowie neue Indizes, die Sie erstellen. Er repliziert keine Indizes, die bereits in der Follower-Domain vorhanden sind.

Um alle Indizes zu replizieren (mit Ausnahme von vom System erstellten Indizes und derjenigen, die bereits in der Follower-Domain vorhanden sind), verwenden Sie ein Platzhaltermuster (*).

Erstellen einer Replikationsrolle

Erstellen Sie eine Replikationsregel für die Follower-Domain und geben Sie den Namen der clusterübergreifenden Verbindung an:

POST _plugins/_replication/_autofollow { "leader_alias" : "connection-alias", "name": "rule-name", "pattern": "books*", "use_roles":{ "leader_cluster_role": "all_access", "follower_cluster_role": "all_access" } }

Sie finden den Verbindungsalias auf der Registerkarte Verbindungen in Ihrem Domain-Dashboard.

In diesem Beispiel wird davon ausgegangen, dass ein Administrator die Anfrage stellt, und der Einfachheit halber werden all_access als Leader- und Follower-Domain-Rollen verwendet. In Produktionsumgebungen empfehlen wir jedoch, Replikationsbenutzer sowohl auf den Leader- als auch Follower-Indizes zu erstellen und diese entsprechend zuzuweisen. Die Benutzernamen müssen identisch sein. Informationen zu diesen Rollen und deren Zuordnung finden Sie in der Dokumentation unter Zuordnen der Rollen des Leader- und Follower-Clusters. OpenSearch

Um eine Liste vorhandener Replikationsregeln in einer Domain abzurufen, verwenden Sie den API-Vorgang für die automatische Verfolgung von Statistiken.

Um die Regel zu testen, erstellen Sie einen Index, der dem Muster in der Leader-Domain entspricht:

PUT books-are-fun

Und überprüfen Sie, ob das Replikat in der Follower-Domain angezeigt wird:

GET _cat/indices health status index uuid pri rep docs.count docs.deleted store.size pri.store.size green open books-are-fun ldfHO78xYYdxRMULuiTvSQ 1 1 0 0 208b 208b

Löschen einer Replikationsrolle

Wenn Sie eine Replikationsregel löschen, beendet OpenSearch Service die Replikation neuer Indizes, die dem Muster entsprechen, setzt jedoch die bestehende Replikationsaktivität fort, bis Sie die Replikation dieser Indizes beenden.

Löschen Sie Replikationsregeln aus der Follower-Domain:

DELETE _plugins/_replication/_autofollow { "leader_alias" : "connection-alias", "name": "rule-name" }

Verbundene Domänen werden aktualisiert

Um die Engine-Version von zwei Domänen zu aktualisieren, die über eine clusterübergreifende Verbindung verfügen, aktualisieren Sie zuerst die Follower-Domain und dann die Leader-Domain. Löschen Sie nicht die Verbindung zwischen ihnen, da sonst die Replikation unterbrochen wird und Sie sie nicht fortsetzen können.