Guía de migración a Amazon DocumentDB - 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.

Guía de migración a Amazon DocumentDB

Este manual proporciona una guía completa para migrar una base de datos de MongoDB a Amazon DocumentDB mediante (DMS). AWS Database Migration Service Está diseñado para ayudar a los administradores de bases de datos, ingenieros de nube y desarrolladores durante todo el proceso de migración, desde el descubrimiento inicial hasta la validación posterior a la end-to-end migración.

Dadas las diferencias en la implementación y las características compatibles entre MongoDB y Amazon DocumentDB, este manual hace hincapié en un enfoque estructurado y sistemático. En él se describen las evaluaciones esenciales previas a la migración, se destacan las consideraciones de compatibilidad y se detallan las tareas clave necesarias para garantizar una migración satisfactoria con un mínimo de interrupciones.

El manual se organiza en los siguientes temas:

  • Compatibilidad— Conozca las características y los tipos de datos de MongoDB compatibles en Amazon DocumentDB e identifique posibles incompatibilidades.

  • Descubrimiento de la carga— Analice las cargas de trabajo de MongoDB existentes, read/write incluidos los patrones, los volúmenes de datos y las líneas base de rendimiento.

  • Migración de índices— Analice las estrategias para extraer y transformar los índices de MongoDB para obtener un rendimiento óptimo en Amazon DocumentDB.

  • Migración de usuario— Detallar el enfoque para migrar los usuarios, las funciones y los controles de acceso de las bases de datos a Amazon DocumentDB.

  • Migración de datos— Describa varios métodos para la migración de datos AWS DMS, incluida la captura de datos a plena carga y cambio (CDC).

  • Monitorización— Detalle varios enfoques de monitoreo al migrar mediante el DMS o herramientas nativas.

  • Validación— Proporcione procedimientos para las comprobaciones de integridad de los datos, la validación funcional y la comparación del rendimiento después de la migración.

Al seguir las instrucciones de este manual, los equipos pueden garantizar una transición fluida, segura y eficiente a Amazon DocumentDB, a la vez que conservan la funcionalidad de la aplicación y minimizan los riesgos.

Compatibilidad

Al migrar de MongoDB a Amazon DocumentDB, es esencial realizar una evaluación inicial exhaustiva y comprobar la compatibilidad de las funciones para que la migración se lleve a cabo correctamente. Este proceso comienza con un inventario completo de las características de MongoDB, incluidos los operadores de canalización de agregación, los patrones de consulta, los índices y los modelos de datos.

Dado que Amazon DocumentDB es compatible con las API de MongoDB 3.6, 4.0 y 5.0, es posible que sea necesario refactorizar las aplicaciones que utilizan características específicas de MongoDB más recientes. Las áreas críticas que se deben evaluar incluyen los mecanismos de fragmentación (Amazon DocumentDB utiliza un enfoque diferente), las implementaciones de transacciones, la funcionalidad de los flujos de cambios y los tipos de índices (especialmente los índices dispersos y parciales).

Las características de rendimiento también difieren, ya que Amazon DocumentDB está optimizada para cargas de trabajo empresariales con un rendimiento predecible. Las pruebas deben incluir la ejecución de cargas de trabajo representativas en ambos sistemas para identificar los patrones de consulta que puedan necesitar ser optimizados.

Durante la fase de evaluación, es importante supervisar los planes de ejecución para detectar posibles brechas de rendimiento. Esto ayuda a crear una hoja de ruta de migración clara, identificando los cambios necesarios en las aplicaciones y estableciendo plazos realistas para una transición fluida.

Compatibilidad con las funciones principales

Soporte integral de funciones

  • Operaciones CRUD: disfrute de una compatibilidad total con todas las operaciones básicas de creación, lectura, actualización y eliminación, incluidos los operadores masivos y de consulta, lo que proporciona una compatibilidad perfecta entre aplicaciones.

  • Amplias capacidades de indexación: aproveche el soporte integral para índices de un solo campo, compuestos, TTL, parciales, dispersos y de 2dsphere para optimizar el rendimiento de sus consultas y los índices de texto (versión 5) para las búsquedas basadas en texto.

  • Replicación de nivel empresarial: benefíciese de un sólido mecanismo de conmutación por error automática con réplicas de lectura para obtener una alta disponibilidad superior sin sobrecargas operativas.

  • Soluciones de respaldo avanzadas: descanse tranquilo con un sistema de respaldo automatizado que incluye Point-in-Time recuperación (PITR) e instantáneas manuales bajo demanda para proteger los datos.

Funciones integradas y mejoradas AWS

  • Agregación simplificada: aproveche las etapas de agregación más utilizadas ($match,,, $group $sort$project, etc.) con un rendimiento optimizado para las cargas de trabajo empresariales.

  • Soporte de transacciones: Implemente transacciones con varios documentos y recopilaciones, lo que resulta perfecto para la mayoría de las necesidades de las aplicaciones empresariales.

  • Seguimiento de datos en tiempo real: habilite los flujos de cambios con un simple comando y aumente el período de retención del flujo de cambios mediante una sencilla configuración de grupos de parámetros para monitorear los cambios en los datos en tiempo real.

  • Servicios basados en la ubicación: implemente aplicaciones geoespaciales compatibles con los índices de $geoNear operador y de 2dsphere.

  • Capacidades de búsqueda de texto: utilice la funcionalidad de búsqueda de texto integrada para las necesidades de descubrimiento de contenido.

Ventajas de la arquitectura moderna

  • Diseño nativo de la nube: disfrute de una arquitectura AWS optimizada que reemplaza las funciones antiguas, por ejemplo, por operaciones MapReduce de canalización de agregación más eficientes.

  • Seguridad mejorada: aproveche las ventajas de la autenticación mediante AWS Identity and Access Management certificado (IAM), SCRAM-SHA-1, SCRAM-SHA-256, X.509 y autenticación basada en contraseñas.

  • Rendimiento predecible: disfrute de un rendimiento uniforme optimizado específicamente para las cargas de trabajo empresariales.

Para obtener una descripción general completa de las capacidades de Amazon DocumentDB, consulte APIsMongoDB, operaciones y tipos de datos compatibles en Amazon DocumentDB y Diferencias funcionales: Amazon DocumentDB y MongoDB para maximizar el potencial de su base de datos.

