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 Suche in Amazon Service OpenSearch
Mit der clusterübergreifenden Suche in Amazon OpenSearch Service können Sie Abfragen und Aggregationen über mehrere verbundene Domains hinweg durchführen. Es ist oft sinnvoller, mehrere kleinere Domänen anstelle einer einzigen großen Domäne zu verwenden, insbesondere wenn Sie verschiedene Arten von Workloads ausführen.
Mit Workload-spezifischen Domänen können Sie die folgenden Aufgaben ausführen:
-
Optimieren Sie jede Domäne durch die Auswahl von Instance-Typen für bestimmte Workloads.
-
Richten Sie Grenzen für die Fehlerisolierung über Workloads hinweg ein. Dies bedeutet, dass, wenn einer Ihrer Workloads fehlschlägt, der Fehler in dieser bestimmten Domäne bleibt und sich nicht auf Ihre anderen Workloads auswirkt.
-
Skalieren Sie einfacher über Domänen hinweg.
Die clusterübergreifende Suche unterstützt OpenSearch Dashboards, sodass Sie Visualisierungen und Dashboards für alle Ihre Domains erstellen können. Sie zahlen die Standardgebühren für die AWS Datenübertragung
Anmerkung
Open Source bietet OpenSearch auch Dokumentation
Themen
Einschränkungen
Die Cluster-übergreifende Suche hat mehrere wichtige Einschränkungen:
-
Sie können eine Elasticsearch-Domain nicht mit einer OpenSearch Domain verbinden.
-
Sie können keine Verbindung zu selbstverwalteten OpenSearch /Elasticsearch-Clustern herstellen.
-
Um Domains regionsübergreifend zu verbinden, müssen sich beide Domains auf Elasticsearch 7.10 oder höher oder befinden. OpenSearch
-
Eine Domäne kann maximal 20 ausgehende Verbindungen haben. Ebenso kann eine Domäne maximal 20 eingehende Verbindungen haben. Mit anderen Worten, eine Domäne kann sich mit maximal 20 anderen Domänen verbinden.
-
Die Quelldomain muss sich in derselben oder einer höheren Version als die Zieldomain befinden. Wenn Sie eine bidirektionale Verbindung zwischen zwei Domänen einrichten und eine oder beide aktualisieren möchten, müssen Sie zuerst eine der Verbindungen löschen.
-
Sie können keine benutzerdefinierten Wörterbücher oder SQL mit Cluster-übergreifender Suche verwenden.
-
Sie können es nicht verwenden AWS CloudFormation , um Domänen zu verbinden.
-
Sie können die Cluster-übergreifende Suche auf M3- oder (T2 und T3) Burstable Instances nicht verwenden.
Voraussetzungen für die Cluster-übergreifende Suche
Bevor Sie die Cluster-übergreifende Suche einrichten, stellen Sie sicher, dass Ihre Domänen die folgenden Anforderungen erfüllen:
-
Zwei OpenSearch Domains oder Elasticsearch-Domains in Version 6.7 oder höher
-
Differenzierte Zugriffskontrolle aktiviert
-
Keine ode-to-node Verschlüsselung aktiviert
Cluster-übergreifende Suche – Preise
Für die Suche über Domänen hinweg fallen keine zusätzlichen Gebühren an.
Einrichten einer Verbindung
Die Domäne „Quelle“ bezieht sich auf die Domäne, von der eine Cluster-übergreifende Suchabfrage stammt. Mit anderen Worten, die Quelldomäne ist diejenige, an die Sie die erste Suchabfrage senden.
Die Domäne „Ziel“ ist die Domäne, die die Quelldomäne abfragt.
Eine Cluster-übergreifende Verbindung ist unidirektional von der Quelle zur Zieldomäne. Dies bedeutet, dass die Zieldomäne die Quelldomäne nicht abfragen kann. Sie können jedoch eine andere Verbindung in die entgegengesetzte Richtung einrichten.
Die Quelldomäne erstellt eine „ausgehende“ Verbindung zur Zieldomäne. Die Zieldomäne empfängt eine „eingehende“ Verbindungsanforderung von der Quelldomäne.
So richten Sie eine Verbindung ein
-
Wählen Sie im Domänen-Dashboard eine Domäne und anschließend die Registerkarte Verbindungen aus.
-
Wählen Sie im Abschnitt Ausgehende Verbindungen die Option Anforderung.
-
Geben Sie unter Verbindungs-Alias einen Namen für die Verbindung ein.
-
Wählen Sie, ob Sie eine Verbindung zu einer Domain in Ihrer AWS-Konto Region oder zu einem anderen Konto oder einer anderen Region herstellen möchten.
-
Um eine Verbindung zu einem Cluster in Ihrer Region AWS-Konto und Ihrer Region herzustellen, wählen Sie die Domain aus dem Drop-down-Menü aus und wählen Sie Request aus.
-
Um eine Verbindung zu einem Cluster in einer anderen Region AWS-Konto oder Region herzustellen, wählen Sie den ARN der Remotedomäne aus und wählen Sie Request. Um Domains regionsübergreifend zu verbinden, müssen auf beiden Domains Elasticsearch Version 7.10 oder höher oder ausgeführt werden. OpenSearch
-
-
Um nicht verfügbare Cluster für Cluster-Abfragen zu überspringen, wählen Sie Nicht verfügbar überspringen aus. Diese Einstellung stellt sicher, dass Ihre clusterübergreifenden Abfragen trotz Ausfällen auf einem oder mehreren Remoteclustern Teilergebnisse zurückgeben.
-
Die Cluster-übergreifende Suche überprüft zuerst die Verbindungsanforderung, um sicherzustellen, dass die Voraussetzungen erfüllt sind. Wenn die Domänen inkompatibel sind, wechselt die Verbindungsanforderung in den Status
Validation failed
. -
Nachdem die Verbindungsanforderung erfolgreich validiert wurde, wird sie an die Zieldomäne gesendet, wo sie genehmigt werden muss. Bis diese Genehmigung erfolgt, bleibt die Verbindung im Status
Pending acceptance
. Wenn die Verbindungsanforderung in der Zieldomäne akzeptiert wird, ändert sich der Status inActive
und die Zieldomäne steht für Abfragen zur Verfügung.-
Auf der Domänenseite werden die allgemeinen Domänenintegritäts- und Instance-Integritätsdetails Ihrer Zieldomäne angezeigt. Nur Domänenbesitzer haben die Flexibilität, Verbindungen zu oder von ihren Domänen zu erstellen, anzuzeigen, zu entfernen und zu überwachen.
-
Nachdem die Verbindung hergestellt wurde, wird jeder Datenverkehr, der zwischen den Knoten der verbundenen Domänen fließt, verschlüsselt. Wenn Sie eine VPC-Domäne mit einer Nicht-VPC-Domäne verbinden und die Nicht-VPC-Domäne ein öffentlicher Endpunkt ist, der Datenverkehr aus dem Internet empfangen kann, ist der Cluster-übergreifende Datenverkehr zwischen den Domänen immer noch verschlüsselt und sicher.
Entfernen einer Verbindung
Durch das Entfernen einer Verbindung werden alle clusterübergreifenden Operationen an ihren Indizes gestoppt.
-
Wählen Sie im Domänen-Dashboard die Registerkarte Verbindungen aus.
-
Wählen Sie die Domänenverbindungen aus, die Sie entfernen möchten und klicken Sie auf Löschen, um den Löschvorgang zu bestätigen.
Sie können diese Schritte entweder in der Quell- oder der Zieldomäne ausführen, um die Verbindung zu entfernen. Nachdem Sie die Verbindung entfernt haben, ist sie noch 15 Tage lang mit einem Deleted
-Status sichtbar.
Sie können eine Domäne mit aktiven Cluster-übergreifenden Verbindungen nicht löschen. Um eine Domäne zu löschen, entfernen Sie zuerst alle eingehenden und ausgehenden Verbindungen aus dieser Domäne. Damit stellen Sie sicher, dass Sie die Benutzer der Cluster-übergreifenden Domäne berücksichtigen, bevor Sie die Domäne löschen.
Einrichten von Sicherheit und Beispiel-Walkthrough-Anleitungen
-
Sie senden eine Cluster-übergreifende Suchabfrage an die Quelldomäne.
-
Die Quelldomäne wertet diese Anforderung anhand ihrer Domänenzugriffsrichtlinie aus. Da die Cluster-übergreifende Suche eine differenzierte Zugriffskontrolle erfordert, wird eine Open-Access-Richtlinie für die Quelldomäne empfohlen.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/src-domain/*" } ] }
Anmerkung
Wenn Sie Remote-Indizes in den Pfad einbeziehen, müssen Sie den URI im Domänen-ARN URL-codieren. Verwenden Sie beispielsweise
arn:aws:es:us-east-1:123456789012:domain/my-domain/local_index,dst%3Aremote_index
anstelle vonarn:aws:es:us-east-1:123456789012:domain/my-domain/local_index,dst:remote_index
.Wenn Sie zusätzlich zur differenzierten Zugriffskontrolle eine restriktive Zugriffsrichtlinie verwenden möchten, muss Ihre Richtlinie mindestens den Zugriff auf
es:ESHttpGet
zulassen.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:user/test-user" ] }, "Action": "es:ESHttpGet", "Resource": "arn:aws:es:region:account:domain/src-domain/*" } ] }
-
Die differenzierte Zugriffskontrolle für die Quelldomäne wertet die Anforderung aus:
-
Ist die Anforderung mit gültigen IAM- oder HTTP-Basisanmeldeinformationen signiert?
-
Ist dies der Fall, hat der Benutzer die Berechtigung, die Suche durchzuführen und auf die Daten zuzugreifen?
Wenn die Anforderung nur Daten in der Zieldomäne durchsucht (z. B.
dest-alias:dest-index/_search
), benötigen Sie nur Berechtigungen für die Zieldomäne.Wenn die Anforderung Daten in beiden Domänen durchsucht (z. B.
source-index,dest-alias:dest-index/_search
), benötigen Sie Berechtigungen für beide Domänen.Bei der detaillierten Zugriffskontrolle müssen Benutzer zusätzlich zu den Standard
read
- odersearch
Berechtigungen für dieindices:admin/shards/search_shards
entsprechenden Indizes auch über die entsprechenden Berechtigungen verfügen. -
-
Die Quelldomäne übergibt die Anforderung an die Zieldomäne. Die Zieldomäne wertet diese Anforderung anhand ihrer Domänenzugriffsrichtlinie aus. Sie müssen die
es:ESCrossClusterGet
-Berechtigung für die Zieldomäne angeben:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/dst-domain" } ] }
Stellen Sie sicher, dass die
es:ESCrossClusterGet
-Berechtigung auf/dst-domain
und nicht/dst-domain/*
angewendet wird.Diese Mindestrichtlinie erlaubt jedoch nur Cluster-übergreifende Suchvorgänge. Wenn Sie andere Operationen ausführen möchten, z. B. das Indizieren von Dokumenten und das Durchführen von Standardsuchvorgängen, benötigen Sie zusätzliche Berechtigungen. Wir empfehlen die folgende Richtlinie für die Zieldomäne:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/dst-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/dst-domain" } ] }
Anmerkung
Alle clusterübergreifenden Suchanfragen zwischen Domänen werden bei der Übertragung standardmäßig als Teil der Verschlüsselung verschlüsselt. node-to-node
-
Die Zieldomäne führt die Suche durch und gibt die Ergebnisse an die Quelldomäne zurück.
-
Die Quelldomäne kombiniert ihre eigenen Ergebnisse (falls vorhanden) mit den Ergebnissen der Zieldomäne und gibt sie an Sie zurück.
-
Wir empfehlen Postman
für Testanfragen: -
Indizieren Sie in der Zieldomäne ein Dokument:
POST https://dst-domain.us-east-1.es.amazonaws.com/books/_doc/1 { "Dracula": "Bram Stoker" }
-
Wenn Sie diesen Index von der Quelldomäne abfragen möchten, fügen Sie den Verbindungsalias der Zieldomäne in die Abfrage ein.
GET https://src-domain.us-east-1.es.amazonaws.com/<connection_alias>:books/_search { ... "hits": [ { "_index": "source-destination:books", "_type": "_doc", "_id": "1", "_score": 1, "_source": { "Dracula": "Bram Stoker" } } ] }
Sie finden den Verbindungsalias auf der Registerkarte Verbindungen in Ihrem Domänen-Dashboard.
-
Wenn Sie eine Verbindung zwischen
domain-a -> domain-b
mit dem Verbindungsaliascluster_b
unddomain-a -> domain-c
mit dem Verbindungsaliascluster_c
einrichten, suchen Siedomain-a
,domain-b
unddomain-c
wie folgt:GET https://src-domain.us-east-1.es.amazonaws.com/local_index,cluster_b:b_index,cluster_c:c_index/_search { "query": { "match": { "user": "domino" } } }
Antwort
{ "took": 150, "timed_out": false, "_shards": { "total": 3, "successful": 3, "failed": 0, "skipped": 0 }, "_clusters": { "total": 3, "successful": 3, "skipped": 0 }, "hits": { "total": 3, "max_score": 1, "hits": [ { "_index": "local_index", "_type": "_doc", "_id": "0", "_score": 1, "_source": { "user": "domino", "message": "Lets unite the new mutants", "likes": 0 } }, { "_index": "cluster_b:b_index", "_type": "_doc", "_id": "0", "_score": 2, "_source": { "user": "domino", "message": "I'm different", "likes": 0 } }, { "_index": "cluster_c:c_index", "_type": "_doc", "_id": "0", "_score": 3, "_source": { "user": "domino", "message": "So am I", "likes": 0 } } ] } }
Wenn Sie sich in Ihrer Verbindungseinrichtung nicht dafür entschieden haben, nicht verfügbare Cluster zu überspringen, müssen alle Zielcluster, die Sie durchsuchen, verfügbar sein, damit Ihre Suchanfrage erfolgreich ausgeführt werden kann. Andernfalls schlägt die gesamte Anforderung fehl, auch wenn eine der Domänen nicht verfügbar ist, werden keine Suchergebnisse zurückgegeben.
-
OpenSearch Dashboards
Sie können Daten aus mehreren verbundenen Domänen auf die gleiche Weise visualisieren wie aus einer einzelnen Domäne, dafür müssen Sie jedoch auf die Remote-Indizes mit connection-alias:index
zugreifen. Ihr Indexmuster muss also mit connection-alias:index
übereinstimmen.