Donde Tus Datos Viven y Prosperan | Tiempo de Estudio: ~5 horas
Imagina las bases de datos como diferentes tipos de sistemas de archivo:
- RDS es como un archivero tradicional - estructurado, organizado, con relaciones claras
- DynamoDB es como un organizador digital moderno - flexible, rápido, escala automáticamente
- ElastiCache es como un asistente de lectura rápida - mantiene la información frecuente lista al instante
- Bases de datos especializadas son como bibliotecarios expertos - perfectos para tipos específicos de información
¡Exploremos las soluciones de almacenamiento de datos que impulsan las aplicaciones modernas! 📊
- 🎯 Objetivos de Aprendizaje
- 💡 Fundamentos de Bases de Datos
- 🏢 Amazon RDS (Relational Database Service)
- ⚡ Amazon DynamoDB
- 🚀 Amazon ElastiCache
- 🎯 Servicios de Base de Datos Especializados
- 🔄 Servicios de Migración de Bases de Datos
- 🎮 Escenarios del Mundo Real
- 📝 Preguntas de Práctica
Al final de este capítulo, podrás:
✅ Elegir entre bases de datos relacionales y NoSQL
✅ Entender RDS como servicio de base de datos administrado
✅ Saber cuándo usar DynamoDB para necesidades NoSQL
✅ Implementar estrategias de caché con ElastiCache
✅ Seleccionar bases de datos especializadas para casos de uso específicos
✅ Planificar migraciones de bases de datos a AWS
Piensa en esta elección como organizar una biblioteca:
- Organización estructurada - Libros organizados por categorías, autores, ISBN
- Las relaciones importan - Los libros se vinculan con autores, editores, temas
- Cumplimiento ACID - Reglas estrictas aseguran consistencia de datos
- Consultas SQL - Forma estandarizada de encontrar información
- Ejemplos: Órdenes de clientes, registros financieros, inventario
- Organización flexible - Almacenar diferentes tipos de contenido juntos
- Escala horizontalmente - Agregar más almacenamiento fácilmente
- Alto rendimiento - Optimizado para velocidad
- Varios formatos - Documentos, clave-valor, grafos
- Ejemplos: Perfiles de usuario, catálogos de productos, datos de sensores IoT
- Relaciones complejas entre entidades de datos
- Transacciones ACID son requeridas
- Conocimiento SQL existente en tu equipo
- Necesidades de reportes y analítica
- Requisitos de cumplimiento para consistencia de datos
- Requisitos de escala masiva (millones de solicitudes)
- Necesidades de esquema flexible
- Alto rendimiento es crítico
- Patrones de acceso simples (búsquedas basadas en clave)
- Arquitecturas serverless
- Tú administras: Servidores, SO, software de base de datos, respaldos
- Tú pagas por: Instancias EC2, almacenamiento, transferencia de datos
- Beneficios: Control total, potencialmente menor costo
- Desventajas: Alta sobrecarga operacional
- AWS administra: Infraestructura, parches, respaldos, escalado
- Tú pagas por: Capacidad de base de datos, almacenamiento, solicitudes
- Beneficios: Sobrecarga operacional reducida, mejores prácticas integradas
- Desventajas: Mayor costo por unidad, menos control
Piensa en RDS como contratar un administrador de base de datos en la nube:
- Te enfocas en tu aplicación - RDS maneja la infraestructura de base de datos
- Mantenimiento automatizado - Parches, respaldos, monitoreo manejados automáticamente
- Despliegue Multi-AZ - Alta disponibilidad integrada
- Réplicas de lectura - Escalar rendimiento de lectura globalmente
Motor de base de datos nativo de la nube de AWS
Características Clave:
- Compatible con MySQL y PostgreSQL - Migración fácil
- 5x más rápido que MySQL - Rendimiento optimizado para la nube
- 15 réplicas de lectura de baja latencia - Escalar cargas de trabajo de lectura
- Respaldo continuo a S3 - Recuperación punto en el tiempo
- Base de datos global - Replicación multi-región
Perfecto Para:
- Aplicaciones de alto rendimiento
- Aplicaciones globales
- Cargas de trabajo críticas
- Aplicaciones que requieren alta disponibilidad
Base de datos relacional de código abierto popular
Fortalezas:
- Ampliamente adoptado - Gran comunidad y ecosistema
- Aplicaciones web - Perfecto para stacks LAMP/LEMP
- Costo-efectivo - Licenciamiento de código abierto
- Fácil de aprender - Sintaxis y conceptos simples
Casos de Uso Comunes:
- Plataformas de e-commerce
- Sistemas de gestión de contenido
- Aplicaciones web
- Almacenamiento de datos (escala menor)
Base de datos relacional avanzada de código abierto
Fortalezas:
- Cumplimiento ACID - Consistencia de datos fuerte
- Características avanzadas - Soporte JSON, búsqueda de texto completo
- Extensibilidad - Tipos de datos y funciones personalizadas
- Cumple estándares - Sigue estándares SQL de cerca
Casos de Uso Comunes:
- Aplicaciones financieras
- Aplicaciones geoespaciales
- Analítica de datos
- Aplicaciones web complejas
- Oracle - Características empresariales, soporte de aplicaciones legacy
- SQL Server - Integración con ecosistema Microsoft
- MariaDB - Compatible con MySQL con características adicionales
Zona de Disponibilidad Única
├── Instancia de Base de Datos Primaria
├── Respaldos Automatizados
└── Ventanas de Mantenimiento
Características:
- Menor costo - Precios de instancia única
- Desarrollo/pruebas - Bueno para no-producción
- Tiempo de inactividad planificado - Durante ventanas de mantenimiento
- RTO: Minutos a horas
AZ Primaria AZ de Respaldo
├── Instancia Primaria ←→ Instancia de Respaldo
├── Replicación Síncrona (Failover Automático)
└── Misma URL de endpoint
Características:
- Alta disponibilidad - Failover automático
- Sin pérdida de datos - Replicación síncrona
- Mismo endpoint - Las aplicaciones no necesitan cambios
- RTO: 1-2 minutos
- Mayor costo - Dos instancias
Base de Datos Primaria
↓
┌── Réplica de Lectura 1 (Misma Región)
├── Réplica de Lectura 2 (Región Diferente)
└── Réplica de Lectura 3 (Región Diferente)
Beneficios:
- Escalar cargas de trabajo de lectura - Distribuir carga de consultas
- Cross-region - Rendimiento de lectura global
- Recuperación ante desastres - Puede ser promovida a primaria
- Reportes - Descargar consultas de analítica
Casos de Uso:
- Aplicaciones con mucha lectura
- Aplicaciones globales
- Inteligencia de negocios
- Recuperación ante desastres
Lo que sucede automáticamente:
- Instantáneas diarias - Respaldo completo de base de datos
- Respaldos de log de transacciones - Recuperación punto en el tiempo
- Retención de 1-35 días - Ventana de respaldo configurable
- Copiado cross-region - Recuperación ante desastres
Recuperación Punto en el Tiempo:
- Restaurar a cualquier segundo dentro del período de retención
- Nueva instancia de base de datos - La original permanece sin cambios
- Probar recuperaciones - Validar integridad del respaldo
Amazon RDS Performance Insights:
- Panel de rendimiento de base de datos
- Declaraciones SQL principales - Identificar consultas lentas
- Análisis de eventos de espera - Entender cuellos de botella
- Rendimiento histórico - Rastrear tendencias a lo largo del tiempo
Integración CloudWatch:
- Utilización de CPU - Rendimiento de instancia
- Conexiones de base de datos - Monitoreo de pool de conexiones
- IOPS de lectura/escritura - Rendimiento de almacenamiento
- Alarmas personalizadas - Monitoreo proactivo
- Cifrado en reposo - Integración AWS KMS
- Cifrado en tránsito - Conexiones SSL/TLS
- Aislamiento de red - Despliegue VPC
- Autenticación IAM - Gestión de usuarios de base de datos
- Parcheo automatizado - Actualizaciones de seguridad
- Pago por hora - Sin costos iniciales
- Iniciar/detener en cualquier momento - Uso flexible
- Perfecto para: Desarrollo, pruebas, cargas de trabajo impredecibles
- Compromiso de 1 o 3 años - Descuentos significativos
- Hasta 60% de ahorros - Comparado con Bajo Demanda
- Perfecto para: Cargas de trabajo de producción, uso predecible
- SSD de Propósito General - Rendimiento base, costo-efectivo
- SSD IOPS Aprovisionado - Alto rendimiento, IOPS consistente
- Almacenamiento magnético - Menor costo (legacy)
Piensa en DynamoDB como un sistema de archivo mágico súper rápido:
- Sin servidores que administrar - Completamente serverless
- Escalado automático - Maneja cualquier cantidad de tráfico
- Latencia de milisegundos de un dígito - Extremadamente rápido
- Replicación global - Datos disponibles mundialmente al instante
Tabla: "Users"
├── Ítem 1: {UserID: "123", Name: "Alice", Email: "alice@example.com"}
├── Ítem 2: {UserID: "456", Name: "Bob", City: "New York"}
└── Ítem 3: {UserID: "789", Name: "Carol", Age: 25, Premium: true}
Conceptos Clave:
- Tablas - Colecciones de datos relacionados (como hojas de cálculo)
- Ítems - Registros individuales (como filas de hoja de cálculo)
- Atributos - Campos de datos (como columnas de hoja de cálculo)
- Esquema flexible - Los ítems pueden tener diferentes atributos
🎯 Clave de Partición (Clave Primaria Simple)
Tabla: "Products"
Clave Primaria: ProductID
├── Ítem: {ProductID: "ABC123", Name: "Laptop", Price: 999}
├── Ítem: {ProductID: "DEF456", Name: "Mouse", Price: 25}
└── Ítem: {ProductID: "GHI789", Name: "Keyboard", Price: 75}
🎯 Clave Primaria Compuesta (Clave de Partición + Clave de Ordenamiento)
Tabla: "Orders"
Clave Primaria: CustomerID (Partición) + OrderDate (Ordenamiento)
├── Ítem: {CustomerID: "CUST001", OrderDate: "2024-01-15", Total: 150}
├── Ítem: {CustomerID: "CUST001", OrderDate: "2024-02-20", Total: 75}
└── Ítem: {CustomerID: "CUST002", OrderDate: "2024-01-10", Total: 200}
- Latencia de milisegundos de un dígito - Rendimiento rápido consistente
- Escalado automático - Maneja picos de tráfico automáticamente
- Modo bajo demanda - Pago por solicitud, sin planificación de capacidad
- Modo aprovisionado - Rendimiento y costo predecibles
Replicación multi-región, activo-activo
Beneficios:
- Aplicaciones globales - Datos cerca de usuarios mundialmente
- Recuperación ante desastres - Disponibilidad en múltiples regiones
- Rendimiento local - Baja latencia en todas partes
- Resolución automática de conflictos - El último escritor gana
Casos de Uso:
- Tablas de clasificación de juegos globales
- Sincronización de perfiles de usuario
- Aplicaciones multi-región
- Recuperación ante desastres
Captura de cambios de datos en tiempo real
Cómo funciona:
- Cambios de ítems - Operaciones de crear, actualizar, eliminar
- Registro de stream creado - Contiene valores antes/después
- Activadores Lambda - Procesar cambios en tiempo real
- Aplicaciones reaccionan - Actualizar índices de búsqueda, enviar notificaciones
Casos de Uso:
- Analítica en tiempo real
- Actualizaciones de índices de búsqueda
- Replicación cross-region
- Registro de auditoría
- Pago por solicitud - No se necesita planificación de capacidad
- Escalado automático - Maneja cualquier nivel de tráfico
- Perfecto para: Cargas de trabajo impredecibles, aplicaciones nuevas
- Costo: Mayor por solicitud, pero sin costos de capacidad inactiva
- Planificación de capacidad - Especificar unidades de capacidad de lectura/escritura
- Auto scaling disponible - Ajustar capacidad automáticamente
- Perfecto para: Cargas de trabajo predecibles, optimización de costos
- Costo: Menor por solicitud, pero pagar por capacidad reservada
- Almacenamiento estándar - Datos accedidos frecuentemente
- Acceso Infrecuente (IA) - 60% de reducción de costo para datos raramente accedidos
- Organización automática - DynamoDB administra la colocación de datos
Piensa en ElastiCache como contratar un asistente de lectura rápida:
- Mantiene información usada frecuentemente en memoria rápida
- Acceso instantáneo a datos populares
- Reduce la carga en tu base de datos principal
- Mejora dramáticamente el rendimiento
Almacén avanzado de estructuras de datos en memoria
Características Clave:
- Persistencia de datos - Sobrevive reinicios
- Tipos de datos complejos - Listas, conjuntos, conjuntos ordenados, hashes
- Mensajería Pub/Sub - Comunicación en tiempo real
- Scripting Lua - Computación del lado del servidor
- Alta disponibilidad - Multi-AZ con failover automático
Perfecto Para:
- Almacenamiento de sesiones
- Analítica en tiempo real
- Tablas de clasificación de juegos
- Aplicaciones de chat
- Escenarios de caché complejos
Caché de memoria simple y de alto rendimiento
Características Clave:
- Clave-valor simple - Caché básico
- Multi-hilo - Utiliza múltiples núcleos de CPU
- Escalado horizontal - Agregar más nodos fácilmente
- Sin persistencia - Datos perdidos al reiniciar
Perfecto Para:
- Caché simple de aplicaciones web
- Caché de resultados de consultas de base de datos
- Almacenamiento de sesiones (si la pérdida es aceptable)
- Escenarios de alto rendimiento
1. La aplicación solicita datos
2. Verificar caché primero
3. Si falla el caché → Consultar base de datos
4. Almacenar resultado en caché
5. Devolver datos a la aplicación
Beneficios:
- Solo cachear lo necesario - Sin memoria desperdiciada
- Tolerante a fallos - La aplicación funciona si el caché falla
- Simple de implementar
Desventajas:
- Penalización por fallo de caché - La primera solicitud es lenta
- Datos obsoletos posibles - El caché puede estar desactualizado
1. La aplicación escribe datos
2. Escribir al caché primero
3. El caché escribe a la base de datos
4. Confirmar completación de escritura
Beneficios:
- Datos siempre frescos - El caché nunca está obsoleto
- Sin penalización por fallo de caché - Los datos siempre están en caché
Desventajas:
- Penalización de escritura - Cada escritura afecta el caché
- Memoria desperdiciada - Cachear datos que nunca se leen
1. La aplicación escribe al caché
2. El caché confirma inmediatamente
3. El caché escribe a la base de datos asíncronamente
Beneficios:
- Escrituras rápidas - Sin latencia de escritura de base de datos
- Escrituras por lotes - Puede optimizar operaciones de base de datos
Desventajas:
- Riesgo de pérdida de datos - Si el caché falla antes de escribir a BD
- Implementación compleja
Almacenar datos de sesión de usuario en memoria
Beneficios:
- Acceso rápido a sesiones - Sin consultas a base de datos
- Sesiones compartidas - Múltiples servidores web acceden a las mismas sesiones
- Expiración automática - Las sesiones expiran automáticamente
Cachear consultas de base de datos ejecutadas frecuentemente
Implementación:
Consulta: "SELECT * FROM products WHERE category='electronics'"
├── Verificar caché con consulta como clave
├── Si falla: Ejecutar consulta, cachear resultado
└── Si acierta: Devolver resultado cacheado (milisegundos vs segundos)
Almacenar y procesar datos en tiempo real
Ejemplos:
- Tablas de clasificación de juegos
- Resultados de votación/encuestas en vivo
- Contadores en tiempo real
- Temas trending de redes sociales
Base de datos de documentos compatible con MongoDB
Lo que es:
- Orientado a documentos - Almacenar documentos tipo JSON
- Compatible con MongoDB - Usar aplicaciones MongoDB existentes
- Completamente administrado - AWS maneja las operaciones
- Escalable - Hasta 15 réplicas de lectura
Perfecto Para:
- Gestión de contenido
- Catálogos e inventarios
- Perfiles y preferencias de usuario
- Aplicaciones móviles y web
Base de datos de grafos completamente administrada
Lo que es:
- Relaciones de grafos - Modelar datos conectados
- Soporte de grafos de propiedades y RDF
- Lenguajes de consulta SPARQL y Gremlin
- Alta disponibilidad - Despliegues Multi-AZ
Perfecto Para:
- Aplicaciones de redes sociales
- Motores de recomendación
- Detección de fraude
- Grafos de conocimiento
- Análisis de redes
Motor de búsqueda y analítica
Lo que es:
- Búsqueda de texto completo - Buscar a través de grandes conjuntos de datos de texto
- Analítica de logs - Analizar logs de aplicaciones y sistemas
- Analítica en tiempo real - Procesar datos de streaming
- Integración Kibana - Visualización de datos
Perfecto Para:
- Características de búsqueda de aplicaciones
- Análisis y monitoreo de logs
- Inteligencia de negocios
- Analítica de seguridad
Base de datos de series temporales
Lo que es:
- Datos de series temporales - Puntos de datos indexados por tiempo
- Optimizado para IoT - Manejar miles de millones de eventos por día
- Escalado automático - Adaptarse al volumen de datos
- Optimizado en costos - Niveles de almacenamiento separados
Perfecto Para:
- Datos de sensores IoT
- Métricas de aplicaciones
- Telemetría industrial
- Datos de mercados financieros
Libro mayor inmutable y criptográficamente verificable
Lo que es:
- Diario inmutable - No puede ser cambiado o eliminado
- Verificación criptográfica - Probar integridad de datos
- Consultas tipo SQL - Interfaz de consulta familiar
- Serverless - Sin gestión de infraestructura
Perfecto Para:
- Sistemas de transacciones financieras
- Seguimiento de cadena de suministro
- Cumplimiento regulatorio
- Pistas de auditoría
Piensa en DMS como mudadores profesionales para tus datos:
- Migrar bases de datos con tiempo de inactividad mínimo
- Origen y destino pueden ser diferentes tipos de bases de datos
- Replicación continua - Mantener origen y destino sincronizados
- Conversión de esquema - Transformar estructuras de datos
📊 Migraciones Homogéneas
Oracle → Amazon RDS for Oracle
MySQL → Amazon RDS for MySQL
PostgreSQL → Amazon Aurora PostgreSQL
- Mismo motor de base de datos - Migración directa
- Esquema compatible - Cambios mínimos necesarios
- Migración más rápida - Menos transformación requerida
🔄 Migraciones Heterogéneas
Oracle → Amazon Aurora PostgreSQL
SQL Server → Amazon RDS for MySQL
On-premises → DynamoDB
- Diferentes motores de base de datos - Migración más compleja
- Conversión de esquema requerida - Usar Schema Conversion Tool
- Cambios de aplicación - Puede necesitar actualizaciones de código
Convierte esquemas de base de datos entre diferentes motores
Lo que hace:
- Analiza esquema origen - Identifica desafíos de conversión
- Convierte objetos de esquema - Tablas, vistas, procedimientos, funciones
- Genera reportes - Muestra complejidad de conversión
- Proporciona recomendaciones - Mejores prácticas para plataforma destino
Ejemplos de Conversión:
Oracle PL/SQL → PostgreSQL PL/pgSQL
SQL Server T-SQL → MySQL SQL
Oracle packages → Aurora PostgreSQL functions
Copia completa de base de datos a AWS
Proceso:
- Crear base de datos destino - Configurar base de datos AWS
- Exportar/importar datos - Transferir todos los datos de una vez
- Cambiar aplicaciones - Apuntar a nueva base de datos
- Validar y probar - Asegurar que todo funcione
Mejor para:
- Bases de datos pequeñas
- Aplicaciones que pueden tolerar tiempo de inactividad
- Entornos de desarrollo/pruebas
Sincronización continua entre origen y destino
Proceso:
- Carga inicial - Copiar datos existentes
- Captura de cambios de datos - Rastrear cambios en curso
- Aplicar cambios - Mantener destino sincronizado
- Cutover - Cambiar cuando esté listo
Mejor para:
- Bases de datos grandes
- Aplicaciones críticas
- Requisitos de cero tiempo de inactividad
Requisitos:
- Catálogo de productos - Relaciones complejas, capacidades de búsqueda
- Sesiones de usuario - Acceso rápido, almacenamiento temporal
- Procesamiento de órdenes - Transacciones ACID requeridas
- Analítica - Análisis en tiempo real e histórico
Arquitectura de Base de Datos:
Capa de Aplicación
├── Catálogo de Productos: Amazon OpenSearch
│ ├── Capacidades de búsqueda de texto completo
│ ├── Búsqueda facetada y filtrado
│ └── Indexación en tiempo real
├── Sesiones de Usuario: ElastiCache (Redis)
│ ├── Almacenamiento rápido de sesiones
│ ├── Persistencia de carrito de compras
│ └── Caché de preferencias de usuario
├── Órdenes e Inventario: Amazon RDS (PostgreSQL)
│ ├── Transacciones ACID
│ ├── Relaciones complejas
│ ├── Multi-AZ para alta disponibilidad
│ └── Réplicas de lectura para reportes
└── Analítica: Amazon Timestream
├── Métricas en tiempo real
├── Seguimiento de comportamiento de usuario
└── Monitoreo de rendimiento
Flujo de Datos:
- Búsqueda de productos → OpenSearch para resultados rápidos y relevantes
- Agregar al carrito → Redis para actualizaciones instantáneas del carrito
- Checkout → PostgreSQL para integridad transaccional
- Analítica → Timestream para insights en tiempo real
Requisitos:
- Perfiles de jugadores - Almacenamiento flexible y escalable
- Sesiones de juego - Acceso ultra-rápido
- Tablas de clasificación - Rankings en tiempo real
- Sistema de chat - Mensajería pub/sub
Arquitectura de Base de Datos:
Plataforma de Gaming
├── Perfiles de Jugadores: DynamoDB
│ ├── Tablas globales para acceso mundial
│ ├── Esquema flexible para diferentes juegos
│ ├── Auto-escalado para picos de tráfico
│ └── Latencia de milisegundos de un dígito
├── Sesiones de Juego: ElastiCache (Redis)
│ ├── Estado de juego en memoria
│ ├── Persistencia de sesión
│ ├── Pub/sub para características en tiempo real
│ └── Scripting Lua para lógica de juego
├── Tablas de Clasificación: DynamoDB + ElastiCache
│ ├── DynamoDB para persistencia
│ ├── Redis para actualizaciones en tiempo real
│ ├── Conjuntos ordenados para rankings
│ └── Sincronización global
└── Características Sociales: Amazon Neptune
├── Relaciones de amistad
├── Conexiones de gremios/equipos
├── Recomendaciones sociales
└── Matchmaking basado en grafos
Requisitos:
- Sistema Oracle legacy - Necesidad de modernizar
- Cumplimiento HIPAA - Seguridad de datos crítica
- Tiempo de inactividad mínimo - Sistemas críticos de pacientes
- Optimización de costos - Reducir costos de licenciamiento
Estrategia de Migración:
Plan de Migración
├── Fase 1: Evaluación
│ ├── Análisis de Schema Conversion Tool
│ ├── Revisión de compatibilidad de aplicaciones
│ ├── Análisis de requisitos de rendimiento
│ └── Mapeo de requisitos de cumplimiento
├── Fase 2: Configurar Entorno Destino
│ ├── Configuración de Amazon Aurora PostgreSQL
│ ├── Despliegue Multi-AZ para HA
│ ├── Cifrado en reposo y tránsito
│ ├── Configuración de seguridad VPC
│ └── Roles y políticas IAM
├── Fase 3: Conversión de Esquema
│ ├── Convertir esquema Oracle a PostgreSQL
│ ├── Migrar procedimientos almacenados a funciones
│ ├── Actualizar cadenas de conexión de aplicación
│ └── Probar compatibilidad de aplicación
└── Fase 4: Migración de Datos
├── Configuración de replicación continua DMS
├── Carga inicial de datos (fuera de horas)
├── Monitorear retraso de replicación
├── Ventana de cutover planificada
└── Validación post-migración
Beneficios Logrados:
- 60% de reducción de costos - Sin licenciamiento Oracle
- Rendimiento mejorado - Optimizaciones Aurora
- Seguridad mejorada - Características de seguridad AWS
- Mejor escalabilidad - Réplicas de lectura y auto-escalado
- Structure (Estructura) - Relacional (RDS) vs Flexible (DynamoDB)
- Consistency (Consistencia) - ACID (RDS) vs Eventual (DynamoDB)
- Access patterns (Patrones de acceso) - Consultas complejas (RDS) vs Clave-valor (DynamoDB)
- Latency (Latencia) - Sub-segundo (DynamoDB) vs Variable (RDS)
- Elasticity (Elasticidad) - Manual (RDS) vs Automático (DynamoDB)
- Redis - Tipos de datos ricos, persistencia, alta disponibilidad
- Advanced features (Características avanzadas) - Pub/sub, scripting, clustering
- Memcached - Clave-valor simple, multi-hilo
- Performance (Rendimiento) - Alto rendimiento, sin persistencia
- Write-through - Siempre fresco, penalización de escritura
- Lazy loading (Carga perezosa) - Solo cachear lo necesario, penalización por fallo de caché
- Time-based expiration (Expiración basada en tiempo) - Bueno para todas las estrategias
Una aplicación de redes sociales necesita almacenar perfiles de usuario con atributos variables (algunos usuarios tienen fotos, otros no, algunos tienen datos de ubicación, etc.) y requiere tiempos de respuesta de milisegundos de un dígito. ¿Qué servicio de base de datos es más apropiado?
A) Amazon RDS con MySQL
B) Amazon DynamoDB
C) Amazon DocumentDB
D) Amazon Neptune
🔍 Haz clic para ver la Respuesta
Respuesta: B) Amazon DynamoDB
Explicación: El esquema flexible de DynamoDB permite que diferentes ítems tengan diferentes atributos, perfecto para datos de perfiles de usuario variables. Su latencia de milisegundos de un dígito cumple con el requisito de rendimiento, y escala automáticamente para patrones de tráfico de redes sociales.
Una empresa quiere mejorar el rendimiento de su aplicación web cacheando resultados de consultas de base de datos accedidas frecuentemente. Necesitan que el caché sobreviva reinicios del servidor y quieren usar estructuras de datos avanzadas. ¿Qué solución de caché deberían elegir?
A) Amazon ElastiCache para Memcached
B) Amazon ElastiCache para Redis
C) Amazon DynamoDB Accelerator (DAX)
D) Amazon CloudFront
🔍 Haz clic para ver la Respuesta
Respuesta: B) Amazon ElastiCache para Redis
Explicación: Redis proporciona persistencia (sobrevive reinicios) y soporta estructuras de datos avanzadas como listas, conjuntos y conjuntos ordenados. Memcached es volátil y solo soporta pares clave-valor simples. DAX es específicamente para DynamoDB, y CloudFront es para entrega de contenido, no para caché de base de datos.
Una empresa de servicios financieros necesita migrar su base de datos Oracle a AWS con tiempo de inactividad mínimo. El destino debe ser costo-efectivo y proporcionar mejor rendimiento. ¿Cuál es el mejor enfoque?
A) Migrar a Amazon RDS para Oracle
B) Usar AWS DMS para migrar a Amazon Aurora PostgreSQL
C) Exportar/importar a Amazon DynamoDB
D) Replicar a Amazon DocumentDB
🔍 Haz clic para ver la Respuesta
Respuesta: B) Usar AWS DMS para migrar a Amazon Aurora PostgreSQL
Explicación: DMS permite migración con tiempo de inactividad mínimo a través de replicación continua. Aurora PostgreSQL es costo-efectivo (sin licenciamiento Oracle), proporciona mejor rendimiento que bases de datos tradicionales, y soporta las características relacionales necesarias para aplicaciones financieras.
Una aplicación IoT recolecta millones de lecturas de sensores por día con timestamps y necesita analizar tendencias a lo largo del tiempo. ¿Qué servicio de base de datos es más adecuado?
A) Amazon RDS
B) Amazon DynamoDB
C) Amazon Timestream
D) Amazon Neptune
🔍 Haz clic para ver la Respuesta
Respuesta: C) Amazon Timestream
Explicación: Timestream está específicamente diseñado para datos de series temporales como lecturas de sensores IoT. Está optimizado para almacenar y analizar datos con timestamp, maneja escala masiva eficientemente, y proporciona funciones integradas para análisis y tendencias basadas en tiempo.
- Diferentes bases de datos para diferentes necesidades - No hay solución única para todo
- Los servicios administrados reducen la sobrecarga - Enfócate en aplicaciones, no en infraestructura
- Los requisitos de rendimiento impulsan la selección - Compensaciones entre latencia vs consistencia
- La migración es posible - Mover bases de datos existentes a AWS con tiempo de inactividad mínimo
- Saber cuándo usar RDS vs DynamoDB - Datos estructurados vs flexibles
- Entender motores de ElastiCache - Características de Redis vs Memcached
- Recordar bases de datos especializadas - Casos de uso de DocumentDB, Neptune, Timestream
- Conocer opciones de migración - DMS para migraciones de bases de datos
- Empezar con requisitos de caso de uso - Que las necesidades impulsen la elección de tecnología
- Considerar sobrecarga operacional - Servicios administrados vs auto-administrados
- Planificar para escala - Diseñar bases de datos que puedan crecer
- Implementar caché estratégicamente - Mejorar rendimiento de manera costo-efectiva
- Probar estrategias de migración - Validar enfoques antes de producción
- Usar Multi-AZ para producción - La alta disponibilidad es crítica
- Implementar estrategias de respaldo - Respaldos automatizados y pruebas
- Monitorear rendimiento - Usar CloudWatch y Performance Insights
- Seguridad primero - Cifrado, VPC, integración IAM
- Optimización de costos - Dimensionar instancias correctamente, usar réplicas de lectura
← Anterior: Servicios de Red
→ Siguiente: Servicios de Integración y Adicionales
↑ Arriba: Dominio 3: Tecnología y Servicios
🏠 Inicio: Guía de Estudio AWS Cloud Practitioner
💡 Consejo Pro: Las preguntas de bases de datos a menudo involucran escenarios con requisitos específicos (rendimiento, consistencia, escalabilidad). Enfócate en entender las compensaciones entre diferentes tipos de bases de datos en lugar de memorizar características específicas. ¡Piensa en los patrones de acceso a datos y los requisitos!