Cómo migrar PostgreSQL On-Premise a Azure – Parte 1
Bienvenidos/as a un nuevo post en el blog de Aleson ITC. En el artículo de hoy hablaremos sobre como migrar nuestro servidor PostgreSQL On-Premise a Azure que lo dividiremos en 3 partes.
En esta primera parte crearemos nuestro Azure Database for PostgreSQL – Flexible Server y la configuraremos para poder acceder desde pgadmin.
Antes de empezar tenemos que saber los 3 tipos de servicios que ofrece Azure.
Tipos de Servicio de PostgreSQL en Azure
Azure Database for PostgreSQL – Single Server
Es un servicio que está administrado con los mínimos requisitos de configuración de BBDD. Este servicio está diseñado para la mayoría de las funciones de administración de las BBDD, es decir, backups, alta disponibilidad, seguridad y con una configuración mínima por parte del usuario.
Este servicio se puso a disposición el 2018, pero dados los nuevos avances, la disponibilidad, la escalabilidad y las funcionalidades de rendimiento desde noviembre de 2023 ya no se admite la creación de nuevas instancias de servidor único o Single Server.
Compatible con la versión de PostgreSQL 10 y 11.
Pero este tipo de servicio tendrá soporte por parte de Microsoft hasta marzo de 2025, por lo que es importante que, si tenemos nuestro servidor en este tipo de servicio, lo migremos a Flexible Server.
Azure Database for PostgreSQL – Flexible Server
Este servicio proporciona una mayor flexibilidad sobre las funciones de administración de BBDD y las opciones de configuración. En general, este servicio proporciona mayor flexibilidad y personalizaciones de la configuración del servidor en función de los requisitos del usuario.
La arquitectura de servidor flexible permite a los usuarios optar por la alta disponibilidad dentro de una única zona de disponibilidad o entre varias.
Es compatible con postgres 11, 12, 13, 14, 15 y 16.
Azure Database for PostgreSQL – Hyperscale (Citus)
Los grupos de servidores Hyperscale (Citus) existentes se convirtieron automáticamente en clústeres Azure Cosmos DB para PostgreSQL con el nuevo nombre en octubre de 2022. Todas las características y precios, incluidos los precios de computación reservada y la disponibilidad regional, se conservaron con el nuevo nombre.
A continuación, os dejamos enlaces que nos pueden ayudar a ampliar información.
Tabla de comparación servidor único vs servidor flexible
Breve resumen en Single Server y Flexible Server
Ahora que ya conocemos los tres tipos de servicios que nos ofrece, vamos a proceder a crear nuestro servicio en Azure.
Cómo crear nuestro servicio PostgreSQL Flexible Server
Lo primero, vamos a nuestra cuenta de Azure y tendremos que buscar «postgres».
Y se nos abrirá la siguiente página:
Pulsamos en crear, y a continuación lo configuramos según nuestra necesidad, en este caso al ser una prueba vamos a seleccionamos el tipo Development.
Rellenamos los campos marcados: nombre, región y la versión de PostgreSQL que vamos a instalar, en nuestro caso la última, la 16.
Mas abajo tenemos que seleccionar nuestro tipo de autenticación.
En el caso de que sea Postgres, informar del usuario y contraseña y le damos a Next: Networking
En la parte de networking seleccionamos si queremos dar acceso público o privado, en este caso vamos a seleccionar público y abajo en Firewall rules podemos seleccionar la IP pública a la cual queremos dar acceso. También tenemos la opción de Add current cliente IP address. Esto lo que va a hacer es añadir nuestra IP pública en el firewall.
Configurada la parte del networking, le damos a Next: Security
Aquí tenemos que seleccionar el certificado con el que queremos encriptar nuestros datos.
- Service-managed Key, es decir, gestionado por Microsoft
- Customer-managed Key, es decir, un certificado nuestro.
La diferencia entre una y otra es que la SMK está gestionada enteramente por Microsoft y no puede ser modificada o desactivada por los clientes.
Pero las CMK, proporcionan un mayor control sobre el cifrado de sus datos, permite a los clientes gestionar sus propias claves de cifrado, que se pueden revocar si es necesario.
Pero para esta prueba, marcaremos Service-managed key.
Terminado con la parte de Security, pulsamos en Next: Tags.
Los Tags, sirven para organizar y clasificar permitiéndonos hacer un seguimiento de nuestro entorno. Por ejemplo, queremos ver la facturación de nuestro entorno de producción, podemos filtrar por la etiqueta de producción y ver el coste.
Terminamos con las etiquetas y pulsamos en Next: Review + create
Y nos aparecerá un resumen de toda la configuración que hemos aplicado.
Revisamos que todo esté bien y pulsamos en Create.
La creación del servicio llevara unos minutos, solo queda esperar.
Conectando desde Pgadmin a nuestro servicio PostgreSQL Flexible en Azure
Para poder conectarnos a nuestro servicio de Postgres en Azure, necesitamos registrar un server en nuestro local.
Abrimos nuestro pgadmin, botón derecho sobre Servers – Register – Server
Informamos nombre de la conexión.
En la pestaña de Connection, informamos el host name o la ip, puerto, BBDD a la que vamos a conectar por defecto va ser postgres, usuario y pass.
El resto de las pestañas las dejamos por defecto, informados de los campos necesarios pulsamos en Save, al guardar lo que va a hacer Postgres es realizar una primera prueba de conexión.
Posible error que puede darnos al conectar
FATAL: no pg_hba.conf entry for host. Para solucionar este error, primero tenemos que revisar en nuestro servicio de postgres. En la configuración de networking hemos añadido nuestra IP pública desde la cual estamos intentando acceder.
Segundo: tenemos que descargar nuestro certificado SSL, y dejarlo en una ruta desde la cual tengamos acceso con nuestro postgres local.
Y en la configuración de nuestro servidor de postgres, en la pestaña de parameters
Le damos a Save, y con esta nueva configuración tendríamos solucionado nuestro problema de conexión.
Una vez que se conecte, veremos que en el nuevo servidor nos aparecen las siguientes BBDD.
«azure_maintenance» y «azure_sys«, son las BBDD de Azure, estas no se pueden borrar y son necesarias para el correcto funcionamiento de nuestro servicio en Azure.
Podemos lanzar la siguiente query, para ver que funciona correctamente.
Y también veremos la versión de postgres que tenemos en Azure.
Y con esto ya estaríamos conectados a nuestro servicio en Azure correctamente.
En esta entrada hemos visto como crear nuestro Azure Database for PostgreSQL – Flexible Server y como nos hemos conectado a él desde pgadmin. En la próxima entrada hablaremos sobre la pre-configuración necesaria para la migración, roles y usuarios.
¿Necesitas una migración rápida y sin pausar tu negocio? ¡Contáctanos!
Data Analyst Associate.