SAP-C02

Deep Dive

Todas las guías
Practicar ahora
D2 · Diseño de nuevas soluciones

Bases de datos avanzadas: Aurora Global, DynamoDB y ElastiCache

El SAP-C02 evalúa la selección correcta de base de datos para cada workload, así como las características avanzadas de Aurora, DynamoDB y ElastiCache para diseñar sistemas altamente disponibles y de alto rendimiento.

Icon-Architecture/48/Arch_Amazon-RDS_48

Framework de selección de base de datos

WorkloadServicio recomendadoPor qué
OLTP relacional (web apps)RDS MySQL/PostgreSQL o AuroraTransacciones ACID, relaciones complejas, SQL estándar
OLTP de alto rendimiento y HA globalAurora Global DatabaseReplicación < 1s entre regiones, failover rápido
Key-value / documentos a escala masivaDynamoDBLatencia de ms, escala infinita, serverless
Grafos (relaciones entre entidades)Amazon NeptuneTraversal de grafos con Gremlin o SPARQL
Analítico (OLAP)RedshiftColumnar, joins complejos, petabyte scale
Caché de resultados de queriesElastiCache (Redis/Memcached)Sub-ms latency, reduce carga en DB primaria
Series temporales (métricas, IoT)Amazon TimestreamOptimizado para time-series, consultas temporales
Ledger inmutable y verificableAmazon QLDBHistorial completo e inmutable de transacciones
Documentos MongoDB-compatibleAmazon DocumentDBCompatible con drivers MongoDB, gestión AWS
SQL transaccional distribuido globalAmazon Aurora Serverless v2Auto-scaling, multi-region via Global DB
Icon-Architecture/48/Arch_Amazon-Aurora_48

Amazon Aurora — características avanzadas

Aurora es el motor de base de datos propietario de AWS, compatible con MySQL y PostgreSQL. 5× más rápido que MySQL y 3× más rápido que PostgreSQL estándar. Storage auto-scaling hasta 128 TB.

Aurora Global Database

    Replicación lag< 1 segundo entre la región primaria y hasta 5 secundarias. Replicación a nivel de almacenamiento (no a nivel de DB engine).
    FailoverPromote to primary en < 1 minuto. RTO muy bajo para DR entre regiones.
    Lectura localApps en regiones secundarias leen de la región local (baja latencia). Solo la región primaria acepta escrituras.
    Casos de usoApps globales, DR entre regiones, reporting en múltiples regiones sin afectar la primaria.

Aurora Serverless v2

    Auto-scalingEscala en fracciones de ACU (Aurora Capacity Units). De 0.5 a 128 ACUs en segundos.
    Sin downtimeScaling sin interrupciones de conexión (a diferencia de v1 que tardaba minutos).
    Multi-AZSoporta Multi-AZ para alta disponibilidad (v1 no lo soportaba).
    Ideal paraCargas impredecibles, desarrollo, SaaS multi-tenant con cargas variables por tenant.

Aurora Read Replicas vs Multi-AZ

Read Replicas (hasta 15)

  • Sirven tráfico de lectura (offload)
  • Replicación asíncrona
  • Pueden estar en diferente región
  • Se pueden promover manualmente a primaria
  • Reducen latencia de lectura

Multi-AZ (Aurora native)

  • Aurora tiene 6 copias del storage en 3 AZs nativamente
  • Failover automático a replica en < 30s
  • Sin degradación de performance durante failover
  • No es igual que el Multi-AZ de RDS (diferentes implementaciones)
Icon-Architecture/48/Arch_Amazon-DynamoDB_48

DynamoDB avanzado

Índices

GSI (Global Secondary Index)

  • Partition key y sort key diferentes a la tabla base
  • Consultas eficientes por atributos no-primary key
  • Capacidad independiente de la tabla
  • Eventually consistent siempre
  • Hasta 20 GSIs por tabla
  • Caso de uso: buscar pedidos por customer_id (no es PK de la tabla)

LSI (Local Secondary Index)

  • Misma partition key, sort key diferente
  • Solo se puede crear al crear la tabla
  • Comparte capacidad con la tabla base
  • Soporta Strongly Consistent reads
  • Hasta 5 LSIs por tabla

Funciones avanzadas

DynamoDB Streams

Captura cambios (INSERT, MODIFY, DELETE) en tiempo real como un stream ordenado. Trigger Lambda para event-driven patterns. Retención 24h.

Global Tables

Replicación multi-región activo-activo. Cada región puede leer y escribir. Conflict resolution: "last write wins" por timestamp.

DAX

DynamoDB Accelerator: caché in-memory totalmente compatible con DynamoDB API. Reduce latencia de ms a microsegundos. No requiere cambios en el código de la app.

Transactions

