Un solo VPS tiene un punto único de fallo. Si cae, todo cae. Esta guía te enseña a construir arquitecturas resilientes que sobreviven a fallos.
Niveles de disponibilidad
| Nivel | Uptime | Downtime/año | Coste |
|---|---|---|---|
| Básico (1 VPS) | 99% | 3.65 días | €20/mes |
| Medio (backup caliente) | 99.9% | 8.7 horas | €50/mes |
| Alto (load balancer) | 99.95% | 4.4 horas | €100/mes |
| Muy alto (multi-región) | 99.99% | 52 min | €300+/mes |
Arquitectura básica resiliente
┌─────────────┐
│ Usuario │
└──────┬──────┘
│
┌──────▼──────┐
│ Cloudflare │ ← CDN + Failover DNS
└──────┬──────┘
│
┌────────────┼────────────┐
│ │ │
┌─────▼─────┐ ┌────▼────┐ ┌─────▼─────┐
│ VPS 1 │ │ VPS 2 │ │ VPS 3 │
│ (Web) │ │ (Web) │ │ (DB) │
└───────────┘ └─────────┘ └───────────┘
Opción 1: Failover con Cloudflare
Configuración DNS con failover
# DNS Records en Cloudflare
A @ 123.45.67.89 (VPS principal)
A @ 123.45.67.90 (VPS backup)
# Activar Load Balancing de Cloudflare
# O usar Health Checks gratuitos
Health Checks
Cloudflare verifica periódicamente que tu servidor responde. Si falla, redirige al backup.
Coste: Gratis (básico) o desde €5/mes (avanzado)
Opción 2: Load Balancer
HAProxy en VPS dedicado
# Instalar HAProxy
sudo apt install haproxy -y
# /etc/haproxy/haproxy.cfg
frontend http_front
bind *:80
bind *:443 ssl crt /etc/ssl/certs/tudominio.pem
default_backend http_back
backend http_back
balance roundrobin
option httpchk GET /health
server web1 10.0.0.2:80 check
server web2 10.0.0.3:80 check
Nginx como Load Balancer
upstream backend {
least_conn;
server 10.0.0.2:80 weight=5;
server 10.0.0.3:80 weight=5;
server 10.0.0.4:80 backup;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_next_upstream error timeout;
}
}
Opción 3: Base de datos replicada
MySQL Master-Slave
# En Master (VPS 1)
# /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = mibase
# En Slave (VPS 2)
# /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
server-id = 2
relay-log = /var/log/mysql/mysql-relay-bin.log
-- En Slave
CHANGE MASTER TO
MASTER_HOST='10.0.0.2',
MASTER_USER='replica',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=0;
START SLAVE;
Verificar replicación
SHOW SLAVE STATUS\G
-- Buscar: Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
Opción 4: Almacenamiento compartido
GlusterFS entre VPS
# En ambos VPS
sudo apt install glusterfs-server -y
# En VPS 1 (crear volumen)
sudo gluster volume create www replica 2 \
vps1:/data/www vps2:/data/www
sudo gluster volume start www
# Montar
sudo mount -t glusterfs localhost:/www /var/www/
Sincronización con Lsyncd
# Instalar
sudo apt install lsyncd -y
# Configurar
# /etc/lsyncd.conf.lua
sync {
default.rsync,
source = "/var/www/",
target = "vps2:/var/www/",
delay = 1
}
Opción 5: Floating IP
Concepto
IP que puedes mover entre VPS instantáneamente.
Estado normal:
Floating IP → VPS 1 (activo)
VPS 2 (standby)
VPS 1 falla:
Floating IP → VPS 2 (nuevo activo)
Implementación
Depende del proveedor. Algunos ofrecen API para mover IPs automáticamente.
# Script de failover (ejemplo conceptual)
#!/bin/bash
if ! curl -s http://vps1/health; then
# Mover IP flotante a VPS 2
api-call move-floating-ip --to vps2
fi
Monitorización para HA
Uptime monitoring
# UptimeRobot (gratis)
# - Monitoriza cada 5 minutos
# - Alerta por email/SMS
# - Failover DNS automático (pro)
Healthchecks internos
# Endpoint de health
# /health en tu app
curl -s localhost/health
# Debe devolver 200 OK
# Nginx health endpoint
location /health {
access_log off;
return 200 "OK";
}
Costes de HA
| Arquitectura | Componentes | Coste aprox |
|---|---|---|
| Básico + backup | 2 VPS + sync | €40-60/mes |
| Load balancer | 3 VPS + LB | €80-120/mes |
| Full HA | 4+ VPS + réplica DB | €150-300/mes |
Cuándo NO necesitas HA
- Blog personal
- Sitio corporativo simple
- Proyectos internos
- MVP/prototipos
Para estos: Un buen backup y monitorización es suficiente.
Cuándo SÍ necesitas HA
- E-commerce (ventas perdidas = dinero perdido)
- SaaS con SLA
- APIs críticas
- Servicios 24/7
Preguntas frecuentes
¿Puedo tener alta disponibilidad con un solo VPS?
No realmente. Un solo VPS es un punto único de fallo. Puedes mejorar con backups y restauración rápida, pero no es HA verdadera.
¿Cuánto cuesta implementar HA?
Mínimo duplicar tu coste actual (2 VPS). Una arquitectura HA completa puede costar 3-5x tu setup actual. Evalúa si el coste del downtime justifica la inversión.
¿Cloudflare es suficiente para HA?
Para muchos casos, sí. El failover DNS de Cloudflare + 2 VPS ofrece buena disponibilidad a bajo coste. Para SLA 99.99%+, necesitas más.
¿Cómo manejo las sesiones con múltiples servidores?
Usa Redis compartido para sesiones, o sticky sessions en el load balancer. Mejor aún, diseña tu app para ser stateless.
¿Qué pasa con la base de datos?
Es el componente más crítico. Mínimo: backups frecuentes. Mejor: réplica en tiempo real. Óptimo: cluster con failover automático.
Nuestra recomendación
Para la mayoría de proyectos:
- 1 VPS + backups automáticos + monitorización
- Cloudflare delante (CDN + protección)
- Plan de restauración probado
Si el downtime cuesta dinero:
- 2 VPS + sincronización
- Cloudflare con failover
- Base de datos replicada
Para SLA exigentes:
- Arquitectura multi-VPS completa
- Load balancer dedicado
- Réplica de BD en tiempo real
- Multi-región si es crítico
¿Necesitas ayuda con HA? La administración gestionada de Avantys puede diseñar e implementar arquitecturas de alta disponibilidad.
Conclusión
La alta disponibilidad tiene un coste. Evalúa cuánto te cuesta el downtime antes de invertir en HA.
Para muchos proyectos, backups + monitorización es suficiente. Para proyectos críticos, la inversión en HA se paga sola.
¿Quieres que lo hagamos por ti?
En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.