Fazer CCR no OpenSearch entre regiões com pacotes customizados exige redefinir as configurações na chamada da API do plugin de replicação.
Problema
O problema aparece quando você usa um pacote customizado nas configurações do índice e replica para um domínio em outra região. Para associar um pacote a um domínio, primeiro é preciso subir o pacote para um bucket S3 na mesma região do cluster. Em seguida, você importa o pacote e o associa ao domínio. Nesse momento, a AWS atribui automaticamente um caminho de referência específico daquela região. Se você tentar criar uma conexão cross cluster e replicar, vai receber um erro 502, porque o caminho de referência do pacote não existe no domínio follower.
Solução
Ao criar o índice leader, defina a flag updateable como true. Depois, ao iniciar o processo de replicação, redefina as configurações usando o caminho de referência do follower.
POC
Pré-requisitos
- Domínio leader
- Domínio follower
- Conexão entre o leader e o follower
- Pacotes customizados em buckets S3 em cada região
Além disso, há alguns requisitos para os domínios leader e follower descritos pela AWS [1]
Como já mencionado, para associar um pacote a um domínio, primeiro você precisa subir o pacote para um bucket S3 na região desse domínio e, em seguida, importá-lo no OpenSearch pela opção packages na barra lateral.
Importar pacote
Veja um domínio leader básico em US-east-1. Entre os requisitos da AWS estão o fine grained access control (FGAC) habilitado e a política de segurança liberando as ações es* para o domínio follower.
Em packages, dá para ver que associei um pacote wordlist com o caminho de referência atribuído pela AWS analyzers/F111929843.
Domínio leader
Agora o domínio follower básico. A configuração é idêntica à do leader, com exceção da política de segurança revisada. Em packages, você vê que também associei o arquivo wordlist (depois de subi-lo para o caminho S3 daquela região), e o caminho de referência atribuído pela AWS é analyzers/F194925348, diferente do caminho do domínio leader.
Para habilitar o CCR, é preciso criar uma solicitação de conexão remota de dados a partir do domínio follower. Essa conexão precisa então ser aceita no domínio leader.
Com os dois domínios, os pacotes associados e a conexão de dados em pé, você já pode replicar.
Veja um exemplo de criação de um índice no leader:
As configurações do índice podem ficar mais ou menos assim — repare especialmente no filter path e no parâmetro updateable.
Criar índice no leader
Agora, ao iniciar a replicação, você passa as configurações de novo e, desta vez, inclui o caminho de referência do follower.
Iniciar replicação para o follower
Para testar a replicação, adicionei dados ao leader assim:
Adicionando dados ao índice
Aqui, uma busca por alguns dados no follower. A query rodou com sucesso, comprovando que a replicação está funcionando.
Consultar dados no follower
Resultados da consulta no follower
Em resumo, se você quer fazer CCR no AWS OpenSearch entre regiões com pacotes customizados, precisa redefinir as configurações na chamada da API do plugin de replicação.
Referência
[1]https://docs.aws.amazon.com/opensearch-service/latest/developerguide/replication.html
Fale com a gente na DoiT. Somos especializados em consultoria avançada de arquitetura e serviços de cloud para ajudar empresas a tirar o máximo da nuvem e impulsionar o crescimento do negócio.