AWS per a Big Data
Amazon Web Services (AWS) és el proveïdor de cloud líder al mercat amb una quota de gairebé el 32% el 2025 (Synergy Research Group). Per als equips de dades, AWS ofereix un ecosistema complet i madur que permet construir arquitectures de Data Lake, Data Warehouse i Lakehouse sense gestionar ni un sol servidor físic. Entendre quins serveis existeixen, quin problema resol cadascun i quan convé usar-los és una competència fonamental per a qualsevol professional de Big Data.
Per qué el cloud per a Big Data
Abans del cloud, muntar un sistema de Big Data requeria una inversió inicial molt elevada: servidors físics, llicències, rack, refrigeració, personal d'operacions. Avui, tota aquesta infraestructura es consumeix com un servei, sota un model de pagament per ús.
Avantatges del cloud per a Big Data
Elasticitat i escalat automàtic
Un clúster Spark local té un nombre fix de nodes. Si arriben el doble de dades, el sistema col·lapsa o cal esperar mesos a ampliar el hardware. Al cloud, es pot doblar la capacitat de còmput en minuts i reduir-la de nou quan no cal. Amazon EMR o Redshift poden escalar horitzontalment de forma automàtica o manual en pocs minuts.
Model pay-per-use
Amb un servidor físic, el cost és fix independentment de l'ús. Al cloud, es paga exactament el que es consumeix. Amazon Athena, per exemple, cobra per terabyte escanejat: si no s'executen consultes, no es paga res. Això fa el Big Data accessible a empreses de qualsevol mida.
Serveis gestionats
Gestionar un clúster Hadoop o Kafka requereix coneixements profunds d'operació de sistemes, alta disponibilitat, pegats de seguretat i còpies de seguretat. Els serveis gestionats (Amazon MSK per a Kafka, Amazon EMR per a Spark, Amazon Redshift) delega tota aquesta operació a AWS, permetent que l'equip de dades es concentri en el valor analític.
Time-to-market
Amb el cloud, un arquitecte de dades pot tenir un Data Lake completament funcional en un dia. Sense cloud, el mateix projecte podria trigar sis mesos de planificació, aprovisionament i configuració.
flowchart TD
ON["On-premise\nInversió inicial alta\nEscalat lent\nGestió manual"]
CL["Cloud AWS\nPay-per-use\nEscalat automàtic\nServeis gestionats"]
ON -->|"Migració al cloud"| CL
CL --> S3["S3\nEmmagatzematge"]
CL --> COMP["EMR / Glue\nCòmput"]
CL --> DW["Redshift\nData Warehouse"]
CL --> Q["Athena\nQuery ad-hoc"]
CL --> STREAM["Kinesis\nStreaming"]
Amazon S3 — Object Storage
Amazon Simple Storage Service (S3) és la pedra angular de qualsevol arquitectura de Big Data a AWS. És un servei d'emmagatzematge d'objectes: no és un sistema de fitxers tradicional, sinó un magatzem de parells clau-valor on cada objecte té un nom únic (la clau) i un contingut binari (el valor).
Conceptes fonamentals
Buckets i objectes
Un bucket és el contenidor de nivell superior. El nom del bucket ha de ser globalment únic a tot AWS. Dins d'un bucket, els objectes s'identifiquen per una clau (key) que pot simular una jerarquia de carpetes usant la barra inclinada com a separador: dades/vendes/2026/01/vendes_2026-01-15.parquet.
Un objecte pot tenir fins a 5 TB de mida. S3 és un sistema pla (no jeràrquic en realitat), però les consoles i eines el presenten com un sistema de carpetes per facilitar la navegació.
Durabilitat i disponibilitat
S3 ofereix una durabilitat del 99.999999999% (onze nines). Emmagatzema múltiples còpies de cada objecte distribuïdes per almenys tres zones de disponibilitat (Availability Zones) dins d'una mateixa regió d'AWS. La pèrdua d'objectes és pràcticament impossible.
Classes d'emmagatzematge
S3 ofereix diverses classes d'emmagatzematge amb preus i latències molt diferents. Triar la classe adequada és important per optimitzar el cost.
| Classe | Cas d'ús | Latència d'accés | Preu aprox. (GB/mes) |
|---|---|---|---|
| S3 Standard | Dades actives, capa Bronze/Silver | Mil·lisegons | $0.023 |
| S3 Standard-IA | Dades accedides mensualment | Mil·lisegons | $0.0125 |
| S3 One Zone-IA | Dades secundàries, una sola AZ | Mil·lisegons | $0.010 |
| S3 Glacier Instant | Arxiu amb recuperació immediata | Mil·lisegons | $0.004 |
| S3 Glacier Flexible | Arxiu a llarg termini | 1-12 hores | $0.0036 |
| S3 Glacier Deep Archive | Arxiu màxim (regulatori) | 12-48 hores | $0.00099 |
Lifecycle policies
Les lifecycle policies permeten moure automàticament els objectes entre classes d'emmagatzematge en funció de la seva antiguitat. Per exemple: un objecte arriba a S3 Standard, als 30 dies passa a S3-IA i als 365 dies es mou a Glacier. Això automatitza el control de costos sense intervenció manual.
S3 com a Data Lake
S3 és el format ideal per a la capa d'emmagatzematge d'un Data Lake per diversos motius:
- Desacoblament còmput/emmagatzematge: els clústers Spark (EMR, Glue) poden llegir de S3 i escalar independentment de l'emmagatzematge.
- Compatibilitat universal: tots els serveis AWS de Big Data (Athena, Redshift Spectrum, Glue, EMR, SageMaker) llegeixen de S3 nativament.
- Format agnòstic: S3 emmagatzema qualsevol format (CSV, JSON, Parquet, ORC, Avro, Delta Lake, Iceberg).
- Escala il·limitada: no hi ha límit de capacitat ni de nombre d'objectes.
S3 Select
S3 Select permet executar consultes SQL senzilles directament sobre el contingut d'un objecte S3 (CSV, JSON, Parquet) sense descarregar-lo sencer. Redueix la transferència de dades i els costos d'Athena per a consultes de filtrat simple.
Amazon RDS — Bases de dades relacionals gestionades
Amazon Relational Database Service (RDS) és el servei de bases de dades relacionals gestionades d'AWS. Suporta sis motors: Amazon Aurora (MySQL i PostgreSQL compatible), MySQL, MariaDB, PostgreSQL, Oracle i Microsoft SQL Server.
Qué gestiona RDS per tu
RDS s'encarrega automàticament de:
- Aprovisionament i configuració del servidor
- Pegats de sistema operatiu i motor de base de dades
- Còpies de seguretat automàtiques (fins a 35 dies de retenció)
- Alta disponibilitat amb Multi-AZ (rèplica síncrona a una altra zona de disponibilitat)
- Monitorització amb CloudWatch
Multi-AZ i Read Replicas
Multi-AZ manté una còpia secundària sincronitzada a una zona de disponibilitat diferent. En cas de fallada de la instància principal, el failover es produeix automàticament en menys de 60 segons. Multi-AZ és per a disponibilitat, no per a rendiment.
Read Replicas permeten crear fins a 15 còpies de lectura (asíncrones) de la base de dades principal. Les aplicacions analítiques o els informes poden llegir de les rèpliques en lloc de la instància principal, reduint la càrrega operacional. Les Read Replicas es poden promoure a instàncies principals si cal.
Quan usar RDS vs autogestió
| Criteri | RDS | EC2 + BD manual |
|---|---|---|
| Gestió operacional | Mínima | Alta |
| Personalització avançada | Limitada | Màxima |
| Cost (gran escala) | Més alt | Pot ser menor |
| Time-to-market | Molt ràpid | Lent |
| Cas d'ús recomanat | OLTP estàndard | Configuracions molt específiques |
En arquitectures de Big Data, RDS s'usa típicament com a font de dades (sistema OLTP operacional), no com a sistema analític. Les dades es repliquen cap al Data Lake (S3) o al Data Warehouse (Redshift) per a l'anàlisi.
Amazon Redshift — Data Warehouse MPP
Amazon Redshift és el servei de Data Warehouse (magatzem de dades analític) gestionat d'AWS. Usa processament massivament paral·lel (MPP) i emmagatzematge columnar per executar consultes analítiques sobre petabytes de dades en pocs segons.
Arquitectura de Redshift
flowchart TD
CLIENT["Client / BI Tool\n(Tableau, Power BI, Superset)"]
LEAD["Node Líder\n(Leader Node)\nPlanifica i agrega"]
C1["Node de còmput 1\nRA3.xlplus\n32 GB RAM"]
C2["Node de còmput 2\nRA3.xlplus\n32 GB RAM"]
C3["Node de còmput N\n..."]
S3["Amazon S3\n(Redshift Managed Storage)"]
CLIENT --> LEAD
LEAD --> C1
LEAD --> C2
LEAD --> C3
C1 <--> S3
C2 <--> S3
C3 <--> S3
El node líder rep les consultes SQL dels clients, construeix el pla d'execució i distribueix el treball entre els nodes de còmput. Cada node de còmput processa el seu fragment de les dades en paral·lel i retorna els resultats parcialment agregats al líder, que construeix la resposta final.
Tipus de nodes RA3
Els nodes RA3 (la generació actual) desacoblen el còmput de l'emmagatzematge: les dades es guarden a Amazon S3 (Redshift Managed Storage) i els nodes carreguen en memòria local el que necessitin. Això permet escalar còmput i emmagatzematge independentment.
| Node RA3 | vCPU | RAM | Emmagatzematge gestionat |
|---|---|---|---|
| ra3.xlplus | 4 | 32 GB | Fins a 32 TB |
| ra3.4xlarge | 12 | 96 GB | Fins a 128 TB |
| ra3.16xlarge | 48 | 384 GB | Fins a 512 TB |
Redshift Spectrum
Redshift Spectrum permet executar consultes SQL sobre dades que estan a S3 directament, sense importar-les a Redshift. Això permet combinar dades "calentes" (dins de Redshift) amb dades "fredes" (arxivades a S3) en una sola consulta JOIN, cosa que seria molt costosa si calgués importar totes les dades a Redshift.
-- Consulta que combina dades dins de Redshift (fact_vendes_recent)
-- amb dades a S3 (spectrum.fact_vendes_historic)
SELECT
r.any_venda,
SUM(r.import + s.import) AS total_import
FROM vendes.fact_vendes_recent r
JOIN spectrum.fact_vendes_historic s ON r.id_producte = s.id_producte
GROUP BY 1
ORDER BY 1;
Redshift Serverless
Redshift Serverless elimina la necessitat de provisionar i gestionar nodes. AWS escala automàticament la capacitat en funció de la càrrega i cobra per segon de còmput consumit (Redshift Processing Units, RPU). És ideal per a càrregues irregulars o analítica ad-hoc on no val la pena pagar per un clúster dedicat tot el temps.
AWS Glue — ETL gestionat
AWS Glue és el servei d'ETL (Extract, Transform, Load) gestionat d'AWS. Permet construir pipelines de dades sense gestionar infraestructura de Spark, i inclou dos components clau: el Data Catalog i els Glue Jobs.
Glue Data Catalog
El Data Catalog és un repositori de metadades centralitzat que emmagatzema informació sobre la ubicació, el format i l'esquema de les dades. Funciona com a "metastore" compatible amb Apache Hive, cosa que permet que Athena i EMR el consultin per saber on estan les dades i quina estructura tenen.
Glue Crawlers
Els Crawlers recorren automàticament les fonts de dades (S3, RDS, Redshift, etc.), detecten el format i l'esquema, i actualitzen el Data Catalog sense intervenció manual. Per exemple, si arriben nous fitxers Parquet a s3://datalake/bronze/vendes/any=2026/, el Crawler detecta les noves particions i les afegeix al catàleg automàticament.
Glue Jobs — Spark gestionat
Els Glue Jobs executen codi PySpark o Scala sobre un clúster Spark gestionat per AWS. No cal aprovisionar ni configurar el clúster: Glue s'encarrega de tot. El Glue Job s'inicia, executa el codi i allibera els recursos quan acaba.
DynamicFrames vs DataFrames
Glue introdueix el concepte de DynamicFrame, que és una extensió del DataFrame de Spark dissenyada per gestionar esquemes inconsistents (dades semiestructurades on no tots els registres tenen els mateixos camps). Els DynamicFrames es poden convertir a DataFrames estàndard per usar tota la funcionalitat de Spark.
# Exemple bàsic de Glue Job
import sys
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from awsglue.job import Job
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
# Llegir des del Data Catalog (S3 de fons)
datasource = glueContext.create_dynamic_frame.from_catalog(
database="datalake_bronze",
table_name="vendes_raw"
)
# Aplicar transformació: filtrar registres invàlids
filtered = Filter.apply(
frame=datasource,
f=lambda x: x["import_net"] is not None and x["import_net"] > 0
)
# Escriure a la capa Silver en format Delta Lake
glueContext.write_dynamic_frame.from_options(
frame=filtered,
connection_type="s3",
connection_options={"path": "s3://datalake/silver/vendes/"},
format="parquet"
)
Amazon Athena — SQL sobre S3
Amazon Athena és un servei de consulta interactiva que permet executar SQL estàndard directament sobre fitxers emmagatzemats a S3, sense moure les dades ni aprovisionar cap clúster. Internament, usa Trino (antigament Presto) com a motor de consultes distribuïdes.
Model de costos
Athena cobra per la quantitat de dades escanejaes per la consulta: $5 per terabyte escanejat. Aquí rau la importància del format Parquet o ORC: una consulta sobre 1 TB de dades en CSV pot escanejat tot 1 TB, però la mateixa consulta sobre Parquet (amb columnar pruning i compressió) pot escanejat menys de 50 GB, reduint el cost en un factor 20.
Integració amb Glue Data Catalog
Athena utilitza el Glue Data Catalog com a metastore. Quan el Crawler de Glue detecta nous fitxers i actualitza el catàleg, Athena pot consultar-los immediatament sense cap configuració addicional.
Formats suportats
| Format | Rendiment | Compressió | Recomanat per a |
|---|---|---|---|
| Parquet | Excel·lent | Alta (Snappy/Zstd) | Analítica en producció |
| ORC | Excel·lent | Alta | Hadoop legacy |
| CSV | Dolent | Cap/Gzip | Dades en brut (Bronze) |
| JSON | Regular | Variable | Events semiestructurats |
| Avro | Bo | Bona | Streaming Kafka |
Amazon Kinesis — Streaming de dades
Amazon Kinesis és la família de serveis d'AWS per al processament de dades en temps real. Inclou tres productes principals amb casos d'ús ben diferenciats.
Kinesis Data Streams
Kinesis Data Streams és un servei de streaming de baix nivell, similar conceptualment a Apache Kafka. Les dades s'organitzen en shards (particions) i es retenen entre 24 hores i 365 dies. Els consumidors llegeixen les dades de manera independent, cosa que permet múltiples aplicacions consumir el mateix flux de dades.
Cas d'ús típic: ingestió de logs d'aplicació en temps real, events de clickstream d'una web.
Kinesis Data Firehose
Firehose és un servei de lliurament gestionat: pren un flux de dades i el desa automàticament a una destinació (S3, Redshift, Elasticsearch, Splunk) sense que l'equip de dades hagi d'escriure codi de consumidor. Opcionalment, pot transformar les dades en trànsit usant Lambda o convertir JSON a Parquet automàticament.
Cas d'ús típic: ingestió de logs de servidor directament a S3 en format Parquet, llest per a Athena.
Kinesis Data Analytics
Kinesis Data Analytics permet executar SQL o codi Apache Flink sobre un flux de Kinesis Data Streams en temps real. S'usa per a agregacions en finestres de temps (windowing), detecció d'anomalies o alertes basades en llindars.
flowchart LR
FONT["Sensors IoT\nLogs servidor\nClickstream web"]
KDS["Kinesis\nData Streams"]
KF["Kinesis\nFirehose"]
KA["Kinesis\nData Analytics\n(Flink/SQL)"]
S3["Amazon S3\nBronze Layer"]
RD["Amazon Redshift"]
ALERT["Alertes\nLambda / SNS"]
FONT --> KDS
KDS --> KF
KDS --> KA
KF --> S3
KF --> RD
KA --> ALERT
S3 -->|"Athena / Glue"| RD
Amazon EMR — Hadoop i Spark gestionats
Amazon Elastic MapReduce (EMR) és el servei d'AWS per a clústers Hadoop, Spark, Hive, Presto i altres eines de l'ecosistema Apache. Permet aprovisionar un clúster de centenars de nodes en minuts, executar el treball de processament i aturar el clúster quan acabi.
Casos d'ús d'EMR
- Processament batch de grans volums (centenars de TB de logs)
- Entrenament de models de Machine Learning a escala (MLlib)
- Transformacions complexes de dades que requereixen el control total de Spark
- Migració de cargas Hadoop on-premise al cloud
EMR vs Glue: quan usar cadascun
| Criteri | AWS Glue | Amazon EMR |
|---|---|---|
| Configuració | Zero configuració | Configurable completament |
| Flexibilitat | Limitada al Glue framework | Total (qualsevol framework Spark) |
| Cost | Més alt per unitat de còmput | Més baix per unitat de còmput |
| Cas d'ús recomanat | ETL estàndard gestionat | Processament complex, investigació |
| Corba d'aprenentatge | Baixa | Alta |
Arquitectura típica de Data Lake a AWS
flowchart TD
subgraph INGESTIO["Ingestió"]
RDS_OP["RDS / Aurora\n(OLTP operacional)"]
API["APIs externes\n(REST, webhooks)"]
IOT["Sensors IoT\nLogs de servidor"]
end
subgraph BRONZE["Bronze — S3 Raw"]
S3B["s3://datalake/bronze/\nDades en brut\n(JSON, CSV, Parquet)"]
end
subgraph ETL["Transformació"]
GLUE["AWS Glue\n(ETL PySpark)"]
CATALOG["Glue Data Catalog\n(Metastore)"]
end
subgraph SILVER["Silver — S3 Cleansed"]
S3S["s3://datalake/silver/\nDades netes\n(Parquet particionat)"]
end
subgraph GOLD["Gold — Serving"]
REDSHIFT["Amazon Redshift\n(Data Warehouse)"]
ATHENA["Amazon Athena\n(Consultes ad-hoc)"]
end
subgraph CONSUM["Consum"]
QS["Amazon QuickSight\n(BI)"]
NB["SageMaker Notebooks\n(Data Science)"]
EXT["Power BI / Tableau\n(via JDBC)"]
end
RDS_OP -->|"DMS / Glue"| S3B
API -->|"Lambda / Firehose"| S3B
IOT -->|"Kinesis Firehose"| S3B
S3B --> GLUE
GLUE <--> CATALOG
GLUE --> S3S
S3S --> REDSHIFT
S3S --> ATHENA
CATALOG --> ATHENA
REDSHIFT --> QS
REDSHIFT --> EXT
ATHENA --> NB
ATHENA --> QS
Comparativa de costos aproximats (2026)
| Servei | Unitat | Cost aproximat | Notes |
|---|---|---|---|
| S3 Standard | GB/mes | $0.023 | Emmagatzematge base |
| S3 Glacier | GB/mes | $0.004 | Arxiu de llarg termini |
| Athena | TB escanejat | $5.00 | Parquet redueix el cost 10-20x |
| Glue | DPU-hora | $0.44 | 1 DPU = 4 vCPU + 16 GB RAM |
| Redshift RA3 | node/hora | $0.38–$3.26 | Depèn del tipus de node |
| Redshift Serverless | RPU-hora | $0.36 | Pay-per-query |
| Kinesis Firehose | GB ingerit | $0.028 | Primer 500 TB/mes |
| EMR (m5.xlarge) | hora | $0.048 | Preu EMR + EC2 |
Optimitzar costos a AWS
Les dues accions d'impacte major en el cost d'una arquitectura AWS de Big Data són: (1) usar format Parquet particionat per a totes les dades de S3 per reduir el cost d'Athena, i (2) usar Lifecycle Policies per moure dades antigues de S3 Standard a Glacier automàticament. Conjuntament poden reduir el cost total entre un 40% i un 70%.
AC5074/04/01 — Miniactivitat
Una empresa de serveis digitals vol processar logs de servidors web (format Apache Combined Log, ~10 GB/dia) i fer analítica mensual sobre patrons d'accés, errors 5xx i temps de resposta per URL.
Dissenya l'arquitectura AWS completa per a aquest cas d'ús:
- Identifica com arriben les dades i quin servei d'ingestió usaries (Kinesis Firehose, Lambda, o DMS). Justifica la tria.
- Dissenya l'estructura de carpetes de S3 per a la capa Bronze (format, particions per data).
- Decideix si usaries Glue o EMR per a la transformació Bronze → Silver. Justifica la tria en base al volum (10 GB/dia) i la freqüència (batch nocturn).
- Per a la capa Gold: decidiràs usar Redshift o Athena per a les consultes analítiques mensuals? Explica les raons tècniques i econòmiques.
- Calcula el cost mensual aproximat (emmagatzematge + càrrega + consultes) assumint que els logs es mantenen 12 mesos en Hot i 3 anys en Glacier.
Format de lliurament: document text (màx. 2 pàgines) amb un diagrama d'arquitectura ASCII o Mermaid i una taula de costos estimats.
Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027