Sumérgete en las migraciones de Bases de Datos al Cloud con AWS Schema Conversion Tool

Introducción

Una de las primeras preguntas que nos hacemos cuando queremos migrar nuestras bases de datos de On-Premises a la nube es ¿cómo podemos hacer para que este proceso será trasparente para los usuarios y a con un mínimo coste?

La respuesta a esta pregunta es el uso de las herramientas que nos proporciona AWS para ello, que son AWS Data Migration Service (DMS) y AWS Schema Conversion Tools (SCT).

En este post describiremos la herramienta AWS SCT que es la primera que interviene en el proceso de migración de bases de datos.

Qué es AWS SCT

Cuando se va a migrar de bases de datos comerciales como pueden ser Oracle, SQL Server, etc.,  a motores de bases de datos código abierto como puedan ser PostgreSQL, MySQL, etc, AWS SCT ayuda a automatizar muchas de las tareas de conversión de objetos de datos y  objetos de código del motor origen al motor de destino.

Este acelerador es una herramienta cliente que se puede instalar en nuestro equipo de trabajo, servidor de salto, VDI o cualquier otro equipo con sistema operativo Windows o Linux y que tenga acceso tanto al servidor origen de la migración como al destino.

Por qué utilizar AWS SCT 

AWS SCT nos da una ventaja competitiva,  ya que esta herramienta no solamente hace la migración del esquema sino que hace un análisis completo, y dependiendo las características de mi base de datos origen genera un informe para los distintos motores de BBDD soportados como destino.

A partir de estos informes se puede analizar y decidir cuál es la base de datos que mejor se adecúa y que más fácil resultará para hacer la migración. 

Es importante destacar que AWS SCT soporta los principales motores de base de datos del mercado, permitiendo que sea nuestra única(o principal) herramienta de migración de objetos de base de datos, lo que facilita el proceso de migración a la nube y el consiguiente ahorro en costes.

AWS SCT es proporcionado de forma gratuita por AWS, siempre y cuando el origen o destino de la migración sea un servicio de BBDD de AWS, tal y como pueda ser AWS RDS o también BBDD en instancias de EC2.

Cómo Funciona AWS SCT

AWS SCT convierte de forma automática los objetos de datos de la BBDD origen a objetos compatibles en el destino y nos informa sobre los objetos que no están soportados en destino. El asistente indica este aspecto y aporta las recomendaciones para su sustitución. También detecta casos en los que los objetos de datos están soportados en destino, pero que su comportamiento puede diferir con el comportamiento en el origen.

Tiene un Code Browser que es un panel donde se puede ver en el árbol de la izquierda el código fuente de  la base de datos origen (Figura A) y el código generado para la base de datos de destino (Figura B), mostrando dónde se puede necesitar hacer modificaciones manuales al migrar entre distintos motores de bases de datos, como puede ser entre una base de datos comercial como Oracle y una base de datos de código abierto como puede ser Aurora (PostgreSQL).
 

AWS SCT
Figura A

Una vez convertido el código desde nuestra BBDD origen a nuestra BBDD destino, nos situamos en el elemento del árbol que queramos y desde ahí podemos generar  y visualizar un informe con el resultado de la conversión, en el que se muestra los objetos convertidos (Figura B).

Informe de Resultados de Conversión
Figura B

El informe nos data las cifras sobre las diferentes issues que se pueden haber generado tanto con la conversión de objetos de datos como con objetos de código, y las cataloga según su dificultad:

Issues AWS

Según la compatibilidad de objetos entre el motor de origen y destino, pueden variar el numero de acciones manuales que tengamos que realizar para adaptar nuestra BBDD. Se puede ver en la siguiente imagen una conversión con mayor dificultad que el ejemplo anterior:

Informe de Conversión

Por ello es importante antes de decidir el motor de BBDD de destino analizar detenidamente las opciones de motores de destino que nos ofrece AWS, para tomar la decisión acertada.

Elementos de un proyecto de AWS SCT

