Introducción a AWS DMS
Tags: aws, database, awsdms, spanish
Published: 2021-04-12 01:39:46


![image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pp5v71ngy8im92t2euqg.png)
 

Actualmente, las organizaciones y empresas cuando requieren

1. Migrar sus cargas de trabajos a la nube.

2. Contar con un ecosistema híbrido (on-premise-cloud) o (cloud-cloud).

3. Crear un Data Lake con diferentes orígenes.
Analizan cual es la mejor forma la cual involucre costo-beneficio, menor impacto en la afectación en la continuidad del negocio y ventaja competitividad en el sector (innovación).

Para ello, AWS cuenta con un servicio llamado **AWS DMS (Database Migration Service)** y aunque el nombre pareciera que solo tiene como utilidad migrar cargas de trabajo, también nos proporciona la posibilidad de realizar replicaciones continuas de nuestros datos.

*“AWS Database Migration Service ayuda a migrar las bases de datos a AWS de manera rápida y segura. La base de datos de origen permanece totalmente operativa durante la migración, lo que minimiza el tiempo de inactividad de las aplicaciones que dependen de ella. AWS Database Migration Service puede migrar datos hacia y desde la mayoría de las bases de datos comerciales de código abierto de uso más generalizado.”*


###Con AWS DMS podemos realizar:

• Migraciones homogéneas y heterogenias
• Replicaciones continuas homogéneas y heterogéneas.

###Y surge la pregunta:

Ejemplo: **¿Podemos migrar y replicar SAP Sybase a Amazon Redshift?** 

Si, podemos realizar migración, replicación de cargas de trabajo que están en on-premie, AWS u otro provider cloud a Amazon Redshift provenientes de SAP Sybase. 

###¿Cuáles son los motores de base de datos soportados para las migraciones/replicaciones de origen y destino de AWS DMS?

En la siguiente imagen, contamos con el cuadro resumen 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jjwgcf2wq99o2t4e7xbb.png)

[https://aws.amazon.com/dms/schema-conversion-tool/?nc=sn&loc=2]

Bien, pero cuando conversamos en esas organizaciones y empresas que desean migrar sus cargas o replicarlas, se preguntan:

###¿Qué sucede con la consistencia de los datos cuando realizo esto usando una estrategia heterogénea?

Para ello, AWS DMS tiene una herramienta que a mi parecer es muy potente por las características que ofrece, **AWS Schema Tool**, en resumen:

*“La herramienta de conversión de esquemas de AWS hace que las migraciones de bases de datos heterogéneas sean predecibles al convertir automáticamente el esquema de la base de datos de origen y la mayoría de los objetos de código de la base de datos, incluidas las vistas, los procedimientos almacenados y las funciones, a un formato compatible con la base de datos de destino. Los objetos que no se pueden convertir automáticamente se marcan claramente para que se puedan convertir manualmente para completar la migración.” [1]*

Importante, **AWS Schema Tool** es una herramienta **sin costo** y es compatible con los siguientes sistemas operativos

• Microsoft Windows
• Apple Mac
• Fedora Linux (rpm)
• Ubuntu Linux (deb)

Otra de las características de AWS DMS son los **pre-assessments (pre-evaluaciones)**:

*“… evalúa componentes específicos de una tarea de migración de base de datos para ayudar a identificar cualquier problema que pueda impedir que una tarea de migración se ejecute como se esperaba.” [2]*

Esto lo aplica para las Task (tareas) que configuramos en AWS DMS cuando realizamos la migración/replicación de nuestras cargas de trabajo.

###Ahora bien, para usar AWS DMS debemos configurar previamente

1. Creación y definir Subnet groups para la creación de instancia de replicación.

2. Crear un replicador: Es una instancia de AWS DMS que permite realizar el proceso de orsquetación, obtención y volcado de los datos de orígenes y destinos.

3. Crear las conexiones a nuestros motores de base de datos, para orígenes como destinos: Requiere un usuario de la base de datos con ciertos permisos, contraseña, puerto de conectividad y dirección IP.

4. Creación de una tarea (task), indicando los componentes de origen-destino y definiremos la estrategia, si migramos o replicamos, adicional que base de datos, tablas y transformación queremos realizar.

**Importante**: Si realizaremos replicación continua, es necesario aplicar una configuración adicional en la base de datos origen, por ejemplo, para MySQL, es necesario agregar y activar binlog en la configuración.

AWS DMS tiene la opción de usar **CDC(Change Data Capture)**[3]

###Ahora bien, si podemos con AWS DMS replicar y migrar, ¿cuáles serían los casos de usos más comunes?

1. Consolidación de base de datos, ejemplo, varios orígenes volcados a Amazon Redshift, el DataWarehouse de AWS.

2. Creación de una Data Lake, ejemplo, el principio del punto anterior y agregando S3 con varios tipos de archivos, usando Athena, Glue, EMR, etc.

3. Creación de un Business Inteligencie, ejemplo, tener base de datos orígenes obteniendo los datos y usando AWS DMS como replicador a otra base de datos donde podemos consumir para crear nuestros reportes de BI.

4. Ambientes de pruebas, calidad y desarrollo de nuestras cargas de orígenes de base de datos productivas, ejemplo, validar constantemente un ambiente de calidad con datos actualizados de orígenes de producción.

En mi opinión, AWS DMS tiene una gran ventaja y es que no requerimos tener y trasladar una carga de orquestación de migración y replicación a nuestros orígenes y destinos, evitando el consumo adicional de recursos en dichas instancias de motores de base de datos y delegándolo al replicador de AWS DMS.

###Vamos al tema de costos

**AWS DMS tiene una oferta de:**
 
*“Si el destino de la migración de base de datos es Amazon Aurora, Amazon Redshift, Amazon DynamoDB o Amazon DocumentDB (compatible con MongoDB), podrá usar DMS gratuito durante seis meses.” [4]* 

**Los costos de AWS DMS se detallan**

• Tipo de instancia del replicador.
• Almacenamiento del replicador.
• Transferencia de datos.

Como buena práctica, antes de volcarnos a configurar, revisemos los alcances y las limitaciones del servicio. 

###¿Cuál serían las limitaciones de AWS DMS?

[https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Limits.html]


###Consejos y buenas prácticas

1. Empiece por algo sencillo pero funcional, pruebe y entienda como funciona AWS DMS, no recomiendo usar primero un ambiente de producción sin conocer antes el servicio y las funcionabilidades.

2. Realice una estrategia, tanto para migración o replicación, involucre a los departamentos de base de datos, seguridad y redes.

3. Valide las normas nacionales en el País sobre el uso y exportación de datos hacia la nube.

4. Defina un plan basado en el resultado de la estrategia donde involucro a los departamentos.

5. Use las herramientas que le brinda AWS DMS, AWS Schema Tool y pre-assessments.

6. Realice y presente un presupuesto de costos asociados, recuerde que no siempre es solo AWS DMS.

Y para finalizar, el mejor consejo, realice Workshops, lea la documentación oficial y cree sus notas de interés para su próxima carga migrada/replica en AWS.

###AWS DMS Workshop
[https://dms-immersionday.workshop.aws/en/]

En el próximo artículo, iniciaremos con AWS DMS creando una migración y replicación.


[1]:[https://aws.amazon.com/es/dms/schema-conversion-tool/?nc1=h_ls]
[2]:[https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.AssessmentReport.html]
[3]:[https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Task.CDC.html]
[4]:[https://aws.amazon.com/es/dms/pricing/?nc=sn&loc=3]