La CCR de OpenSearch entre regiones con paquetes personalizados exige redefinir la configuración al llamar a la API del plugin de replicación.
Problema
El problema aparece cuando usas un paquete personalizado en la configuración de tu índice y lo replicas a un dominio en otra región. Para asociar un paquete a un dominio, primero hay que subirlo a un bucket de S3 en la misma región del clúster. Después puedes importarlo y asociarlo al dominio. Al hacerlo, AWS asigna automáticamente una ruta de referencia específica de esa región. Si intentas crear una conexión cross cluster y replicar, vas a obtener un error 502, porque esa ruta de referencia no existe en el dominio follower.
Solución
Al crear el índice leader, tienes que poner el flag updateable en true. Luego, al iniciar el proceso de replicación, debes redefinir la configuración con la ruta de referencia del follower.
POC
Requisitos previos
- Dominio leader
- Dominio follower
- Conexión entre el leader y el follower
- Paquetes personalizados en buckets de S3 en cada región
Además, AWS detalla algunos requisitos adicionales para los dominios leader y follower [1].
Como ya se mencionó, para asociar un paquete a un dominio, primero debes subirlo a un bucket de S3 en la región de ese dominio y luego importarlo dentro de OpenSearch desde la opción packages en la barra lateral.
Importar paquete
Este es un dominio leader básico en US-east-1. Entre los requisitos de AWS están tener habilitado el control de acceso granular (FGAC) y una política de seguridad que permita las acciones es* al dominio follower.
En packages puedes ver que asocié un paquete wordlist con la ruta de referencia analyzers/F111929843, asignada por AWS.
Dominio leader
Y este es el dominio follower básico. La configuración es idéntica a la del leader, salvo por la política de seguridad revisada. En packages también asocié el archivo wordlist (después de subirlo a la ruta de S3 de esa región), y la ruta de referencia que asignó AWS es analyzers/F194925348, distinta a la del dominio leader.
Para habilitar la CCR, hay que crear una solicitud de conexión de datos remota desde el dominio follower. Esa conexión luego se acepta en el dominio leader.
Una vez que tengas los dos dominios con sus paquetes asociados y la conexión de datos lista, ya puedes replicar.
Este es un ejemplo de cómo configurar un índice en el leader:
La configuración de tu índice se vería más o menos así: presta especial atención al filter path y al parámetro updateable.
Crear índice en el leader
Ahora, al iniciar la replicación, vuelves a incluir la configuración y esta vez agregas la ruta de referencia del follower.
Iniciar replicación al follower
Para probar la replicación, cargué datos en el leader de la siguiente forma.
Cargar datos al índice
Aquí hay una búsqueda de datos en el follower. La consulta funcionó, lo que confirma que la replicación está activa.
Consultar datos en el follower
Resultados de la consulta en el follower
En resumen, si quieres hacer CCR en AWS OpenSearch entre regiones con paquetes personalizados, tienes que redefinir tu configuración al llamar a la API del plugin de replicación.
Referencia
[1]https://docs.aws.amazon.com/opensearch-service/latest/developerguide/replication.html
Escríbenos a DoiT. Nos especializamos en consultoría y diseño de arquitectura cloud avanzada para ayudar a las organizaciones a sacarle provecho a la nube e impulsar el crecimiento de su negocio.