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_clientenombreemail
1Anaana@email.com

Tabla pedidos #

id_pedidoid_clienteproducto
1001Café 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

OrderIDClienteProductoPrecio
1AnaCafé2,50
2Luis1,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ísticaAmazon RDSAmazon DynamoDB
TipoRelacionalNoSQL
LenguajeSQLAPI / consultas NoSQL
EsquemaEstructuradoFlexible
AdministraciónAdministradoServerless y administrado
Casos de usoTransacciones, relacionesEscalabilidad, baja latencia
EjemploPedidos y clientes relacionadosCarritos, 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 #

  1. El usuario solicita un dato.
  2. La aplicación consulta ElastiCache.
  3. Si el dato está en caché, se devuelve directamente.
  4. Si no está, la aplicación consulta RDS.
  5. El resultado se guarda en ElastiCache.
  6. 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 #

ServicioTipoUso principal
Amazon RDSRelacionalSQL, transacciones, datos estructurados
Amazon AuroraRelacional avanzadaAlto rendimiento y disponibilidad
DynamoDBNoSQL clave-valor/documentosBaja latencia y escalado masivo
ElastiCacheCaché en memoriaAcelerar lecturas frecuentes
DocumentDBDocumentalDatos JSON y esquemas flexibles
NeptuneGrafosRelaciones complejas
Managed BlockchainBlockchainTrazabilidad y redes compartidas
AWS BackupProtección de datosCopias 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.

Bases de datos

Loading...