Almacenamiento y bases de datos
Introducción
A menudo se considera que la computación es el escaparate de la nube: lanzar una instancia de EC2 en unos minutos o desplegar una función de Lambda en unos segundos impresiona. Pero lo que hace que estos servicios sean realmente útiles es su capacidad para conservar los datos que manejan. A nadie le interesa una página web que pierda sus imágenes cada vez que se reinicia; una aplicación bancaria incapaz de almacenar sus transacciones sería inutilizable. Por eso, el almacenamiento y las bases de datos constituyen el otro pilar fundamental de AWS.
En el mundo tradicional, el almacenamiento era un ámbito en sí mismo. Las empresas invertían en bahías SAN o NAS, contrataban a expertos capaces de manejar RAID, IOPS y LUN, y pagaban un alto precio por la resiliencia prometida por los fabricantes. Cada ampliación de capacidad requería un pedido, una entrega y, a veces, varias semanas de espera. En la nube, AWS ha transformado por completo este paradigma: el almacenamiento se convierte en un servicio consumible bajo demanda, elástico y facturado por uso.
Este capítulo explora las principales familias de almacenamiento y bases de datos que ofrece AWS. Veremos cómo Amazon S3 se ha convertido en la caja fuerte universal de la nube, cómo EBS, EFS y FSx satisfacen las necesidades más tradicionales de almacenamiento en bloques y archivos...
Amazon S3: almacenamiento de objetos y buenas prácticas
Cuando Amazon presentó el servicio Simple Storage Service (S3) en 2006, supuso un auténtico punto de inflexión en la forma de concebir el almacenamiento informático. En aquella época, gestionar datos significaba comprar discos, configurar bahías RAID, comprobar cada noche que las copias de seguridad se realizaban correctamente y, a menudo, cruzar los dedos para que el hardware no fallara. Con S3, todo eso quedó atrás: bastaba con llamar a un API para guardar un archivo en la nube y tener la seguridad de que estaría disponible de forma duradera, sin intervención humana.
Eso fue lo que propició el éxito inmediato de S3: tras su aparente simplicidad se esconde un mecanismo de una potencia formidable. S3 se ha convertido en un pilar de Internet, utilizado por millones de empresas, desde la pequeña startup que aloja su página web estática hasta los gigantes del streaming, que almacenan en él petabytes de vídeos.
1. Un modelo diferente: el almacenamiento de objetos
Para entender S3, primero hay que alejarse del modelo clásico del disco duro o del NAS. En un disco duro, los datos se organizan en bloques. En un NAS, se jerarquizan en carpetas y archivos. S3, por su parte, se basa en otra lógica: la del objeto.
Un objeto se compone del propio archivo, de metadatos y de una clave única que lo identifica. Al contrario de lo que sugiere la consola de AWS, en realidad no existen carpetas. Cuando ves "images/2025/photo.png", no se trata de una ruta, sino simplemente de una clave que contiene "/". Esta diferencia puede parecer insignificante, pero lo cambia todo. De hecho, en S3, la clave es su verdadera jerarquía. Diseñar el esquema de claves equivale a definir la forma en que los datos se podrán recuperar, enumerar, analizar o archivar.
Por este motivo, un bucket de S3 no es un simple "directorio en la nube", sino un modelo de datos. Una mala elección de claves hace que las operaciones resulten costosas y poco eficientes. Por el contrario, una convención bien pensada desde el principio (por ejemplo, un prefijo temporal logs/año/mes/día/…) permite procesar miles...
Almacenamiento en bloques y archivos: EBS, EFS y FSx
Aunque S3 es el armario universal de la nube, no satisface todas las necesidades. Algunas aplicaciones exigen un comportamiento de disco tradicional, otras requieren un sistema de archivos compartido y otras, además, buscan en AWS entornos de almacenamiento especializados idénticos a los de su centro de datos. Para cubrir este espectro, AWS ofrece tres grandes familias: EBS, EFS y FSx.
1. Amazon EBS: el disco vinculado a las instancias
Amazon EBS (Elastic Block Store) es, sin duda, el servicio más parecido a lo que conocemos en entornos locales: proporciona un volume bloc, asociado a una instancia EC2, que se comporta como un disco duro o un SSD. Se puede formatear, crear particiones, montar un sistema de archivos y utilizarlo como cualquier dispositivo de almacenamiento local.
La ventaja de EBS reside en su flexibilidad. Un volumen se puede redimensionar en tiempo real, se pueden crear instantáneas, replicarlo y cifrarlo sin especial esfuerzo. Pero, sobre todo, AWS ofrece diferentes tipos de volúmenes EBS adaptados a cada necesidad:
-
Los volúmenes gp3 (de uso general) ofrecen un buen equilibrio entre precio y rendimiento, con la posibilidad de ajustar de forma independiente la capacidad y las IOPS.
-
Los volúmenes io2 están diseñados para bases de datos críticas: permiten aprovisionar con precisión el número de IOPS y garantizan una latencia estable.
-
Los volúmenes st1y sc1 son discos HDD más...
Bases de datos relacionales: RDS y Aurora
Desde hace más de cuarenta años, las bases de datos relacionales ocupan un lugar central en la informática. Desde la gestión de existencias hasta los sistemas bancarios, pasando por las aplicaciones web y móviles, se han convertido en el estándar de facto para almacenar datos estructurados. Las empresas conocen bien sus motores (MySQL, PostgreSQL, Oracle, SQL Server) y los administradores de bases de datos (DBA) dedican gran parte de su carrera a instalarlos, mantenerlos y optimizarlos.
En el entorno on-premise, esto implica gestionar servidores costosos, aplicar parches de seguridad con regularidad, planificar copias de seguridad y restauraciones, configurar la alta disponibilidad y esperar que los discos aguanten el tipo. Es una tarea que requiere mucho tiempo, es propensa a errores y exige unos conocimientos especializados poco comunes.
AWS ha simplificado este modelo con el lanzamiento de Amazon RDS (Relational Database Service): un servicio gestionado que se encarga de la mayoría de estas limitaciones operativas. Unos años más tarde, Amazon dio un paso más allá con la creación de Aurora, una base de datos relacional diseñada para la nube, compatible con MySQL y PostgreSQL, pero dotada de una arquitectura de almacenamiento completamente rediseñada.
1. Amazon RDS: delegar la administración
Amazon RDS permite implementar en pocos minutos una base de datos relacional en AWS, sin tener que preocuparse por la instalación ni el mantenimiento del motor. Es compatible con los principales...
DynamoDB: el NoSQL sin servidor
No todos los datos se adaptan bien al modelo relacional. En algunas situaciones, la rigidez de los esquemas SQL o la complejidad de las uniones se convierten en un obstáculo. ¿Qué hacer cuando una aplicación debe gestionar millones de consultas por segundo, con una latencia constante de unos pocos milisegundos, y los datos evolucionan demasiado rápido como para encajarlos en tablas tradicionales? Para dar respuesta a este tipo de problemas, Amazon lanzó DynamoDB, una base de datos NoSQL totalmente gestionada, que se basa en un modelo de clave-valor y de documentos.
1. Una base de datos diseñada para la escalabilidad
La historia de DynamoDB se remonta a la propia Amazon. A principios de la década de 2000, la empresa buscaba una solución para gestionar su catálogo mundial de productos, con actualizaciones frecuentes, millones de consultas simultáneas y requisitos de disponibilidad casi totales. Las bases de datos relacionales tradicionales ya no daban la talla. Los ingenieros diseñaron entonces Dynamo, un sistema distribuido interno cuyos principios inspiraron DynamoDB.
Este servicio, disponible para el público desde 2012, combina dos promesas sencillas:
-
latencia constante en milisegundos, independientemente del tamaño de la base de datos;
-
escalabilidad automática, sin intervención del usuario.
Por lo tanto, DynamoDB es serverless: no hay que instalar ningún servidor, ni gestionar ningún clúster, ni replicar ningún índice manualmente.
2. El modelo de datos
DynamoDB es una base de datos de clave-valor y de documentos. Cada elemento se almacena en una tabla y se identifica mediante una clave primaria:
-
o bien una clave simple...
Data Lakes y análisis
El volumen de datos generados por las empresas se está disparando: registros de aplicaciones, eventos de IoT, clics de los usuarios, transacciones financieras, imágenes, vídeos, etc. Almacenarlos es solo el primer paso. Aprovecharlos es el verdadero reto. Aquí es donde entra en juego el concepto de "data lake", en el que AWS se ha especializado.
Un "data lake" es un repositorio centralizado que alberga datos sin procesar, semiestructurados y estructurados, procedentes de múltiples fuentes. A diferencia de un almacén de datos tradicional, no impone ningún esquema en el momento de la ingesta. En él se pueden depositar archivos CSV, JSON, Parquet, imágenes o vídeos, sin necesidad de transformar esos datos de inmediato. Solo en el momento de su explotación se aplica un esquema, según las necesidades.
En AWS, el núcleo del data lake es Amazon S3. Desempeña el papel de receptáculo universal, duradero, escalable y económico. Pero un data lake no es solo una cuestión de almacenamiento. Es un ecosistema completo, en el que S3 no es más que la base.
1. El valor del esquema "on read"
La filosofía del data lake se basa en la idea del "schema-on-read". En un almacén de datos tradicional ("schema-on-write"), hay que transformar y normalizar los datos antes de cargarlos. En un data lake, por el contrario, se cargan los datos tal y como están y luego se aplica un esquema en el momento de la lectura.
Este...