Bases de datos
1. Introducción #
Las bases de datos permiten almacenar, consultar, actualizar y analizar información organizada.
En una empresa, una base de datos puede guardar información como:
- Clientes.
- Pedidos.
- Productos.
- Inventario.
- Transacciones.
- Recompensas de fidelización.
- Perfiles de usuario.
- Relaciones entre datos.
AWS ofrece diferentes servicios de bases de datos porque no todos los datos tienen la misma estructura ni las mismas necesidades.
2. Bases de datos relacionales #
¿Qué son? #
Una base de datos relacional almacena datos en tablas relacionadas entre sí.
Por ejemplo:
Tabla clientes #
| id_cliente | nombre | |
|---|---|---|
| 1 | Ana | ana@email.com |
Tabla pedidos #
| id_pedido | id_cliente | producto |
|---|---|---|
| 100 | 1 | Café latte |
La relación se establece mediante un campo común, como id_cliente.
Lenguaje SQL #
Las bases de datos relacionales suelen usar SQL, que significa Structured Query Language.
SQL permite:
- Crear tablas.
- Insertar datos.
- Consultar información.
- Actualizar registros.
- Eliminar registros.
- Relacionar tablas.
Casos de uso #
Las bases de datos relacionales son ideales para:
- Datos estructurados.
- Aplicaciones empresariales.
- Sistemas de pedidos.
- Inventarios.
- Facturación.
- Comercio electrónico.
- Aplicaciones financieras.
3. Ejecutar una base de datos en EC2 #
Una empresa puede migrar una base de datos existente a una instancia EC2.
Esto se conoce como:
Lift and Shift #
Consiste en mover una aplicación o base de datos desde un entorno local a AWS con pocos cambios.
Ventajas #
- Mantienes mucho control.
- Puedes usar configuraciones conocidas.
- Es útil para migraciones rápidas.
Inconvenientes #
El cliente debe administrar:
- Sistema operativo.
- Parches.
- Software de base de datos.
- Copias de seguridad.
- Escalado.
- Alta disponibilidad.
- Seguridad.
4. AWS Database Migration Service #
AWS Database Migration Service, o AWS DMS, ayuda a migrar bases de datos hacia AWS.
Permite mover datos desde bases de datos locales o de otros entornos hacia servicios de AWS.
Casos de uso #
- Migrar de local a AWS.
- Migrar entre motores de base de datos.
- Reducir tiempo de parada durante una migración.
- Modernizar bases de datos.
5. Amazon RDS #
¿Qué es Amazon RDS? #
Amazon Relational Database Service (RDS) es un servicio administrado de bases de datos relacionales.
Permite crear y administrar bases de datos sin tener que gestionar toda la infraestructura manualmente.
Motores compatibles #
Amazon RDS admite motores como:
- MySQL.
- PostgreSQL.
- MariaDB.
- Oracle Database.
- Microsoft SQL Server.
- Amazon Aurora.
Qué gestiona AWS en RDS #
AWS se encarga de tareas como:
- Aprovisionamiento de hardware.
- Parches del sistema.
- Parches del motor de base de datos.
- Copias de seguridad automatizadas.
- Alta disponibilidad.
- Conmutación por error.
- Monitorización.
- Recuperación ante desastres.
Qué gestiona el cliente #
El cliente sigue siendo responsable de:
- Diseñar la base de datos.
- Crear usuarios.
- Configurar permisos.
- Proteger credenciales.
- Configurar cifrado.
- Controlar acceso de red.
- Optimizar consultas.
- Gestionar datos.
6. Beneficios de Amazon RDS #
Amazon RDS ofrece:
- Menor carga administrativa.
- Copias de seguridad automáticas.
- Escalado sencillo.
- Despliegue Multi-AZ.
- Seguridad integrada.
- Cifrado en reposo y en tránsito.
- Alta disponibilidad.
- Recuperación a un punto en el tiempo.
7. RDS Multi-AZ #
¿Qué es? #
Un despliegue Multi-AZ permite tener una base de datos principal y una réplica en otra zona de disponibilidad.
Si falla la base de datos principal, RDS puede hacer conmutación por error hacia la secundaria.
Objetivo #
Mejorar la disponibilidad y la resiliencia.
Importante para el examen #
Multi-AZ se usa principalmente para alta disponibilidad, no para mejorar el rendimiento de lectura.
8. Copias de seguridad en RDS #
RDS permite:
- Copias de seguridad automáticas.
- Snapshots manuales.
- Restauración a un punto en el tiempo.
Un snapshot manual puede usarse para archivar una base de datos o restaurarla más adelante.
9. Amazon Aurora #
¿Qué es Amazon Aurora? #
Amazon Aurora es una base de datos relacional administrada de AWS compatible con MySQL y PostgreSQL.
Está diseñada para ofrecer alto rendimiento, alta disponibilidad y escalabilidad.
Características principales #
- Compatible con MySQL y PostgreSQL.
- Administrada por AWS.
- Alto rendimiento.
- Replicación entre varias zonas de disponibilidad.
- Copias de seguridad automáticas.
- Cifrado.
- Monitorización.
- Hasta 15 réplicas de lectura Aurora en una región.
Casos de uso #
Aurora es adecuada para:
- Aplicaciones web exigentes.
- Juegos.
- Gestión de contenido.
- Análisis en tiempo real.
- Aplicaciones empresariales críticas.
- Sistemas que necesitan alto rendimiento.
10. Bases de datos NoSQL #
¿Qué significa NoSQL? #
NoSQL se refiere a bases de datos no relacionales.
No almacenan necesariamente los datos en tablas rígidas.
Son útiles cuando se necesita:
- Escalabilidad alta.
- Esquema flexible.
- Baja latencia.
- Datos con atributos variables.
- Grandes volúmenes de datos.
11. Amazon DynamoDB #
¿Qué es DynamoDB? #
Amazon DynamoDB es una base de datos NoSQL, completamente administrada y sin servidor.
Es una base de datos de clave-valor y documentos.
Características principales #
- No requiere administrar servidores.
- Escala automáticamente.
- Es de baja latencia.
- Ofrece rendimiento de milisegundos.
- No necesita ventanas de mantenimiento.
- No hay parches que administrar.
- Permite esquemas flexibles.
- Puede usarse en aplicaciones globales.
Cómo organiza los datos #
DynamoDB usa:
- Tablas.
- Elementos.
- Atributos.
Tabla #
Contenedor principal de datos.
Elemento #
Registro individual dentro de una tabla.
Atributo #
Dato concreto dentro de un elemento.
Ejemplo #
Tabla: Pedidos
| OrderID | Cliente | Producto | Precio |
|---|---|---|---|
| 1 | Ana | Café | 2,50 |
| 2 | Luis | Té | 1,80 |
En DynamoDB no todos los elementos tienen que tener los mismos atributos.
Un pedido podría tener un campo adicional y otro no.
Tablas globales de DynamoDB #
Las tablas globales permiten replicar datos en varias regiones.
Son útiles para aplicaciones distribuidas globalmente.
Ventajas #
- Menor latencia para usuarios globales.
- Mayor disponibilidad.
- Recuperación ante fallos regionales.
12. RDS frente a DynamoDB #
| Característica | Amazon RDS | Amazon DynamoDB |
|---|---|---|
| Tipo | Relacional | NoSQL |
| Lenguaje | SQL | API / consultas NoSQL |
| Esquema | Estructurado | Flexible |
| Administración | Administrado | Serverless y administrado |
| Casos de uso | Transacciones, relaciones | Escalabilidad, baja latencia |
| Ejemplo | Pedidos y clientes relacionados | Carritos, sesiones, eventos |
13. Cuándo usar RDS #
Usa RDS cuando:
- Necesitas SQL.
- Tienes datos estructurados.
- Hay relaciones entre tablas.
- Necesitas transacciones.
- Migras una base de datos tradicional.
- Usas MySQL, PostgreSQL, SQL Server, Oracle o MariaDB.
14. Cuándo usar DynamoDB #
Usa DynamoDB cuando:
- Necesitas baja latencia.
- Tienes mucho tráfico.
- Quieres una solución serverless.
- Los datos tienen esquema flexible.
- No necesitas joins complejos.
- Necesitas escalar globalmente.
- Trabajas con clave-valor o documentos.
15. Amazon ElastiCache #
¿Qué es Amazon ElastiCache? #
Amazon ElastiCache es un servicio administrado de caché en memoria.
Permite almacenar datos frecuentes en memoria para recuperarlos muy rápido.
Es compatible con:
- Redis OSS.
- Valkey.
- Memcached.
Problema que resuelve #
Una aplicación puede consultar muchas veces la misma información en una base de datos.
Ejemplo:
Miles de usuarios consultan los mismos productos en una tienda online.
Sin caché:
1Usuario → Aplicación → Base de datos
Con caché:
1Usuario → Aplicación → ElastiCache
Si el dato está en caché, se devuelve rápidamente sin consultar la base de datos.
Funcionamiento típico #
- El usuario solicita un dato.
- La aplicación consulta ElastiCache.
- Si el dato está en caché, se devuelve directamente.
- Si no está, la aplicación consulta RDS.
- El resultado se guarda en ElastiCache.
- La próxima consulta será más rápida.
Beneficios #
- Reduce carga sobre la base de datos.
- Mejora la latencia.
- Aumenta el rendimiento.
- Puede reducir costes.
- Es útil para datos muy consultados.
- Puede ofrecer latencia de microsegundos.
Casos de uso #
ElastiCache es útil para:
- Catálogos de productos.
- Sesiones de usuario.
- Rankings de juegos.
- Datos de lectura frecuente.
- Sistemas de recomendación.
- Aplicaciones con mucho tráfico.
16. Amazon DocumentDB #
¿Qué es? #
Amazon DocumentDB es una base de datos documental compatible con MongoDB.
Está diseñada para datos semiestructurados y documentos similares a JSON.
Casos de uso #
DocumentDB es adecuada para:
- Gestión de contenido.
- Catálogos.
- Inventarios.
- Perfiles de usuario.
- Personalización.
- Aplicaciones con esquema cambiante.
Beneficios #
- Compatible con MongoDB.
- Esquema flexible.
- Escalabilidad.
- Copias de seguridad continuas.
- Seguridad empresarial.
- Buena capacidad de lectura.
17. Amazon Neptune #
¿Qué es? #
Amazon Neptune es una base de datos de grafos administrada.
Está diseñada para datos muy conectados.
Qué problema resuelve #
Algunos datos se entienden mejor como relaciones.
Ejemplos:
- Usuario A sigue a Usuario B.
- Usuario B conoce a Usuario C.
- Usuario C compró el mismo producto que Usuario A.
Este tipo de relaciones puede ser difícil de consultar en una base de datos relacional tradicional.
Casos de uso #
Amazon Neptune es útil para:
- Redes sociales.
- Detección de fraude.
- Motores de recomendación.
- Grafos de conocimiento.
- Relaciones complejas entre entidades.
18. Amazon Managed Blockchain #
¿Qué es? #
Amazon Managed Blockchain permite crear y administrar redes blockchain.
Está pensado para escenarios donde varias partes necesitan compartir datos de forma verificable.
Casos de uso #
- Cadena de suministro.
- Trazabilidad alimentaria.
- Registro de transacciones.
- Auditoría compartida.
- Entornos con varias organizaciones.
19. DynamoDB Accelerator DAX #
¿Qué es DAX? #
DynamoDB Accelerator (DAX) es una caché en memoria para DynamoDB.
Sirve para acelerar lecturas en DynamoDB.
Cuándo usarlo #
Cuando una aplicación usa DynamoDB y necesita tiempos de lectura extremadamente bajos.
20. AWS Backup #
¿Qué es AWS Backup? #
AWS Backup es un servicio centralizado para gestionar copias de seguridad.
Permite proteger distintos recursos de AWS desde un único lugar.
Servicios compatibles #
Puede proteger, entre otros:
- Volúmenes EBS.
- Sistemas EFS.
- Bases de datos RDS.
- Tablas DynamoDB.
- Recursos locales compatibles.
Beneficios #
- Administración centralizada.
- Automatización de copias.
- Políticas uniformes.
- Cifrado.
- Copias entre regiones.
- Mejor cumplimiento normativo.
- Recuperación ante desastres.
21. Comparación de servicios de bases de datos #
| Servicio | Tipo | Uso principal |
|---|---|---|
| Amazon RDS | Relacional | SQL, transacciones, datos estructurados |
| Amazon Aurora | Relacional avanzada | Alto rendimiento y disponibilidad |
| DynamoDB | NoSQL clave-valor/documentos | Baja latencia y escalado masivo |
| ElastiCache | Caché en memoria | Acelerar lecturas frecuentes |
| DocumentDB | Documental | Datos JSON y esquemas flexibles |
| Neptune | Grafos | Relaciones complejas |
| Managed Blockchain | Blockchain | Trazabilidad y redes compartidas |
| AWS Backup | Protección de datos | Copias centralizadas |
22. Casos prácticos #
Caso 1: Programa de fidelización de cafetería #
La cafetería quiere relacionar clientes con pedidos y recompensas.
Servicio recomendado #
Amazon RDS o Amazon Aurora.
Motivo #
Hay relaciones claras entre clientes, pedidos y recompensas.
Caso 2: Aplicación con millones de peticiones simples #
Una aplicación necesita guardar sesiones, carritos o eventos con baja latencia.
Servicio recomendado #
Amazon DynamoDB.
Motivo #
Escala automáticamente y ofrece baja latencia.
Caso 3: Tienda online con muchas consultas de productos #
Miles de clientes consultan los mismos productos repetidamente.
Servicio recomendado #
Amazon ElastiCache junto con RDS.
Motivo #
La caché reduce la carga sobre la base de datos.
Caso 4: Red social #
Una aplicación necesita consultar relaciones entre usuarios.
Servicio recomendado #
Amazon Neptune.
Motivo #
Las bases de datos de grafos están diseñadas para relaciones complejas.
Caso 5: Catálogo flexible de productos #
Una tienda tiene productos con atributos muy distintos.
Servicio recomendado #
Amazon DocumentDB.
Motivo #
Permite documentos con esquemas flexibles.
Caso 6: Copias de seguridad centralizadas #
Una empresa quiere proteger EBS, EFS, RDS y DynamoDB con políticas comunes.
Servicio recomendado #
AWS Backup.
Motivo #
Centraliza y automatiza copias de seguridad.
23. Cómo elegir la base de datos adecuada #
Usa RDS cuando... #
Necesites una base de datos relacional tradicional.
Ejemplos:
- MySQL.
- PostgreSQL.
- SQL Server.
- Oracle.
- MariaDB.
Usa Aurora cuando... #
Necesites una base de datos relacional con más rendimiento y disponibilidad.
Usa DynamoDB cuando... #
Necesites NoSQL, baja latencia y escalado automático.
Usa ElastiCache cuando... #
Necesites acelerar lecturas frecuentes y reducir carga de la base de datos.
Usa DocumentDB cuando... #
Necesites almacenar documentos JSON o datos semiestructurados.
Usa Neptune cuando... #
Necesites consultar relaciones complejas entre datos.
Usa Managed Blockchain cuando... #
Necesites trazabilidad compartida entre varias entidades.
Usa AWS Backup cuando... #
Necesites proteger datos de distintos servicios desde una única consola.
24. Ideas clave para el examen AWS Cloud Practitioner #
- RDS es un servicio administrado de bases de datos relacionales.
- RDS admite MySQL, PostgreSQL, MariaDB, Oracle, SQL Server y Aurora.
- RDS Multi-AZ mejora la alta disponibilidad.
- RDS automatiza copias de seguridad y parches.
- Aurora es una base de datos relacional administrada compatible con MySQL y PostgreSQL.
- Aurora ofrece alto rendimiento y alta disponibilidad.
- DynamoDB es NoSQL, serverless y completamente administrada.
- DynamoDB usa tablas, elementos y atributos.
- DynamoDB es ideal para baja latencia y escalabilidad masiva.
- Las tablas globales de DynamoDB permiten aplicaciones multi-región.
- ElastiCache es una caché en memoria.
- ElastiCache reduce carga sobre bases de datos.
- DocumentDB es compatible con MongoDB y usa documentos tipo JSON.
- Neptune es una base de datos de grafos.
- Managed Blockchain sirve para redes blockchain.
- DAX acelera lecturas en DynamoDB.
- AWS Backup centraliza copias de seguridad de varios servicios.
- No existe una única base de datos perfecta para todo.
- AWS recomienda elegir bases de datos diseñadas para cada caso de uso.