Salta el contingut

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:

  1. Identifica com arriben les dades i quin servei d'ingestió usaries (Kinesis Firehose, Lambda, o DMS). Justifica la tria.
  2. Dissenya l'estructura de carpetes de S3 per a la capa Bronze (format, particions per data).
  3. 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).
  4. 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.
  5. 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