Uso de Redis como destino para AWS Database Migration Service - AWS Database Migration Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de Redis como destino para AWS Database Migration Service

Redis es un almacén de estructura de datos en memoria de código abierto, utilizado como base de datos, caché y agente de mensajes. La administración de datos en memoria puede provocar que las operaciones de lectura o escritura tarden menos de un milisegundo y que se realicen cientos de millones de operaciones por segundo. Como almacén de datos en memoria, Redis potencia las aplicaciones más exigentes que requieren tiempos de respuesta inferiores a un milisegundo.

Con AWS DMS, puede migrar datos de cualquier base de datos de origen compatible a un almacén de datos de Redis de destino con un tiempo de inactividad mínimo. Para obtener información adicional sobre Redis, consulte la Documentación de Redis.

Además de Redis en las instalaciones, AWS Database Migration Service es compatible con lo siguiente:

  • Amazon ElastiCache para Redis como almacén de datos de destino. ElastiCache para Redis funciona con los clientes de Redis y utiliza el formato de datos abierto de Redis para almacenar los datos.

  • Amazon MemoryDB para Redis como almacén de datos de destino. MemoryDB es compatible con Redis y le permite crear aplicaciones con todas las estructuras de datos, las API y los comandos de Redis que se utilizan en la actualidad.

Para obtener información adicional sobre cómo trabajar con Redis como destino para AWS DMS, consulte las secciones siguientes:

Requisitos previos para utilizar un clúster de Redis como destino para AWS DMS

DMS admite un objetivo de Redis en las instalaciones en una configuración independiente o como un clúster de Redis en el que los datos se fragmentan automáticamente en varios nodos. La fragmentación es el proceso de separar los datos en partes más pequeñas, denominados particiones, que se distribuyen en varios servidores o nodos. En efecto, una partición es una partición de datos que contiene un subconjunto del conjunto total de datos y sirve para cubrir una parte de la carga de trabajo total.

Dado que Redis es un almacén de datos NoSQL con valores clave, la convención de nomenclatura de claves de Redis que se debe utilizar cuando el origen es una base de datos relacional es schema-name.table-name.primary-key. En Redis, la clave y el valor no deben contener el carácter especial %. De lo contrario, DMS omite el registro.

nota

Si utiliza ElastiCache para Redis como destino, DMS solo admite las configuraciones habilitadas en modo clúster. Para obtener más información sobre el uso de ElastiCache para Redis versión 6.x o superiores para crear un almacén de datos de destino habilitado en modo clúster, consulte Introducción en la Guía del usuario de Amazon ElastiCache para Redis.

Antes de iniciar la migración de una base de datos, lance el clúster de Redis con los siguientes criterios.

  • El clúster tiene una o varias particiones.

  • Si utiliza un destino de ElastiCache para Redis, asegúrese de que el clúster no utilice el control de acceso basado en roles de IAM. En su lugar, utilice Redis Auth para autenticar a los usuarios.

  • Habilite Multi-AZ (zonas de disponibilidad).

  • Asegúrese de que el clúster tenga suficiente memoria disponible para ajustar los datos a migrar desde la base de datos.

  • Asegúrese de que el clúster de Redis de destino esté libre de todos los datos antes de iniciar la tarea de migración inicial.

Debe determinar los requisitos de seguridad para la migración de datos antes de crear la configuración del clúster. DMS admite la migración a los grupos de replicación de destino, independientemente de la configuración de cifrado. Sin embargo, solo puede habilitar o desactivar el cifrado al crear la configuración del clúster.

Restricciones al usar Redis como destino para AWS Database Migration Service

Las siguientes restricciones se aplican cuando se usa Redis como destino:

  • Dado que Redis es un almacén de datos no-sql con valores clave, la convención de nomenclatura de claves de Redis que se debe utilizar cuando el origen es una base de datos relacional es schema-name.table-name.primary-key.

  • En Redis, la clave y el valor no pueden contener el carácter especial %. De lo contrario, DMS omite el registro.

  • DMS no migrará las filas que contengan caracteres especiales.

  • DMS no migrará los campos que contengan caracteres especiales en el nombre del campo.

  • No se admite el modo LOB completo.

  • No se admite una entidad de certificación (CA) privada cuando se utiliza ElastiCache para Redis como destino.

Migración de datos de una base de datos relacional o no relacional a un destino de Redis

Puede migrar datos de cualquier almacén de datos SQL o NoSQL de origen directamente a un destino de Redis. La configuración y el inicio de una migración a un destino de Redis es similar a cualquier migración de carga completa y de captura de datos de cambio mediante la consola o la API de DMS. Para realizar una migración de base de datos a un destino de Redis, haga lo siguiente.

  • Cree una instancia de replicación que efectúe todos los procesos para la migración. Para obtener más información, consulte Creación de una instancia de replicación.

  • Especifique un punto de conexión de origen. Para obtener más información, consulte Creación de puntos de enlace de origen y destino.

  • Busque el nombre de DNS y el número de puerto del clúster.

  • Descargue un paquete de certificados que pueda usar para verificar las conexiones SSL.

  • Especifique un punto de conexión de destino, tal y como se describe a continuación.

  • Crear una tarea o conjunto de tareas para definir qué tablas y procesos de replicación desea utilizar. Para obtener más información, consulte Creación de una tarea.

  • Migre los datos de la base de datos de origen al clúster de destino.

Puede iniciar una migración de base de datos de una de las dos formas:

  1. Puede elegir la consola de AWS DMS y realizar allí cada paso.

  2. Puede utilizar AWS Command Line Interface (AWS CLI). Para obtener más información sobre el uso de la CLI con AWS DMS, consulte AWS CLI para AWS DMS.

