¿Cómo haces que un servicio web tenga alta disponibilidad ante fallos en AWS o Azure?
Opciones
- Dos o más instancias en zonas distintas tras un load balancer, más una base de datos multi-AZ (Opción correcta)
- Un servidor grande con mucha CPU y memoria en una sola zona
- Solo backups diarios, restaurados a mano tras cualquier fallo
- Desactivar los health checks para que nunca se quite una instancia
Respuesta
Ejecutar al menos dos instancias en Availability Zones distintas detrás de un load balancer con health checks, usar una base de datos gestionada multi-AZ y evitar puntos únicos de fallo
Por qué
Alta disponibilidad significa que el servicio sigue funcionando cuando falla un componente o un centro de datos.
- Varias instancias o Pods en 2 o más Availability Zones (Azure también tiene availability zones).
- Un load balancer con health checks retira automáticamente las instancias que no están sanas.
- Servidores de app stateless (sesión en Redis o un token), autoscaling para reemplazar nodos caídos.
- Base de datos: réplicas multi-AZ con failover automático (RDS Multi-AZ, Azure zone-redundant).
- Regiones: añade una segunda región para recuperación ante desastres (objetivos RTO/RPO).
Recuerda
2+ zonas + load balancer + health checks + base de datos replicada.