

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 Service OpenSearch
<a name="migration"></a>

Os instantâneos de índice são uma forma popular de migrar de um cluster Elasticsearch autogerenciado OpenSearch ou legado para o Amazon Service. OpenSearch Em termos gerais, o processo consiste nas seguintes etapas:

1. Faça um snapshot do cluster existente e carregue do snapshot para um bucket do Amazon S3.

1. Crie um domínio OpenSearch de serviço.

1. Conceda ao OpenSearch serviço permissões para acessar o bucket e garanta que você tenha permissões para trabalhar com snapshots.

1. Restaure o instantâneo no domínio do OpenSearch Serviço.

Esta demonstração fornece etapas mais detalhadas e opções alternativas, quando aplicável.

## Obter e carregar do snapshot
<a name="migration-take-snapshot"></a>

Embora você possa usar o plug-in [repository-s3](https://docs.opensearch.org/latest/opensearch/snapshot-restore/#amazon-s3) para tirar instantâneos diretamente no S3, você precisa instalar o plug-in em cada nó, ajustar `opensearch.yml` (ou `elasticsearch.yml` se estiver usando um cluster do Elasticsearch), reiniciar cada nó, adicionar suas credenciais e, finalmente, tirar o instantâneo. AWS O plug-in é uma ótima opção para uso contínuo ou para migrar clusters maiores.

Para clusters menores, uma abordagem única é tirar um [instantâneo do sistema de arquivos compartilhado](https://docs.opensearch.org/latest/opensearch/snapshot-restore/#shared-file-system) e, em seguida, usá-lo AWS CLI para carregá-lo no S3. Se você já tiver um snapshot, avance para a etapa 4.

****Para obter um snapshot e carregar no Amazon S3****

1. Adicione a configuração `path.repo` ao `opensearch.yml` (ou ao `Elasticsearch.yml`) em todos os nós e, em seguida, reinicie cada nó.

   ```
   path.repo: ["/my/shared/directory/snapshots"]
   ```

1. Registre um [repositório de snapshots](https://opensearch.org/docs/latest/opensearch/snapshot-restore/#register-repository), 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"
     }
   }
   ```

1. Faça o snapshot:

   ```
   PUT _snapshot/my-snapshot-repo-name/my-snapshot-name
   {
     "indices": "migration-index1,migration-index2,other-indices-*",
     "include_global_state": false
   }
   ```

1. Instale a [AWS CLI](https://aws.amazon.com/cli/), e execute `aws configure` para adicionar suas credenciais.

1. 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://amzn-s3-demo-bucket --region us-west-2
   aws s3 sync . s3://amzn-s3-demo-bucket --sse AES256
   ```

   Dependendo 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
<a name="migration-create-domain"></a>

Embora o console seja a maneira mais fácil de criar um domínio, nesse caso, você já tem o terminal aberto e AWS CLI instalado. Modifique o seguinte comando para criar um domínio que atenda às suas necessidades:

```
aws opensearch create-domain \
  --domain-name migration-domain \
  --engine-version OpenSearch_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": "arn:aws:iam::aws-region:user/UserName"},"Action":["es:ESHttp*"],"Resource":"arn:aws:es:aws-region:111122223333:domain/migration-domain/*"}]}' \
  --region aws-region
```

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](fgac.md) com autenticação básica de HTTP e todas as configurações de criptografia. Use o console OpenSearch de serviço se precisar de 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 o mesmo Região da AWS que você usou para o bucket do S3 e uma OpenSearch/Elasticsearch versão 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 OpenSearch 1. *x* ou 2. cluster *x.* A versão secundária também é importante. Você não pode restaurar um snapshot de um cluster 5.3.3 autogerenciado em um domínio de serviço OpenSearch 5.3.2. Recomendamos escolher a versão mais recente OpenSearch ou o Elasticsearch compatível com seu snapshot. Para obter uma tabela de versões compatíveis, consulte [Como usar um snapshot para migrar dados](snapshot-based-migration.md). 

## Conceder permissões para o bucket do S3
<a name="migration-permissions"></a>

No console AWS Identity and Access Management (IAM), [crie uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) com as seguintes permissões e [relação de confiança](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy). 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**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Action": [
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket"
      ]
    },
    {
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ]
    }
  ]
}
```

------

**Relação de confiança**

------
#### [ JSON ]

****  

```
{
  "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](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) à sua identidade:

**Permissões**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole"
    }
  ]
}
```

------

### Mapeie a função de snapshot em OpenSearch painéis (se estiver usando controle de acesso refinado)
<a name="migration-snapshot-role"></a>

Se você habilitou o [controle de acesso detalhado](fgac.md#fgac-mapping), 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**

1. Faça login nos painéis usando as credenciais de usuário mestre que você especificou ao criar o domínio do OpenSearch Serviço. Você pode encontrar o URL dos painéis no console de OpenSearch serviço. Ele segue o formato `https://domain-endpoint/_dashboards/`.

1. No menu principal, escolha **Segurança**, **Funções** e selecione a função **manage\$1snapshots**.

1. Escolha **Usuários mapeados** e **Gerenciar mapeamento**. 

1. 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
   ```

1. Selecione **Mapa** e confirme se o perfil aparece em **Usuários mapeados**.

## Restaure o snapshot
<a name="migration-restore"></a>

Neste momento, você tem duas maneiras de acessar seu domínio de OpenSearch serviço: autenticação básica HTTP com suas credenciais de usuário mestre ou AWS autenticação usando suas credenciais do IAM. Como os snapshots usam o Amazon S3, que não tem nenhum conceito do usuário principal, você deve usar suas credenciais do IAM para registrar o repositório de snapshots com seu domínio de serviço. OpenSearch 

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 ](https://www.postman.com/downloads/)e colocar suas credenciais do IAM na seção **Autorização** .

![\[Postman interface showing Authorization settings for AWS API request with Signature type.\]](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/migration2.png)


**Como restaurar o snapshot**

1. 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": "amzn-s3-demo-bucket",
       "region": "us-west-2",
       "role_arn": "arn:aws:iam::123456789012:role/OpenSearchSnapshotRole"
     }
   }
   ```

1. 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](https://curl.haxx.se/).

   **Abreviatura**

   ```
   GET _snapshot/my-snapshot-repo-name/_all
   ```

   **curl**

   ```
   curl -XGET -u 'master-user:master-user-password' https://domain-endpoint/_snapshot/my-snapshot-repo-name/_all
   ```

1. Restaure 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}'
   ```

1. 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 de OpenSearch serviço, [redimensionar o domínio](sizing-domains.md) de acordo com sua carga de trabalho, verificar a contagem de fragmentos de seus índices, mudar para um [usuário mestre do IAM](fgac.md#fgac-concepts) ou começar a criar visualizações em painéis. OpenSearch 