Todos os produtos
Search
Central de documentação

Elasticsearch:Migrar índices do Amazon OpenSearch para o Alibaba Cloud Elasticsearch

Última atualização: Jun 27, 2026

Migre índices do Amazon OpenSearch Service para o Alibaba Cloud Elasticsearch por meio de snapshots. Este guia utiliza clusters Elasticsearch 7.1.0.0.

Como funciona

Esta solução independente de nuvem utiliza o mecanismo de snapshot do Elasticsearch. Use a ferramenta Implementação de Migração do Alibaba Cloud para migrar índices do AWS ES ou dados de snapshot do Tencent Cloud COS para o Alibaba Cloud OSS e, em seguida, restaure-os a partir do repositório OSS. Consulte Backup e Restauração Manuais.

A restauração de snapshots só é possível em clusters da mesma versão ou superior. Consulte Compatibilidade de snapshots.

Contexto

Arquitetura de referência para esta migração:

Architecture for migrating from AWS to Alibaba Cloud ES

Conceitos

  • Elasticsearch: mecanismo de busca e análise distribuído e RESTful. Como núcleo do Elastic Stack, armazena dados centralmente para busca e análise.

  • Kibana: ferramenta de visualização para buscar e analisar dados do Elasticsearch.

  • Amazon OpenSearch Service: serviço gerenciado da AWS que fornece APIs do Elasticsearch e análises em tempo real.

  • Alibaba Cloud Elasticsearch: serviço gerenciado baseado no Elasticsearch open source, projetado para cenários de análise de dados e busca. Oferece controle de acesso de nível empresarial, monitoramento de segurança e alertas, além de relatórios automatizados.

  • Snapshot e restauração: cria snapshots de índices individuais ou de um cluster inteiro em um repositório remoto (sistema de arquivos compartilhado, Amazon S3 ou HDFS) para restauração em uma versão compatível do Elasticsearch.

    • Um snapshot de índice criado na versão 5.x pode ser restaurado na versão 6.x.

    • Um snapshot de índice criado na versão 2.x pode ser restaurado na versão 5.x.

    • Um snapshot de índice criado na versão 1.x pode ser restaurado na versão 2.x.

Visão geral da solução

Etapas da migração:

  1. Crie um índice de base.

    1. Crie um repositório de snapshots e associe-o a um bucket do Amazon Simple Storage Service (Amazon S3).

    2. Faça o primeiro snapshot completo dos índices que deseja migrar.

      Esse snapshot é armazenado automaticamente no bucket do Amazon S3 criado na etapa anterior.

    3. No Alibaba Cloud, crie um bucket do Object Storage Service (OSS) e registre-o como repositório de snapshots para seu cluster do Alibaba Cloud Elasticsearch.

    4. Use o ossimport para transferir os dados do bucket do Amazon S3 para o bucket do Alibaba Cloud OSS.

    5. Restaure esse snapshot completo no cluster do Alibaba Cloud Elasticsearch.

  2. Processe snapshots incrementais periodicamente.

    Repita as etapas anteriores para processar e restaurar snapshots incrementais.

  3. Crie o snapshot final e execute o cutover do serviço.

    1. Interrompa quaisquer serviços que possam modificar os dados do índice.

    2. Faça um snapshot incremental final do domínio de origem do Amazon OpenSearch Service.

    3. Migre o snapshot incremental final para o OSS e restaure-o no cluster do Alibaba Cloud Elasticsearch.

    4. Mude seus serviços para o cluster do Alibaba Cloud Elasticsearch e verifique a migração.

Pré-requisitos

Certifique-se do seguinte:

  • Um domínio do Amazon OpenSearch Service com Elasticsearch 7.1.0.0 foi criado na região de Singapura.

    Consulte Criar um domínio do Amazon OpenSearch Service.

  • Um cluster do Alibaba Cloud Elasticsearch versão 7.1.0.0 foi criado na região China (Hangzhou).

    Consulte Criar um cluster do Alibaba Cloud Elasticsearch.

  • Um bucket do OSS foi criado.

    Este guia utiliza um bucket na região China (Hangzhou) com classe de armazenamento Standard e ACL privada. Todos os outros parâmetros usam as configurações padrão. Consulte Criar buckets.

  • Tenha o índice que deseja migrar pronto. Este tópico usa um índice chamado movies como exemplo.