Amazon DocumentDB no admite todos los índices que ofrece MongoDB. Proporcionamos una herramienta de indexación gratuita para comprobar la compatibilidad. Recomendamos utilizar la herramienta de indexación para evaluar la incompatibilidad y planificar las soluciones alternativas en consecuencia.

Herramienta de evaluación de compatibilidad de Amazon DocumentDB

La herramienta de compatibilidad de MongoDB a Amazon DocumentDB es una utilidad de código abierto GitHub que ayuda a evaluar la compatibilidad de las cargas de trabajo de MongoDB con Amazon DocumentDB mediante el análisis de los registros de MongoDB o del código fuente de la aplicación.

Características principales

  • Identifica los patrones de uso de la API de MongoDB en su carga de trabajo

  • Señala posibles problemas de compatibilidad antes de la migración

  • Genera informes de compatibilidad detallados con recomendaciones

  • Disponible como una utilidad independiente que se puede ejecutar localmente

Métodos de evaluación

Evaluación basada en registros

  • Ventajas:

    • Captura el comportamiento real del tiempo de ejecución y los patrones de consulta

    • Identifica las frecuencias de uso y las características de rendimiento del mundo real

    • Detecta consultas dinámicas que podrían no estar visibles en el código fuente

    • No es necesario acceder al código fuente de la aplicación

  • Desventajas:

    • Requiere acceso a los registros de MongoDB con la creación de perfiles habilitada

    • Solo captura las operaciones que se produjeron durante el período de registro

    • Es posible que no se utilicen funciones o cargas de trabajo estacionales que se utilizan con poca frecuencia

Análisis del código fuente

  • Ventajas:

    • Cobertura completa de todas las posibles operaciones de MongoDB en el código base

    • Puede identificar problemas en las rutas de código que se ejecutan con poca frecuencia

    • Detecta la lógica del lado del cliente que podría verse afectada por las diferencias en Amazon DocumentDB

    • No es necesario ejecutar la aplicación para realizar la evaluación

  • Desventajas:

    • Puede marcar un código que existe pero que nunca se ejecuta en producción

    • Requiere acceso al código fuente completo de la aplicación

    • Capacidad limitada para analizar consultas construidas dinámicamente

Para obtener los mejores resultados, recomendamos utilizar ambos métodos de evaluación siempre que sea posible para obtener una visión completa de los problemas de compatibilidad antes de la migración.

Descubrimiento de la carga

La migración de MongoDB a Amazon DocumentDB requiere un conocimiento profundo de la carga de trabajo de la base de datos existente. El descubrimiento de la carga de trabajo es el proceso de analizar los patrones de uso de la base de datos, las estructuras de datos, el rendimiento de las consultas y las dependencias operativas para garantizar una transición fluida con una interrupción mínima. En esta sección se describen los pasos clave que implica el descubrimiento de cargas de trabajo para facilitar una migración eficaz de MongoDB a Amazon DocumentDB.

Evaluación del despliegue de MongoDB existente

Antes de la migración, es crucial evaluar el entorno actual de MongoDB, que incluye:

  • Arquitectura de clústeres: identifique la cantidad de nodos, los conjuntos de réplicas y las configuraciones de fragmentación. Al migrar de MongoDB a Amazon DocumentDB, es importante comprender la configuración de fragmentación de MongoDB, ya que Amazon DocumentDB no admite la fragmentación controlada por el usuario. Las aplicaciones diseñadas para un entorno MongoDB fragmentado necesitarán cambios en la arquitectura, ya que Amazon DocumentDB utiliza un enfoque de escalado diferente con su arquitectura basada en el almacenamiento. Tendrá que adaptar su estrategia de distribución de datos y, posiblemente, consolidar las colecciones fragmentadas cuando pase a Amazon DocumentDB.

  • Almacenamiento y volumen de datos: mida el tamaño total de los datos y el tamaño del índice de su clúster. Complemente esto con la herramienta de revisión Oplog para comprender los patrones de escritura y la velocidad de crecimiento de los datos. Para obtener más información sobre el tamaño del clúster, consulte. Determinación del tamaño de las instancias

  • Patrones de carga de trabajo: analice el rendimiento de lectura y escritura, la frecuencia de ejecución de las consultas y la eficiencia de la indexación.

  • Dependencias operativas: documente todas las aplicaciones, servicios e integraciones que se basan en MongoDB.

Identificar las diferencias en los modelos de datos

Si bien Amazon DocumentDB es compatible con MongoDB, existen diferencias en las funciones compatibles, como:

Análisis de consultas y rendimiento

Comprender el comportamiento de las consultas ayuda a optimizar el rendimiento de la migración y después de la migración. Las áreas clave que se deben analizar incluyen:

  • Consultas lentas: identifique las consultas con un tiempo de ejecución elevado mediante las herramientas de creación de perfiles de MongoDB.

  • Patrones de consulta: clasifique los tipos de consultas más comunes, incluidas las operaciones CRUD y las agregaciones.

  • Uso de índices: evalúe si los índices se utilizan de forma eficaz o si es necesario optimizarlos en Amazon DocumentDB. Para evaluar el uso de los índices y optimizar el rendimiento en Amazon DocumentDB, utilice la fase de canalización de $indexStats agregación combinada con el explain() método en sus consultas críticas. Comience por db.collection.aggregate([{$indexStats{}}]) identificar qué índices se están utilizando. Puede realizar un análisis más detallado ejecutando las consultas más frecuentes conexplainPlan.

  • Concurrencia y distribución de la carga de trabajo: evalúe las relaciones de lectura y escritura, la agrupación de conexiones y los cuellos de botella en el rendimiento.

Revisión de la seguridad y el control de acceso

