¿Qué es una Base de Datos en la Nube?
Una base de datos en la nube es un servicio gestionado que permite crear, administrar y escalar bases de datos sin necesidad de instalar ni mantener infraestructura física.
Estas se ofrecen bajo el modelo DBaaS (Database as a Service), donde el proveedor se encarga de:
Infraestructura (servidores, almacenamiento, red).
Backups automáticos.
Actualizaciones y parches de seguridad.
Alta disponibilidad y recuperación ante fallos.
📘 Ejemplos de servicios DBaaS más usados:
AWS RDS (Relational Database Service)
Azure SQL Database
Google Cloud SQL
🔸 Ejemplo: AWS RDS
Amazon RDS (Relational Database Service) permite desplegar motores como:
MySQL
PostgreSQL
MariaDB
SQL Server
Oracle
Aurora (motor optimizado de AWS)
📘 Ventajas específicas:
Backups automáticos diarios.
Replicación Multi-AZ (alta disponibilidad).
Monitoreo con Amazon CloudWatch.
Escalado vertical y horizontal sin reinicios.
Ejemplo de creación (consola AWS):
Seleccionar motor (p. ej. PostgreSQL).
Configurar tamaño de instancia (db.t3.micro, db.m6g.large, etc.).
Elegir almacenamiento y backups automáticos.
Configurar seguridad (VPC, grupos de seguridad).
Conectar vía endpoint DNS generado por RDS.
🔸 Ejemplo: Azure SQL Database
Servicio totalmente administrado basado en Microsoft SQL Server.
📘 Características destacadas:
Escalado automático según demanda.
Alta disponibilidad integrada (réplicas en múltiples regiones).
Soporte para autenticación Azure AD y cifrado transparente (TDE).
Integración con Power BI y Azure Data Factory.
🔸 Ejemplo: Cloud SQL (Google Cloud)
Permite ejecutar MySQL, PostgreSQL y SQL Server en Google Cloud Platform.
📘 Ventajas:
Backups automáticos y restauración en un clic.
Replicación regional.
Integración con Google Kubernetes Engine y Cloud Run.
Seguridad mediante IAM y VPC Service Controls.
Conceptos de Escalabilidad, Alta Disponibilidad y Failover
🔸 Escalabilidad
Capacidad del sistema para aumentar recursos cuando crece la carga.
💡 En entornos modernos, se combinan ambas estrategias para mantener rendimiento y disponibilidad.
🔸 Alta Disponibilidad (High Availability, HA)
Garantiza que la base de datos permanezca accesible incluso ante fallos (hardware, red, mantenimiento).
📘 Mecanismos comunes:
Replicación síncrona: se mantiene una copia exacta en otra zona o región.
Failover automático: si la instancia principal falla, el sistema conmuta a la réplica.
Heartbeat y monitoreo continuo: detectan fallas en milisegundos.
📘 Ejemplo (AWS RDS Multi-AZ):
Se crean dos instancias en zonas distintas.
Si la principal cae, el sistema activa automáticamente la réplica secundaria.
El endpoint de conexión se mantiene igual (transparente para la aplicación).
🔸 Failover
Proceso mediante el cual una instancia secundaria toma el control de manera automática cuando la principal falla.
Tipos de failover:
Automático: el servicio gestiona la conmutación (RDS, Azure SQL).
Manual: el administrador decide cuándo activar la réplica.
📘 Ejemplo visual (RDS Multi-AZ):
[Primary DB - us-east-1a] ← replicación síncrona → [Standby DB - us-east-1b]
↓ (falla)
[Failover automático a Standby]
🔹 Seguridad en Bases de Datos en la Nube
La seguridad en entornos cloud combina controles de red, cifrado y gestión de credenciales.
La responsabilidad se comparte entre el proveedor cloud y el usuario (Shared Responsibility Model).
🔸 Grupos de Seguridad (Security Groups / Firewalls)
Actúan como cortafuegos virtuales que controlan qué direcciones IP o redes pueden acceder a la base.
📘 Ejemplo:
En AWS, un Security Group puede permitir solo el tráfico:
Entrante: puerto 5432 (PostgreSQL)
Origen: IP de la aplicación o red privada (VPC)
✅ Buenas prácticas:
Nunca exponer la base de datos directamente a Internet.
Permitir solo el tráfico interno (por VPC o túnel VPN).
Revisar reglas de seguridad periódicamente.
🔸 Cifrado en Reposo (Encryption at Rest)
Protege los datos almacenados en disco.
Los principales proveedores cifran automáticamente usando AES-256 o equivalentes.
📘 Ejemplo:
AWS RDS usa KMS (Key Management Service) para manejar claves.
Azure SQL Database usa Transparent Data Encryption (TDE).
Google Cloud SQL usa Cloud KMS.
✅ Los datos, backups, snapshots y logs quedan cifrados automáticamente.
🔸 Cifrado en Tránsito (Encryption in Transit)
Asegura que los datos viajen cifrados entre la aplicación y la base de datos mediante SSL/TLS.
📘 Ejemplo:
psql "host=mydb.rds.amazonaws.com port=5432 sslmode=require user=admin dbname=appdb"
✅ Buenas prácticas:
Exigir conexiones con SSL (require_ssl=on).
Usar certificados actualizados.
Bloquear conexiones no cifradas en la configuración del SGBD.
🔸 Gestión de Credenciales y Acceso
Implementar autenticación IAM / AD cuando sea posible.
Evitar guardar contraseñas en código fuente.
Usar rotación automática de credenciales (por ejemplo, AWS Secrets Manager).
Asignar roles mínimos necesarios (principio de least privilege).