Pré-requisitos para snapshots manuais na AWS

O Amazon OpenSearch Service cria automaticamente snapshots diários dos shards primários do índice, armazenados em um bucket S3 pré-configurado por 14 dias sem custo adicional. Esses snapshots podem restaurar um domínio, mas não permitem migrar dados para um novo domínio. Para migração, crie snapshots manuais em seu próprio bucket S3. Aplicam-se as taxas padrão de armazenamento S3.

Para criar e restaurar snapshots de índice manualmente, você precisa do IAM e do Amazon S3. Certifique-se de atender aos seguintes pré-requisitos antes de fazer um snapshot.

Pré-requisito

Descrição

Criar um bucket do Amazon S3

Armazena snapshots manuais do domínio do Amazon OpenSearch Service.

Criar uma função IAM

Concede permissões ao Amazon OpenSearch Service. Especifique o Amazon OpenSearch Service na instrução Principal da relação de confiança. Apenas um usuário IAM com permissão para assumir essa função pode registrar o repositório de snapshots.

Criar uma política IAM

Especifica as ações que a função IAM pode executar no bucket S3. Anexe esta política à função IAM. A instrução Resource deve especificar o ARN do bucket S3.

  • Criar um bucket do Amazon S3

    Crie um bucket S3 para armazenar snapshots manuais. Anote seu ARN para uso em:

    • A instrução Resource da política IAM anexada à função IAM.

    • O cliente Python usado para registrar o repositório de snapshots.

    Exemplo de ARN de bucket S3:

    arn:aws:s3:::eric-es-index-backups
  • Criar uma função IAM

    Certifique-se de que a função IAM especifique o Amazon OpenSearch Service (es.amazonaws.com) na instrução Service de sua relação de confiança:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "",
          "Effect": "Allow",
          "Principal": {
            "Service": "es.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }

    Visualize os detalhes da relação de confiança no console IAM.

    View trust relationship

    Nota

    O Amazon OpenSearch Service não está disponível na lista suspensa Selecione role type ao criar uma função para um serviço AWS. Selecione AWS EC2, crie a função e edite a relação de confiança para alterar ec2.amazonaws.com para es.amazonaws.com.

  • Criar uma política IAM

    Crie uma política IAM e anexe-a à função IAM. O exemplo a seguir especifica o ARN do bucket eric-es-index-backups:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Action": [
                    "s3:ListBucket"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:s3:::eric-es-index-backups"
                ]
            },
            {
                "Action": [
                    "s3:GetObject",
                    "s3:PutObject",
                    "s3:DeleteObject"
                ],
                "Effect": "Allow",
                "Resource": [
                    "arn:aws:s3:::eric-es-index-backups/*"
                ]
            }
        ]
    }
    1. Copie o conteúdo da política para o editor de políticas.Policy editor

    2. Revise a política.Policy Summary

    3. Anexe a política IAM à função IAM.Attach IAM policy to role

Etapa 1: Registrar um repositório de snapshots manual

Registre um repositório de snapshots no Amazon OpenSearch Service antes de criar snapshots manuais. Assine a solicitação de registro usando credenciais do usuário ou função especificada na relação de confiança da função IAM. Consulte Pré-requisitos para snapshots manuais na AWS.

Importante