Autenticación y autorización

  • RBAC de MongoDB a IAM y RBAC de Amazon DocumentDB: asigne los usuarios y roles de control de acceso basado en roles de MongoDB a las políticas (IAM) y a los usuarios de autenticación SCRAM de Amazon DocumentDB. AWS Identity and Access Management

  • Estrategia de migración de usuarios: planifique la migración de los usuarios de bases de datos, las funciones personalizadas y los privilegios a los mecanismos de autenticación compatibles con Amazon DocumentDB.

  • Diferencias de privilegios: identifique los privilegios de MongoDB sin equivalentes directos de Amazon DocumentDB (por ejemplo, funciones de administración de clústeres).

  • Autenticación de aplicaciones: actualice las cadenas de conexión y la administración de credenciales para las políticas de contraseñas de Amazon DocumentDB. Puede usar el administrador de secretos para almacenar sus credenciales y rotar las contraseñas.

  • Administración de cuentas de servicio: establezca procesos para administrar las credenciales de las cuentas de servicio en AWS Secrets Manager.

  • Implementación de privilegios mínimos: revise y perfeccione los controles de acceso para implementar los principios de privilegios mínimos en el nuevo entorno.

Cifrado

Asegúrese de que el cifrado en reposo y en tránsito cumpla con los requisitos de conformidad.

Configuración de red

Planifique la configuración de la Nube Privada Virtual (VPC) y las reglas de los grupos de seguridad.

Consideraciones operativas y de supervisión

Para mantener la confiabilidad del sistema, el descubrimiento de la carga de trabajo también debe incluir:

  • Estrategia de backup y restauración: evalúe los métodos de backup existentes y las capacidades de backup de Amazon DocumentDB.

  • AWS Backup integración: aproveche la administración centralizada AWS Backup de copias de seguridad en todos AWS los servicios, incluido Amazon DocumentDB.

  • CloudWatch métricas: asigne las métricas de monitoreo de MongoDB a las métricas de Amazon DocumentDB para la CPU, la memoria, las conexiones y el almacenamiento. CloudWatch

  • Performance Insights: implemente Amazon DocumentDB Performance Insights para visualizar la carga de la base de datos y analizar los problemas de rendimiento con análisis de consultas detallados.

  • Generador de perfiles: configure el generador de perfiles de Amazon DocumentDB para capturar operaciones de ejecución lenta (similar al generador de perfiles de MongoDB, pero con ajustes específicos de Amazon DocumentDB).

    • Habilite mediante grupos de parámetros con los umbrales adecuados.

    • Analice los datos del generador de perfiles para identificar oportunidades de optimización

  • CloudWatch Eventos: configure la supervisión basada en eventos para los eventos del clúster de Amazon DocumentDB.

    • Configure las notificaciones para los eventos de respaldo, los períodos de mantenimiento y las conmutaciones por error.

    • Intégrelo con Amazon SNS para recibir alertas y respuestas automatizadas AWS Lambda .

  • Registro de auditoría: planifique la configuración del registro de auditoría para rastrear la actividad de los usuarios y los eventos relevantes para la seguridad.

  • Supervisión mejorada: habilite una supervisión mejorada para obtener métricas granulares a nivel del sistema operativo en intervalos de 1 segundo.

Migración de índices

La migración de MongoDB a Amazon DocumentDB implica transferir no solo datos, sino también índices para mantener el rendimiento de las consultas y optimizar las operaciones de la base de datos. En esta sección se describe el step-by-step proceso detallado para migrar índices de MongoDB a Amazon DocumentDB y, al mismo tiempo, garantizar la compatibilidad y la eficacia.

Uso de la herramienta de indexación Amazon DocumentDB

Clone la herramienta de indexación

git clone https://github.com/aws-samples/amazon-documentdb-tools.git cd amazon-documentdb-tools/index-tool
pip install -r requirements.txt

Exportar índices desde MongoDB (si se migra desde MongoDB)

python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir mongodb_index_export --uri 'mongodb://localhost:27017'

Exportación de índices desde Amazon DocumentDB (si se migra desde Amazon DocumentDB)

python3 migrationtools/documentdb_index_tool.py --dump-indexes --dir docdb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'

Importe índices

python3 migrationtools/documentdb_index_tool.py --restore-indexes --skip-incompatible --dir mongodb_index_export --uri 'mongodb://user:password@mydocdb.cluster-cdtjj00yfi95.eu-west- 2.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=rds-combined-ca- bundle.pem&replicaSet=rs0&retryWrites=false'

Verificar los índices

python3 migrationtools/documentdb_index_tool.py --show-issues --dir mongodb_index_export

Migración de usuario

La migración de usuarios de MongoDB a Amazon DocumentDB es esencial para mantener el control de acceso, la autenticación y la seguridad de la base de datos. En esta sección se describen los pasos detallados para migrar correctamente a los usuarios de MongoDB y, al mismo tiempo, conservar sus funciones y permisos mediante la herramienta de exportación de usuarios de Amazon DocumentDB.

Uso de la herramienta de exportación de usuarios de Amazon DocumentDB

Export Users toolExporta los usuarios y las funciones de MongoDB o Amazon DocumentDB JavaScript a archivos, que luego se pueden usar para volver a crearlos en otro clúster.

Requisitos previos

# Clone the repository git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/export-users
# Install required dependencies pip install pymongo

Paso 1: Exportar usuarios y roles

# Export users and roles to JavaScript files python3 docdbExportUsers.py \ --users-file mongodb-users.js \ --roles-file mongodb-roles.js \ --uri "mongodb://admin:password@source-host:27017/"

Paso 2: editar el archivo de usuarios

// Example of how to update the users.js file // Find each user creation statement and add the password db.getSiblingDB("admin").createUser({ user: "appuser", // Add password here pwd: "newpassword", roles: [ { role: "readWrite", db: "mydb" } ] })

Paso 3: Restaurar funciones personalizadas en Amazon DocumentDB

# Import roles first mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-roles.js

Paso 4: Restaurar usuarios a Amazon DocumentDB

# Import users after roles are created mongo --ssl \ --host target-host:27017 \ --sslCAFile rds-combined-ca-bundle.pem \ --username admin \ --password password \ mongodb-users.js

Notas importantes

  • Las contraseñas no se exportan por motivos de seguridad y deben añadirse manualmente al archivo users.js.

  • Los roles se deben importar antes que los usuarios para garantizar una asignación de roles adecuada.

  • La herramienta genera JavaScript archivos que se pueden ejecutar directamente con el shell mongo.

  • Los roles personalizados y sus privilegios se conservan durante la migración.

  • Este enfoque permite revisar y modificar los permisos de los usuarios antes de importarlos.

