Translate

Mostrando las entradas con la etiqueta database. Mostrar todas las entradas
Mostrando las entradas con la etiqueta database. Mostrar todas las entradas

miércoles, 25 de febrero de 2026

Bases de Datos Relacionales en la Nube

 ¿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):

  1. Seleccionar motor (p. ej. PostgreSQL).

  2. Configurar tamaño de instancia (db.t3.micro, db.m6g.large, etc.).

  3. Elegir almacenamiento y backups automáticos.

  4. Configurar seguridad (VPC, grupos de seguridad).

  5. 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.

Tipo

Descripción

Ejemplo

Escalabilidad vertical (scale-up)

Aumentar recursos de una sola instancia (más CPU, RAM, disco).

Cambiar de db.t3.small a db.t3.large.

Escalabilidad horizontal (scale-out)

Agregar más instancias que comparten la carga.

Replicación de lectura en RDS o read replicas en Cloud SQL.

💡 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).


sábado, 7 de febrero de 2026

Respaldo y Recuperación (Backup & Recovery)

La recuperación ante fallos depende directamente de la estrategia de respaldo adoptada.

Un buen plan de backups asegura que la información pueda restaurarse ante:

  • Fallos del hardware.

  • Errores humanos.

  • Corrupción de datos.

  • Ataques o pérdida de información.



🔸 Estrategias de Respaldo

Tipo de Backup

Descripción

Ventajas

Desventajas

Full (Completo)

Copia total de la base de datos.

Restauración rápida, simple.

Consumo alto de tiempo y espacio.

Incremental

Copia solo los cambios desde el último backup (de cualquier tipo).

Rápido, eficiente.

Restauración más lenta (requiere varios archivos).

Diferencial

Copia los cambios desde el último backup completo.

Restauración más simple que incremental.

Tamaño intermedio.

📘 Ejemplo (PostgreSQL):

pg_dump -U postgres -F c -f backup_full.dump nombre_bd

📘 Ejemplo (MySQL):

mysqldump -u root -p --single-transaction nombre_bd > backup.sql


🔸 Planes de Recuperación ante Desastres (DRP – Disaster Recovery Plan)

Un DRP define los pasos para restaurar la operación del sistema tras un evento catastrófico.

🧩 Elementos clave de un DRP:

  1. Punto de Recuperación (RPO):
    Cantidad máxima de datos que se puede perder (por ejemplo, 1 hora de transacciones).

  2. Tiempo de Recuperación (RTO):
    Tiempo máximo aceptable para restablecer el servicio.

  3. Ubicaciones redundantes:
    Copias de datos en diferentes regiones o centros de datos.

  4. Automatización de restauración:
    Scripts o herramientas que aceleren el proceso.

📘 Ejemplo:
En AWS, se puede configurar RDS Cross-Region Replication y automated backups para recuperación rápida.


🔸 Automatización de Tareas de Mantenimiento

El mantenimiento preventivo garantiza que la base de datos se mantenga óptima y libre de problemas de rendimiento.

🧱 Tareas comunes:

Tarea

Descripción

Herramienta / Comando

Purga de datos

Eliminar registros obsoletos o temporales

DELETE o PARTITION DROP programado

Reconstrucción de índices

Reorganizar estructuras fragmentadas

REINDEX, ALTER INDEX REBUILD

Actualización de estadísticas

Mantener planes de ejecución óptimos

ANALYZE, UPDATE STATISTICS

Vacuum (PostgreSQL)

Reclaim de espacio y optimización

VACUUM FULL

Backup programado

Ejecución automática de respaldos

cron, pgAgent, SQL Server Agent



🔸 Buenas prácticas de mantenimiento

✅ Automatizar todas las tareas críticas (respaldo, vacuum, reindex).
✅ Probar periódicamente los backups restaurándolos en entornos de prueba.
✅ Monitorear espacio en disco y logs de errores.
✅ Revisar alertas del motor (errores de I/O, locks, estadísticas viejas).