Saltar al contenido
aprendeaws.dev

Módulo 8 · Bases de datos/Lección 49

Elegir una base de datos

Relacional o NoSQL, en tu propio servidor o administrada. Las preguntas que deciden.

Al terminar podrás

  • →Diferenciar bases relacionales y NoSQL
  • →Comparar una base de datos en EC2 con una administrada
  • →Elegir el tipo de base según el caso

Casi toda aplicación guarda datos que cambian: usuarios, pedidos, inventario, mensajes. Para eso existe la base de datos. La pregunta no es si usar una, sino cuál: hay bases que piensan en tablas relacionadas y otras que piensan en llaves, documentos o conexiones. Y hay que decidir si la administras tú o AWS.

AWS defiende la idea de las bases de datos de propósito específico (purpose-built): en lugar de forzar todo en un solo motor, eliges el que mejor encaja con cada tipo de dato y de consulta.

Relacional

Los datos viven en tablas con columnas fijas (el esquema). Las tablas se relacionan con llaves: el pedido tiene el cliente_id del cliente que lo hizo. Se consultan con SQL, que permite cruzar tablas (joins), filtrar, agrupar y sumar de cualquier forma, incluso con preguntas que no pensaste al diseñar.

Las bases relacionales garantizan transacciones: si una operación cambia varias filas, se aplican todas o ninguna. Por eso son la elección natural para dinero, inventario y todo lo que deba cuadrar. Ejemplos: MySQL, PostgreSQL, SQL Server, Oracle. En AWS: Amazon RDS y Amazon Aurora.

NoSQL y las bases especializadas

«NoSQL» agrupa bases que no usan el modelo de tablas relacionadas. Cambian flexibilidad de consulta por escala, velocidad o un modelo de datos que encaja mejor con el problema. Cada familia tiene su servicio en AWS:

Tipo de baseServicio de AWS
Llave-valor: das una llave, recibes el datoAmazon DynamoDBCarritos de compra, sesiones, perfiles
Documentos: registros JSON flexiblesAmazon DocumentDBCatálogos, contenido. Compatible con MongoDB
Grafos: nodos y relacionesAmazon NeptuneRedes sociales, recomendaciones, fraude
Columnas anchasAmazon KeyspacesCompatible con Apache Cassandra
Series de tiempo: medidas con fecha y horaAmazon TimestreamSensores IoT, métricas
En memoria: respuestas en microsegundosAmazon ElastiCache, Amazon MemoryDBCaché, marcadores, sesiones
Búsqueda: texto libre y logsAmazon OpenSearch ServiceBuscador de un sitio, análisis de logs

Para analizar grandes volúmenes de datos históricos (no para la operación diaria) existe además un almacén de datos, Amazon Redshift, que se ve en Datos y analítica.

En tu propia instancia o administrada

Puedes instalar PostgreSQL en una instancia EC2. Funciona, pero te quedas con todo el trabajo de operación. Con un servicio administrado como RDS, AWS hace la mayor parte. Esta tabla sigue la de la documentación oficial de RDS:

CriterioBase en EC2Amazon RDS
Hardware, energía y red físicaAWSAWS
Instalar y parchar el sistema operativoTúAWS
Instalar y parchar el motor de base de datosTúAWS
RespaldosTúAWS (automáticos)
Alta disponibilidadTú montas la réplica y el failoverAWS, con un clic (Multi-AZ)
EscalarTúAWS
Diseño, consultas y optimizaciónTúTú
Acceso al sistema operativoTotalNo

La base en EC2 tiene sentido cuando necesitas algo que el servicio administrado no ofrece: un motor o una versión que no soporta, acceso al sistema operativo o una configuración muy particular. Para todo lo demás, la recomendación de AWS es empezar por el servicio administrado. Es el modelo de responsabilidad compartida en acción: cuanto más administrado el servicio, menos capas te tocan.

Las preguntas que deciden

  1. 1

    ¿Los datos tienen relaciones y deben cuadrar?

    Pedidos, pagos, inventario con reportes cruzados → relacional (RDS o Aurora).
  2. 2

    ¿Siempre buscas por una llave y necesitas escala enorme?

    Millones de usuarios que leen su perfil o su carrito → DynamoDB.
  3. 3

    ¿El dato es un documento JSON que cambia de forma?

    DynamoDB o DocumentDB, si ya usas MongoDB.
  4. 4

    ¿Lo importante son las conexiones entre cosas?

    Amigos de amigos, rutas, detección de fraude → Neptune.
  5. 5

    ¿Lees lo mismo muchísimas veces?

    Pon una caché delante con ElastiCache.
  6. 6

    ¿Quieres administrar servidores?

    Si la respuesta es no (casi siempre), elige un servicio administrado.

Quiz

Pon a prueba lo que aprendiste

0 de 4 correctas · 4 sin responder

  1. 1.Una empresa quiere una base relacional y reducir al mínimo el tiempo que dedica a parches y respaldos. ¿Qué elige?

  2. 2.Con Amazon RDS, ¿qué sigue siendo responsabilidad del cliente?

  3. 3.Una red social quiere encontrar «amigos de amigos» y relaciones entre millones de usuarios. ¿Qué base es la adecuada?

  4. 4.¿Cuándo tiene sentido instalar la base de datos en una instancia EC2 en lugar de usar RDS?