Este método proporciona un enfoque seguro y flexible para migrar usuarios y roles de MongoDB a Amazon DocumentDB y, al mismo tiempo, permite restablecer las contraseñas durante el proceso de migración.

Migración de datos

Migración en línea

En esta sección se proporcionan pasos detallados para realizar una migración en línea de MongoDB a Amazon DocumentDB para permitir un tiempo de inactividad mínimo y AWS DMS una replicación continua. Para empezar, debe configurar un clúster de Amazon DocumentDB como destino y asegurarse de que su instancia de MongoDB esté correctamente configurada como fuente, lo que normalmente requiere el modo de conjunto de réplicas para la captura de datos de cambios. A continuación, debe crear una instancia de replicación de DMS y definir los puntos de enlace de origen y destino con los detalles de conexión necesarios. Tras validar los puntos finales, debe configurar e iniciar una tarea de migración que puede incluir la carga completa de los datos, la replicación continua o ambas.

Configurar el destino (Amazon DocumentDB)

nota

Si ya ha aprovisionado un clúster de Amazon DocumentDB al que migrar, puede omitir este paso.

Cree un grupo de parámetros personalizado

Consulte los AWS CLI procedimientos AWS Management Console o enCreación de grupos de parámetros de clúster de Amazon DocumentDB.

Create an Amazon DocumentDB cluster (Crear un clúster de Amazon DocumentDB)

nota

Si bien en esta guía hay otros procedimientos para crear un clúster de Amazon DocumentDB, los pasos de esta sección se aplican específicamente a la tarea de migrar grandes cantidades de datos a un nuevo clúster.

  1. Inicie sesión en y abra la AWS Management Console consola de Amazon DocumentDB en https://console.aws.amazon.com /docdb.

  2. En el panel de navegación, seleccione Clusters (Clústeres).

    sugerencia

    Si no ve el panel de navegación del lado izquierdo de la pantalla, seleccione el icono de menú (Hamburger menu icon with three horizontal lines.) en la esquina superior izquierda de la página.

  3. En la consola de administración de Amazon DocumentDB, en Clústeres, elija Crear.

  4. En la página Crear clúster de Amazon DocumentDB, en la sección Tipo de clúster, elija Clúster basado en instancias (esta es la opción predeterminada).

  5. En la sección Configuración del clúster:

    • En el campo Identificador del clúster, ingrese un nombre único, como mydocdbcluster. Tenga en cuenta que la consola cambiará todos los nombres de los clústeres a minúsculas, independientemente de cómo se introduzcan.

    • Para la versión Engine, elija 5.0.0.

  6. En la sección Configuración de almacenamiento en clústeres, deje la configuración estándar de Amazon DocumentDB como está (esta es la opción predeterminada).

  7. Sección de Configuración de instancias:

    • Para la clase de instancia de base de datos, elija clases optimizadas para memoria (incluya las clases r) (esta es la opción predeterminada).

    • Para la clase de instancia, elija una clase de instancia en función de la carga de trabajo. Por ejemplo:

      • db.r6g.large: para cargas de trabajo más pequeñas

      • db.r6g.4xlarge: para cargas de trabajo más grandes

      Como práctica recomendada, recomendamos elegir una instancia del mayor tamaño posible para obtener el mejor rendimiento a plena carga y reducirla una vez finalizada la migración.

    • En Número de instancias, elige 1 instancia. La elección de una instancia ayuda a minimizar los costos. Se recomienda escalar a tres instancias para obtener una alta disponibilidad una vez completada la migración a carga completa.

  8. En la sección Autenticación, introduzca un nombre de usuario para el usuario principal y, a continuación, elija Autogestionado. Ingrese una contraseña y, a continuación, confírmela.

  9. En la sección Configuración de red, elija una VPC y un grupo de subredes y, a continuación, configure el grupo de seguridad de VPC. Asegúrese de que su grupo de seguridad de Amazon DocumentDB permita la conexión entrante desde el grupo de seguridad de la instancia de DMS actualizando las reglas de entrada.

  10. En la ncryption-at-rest sección E, habilite el cifrado (recomendado) y elija o introduzca una clave KMS.

  11. En la sección Backup, establezca el período de retención de la copia de seguridad (de 1 a 35 días).

  12. Revise la configuración y elija Crear clúster.

    El tiempo de despliegue suele tardar entre 10 y 15 minutos,

Configurar el origen

Tanto MongoDB como Amazon DocumentDB pueden servir como fuentes de migración, según el escenario:

  • MongoDB como fuente: común cuando se migra de un MongoDB local o autogestionado a Amazon DocumentDB u otros servicios de base de datos. AWS Requiere ejecutarse en modo conjunto de réplicas con un oplog del tamaño adecuado (asegúrese de que tenga el tamaño adecuado para contener todas las operaciones durante la carga completa) para permitir la captura de datos de cambios durante la migración.

  • Amazon DocumentDB como fuente: normalmente se utiliza para la replicación entre regiones, las actualizaciones de versiones o la migración a otros servicios de bases de datos, como MongoDB Atlas. Se requiere configurar Habilitación de flujos de cambios el change_stream_log_retention_duration parámetro en el grupo de parámetros del clúster para capturar los cambios en curso durante la migración. Asegúrese de que la change_stream_log_retention_duration configuración sea lo suficientemente grande como para cubrir el tiempo necesario para completar la carga completa.

Antes de iniciar la migración, configure la fuente para permitir el AWS DMS acceso.

Cree un usuario de MongoDB con los permisos adecuados:

db.createUser({ user: "dmsUser", pwd: "yourSecurePassword", roles: [{ role: "readAnyDatabase", db: "admin" }] })

Configure la red y la autenticación.

Al configurar la conectividad de red para la migración de MongoDB a DMS:

EC2-fuente MongoDB alojada

  • Modifique el grupo EC2 de seguridad para permitir el tráfico entrante desde el grupo de seguridad de la instancia de replicación del DMS.

  • Agrega una regla para el puerto TCP 27017 (o tu puerto MongoDB personalizado).

  • Utilice el ID del grupo de seguridad de la instancia de replicación de DMS como fuente para un control de acceso preciso.

  • Asegúrese de que la subred de la EC2 instancia tenga una ruta a la subred de la instancia de replicación de DMS.

