Servicio de migración de bases de datos - Migración segura y eficiente con AWS DMS
Explicamos las técnicas de migración de bases de datos utilizando AWS Database Migration Service (DMS). Presentamos la migración entre bases de datos homogéneas y heterogéneas mediante la integración con RDS, y métodos prácticos para minimizar el tiempo de inactividad mediante replicación continua.
Desafíos de la migración de bases de datos y descripción general de DMS
La migración de bases de datos es uno de los procesos de mayor riesgo en los proyectos de migración a la nube. Los elementos a considerar son numerosos: garantía de integridad de datos, minimización del tiempo de inactividad, conversión de esquemas y verificación de compatibilidad de aplicaciones. AWS Database Migration Service (DMS) es un servicio completamente administrado que migra datos de forma segura desde bases de datos on-premises a AWS, o entre bases de datos dentro de AWS. Soporta más de 20 motores de bases de datos como Oracle, SQL Server, MySQL, PostgreSQL, MongoDB, Amazon Aurora y DynamoDB como origen o destino. DMS puede especificar como destino los servicios de bases de datos de AWS (RDS, Aurora, DynamoDB, Redshift) además de bases de datos autogestionadas en EC2, ofreciendo alta flexibilidad en el destino de migración.
Configuración de tareas de migración y gestión de endpoints
Las tareas de migración de DMS se componen de tres componentes: endpoint de origen, endpoint de destino e instancia de replicación. El endpoint de origen define la información de conexión de la base de datos de origen, y el endpoint de destino define la información de conexión del destino. La instancia de replicación es el recurso de cómputo que ejecuta el proceso de leer datos del origen, transformarlos según sea necesario y escribirlos en el destino. La siguiente instancia de replicación se puede crear con el comando CLI: ```bash aws dms create-replication-instance \ --replication-instance-identifier my-repl-instance \ --replication-instance-class dms.r5.large \ --allocated-storage 100 \ --multi-az ``` Las reglas de mapeo de tablas permiten especificar selectivamente los esquemas y tablas a migrar, y también definir reglas de transformación de nombres de tablas y columnas. Las reglas de filtrado permiten migrar solo los registros que cumplan condiciones específicas. La función de evaluación previa a la migración verifica automáticamente la compatibilidad de la base de datos de origen e identifica previamente los tipos de datos y objetos que podrían causar problemas durante la migración. También se ofrece la opción DMS Serverless, donde la capacidad se escala automáticamente según la carga de trabajo de migración, eliminando la necesidad de dimensionamiento previo.
Replicación continua y minimización del tiempo de inactividad
La función de replicación continua (CDC: Change Data Capture) de DMS continúa reflejando en tiempo real los cambios de la base de datos de origen en el destino después de completar la carga completa inicial. Esto permite mantener la sincronización con la base de datos de destino mientras la base de datos de origen sigue en funcionamiento durante el período de migración. El tiempo de inactividad durante el cutover se limita a los pocos minutos necesarios para cambiar la conexión de la aplicación, minimizando el impacto en el negocio incluso en migraciones de bases de datos de gran escala. CDC lee los logs de transacciones de la base de datos de origen (Redo Log de Oracle, Binary Log de MySQL, WAL de PostgreSQL) y aplica los cambios INSERT, UPDATE y DELETE en orden en el destino. La configuración Multi-AZ de la instancia de replicación también garantiza la alta disponibilidad del propio proceso de migración. Las métricas de CloudWatch permiten monitorear el retraso de replicación (replication lag) y determinar con precisión el momento del cutover.
Migración entre bases de datos heterogéneas y Schema Conversion Tool
En migraciones entre bases de datos heterogéneas (por ejemplo, de Oracle a Aurora PostgreSQL), es necesario convertir objetos de base de datos como esquemas, procedimientos almacenados, triggers y vistas. AWS Schema Conversion Tool (SCT) analiza el esquema de la base de datos de origen y lo convierte automáticamente a un formato compatible con la base de datos de destino. Para los objetos que no se pueden convertir, genera un informe detallado con las ubicaciones que requieren conversión manual y los métodos de conversión recomendados. El informe de evaluación de SCT evalúa cuantitativamente la complejidad de la migración, presentando la tasa de conversión automática, el número de objetos que requieren conversión manual y el esfuerzo estimado. En cargas de trabajo típicas, más del 80% del esquema se puede convertir automáticamente. SCT soporta de forma integrada la conversión desde diversas fuentes como Oracle, SQL Server, SAP ASE y Teradata en una sola herramienta. Combinando DMS y SCT, se puede ejecutar la conversión de esquemas y la migración de datos en un flujo de trabajo coherente. Para quienes deseen aprender sistemáticamente sobre la replicación con DMS, los libros relacionados (Amazon) también son una referencia útil.
Validación de datos post-migración y optimización
La función de validación de datos de DMS confirma automáticamente que los datos del origen y el destino coinciden completamente, garantizando la precisión de la migración. Además de la comparación del número de filas por tabla, también ejecuta comparaciones de datos a nivel de columna, generando informes detallados cuando se detectan discrepancias. Para la optimización de la base de datos post-migración, se utiliza RDS Performance Insights para analizar el rendimiento de consultas y considerar la adición de índices o la reescritura de consultas. En migraciones a Aurora, se pueden aprovechar las réplicas de lectura para el escalado de lecturas y Aurora Serverless v2 para el escalado automático según la carga de trabajo. Las estadísticas de tablas de la tarea de migración se pueden verificar con el siguiente comando: ```bash aws dms describe-table-statistics \ --replication-task-arn arn:aws:dms:ap-northeast-1:123456789012:task:TASK123 \ --filters Name=table-name,Values=orders ``` Configurar CloudWatch Alarms para monitorear el retraso de replicación y el número de errores, y enviar notificaciones SNS cuando se superen los umbrales, permite construir un sistema operativo que mejora la fiabilidad del proceso de migración.
Precios de DMS
Los precios de DMS se basan en la facturación por hora de la instancia de replicación. Una instancia dms.r5.large cuesta aproximadamente 0.185 dólares por hora (unos 133 dólares mensuales). DMS Serverless se factura por consumo de DCU (DMS Capacity Unit), a aproximadamente 0.018 dólares por hora de DCU. Schema Conversion Tool (SCT) es gratuito. Cuando se ejecuta replicación continua (CDC) después de completar la carga inicial, la instancia de replicación funciona continuamente, por lo que se debe detener rápidamente después de completar la migración.
Resumen - Directrices para la estrategia de migración de bases de datos
AWS DMS es un servicio completamente administrado que ejecuta migraciones entre bases de datos homogéneas y heterogéneas de forma segura y eficiente. La conversión automática de más del 80% de los esquemas con SCT, la verificación de compatibilidad mediante evaluación previa y la garantía de precisión de migración mediante la función de validación de datos son funciones esenciales para el éxito de proyectos de migración de bases de datos. La opción DMS Serverless elimina la necesidad de dimensionamiento previo y mejora la eficiencia de costos mediante el escalado automático según la carga de trabajo de migración.