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.
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 minLa réplica va 2 min atrás. Lo escrito en ese intervalo no alcanzó a llegar a la otra región.
Tiempo sin servicio · RTO real 37 min
Cumple · objetivo 1 hEl servicio vuelve a las 15:17. La parte más larga: decidir (12 min).
- 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.
RPO: 40 min perdidos
RTO: 90 min sin servicio
- 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
| # | Hora | Qué pasa | Fase | Duración | Quién actúa |
|---|---|---|---|---|---|
| 1 | 14:00 | Termina el último respaldo bueno | Punto recuperable | — | Automático |
| 2 | 14:40 | Un despliegue con un error corrompe la base de datos | Falla | — | — |
| 3 | 14:52 | Suena la alarma de errores y la persona de guardia la ve | Detección | 12 min | Alarma + persona de guardia |
| 4 | 15:25 | Se decide restaurar el respaldo de las 14:00 en lugar de esperar | Evaluación y decisión | 33 min | Responsable del incidente |
| 5 | 15:45 | La base de datos restaurada queda disponible | Recuperación de datos | 20 min | Automático, iniciado por una persona |
| 6 | 15:55 | La aplicación apunta a la base nueva, con secretos y configuración al día | Recuperación de la aplicación | 10 min | Persona + automatización |
| 7 | 16:00 | El tráfico vuelve a llegar a la aplicación | Redirección del tráfico | 5 min | Automático |
| 8 | 16:10 | Transacciones de prueba exitosas: se anuncia que el servicio volvió | Validación | 10 min | Equipo de la aplicación |
| Total sin servicio (RTO real) | 90 min | La 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
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
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
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
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
Recuperación de la aplicación · 10 min
Apuntar la aplicación a la base nueva, actualizar secretos y configuración, reiniciar procesos. - 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
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:
| Criterio | Métrica o dato | Qué te dice |
|---|---|---|
| Aurora Global Database | AuroraGlobalDBRPOLag (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 RDS | ReplicaLag | Segundos de atraso. 0 significa al día; -1 significa que la replicación no está activa |
| DynamoDB global tables | ReplicationLatency | Milisegundos entre que un ítem se escribe en una réplica y aparece en otra, por cada par de regiones |
| Replicación de S3 | ReplicationLatency, BytesPendingReplication, OperationsPendingReplication | Segundos máximos de atraso del bucket destino y cuánto falta por copiar |
| Respaldos de RDS (PITR) | LatestRestorableTime | El momento más reciente al que puedes restaurar. La hora actual menos este valor es tu RPO efectivo |
| AWS Backup | Hora 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:
| Criterio | Tier 0 | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|---|
| Ejemplo | Pagos y pedidos | Portal de clientes | Procesos internos (nómina, inventario) | Reportes y analítica |
| RPO objetivo | Segundos | 15 minutos | 4 horas | 24 horas |
| RTO objetivo | 15 minutos | 1 hora | 12 horas | 3 días |
| Estrategia típica | Replicación continua entre regiones y en espera activa o activo-activo | Réplica entre regiones y piloto encendido | Respaldos copiados a otra región e infraestructura como código | Respaldos diarios, o recalcular desde las fuentes |
| Costo relativo | Muy alto | Alto | Medio | Bajo |
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
| Criterio | RPO típico | RTO típico |
|---|---|---|
| Respaldos programados (snapshots, AWS Backup) | El intervalo entre copias. AWS Backup permite planes de hasta cada hora | Horas: 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ías | Decenas de minutos a horas: también crea una base o tabla nueva |
| Réplica de lectura de RDS en otra región | El ReplicaLag del momento (asíncrona) | Minutos para promoverla, más cambiar las conexiones |
| Aurora Global Database | Segundos. AWS anuncia un RPO efectivo de 1 segundo | Minutos. AWS anuncia menos de 1 minuto |
| DynamoDB global tables | Modo eventual: el retraso de replicación, normalmente pocos segundos. Modo fuerte: cero | Lo que tardes en mover el tráfico: la otra región ya acepta escrituras |
| Replicación de S3 con Replication Time Control | La 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 Recovery | Segundos | Minutos |
| AWS Backup con copia a otra región | La frecuencia del plan más el tiempo de copia | Horas |
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.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.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.Usas Aurora Global Database con Aurora PostgreSQL. ¿Qué métrica alarmas para conocer tu RPO efectivo?
4.Un sistema tiene un SLA de 99,99 %. El gerente concluye que «casi no podemos perder datos». ¿Qué le respondes?
5.Un sistema de reportes internos se puede recalcular desde las fuentes en un día. ¿Qué estrategia es razonable?