Actualización del clúster de Amazon DocumentDB mediante AWS Database Migration Service - Amazon DocumentDB

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.

Actualización del clúster de Amazon DocumentDB mediante AWS Database Migration Service

importante

Amazon DocumentDB no sigue los mismos ciclos de vida de soporte que MongoDB y el calendario de fin de ciclo de vida de MongoDB no es aplicable a Amazon DocumentDB. Actualmente, no hay planes para el final del ciclo de vida de Amazon DocumentDB 3.6, y sus controladores, aplicaciones y herramientas de MongoDB 3.6 seguirán funcionando con Amazon DocumentDB.

Puede actualizar su clúster de Amazon DocumentDB a una versión superior con un tiempo de inactividad mínimo utilizando AWS DMS. AWS DMS es un servicio totalmente administrado, que facilita la migración de versiones anteriores de Amazon DocumentDB, bases de datos relacionales y bases de datos no relacionales al clúster de Amazon DocumentDB de destino.

Paso 1: habilitación de los flujos de cambios

Para realizar una migración con un tiempo de inactividad mínimo, AWS DMS requiere acceder a las secuencias de cambios del clúster. La secuencia de cambios de Amazon DocumentDB brinda una secuencia en orden cronológico de los eventos de actualización que se producen dentro de las colecciones y bases de datos de su clúster. La lectura de la secuencia de cambios permite AWS DMS realizar una captura de datos de cambios (CDC) y aplicar las actualizaciones incrementales al clúster de Amazon DocumentDB de destino.

Para habilitar las secuencias de cambios para todas las colecciones de una base de datos específica, autentíquese en su clúster de Amazon DocumentDB mediante el intérprete de comandos de mongo y ejecute los siguientes comandos:

db.adminCommand({modifyChangeStreams: 1, database: "db_name", collection: "", enable: true});

Paso 2: modificación de la duración de la retención de los flujos de cambios

A continuación, modifique el período de retención de la secuencia de cambios en función del tiempo que desee conservar los eventos de cambio en la secuencia de cambios. Por ejemplo, si espera que la migración del clúster de Amazon DocumentDB usando AWS DMS tarde 12 horas, debe establecer la retención de la secuencia de cambios en un valor superior a 12 horas. El periodo de retención predeterminado para el clúster de Amazon DocumentDB es de tres horas. Puede modificar la duración de la retención del registro de secuencias de cambios de su clúster de Amazon DocumentDB para que esté comprendida entre 1 hora y 7 días utilizando la AWS Management Console o la AWS CLI. Para obtener más información, consulte Modificación de la duración de retención del registro de la secuencia de cambios.

Paso 3: migración de los índices

Cree los mismos índices en el clúster de Amazon DocumentDB de destino que en el clúster de Amazon DocumentDB de origen. Aunque AWS DMS gestiona la migración de datos, no migra los índices. Para migrar los índices, utilice la herramienta de índices de Amazon DocumentDB para exportar los índices del clúster de Amazon DocumentDB de origen. Para obtener la herramienta, cree un clon del repositorio de GitHub de las herramientas de Amazon DocumentDB y siga las instrucciones que se indican en README.md. Puede ejecutar la herramienta desde una instancia de Amazon EC2 o desde un AWS Cloud9 entorno que se ejecute en la misma Amazon VPC que su clúster de Amazon DocumentDB.

En el siguiente ejemplo, reemplace cada marcador de posición del usuario con su propia información.

El siguiente código descarga los índices del clúster de Amazon DocumentDB de origen:

python migrationtools/documentdb_index_tool.py --dump-indexes --uri mongodb://sample-user:user-password@sample-source-cluster.node.us-east 1.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false' --dir ~/index.js/ 2020-02-11 21:51:23,245: Successfully authenticated to database: admin2020-02-11 21:46:50,432: Successfully connected to instance docdb-40-xx.cluster-xxxxxxxx.us-east-1.docdb.amazonaws.com:27017 2020-02-11 21:46:50,432: Retrieving indexes from server...2020-02-11 21:46:50,440: Completed writing index metadata to local folder: /home/ec2-user/index.js/

Una vez que los índices se hayan exportado correctamente, restaure esos índices en el clúster de Amazon DocumentDB de destino. Para restaurar los índices que exportó en el paso anterior, utilice la herramienta de índices de Amazon DocumentDB. El siguiente comando restaura los índices del clúster de Amazon DocumentDB de destino desde el directorio especificado.

python migrationtools/documentdb_index_tool.py --restore-indexes --uri mongodb://sample-user:user-password@sample-destination-cluster.node.us-east 1.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false' --dir ~/index.js/ 2020-02-11 21:51:23,245: Successfully authenticated to database: admin2020-02-11 21:51:23,245: Successfully connected to instance docdb-50-xx.cluster-xxxxxxxx.us-east-1.docdb.amazonaws.com:27017 2020-02-11 21:51:23,264: testdb.coll: added index: _id

