SAA-C03

Deep Dive

Practicar ahora
D2 · Arquitecturas resilientes

Bases de datos resilientes: RDS, Aurora y DynamoDB

Las preguntas de base de datos en SAA-C03 suelen probar la diferencia entre Multi-AZ (HA/failover) y Read Replicas (escalar lectura). Aurora añade su propia capa de resiliencia nativa. DynamoDB Global Tables para multi-región activo-activo.

Icon-Architecture/48/Arch_Amazon-RDS_48

RDS Multi-AZ vs Read Replicas

Esta es la distinción más importante y frecuente en el examen. Multi-AZ = Alta Disponibilidad. Read Replicas = Escalar lectura.No son intercambiables.

CaracterísticaMulti-AZRead Replicas
Propósito principalFailover automático (HA)Escalar consultas de lectura
Tipo de replicaciónSíncrona (mismo tiempo)Asíncrona (eventual)
Failover automáticoSí — ~60 segundos, cambia DNSNo — manual o manual promotion
Puede recibir tráfico de lecturaNo (standby es pasivo)Sí — endpoint separado
UbicaciónOtra AZ en la misma regiónOtra AZ, región o cuenta
Número máximo1 standby5 (RDS), 15 (Aurora)
CostoDoble de instancias/storageUna instancia por réplica
Uso en el examen"Si falla la instancia principal...""Alto tráfico de lectura, dashboards, reportes..."

Pregunta trampa del examen

"¿Multi-AZ mejora el rendimiento de lectura?"→ NO. La réplica standby en Multi-AZ es pasiva — no sirve consultas de lectura. Para escalar lectura, necesitas Read Replicas, no Multi-AZ.

Icon-Architecture/48/Arch_Amazon-Aurora_48

Aurora — almacenamiento distribuido

Aurora reimagina el almacenamiento de base de datos. En vez de un volumen EBS replicado, Aurora usa un cluster de almacenamiento distribuido que mantiene 6 copias en 3 AZs automáticamente.

Arquitectura de almacenamiento

6 copias en 3 AZs

2 copias por AZ. Puede perder hasta 2 copias sin pérdida de escritura.

Quórum de escritura

4 de 6 copias deben confirmar la escritura.

Quórum de lectura

3 de 6 copias para lectura consistente.

Self-healing

Detecta y repara bloques corruptos automáticamente.

Auto-scaling storage

Crece de 10GB a 128TB automáticamente sin downtime.

Comparativa Aurora vs RDS

Rendimiento5x más rápido que MySQL estándarEstándar
Read ReplicasHasta 15Hasta 5
Failover<30 segundos~60 segundos
Costo de almacenamientoPor GB usadoStorage provisionado
ServerlessAurora Serverless v2No

Aurora Serverless v2

Escala automáticamente desde 0.5 ACUs hasta 128 ACUs en fracciones de segundo. Ideal para cargas impredecibles, dev/test, aplicaciones que no se usan 24/7. Señal en examen: "carga de trabajo intermitente o impredecible".

Icon-Architecture/48/Arch_Amazon-Aurora_48

Aurora Global Database

Características

  • 1 región primaria (lecturas + escrituras)
  • Hasta 5 regiones secundarias (solo lectura)
  • Replicación asíncrona con <1 segundo de lag típico
  • RPO < 1 segundo. RTO < 1 minuto en failover
  • Failover: promover región secundaria en <1 min
  • Para DR global y latencia local de lectura

Señales en el examen

  • "Usuarios en múltiples continentes con baja latencia de lectura"
  • "RPO < 1 segundo y RTO < 1 minuto para base de datos global"
  • "Failover de región completa para base de datos relacional"
  • "Leer localmente en cada región para reducir latencia"
Icon-Architecture/48/Arch_Amazon-DynamoDB_48

DynamoDB — resiliencia global

DynamoDB es multi-AZ por defecto — los datos se replican automáticamente en 3 AZs dentro de una región. Para resiliencia global, DynamoDB Global Tables extiende esto a múltiples regiones.

DynamoDB Global Tables

Réplicas activo-activo en múltiples regiones. Escrituras aceptadas en cualquier región. Replicación asíncrona en <1 segundo.

Examen

"Aplicación global que necesita escrituras locales en cada región" → Global Tables.

Point-in-Time Recovery (PITR)

Restaura la tabla a cualquier punto en los últimos 35 días. Para recuperación de borrados o corrupciones accidentales.

Examen

"Usuario eliminó accidentalmente ítems de DynamoDB" → PITR para restaurar.

DynamoDB Streams

Captura cambios (inserts, updates, deletes) en la tabla en orden cronológico. Retenidos 24 horas. Trigger para Lambda.

Examen

"Procesar cambios en DynamoDB en tiempo real" → Streams + Lambda.

On-Demand vs Provisioned

On-Demand: escala automáticamente, paga por request. Provisioned: defines RCUs/WCUs, más barato para carga predecible.

Examen

"Carga impredecible o variable" → On-Demand. "Carga estable con ahorro de costo" → Provisioned + Auto Scaling.

Icon-Architecture/48/Arch_Amazon-RDS_48

ElastiCache para sesiones y cache

ElastiCache Redis

Persistencia (snapshots)

Replicación Multi-AZ con failover

Pub/Sub messaging

Sorted sets, lists (estructuras complejas)

Cluster mode: sharding horizontal

Cuándo usar

Sesiones de usuario, leaderboards de gaming, pub/sub, colas de tareas, caché de DB con persistencia.

ElastiCache Memcached

Sin persistencia

Multi-thread (mejor para multi-core)

Sharding horizontal simple

Sin replicación

Para objetos simples en cache

Cuándo usar

Caché de objetos simples sin necesidad de persistencia. Cuando la velocidad es más importante que la durabilidad.

Sesiones en apps sin estado (stateless)

Si múltiples instancias EC2 manejan requests, las sesiones de usuario no deben almacenarse en memoria local. Usar ElastiCache Redis para sesiones compartidas — cualquier instancia puede leer la sesión del usuario. El examen llama esto "stateless application design".

Icon-Architecture/48/Arch_Amazon-RDS_48

Tabla de decisión de base de datos

Escenario en el examenServicioRazón
Failover automático en <60sRDS Multi-AZRéplica síncrona, DNS failover automático
Escalar 1000s de consultas de lecturaRDS Read ReplicasDistribución de carga de lectura
MySQL/PostgreSQL de máximo rendimientoAurora5x más rápido, 15 read replicas
Base de datos global activo-activoDynamoDB Global TablesEscrituras en múltiples regiones
Carga de BD impredecible o intermitenteAurora Serverless v2Escala a 0, sin gestión de capacidad
Latencia de microsegundos para NoSQLDynamoDB + DAXDAX agrega cache in-memory a DynamoDB
Caché de sesiones con persistenciaElastiCache RedisPersistencia + Multi-AZ + estructuras complejas
Caché simple multi-thread sin persistenciaElastiCache MemcachedMulti-thread, más sencillo, sin HA
Data warehouse para analyticsAmazon RedshiftColumnar, petabytes, BI tools
Búsqueda de texto completoAmazon OpenSearch ServiceElasticsearch, Kibana integrado

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Una aplicación tiene una base de datos RDS MySQL con Multi-AZ habilitado. Los reportes ejecutados por el equipo de analytics están degradando el rendimiento de la aplicación principal. ¿Cuál es la solución más apropiada?