Arribem al Capítol 33: Projectes per consolidar, un dels més valuosos de la Part VIII. Perquè hi ha una veritat ineludible en aquest ofici: s’aprèn construint. Pots llegir tot el llibre i entendre’l, però fins que no construeixes alguna cosa real amb les teves mans, el coneixement no s’assenta del tot. Aquest capítol proposa quatre projectes, de menor a major complexitat, que lliguen tot el que has après. Comencem pel més accessible i perfecte per a principiants: un blog serverless, on combinaràs S3, CloudFront, Lambda i DynamoDB.
Per què els projectes són tan importants
Abans del projecte, entenguem el seu valor. Llegir i entendre és necessari, però insuficient: el coneixement de veritat es consolida aplicant-lo. Construir un projecte real t’obliga a:
El que et dona construir un projecte (i la teoria no): ✓ Juntar moltes peces que has estudiat per separat ✓ Enfrontar-te a problemes reals (i resoldre’ls) ✓ Entendre de veritat com encaixen els serveis ✓ Tenir alguna cosa TANGIBLE per mostrar (portafoli) ✓ Guanyar CONFIANÇA real (no només teòrica)
Analogia: estudiar sense construir és com llegir tots els llibres sobre com anar en bici sense pujar-hi mai. Per molt que entenguis la teoria de l’equilibri i el pedaleig, no sabràs anar en bici fins que t’hi pugis, et tambalegis, potser caiguis un parell de vegades, i finalment ho aconsegueixis. Els projectes són «pujar a la bici»: on el coneixement teòric es converteix en habilitat real.
💡 Sobre aquests projectes: la idea no és donar-te el codi exacte pas a pas (això ho trobaràs en tutorials i en la documentació), sinó mostrar-te què construir, quins serveis combinar i com encaixen els conceptes del llibre. El repte d’implementar-ho és precisament on aprens.
El projecte: un blog serverless
El primer projecte és un blog serverless: una web on es poden llegir articles, construïda sense gestionar cap servidor (recorda la filosofia serverless del Capítol 14). És ideal per començar perquè és senzill, barat (gairebé tot cap a la capa gratuïta) i combina diversos serveis fonamentals de manera clara.
El que construiràs: un blog on - els visitants veuen la web (ràpida, arreu del món) - es mostren articles desats - tot SENSE servidors per mantenir (serverless)
Les peces i com encaixen
Aquest projecte combina quatre serveis que ja coneixes, cadascun amb el seu paper:
S3: allotjar la web (els fitxers estàtics)
S3 (Capítol 5) guarda els fitxers de la web (l’HTML, CSS, imatges... la part «estàtica» que no canvia). Recorda que S3 pot servir un lloc web estàtic directament. És el «magatzem» del teu blog: barat, durador i sense servidors.
CloudFront: lliurar la web ràpid arreu del món
CloudFront (subcapítol 16.2), la CDN d’AWS, serveix la web des d’ubicacions pròximes a cada visitant, fent-la ràpida globalment. A més, li dona HTTPS (recorda ACM, subcapítol 16.3). Poses CloudFront «davant» de S3.
Lambda: la lògica (la part dinàmica)
Lambda (Capítol 14) executa la lògica del blog sense servidors: per exemple, una funció que obté els articles quan algú els demana. És la part «dinàmica» (que fa coses), i s’executa només quan se la necessita, escalant sola.
DynamoDB: guardar les dades (els articles)
DynamoDB (la base de dades NoSQL serverless que vam veure al Capítol 8) guarda els articles del blog. És serverless (encaixa perfecte amb la resta), ràpida i es gestiona sola.
L’arquitectura completa
Així encaixen les quatre peces en un sistema coherent:
Visitant
│
▼
CloudFront (ràpid, global, HTTPS)
│
├──► S3 (la web: HTML, CSS, imatges)
│
└──► Lambda (la lògica: obtenir articles)
│
▼
DynamoDB (els articles desats)El visitant arriba per CloudFront; la web (de S3) es carrega ràpid; quan demana els articles, una Lambda els obté de DynamoDB. Tot serverless: sense ni un sol servidor per mantenir, escala sol i costa molt poc (pagues per ús).
El que practiques i consolides
Aquest projecte, tot i la seva senzillesa, et fa juntar i afermar molts conceptes clau:
Conceptes del llibre que consolides: - S3 i llocs web estàtics (Cap. 5) - CloudFront i CDN (Cap. 16) + HTTPS amb ACM (Cap. 16.3) - Lambda i serverless (Cap. 14) - DynamoDB / NoSQL (Cap. 8) - I tot desplegat amb Terraform! (Parts II-V)
💡 Fes-ho amb Terraform: desplega tot aquest projecte amb Terraform (el que has après a les Parts II-V), en comptes de fer-ho a mà per la consola. Així consolides alhora AWS i la infraestructura com a codi. És la millor pràctica possible: construeixes alguna cosa real i ho fas de manera professional.
Exemple del món real: algú que acaba de llegir el llibre vol afermar el que ha après i tenir alguna cosa per ensenyar a entrevistes. Decideix construir el seu blog personal com a blog serverless: desa els seus articles a DynamoDB, la lògica a Lambda, la web a S3 i la serveix amb CloudFront, tot definit amb Terraform. En construir-lo, es troba amb problemes reals (com connectar CloudFront amb S3, com donar permisos a la Lambda per llegir DynamoDB...) i en resoldre’ls entén de veritat com encaixen les peces, molt millor que llegint-ho. Acaba amb un blog real, funcionant, baratíssim, i un projecte de portafoli que demostra que sap construir a AWS amb Terraform. Aquest «aprendre fent» li dona una confiança que la teoria sola mai li hauria donat.
El que has de recordar
- S’aprèn construint: llegir i entendre és necessari però insuficient; el coneixement es consolida aplicant-lo en projectes reals. Com aprendre a anar en bici pujant-hi, no només llegint.
- El blog serverless és un projecte ideal per començar: senzill, barat (capa gratuïta) i combina serveis fonamentals sense gestionar servidors.
- Combina quatre peces: S3 (allotja la web estàtica, Cap. 5), CloudFront (la serveix ràpid i global amb HTTPS, Cap. 16), Lambda (la lògica dinàmica, Cap. 14) i DynamoDB (guarda els articles, Cap. 8).
- Arquitectura: el visitant arriba per CloudFront → web des de S3 → per a les dades, Lambda → que llegeix de DynamoDB. Tot serverless: escala sol, costa poc.
- 💡 Desplega-ho amb Terraform (Parts II-V) per consolidar AWS i la infraestructura com a codi alhora, i tenir un projecte de portafoli.
Al següent subcapítol pujarem un esglaó amb un projecte més complet: una API REST amb contenidors (ECS Fargate, RDS i ALB).
Cloud, AWS & Terraform — De zero a expert
Capítol 1 · Què és el cloud computing
- 1.1 El model client-servidor tradicional
- 1.2 Problemes que venia a resoldre el núvol
- 1.3 On-premise vs cloud vs híbrid
- 1.4 Els tres models de servei: IaaS, PaaS, SaaS
- 1.5 Els cinc pilars del cloud (segons NIST)
- 1.6 Avantatges reals: elasticitat, pagament per ús, disponibilitat global
Capítol 2 · El mercat cloud i els grans proveïdors
- 2.1 AWS, Azure i GCP: diferències i quotes de mercat
- 2.2 Per què aprendre AWS primer
- 2.3 Conceptes que són universals entre proveïdors
Capítol 3 · Regions, zones de disponibilitat i edge
- 3.1 Què és una regió AWS i com triar-la
- 3.2 Availability Zones: alta disponibilitat des del disseny
- 3.3 Edge locations i CloudFront
- 3.4 Latència, resiliència i sobirania de dades
Capítol 4 · Càlcul: EC2
- 4.1 Instàncies: tipus, famílies i quan triar cadascuna
- 4.2 AMIs, key pairs i Security Groups
- 4.3 Cicle de vida d'una instància
- 4.4 Elastic IPs i Placement Groups
- 4.5 Savings Plans vs Reserved vs On-Demand vs Spot
Capítol 5 · Emmagatzematge: S3
- 5.1 Buckets, objectes i claus
- 5.2 Classes d'emmagatzematge (Standard, IA, Glacier…)
- 5.3 Versionat i cicle de vida d'objectes
- 5.4 Polítiques de bucket i ACLs
- 5.5 Hosting de llocs web estàtics
Capítol 6 · Xarxes: VPC
- 6.1 Què és una VPC i per què la necessites
- 6.2 Subxarxes públiques i privades
- 6.3 Internet Gateway i NAT Gateway
- 6.4 Route Tables i Network ACLs
- 6.5 VPC Peering i endpoints
Capítol 7 · Identitat i accés: IAM
- 7.1 Usuaris, grups, rols i polítiques
- 7.2 El principi de mínim privilegi
- 7.3 Polítiques basades en identitat vs en recurs
- 7.4 MFA i credencials temporals (STS)
- 7.5 Bones pràctiques de seguretat IAM
Capítol 8 · Bases de dades gestionades
- 8.1 RDS: motors, Multi-AZ i rèpliques de lectura
- 8.2 Aurora i els seus avantatges sobre RDS vanilla
- 8.3 DynamoDB: model clau-valor / documents
- 8.4 ElastiCache per a memòria cau en memòria
- 8.5 Quan utilitzar cada tipus de base de dades
Capítol 9 · Per què Infraestructura com a Codi
- 9.1 Problemes del provisionament manual
- 9.2 IaC declaratiu vs imperatiu
- 9.3 Terraform vs CloudFormation vs Pulumi vs CDK
- 9.4 El cicle plan → apply → destroy
Capítol 10 · HCL: el llenguatge de Terraform
- 10.1 Blocs resource, variable, output, locals
- 10.2 Tipus de dades: string, number, bool, list, map, object
- 10.3 Expressions, referències i funcions built-in
- 10.4 Condicionals i bucles (count, for_each, for)
Capítol 11 · Providers i estat
- 11.1 Com funciona el provider d'AWS
- 11.2 El fitxer terraform.tfstate i la seva importància
- 11.3 State local vs state remot (S3 + DynamoDB)
- 11.4 Comandes essencials: init, plan, apply, destroy, fmt, validate
Capítol 12 · La teva primera infraestructura real amb Terraform
- 12.1 Crear una VPC amb subxarxes des de zero
- 12.2 Posar en marxa una instància EC2 pública
- 12.3 Associar un Security Group i una Elastic IP
- 12.4 Outputs i referències entre recursos
- 12.5 Flux de treball en equip: PR review de plans
Capítol 13 · Balanceig de càrrega i autoescalat
- 13.1 Application Load Balancer vs Network Load Balancer
- 13.2 Target Groups, listeners i regles
- 13.3 Auto Scaling Groups: polítiques i mètriques
- 13.4 Warm pools i lifecycle hooks
Capítol 14 · Serverless amb Lambda
- 14.1 El model d'execució de Lambda
- 14.2 Triggers: API Gateway, S3, DynamoDB Streams, SQS
- 14.3 Gestió de dependències i capes (Layers)
- 14.4 Cold starts i estratègies per reduir-los
- 14.5 Límits i antipatrones
Capítol 15 · Missatgeria i esdeveniments
- 15.1 SQS: cues estàndard vs FIFO, DLQ
- 15.2 SNS: topics, subscripcions, fan-out
- 15.3 EventBridge: event buses i regles
- 15.4 Patrons: pub/sub, desacoblament, saga
Capítol 16 · Lliurament de contingut i DNS
- 16.1 Route 53: tipus de registres i routing policies
- 16.2 CloudFront: distribucions, memòries cau i origins
- 16.3 ACM: certificats SSL/TLS gratuïts
- 16.4 WAF integrat amb CloudFront
Capítol 17 · Contenidors a AWS
- 17.1 Docker: repàs exprés de conceptes clau
- 17.2 ECR: registre privat d'imatges
- 17.3 ECS: task definitions, services, Fargate vs EC2
- 17.4 EKS: quan Kubernetes i quan no
Capítol 18 · Mòduls: reutilització i composició
- 18.1 Anatomia d'un mòdul Terraform
- 18.2 Variables d'entrada, outputs i dependències
- 18.3 Mòduls locals vs mòduls del Terraform Registry
- 18.4 Versionat de mòduls amb Git tags
- 18.5 Disseny de mòduls genèrics vs específics de domini
Capítol 19 · Workspaces i gestió d'entorns
- 19.1 Workspaces de Terraform: casos d'ús i limitacions
- 19.2 Estratègia de directoris per entorn (dev/stg/prod)
- 19.3 Terragrunt: DRY per a configuracions d'entorn
- 19.4 Variables d'entorn i fitxers .tfvars
Capítol 20 · Backends remots i locking
- 20.1 Configurar S3 + DynamoDB com a backend
- 20.2 State locking: evitar corrupció en equip
- 20.3 Migració d'estat entre backends
- 20.4 terraform import: portar recursos existents a l'estat
Capítol 21 · Testing d'infraestructura
- 21.1 Terraform validate i fmt en CI
- 21.2 Checkov i tfsec: anàlisi de seguretat estàtica
- 21.3 Terratest: tests d'integració en Go
- 21.4 Contract testing entre mòduls
Capítol 22 · Terraform en CI/CD
- 22.1 Pipeline bàsic: lint → plan → apply a GitHub Actions
- 22.2 Atlantis: GitOps per a Terraform
- 22.3 Terraform Cloud / HCP Terraform
- 22.4 Drift detection i reconciliació automàtica
Capítol 23 · Seguretat en profunditat
- 23.1 AWS Organizations i Service Control Policies
- 23.2 AWS Config: compliment continu
- 23.3 GuardDuty: detecció d'amenaces
- 23.4 Security Hub: visió centralitzada
- 23.5 KMS: gestió de claus i rotació
- 23.6 Secrets Manager vs Parameter Store
Capítol 24 · Observabilitat: logs, mètriques i traces
- 24.1 CloudWatch Logs, mètriques i alarmes
- 24.2 CloudWatch Dashboards i Contributor Insights
- 24.3 X-Ray: traçat distribuït
- 24.4 OpenTelemetry a AWS
- 24.5 Managed Grafana i Managed Prometheus
Capítol 25 · Optimització de costos
- 25.1 AWS Cost Explorer i pressupostos amb alertes
- 25.2 Trusted Advisor i Compute Optimizer
- 25.3 Rightsizing: com detectar sobredimensionament
- 25.4 Savings Plans vs Reserved Instances: decisió estratègica
- 25.5 FinOps: cultura i processos per controlar la despesa
Capítol 26 · Alta disponibilitat i disaster recovery
- 26.1 RTO i RPO: definir els objectius
- 26.2 Estratègies: backup/restore, pilot light, warm standby, multi-site
- 26.3 Route 53 health checks i failover automàtic
- 26.4 AWS Backup: política centralitzada de còpies
Capítol 27 · Well-Architected Framework d'AWS
- 27.1 Els sis pilars: excel·lència operacional, seguretat, fiabilitat, eficiència de rendiment, optimització de costos, sostenibilitat
- 27.2 Well-Architected Tool: revisions formals
- 27.3 Com aplicar el framework en decisions de disseny
Capítol 28 · Arquitectures serverless a escala
- 28.1 Event-driven architecture amb Lambda + EventBridge
- 28.2 Saga pattern per a transaccions distribuïdes
- 28.3 Step Functions: orquestració de workflows complexos
- 28.4 Lambda@Edge i CloudFront Functions
Capítol 29 · Plataformes de dades a AWS
- 29.1 Data Lake amb S3, Glue i Athena
- 29.2 Kinesis Data Streams i Firehose per a streaming
- 29.3 Redshift: data warehousing a escala
- 29.4 Lake Formation: govern del dada
Capítol 30 · Multi-compte i landing zones
- 30.1 Per què separar workloads en comptes diferents
- 30.2 AWS Control Tower i Account Factory
- 30.3 Gestió centralitzada de logs i seguretat
- 30.4 Terraform a escala multi-compte amb mòduls compartits
Capítol 31 · Platform Engineering i Internal Developer Platform
- 31.1 Golden paths i abstraccions sobre Terraform
- 31.2 Service Catalog d'AWS
- 31.3 Backstage com a portal de desenvolupadors
- 31.4 Mòduls Terraform com a producte intern
Capítol 32 · Certificacions AWS rellevants
- 32.1 Cloud Practitioner: val la pena?
- 32.2 Solutions Architect Associate → Professional
- 32.3 DevOps Engineer Professional
- 32.4 Specialty: Security, Database, Networking
- 32.5 HashiCorp Terraform Associate
Capítol 33 · Projectes per consolidar el que s'ha après
- 33.1 Projecte 1: blog serverless (S3 + CloudFront + Lambda + DynamoDB)
- 33.2 Projecte 2: API REST amb ECS Fargate + RDS + ALB
- 33.3 Projecte 3: plataforma de dades amb Glue + Athena + Redshift
- 33.4 Projecte 4: landing zone multi-compte amb Terraform i Control Tower
