Saltar al contenido
aprendeaws.dev

Módulo 13 · Resiliencia y recuperación/Lección 77

Alta disponibilidad y tolerancia a fallas

Quitar puntos únicos de falla capa por capa: DNS, balanceador, cómputo, base de datos y almacenamiento.

Al terminar podrás

  • →Diferenciar alta disponibilidad y tolerancia a fallas
  • →Calcular la disponibilidad de un sistema por sus partes
  • →Diseñar una aplicación sin puntos únicos de falla

Todo falla tarde o temprano: un disco, un servidor, un centro de datos completo. La pregunta no es si va a fallar, sino qué ven tus usuarios cuando falla. Diseñar para la disponibilidad es buscar cada pieza única de tu arquitectura y darle un reemplazo listo.

Tres palabras que se confunden

ConceptoQué significa
Alta disponibilidadEl sistema sigue disponible casi todo el tiempo. Ante una falla puede haber una interrupción corta mientras cambia a un reemplazoEjemplo: RDS Multi-AZ cambia a la réplica en otra AZ
Tolerancia a fallasEl sistema sigue funcionando sin interrupción visible aunque falle un componenteRequiere redundancia completa y activa. Cuesta más
ResilienciaLa capacidad de resistir fallas, recuperarse y adaptarse a cambios como picos de cargaEs el objetivo del pilar de fiabilidad

La tolerancia a fallas es un caso más exigente de alta disponibilidad. No todo la necesita: una página de marketing puede aguantar un minuto de caída; el sistema de pagos, quizá no. Decide por lo que cuesta la caída, no por gusto. Esto es parte del pilar de fiabilidad de Well-Architected.

Quitar puntos únicos de falla, capa por capa

Un punto único de falla es una pieza que, si se cae, se lleva todo el sistema. Recorre tu diagrama de arriba abajo:

  1. 1

    DNS: el directorio de la ciudad

    Route 53 es un servicio global con chequeos de salud. Con enrutamiento de conmutación por error (failover) manda el tráfico a otro destino si el principal no responde.
  2. 2

    Entrada: la recepción

    Un Application Load Balancer se despliega en subredes de al menos dos AZs y deja de enviar tráfico a los destinos que fallan su chequeo de salud.
  3. 3

    Cómputo: los apartamentos

    Un grupo de Auto Scaling repartido en varias AZs reemplaza solo las instancias que fallan. Si una AZ cae, lanza capacidad en las otras.
  4. 4

    Base de datos

    RDS Multi-AZ mantiene una réplica en espera en otra AZ y cambia a ella de forma automática. Aurora guarda seis copias de los datos en tres AZs. DynamoDB replica en varias AZs sin que hagas nada.
  5. 5

    Almacenamiento: el banco

    S3 Standard guarda los objetos en al menos tres AZs. Nada que configurar.
  6. 6

    Red

    Un NAT Gateway por AZ. Si compartes uno solo, la caída de su AZ deja sin salida a las demás.

Calcular la disponibilidad por sus partes

La disponibilidad de un sistema se calcula a partir de la de sus componentes. Hay dos reglas, y la diferencia entre ellas explica por qué la redundancia funciona.

  • En serie (la petición pasa por A y por B): se multiplican. Disponibilidad = A × B. Cada pieza agregada en serie baja el total.
  • En paralelo (basta con que funcione A o B): se multiplica la probabilidad de que fallen ambos. Disponibilidad = 1 − (1 − A) × (1 − B). Cada copia en paralelo sube el total.

Un ejemplo con números inventados para practicar (no son los SLA de AWS): un balanceador de 99,99 %, un servidor de 99 % y una base de datos de 99,9 %, en serie.

  1. 1

    Con un solo servidor

    0,9999 × 0,99 × 0,999 = 0,9889 → 98,89 %. Unos 4 días de caída al año. El servidor es el eslabón débil.
  2. 2

    Con dos servidores en paralelo

    Capa de aplicación: 1 − (0,01 × 0,01) = 0,9999. Total: 0,9999 × 0,9999 × 0,999 = 0,9988 → 99,88 %. Unas 10,5 horas al año.
  3. 3

    Con la base de datos duplicada

    Capa de datos: 1 − (0,001 × 0,001) = 0,999999. Total: 0,9999 × 0,9999 × 0,999999 = 0,9998 → 99,98 %. Menos de 2 horas al año.

La fórmula supone que las fallas son independientes y que el cambio a la copia es instantáneo. En la vida real no lo es del todo, por eso las copias van en AZs distintas: dos servidores en la misma AZ comparten energía y red, y pueden caer juntos.

La tabla de los nueves

CriterioCaída máxima al añoCaída máxima al mes (30 días)
99 %3,65 días7,2 horas
99,9 %8,76 horas43,2 minutos
99,95 %4,38 horas21,6 minutos
99,99 %52,6 minutos4,3 minutos
99,999 %5,3 minutos26 segundos

Probar que aguanta: ingeniería del caos

Un diseño redundante que nunca se probó es una hipótesis. AWS Fault Injection Service (FIS) ejecuta experimentos controlados: detener instancias, agregar latencia a la red, simular la pérdida de una AZ. Defines condiciones de parada con alarmas de CloudWatch para cortar el experimento si el daño pasa de lo esperado.

  • AWS Fault Injection Service

    El simulacro de evacuación

    Inyecta fallas reales de forma controlada para comprobar que el sistema se recupera como esperas.
  • AWS Resilience Hub

    El inspector de riesgos

    Evalúa una aplicación contra tus objetivos de recuperación y recomienda mejoras.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.¿Qué describe mejor la tolerancia a fallas frente a la alta disponibilidad?

  2. 2.Dos componentes de 99,9 % cada uno están en serie. ¿Cuál es la disponibilidad del conjunto?

  3. 3.Dos servidores de 99 % cada uno atienden en paralelo detrás de un balanceador. ¿Qué disponibilidad tiene esa capa?

  4. 4.Una aplicación corre en una sola instancia EC2 en una AZ, con RDS Multi-AZ. ¿Qué cambio quita el punto único de falla?

  5. 5.¿Qué servicio ejecuta experimentos controlados de fallas para probar la resiliencia?