Para confirmar que restauró los índices correctamente, conéctese al clúster de Amazon DocumentDB de destino con el intérprete de comandos de mongo y enumere los índices de una colección determinada. Consulte el siguiente código:

mongo --ssl --host docdb-xx-xx.cluster-xxxxxxxx.us-east-1.docdb.amazonaws.com:27017 --sslCAFile rds-ca-2019-root.pem --username documentdb --password documentdb db.coll.getIndexes()

Paso 4: creación de una instancia de replicación de AWS DMS

Una instancia de replicación de AWS DMS conecta y lee los datos del clúster de Amazon DocumentDB de origen y los escribe en el clúster de Amazon DocumentDB de destino. La instancia de AWS DMS replicación puede realizar tanto operaciones de carga masiva como de CDC. La mayor parte de este procesamiento ocurre en la memoria. No obstante, es posible que en las operaciones de mayor volumen se precise almacenar en la memoria búfer del disco. Las transacciones almacenadas en caché y los archivos de registro también se escriben en el disco. Una vez que se migran los datos, la instancia de replicación también transmite cualquier evento de cambio para asegurarse de que el origen y el destino estén sincronizados.

Para crear una AWS DMS instancia de replicación:

  1. Abra la consola de AWS DMS.

  2. En el panel de navegación, elija Instancias de replicación.

  3. Elija Create replication instance (Crear instancia de replicación) y escriba la siguiente información:

    • En Nombre, escriba un nombre de su elección. Por ejemplo, docdb36todocdb40.

    • En Descripción, introduzca una descripción de su preferencia. En listitem, instancia de replicación de Amazon DocumentDB 3.6 a Amazon DocumentDB 4.0.

    • En la clase de instancia, elija el tamaño según sus necesidades.

    • En la versión Engine, elija 3.4.1.

    • En el caso de Amazon VPC, elija la Amazon VPC que aloja los clústeres de Amazon DocumentDB de origen y destino.

    • Para el Almacenamiento asignado (GiB), utilice el valor predeterminado de 50 GiB. Si tiene una carga de trabajo de alto rendimiento de escritura, aumente este valor para que se adapte a su carga de trabajo.

    • Para Multi-AZ, elija si necesita alta disponibilidad y soporte de conmutación por error.

    • En Publicly accessible (Accesible públicamente), habilite esta opción.

    Imagen: cuadro de diálogo de configuración de la instancia de replicación que muestra 10 campos y botones configurables.
  4. Elija Create replication instance.

Paso 5: creación de un punto de conexión de origen de AWS DMS

El punto de conexión de origen se utiliza para el clúster Amazon DocumentDB de origen.

Creación de un punto de conexión de origen

  1. Abra la consola de AWS DMS.

  2. En el panel de navegación, elija Puntos de conexión.

  3. Elija Create endpoint y especifique la siguiente información:

    • En Tipo de punto de conexión, elija Source (Origen).

    • >En Identificador de punto de conexión, escriba un nombre que sea fácil de recordar, como docdb-source.

    • En Motor de origen, seleccione docdb.

    • En Nombre de servidor, escriba el nombre DNS de su clúster de Amazon DocumentDB de origen.

    • En Puerto, escriba el número de puerto de su clúster de Amazon DocumentDB.

    • En Modo de SSL, elija verify-full.

    • En Certificado de CA, seleccione Añadir un nuevo certificado de CA. Descargue el nuevo certificado de CA, el nuevo certificado para crear el paquete de conexiones TLS. En Identificador del certificado, escriba rds-combined-ca-bundle . En Importar archivo de certificado, elija Seleccionar archivo y acceda al archivo .pem que descargó anteriormente. Seleccione el archivo y ábralo. Elija Importar certificado y luego elija rds-combined-ca-bundle de Elija un certificado.

    • En Nombre de usuario, escriba el nombre de usuario principal del clúster de Amazon DocumentDB de origen.

    • En Contraseña, escriba la contraseña principal del clúster de Amazon DocumentDB de origen.

    • En Nombre de la base de datos, introduzca el nombre de la base de datos que desee actualizar.

    Imagen: cuadro de diálogo de configuración de punto de conexión para el origen AWS DMS que muestra nueve campos configurables y menús desplegables.
  4. Pruebe su conexión para comprobar que se configuró correctamente.

    Imagen: cuadro de diálogo de prueba de conexión de punto de conexión para el origen AWS DMS que muestra dos menús desplegables, un botón de prueba y una lista de las pruebas ejecutadas.
  5. Elija Create Endpoint (Crear punto de conexión).

nota

AWS DMS solo puede migrar una base de datos a la vez.

Paso 6: creación de un punto de conexión de destino de AWS DMS

