Bases de Datos Gestionadas: Cloud SQL (PostgreSQL) con gcloud
Autor: Eduardo Martínez Agrelo
Casi todas las aplicaciones empresariales necesitan una base de datos relacional para garantizar la integridad de sus transacciones. En el mundo tradicional, esto implicaba instalar el motor de base de datos en un servidor, gestionar parches, configurar backups manuales y rezar para que el disco no se llenara. Cloud SQL elimina toda esa carga operativa. En el examen Associate Cloud Engineer, se espera que sepas cuándo elegir Cloud SQL frente a otras opciones y cómo configurarlo para que sea resiliente.
¿Qué es Cloud SQL y por qué es "Gestionado"?
Cloud SQL es un servicio que ofrece motores de base de datos populares (MySQL, PostgreSQL y SQL Server) como un servicio administrado. Al decir "gestionado", nos referimos a que Google se encarga de:
- Mantenimiento del SO: Tú no ves la VM que corre la base de datos ni aplicas parches de seguridad de Linux.
- Backups Automatizados: Se pueden programar copias de seguridad diarias y retenciones automáticas.
- Escalado Vertical: Puedes cambiar el tipo de máquina (añadir más RAM o CPU) con un par de clics o un comando, aunque esto requiere un breve reinicio de la instancia.
Conceptos Críticos para el Examen: HA y Réplicas
Esta es la parte donde muchos candidatos fallan al no distinguir entre redundancia y rendimiento:
- Alta Disponibilidad (HA): Es una configuración Regional. Google crea una instancia primaria en una zona y una instancia de "Standby" en otra zona de la misma región. Si la zona primaria falla, Cloud SQL conmuta automáticamente a la de reserva. Es para resiliencia, no para velocidad.
- Réplicas de Lectura (Read Replicas): Se utilizan para el rendimiento. Si tu base de datos tiene muchas consultas de lectura, creas réplicas para descargar de trabajo a la instancia primaria. Las réplicas pueden estar en otras regiones para reducir la latencia global.
Cloud SQL vs. Cloud Spanner: El dilema del Arquitecto
El examen ACE a menudo te pedirá elegir entre estos dos. Recuerda esta regla simple:
- Cloud SQL: Para bases de datos relacionales estándar que caben en una sola máquina y no necesitan escalado horizontal masivo. (Máximo unos pocos Terabytes).
- Cloud Spanner: Para bases de datos relacionales de escala global que necesitan escalado horizontal infinito y consistencia fuerte en todo el mundo. Es mucho más caro y complejo.
Seguridad de Conexión: Cloud SQL Auth Proxy
¿Cómo se conecta tu aplicación a Cloud SQL de forma segura? Aunque puedes usar IPs públicas y listas blancas (Authorized Networks), la recomendación oficial de Google es el Cloud SQL Auth Proxy. Este pequeño binario crea un túnel cifrado entre tu aplicación y la base de datos usando IAM para la autenticación, eliminando la necesidad de abrir puertos de firewall a IPs externas o gestionar certificados SSL manualmente.
La Práctica con gcloud
En este ejercicio, utilizaremos el comando gcloud sql instances create. Veremos parámetros esenciales como la versión de la base de datos (PostgreSQL 14 en nuestro caso), la región y la configuración de recursos (CPU y Memoria). Nota importante: ¡Cloud SQL no tiene capa gratuita! Al terminar este ejercicio, asegúrate de borrar la instancia para evitar cargos inesperados.
Conclusión: Persistencia Profesional
Al finalizar este ejercicio, habrás desplegado una infraestructura de datos de nivel empresarial. Has aprendido que delegar la gestión del motor de base de datos a Google te permite centrarte en el modelo de datos y en tu aplicación, garantizando al mismo tiempo que la información está protegida y disponible.