Soluciones de BD de alto rendimiento

Disena bases de datos de alto rendimiento con Aurora, DynamoDB y ElastiCache.

En el examen SAA-C03, las preguntas sobre bases de datos forman parte del dominio "Disenar arquitecturas de alto rendimiento", que representa aproximadamente el 26% del examen. Dos tipos de preguntas se repiten consistentemente: "Que base de datos es optima para este escenario?" y "Como mejorar el rendimiento de la base de datos?"

 

Por que es importante elegir la base de datos correcta?

Antes de construir una casa, necesitas entender las caracteristicas del terreno. Las bases de datos funcionan igual. Primero debes entender la estructura de tus datos, como se accederan y el volumen de trafico esperado. Elegir la base de datos incorrecta hace que la migracion posterior sea extremadamente dificil.

 

Guia de seleccion de BD — Que base de datos para que situacion?

Base de datos relacional con maximo rendimiento → Aurora

Las bases de datos relacionales usan una estructura de tablas con filas y columnas. Ideales para datos estructurados como pedidos, datos de clientes e inventario. Aurora es totalmente compatible con MySQL o PostgreSQL mientras AWS ha optimizado el motor subyacente para un rendimiento dramaticamente mayor.

Base de datos relacional que requiere Oracle o SQL Server → RDS

Servicio de base de datos relacional administrado por AWS que soporta Oracle, SQL Server, MySQL, PostgreSQL y MariaDB.

Estructura clave-valor, respuesta ultra-rapida, escalado automatico → DynamoDB

Una base de datos NoSQL con esquema flexible, capaz de manejar millones de solicitudes por segundo en un modelo serverless. Ideal para datos de juegos moviles, datos de sensores IoT y gestion de sesiones.

Las respuestas de la base de datos son demasiado lentas → ElastiCache

Coloca una capa de cache frente a la base de datos para mantener los datos de acceso frecuente en memoria.

Analisis de datos a gran escala → Redshift

Un data warehouse OLAP disenado para agregar y analizar cientos de millones de registros.

Datos de grafos → Neptune

Usa cuando las relaciones entre puntos de datos son el valor central: redes sociales, grafos de seguidores, motores de recomendacion.

!Cómo elegir una base de datos: Aurora, RDS, DynamoDB, ElastiCache, Redshift

Aurora — Actualizar de un auto normal a un sedan de lujo

En una oracion: Aurora es MySQL o PostgreSQL con el motor reconstruido desde cero para la nube, ofreciendo mas de 5 veces el rendimiento.

Por que usar Aurora en lugar de RDS MySQL normal?

El MySQL normal en RDS depende de un unico servidor. Aurora fue disenado desde cero para entornos distribuidos en la nube. Mantiene automaticamente 6 copias de tus datos en 3 Zonas de Disponibilidad.

Caracteristicas clave de Aurora

El almacenamiento crece automaticamente de 10 GB a 128 TB segun sea necesario. Se pueden agregar hasta 15 replicas de lectura.

Las replicas de lectura son como fotocopias de un libro popular de biblioteca. El original (el maestro) maneja todas las escrituras. Las copias se distribuyen a los lectores que solo quieren leer. Esto reduce dramaticamente la carga de lectura en la base de datos maestra.

Aurora Serverless v2

Cuesta casi nada cuando esta inactivo y escala automaticamente cuando llega el trafico. Perfecto para entornos de desarrollo/prueba o servicios con patrones de trafico irregulares.

Aurora Global Database

Replica desde la region primaria a una region secundaria en menos de un segundo. Tambien es un componente clave en estrategias de recuperacion ante desastres (DR).

 

DynamoDB — Un cuaderno flexible que maneja millones de entradas

En una oracion: una base de datos NoSQL sin esquema fijo que puede procesar millones de solicitudes en milisegundos.

Seleccion de modo de capacidad

Modo aprovisionado: especificas el throughput de lectura/escritura por adelantado. Adecuado cuando el trafico es predecible y consistente.

Modo bajo demanda: AWS ajusta automaticamente segun el trafico. Usalo cuando el trafico es impredecible o puede aumentar repentinamente.

DAX (DynamoDB Accelerator) — Marcacion rapida en tu telefono

Los numeros que llamas frecuentemente se guardan como marcacion rapida — presionas un boton en lugar de marcar el numero completo. DAX es un cache en memoria totalmente administrado frente a DynamoDB. Los datos en el cache responden en microsegundos.

DynamoDB Global Tables

Tablas multiregion activo-activo que admiten lecturas y escrituras en multiples regiones simultaneamente.

DynamoDB Streams

Cuando ocurre un cambio en una tabla DynamoDB, se publica un evento en un stream. Usalo para activar funciones Lambda y construir arquitecturas basadas en eventos.

 

ElastiCache — Memoria a corto plazo ultra-rapida frente a tu base de datos

ElastiCache for Redis — La navaja suiza

Redis es mucho mas que un simple cache. Es un almacen de datos en memoria con soporte para replicacion de datos, persistencia, clusters de alta disponibilidad y estructuras de datos avanzadas. Usalo para tablas de clasificacion, almacenes de sesion y analitica en tiempo real.

ElastiCache for Memcached — El destornillador simple

Memcached tiene menos caracteristicas que Redis, pero esa simplicidad lo hace rapido. Usalo para cache simple de clave-valor y escenarios de escalado horizontal donde no necesitas replicacion ni persistencia.

Cuando usar Redis vs Memcached?

Necesitas replicacion, persistencia, estructuras avanzadas → Redis Cache simple, sin replicacion, prioridad de escalado horizontal → Memcached

 

Read Replicas — Fotocopias de un libro popular de biblioteca

Cuando el trafico de lectura es alto y la BD maestra esta sobrecargada, crea replicas de lectura para distribuir las consultas. Las escrituras van solo al maestro; las lecturas se distribuyen entre multiples replicas.

Aurora admite hasta 15 replicas de lectura. RDS admite hasta 5.

 

Puntos clave para el examen

"Compatible con MySQL/PostgreSQL, maximo rendimiento, cloud-native" -- Aurora

"6 copias en 3 AZs, escalado automatico de almacenamiento" -- Caracteristicas centrales de Aurora

"Replicacion a otra region en menos de 1 segundo, DR" -- Aurora Global Database

"Trafico irregular, base de datos con auto-escalado" -- Aurora Serverless v2

Volver a la lista del blog