Saltar al contenido
aprendeaws.dev

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

RPO y RTO a fondo

Cuántos datos puedes perder y cuánto puedes tardar en volver: cómo se fijan por criticidad, de qué se compone cada uno y cómo se mide el RPO real.

Al terminar podrás

  • →Separar el objetivo (RPO, RTO) del valor que realmente logras
  • →Descomponer el RTO en detección, decisión, recuperación y validación
  • →Medir el RPO efectivo con el retraso de replicación
  • →Asignar objetivos por nivel de criticidad

La lección de recuperación ante desastres define RPO y RTO y compara las cuatro estrategias. Decir «nuestro RPO es de 15 minutos» es fácil. Saber cuántos datos perderías si todo fallara ahora mismo exige medir, y saber cuánto tardarías en volver exige descomponer ese tiempo y practicarlo.

Datos que se pierden · RPO real 2 min

Cumple · objetivo 15 min

La réplica va 2 min atrás. Lo escrito en ese intervalo no alcanzó a llegar a la otra región.

objetivo

Tiempo sin servicio · RTO real 37 min

Cumple · objetivo 1 h

El servicio vuelve a las 15:17. La parte más larga: decidir (12 min).

objetivo
  • Detectar: 3 min
  • Decidir: 12 min
  • Promover la réplica: 3 min
  • Escalar la app: 8 min
  • Redirigir tráfico: 3 min
  • Validar: 8 min

Valores ilustrativos. El RPO y el RTO reales se miden en simulacros, no en el papel.

La línea de tiempo de un desastre

Una tienda en línea respalda su base de datos cada hora. La última copia buena terminó a las 14:00. A las 14:40 la base se corrompe. El servicio vuelve a las 16:10.

Una tarde con la base de datos corruptaEjemplo con respaldos cada hora
12345678
40 min
12 min
33 min
20 min
10 min
10 min

RPO: 40 min perdidos

RTO: 90 min sin servicio

14:0014:3015:0015:3016:00
  • Datos perdidos (RPO)
  • Detección
  • Evaluación y decisión
  • Recuperación de datos
  • Recuperación de la aplicación
  • Redirección del tráfico
  • Validación
#HoraQué pasaFaseDuraciónQuién actúa
114:00Termina el último respaldo buenoPunto recuperable—Automático
214:40Un despliegue con un error corrompe la base de datosFalla——
314:52Suena la alarma de errores y la persona de guardia la veDetección12 minAlarma + persona de guardia
415:25Se decide restaurar el respaldo de las 14:00 en lugar de esperarEvaluación y decisión33 minResponsable del incidente
515:45La base de datos restaurada queda disponibleRecuperación de datos20 minAutomático, iniciado por una persona
615:55La aplicación apunta a la base nueva, con secretos y configuración al díaRecuperación de la aplicación10 minPersona + automatización
716:00El tráfico vuelve a llegar a la aplicaciónRedirección del tráfico5 minAutomático
816:10Transacciones de prueba exitosas: se anuncia que el servicio volvióValidación10 minEquipo de la aplicación
Total sin servicio (RTO real)90 minLa decisión fue la fase más larga

El RPO mira hacia atrás desde la falla: perdiste 40 minutos de pedidos. El RTO mira hacia adelante: estuviste 90 minutos sin vender. Son independientes. Puedes tener un RPO de segundos (réplica al día) y un RTO de horas (nadie sabe cómo promoverla), o al revés.

Objetivo contra valor real

TérminoQué significa
RPO objetivoLo que el negocio acepta perderSe decide con el dueño del proceso, no en el equipo técnico
RPO efectivoLo que perderías si fallara justo ahoraCambia minuto a minuto: depende del retraso de replicación o de la edad del último respaldo
RTO objetivoEl tiempo máximo sin servicio que el negocio aceptaSe escribe en el plan de recuperación
RTO efectivoLo que de verdad tardas en volverSolo lo conoces si lo mides en un simulacro o en un incidente real

El caso típico: el objetivo dice 15 minutos de RPO, pero los respaldos corren cada hora. En el peor momento, justo antes del siguiente respaldo, el RPO efectivo es de casi 60 minutos. Nadie mintió; nadie midió.

De qué está hecho el RTO

Los 90 minutos del ejemplo se reparten así:

  1. 1

    Detección · 12 min

    Desde la falla hasta que una alarma suena y alguien la mira. Depende de qué tan bien mides y de quién está de guardia.
  2. 2

    Evaluación y decisión · 33 min

    Entender qué pasó y decidir: ¿esperar a que se arregle o recuperar? ¿Desde qué copia? ¿Quién lo autoriza?
  3. 3

    Recuperación de datos · 20 min

    Restaurar el respaldo o promover la réplica. Restaurar crea un recurso nuevo y tarda más mientras más datos haya.
  4. 4

    Recuperación de la aplicación · 10 min

    Apuntar la aplicación a la base nueva, actualizar secretos y configuración, reiniciar procesos.
  5. 5

    Redirección del tráfico · 5 min

    Cambiar DNS o rutas para que los usuarios lleguen al lugar correcto, y esperar a que los clientes lo noten.
  6. 6

    Validación · 10 min

    Comprobar con transacciones de prueba que todo funciona antes de anunciar que volviste.

La decisión suele ser la parte más grande. Nadie quiere declarar un desastre con información incompleta, y si no está escrito quién decide y con qué criterio, la reunión se alarga. Lo que acorta el RTO no es un servicio más rápido, sino un criterio acordado de antemano: «si la base no responde en 15 minutos y AWS confirma un problema en la región, recuperamos». Eso va en el runbook; lo verás en runbooks y simulacros.