Não é possível usar curl para registrar um repositório de snapshots, pois ele não oferece suporte à assinatura de solicitações da AWS. Use o cliente Python de exemplo (register_snapshot_repository.py) em vez disso.

  1. Baixe o arquivo register_snapshot_repository.py.

  2. Modifique o arquivo do cliente Python de exemplo.

    Atualize os valores destacados para corresponder à sua configuração e salve o arquivo como snapshot.py.

    Parâmetros no arquivo do cliente Python de exemplo:

    Parâmetro

    Descrição

    region

    A região da AWS onde o repositório de snapshots é criado.

    host

    O endpoint do domínio do Amazon OpenSearch Service.

    aws_access_key_id

    O ID da chave de acesso da sua credencial IAM.

    aws_secret_access_key

    A chave de acesso secreta da sua credencial IAM.

    path

    O caminho para o repositório de snapshots.

    data

    Deve incluir o nome e o ARN do bucket S3 criado para a função IAM. Consulte Pré-requisitos para snapshots manuais na AWS.

    Importante
    • Para ativar a criptografia no lado do servidor com chaves gerenciadas pelo S3 para o repositório de snapshots, adicione "server_side_encryption": true ao JSON de configurações.

    • Se o bucket do Amazon S3 estiver na região ap-southeast-1, use "endpoint": "s3.amazonaws.com" em vez de "region": "ap-southeast-1".

  3. Instale o boto-2.48.0.

    O cliente Python de exemplo requer boto 2.x:

    # wget https://pypi.python.org/packages/66/e7/fe1db6a5ed53831b53b8a6695a8f134a58833cadb5f2740802bc3730ac15/boto-2.48.0.tar.gz#md5=ce4589dd9c1d7f5d347363223ae1b970
    # tar zxvf boto-2.48.0.tar.gz
    # cd boto-2.48.0
    # sudo python setup.py install
  4. Execute o cliente Python para registrar o repositório de snapshots.

    # python snapshot.py
  5. No console Kibana do seu domínio do Amazon OpenSearch Service, acesse Dev Tools > Console e execute:

    GET _snapshot

    View request result

Etapa 2: Criar e restaurar o snapshot inicial

  1. Crie um snapshot manualmente no Amazon OpenSearch Service.

    Nota

    Execute os comandos a seguir no console Kibana ou usando curl em uma linha de comando Linux ou macOS.

    • Crie um snapshot chamado snapshot_movies_1 para o índice movies no repositório eric-snapshot-repository.

      PUT _snapshot/eric-snapshot-repository/snapshot_movies_1
      {
      "indices": "movies"
      }
    • Verifique o status do snapshot.

      GET _snapshot/eric-snapshot-repository/snapshot_movies_1

      Check snapshot status

    • No console do Amazon S3, visualize os arquivos de snapshot.View snapshot files in S3

  2. Transfira os dados do snapshot do Amazon S3 para o Alibaba Cloud OSS.

    Consulte Migrar aplicativos do Amazon S3 para o OSS.

    Após a transferência, verifique os dados do snapshot no console OSS.

    Snapshot data in OSS

  3. Restaure o snapshot no cluster do Alibaba Cloud Elasticsearch.

    1. Crie um repositório de snapshots.

      Importante

      Durante uma migração de snapshot do Elasticsearch, garanta que cada cluster utilize um repositório ou caminho de snapshot dedicado. Se vários clusters compartilharem o mesmo repositório, a restauração de dados poderá falhar e ocorrer perda de dados.

      No console Kibana do cluster de destino do Alibaba Cloud Elasticsearch (consulte Fazer login no console Kibana), acesse Dev Tools > Console e crie um repositório de snapshots com o mesmo nome:

      PUT _snapshot/eric-snapshot-repository
      {
      "type": "oss",
      "settings": {
                  "base_path": "my/snapshot/directory"
                  "endpoint": "http://oss-cn-hangzhou-internal.aliyuncs.com", 
                  "access_key_id": "your AccessKeyID",
                  "secret_access_key": "your AccessKeySecret ",
                  "bucket": "eric-oss-aws-es-snapshot-s3",
                  "compress": true
            }
      }
    2. Verifique o status do snapshot chamado snapshot_movies_1.

      GET _snapshot/eric-snapshot-repository/snapshot_movies_1

      View snapshot

      Nota

      Anote os horários de início e término para a migração de snapshot incremental com ossimport:

      • "start_time_in_millis": 1519786844591

      • "end_time_in_millis": 1519786846236

  4. Restaure o snapshot.

    POST _snapshot/eric-snapshot-repository/snapshot_movies_1/_restore
    {
        "indices": "movies"
    }

    Verifique a disponibilidade do índice movies:

    GET movies/_recovery

    Após a restauração bem-sucedida, o índice movies contém três documentos, correspondendo ao domínio do Amazon OpenSearch Service.View ES index data

