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á.
Migração de índices do Amazon OpenSearch Service usando reindexação remota
A reindexação remota permite copiar índices de um domínio do Amazon OpenSearch Service para outro. Você pode migrar índices de qualquer domínio de OpenSearch serviço ou clusters autogerenciados OpenSearch e do Elasticsearch.
Com domínio e índice remotos, se referem à fonte dos dados ou ao domínio e índice dos quais você deseja copiar os dados. Um domínio e índice local referem-se ao destino dos dados ou ao domínio e índice para os quais você deseja copiar os dados.
A reindexação remota exige OpenSearch 1.0 ou posterior, ou Elasticsearch 6.7 ou posterior, no domínio local. O domínio remoto deve ser inferior ou da mesma versão principal que o domínio local. As versões do Elasticsearch são consideradas inferiores às OpenSearch versões, o que significa que você pode reindexar dados de domínios do Elasticsearch para domínios. OpenSearch Dentro da mesma versão principal, o domínio remoto pode ser qualquer versão secundária. Por exemplo, a reindexação remota do Elasticsearch 7.10.x para 7.9 é suportada, mas OpenSearch 1.0 para o Elasticsearch 7.10.x não é suportada.
nota
Esta documentação descreve como reindexar dados entre os domínios do Amazon OpenSearch Service. Para obter a documentação completa da reindex
operação, incluindo etapas detalhadas e opções suportadas, consulte o documento Reindex
Tópicos
Pré-requisitos
A reindexação remota tem os seguintes requisitos:
-
O domínio remoto deve ser acessível pelo domínio local. Para um domínio remoto que reside em uma VPC, o domínio local deve ter acesso à VPC. Este processo varia de acordo com a configuração de rede, mas geralmente envolve a conexão a uma VPN ou rede gerenciada ou o uso a conexão de endpoint da VPC nativa. Para saber mais, consulte Lançamento de seus domínios OpenSearch do Amazon Service em uma VPC.
-
A solicitação deve ser autorizada pelo domínio remoto como qualquer outra solicitação REST. Se o domínio remoto tiver o controle de acesso detalhado habilitado, você deve ter permissão para executar a reindexação no domínio remoto e ler o índice no domínio local. Para obter mais considerações de segurança, consulte Controle de acesso refinado no Amazon Service OpenSearch .
-
Recomendamos criar um índice com a configuração desejada no domínio local antes de iniciar o processo de reindexação.
-
Se o domínio usar um tipo de instância T2 ou T3 para os nós de dados, não será possível usar a reindexação remota.
Reindexar dados entre os domínios da Internet OpenSearch do Serviço
O cenário mais básico é que o índice remoto esteja no mesmo Região da AWS que seu domínio local com um endpoint acessível ao público e você tenha assinado as credenciais do IAM.
A partir do domínio remoto, especifique o índice remoto do qual a reindexação será feita e o índice local para o qual reindexar:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Você deve adicionar 443 no final do endpoint do domínio remoto para verificar a validade.
Para verificar se o índice foi copiado para o domínio local, envie essa solicitação para o domínio local:
GET local_index/_search
Se a reindexação remota estiver em uma região diferente do domínio local, passe seu nome de região, como nesta solicitação de exemplo:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "region": "eu-west-1" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
No caso de regiões isoladas, como AWS GovCloud (US) regiões da China, o endpoint pode não estar acessível porque seu usuário do IAM não é reconhecido nessas regiões.
Se o domínio remoto estiver protegido por autenticação básica, especifique o nome de usuário e senha:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username
", "password": "password
" }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Reindexe dados entre domínios OpenSearch de serviço quando o controle remoto está em uma VPC
Cada domínio OpenSearch de serviço é composto por sua própria infraestrutura interna de nuvem privada virtual (VPC). Quando você cria um novo domínio em uma OpenSearch Service VPC existente, uma interface de rede elástica é criada para cada nó de dados na VPC.
Como a operação de reindexação remota é executada a partir do domínio de OpenSearch serviço remoto e, portanto, dentro de sua própria VPC privada, você precisa de uma forma de acessar a VPC do domínio local. Você pode fazer isso usando o recurso de conexão de endpoint VPC integrado para estabelecer uma conexão ou configurando um proxy. AWS PrivateLink
Se o seu domínio local usa a OpenSearch versão 1.0 ou posterior, você pode usar o console ou o AWS CLI para criar uma AWS PrivateLink conexão. Uma AWS PrivateLink conexão permite que os recursos na VPC local se conectem de forma privada aos recursos na VPC remota dentro da mesma. Região da AWS
Para criar uma conexão de VPC endpoint, o domínio de origem a ser reindexado deve estar em uma VPC local, e os domínios de origem e destino devem estar no mesmo. Região da AWS
Você pode usar a reindexação remota com o console para copiar índices entre dois domínios que compartilham uma conexão de endpoint da VPC.
-
Navegue até o console do Amazon OpenSearch Service emhttps://console.aws.amazon.com/aos/
. -
No painel de navegação à esquerda, escolha Domínios.
-
Selecione o domínio local ou o domínio para o qual você deseja copiar dados. Isso abre a página de detalhes do domínio. Selecione a guia Conexões abaixo das informações gerais e escolha Solicitar.
-
Na página Solicitar conexão, selecione Conexão de endpoint da VPC para seu modo de conexão e insira outros detalhes relevantes. Esses detalhes incluem o domínio remoto, que é o domínio do qual você deseja copiar dados. Em seguida, escolha Solicitar.
-
Navegue até a página de detalhes do domínio remoto, selecione a guia Conexões e encontre a tabela Conexões de entrada. Marque a caixa de seleção ao lado do nome do domínio do qual você acabou de criar a conexão (o domínio local). Escolha Aprovar.
-
Retorne ao domínio local, escolha a guia Conexões e encontre a tabela Conexões de saída. Depois que a conexão entre os dois domínios estiver ativa, um endpoint ficará disponível na coluna Endpoint na tabela. Copie o endpoint.
-
Abra o painel do domínio local e escolha Ferramentas de desevolvedor na barra de navegação à esquerda. Para confirmar que o índice do domínio remoto ainda não existe no seu domínio local, execute a seguinte solicitação GET.
remote-domain-index-name
Substitua pelo seu próprio nome de índice.GET
remote-domain-index-name
/_search { "query":{ "match_all":{} } }Na saída, você verá um erro que indica que o índice não foi encontrado.
-
Abaixo da sua solicitação GET, crie uma solicitação POST e use seu endpoint como host remoto, da seguinte maneira.
POST _reindex { "source":{ "remote":{ "host":"
connection-endpoint
", "username":"username
", "password":"password
" }, "index":"remote-domain-index-name
" }, "dest":{ "index":"local-domain-index-name
" } }Execute essa solicitação.
-
Execute a solicitação GET novamente. A saída agora deve indicar que o índice local existe. Você pode consultar esse índice para verificar se OpenSearch copiou todos os dados do índice remoto.
Você pode usar a reindexação remota com a API para copiar índices entre dois domínios que compartilham uma conexão de endpoint da VPC.
-
Use a operação da CreateOutboundConnectionAPI para solicitar uma nova conexão do seu domínio local com seu domínio remoto.
POST https://es.
region
.amazonaws.com/2021-01-01/opensearch/cc/outboundConnection { "ConnectionAlias": "remote-reindex-example", "ConnectionMode": "VPC_ENDPOINT", "LocalDomainInfo": { "AWSDomainInformation": { "DomainName": "local-domain-name
", "OwnerId": "aws-account-id
", "Region": "region
" } }, "RemoteDomainInfo": { "AWSDomainInformation": { "DomainName": "remote-domain-name
", "OwnerId": "aws-account-id
", "Region": "region
" } } }Você recebe um
ConnectionId
na resposta. Salve essa ID para a próxima etapa. -
Use a operação da AcceptInboundConnectionAPI com seu ID de conexão para aprovar a solicitação do domínio local.
PUT https://es.
region
.amazonaws.com/2021-01-01/opensearch/cc/inboundConnection/ConnectionId
/accept -
Use a operação DescribeOutboundConnectionsda API para recuperar o endpoint do seu domínio remoto.
{ "Connections": [ { "ConnectionAlias": "remote-reindex-example", "ConnectionId": "
connection-id
", "ConnectionMode": "VPC_ENDPOINT", "ConnectionProperties": { "Endpoint": "connection-endpoint
" }, ... } ] }Salve o
connection-endpoint
para usar na Etapa 5. -
Para confirmar que o índice do domínio remoto ainda não existe no seu domínio local, execute a seguinte solicitação GET.
remote-domain-index-name
Substitua pelo seu próprio nome de índice.GET
local-domain-endpoint
/remote-domain-index-name
/_search { "query":{ "match_all":{} } }Na saída, você verá um erro que indica que o índice não foi encontrado.
-
Crie uma solicitação POST e use seu endpoint como host remoto, da seguinte maneira.
POST
local-domain-endpoint
/_reindex { "source":{ "remote":{ "host":"connection-endpoint
", "username":"username
", "password":"password
" }, "index":"remote-domain-index-name
" }, "dest":{ "index":"local-domain-index-name
" } }Execute essa solicitação.
-
Execute a solicitação GET novamente. A saída agora deve indicar que o índice local existe. Você pode consultar esse índice para verificar se OpenSearch copiou todos os dados do índice remoto.
Se o domínio remoto estiver hospedado em uma VPC e você não quiser usar o atributo de conexão endpoint da VPC, você deverá configurar um proxy com um endpoint acessível publicamente. Nesse caso, o OpenSearch Service exige um endpoint público porque não tem a capacidade de enviar tráfego para sua VPC.
Quando você executa um domínio no modo de VPC, um ou mais endpoints são colocados na sua VPC. No entanto, esses endpoints são apenas para tráfego que entra no domínio dentro da VPC e não permitem tráfego na própria VPC.
O comando remote reindex é executado a partir do domínio local, portanto, o tráfego de origem não consegue usar esses endpoints para acessar o domínio remoto. É por isso que um proxy é necessário nesse caso de uso. O domínio proxy deve ter um certificado assinado por uma autoridade de certificação (CA) pública. Não há suporte a certificados CA autoassinados ou privados.
Reindexe dados entre domínios que não são OpenSearch de serviço
Se o índice remoto estiver hospedado fora do OpenSearch Service, como em uma EC2 instância autogerenciada, defina o external
parâmetro como: true
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "username": "username", "password": "password", "external": true }, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Nesse caso, somente a autenticação básica com um nome de usuário e senha é suportada. O domínio remoto deve ter um endpoint acessível ao público (mesmo que esteja na mesma VPC do domínio de serviço OpenSearch local) e um certificado assinado por uma CA pública. Não há suporte para certificados CA autoassinados ou privados.
Reindexar conjuntos de dados grandes
A reindexação remota envia uma solicitação de rolagem para o domínio remoto com os seguintes valores padrão:
-
Contexto de pesquisa de 5 minutos
-
Tempo limite de soquete de 30 segundos
-
Tamanho do lote 1.000
Recomendamos ajustar esses parâmetros para acomodar seus dados. Para documentos grandes, considere um tamanho de lote menor e/ou um tempo limite mais longo. Para obter mais informações sobre pesquisa, consulte Pesquisa de rolagem
POST _reindex?pretty=true&scroll=10h&wait_for_completion=false { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443", "socket_timeout": "60m" }, "size": 100, "index": "remote_index
" }, "dest": { "index": "local_index
" } }
Também recomendamos adicionar as seguintes configurações ao índice local para melhorar a performance:
PUT local_index { "settings": { "refresh_interval": -1, "number_of_replicas": 0 } }
Após a conclusão do processo de reindexação, você poderá definir a contagem de réplicas desejada e remover a configuração de intervalo de atualização.
Para reindexar somente um subconjunto de documentos selecionados por meio de uma consulta, envie esta solicitação para o domínio local:
POST _reindex { "source": { "remote": { "host": "https://
remote-domain-endpoint
:443" }, "index": "remote_index
", "query": { "match": { "field_name": "text" } } }, "dest": { "index": "local_index
" } }
A reindexação remota não oferece suporte a fatiamento. Por isso, você não pode executar várias operações de rolagem para a mesma solicitação em paralelo.
Configurações da reindexação remota
Além das opções de reindexação padrão, o OpenSearch Service oferece suporte às seguintes opções:
Opções | Valores válidos | Descrição | Obrigatório |
---|---|---|---|
externo | Booliano | Se o domínio remoto não for um domínio OpenSearch de serviço ou se você estiver reindexando entre dois domínios VPC, especifique como. true |
Não |
região | String | Se o domínio remoto estiver em uma região diferente, especifique o nome da região. | Não |