Medir el RPO efectivo todo el tiempo

Si te protegen réplicas, tu RPO efectivo es el retraso de replicación: lo que aún no cruzó a la copia. Si te protegen respaldos, es el tiempo desde el último punto consistente que puedes restaurar. Ambos se pueden graficar y alarmar en CloudWatch:

CriterioMétrica o datoQué te dice
Aurora Global DatabaseAuroraGlobalDBRPOLag (Aurora PostgreSQL, y Aurora MySQL 3.04 o 2.12 en adelante) o AuroraGlobalDBReplicationLag (versiones anteriores de Aurora MySQL)Milisegundos de atraso de cada clúster secundario frente al primario
Réplicas de lectura de RDSReplicaLagSegundos de atraso. 0 significa al día; -1 significa que la replicación no está activa
DynamoDB global tablesReplicationLatencyMilisegundos entre que un ítem se escribe en una réplica y aparece en otra, por cada par de regiones
Replicación de S3ReplicationLatency, BytesPendingReplication, OperationsPendingReplicationSegundos máximos de atraso del bucket destino y cuánto falta por copiar
Respaldos de RDS (PITR)LatestRestorableTimeEl momento más reciente al que puedes restaurar. La hora actual menos este valor es tu RPO efectivo
AWS BackupHora del último recovery point completado (y copiado a la otra región)Si el último trabajo falló, tu RPO efectivo crece cada minuto

Objetivos por nivel de criticidad

No todo merece el mismo RPO y RTO. Clasifica tus sistemas en niveles (tiers) y asigna a cada uno un objetivo, una estrategia y un presupuesto. Estos valores son un ejemplo inventado; los tuyos salen de cuánto cuesta cada hora caída o perdida:

CriterioTier 0Tier 1Tier 2Tier 3
EjemploPagos y pedidosPortal de clientesProcesos internos (nómina, inventario)Reportes y analítica
RPO objetivoSegundos15 minutos4 horas24 horas
RTO objetivo15 minutos1 hora12 horas3 días
Estrategia típicaReplicación continua entre regiones y en espera activa o activo-activoRéplica entre regiones y piloto encendidoRespaldos copiados a otra región e infraestructura como códigoRespaldos diarios, o recalcular desde las fuentes
Costo relativoMuy altoAltoMedioBajo

La curva de costo no es lineal. Pasar de 24 horas a 1 hora de RPO es barato: respaldos más frecuentes. Pasar de 1 minuto a casi cero exige replicación continua, una segunda región con capacidad lista y aplicaciones preparadas para cambiar de región. Mientras más cerca de cero, más caro cada segundo que ganas.

Disponibilidad no es RPO ni RTO

Un SLA de 99,9 % dice cuánto tiempo puede estar caído el servicio en un periodo (unos 43 minutos al mes, ver la tabla de alta disponibilidad). No dice cuántos datos pierdes. Un sistema con 99,99 % de disponibilidad puede perder un día entero de datos si alguien ejecuta un borrado masivo y la única copia es una réplica que copió el borrado. Y un solo incidente con 4 horas de RTO consume casi la mitad del presupuesto anual de un 99,9 % (8,76 horas). Son tres números distintos y necesitas los tres.

Qué ofrece AWS para cada objetivo

CriterioRPO típicoRTO típico
Respaldos programados (snapshots, AWS Backup)El intervalo entre copias. AWS Backup permite planes de hasta cada horaHoras: restaurar crea un recurso nuevo y depende del tamaño
Restauración a un momento exacto (PITR)RDS sube los registros de transacciones cada 5 minutos. DynamoDB restaura al segundo, dentro de 1 a 35 díasDecenas de minutos a horas: también crea una base o tabla nueva
Réplica de lectura de RDS en otra regiónEl ReplicaLag del momento (asíncrona)Minutos para promoverla, más cambiar las conexiones
Aurora Global DatabaseSegundos. AWS anuncia un RPO efectivo de 1 segundoMinutos. AWS anuncia menos de 1 minuto
DynamoDB global tablesModo eventual: el retraso de replicación, normalmente pocos segundos. Modo fuerte: ceroLo que tardes en mover el tráfico: la otra región ya acepta escrituras
Replicación de S3 con Replication Time ControlLa mayoría en segundos; diseñado para el 99,99 % en 15 minutos (el SLA compromete 99,9 %)Lo que tardes en apuntar la aplicación al bucket destino
AWS Elastic Disaster RecoverySegundosMinutos
AWS Backup con copia a otra regiónLa frecuencia del plan más el tiempo de copiaHoras

El RPO depende de cómo replicas: sigue con replicación y consistencia. El RTO depende de qué tan rápido y seguro cambias de región: lo verás en failover y failback.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Una base se respalda cada 6 horas; el último respaldo terminó a las 06:00 y la base falla a las 11:30. El RPO objetivo es de 1 hora. ¿Cuál fue el RPO efectivo?

  2. 2.En un simulacro, restaurar la base tarda 15 minutos, pero el RTO total fue de 2 horas. ¿Dónde conviene buscar primero el tiempo perdido?

  3. 3.Usas Aurora Global Database con Aurora PostgreSQL. ¿Qué métrica alarmas para conocer tu RPO efectivo?

  4. 4.Un sistema tiene un SLA de 99,99 %. El gerente concluye que «casi no podemos perder datos». ¿Qué le respondes?

  5. 5.Un sistema de reportes internos se puede recalcular desde las fuentes en un día. ¿Qué estrategia es razonable?