Fuente de MongoDB local

  • Configure su firewall para permitir las conexiones entrantes desde las direcciones IP públicas de la instancia de replicación de DMS.

  • Si utilizas AWS Direct Connect una VPN, asegúrate de que se enrute correctamente entre la red y la VPC que contiene la instancia de DMS.

  • Pruebe la conectividad mediante comandos telnet o nc desde la subred del DMS a su servidor MongoDB.

Fuente de MongoDB Atlas

  • Agregue las direcciones IP de una instancia de replicación de DMS a la lista de direcciones IP permitidas de MongoDB Atlas.

  • Configure el emparejamiento de VPC entre VPC y AWS MongoDB Atlas VPC si Atlas se está ejecutando. AWS

  • Configure la AWS PrivateLink conectividad privada (nivel empresarial) si se ejecuta en otro proveedor de nube.

  • Cree un usuario dedicado con read/write los permisos adecuados.

  • Utilice una cadena de conexión de MongoDB Atlas con el modo SSL establecido en «verify-full».

  • Asegúrese de que el tamaño del registro sea suficiente para la duración de la migración.

Fuente de Amazon DocumentDB

Configure el grupo de seguridad de Amazon DocumentDB de origen para permitir el tráfico entrante desde el grupo de seguridad de la instancia de replicación de DMS.

Cree una instancia de replicación de DMS

Recomendamos utilizar DMS Buddy para aprovisionar su infraestructura de DMS, ya que crea una infraestructura de migración óptima con una configuración de DMS y tamaños de instancia óptimos.

Si prefiere configurarla manualmente, siga estos pasos:

  1. Abra la consola AWS DMS y elija Crear instancia de replicación.

  2. Introduzca los detalles de la instancia de replicación:

    • Nombre de la instancia: elija un nombre único.

    • Clase de instancia: selecciónela en función de la carga de trabajo. Ejemplo: dms.r5.large (cargas de trabajo pequeñas), dms.r5.4xlarge (cargas de trabajo grandes).

    • Versión de motor: 3.5.4

    • Almacenamiento asignado: el valor predeterminado es de 100 GB (aumente si es necesario). Esto se determina en función del tamaño del documento updates/second y de la duración total de la carga.

    • Despliegue en zonas de disponibilidad múltiples (Multi-AZ): se habilita para una alta disponibilidad, si es necesario

    • Elija la misma VPC que Amazon DocumentDB.

    • Asegúrese de que los grupos de seguridad permitan el tráfico entrante desde la fuente y Amazon DocumentDB.

  3. Haga clic en Crear instancia de replicación y espere a que el estado esté disponible.

Cree puntos finales de DMS

Cree un punto final de origen

Para una fuente de MongoDB

  1. En la consola DMS, en el panel de navegación, elija Migrar o replicar y, a continuación, elija Endpoints.

  2. Elija Crear punto de conexión.

  3. En la página Crear punto final, seleccione Punto final de origen.

  4. En la sección Configuración del punto final:

    • Introduzca un identificador de punto final único y significativo (por ejemplo, «mongodb-source»).

    • Elija MongoDB como motor de origen.

    • Para acceder a la base de datos de puntos de conexión, elija Proporcionar información de acceso manualmente.

    • En Nombre del servidor, introduzca su. MongoDB server DNS name/IP address

    • En Puerto, introduzca 27017 (puerto MongoDB predeterminado).

    • Para el modo de autenticación, elija el modo apropiado para su aplicación (contraseña/SSL) (el predeterminado es el administrador de secretos).

    • Si el modo de autenticación es Contraseña, proporcione:

      • Nombre de usuario y contraseña: Introduzca las credenciales de MongoDB.

      • Nombre de la base de datos: el nombre de la base de datos de origen.

      • Mecanismo de autenticación: SCRAM-SHA-1 (predeterminado) o mecanismo apropiado

  5. Para el modo Metadatos, deje la configuración predeterminada del documento.

  6. Atributos de conexión adicionales:

    • authSource=admin (si la base de datos de autenticación es diferente)

    • your-replica-set-nameReplicaSet=< > (obligatorio para los CDC)

Para una fuente de Amazon DocumentDB

  1. En la consola DMS, en el panel de navegación, elija Migrar o replicar y, a continuación, elija Endpoints.

  2. Elija Crear punto de conexión.

  3. En la página Crear punto final, seleccione Punto final de origen.

  4. En la sección Configuración del punto final:

    • Introduzca un identificador de punto final único y significativo (por ejemplo, «docdb-source»).

    • Elija Amazon DocumentDB como motor de origen.

    • Para acceder a la base de datos de puntos de conexión, elija Proporcionar información de acceso manualmente.

    • En Nombre del servidor, introduzca su. source Amazon DocumentDB cluster endpoint

    • En Port, introduzca 27017 (puerto predeterminado de Amazon DocumentDB).

    • Para el modo SSL, elija verify-full (recomendado para Amazon DocumentDB).

    • Para el certificado de CA, elija el certificado de CA raíz de Amazon RDS.

    • Para el modo de autenticación, elija el modo adecuado para su aplicación (contraseña/SSL) (el predeterminado es el administrador de secretos).

    • Si el modo de autenticación es Contraseña, proporcione:

      • Nombre de usuario y contraseña: introduzca las credenciales de Amazon DocumentDB.

      • Nombre de la base de datos: el nombre de la base de datos de origen.

      • Mecanismo de autenticación: SCRAM-SHA-1 (predeterminado) o mecanismo apropiado

  5. Para el modo Metadatos, deje la configuración predeterminada del documento.