TransactWriteItems / TransactGetItems: operaciones ACID en múltiples items/tablas atomicamente. 2× el costo de RCU/WCU.

TTL

Time-to-Live: elimina automáticamente items expirados sin costo de WCU. Para sessiones, caché, datos temporales.

Icon-Architecture/48/Arch_Amazon-ElastiCache_48

ElastiCache — Redis vs Memcached

CaracterísticaRedisMemcached
Estructuras de datosStrings, Lists, Sets, Sorted Sets, Hashes, Bitmaps, HyperLogLogSolo strings simples
PersistenciaSí (RDB + AOF) — datos sobreviven reiniciosNo — datos en memoria solo
ReplicaciónPrimary + hasta 5 replicas de lecturaNo — sin replicación
Multi-AZ / FailoverSí — failover automático a replicaNo
Pub/SubSí — canales de mensajeríaNo
Lua scriptingSí — operaciones atómicas complejasNo
Sharding horizontalRedis Cluster: automático hasta 500 shardsSí — múltiples nodos en pool
Mejor paraLeaderboards, sessions, pub/sub, caché complejaCaché simple de objetos, multithreaded simples

Regla del examen: cuando necesitas persistencia o replicación → Redis

Si el escenario menciona "session state que debe sobrevivir a reinicios", "leaderboard", "pub/sub", "failover automático", o "datos estructurados complejos" → Redis. Si dice "caché simple de objetos sin estado" o "multithreaded" → Memcached.

Icon-Architecture/48/Arch_Amazon-Neptune_48

Neptune, QLDB, Timestream y DocumentDB

Amazon Neptune

Base de datos de grafos gestionada. Soporta Property Graph (Gremlin, openCypher) y RDF (SPARQL). Para redes sociales, detección de fraude, motores de recomendación donde las relaciones entre entidades son tan importantes como los datos.

Amazon QLDB

Ledger database: registro de transacciones inmutable, criptográficamente verificable. Historial completo de todos los cambios. Para auditoría financiera, supply chain, registros de cumplimiento donde debes demostrar que los datos no han sido alterados.

Amazon Timestream

Base de datos de series temporales serverless. Optimizada para datos con timestamps: métricas de IoT, logs de aplicaciones, datos de sensores. Lifecycle automático: datos recientes en memoria, datos históricos en SSD.

Amazon DocumentDB

Base de datos de documentos compatible con MongoDB. Gestión completamente por AWS. Para apps que ya usan MongoDB y quieren un servicio gestionado sin modificar el código de la aplicación.

Icon-Architecture/48/Arch_Amazon-Aurora_48

Patrones de resiliencia de bases de datos

Read Replica Offloading

Dirige las queries de lectura (reporting, analytics) a Read Replicas para reducir carga en la instancia primaria. En Aurora hasta 15 replicas; RDS hasta 5.

Caching Strategy (Cache-Aside)

App primero consulta ElastiCache. Si no hay hit (cache miss), consulta la DB y guarda el resultado en caché. Reduce latencia y carga en DB.

Write-Through Cache

Cada escritura en la DB también actualiza el caché simultáneamente. Mayor consistencia pero más lento que cache-aside.

Cross-Region Replication

Aurora Global DB o DynamoDB Global Tables para DR entre regiones. RTO < 1 minuto para Aurora Global.

Blue/Green Deployments (RDS)

RDS Blue/Green: crea un ambiente idéntico (green) con los cambios de schema, sincroniza, y permite switchover sin downtime.

Icon-Architecture/48/Arch_Amazon-Aurora_48

Trampas frecuentes del examen

Trampa: "DynamoDB Global Tables usa replicación activo-pasivo"

Realidad: FALSO. Global Tables es activo-activo: todas las regiones aceptan lecturas Y escrituras. En caso de conflicto de escritura simultánea, gana el último timestamp (last writer wins).

Trampa: "Aurora Multi-AZ es igual que RDS Multi-AZ"

Realidad: Son diferentes. RDS Multi-AZ tiene una instancia standby que no sirve tráfico. Aurora replica el storage en 6 copias entre 3 AZs y tiene hasta 15 read replicas que SÍ sirven tráfico.

Trampa: "ElastiCache Redis y DAX son intercambiables"

Realidad: No. DAX es caché específicamente para DynamoDB con la misma API. ElastiCache Redis es una caché de propósito general que requiere lógica de caché en el código de la app.

¿Entendiste este tema?

Pon a prueba lo que acabas de aprender

Una aplicación de e-commerce global tiene la base de datos primaria en us-east-1. Los usuarios de Asia y Europa reportan alta latencia en lecturas. La empresa necesita baja latencia de lectura en todas las regiones y capacidad de escritura en la región principal. ¿Cuál es la solución más apropiada?

Inicia sesión para llevar tu progreso.