OpenSearch CCR über Regionen hinweg mit Custom Packages erfordert ein erneutes Setzen der Settings im API-Call des Replication-Plugins.
Problem
Sobald Sie ein Custom Package in den Index-Settings nutzen und auf eine Domain in einer anderen Region replizieren wollen, stoßen Sie auf ein Problem. Um ein Package mit einer Domain zu verknüpfen, müssen Sie es zunächst in einen S3-Bucket in derselben Region wie das Cluster hochladen. Anschließend können Sie das Package importieren und der Domain zuordnen. AWS vergibt dabei automatisch einen regionsspezifischen Reference Path. Versuchen Sie nun, eine Cross-Cluster-Verbindung aufzubauen und zu replizieren, erhalten Sie einen 502-Fehler – denn der Reference Path des Packages existiert in der Follower-Domain nicht.
Lösung
Beim Anlegen des Leader-Index müssen Sie das Flag updateable auf true setzen. Beim Start der Replikation definieren Sie die Settings dann erneut – diesmal mit dem Reference Path des Followers.
POC
Voraussetzungen für das Setup
- Leader-Domain
- Follower-Domain
- Verbindung zwischen Leader und Follower
- Custom Packages in S3-Buckets in jeder Region
Zusätzlich gelten einige von AWS dokumentierte Anforderungen an Leader- und Follower-Domain [1].
Wie bereits erwähnt, müssen Sie ein Package zunächst in einen S3-Bucket in der Region der jeweiligen Domain hochladen und es dann in OpenSearch über die Option packages in der Seitenleiste importieren, um es mit der Domain zu verknüpfen.
Package importieren
Hier sehen Sie eine einfache Leader-Domain in US-east-1. Zu den AWS-Anforderungen zählen aktivierte Fine Grained Access Control (FGAC) sowie eine Security Policy, die der Follower-Domain es*-Aktionen erlaubt.
Unter packages ist ein wordlist-Package verknüpft, dem AWS den Reference Path analyzers/F111929843 zugewiesen hat.
Leader-Domain
Hier die einfache Follower-Domain. Das Setup ist identisch zur Leader-Domain, allerdings ohne die angepasste Security Policy. Unter packages habe ich die wordlist-Datei ebenfalls verknüpft (nach dem Upload in den S3-Pfad dieser Region). Der von AWS vergebene Reference Path lautet analyzers/F194925348 und unterscheidet sich damit vom Pfad der Leader-Domain.
Damit CCR funktioniert, müssen Sie aus der Follower-Domain heraus eine Remote-Data-Connection-Anfrage stellen. Diese Verbindung wird anschließend in der Leader-Domain bestätigt.
Sobald beide Domains samt verknüpften Packages und Data Connection stehen, kann die Replikation losgehen.
Hier ein Beispiel für das Anlegen eines Index auf dem Leader:
Ihre Index-Settings könnten in etwa so aussehen – achten Sie besonders auf den Filter Path und den Parameter updateable.
Index auf dem Leader anlegen
Beim Start der Replikation übergeben Sie die Settings erneut und ergänzen diesmal den Reference Path des Followers.
Replikation zum Follower starten
Zum Test der Replikation habe ich dem Leader wie folgt Daten hinzugefügt.
Daten zum Index hinzufügen
Hier eine Suchabfrage im Follower. Sie liefert ein Ergebnis – die Replikation funktioniert also.
Daten im Follower abfragen
Ergebnis der Abfrage im Follower
Fazit: Wer auf AWS OpenSearch regionsübergreifende CCR mit Custom Packages umsetzen will, muss die Settings beim Aufruf der Replication-Plugin-API neu definieren.
Referenz
[1]https://docs.aws.amazon.com/opensearch-service/latest/developerguide/replication.html
Sprechen Sie uns an bei DoiT. Wir bieten fundierte Cloud-Beratung und Architektur-Services und unterstützen Unternehmen dabei, die Cloud gezielt für nachhaltiges Geschäftswachstum einzusetzen.