El punto de conexión de destino es para su clúster de Amazon DocumentDB de destino.

Para crear un punto de conexión de destino:

  1. Abra la consola de AWS DMS.

  2. En el panel de navegación, elija Puntos de conexión.

  3. Elija Create endpoint (Crear punto de conexión) y escriba la siguiente información:

    • En Endpoint Type (Tipo de punto de conexión), elija Target (Destino).

    • En Endpoint identifier (identificador de punto de conexión), escriba un nombre que sea fácil de recordar, como docdb-target.

    • En Motor de origen, seleccione docdb.

    • En Nombre de servidor, escriba el nombre DNS de su clúster de Amazon DocumentDB de destino.

    • En Puerto, escriba el número de puerto de su clúster de Amazon DocumentDB de destino.

    • En Modo de SSL, elija verify-full.

    • En Certificado de CA, elija el rds-combined-ca-bundle certificado existente en el menú desplegable Elija un certificado.

    • En Nombre de usuario, escriba el nombre de usuario principal del clúster de Amazon DocumentDB de destino.

    • En Contraseña, escriba la contraseña principal del clúster de Amazon DocumentDB de destino.

    • En Nombre de la base de datos, introduzca el mismo nombre de base de datos que utilizó para configurar el punto de conexión de origen.

    Imagen: cuadro de diálogo de configuración del punto de conexión para el destino AWS DMS que muestra nueve campos configurables y menús desplegables.
  4. Pruebe la conexión para comprobar que se configuró correctamente.

    Imagen: cuadro de diálogo de prueba de conexión de punto de conexión para el destino AWS DMS que muestra dos menús desplegables, un botón de prueba y una lista de las pruebas ejecutadas.
  5. Elija Create Endpoint (Crear punto de conexión).

Paso 7: crear y ejecutar una tarea de migración

Una tarea de AWS DMS vincula la instancia de replicación con la instancia de origen y la de destino. Al crear una tarea de migración, especifique el punto de conexión de origen, el punto de conexión de destino y la instancia de replicación, junto con cualquier configuración de migración deseada. Se puede crear una tarea de AWS DMS con tres tipos de migración diferentes: migrar los datos existentes, migrar los datos existentes y replicar los cambios en curso o replicar únicamente los cambios en los datos. Debido a que el objetivo de este tutorial es actualizar un clúster de Amazon DocumentDB con un tiempo de inactividad mínimo, los pasos utilizan la opción de migrar los datos existentes y de replicar los cambios en curso. Con esta opción, AWS DMS captura cambios al migrar los datos existentes. AWS DMS continúa capturando y aplicando cambios incluso después de haber cargado gran parte de los datos masivos. Con el tiempo, las bases de datos de origen y de destino se sincronizarán, por lo que el tiempo de inactividad de la migración será mínimo.

A continuación, se detallan los pasos para crear una tarea de migración con un tiempo de inactividad mínimo:

  1. Abra la consola de AWS DMS.

  2. En el panel de navegación, elija Tasks (Tareas).

  3. Elija Create task (Crear tarea) y escriba la siguiente información:

    Imagen: cuadro de diálogo de configuración de tareas para la tarea de migración.
  4. En la sección Configuración de tareas, habilite los registros de CloudWatch.

  5. En la sección Mapeos de tablas, elija No hacer nada. Esto garantizará que los índices creados en el paso 3 no se eliminen.

  6. Para la configuración de inicio de la tarea de migración, seleccione Automáticamente al crearla. Esto iniciará la tarea de migración automáticamente una vez que la haya creado.

  7. Seleccione Crear tarea.

AWS DMS comienza ahora la migración de datos del clúster de Amazon DocumentDB de origen al clúster de Amazon DocumentDB de destino. El estado de la tarea debe cambiar de Iniciándose a En ejecución. Puede monitorizar el progreso eligiendo Tareas en la consola AWS DMS. Transcurridos varios minutos/horas (según el tamaño de la migración), el estado debería cambiar a Load complete, replication ongoing (Carga completa, replicación en curso). Esto significa que AWS DMS se completó una migración a carga completa del clúster de Amazon DocumentDB de origen a un clúster de Amazon DocumentDB de destino y ahora está replicando los eventos de cambio.

Imagen: cuadro de diálogo de resumen de la migración.

Finalmente, el origen y el destino se sincronizarán. Para comprobar si están sincronizados, ejecute una operación count() en sus colecciones para comprobar que todos los eventos de cambio se hayan migrado.

Paso 8: cambiar el punto de conexión de origen de la aplicación al clúster de Amazon DocumentDB de destino

Cuando se complete la carga completa y el proceso de CDC se replique de forma continua, estará listo para cambiar el punto de conexión de la base de datos de su aplicación del clúster de Amazon DocumentDB de origen al clúster de Amazon DocumentDB de destino.