As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Replicação entre clusters do Amazon OpenSearch Service
Com a replicação entre clusters no Amazon OpenSearch Service, você pode replicar índices de usuário, mapeamentos e metadados de um domínio do OpenSearch Service para outro. Usar a replicação entre clusters ajuda a garantir a recuperação de desastres em caso de interrupção, e permite replicar dados em datacenters geograficamente distantes para reduzir a latência. Você paga taxas de transferência de dados padrão da AWS
A replicação entre clusters segue um modelo de replicação ativo-passivo em que o índice local ou seguidor extrai dados do índice remoto ou líder. O índice líder se refere à fonte dos dados ou ao índice do qual você deseja replicar os dados. O índice seguidor se refere ao destino dos dados ou ao índice para o qual você deseja replicar os dados.
A replicação entre clusters está disponível em domínios que executam a versão 7.10 do Elasticsearch ou 1.1 ou superior do OpenSearch.
nota
Esta documentação descreve como configurar a replicação entre clusters a partir da perspectiva do Amazon OpenSearch Service. Isso inclui usar o AWS Management Console para configurar conexões entre clusters, o que não é possível em um cluster autogerenciado do OpenSearch. Para obter a documentação completa, incluindo uma referência de configurações e uma referência abrangente de API, consulte Replicação entre clusters
Tópicos
Limitações
A replicação entre clusters tem as seguintes limitações:
-
Você não pode replicar dados entre domínios do Amazon OpenSearch Service ou clusters autogerenciados do OpenSearch ou do Elasticsearch.
-
Você não pode replicar um índice de um domínio seguidor para outro domínio seguidor. Se você quiser replicar um índice para vários domínios seguidores, só poderá replicá-lo a partir do único domínio líder.
-
Um domínio pode ser conectado, por meio de uma combinação de conexões de entrada e saída, a um máximo de 20 outros domínios.
-
Quando você configura inicialmente uma conexão entre clusters, o domínio líder deve estar na mesma versão ou em uma versão superior à do domínio seguidor.
-
Você não pode usar o AWS CloudFormation para conectar domínios.
-
Não é possível usar a replicação entre clusters em instâncias M3 ou expansíveis (T2 e T3).
-
Você não pode replicar dados entre índices UltraWarm ou frios. Ambos os índices devem estar em um armazenamento quente.
-
Quando você exclui um índice do domínio líder, o índice correspondente no domínio seguidor não é excluído automaticamente.
Pré-requisitos
Antes de configurar a replicação entre clusters, verifique se os domínios atendem aos seguintes requisitos:
-
Elasticsearch 7.10 ou OpenSearch 1.1 ou superior
-
Controle de acesso refinado habilitado
-
Criptografia de nó para nó habilitada
Requisitos de permissão
Para iniciar a replicação, você deve incluir a permissão es:ESCrossClusterGet
no domínio remoto (líder). Recomendamos a seguinte política do IAM no domínio remoto. Essa política também permite executar outras operações, como indexar documentos e executar pesquisas padrão:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:region:account:domain/leader-domain/*" }, { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "es:ESCrossClusterGet", "Resource": "arn:aws:es:region:account:domain/leader-domain" } ] }
Verifique se a permissão es:ESCrossClusterGet
é aplicada a /leader-domain
e não a /leader-domain/*
.
Para que usuários não administradores realizem atividades de replicação, também é preciso que eles sejam mapeados às permissões apropriadas. A maioria das permissões corresponde a operações de API RESTindices:admin/plugins/replication/index/_resume
permite que você retome a replicação de um índice. Para obter uma lista completa de permissões, consulte Permissões de replicação
nota
Os comandos para iniciar a replicação e criar uma regra de replicação são casos especiais. Como eles invocam processos em segundo plano nos domínios líder e seguidor, você deve passar uma leader_cluster_role
e uma follower_cluster_role
pela solicitação. O OpenSearch Service usa essas funções em todas as tarefas de replicação de backend. Para obter informações sobre mapeamento e uso dessas funções, consulte Mapear as funções de cluster líder e seguidor
Configurar uma conexão entre clusters
Para replicar índices de um domínio para outro, você precisa configurar uma conexão entre clusters entre os domínios. A maneira mais fácil de conectar domínios é através da guia Conexões do painel de domínio. Você também pode usar a API de configuração ou a CLI da AWS. Como a replicação entre clusters segue um modelo “pull”, você inicia as conexões a partir do domínio seguidor.
nota
Se você conectou anteriormente dois domínios para executar pesquisas entre clusters, essa mesma conexão não pode ser usada para replicação. A conexão é marcada como SEARCH_ONLY
no console. Para executar a replicação entre dois domínios conectados anteriormente, você deve excluir a conexão e recriá-la. Assim que você tiver feito isso, a conexão estará disponível para a pesquisa entre clusters e a replicação entre clusters.
Como configurar uma conexão
-
No console do Amazon OpenSearch Service, selecione o domínio seguidor, vá para a guia Conexões e escolha Solicitar.
-
Em Alias de conexão, insira um nome para a conexão.
-
Escolha entre conectar-se a um domínio na sua Conta da AWS e região ou em outra conta ou região.
-
Para se conectar a um domínio em sua Conta da AWS e região, selecione o domínio e escolha Solicitar.
-
Para se conectar a um domínio em outra Conta da AWS ou região, especifique o ARN do domínio remoto e escolha Solicitar.
-
O OpenSearch Service valida a solicitação de conexão. Se os domínios forem incompatíveis, a conexão falhará. Se a validação for bem-sucedida, ela será enviada ao domínio de destino para aprovação. Quando o domínio de destino aprova a solicitação, você pode iniciar a replicação.
A replicação entre clusters oferece suporte à replicação bidirecional. Isso significa que você pode criar uma conexão de saída do domínio A para o domínio B e outra conexão de saída do domínio B para o domínio A. Você pode então configurar a replicação para que o domínio A siga um índice no domínio B e o domínio B siga um índice no domínio A.
Como iniciar a replicação
Depois de estabelecer uma conexão entre clusters, você pode começar a replicar dados. Primeiro, crie um índice no domínio líder a ser replicado:
PUT leader-01
Para replicar esse índice, envie esse comando ao domínio seguidor:
PUT _plugins/_replication/follower-01
/_start
{
"leader_alias": "connection-alias
",
"leader_index": "leader-01
",
"use_roles":{
"leader_cluster_role": "all_access
",
"follower_cluster_role": "all_access
"
}
}
Você pode encontrar o alias de conexão na guia Conexões no painel do domínio.
Este exemplo pressupõe que um administrador esteja emitindo a solicitação e usa all_access
para leader_cluster_role
e follower_cluster_role
para simplificar. Em ambientes de produção, no entanto, recomendamos que você crie usuários de replicação nos índices líder e seguidor e os mapeie de acordo. Os nomes de usuário devem ser idênticos. Para obter informações sobre essas funções e como mapeá-las, consulte Mapear as funções de cluster líder e seguidor
Confirmar replicação
Para confirmar se a replicação está acontecendo, obtenha o status da replicação:
GET _plugins/_replication/follower-01
/_status
{
"status" : "SYNCING",
"reason" : "User initiated",
"leader_alias" : "connection-alias",
"leader_index" : "leader-01",
"follower_index" : "follower-01",
"syncing_details" : {
"leader_checkpoint" : -5,
"follower_checkpoint" : -5,
"seq_no" : 0
}
}
Os valores de ponto de verificação de líder e seguidor começam como números inteiros negativos e refletem o número de fragmentos que você tem (-1 para um fragmento, -5 para cinco fragmentos e assim por diante). Os valores aumentam para números inteiros positivos a cada alteração que você fizer. Se os valores forem os mesmos, significa que os índices estão totalmente sincronizados. Você pode usar esses valores de ponto de verificação para medir a latência de replicação em seus domínios.
Para validar ainda mais a replicação, adicione um documento ao índice líder:
PUT leader-01
/_doc/1
{
"Doctor Sleep":"Stephen King"
}
E confirme que ele aparece no índice seguidor:
GET follower-01
/_search
{
...
"max_score" : 1.0,
"hits" : [
{
"_index" : "follower-01",
"_type" : "_doc",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"Doctor Sleep" : "Stephen King"
}
}
]
}
}
Interromper e retomar a replicação
Você pode interromper temporariamente a replicação se precisar corrigir problemas ou reduzir a carga no domínio líder. Envie essa solicitação ao domínio seguidor. Certifique-se de incluir um corpo da solicitação vazio:
POST _plugins/_replication/follower-01
/_pause
{}
Em seguida, obtenha o status para garantir que a replicação seja interrompida:
GET _plugins/_replication/follower-01
/_status
{
"status" : "PAUSED",
"reason" : "User initiated",
"leader_alias" : "connection-alias",
"leader_index" : "leader-01",
"follower_index" : "follower-01"
}
Quando terminar de fazer as alterações, retome a replicação. Envie essa solicitação ao domínio seguidor. Certifique-se de incluir um corpo da solicitação vazio:
POST _plugins/_replication/follower-01
/_resume
{}
Não será possível retomar a replicação depois que ela for pausada por mais de 12 horas. Você deve interromper a replicação, excluir o índice seguidor e reiniciar a replicação do líder.
Encerrar a replicação
Quando você encerra completamente a replicação, o índice seguidor deixa de seguir o líder e torna-se um índice padrão. Você não pode reiniciar uma replicação depois de encerrá-la.
Encerre a replicação do domínio seguidor. Certifique-se de incluir um corpo da solicitação vazio:
POST _plugins/_replication/follower-01
/_stop
{}
Seguir automaticamente
Você pode definir um conjunto de regras de replicação em um único domínio líder que replica automaticamente índices correspondentes a um padrão especificado. Quando um índice no domínio líder corresponde a um dos padrões (por exemplo, books*
), um índice seguidor correspondente é criado no domínio seguidor. O OpenSearch Service replica quaisquer índices existentes que correspondam ao padrão, bem como novos índices que você cria. Não replica índices que já existem no domínio seguidor.
Para replicar todos os índices (com exceção dos índices criados pelo sistema e aqueles que já existem no domínio seguidor), use um padrão curinga (*
).
Criar uma regra de replicação
Crie uma regra de replicação no domínio do seguidor e especifique o nome da conexão entre clusters:
POST _plugins/_replication/_autofollow
{
"leader_alias" : "connection-alias
",
"name": "rule-name
",
"pattern": "books*
",
"use_roles":{
"leader_cluster_role": "all_access
",
"follower_cluster_role": "all_access
"
}
}
Você pode encontrar o alias de conexão na guia Conexões no painel do domínio.
Este exemplo pressupõe que um administrador esteja emitindo a solicitação e usa all_access
como as funções de domínio líder e seguidor para simplificar. Em ambientes de produção, no entanto, recomendamos que você crie usuários de replicação nos índices líder e seguidor e os mapeie de acordo. Os nomes de usuário devem ser idênticos. Para obter informações sobre essas funções e como mapeá-las, consulte Mapear as funções de cluster líder e seguidor
Para recuperar uma lista de regras de replicação existentes em um domínio, use a operação da API de estatísticas de auto-follow
Para testar a regra, crie um índice que corresponda ao padrão no domínio líder:
PUT books-are-fun
E confira se sua réplica aparece no domínio seguidor:
GET _cat/indices
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open books-are-fun ldfHO78xYYdxRMULuiTvSQ 1 1 0 0 208b 208b
Excluir uma regra de replicação
Quando você exclui uma regra de replicação, o OpenSearch Service para de replicar índices novos que correspondem ao padrão, mas continua a atividade de replicação existente até você encerrar a replicação desses índices.
Exclua regras de replicação do domínio seguidor:
DELETE _plugins/_replication/_autofollow
{
"leader_alias" : "connection-alias
",
"name": "rule-name
"
}
Atualizar domínios conectados
Para atualizar a versão do mecanismo de dois domínios que têm uma conexão entre clusters, atualize primeiro o domínio seguidor e depois o líder. Não exclua a conexão entre eles, caso contrário, a replicação será interrompida e não será possível retomá-la.