En la siguiente figura se muestran los 5 paneles que se pueden ver al crear un  proyecto de migración con AWS SCT:

  1. En el panel izquierdo se presenta en una vista en árbol el esquema de la base de datos de origen. 
  2. En el panel superior central aparecen las issues para los elementos del esquema del motor de la base de datos de origen que no se hayan podido convertir automáticamente al motor de la base de datos de destino.
  3. En el panel derecho, se presenta en una vista en árbol el esquema de base de datos de destino.
  4. En el panel inferior izquierdo, al elegir un elemento de esquema, se muestran las propiedades. Describen el elemento del esquema de origen y el comando SQL para crear ese elemento en la base de datos de origen.
  5. En el panel inferior derecho, al elegir un elemento de esquema, se muestran las propiedades. Describen el elemento de esquema de destino y el comando SQL para crear ese elemento en la base de datos de destino. Se puede editar este comando SQL y guardar el comando actualizado con el proyecto. 
Elementos de un Proyecto de AWS SCT

Realizar la conversión de esquemas

Una vez decidido el motor de destino, debemos  añadir la base de datos de destino a nuestro proyecto. 

Digital Lover

Se pueden añadir varios servidores de bases de datos de origen y destino a un Proyecto de AWS SCT. En este caso es una migración de 1 -> 1.

Para añadir un servidor al proyecto elegimos “Agregar destino” del menú, para añadir una nueva base de datos de destino, seleccionamos el motor elegido y rellenamos los datos que nos solicite a continuación:

Conversión de Esquemas AWS

Después de añadir las bases de datos de origen y destino al proyecto, se puede convertir los esquemas de la base de datos de origen con los siguientes pasos:

  • Elegir Main View
Conversión de Esquemas AWS 2
  • En el panel izquierdo que muestra el esquema de la base de datos de origen, se eligen los esquemas que a convertir. Abrir el menú contextual para el objeto y seleccionar Convert Schema.
Conversión de Esquemas AWS 3
  • Cuando finaliza la conversión de esquema, se puede ver el esquema propuesto en el panel a la derecha del proyecto. En este momento, aun no se ha aplicado ningún cambio en la instancia de base de datos de destino.  El esquema planificado es parte del proyecto y solamente está en local.  Si se elige un elemento de esquema convertido, se puede ver el comando planificado en el panel de la parte inferior central de la instancia de base de datos de destino. Se puede editar el esquema en esta ventana. El esquema editado se almacena como parte del proyecto y se escribe en la instancia de base de datos de destino cuando se elige aplicar el esquema convertido.
Conversión de Esquemas AWS 4

Aplicar los esquemas convertidos en la BBDD Destino

Para aplicar el proyecto de AWS SCT de base de datos a la instancia de destino, se selecciona en el panel derecho del proyecto el elemento del esquema(s) que queremos aplicar y abrimos el menú contextual y seleccionamos “Apply to Database” (Figura C). En ese momento se comenzarán a ejecutar los scripts de SQL para crear todos los objetos convertidos.

Esquemas convertidos en la BBDD Destino
Figura C

Conclusiones

En este post hemos explicado que es AWS SCT y como nos ayuda a migrar nuestras BBDD al Cloud de AWS. Hemos descubierto que AWS SCT es la herramienta clave y un importante acelerador para realizar tanto migraciones homogéneas como heterogéneas que nos permite migrar de una forma automatizada, con el mínimo esfuerzo y con coste cero en licencias de herramientas de migración.

Es la herramienta ideal para cambiar nuestras bases de datos comerciales por BBDD de código abierto, con el consiguiente ahorro de licencias y un importante retorno de la inversión.

Enlaces de Interés

Documentación oficial de AWS SCT

Documentación AWS SCT

Descarga de AWS SCT

Windows

Ubuntu

Fedora

Controladores

Drivers

Equivalencias entre los tipos de datos Oracle y PostgreSQL

Tipos de datos 

webinar AWS

Guía de posibilidades profesionales sobre AWS
He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA