Salta el contingut

U4 - Emmagatzenament i bases de dades al núvol

🎯 RA's vinculats: RA4

Connexions amb contingut previ

En aquesta unitat aplicarem coneixements apresos en blocs anteriors:

  • Xarxes virtuals (VPC, subxarxes, IGW, NGW, NACLs).
  • Seguretat (Security Groups, IAM, rols).
  • Servidors EC2 i arquitectura bàsica.
  • Funcions Lambda i monitoratge amb CloudWatch.

El que fem ara és connectar-los amb el món de l’emmagatzematge, creant sistemes que reaccionen a canvis i guarden informació persistentment.


🗂️ Introducció a l’emmagatzematge al núvol

L’emmagatzematge al núvol permet desar informació de manera segura, escalable i d’alta disponibilitat, sense necessitat de gestionar directament el maquinari físic. En lloc de discos locals, els serveis al núvol ofereixen volums, fitxers o objectes virtuals accessibles des de qualsevol lloc.

Els sistemes d’emmagatzematge d’AWS estan dissenyats sota tres pilars fonamentals:

Durabilitat

És la probabilitat que les dades no es perden amb el temps. Per exemple, Amazon S3 garanteix una durabilitat de 99.999999999 % (11 nous), ja que cada objecte es replica automàticament en múltiples servidors i zones de disponibilitat.

Disponibilitat

És la capacitat d’accedir a les dades fins i tot si hi ha fallades en un centre de dades o una zona. Els serveis d’AWS estan distribuïts geogràficament per oferir alta disponibilitat.

Escalabilitat

Permet adaptar-se automàticament al volum de dades o a la càrrega de treball sense interrupcions. El sistema “creix” o “decreix” segons les necessitats reals.

Exemple del món real

Una aplicació web que puja fotografies pot començar amb pocs usuaris i pocs GB, però amb el temps pot arribar a desenes de milers de fitxers. Amb S3, no cal canviar res de la infraestructura: el sistema creix automàticament i sense límit pràctic.

Tipus d’emmagatzematge segons el cas d’ús

Tipus Servei Característiques Casos d’ús típics
Objectes S3 HTTP(S), quasi il·limitat, cost-efectiu Web estàtica, multimèdia, backups, dades de mòbil
Blocs EBS Disc per a EC2, molt ràpid, persistent BD xicotetes/mitjanes, /var, filesystems locals
Fitxers EFS NFS gestionat, multi-instància Apps distribuïdes, contenidors, carpetes compartides

u4_1

Pràctica sugerida

En aquest punt dels continguts, es recomana fer la pràctica 0 de la unitat 4.


Amazon S3

Quan parlem de computació en el núvol, un dels serveis més utilitzats i fonamentals és Amazon S3 (Simple Storage Service). És molt probable que, siga quina siga l’aplicació que desenvolupes —una web, una API o una app mòbil—, necessite guardar fitxers d’algun tipus: imatges, vídeos, documents, logs o còpies de seguretat. S3 és el servei d’Amazon que permet fer-ho de manera segura, escalable i amb un cost molt reduït, sense haver de gestionar discs, carpetes o servidors de fitxers.

Quan penjem un arxiu a S3, en realitat l’estem convertint en un objecte dins d’un bucket. Cada bucket actua com un gran contenidor lògic dins del qual podem organitzar milers o milions de fitxers. Els buckets són globals (el seu nom ha de ser únic a tot AWS) i estan associats a una regió.

S3 no necessita cap servidor propi per funcionar: tota la infraestructura la gestiona Amazon. Això vol dir que no has d’instal·lar ni mantenir res: simplement crees un bucket, puges arxius, i els pots recuperar per URL o des del teu codi.

u4_2

S3 guarda objectes dins de buckets. Cada objecte té:

  • Key (nom/ruta), valor (bytes), metadades i, opcionalment, versió.
  • Capacitat fins a 5 TB per objecte; bucket amb capacitat pràctica “il·limitada”.
  • Accés via URL quan és públic o via SDK/CLI quan és privat.

Un objecte en S3 és accessible via una URL com:

https://nom-bucket.s3.amazonaws.com/nom-objecte

Buckets i emmagatzenament en la regió

Encara que triem la regió on s'emmagatzema el bucket, les dades es guarden de forma redundant en diferents instal·lacions.

Conceptes bàsics: buckets, objectes i metadades

En S3, tots els fitxers són objectes, i cada objecte conté:

  • Un nom o clau (key), que equivaldria a la ruta o nom del fitxer.
  • Un valor, que és el contingut binari (el fitxer real).
  • Opcionalment, metadades (informació addicional com el tipus MIME, la data o propietats personalitzades).

Els objectes viuen dins dels buckets, que són els grans contenidors. A diferència d’un sistema de fitxers tradicional, en S3 no hi ha realment carpetes: el que veiem com “carpetes” és només part del nom de la clau. Per exemple, un objecte amb la clau imatges/profile1.jpg no està dins d’una carpeta “imatges”, sinó que simplement té eixe prefix.

u4_4

Cada objecte pot tindre una mida de fins a 5 TB, i la capacitat total d’un bucket és pràcticament il·limitada. A més, S3 garanteix una durabilitat del 99,999999999% (11 nous), ja que guarda còpies redundants dels teus objectes en diverses instal·lacions dins de la mateixa regió.

Pràctica sugerida

En aquest punt dels continguts, es recomana fer la pràctica 1 de la unitat 4.

Tipus d’emmagatzematge S3: equilibrar cost i disponibilitat

No totes les dades necessiten estar disponibles amb la mateixa freqüència. AWS ofereix diferents classes d’emmagatzematge, cadascuna optimitzada per a un cas d’ús concret. Tractar d’entendre-les és essencial per optimitzar el cost i el rendiment.

Amazon S3 permet que tu tries com vols guardar cada objecte: de manera més ràpida i disponible, o més barata però menys accessible. Això ho aconsegueix gràcies a les seues classes d’emmagatzematge, que pots canviar en qualsevol moment.

Classe Descripció Cas d’ús recomanat
S3 Standard Alta disponibilitat i baix temps de resposta. Webs, aplicacions i contingut accedit sovint.
S3 Intelligent-Tiering Mou automàticament objectes entre capes segons l’ús. Dades amb accés variable o imprevisible.
S3 Standard-IA Accés infreqüent, però amb recuperació ràpida. Backups o informes ocasionals.
S3 One Zone-IA Igual que l’anterior però només en una AZ. Dades que es poden tornar a crear fàcilment.
S3 Glacier Emmagatzematge a llarg termini, amb recuperació lenta. Arxius o dades històriques.
S3 Glacier Deep Archive El més barat, recuperació d’hores. Conservació durant anys (auditories, registres).

Cicle de vida

Amb Lifecycle Management pots moure automàticament objectes de Standard → IA → Glacier → Delete per a reduir costos.

u4_3

Aquesta flexibilitat permet que els teus projectes no paguen més del necessari. Pots definir regles de cicle de vida per a que AWS moga automàticament els objectes a capes més econòmiques o fins i tot els elimine després d’un temps.

Exemple pràctic

Imagina que desenvolupes una aplicació de fotos per a mòbil. Les imatges pujades recentment podrien estar en S3 Standard durant el primer mes, després passar a Standard-IA si no s’hi accedeix, i finalment a Glacier per a arxiu. Tot això pot automatitzar-se sense tocar una línia de codi.

Pràctica sugerida

En aquest punt dels continguts, es recomana fer la pràctica 2 de la unitat 4.

Seguretat i permisos en S3

Per defecte, tots els buckets i objectes de S3 són privats. Només poden accedir els usuaris, rols o serveis als quals se’ls ha concedit permís explícitament. Aquesta és una de les claus del model de responsabilitat compartida d’AWS: Amazon protegeix la infraestructura, però tu eres responsable de qui pot llegir o escriure les teues dades.

AWS ofereix diverses capes de seguretat i control d’accés, que poden combinar-se segons el cas d’ús.

Mecanismes de control d’accés

Mecanisme Descripció breu Cas d’ús habitual
Bloqueig d’accés públic Evita qualsevol accés públic encara que hi haja permisos oberts. Recomanat per a buckets privats o de dades sensibles.
Polítiques de bucket (Bucket policies) JSON que defineix permisos per a usuaris, rols o tot el món (Principal: "*") sobre un bucket concret. Donar accés públic controlat (p. ex., per a una web estàtica).
Polítiques IAM Definixen permisos a nivell d’usuari o rol, no de bucket. Donar accés intern des d’un servei AWS (p. ex., Lambda o EC2).
ACL (Access Control Lists) Permisos heretats d’abans d’IAM, ara en desús. Només per compatibilitat o casos puntuals.
Punts d’accés (Access Points) URL dedicades amb configuració pròpia de permisos i xarxa. Quan diversos equips o aplicacions accedeixen al mateix bucket.

Bones pràctiques

  • Mantén activat el bloqueig d’accés públic excepte si és absolutament necessari desactivar-lo.

En AWS, es pot comprovar les característiques de seguretat de un bucket accedint a la pestanya Permissions

Activitat sugerida

  • Desactiva el bloqueig per al públic general i llegeix el missatge que et mostra. Com pots observar, és una acció que AWS desaconsella.

Integrant S3 amb altres serveis d'AWS

Una de les fortaleses de S3 és la seua integració nativa amb altres serveis. Cada vegada que ocorre un esdeveniment (com penjar o esborrar un objecte), pots fer que AWS execute automàticament una acció.

Servei Funció típica
AWS Lambda Executar una funció quan es puja un fitxer (p. ex., redimensionar una imatge o indexar dades).
CloudFront Distribuir contingut d’un bucket a nivell global amb millor rendiment.
SQS / SNS Notificar altres sistemes quan hi ha nous objectes.
Athena Consultar dades en CSV/JSON directament dins de S3 amb SQL.

Per fer-ho, cal accedir a la secció Event Notifications dins de la pestanya de Propierties del bucket. Des d'allí, podem crear un event de notificació per a que quan passe alguna acció (per exemple, es puja un fitxer), s'execute algun servei, com per exemple Lambda (recordeu que permetia executar codi en resposta a un event).

u4_5

Utilitat

Com podríem aprofitar açò en una aplicació web o mòbil? - Per exemple, per enviar un correu o actualitzar un registre d'una BBDD cada vegada que un usuari puja una imatge.

Pràctica sugerida

En aquest punt dels continguts, es recomana fer la pràctica 3, 4 i 5 de la unitat 4.


Emmagatzematge a nivell de bloc i fitxer: EBS i EFS

Amazon S3, que és el servei d’emmagatzematge d’objectes més utilitzat a AWS. Però S3 no és adequat per a tots els escenaris: no està pensat per a instal·lar sistemes operatius, bases de dades o aplicacions que necessiten llegir i escriure contínuament sobre un disc. Per això AWS ofereix altres dues opcions principals:

Tipus d’emmagatzematge Servei AWS Cas d’ús típic
Objectes Amazon S3 Fitxers independents (imatges, documents, backups, webs estàtiques)
Blocs Amazon EBS (Elastic Block Store) Discs virtuals per a EC2, bases de dades, aplicacions amb molta E/S
Fitxers compartits Amazon EFS (Elastic File System) Carpetes en xarxa accessibles des de diverses instàncies

Quan fer servir cadascun

  • S3: quan l’aplicació llig o escriu fitxers complets (imatges, PDFs, vídeos…).
  • EBS: quan necessites un disc per al sistema o una base de dades.
  • EFS: quan diverses instàncies necessiten accedir als mateixos fitxers simultàniament.

Mini-activitat

Observa aquestes situacions i indica quin servei faries servir i per què:

  1. Un blog Wordpress allotjat a EC2 que desa imatges pujades pels usuaris
  2. Una base de dades MongoDB dins d’una instància EC2.
  3. Un projecte on tres servidors EC2 comparteixen un directori /uploads.
  4. Una app mòbil que guarda vídeos i permet accedir-hi des del navegador.
  5. Còpia de seguretat mensual d’una base de dades antiga.

Amazon EBS: Volums, Muntatge i Snapshots

Què és Amazon EBS?

Amazon Elastic Block Store (EBS) és el sistema d’emmagatzematge de blocs persistent per a EC2. Funciona com un disc dur virtual connectat a una instància. Cada volum EBS és independent de la vida de la instància, de manera que, encara que atures o elimines l’EC2, el volum pot conservar-se i reutilitzar-se.

Durabilitat i rendiment

EBS està pensat per a dades vives: bases de dades, sistemes de fitxers, logs o qualsevol aplicació que necessite latència baixa i accés ràpid.

u4_6

Tipus de volums EBS

Tipus Descripció Rendiment aproximat Ús típic
gp3 (SSD ús general) Equilibri cost-rendiment Fins 16.000 IOPS Ús general, bases de dades petites
io2 / io2 Block Express (SSD provisionat) Rendiment alt i baixa latència Fins 64k-246k IOPS Bases de dades crítiques
st1 (HDD optimitzat per throughput) Gran volum seqüencial Fins 500 MB/s Logs, processament massiu
sc1 (HDD fred) Més econòmic, menys IOPS Fins 250 MB/s Dades poc accedides

Dada important

Per defecte, les instàncies EC2 ja tenen un volum EBS de sistema (root) on s’instal·la l’OS, però podem afegir-ne més per separar dades o ampliar espai.

Creació i gestió d'EBS

Els EBS es creen, eliminen i gestionen de forma independent al EC2. D'aquesta forma, primer es crea un volum, després s'associa a un EC2 i després caldria muntar-lo per a que el SO el reconega.

A més, també es poden crear còpies de seguretat dels volums EBS i emmagatzermar-los a S3.

Pràctica sugerida

En aquest punt dels continguts, es recomana fer la pràctica 6 i 7 de la unitat 4.


Amazon EFS

Amazon Elastic File System (EFS) és un servei d’emmagatzematge de fitxers compartits. Permet que diverses instàncies EC2 accedisquen al mateix conjunt de fitxers alhora mitjançant el protocol NFS (Network File System).

Es pot entendre com un NAS al núvol: un espai comú on moltes màquines poden llegir i escriure fitxers simultàniament.

Context

EFS és molt útil en aplicacions distribuïdes o contenidors (com Kubernetes), però no és habitual en entorns web o mòbils com els que treballarem en DAW i DAM. A més, no està disponible al laboratori d’AWS Academy, així que no el practicarem directament.

Quan s’utilitza?

Cas d’ús Explicació
Aplicacions que necessiten accés simultani a fitxers diverses instàncies web compartint configuracions o recursos
Processament de dades distribuït entorns d’anàlisi, machine learning o big data
Directori d’usuari compartit entorns corporatius amb carpetes comunes

En el nostre context docent, pots considerar EFS com una opció més, però en la pràctica, els teus projectes faran servir S3 (objectes) i EBS (blocs).

Exercici entregable

En aquest punt dels continguts, es recomana fer l'entregable PAC4 que trobareu a aules.

Curs AWS Academy Cloud Foundations

En aquest punt s'ha de realitzar el mòdul 7 (Almacenamiento) del curs d' AWS Academy Cloud Foundations. Aquest inclou un laboratori avaluable.


Bases de dades relacionals al núvol (Amazon RDS)

La majoria d’aplicacions web o mòbils necessiten un sistema de bases de dades per a guardar informació d’usuaris, contingut o configuracions. Tradicionalment, això implicava instal·lar i mantindre un servidor MySQL o PostgreSQL: actualitzacions, còpies de seguretat, configuració de xarxa, i vigilància constant del rendiment.

Recordatori

En la Unitat 3 ja vas crear una instància EC2 i vas instal·lar MySQL de manera manual. Amazon RDS permet aconseguir el mateix objectiu, però sense haver de gestionar el sistema operatiu ni el motor de la base de dades.


Què és Amazon RDS?

Amazon RDS (Relational Database Service) és un servei completament gestionat que permet desplegar bases de dades relacionals com MySQL, PostgreSQL, MariaDB, Oracle o SQL Server.

u4_8

AWS s’encarrega automàticament de:

  • Aprovisionar els recursos (CPU, memòria, disc).
  • Fer còpies de seguretat automàtiques i snapshots manuals.
  • Reparar la base de dades en cas de fallades.
  • Aplicar parxes i actualitzacions de seguretat.
  • Escalar verticalment (més potència) o horitzontalment (replicació).

Avantatges respecte a un servidor autogestionat

Aspecte EC2 amb MySQL manual Amazon RDS
Manteniment L’administrador s’encarrega de tot AWS aplica parxes automàticament
Còpies de seguretat S’han de programar manualment Backups automàtics i snapshots
Alta disponibilitat Cal muntar rèpliques a mà RDS Multi-AZ ho fa automàticament
Escalabilitat Redimensionar la instància EC2 Canvi de tipus d’instància des de la consola
Cost Més flexible però menys segur Ligerament superior però estable i segur

Components d’una instància RDS

u4_7

  • Instància RDS:Representa el servidor virtual on s’executa el motor (MySQL, PostgreSQL...).
  • Endpoint:Nom DNS que utilitzarem per connectar-nos (mi-bd.xxxxxx.us-east-1.rds.amazonaws.com).
  • Subxarxes i VPC:Sempre està dins d’una VPC i normalment en subxarxes privades.
  • Security Groups::Controlen qui pot connectar-se al port de la BBDD. 3306 (MySQL) o 5432 (PostgreSQL).
  • Snapshots:Còpies de seguretat que podem restaurar en qualsevol moment.

Seguretat bàsica

Quan creem una instància RDS, hem de decidir qui pot connectar-se. Les opcions més importants són:

  • VPC i subxarxa: normalment privada, accessible des d’una EC2 a la mateixa VPC i/o bastió.
  • Security Group: permetre el port 3306 (si és MySQL) només al SG del servidor EC2.
  • Autenticació: usuari i contrasenya d’administrador definits en crear la instància.

Compte amb la connexió pública

