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.
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.
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.
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).
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).
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:
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:
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.
En la siguiente figura se muestran los 5 paneles que se pueden ver al crear un proyecto de migración con AWS SCT:
Una vez decidido el motor de destino, debemos añadir la base de datos de destino a nuestro proyecto.
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:
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:
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.
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.