Crear un punto final de destino (Amazon DocumentDB)
  1. En la consola del DMS, en el panel de navegación, elija Migrar o replicar y, a continuación, elija Endpoints.

  2. Elija Crear punto de conexión.

  3. En la página Crear punto final, seleccione Punto final de destino.

  4. En la sección Configuración del punto final:

    • Introduzca un identificador de punto final único y significativo (por ejemplo, «docdb-target»).

    • Elija Amazon DocumentDB como motor de destino.

    • Para acceder a la base de datos de puntos finales, elija el método que desee utilizar para autenticar el acceso a la base de datos:

      • Si elige AWS Secrets Manager, elija el secreto en el que guarda sus credenciales de Amazon DocumentDB en el campo Secret.

      • Si elige Proporcionar la información de acceso manualmente:

        • En Nombre del servidor, introduzca sutarget Amazon DocumentDB cluster endpoint.

        • En Port, introduzca 27017 (puerto predeterminado de Amazon DocumentDB).

        • Para el modo SSL, elija verify-full (recomendado para Amazon DocumentDB).

        • Para el certificado de CA, descargue y especifique el paquete de certificados de CA para la verificación de SSL.

        • Para el modo de autenticación, elija el modo apropiado para su aplicación (contraseña/SSL) (el predeterminado es el administrador de secretos).

        • Si el modo de autenticación es Contraseña, proporcione:

          • Nombre de usuario y contraseña: introduzca las credenciales de Amazon DocumentDB.

          • Nombre de la base de datos: el nombre de la base de datos de origen.

          • Mecanismo de autenticación: SCRAM-SHA-1 (predeterminado) o mecanismo apropiado

  5. Para el modo Metadatos, deje la configuración predeterminada del documento.

