

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á.

# Usando o Redis OSS como alvo para AWS Database Migration Service
<a name="CHAP_Target.Redis"></a>

O Redis OSS é um armazenamento de estrutura de dados de código aberto em memória utilizado como um banco de dados, cache e agente de mensagens. O gerenciamento de dados na memória pode resultar em operações de leitura ou gravação que demoram menos de um milissegundo e centenas de milhões de operações executadas a cada segundo. Como um datastore em memória, o Redis OSS capacita as aplicações que exigem tempos de resposta inferiores a um milissegundo.

Usando AWS DMS, você pode migrar dados de qualquer banco de dados de origem compatível para um armazenamento de dados Redis OSS de destino com o mínimo de tempo de inatividade. Para ter informações adicionais sobre o Redis OSS, consulte a [documentação do Redis OSS](https://redis.io/documentation).

Além do Redis OSS local, AWS Database Migration Service oferece suporte ao seguinte:
+ [Amazon ElastiCache (Redis OSS) como armazenamento](https://aws.amazon.com/elasticache/redis/) de dados de destino. ElastiCache (Redis OSS) trabalha com seus clientes do Redis OSS e usa o formato de dados aberto do Redis OSS para armazenar seus dados.
+ [Amazon MemoryDB](https://aws.amazon.com/memorydb/) como datastore de destino. O MemoryDB é compatível com o Redis OSS e permite que você crie aplicativos usando todas as estruturas de dados e comandos do Redis OSS em uso atualmente APIs.

Para obter informações adicionais sobre como trabalhar com o Redis OSS como alvo AWS DMS, consulte as seções a seguir: 

**Topics**
+ [Pré-requisitos para usar um cluster Redis OSS como destino para AWS DMS](#CHAP_Target.Redis.Prerequisites)
+ [Limitações ao usar o Redis como alvo para AWS Database Migration Service](#CHAP_Target.Redis.Limitations)
+ [Migrar dados de um banco de dados relacional ou não relacional para um destino do Redis OSS](#CHAP_Target.Redis.Migrating)
+ [Especificar as configurações de endpoint para o Redis OSS como destino](#CHAP_Target.Redis.EndpointSettings)

## Pré-requisitos para usar um cluster Redis OSS como destino para AWS DMS
<a name="CHAP_Target.Redis.Prerequisites"></a>

O DMS é compatível com um destino do Redis OSS on-premises em uma configuração independente ou como um cluster do Redis OSS em que os dados são automaticamente *fragmentados* em vários nós. A fragmentação é o processo de separar os dados em blocos menores, chamados de fragmentos, que são espalhados por vários servidores ou nós. Na verdade, um fragmento é uma partição de dados que contém um subconjunto do conjunto total de dados e serve como uma fatia da workload geral.

Como o Redis OSS é um datastore NoSQL de chave/valor, a convenção de nomenclatura de chaves do Redis OSS a ser utilizada quando a origem for um banco de dados relacional é **schema-name.table-name.primary-key**. No Redis OSS, a chave e o valor não devem conter o caractere especial %. Caso contrário, o DMS ignorará o registro. 

**nota**  
Se você estiver usando ElastiCache (Redis OSS) como destino, o DMS suporta somente configurações *habilitadas para o modo de cluster*. Para obter mais informações sobre o uso do ElastiCache (Redis OSS) versão 6.x ou superior para criar um armazenamento de dados de destino habilitado para o modo de cluster, consulte [Introdução](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/GettingStarted.html) no Guia do usuário da *Amazon ElastiCache (Redis OSS*). 

Antes de começar a migração de um banco de dados, inicie o cluster do Redis OSS com os seguintes critérios.
+ O cluster tem um ou mais fragmentos.
+ Se você estiver usando um destino ElastiCache (Redis OSS), certifique-se de que seu cluster não use o controle de acesso baseado em funções do IAM. Em vez disso, utilize o Redis OSS Auth para autenticar usuários.
+ Ative multi-AZ (zonas de disponibilidade).
+ Verifique se o cluster tem memória suficiente disponível para comportar os dados a serem migrados do banco de dados. 
+ Verifique se todos os dados do cluster do Redis OSS de destino estão limpos antes de iniciar a tarefa de migração inicial.

Determine os requisitos de segurança da migração de dados antes de criar a configuração do cluster. O DMS é compatível com a migração para grupos de replicação de destino, independentemente de sua configuração de criptografia. Mas é possível ativar ou desativar a criptografia somente ao criar a configuração do cluster.

## Limitações ao usar o Redis como alvo para AWS Database Migration Service
<a name="CHAP_Target.Redis.Limitations"></a>

Aplicam-se as seguintes limitações ao utilizar o Redis OSS como destino:
+ Como o Redis OSS é um datastore no-sql de chave/valor, a convenção de nomenclatura de chaves do Redis OSS a ser utilizada quando a origem for um banco de dados relacional é `schema-name.table-name.primary-key`. 
+ No Redis OSS, a chave/valor não pode conter o caractere especial `%`. Caso contrário, o DMS ignorará o registro.
+ O DMS não migrará linhas que contenham o caractere `%`.
+ O DMS não migrará campos que contenham o caractere `%` no nome do campo.
+ O modo Full LOB não é compatível.
+  Não há suporte para uma Autoridade de Certificação (CA) privada ao usar ElastiCache (Redis OSS) como destino.
+ AWS DMS não oferece suporte a dados de origem contendo `'\0'` caracteres incorporados ao usar o Redis como um endpoint de destino. Os dados contendo `'\0'` caracteres incorporados serão truncados no primeiro `'\0'` caractere.

## Migrar dados de um banco de dados relacional ou não relacional para um destino do Redis OSS
<a name="CHAP_Target.Redis.Migrating"></a>

É possível migrar dados de qualquer datastore SQL ou NoSQL de origem diretamente para um destino do Redis OSS. A configuração e o início de uma migração para um destino do Redis OSS é semelhante a qualquer migração de carga máxima e de captura de dados de alteração utilizando o console ou a API do DMS. Para executar uma migração de banco de dados para um destino do Redis OSS, faça o seguinte.
+ Crie uma instância de replicação para executar todos os processos da migração. Para obter mais informações, consulte [Criar uma instância de replicação](CHAP_ReplicationInstance.Creating.md).
+ Especifique um endpoint de origem. Para obter mais informações, consulte [Criar endpoints de origem e de destino](CHAP_Endpoints.Creating.md).
+ Localize o nome DNS e o número da porta do cluster.
+ Baixe um pacote de certificado que pode ser utilizado para verificar conexões SSL.
+ Especifique um endpoint de destino, conforme descrito abaixo.
+ Crie uma tarefa ou um conjunto de tarefas para definir as tabelas e os processos de replicação a serem utilizados. Para obter mais informações, consulte [Criar uma tarefa](CHAP_Tasks.Creating.md).
+ Migre dados do banco de dados de origem para o cluster de destino.

Você inicia uma migração do banco de dados de uma duas maneiras:

1. Você pode escolher o AWS DMS console e executar cada etapa lá.

1. Você pode usar o AWS Command Line Interface (AWS CLI). [Para obter mais informações sobre como usar a CLI com AWS DMS, consulte AWS CLI . AWS DMS](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html)

**Como localizar o nome DNS e o número da porta do cluster**
+ Use o AWS CLI comando a seguir para `replication-group-id` fornecer o nome do seu grupo de replicação.

  ```
  aws elasticache describe-replication-groups --replication-group-id myreplgroup
  ```

  Aqui, a saída mostra o nome DNS no atributo `Address` e o número da porta no atributo `Port` do nó primário no cluster. 

  ```
   ...
  "ReadEndpoint": {
  "Port": 6379,
  "Address": "myreplgroup-
  111.1abc1d.1111.uuu1.cache.example.com"
  }
  ...
  ```

  Se estiver utilizando o MemoryDB como destino, utilize o comando da AWS CLI a seguir para fornecer um endereço de endpoint ao cluster do Redis OSS. 

  ```
  aws memorydb describe-clusters --clusterid clusterid
  ```

**Baixe um pacote de certificado a ser utilizado para verificar as conexões SSL.**
+ Insira o comando `wget` na linha de comando. O Wget é uma ferramenta utilitária de linha de comando GNU gratuita utilizada para baixar arquivos na internet.

  ```
  wget https://s3.aws-api-domain/rds-downloads/rds-combined-ca-bundle.pem
  ```

  Aqui, `aws-api-domain` preenche o domínio do Amazon S3 em AWS sua região necessário para acessar o bucket do S3 especificado e rds-combined-ca-bundle o arquivo.pem que ele fornece.

**Para criar um endpoint de destino usando o console AWS DMS**

Esse endpoint é para o destino do Redis OSS que já está em execução. 
+ No console, escolha **Endpoints** no painel de navegação e escolha **Criar endpoint**. A tabela a seguir descreve as configurações.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/CHAP_Target.Redis.html)

Depois de você concluir o fornecimento de todas as informações do endpoint, o AWS DMS cria o endpoint de destino do Redis OSS para utilização durante a migração do banco de dados.

Para obter informações sobre como criar uma tarefa de migração e iniciar a migração do banco de dados, consulte [Criar uma tarefa](CHAP_Tasks.Creating.md).

## Especificar as configurações de endpoint para o Redis OSS como destino
<a name="CHAP_Target.Redis.EndpointSettings"></a>

Para criar ou modificar um endpoint de destino, é possível usar o console `CreateEndpoint` ou as operações de API `ModifyEndpoint`. 

**Para um destino do Redis OSS no AWS DMS console, especifique as **configurações específicas do endpoint na página Criar endpoint** **ou Modificar o console do endpoint**.**

Ao utilizar as operações da API `CreateEndpoint` e `ModifyEndpoint`, especifique os parâmetros de solicitação para a opção `RedisSettings`. O exemplo a seguir mostra como fazer isso utilizando a AWS CLI.

```
aws dms create-endpoint --endpoint-identifier my-redis-target
--endpoint-type target --engine-name redis --redis-settings 
'{"ServerName":"sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com","Port":6379,"AuthType":"auth-token", 
 "SslSecurityProtocol":"ssl-encryption", "AuthPassword":"notanactualpassword"}'

{
    "Endpoint": {
        "EndpointIdentifier": "my-redis-target",
        "EndpointType": "TARGET",
        "EngineName": "redis",
        "EngineDisplayName": "Redis",
        "TransferFiles": false,
        "ReceiveTransferredFiles": false,
        "Status": "active",
        "KmsKeyId": "arn:aws:kms:us-east-1:999999999999:key/x-b188188x",
        "EndpointArn": "arn:aws:dms:us-east-1:555555555555:endpoint:ABCDEFGHIJKLMONOPQRSTUVWXYZ",
        "SslMode": "none",
        "RedisSettings": {
            "ServerName": "sample-test-sample.zz012zz.cluster.eee1.cache.bbbxxx.com",
            "Port": 6379,
            "SslSecurityProtocol": "ssl-encryption",
            "AuthType": "auth-token"
        }
    }
}
```

Os parâmetros `--redis-settings` são os seguintes:
+ `ServerName`: (obrigatório) do tipo `string`, especifica o cluster do Redis OSS para o qual os dados serão migrados e está na sua mesma VPC.
+ `Port`: (obrigatório) do tipo `number`, o valor da porta utilizada para acessar o endpoint.
+ `SslSecurityProtocol`: (opcional) os valores válidos incluem `plaintext` e `ssl-encryption`. O padrão é `ssl-encryption`. 

  A opção `plaintext` não fornece a criptografia Transport Layer Security (TLS) para o tráfego entre o endpoint e o banco de dados. 

  Utilize `ssl-encryption` para fazer uma conexão criptografada. `ssl-encryption` não exige o ARN de uma Autoridade de Certificação (CA) SSL para verificar o certificado de um servidor, mas um pode ser identificado opcionalmente utilizando a configuração `SslCaCertificateArn`. Se o ARN de autoridade de certificação não for fornecido, o DMS utilizará a CA raiz da Amazon.

  Ao utilizar um destino do Redis OSS on-premises, é possível utilizar `SslCaCertificateArn` para importar a Autoridade de Certificação (CA) pública ou privada para o DMS e fornecer esse ARN para autenticação do servidor. Não há suporte para uma CA privada ao usar ElastiCache (Redis OSS) como destino.
+ `AuthType`: (obrigatório) indica o tipo de autenticação a ser executada ao conectar-se ao Redis OSS. Os valores válidos são `none`, `auth-token` e `auth-role`.

  A `auth-token` opção exige que um "*AuthPassword*" seja fornecido, enquanto a `auth-role` opção exige que *AuthUserName* "" e *AuthPassword* "” sejam fornecidos.