Skip to content

Latest commit

 

History

History
902 lines (708 loc) · 34.5 KB

File metadata and controls

902 lines (708 loc) · 34.5 KB

🗄️ Servicios de Base de Datos

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! 📊


📋 Tabla de Contenidos


🎯 Objetivos de Aprendizaje

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


💡 Fundamentos de Bases de Datos

🤔 Relacionales vs NoSQL: El Gran Debate

Piensa en esta elección como organizar una biblioteca:

📚 Bases de Datos Relacionales (Como Bibliotecas Tradicionales)

  • 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

🌐 Bases de Datos NoSQL (Como Colecciones Digitales Modernas)

  • 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

🎯 Cuándo Elegir Qué

✅ Elegir Relacional (RDS) Cuando:

  • 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

✅ Elegir NoSQL (DynamoDB) Cuando:

  • 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

💰 Modelos de Precios de Bases de Datos

🏗️ Tradicional (Auto-Administrado)

  • 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

🛠️ Servicios Administrados (RDS, DynamoDB)

  • 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

🏢 Amazon RDS (Relational Database Service)

🏗️ ¿Qué es Amazon RDS?

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

🎯 Motores de Base de Datos Soportados

🔷 Amazon Aurora

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

🐬 MySQL

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)

🐘 PostgreSQL

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

🏢 Motores Comerciales

  • Oracle - Características empresariales, soporte de aplicaciones legacy
  • SQL Server - Integración con ecosistema Microsoft
  • MariaDB - Compatible con MySQL con características adicionales

🏗️ Opciones de Despliegue RDS

🏠 Despliegue Single-AZ

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

🏢 Despliegue Multi-AZ

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

📖 Réplicas de Lectura

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

🔧 Características de RDS

🔄 Respaldos Automatizados

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

📊 Monitoreo de Rendimiento

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

🔒 Características de Seguridad

  • 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

💰 Modelos de Precios RDS

💻 Instancias Bajo Demanda

  • Pago por hora - Sin costos iniciales
  • Iniciar/detener en cualquier momento - Uso flexible
  • Perfecto para: Desarrollo, pruebas, cargas de trabajo impredecibles

💰 Instancias Reservadas

  • 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

📊 Precios de Almacenamiento

  • SSD de Propósito General - Rendimiento base, costo-efectivo
  • SSD IOPS Aprovisionado - Alto rendimiento, IOPS consistente
  • Almacenamiento magnético - Menor costo (legacy)

⚡ Amazon DynamoDB

🚀 ¿Qué es DynamoDB?

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

🏗️ Conceptos Fundamentales de DynamoDB

📊 Tablas, Ítems y Atributos

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

🔑 Claves Primarias

🎯 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}

🎯 Características de DynamoDB

⚡ Rendimiento

  • 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

🌍 Tablas Globales

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

📱 DynamoDB Streams

Captura de cambios de datos en tiempo real

Cómo funciona:

  1. Cambios de ítems - Operaciones de crear, actualizar, eliminar
  2. Registro de stream creado - Contiene valores antes/después
  3. Activadores Lambda - Procesar cambios en tiempo real
  4. 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

💰 Modelos de Precios de DynamoDB

📊 Modo Bajo Demanda

  • 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

⚖️ Modo Aprovisionado

  • 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

💾 Costos de Almacenamiento

  • 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

🚀 Amazon ElastiCache

¿Qué es ElastiCache?

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

🎯 Motores de ElastiCache

🔴 Redis

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

⚪ Memcached

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

🏗️ Estrategias de Caché

📖 Carga Perezosa (Cache-Aside)

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

✍️ Write-Through

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

📝 Write-Behind (Write-Back)

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

🎯 Casos de Uso de ElastiCache

🌐 Almacenamiento de Sesiones Web

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

📊 Caché de Consultas de Base de Datos

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)

🎮 Analítica en Tiempo Real

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

🎯 Servicios de Base de Datos Especializados

📄 Amazon DocumentDB

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

🕸️ Amazon Neptune

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

🔍 Amazon Elasticsearch Service (OpenSearch)

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

Amazon Timestream

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

📊 Amazon Quantum Ledger Database (QLDB)

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

🔄 Servicios de Migración de Bases de Datos

🚛 AWS Database Migration Service (DMS)

🎯 ¿Qué es DMS?

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

🔄 Tipos de Migración

📊 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

🛠️ AWS Schema Conversion Tool (SCT)

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

🔄 Estrategias de Migración

🎯 Migración de Una Sola Vez

Copia completa de base de datos a AWS

Proceso:

  1. Crear base de datos destino - Configurar base de datos AWS
  2. Exportar/importar datos - Transferir todos los datos de una vez
  3. Cambiar aplicaciones - Apuntar a nueva base de datos
  4. 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

🔄 Replicación Continua

Sincronización continua entre origen y destino

Proceso:

  1. Carga inicial - Copiar datos existentes
  2. Captura de cambios de datos - Rastrear cambios en curso
  3. Aplicar cambios - Mantener destino sincronizado
  4. Cutover - Cambiar cuando esté listo

Mejor para:

  • Bases de datos grandes
  • Aplicaciones críticas
  • Requisitos de cero tiempo de inactividad

🎮 Real-World Scenarios

🏦 Escenario 1: Plataforma de E-commerce

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:

  1. Búsqueda de productos → OpenSearch para resultados rápidos y relevantes
  2. Agregar al carrito → Redis para actualizaciones instantáneas del carrito
  3. Checkout → PostgreSQL para integridad transaccional
  4. Analítica → Timestream para insights en tiempo real

🎮 Escenario 2: Plataforma de Gaming

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

🏥 Escenario 3: Migración de Sistema de Salud

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

🧠 Ayudas de Memoria

🎯 Marco de Selección de Base de Datos: "SCALE"

  • 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)

🚀 Selección de Motor ElastiCache: "RAMP"

  • 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

🔄 Selección de Estrategia de Caché: "WLT"

  • 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

📝 Preguntas de Práctica

Pregunta 1

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.

Pregunta 2

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.

Pregunta 3

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.

Pregunta 4

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.


🎯 Puntos Clave

🌟 El Panorama General

  • 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

🎯 Para el Examen

  • 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

💡 Para Aplicación en el Mundo Real

  • 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

🚀 Mejores Prácticas

  • 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

🔗 Navegación

← 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!