Etapa 3: Criar e restaurar o snapshot final

  1. Insira dados no índice movies no domínio do Amazon OpenSearch Service.

    O índice movies já possui três documentos. Insira mais dois.

    Insert two more documents

    Use o comando GET movies/_count para verificar o número de documentos no índice.

  2. Crie outro snapshot manualmente.

    Crie outro snapshot. Consulte Criar um snapshot manualmente no Amazon OpenSearch Service.

    PUT _snapshot/eric-snapshot-repository/snapshot_movies_2
    {
    "indices": "movies"
    }

    Verifique o status do snapshot:

    GET _snapshot/eric-snapshot-repository/snapshot_movies_2

    Visualize os arquivos listados no bucket do Amazon S3.

    View files in S3 bucket

  3. Transfira os dados do snapshot incremental do Amazon S3 para o Alibaba Cloud OSS.

    Use o ossimport para migrar dados do S3 para o OSS. Para migrar apenas novos arquivos, defina isSkipExistFile como true em local_job.cfg.

    Quando isSkipExistFile é true, os objetos são ignorados se seu size e LastModifiedTime coincidirem. Quando false (padrão), os objetos existentes são sobrescritos. Esta opção é inválida quando jobType é audit.

    Após a migração, verifique os novos arquivos no OSS.

    New files migrated to OSS

  4. Restaure o snapshot incremental.

    Siga o procedimento de restauração de snapshot em Etapa 2: Criar e restaurar o primeiro snapshot. Feche o índice movies antes da restauração e reabra-o em seguida.

    • Feche o índice movies.

      POST /movies/_close
    • Verifique o status do índice movies.

      GET movies/_stats
    • Restaure o snapshot incremental.

      POST _snapshot/eric-snapshot-repository/snapshot_movies_2/_restore
      {
          "indices": "movies"
      }
    • Abra o índice movies.

      POST /movies/_open

    Após a restauração, o índice movies contém 5 documentos, correspondendo ao domínio do Amazon OpenSearch Service.

    Snapshot restore result

Resumo

Migre dados de índice do Amazon OpenSearch Service para o Alibaba Cloud Elasticsearch utilizando snapshots. Feche os índices no cluster de destino antes da restauração para evitar gravações e solicitações durante a migração.

Recursos relacionados:

Perguntas frequentes

Por que a unicidade do repositório é necessária?

Se vários clusters do Elasticsearch compartilharem o mesmo repositório de snapshots, podem ocorrer os seguintes problemas:

  1. Conflitos de metadados: Vários clusters operando no mesmo repositório podem sobrescrever ou corromper arquivos de metadados, impedindo a identificação correta dos snapshots.

  2. Sobrescrita de dados: Snapshots de clusters diferentes podem sobrescrever os arquivos de dados uns dos outros, causando perda ou corrupção de dados.

  3. Falhas na restauração: O Elasticsearch não consegue determinar quais dados pertencem a qual cluster, fazendo com que as operações de restauração falhem ou restaurem dados incorretos.

Por que as restaurações de snapshot do OSS falham?

Esse erro pode ocorrer se o nome de um objeto de snapshot no OSS contiver um caractere especial, como uma barra (/).

O Alibaba Cloud Elasticsearch não suporta nomes de objetos com caracteres especiais durante a restauração de snapshots do OSS. Use o ossbrowser para mover os dados do snapshot para uma pasta com um nome padrão.