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á.
Tutorial: migração para o Amazon OpenSearch Service
Os snapshots de índices são uma maneira popular de realizar migração de um cluster autogerenciado do OpenSearch ou obsoleto do Elasticsearch para o Amazon OpenSearch Service. Em termos gerais, o processo consiste nas seguintes etapas:
-
Faça um snapshot do cluster existente e carregue do snapshot para um bucket do Amazon S3.
-
Crie um domínio do OpenSearch Service.
-
Conceda ao OpenSearch Service permissões para acessar o bucket e verifique se você tem permissões para trabalhar com snapshots.
-
Restaure o snapshot no domínio do OpenSearch Service.
Esta demonstração fornece etapas mais detalhadas e opções alternativas, quando aplicável.
Obter e carregar do snapshot
Embora você possa usar o plug-in repository-s3opensearch.yml
(ou o elasticsearch.yml
, se estiver usando um cluster Elasticsearch), reiniciar cada nó, adicionar suas credenciais da AWS e, finalmente, obter o snapshot. O plug-in é uma ótima opção para uso contínuo ou para migrar clusters maiores.
Para clusters menores, uma abordagem única é fazer um snapshot do sistema de arquivos compartilhado
Para obter um snapshot e carregar no Amazon S3
-
Adicione a configuração
path.repo
aoopensearch.yml
(ou aoElasticsearch.yml
) em todos os nós e, em seguida, reinicie cada nó.path.repo: ["
/my/shared/directory/snapshots
"] -
Registre um repositório de snapshots
, o que é obrigatório para poder tirar um snapshot. Um repositório é apenas um local de armazenamento: um sistema de arquivos compartilhados, o Amazon S3, o Sistema de Arquivos Distribuído do Hadoop (HDFS) etc. Nesse caso, usaremos um sistema de arquivos compartilhados (“fs”): PUT _snapshot/
my-snapshot-repo-name
{ "type": "fs", "settings": { "location": "/my/shared/directory/snapshots
" } } -
Faça o snapshot:
PUT _snapshot/
my-snapshot-repo-name
/my-snapshot-name
{ "indices": "migration-index1
,migration-index2
,other-indices-*
", "include_global_state": false } -
Instale a AWS CLI
, e execute aws configure
para adicionar suas credenciais. -
Navegue até o diretório de snapshots. Depois disso, execute os seguintes comandos para criar um novo bucket do S3 e carregar do conteúdo do diretório de snapshots para esse bucket:
aws s3 mb s3://
bucket-name
--regionus-west-2
aws s3 sync . s3://bucket-name
--sse AES256Dependendo do tamanho do snapshot e da velocidade da sua conexão com a Internet, essa operação pode demorar um pouco.
Criar um domínio
Embora o console seja a maneira mais fácil de criar um domínio, nesse caso, você já tem o terminal aberto e a AWS CLI instalada. Modifique o seguinte comando para criar um domínio que atenda às suas necessidades:
aws opensearch create-domain \ --domain-name
migration-domain
\ --engine-versionOpenSearch_1.0
\ --cluster-config InstanceType=c5.large.search,InstanceCount=2 \ --ebs-options EBSEnabled=true,VolumeType=gp2,VolumeSize=100 \ --node-to-node-encryption-options Enabled=true \ --encryption-at-rest-options Enabled=true \ --domain-endpoint-options EnforceHTTPS=true,TLSSecurityPolicy=Policy-Min-TLS-1-2-2019-07 \ --advanced-security-options Enabled=true,InternalUserDatabaseEnabled=true,MasterUserOptions='{MasterUserName=master-user
,MasterUserPassword=master-user-password
}' \ --access-policies '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["*"]},"Action":["es:ESHttp*"],"Resource":"arn:aws:es:us-west-2
:123456789012
:domain/migration-domain
/*"}]}' \ --regionus-west-2
Da maneira em que se encontra, o comando cria um domínio acessível à Internet com dois nós de dados, cada um com 100 GiB de armazenamento. Ele também habilita o controle de acesso refinado com autenticação básica de HTTP e todas as configurações de criptografia. Use o console do OpenSearch Service se for necessária uma configuração de segurança mais avançada, como uma VPC.
Antes de emitir o comando, altere o nome do domínio, as credenciais do usuário mestre e o número da conta. Especifique a mesma Região da AWS usada para o bucket do S3 e uma versão do OpenSearch/Elasticsearch compatível com seu snapshot.
Importante
Os snapshots são compatíveis somente com versões posteriores e somente com uma versão principal. Por exemplo, você não pode restaurar um snapshot de um OpenSearch 1. cluster x em um Elasticsearch 7. cluster x, somente um OpenSearch 1. x ou 2. cluster x. A versão secundária também é importante. Não é possível restaurar um snapshot de um cluster 5.3.3 autogerenciado em um domínio do OpenSearch Service 5.3.2. Recomendamos escolher a versão mais recente do OpenSearch ou Elasticsearch compatível com seu snapshot. Para obter uma tabela de versões compatíveis, consulte Como usar um snapshot para migrar dados.
Conceder permissões para o bucket do S3
No console do AWS Identity and Access Management (IAM), crie uma função com as seguintes permissões e relação de confiança. Ao criar a função, escolha S3 como o Serviço da AWS. Nomeie a função como OpenSearchSnapshotRole
para que ela seja fácil de encontrar.
Permissões
{ "Version": "2012-10-17", "Statement": [{ "Action": [ "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
bucket-name
" ] }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::bucket-name
/*" ] } ] }
Relação de confiança
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Em seguida, dê ao seu perfil do IAM pessoal permissões para assumir OpenSearchSnapshotRole
. Crie a seguinte política e anexe-a à sua identidade:
Permissões
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
123456789012
:role/OpenSearchSnapshotRole" } ] }
Mapear a função de snapshot no OpenSearch Dashboards (se estiver usando um controle de acesso refinado)
Se você habilitou o controle de acesso detalhado, mesmo se usar a autenticação básica HTTP para todos os outros fins, precisará mapear o perfil do manage_snapshots
para o seu perfil do IAM para poder trabalhar com snapshots.
Para conceder à sua identidade permissões para trabalhar com snapshots
-
Faça login no Dashboards usando as credenciais de usuário primário especificadas ao criar o domínio do OpenSearch Service. É possível encontrar o URL do Dashboards no console do OpenSearch Service. Ele segue o formato
https://
.domain-endpoint
/_dashboards/ -
No menu principal, escolha Segurança, Funções e selecione a função manage_snapshots.
-
Escolha Usuários mapeados e Gerenciar mapeamento.
-
Adicione o ARN do domínio do seu perfil do IAM pessoal no campo apropriado. O ARN assume um dos seguintes formatos:
arn:aws:iam::
123456789123
:user/user-name
arn:aws:iam::
123456789123
:role/role-name
-
Selecione Mapa e confirme se o perfil aparece em Usuários mapeados.
Restaure o snapshot
Neste momento, você tem duas maneiras de acessar o domínio do OpenSearch Service: a autenticação básica HTTP com suas credenciais de usuário primário ou a autenticação da AWS usando suas credenciais do IAM. Como os snapshots usam o Amazon S3, o qual não tem um conceito de usuário primário, é necessário usar suas credenciais do IAM para registrar o repositório de snapshots com seu domínio do OpenSearch Service.
A maioria das linguagens de programação tem bibliotecas para ajudar com a assinatura de solicitações, mas a abordagem mais simples é usar uma ferramenta como o Postman
![Postman interface showing Authorization settings for AWS API request with Signature type.](images/migration2.png)
Como restaurar o snapshot
Independentemente de como você optar por assinar suas solicitações, a primeira etapa é registrar o repositório:
PUT _snapshot/
my-snapshot-repo-name
{ "type": "s3", "settings": { "bucket": "bucket-name
", "region": "us-west-2
", "role_arn": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole" } }Depois disso, liste os snapshots no repositório e encontre o que deseja restaurar. Neste momento, é possível continuar usando o Postman ou alternar para uma ferramenta como o curl
. Abreviatura
GET _snapshot/
my-snapshot-repo-name
/_allcurl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_snapshot/my-snapshot-repo-name
/_allRestaure o snapshot.
Abreviatura
POST _snapshot/
my-snapshot-repo-name
/my-snapshot-name
/_restore { "indices": "migration-index1
,migration-index2
,other-indices-*
", "include_global_state": false }curl
curl -XPOST -u '
master-user
:master-user-password
' https://domain-endpoint
/_snapshot/my-snapshot-repo-name
/my-snapshot-name
/_restore \ -H 'Content-Type: application/json' \ -d '{"indices":"migration-index1
,migration-index2
,other-indices-*
","include_global_state":false}'Por fim, verifique se seus índices foram restaurados conforme o esperado.
Abreviatura
GET _cat/indices?v
curl
curl -XGET -u '
master-user
:master-user-password
' https://domain-endpoint
/_cat/indices?v
Neste momento, a migração está concluída. Você pode configurar seus clientes para usar o novo endpoint do OpenSearch Service, redimensionar o domínio para se adequar à sua workload, verificar a contagem de fragmentos para seus índices, alternar para um usuário primário do IAM ou começar a criar visualizações no OpenSearch Dashboards.