Cree una tarea de replicación

  1. En la consola DMS, en el panel de navegación, elija Migrar o replicar y, a continuación, elija Tareas.

  2. Seleccione Crear tarea.

  3. En la página Crear tarea, en la sección Configuración de tareas:

    • Introduzca un identificador de tarea único y significativo (por ejemplo, "mongodb-docdb-replication«).

    • Elija el punto final de origen que creó anteriormente en el menú desplegable del punto final de la base de datos de origen.

    • Elija el punto final de destino que creó anteriormente en el menú desplegable del punto final de la base de datos objetivo.

    • Para el tipo de tarea, elija Migrar y replicar.

  4. En la sección Configuración:

    • Para el modo de preparación de la tabla Target, deje la configuración predeterminada.

    • En Detener la tarea cuando se complete la carga completa, deje la configuración predeterminada.

    • Para la configuración de la columna LOB, deje la configuración del modo LOB limitada como está.

    • Para la validación de datos, deje la configuración predeterminada de Desactivar.

    • Para los registros de tareas, marca la casilla Activar CloudWatch los registros.

    • Para aplicar la optimización por lotes, deja la configuración predeterminada desactivada (desactivada).

  5. De vuelta a la parte superior de la sección de configuración de tareas, en el modo de edición, selecciona el editor JSON y establece los siguientes atributos:

    { "TargetMetadata": { "ParallelApplyThreads": 5 }, "FullLoadSettings": { "MaxFullLoadSubTasks": 16 } }
  6. En la sección Asignaciones de tablas, añade una nueva regla de selección:

    • En el campo Nombre del esquema, añada la base de datos de origen que desee migrar. Utilice% para especificar varias bases de datos.

    • En el nombre de la tabla de esquemas, añada la colección de origen que desee migrar. Utilice% para especificar varias colecciones.

    • En Acción, deje la configuración predeterminada de Incluir

  7. Para colecciones grandes (más de 100 GB), añade la regla de configuración de tablas:

    • En el campo Nombre del esquema, añada la base de datos de origen que desee migrar. Utilice% para especificar varias bases de datos.

    • En el nombre de la tabla de esquemas, añada la colección de origen que desee migrar. Utilice% para especificar varias colecciones.

    • En Número de particiones, escriba 16 (debe ser menor queMaxFullLoadSubTask).

  8. En la sección Evaluación previa a la migración, asegúrese de que esté desactivada.

Migración sin conexión

En esta sección se describe el proceso para realizar una migración sin conexión desde una instancia de MongoDB autogestionada a Amazon DocumentDB mediante herramientas nativas de MongoDB: y. mongodump mongorestore

Requisitos previos

Requisitos de MongoDB de origen

  • Acceso a la instancia de MongoDB de origen con los permisos adecuados.

  • Instálelomongodump. si es necesario (se instala durante una instalación de MongoDB).

  • Asegúrese de que haya suficiente espacio en disco para los archivos de volcado.

Requisitos de Amazon DocumentDB de Target

  • Asegúrese de tener aprovisionado un clúster de Amazon DocumentDB.

  • Asegúrese de que haya una EC2 instancia en la misma VPC que Amazon DocumentDB para facilitar la migración.

  • La conectividad de red debe estar disponible entre el entorno de origen y Amazon DocumentDB.

  • mongorestore debe estar instalado en la instancia de migración. EC2

  • Se deben configurar los permisos de IAM adecuados para acceder a Amazon DocumentDB,

Requisitos generales

  • AWS CLI debe configurarse (si se utilizan AWS servicios de almacenamiento intermedio)

  • Debe haber suficiente ancho de banda disponible para la transferencia de datos.

  • Se debe aprobar el período de inactividad (si realiza una migración en vivo, considere otros enfoques)

Preparar un clúster de Amazon DocumentDB

Cree un clúster de Amazon DocumentDB en: AWS

  • Asigna un tamaño de instancia en función de tu carga de trabajo.

  • Configure una VPC, subredes y grupos de seguridad.

  • Habilite los parámetros necesarios mediante grupos de parámetros.

Realice el volcado de datos (mongodump)

Elija una de las siguientes opciones para crear un archivo de volcado:

  • Opción 1: básica

    mongodump -- uri="mongodb://<source_user>:<source_password>@<source_host>:<source_port>/<database>" -- out=/path/to/dump
  • Opción 2: mejor control y rendimiento

    mongodump \ --uri="mongodb://<source_user>:<source_password>@<sourcehost>:<source_port>" \ --out=/path/to/dump \ --gzip \# Compress output --numParallelCollections=4 \# Parallel collections dump --ssl \# If using SSL --authenticationDatabase=admin \ # If auth is required --readPreference=secondaryPreferred # If replica set
  • Opción 3: Bases de datos grandes

    mongodump \ --host=<source_host> \ --port=<source_port> \ --username=<source_user> \ --password=<source_password> \ --db=<specific_db> \# Only dump specific DB --collection=<specific_collection> \ # Only dump specific collection --query='{ "date": { "$gt": "2020-01-01" } }' \ # Filter documents --archive=/path/to/archive.gz \# Single archive output --gzip \ --ssl

Transfiera los archivos de volcado al entorno de restauración

Elija un método adecuado en función del tamaño del volcado:

  • Pequeño: copia directamente a tu máquina de migración (EC2 instancia que creaste anteriormente):

    scp -r /path/to/dump user@migration-machine:/path/to/restore
  • Medio: utilice Amazon S3 como almacenamiento intermedio:

    aws s3 cp --recursive /path/to/dump s3://your-bucket/mongodb-dump/
  • Grande: para bases de datos muy grandes, considere AWS DataSync la posibilidad de realizar una transferencia física.

Restaurar datos en Amazon DocumentDB (mongorestore)

Antes de iniciar el proceso de restauración, cree los índices en Amazon DocumentDB. Puede utilizar la herramienta Amazon DocumentDB Index para exportar e importar índices.

Elija una de las siguientes opciones para restaurar los datos:

  • Opción 1: restauración básica

    mongorestore --uri="mongodb://<docdb_user>:<docdb_password>@<docdb_endpoint>:27017" /path/to/dump
  • Opción 2: mejor control y rendimiento

    mongorestore \ --uri="mongodb://<docdb_user>:<docdb_password>@<docdb_endpoint>:27017" \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ # DocumentDB CA cert --gzip \# If dumped with gzip --numParallelCollections=4 \# Parallel restoration --numInsertionWorkersPerCollection=4 \# Parallel documents insertion --noIndexRestore \# skip indexes as they are pre-created /path/to/dump
  • Opción 3: Bases de datos grandes o controles específicos

    mongorestore \ --host=<docdb_endpoint> \ --port=27017 \ --username=<docdb_user> \ --password=<docdb_password> \ --ssl \ --sslCAFile=/path/to/rds-combined-ca-bundle.pem \ --archive=/path/to/archive.gz \# If using archive format --gzip \ --nsInclude="db1.*" \# Only restore specific namespaces --nsExclude="db1.sensitive_data" \ # Exclude specific collections if needed --noIndexRestore \# skip indexes as they are pre-created --writeConcern="{w: 'majority'}" # Ensure write durability

Monitorización

En esta sección se proporciona un proceso de supervisión detallado para hacer un seguimiento del progreso, el rendimiento y el estado de una migración en curso desde:

MongoDB a Amazon DocumentDB

o

Amazon DocumentDB a Amazon DocumentDB

Los pasos de monitoreo se aplican independientemente del método de migración (AWS DMS mongodump/mongorestore u otras herramientas).

AWS DMS Supervisión de la migración (si corresponde)

Supervise las siguientes CloudWatch métricas clave:

Métricas de la fase de carga completa

  • FullLoadThroughputBandwidthTarget— Ancho de banda de red (KB/segundo) a plena carga

  • FullLoadThroughputRowsTarget— Número de cargas por rows/documents segundo

  • FullLoadThroughputTablesTarget— Número de unidades tables/collections completadas por minuto

  • FullLoadProgressPercent— Porcentaje de carga completa completada

  • TablesLoaded— Número de cargadas tables/collections correctamente

  • TablesLoading— Número de personas que se tables/collections están cargando actualmente

  • TablesQueued— Número de personas en tables/collections espera de ser cargadas

  • TablesErrored— Número de los tables/collections que no se pudieron cargar

Métricas de fase de los CDC

  • CDCLatencyObjetivo: retraso (segundos) entre el cambio de fuente y la aplicación de destino

  • CDCLatencyFuente: retraso (segundos) entre el cambio en la fuente y la lectura del DMS

  • CDCThroughputRowsTarget— Se aplican filas por segundo durante la replicación en curso

  • CDCThroughputBandwidthTarget— Ancho de banda de red (KB/segundo) durante la CDC

  • CDCIncomingCambios: número de eventos de cambio recibidos de la fuente

  • CDCChangesMemoryTarget— Memoria utilizada (MB) para almacenar los cambios en el lado de destino

Métricas de recursos

  • CPUUtilization— Uso de CPU de la instancia de replicación

  • FreeableMemory— Memoria disponible en la instancia de replicación

  • FreeStorageSpace— Almacenamiento disponible en la instancia de replicación

  • NetworkTransmitThroughput— Rendimiento de red para la instancia de replicación

  • NetworkReceiveThroughput— Rendimiento de red para la instancia de replicación

Métricas de error

  • ErrorsCount— Número total de errores durante la migración

  • TableErrorsCount— Número de errores específicos de la tabla

  • RecordsErrorsCount— Número de errores específicos del registro

Cree CloudWatch alarmas para métricas críticas, como CDCLatencyTarget recibir notificaciones si CPUUtilization el rendimiento de la migración se deteriora.

Registros de DMS (registros) CloudWatch

  1. Ve a la consola de Amazon CloudWatch Logs.

  2. Busque y elija en su grupo de registros. Tendrá un aspecto similar a «dms-tasks —».

  3. Busque secuencias de registro que puedan contener información de error:

    • Transmisiones con la palabra «error» en el nombre

    • Transmisiones con nombres de tareas IDs o puntos finales

    • Las secuencias de registro más recientes durante el tiempo de la migración

  4. En estas secuencias, busca palabras clave como:

    • «error»

    • «excepción»

    • «falló»

    • «advertencia»

Estado de la tarea de DMS (utilizando AWS CLI)

aws dms describe-replication-tasks --filters Name=replication-task id,Values=<task_id> --query "ReplicationTasks[0].Status"

Flujo de estado esperado:

crear → listo → en ejecución → detener → detenido (o fallido)

Supervise usando docdb-dashboarder

La docdb-dashboarder herramienta proporciona una supervisión integral de los clústeres de Amazon DocumentDB mediante la generación automática de CloudWatch cuadros de mando con las métricas de rendimiento esenciales. Estos paneles muestran métricas críticas a nivel de clúster (retraso de réplica, contadores de operaciones), métricas a nivel de instancia (CPU, memoria, conexiones) y métricas de almacenamiento (uso del volumen, almacenamiento de respaldo). Para los escenarios de migración, la herramienta ofrece paneles especializados que rastrean el progreso de la migración con métricas como el retraso en la replicación de los CDC y las tasas de operación. Los paneles pueden monitorear varios clústeres de forma simultánea e incluyen soporte para instancias respaldadas por un NVMe servidor. Al visualizar estas métricas, los equipos pueden identificar de forma proactiva los cuellos de botella en el rendimiento, optimizar la asignación de recursos y garantizar el buen funcionamiento de sus implementaciones de Amazon DocumentDB. La herramienta elimina la necesidad de crear un panel de control manual y, al mismo tiempo, proporciona una supervisión uniforme en todos los entornos. Para obtener instrucciones de configuración y opciones de configuración avanzadas, consulte el repositorio de herramientas Amazon DocumentDB Dashboarder. GitHub

Validación

En esta sección se proporciona un proceso de validación detallado para garantizar la coherencia de los datos, la integridad y la compatibilidad de las aplicaciones tras la migración desde:

MongoDB a Amazon DocumentDB

o

Amazon DocumentDB a Amazon DocumentDB

Los pasos de validación se aplican independientemente del método de migración (AWS DMS mongodump/mongorestore u otras herramientas).

Lista de verificación de validación

Compruebe que el número de documentos de cada colección coincide con el de origen y el de destino:

Fuente de MongoDB

mongo --host <source_host> --port <port> --username <user> -- password <password> --eval "db.<collection>.count()"

Objetivo de Amazon DocumentDB

mongo --host <target_host> --port <port> --username <user> -- password <password> --eval "db.<collection>.count()"

Validación de esquemas e índices

Asegúrese de que:

  • todas las colecciones existen en el destino.

  • los índices se replican correctamente.

  • las definiciones de esquema (si se imponen) son idénticas.

Compruebe las colecciones (origen frente a destino)

mongo --host <source_host> --eval "show collections" mongo --host <target_host> --ssl --eval "show collections"

compruebe los índices (origen frente a destino)

mongo --host <source_host> --eval" db.<collection>.getIndexes()" mongo --host <target_host> --ssl –eval" db.<collection>.getIndexes()"

Compare la lista de colecciones para asegurarse de que no haya colecciones faltantes o adicionales.

Verifique los índices comprobando los nombres de los índices, las definiciones clave, las restricciones únicas y los índices TTL (si los hubiera).

Compruebe las reglas de validación de esquemas (si usa la validación de esquemas en MongoDB)

mongo --host <source_host> --eval" db.getCollectionInfos({name: '<collection>'}) [0].options.validator" mongo --host <target_host> --ssl –eval" db.getCollectionInfos({name: '<collection>'})[0].options.validator"

Muestreo de datos y validación a nivel de campo

Puede muestrear documentos de forma aleatoria y comparar campos entre el origen y el destino.

Muestreo manual

Obtenga cinco documentos aleatorios (fuente):

mongo --host <source_host> --eval "db.<collection>.aggregate([{ \$sample: { size: 5 } }])"

Busca el mismo documento IDs (destino):

mongo --host <target_host> --ssl –eval "db.<collection>.find({ _id: { \$in: [<list_of_ids>] } })"

Muestreo automático

import pymongo # Connect to source and target source_client = pymongo.MongoClient("<source_uri>") target_client = pymongo.MongoClient("<target_uri>", ssl=True) source_db = source_client["<db_name>"] target_db = target_client["<db_name>"] # Compare 100 random documents for doc in source_db.<collection>.aggregate([{ "$sample": { "size": 100 } }]): target_doc = target_db.<collection>.find_one({ "_id": doc["_id"] }) if target_doc != doc: print(f"❌ Mismatch in _id: {doc['_id']}") else: print(f"✅ Match: {doc['_id']}")

Validación mediante DataDiffer herramienta

La DataDiffer herramienta proporciona una forma fiable de comparar los datos entre las bases de datos de origen y destino.

Requisitos previos

Se deben cumplir los siguientes requisitos previos antes de instalar la DataDiffer herramienta:

  • Python 3.7+

  • PyMongo biblioteca

  • Conectividad de red con los clústeres de MongoDB de origen y de Amazon DocumentDB de destino

Instalación y configuración

Clone el repositorio y navegue hasta el directorio DataDiffer

git clone https://github.com/awslabs/amazon-documentdb-tools.git cd amazon-documentdb-tools/migration/data-differ

Instale las dependencias necesarias

pip install -r requirements.txt

Ejecutando la validación de datos

Cree un archivo de configuración (por ejemplo, config.json) con los detalles de la conexión

{ "source": { "uri": "mongodb://username:password@source-mongodb- host:27017/?replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "target": { "uri": "mongodb://username:password@target-docdb- cluster.region.docdb.amazonaws.com:27017/?tls=true&tlsCAFile=global- bundle.pem&replicaSet=rs0", "db": "your_database", "collection": "your_collection" }, "options": { "batch_size": 1000, "threads": 4, "sample_size": 0, "verbose": true } }

Ejecute la herramienta DataDiffer

python differ.py --config config.json

En el caso de colecciones grandes, utilice el muestreo para validar un subconjunto de datos

python differ.py --config config.json --sample-size 10000

Para validar varias colecciones, cree archivos de configuración independientes o utilice el modo por lotes

python differ.py --batch-config batch_config.json

Interpretación de los resultados

La herramienta generará:

  • Total de documentos en origen y destino

  • Número de documentos coincidentes

  • Número de documentos faltantes

  • Número de documentos con diferencias

  • Informe detallado de las diferencias (si las hubiera)

Prácticas recomendadas

Las siguientes son las prácticas recomendadas para utilizar la DataDiffer herramienta:

  • Ejecute por fases: primero valide los recuentos de documentos, luego tome muestras de los documentos clave y, por último, ejecute una comparación completa, si es necesario.

  • Compruebe si hay diferencias de esquema: Amazon DocumentDB tiene algunas limitaciones en comparación con MongoDB. La herramienta destacará los tipos o estructuras de datos incompatibles.

  • Valide durante los períodos de inactividad: ejecute la validación cuando las operaciones de escritura sean mínimas para garantizar la coherencia.

  • Supervise el uso de los recursos: el proceso de comparación puede consumir muchos recursos. Ajuste el tamaño del lote y el número de hilos en consecuencia.

  • Validar los índices: tras la validación de los datos, asegúrese de que se hayan creado todos los índices necesarios en el clúster de Amazon DocumentDB de destino.

  • Resultados de la validación de documentos: mantenga un registro de los resultados de la validación de cada colección como parte de la documentación de migración.