Evita marcar “Public access = Yes” excepte per a proves puntuals. Una base de dades mai no hauria de ser pública a Internet.

Pràctica sugerida

En aquest punt dels continguts, es recomana fer la pràctica 8, 9 i 10 de la unitat 4.


Bases de dades no relacionals al núvol (DynamoDB)

Amazon DynamoDB és el servei de base de dades NoSQL completament gestionat d’AWS. Està pensat per a aplicacions web i mòbils que necessiten rendiment alt, latència mínima i escalabilitat automàtica, sense preocupar-se per la gestió de servidors o del maquinari.

u4_9


Per què DynamoDB?

Recordatori 1er curs

En el mòdul de Bases de Dades ja has treballat amb models NoSQL com MongoDB o Firebase. DynamoDB comparteix moltes d’aquestes característiques, però destaca per la seua integració nativa amb altres serveis AWS i pel rendiment sota càrregues molt altes.

Les seues principals característiques són:

  • Gestió totalment automàtica: no cal crear instàncies, ni definir tamanys de disc, ni configurar servidors.
  • Escalabilitat automàtica: augmenta o redueix la capacitat segons el trànsit.
  • Alta disponibilitat: les dades es repliquen automàticament en tres zones de disponibilitat dins d’una mateixa regió.
  • Latència de mil·lisegons: especialment adequada per a aplicacions que necessiten respostes molt ràpides (API, jocs, IoT…).
  • Integració directa amb Lambda, API Gateway, CloudWatch, IAM, S3…

Estructura bàsica de DynamoDB

DynamoDB emmagatzema dades en taules (no en col·leccions ni documents). Cada taula està formada per ítems (similars a registres) i atributs (similars a camps).

Cada taula ha de definir una clau primària, que pot ser:

Tipus de clau Format Exemple Cas d’ús
Clau simple (Partition key) Un sol atribut user_id Cerca directa per identificador únic
Clau composta (Partition + Sort key) Dos atributs user_id + timestamp Històrics, registres per usuari, versions, etc.

Els atributs poden ser de tipus:

  • String, Number, Boolean, Binary, List, Map, Set

Exemple

{ 
    "user_id": "u123", 
    "timestamp": "2025-10-28T10:00:00", 
    "nom": "Anna Coll", 
    "ciutat": "València", 
    "compres": 12 
}

On s'indiquen les claus?

En DynamoDB no hi ha cap atribut reservat com _id (a diferència de MongoDB). Eres tu qui defineix quins camps seran les claus quan crees la taula. S'estudia més endavant.

Models de treball

Quan crees una taula, AWS et demana com vols gestionar-ne la capacitat:

Mode Descripció Quan utilitzar-lo
On-Demand AWS ajusta automàticament la capacitat segons les peticions. Ideal per a pràctiques i aplicacions variables.
Provisioned Definixes manualment la taxa de lectura/escriptura per segon. Per a entorns amb càrregues constants o cost controlat.

Per al laboratori

Tria On-Demand, ja que evita errors de capacitat i s’ajusta automàticament a l’ús (sense cost extra dins d’AWS Academy).


Seguretat i permisos

  • L’accés a DynamoDB es controla mitjançant IAM (usuari o rol).
  • Pots restringir l’accés a una taula concreta o a determinades operacions (lectura, escriptura, o totes dues).
  • DynamoDB integra CloudWatch per monitorar l’ús i el rendiment.

Casos d’ús habituals

  • Aplicacions web o mòbils amb consultes senzilles però molt freqüents.
  • API que gestionen informació d’usuaris o sessions.
  • Sistemes IoT amb registres d’esdeveniments constants.
  • Aplicacions serverless amb Lambda que guarden informació sense un servidor propi.

Mini-Activitat

Llig atentament els següents casos i indica quin tipus de clau triaries per a cada un:

Escenari Tipus de clau
1️⃣ Una aplicació de missatgeria vol guardar cada missatge amb el seu usuari i hora d’enviament. ?
2️⃣ Un sistema d’usuaris on només cal identificar cada persona pel seu user_id. ?
3️⃣ Un registre de temperatures de sensors IoT, on cada dispositiu envia dades cada minut. ?

Pràctica sugerida

En aquest punt dels continguts, es recomana fer la pràctica 11 i 12 de la unitat 4.

Curs AWS Academy Cloud Foundations

En aquest punt s'ha de realitzar el mòdul 8 (Bases de dades) del curs d' AWS Academy Cloud Foundations. Aquest inclou un laboratori avaluable.

Exercici entregable

En aquest punt dels continguts, es recomana fer l'entregable PAC5 que trobareu a aules.