La CCR OpenSearch entre régions avec packages personnalisés impose de redéfinir les paramètres dans l'appel API du plugin de réplication.
Problème
Un problème survient lorsque vous utilisez un package personnalisé dans les paramètres de votre index et que vous le répliquez vers un domaine situé dans une autre région. Pour associer un package à un domaine, il faut d'abord le téléverser dans un bucket S3 situé dans la même région que le cluster. Vous pouvez ensuite l'importer et l'associer au domaine. À ce moment-là, AWS attribue automatiquement un chemin de référence propre à la région. Si vous tentez de créer une connexion inter-clusters et de lancer la réplication, vous obtiendrez une erreur 502, car ce chemin de référence n'existe pas dans le domaine follower.
Solution
Lors de la création de l'index leader, le paramètre updateable doit être positionné à true. Ensuite, au démarrage de la réplication, il faut redéfinir les paramètres en utilisant le chemin de référence du follower.
POC
Prérequis
- Domaine leader
- Domaine follower
- Connexion entre le leader et le follower
- Packages personnalisés dans des buckets S3 dans chaque région
Par ailleurs, AWS impose certaines exigences pour les domaines leader et follower [1].
Comme indiqué précédemment, pour associer un package à un domaine, il faut d'abord le téléverser dans un bucket S3 situé dans la région de ce domaine, puis l'importer dans OpenSearch via l'option packages de la barre latérale.
Importer le package
Voici un domaine leader simple dans US-east-1. AWS exige notamment l'activation du contrôle d'accès granulaire (FGAC) et une politique de sécurité autorisant les actions es* depuis le domaine follower.
Sous packages, on peut voir que j'ai associé un package wordlist dont le chemin de référence attribué par AWS est analyzers/F111929843.
Domaine leader
Voici maintenant le domaine follower. La configuration est identique à celle du leader, hormis la politique de sécurité modifiée. Sous packages, j'ai également associé le fichier wordlist (après l'avoir téléversé dans le chemin S3 de cette région) ; le chemin de référence attribué par AWS est analyzers/F194925348, différent de celui du domaine leader.
Pour activer la CCR, il faut envoyer une demande de connexion de données distante depuis le domaine follower, puis l'accepter côté domaine leader.
Une fois les deux domaines avec leurs packages associés et la connexion de données en place, vous êtes prêt à lancer la réplication.
Voici un exemple de configuration d'un index sur le leader :
Les paramètres de votre index pourraient ressembler à ceci : notez en particulier le filter path et le paramètre updateable.
Créer l'index sur le leader
Au démarrage de la réplication, vous incluez de nouveau les paramètres, cette fois en y ajoutant le chemin de référence du follower.
Démarrer la réplication vers le follower
Pour tester la réplication, j'ai ajouté des données sur le leader comme suit.
Ajout de données à l'index
Voici une recherche effectuée sur des données côté follower. La requête a abouti, ce qui confirme que la réplication fonctionne.
Interroger les données sur le follower
Résultats de la requête sur le follower
En conclusion, pour mettre en place de la CCR sur AWS OpenSearch entre régions avec des packages personnalisés, vous devez redéfinir vos paramètres lors de l'appel à l'API du plugin de réplication.
Référence
[1]https://docs.aws.amazon.com/opensearch-service/latest/developerguide/replication.html
Contactez DoiT. Nous sommes spécialisés dans le conseil cloud avancé, la conception d'architectures et les services de consulting pour aider les organisations à tirer parti du cloud et accélérer leur croissance.