Para buscar el nombre de DNS y el número de puerto del clúster
  • Use el comando AWS CLI para proporcionar replication-group-id con el nombre del grupo de replicación.

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

    Aquí, el resultado muestra el nombre de DNS en el atributo Address y el número de puerto en el atributo Port del nodo principal del clúster.

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

    Si utiliza MemoryDB para Redis como destino, utilice el comando de la AWS CLI siguiente para proporcionar una dirección de punto de conexión al clúster de Redis.

    aws memorydb describe-clusters --clusterid clusterid
Descargue un paquete de certificados para usar para verificar las conexiones SSL
  • Ingrese el siguiente comando wget en la línea de comandos. Wget es una herramienta de utilidad gratuita de línea de comandos de GNU que se utiliza para descargar archivos de Internet.

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

    Aquí, aws-api-domain completa el dominio de Amazon S3 de la región de AWS necesario para acceder al bucket de S3 especificado y al archivo rds-combined-ca-bundle.pem que proporciona.

Para crear un punto de conexión de destino con la consola de AWS DMS

Este punto de conexión es para el objetivo de Redis que ya está en ejecución.

  • En la consola, elija Puntos de conexión del panel de navegación y, a continuación, elija Crear punto de conexión. La tabla siguiente describe la configuración.

    Para esta opción Haga lo siguiente

    Tipo de punto de conexión

    Elija el tipo de punto de conexión de destino.

    Endpoint identifier

    Ingrese el nombre del punto de conexión. Por ejemplo, incluya el tipo de punto de conexión en el nombre, por ejemplo my-redis-target.

    Motor de destino

    Elija Redis como el tipo de motor de base de datos al que desea que se conecte este punto de conexión.

    Cluster name (Nombre del clúster)

    Ingrese el nombre de DNS del clúster de Redis.

    Puerto

    Escriba el número de puerto del clúster de Redis.

    Protocolo de seguridad SSL

    Elija el cifrado de texto sin formato o el cifrado SSL.

    Texto sin formato: este opción no ofrece cifrado de seguridad de la capa de transporte (TLS) para el tráfico entre el punto de conexión y la base de datos.

    Cifrado SSL: si elige esta opción, ingrese un ARN de certificado de la entidad de certificación (CA) SSL para verificar el certificado del servidor y establecer una conexión cifrada.

    Para Redis en las instalaciones, DMS admite entidades de certificación (CA) públicas y privadas. Para ElastiCache para Redis, DMS admite solo una entidad de certificación pública.

    Tipo de autenticación

    Elija el tipo de autenticación que se realiza mientras se conecta a Redis. Las opciones incluyen, Ninguna, Rol de autenticación y Token de autenticación.

    Si elige rol de autenticación, proporcione un nombre de usuario de autenticación y una contraseña de autenticación.

    Si elige un token de autenticación, proporcione solo una contraseña de autenticación.

    Instancia de replicación

    [Opcional] Solo si tiene intención de probar la conexión, elija el nombre de la instancia de replicación que ingresó anteriormente en la página Crear instancia de replicación.

Cuando haya terminado de proporcionar toda la información para el punto de conexión, AWS DMS crea el punto de conexión de destino de Redis para usarlo durante la migración de la base de datos.

Para obtener información sobre cómo crear una tarea de migración e iniciar la migración de la base de datos, consulte Creación de una tarea.

Especificación de la configuración del punto de conexión para Redis como destino

Para crear o modificar un punto de enlace de destino, puede usar la consola o las operaciones de la API CreateEndpoint o ModifyEndpoint.

Para un destino de Redis en la consola de AWS DMS, especifique los Ajustes específicos del punto de conexión en la página de la consola Crear punto de conexión o Modificar punto de conexión.

Cuando utilice las operaciones de API CreateEndpoint y ModifyEndpoint, especifique los parámetros de solicitud de la opción RedisSettings. El siguiente ejemplo muestra cómo hacer esto mediante la 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" } } }

Los parámetros --redis-settings son:

  • ServerName: (obligatorio) de tipo string, especifica el clúster de Redis al que se migrarán los datos y se encuentra en la misma VPC.

  • Port: (obligatorio) de tipo number, el valor del puerto utilizado para acceder al punto de conexión.

  • SslSecurityProtocol: (opcional) los valores válidos son plaintext y ssl-encryption. El valor predeterminado es ssl-encryption.

    La opción de plaintext no ofrece cifrado de seguridad de la capa de transporte (TLS) para el tráfico entre el punto de conexión y la base de datos.

    Se utiliza ssl-encryption para establecer una conexión cifrada. ssl-encryption no requiere un ARN de una entidad de certificación (CA) SSL para verificar el certificado de un servidor, pero se puede identificar uno opcionalmente mediante la configuración SslCaCertificateArn. Si no se proporciona un ARN de entidad de certificación, DMS utiliza la entidad de certificación raíz de Amazon.

    Cuando se utiliza un destino de Redis en las instalaciones, se puede utilizar SslCaCertificateArn para importar una autoridad de certificación (CA) pública o privada a DMS y proporcionar ese ARN para la autenticación del servidor. No se admite una entidad de certificación privada cuando se utiliza ElastiCache para Redis como destino.

  • AuthType: (requerido) indica el tipo de autenticación que se realiza cuando se conecta a Redis. Los valores válidos son none, auth-token y auth-role.

    La opción auth-token requiere que se proporcione una “AuthPassword”, mientras que la opción auth-role requiere que se proporcionen “AuthUserName” y “AuthPassword”.