Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

Cross Cluster Replication tra regioni su AWS OpenSearch Service con custom package

By Stephanie KaaiOct 21, 20243 min read

Questa pagina è disponibile anche in English, Deutsch, Español, Français, 日本語 e Português.

La CCR di OpenSearch tra regioni con custom package impone di ridefinire le impostazioni nella chiamata API del plugin di replica.

Il problema

Si presenta un problema quando si usa un custom package nelle impostazioni dell'indice e lo si replica su un dominio in una regione diversa. Per associare un package a un dominio occorre prima caricarlo in un bucket S3 nella stessa regione del cluster; solo a quel punto si può importare il package e associarlo al dominio. Quando lo si fa, AWS assegna automaticamente un reference path specifico per la regione. Se si prova a creare una connessione cross cluster e ad avviare la replica, si ottiene un errore 502, perché il reference path del package non esiste nel dominio follower.

La soluzione

Quando si crea l'indice leader bisogna impostare il flag updateable su true. Poi, all'avvio del processo di replica, occorre ridefinire le impostazioni indicando il reference path del follower.

POC

Prerequisiti

  • Dominio leader
  • Dominio follower
  • Connessione tra leader e follower
  • Custom package nei bucket S3 di ciascuna regione

A questi si aggiungono alcuni requisiti per i domini leader e follower indicati da AWS [1].

Come anticipato, per associare un package a un dominio bisogna prima caricarlo in un bucket S3 nella regione del dominio stesso e poi importarlo in OpenSearch dalla voce packages nella barra laterale.

Importazione del package

Ecco un dominio leader di base in US-east-1. Tra i requisiti AWS rientrano l'attivazione del fine grained access control (FGAC) e una security policy che consenta al dominio follower le azioni es*.

Sotto packages si vede che ho associato un package wordlist, il cui reference path assegnato da AWS è analyzers/F111929843.

Dominio leader

Ecco il dominio follower di base. La configurazione è identica a quella del dominio leader, salvo l'assenza della security policy modificata. Sotto packages si nota che anche qui ho associato il file wordlist (dopo averlo caricato nel path S3 della regione corrispondente): il reference path assegnato da AWS è analyzers/F194925348, quindi diverso da quello del dominio leader.

Per abilitare la CCR bisogna creare una richiesta di connessione dati remota dal dominio follower. La connessione va poi accettata sul dominio leader.

Una volta predisposti i due domini con i package associati e la connessione dati attiva, tutto è pronto per la replica.

Ecco un esempio di configurazione di un indice sul leader:

Le impostazioni dell'indice potrebbero apparire più o meno così: si presti attenzione in particolare al filter path e al parametro updateable.

Creazione dell'indice sul leader

All'avvio della replica si includono nuovamente le impostazioni, questa volta indicando anche il reference path del follower.

Avvio della replica verso il follower

Per verificare il funzionamento della replica, ho aggiunto dei dati al leader come mostrato di seguito.

Aggiunta di dati all'indice

Di seguito una ricerca su alcuni dati nel follower. La query è andata a buon fine, a conferma che la replica funziona.

Query dei dati sul follower

Risultati della query sul follower

In sintesi, per eseguire la CCR su AWS OpenSearch tra regioni con custom package occorre ridefinire le impostazioni nella chiamata all'API del plugin di replica.

Riferimenti

[1]https://docs.aws.amazon.com/opensearch-service/latest/developerguide/replication.html

Ci contatti su DoiT. Siamo specializzati in servizi avanzati di consulenza e progettazione architetturale cloud per aiutare le aziende a sfruttare il cloud come leva di crescita per il business.