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
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
Themen
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:
-
Elasticsearch 7.10 oder 1.1 oder höher OpenSearch
-
Differenzierte Zugriffskontrolle aktiviert
-
Keine ode-to-node Verschlüsselung aktiviert
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-Operationenindices: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
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
-
Wählen Sie in der Amazon OpenSearch Service-Konsole die Follower-Domain aus, wechseln Sie zur Registerkarte Verbindungen und wählen Sie Anfrage aus.
-
Geben Sie unter Verbindungs-Alias einen Namen für die Verbindung ein.
-
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
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
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.