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.
Temas
- Paso 1: habilitación de los flujos de cambios
- Paso 2: modificación de la duración de la retención de los flujos de cambios
- Paso 3: migración de los índices
- Paso 4: creación de una instancia de replicación de AWS DMS
- Paso 5: creación de un punto de conexión de origen de AWS DMS
- Paso 6: creación de un punto de conexión de destino de AWS DMS
- Paso 7: crear y ejecutar una tarea de migración
- Paso 8: cambiar el punto de conexión de origen de la aplicación 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
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:
-
Abra la consola de
AWS DMS. -
En el panel de navegación, elija Instancias de replicación.
-
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 Sí si necesita alta disponibilidad y soporte de conmutación por error.
En Publicly accessible (Accesible públicamente), habilite esta opción.
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
-
Abra la consola de
AWS DMS. -
En el panel de navegación, elija Puntos de conexión.
-
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 elijards-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.
Pruebe su conexión para comprobar que se configuró correctamente.
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:
-
Abra la consola de AWS DMS
. -
En el panel de navegación, elija Puntos de conexión.
-
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.
-
Pruebe la conexión para comprobar que se configuró correctamente.
-
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:
-
Abra la consola de
AWS DMS. -
En el panel de navegación, elija Tasks (Tareas).
-
Elija Create task (Crear tarea) y escriba la siguiente información:
En Identificador de la tarea, escriba un nombre que sea fácil de recordar, como
my-dms-upgrade-task
.En Instancia de replicación, elija la instancia de replicación que creó en el Paso 3: crear una AWS Database Migration Service Instancia de replicación
En Punto de conexión de la base de datos de origen, elija el punto de conexión de origen que creó en el Paso 4: creación de un punto de conexión de origen de AWS Database Migration Service.
En Punto de conexión de la base de datos de destino, elija el punto de conexión de destino que creó en el Paso 5: creación de un punto de conexión de destino de AWS Database Migration Service
-
En Tipo de migración, elija Migración de los datos existentes y réplica de los cambios en curso.
-
En la sección Configuración de tareas, habilite los registros de CloudWatch.
-
En la sección Mapeos de tablas, elija No hacer nada. Esto garantizará que los índices creados en el paso 3 no se eliminen.
-
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.
-
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.
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.