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
- Reindexar dados entre os domínios da Internet OpenSearch do Serviço
- Reindexe dados entre domínios OpenSearch de serviço quando o controle remoto estiver em um VPC
- Reindexe dados entre domínios que não são OpenSearch de serviço
- Reindexar conjuntos de dados grandes
- Configurações da reindexação remota
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 umVPC, o domínio local deve ter acesso aoVPC. Esse processo varia de acordo com a configuração da rede, mas provavelmente envolve a conexão a uma rede gerenciada VPN ou o uso da conexão de VPC endpoint nativa. Para saber mais, consulte Lançamento de seus domínios OpenSearch do Amazon Service em um VPC.
-
A solicitação deve ser autorizada pelo domínio remoto como qualquer outra REST solicitação. 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 OpenSearch Service.
-
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 domínio local com um endpoint acessível ao público e você tenha IAM credenciais assinadas.
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 IAM usuário 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 estiver em um 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 um OpenSearch serviço existenteVPC, uma interface de rede elástica é criada para cada nó de dados noVPC.
Como a operação de reindexação remota é executada a partir do domínio de OpenSearch serviço remoto e, portanto, dentro de seu próprio domínio privadoVPC, você precisa de uma forma de VPC acessar o domínio local. Você pode fazer isso usando o recurso de conexão de VPC endpoint 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 recursos no local VPC se conectem de forma privada aos recursos remotos VPC 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 um local VPC 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 VPC conexão de endpoint.
-
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 VPCEndpoint Connection 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 de domínio remoto ainda não existe em seu domínio local, execute a GET solicitação a seguir.
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 GET solicitação, crie uma POST solicitação 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 GET solicitação 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 o API para copiar índices entre dois domínios que compartilham uma VPC conexão de endpoint.
-
Use a CreateOutboundConnectionAPIoperação para solicitar uma nova conexão do seu domínio local para 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 AcceptInboundConnectionAPIoperação com sua 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 DescribeOutboundConnectionsAPIoperação 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 de domínio remoto ainda não existe em seu domínio local, execute a GET solicitação a seguir.
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 POST solicitação 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 GET solicitação 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 um VPC e você não quiser usar o recurso de conexão de VPC endpoint, 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 o seuVPC.
Quando você executa um domínio no VPCmodo, um ou mais endpoints são colocados no seuVPC. No entanto, esses endpoints são apenas para tráfego que entra no domínio dentro do VPC e não permitem tráfego para dentro do VPC próprio.
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 no VPC mesmo domínio do OpenSearch Serviço 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 |
---|---|---|---|
external | Booleano | Se o domínio remoto não for um domínio OpenSearch de serviço ou se você estiver reindexando entre dois VPC domínios, 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 |