Tanquem el Capítol 30 ajuntant els dos grans fils del llibre: d’una banda, Terraform (la infraestructura com a codi, que dominem a les Parts II-V) i, de l’altra, l’estructura multi-compte que acabem de veure. La pregunta natural és: si gestionem tota la nostra infraestructura amb Terraform, i ara tenim molts comptes, com apliquem Terraform de manera ordenada a tota aquesta estructura? Aquí és on tot el que hem après convergeix en una pràctica de nivell expert.
El repte: Terraform sobre desenes de comptes
Fins ara, implícitament, hem fet servir Terraform sobre un compte. Però una empresa amb l’estructura del subcapítol 30.1 té desenes de comptes (per entorn, equip, projecte). Gestionar la infraestructura de totes elles amb Terraform, de manera coherent i sense caos, requereix aplicar bé les tècniques que ja coneixes. La bona notícia: ja tens totes les peces, només cal combinar-les a escala.
El repte: aplicar Terraform de manera ordenada a: compte dev-equipA compte prod-equipA compte dev-equipB compte prod-equipB ... (desenes de comptes) → sense duplicar codi, sense barrejar estats, amb consistència
Les peces que ja coneixes (i que ara encaixen)
El bonic d’aquest subcapítol és que no hi ha res nou per aprendre: és la culminació de tècniques que ja domines. Repassem-les en el context multi-compte:
- Mòduls: defineix una vegada, reutilitza a tots els comptes
Recorda els mòduls (Capítol 18): blocs reutilitzables d’infraestructura. En un entorn multi-compte són essencials: defineixes la teva infraestructura estàndard (una xarxa, una aplicació...) una vegada com a mòdul, i la reutilitzes a tots els comptes que la necessitin. Això garanteix consistència (tots els comptes fan servir la mateixa definició) i evita duplicar codi.
Un mòdul "xarxa-estàndard" (definit una vegada) → s’utilitza al compte dev-A, prod-A, dev-B, prod-B... → tots els comptes tenen una xarxa consistent, sense repetir codi
- Estat separat per compte: aïllament
Recorda la importància de l’estat (Capítol 11) i els backends remots (Capítol 20). En multi-compte, cada compte (o cada combinació compte+entorn) ha de tenir el seu propi estat separat, igual que separàvem entorns (Capítol 19). Així, gestionar un compte no afecta els altres: l’aïllament de la infraestructura com a codi reflecteix l’aïllament dels comptes.
Estat separat per compte: estat de dev-A (independent) estat de prod-A (independent) → aplicar canvis en un compte NO toca l’estat d’un altre
- Gestió d’entorns: l’estructura que ja vam veure
Recorda les tècniques per gestionar múltiples entorns (Capítol 19): directoris per entorn, variables per entorn (.tfvars), i eines com Terragrunt (subcapítol 19.3) per mantenir el codi DRY. Aquestes mateixes tècniques s’apliquen ara a múltiples comptes: cada compte és, en certa manera, un altre «entorn» que configurar amb els mateixos patrons de variables i estructura ordenada.
- CI/CD: desplegaments controlats a cada compte
Recorda el CI/CD per a Terraform (Capítol 22): pipelines que apliquen els canvis de manera controlada, amb revisió i plan abans de apply. A escala multi-compte, els pipelines despleguen a cada compte de manera automatitzada i segura, amb els controls adequats (especialment estrictes per als comptes de producció).
La idea clau: les mateixes pràctiques, aplicades amb disciplina a escala
El missatge central: gestionar Terraform en multi-compte no requereix màgia nova, sinó aplicar amb disciplina les bones pràctiques que ja coneixes, a més gran escala. Mòduls per reutilitzar, estats separats per aïllar, estructura d’entorns per organitzar, i CI/CD per desplegar amb control.
Multi-compte amb Terraform =
Mòduls (Cap. 18) → reutilització i consistència
+ Estat separat (Cap. 20) → aïllament per compte
+ Gestió d’entorns (Cap. 19) → organització ordenada
+ CI/CD (Cap. 22) → desplegaments controlats
──────────────────────────────────────────────
= infraestructura com a codi a escala empresarialAnalogia: gestionar Terraform en multi-compte és com dirigir una cadena de restaurants amb receptes estandarditzades. No reinventes la cuina a cada local: tens receptes úniques (mòduls) que cada restaurant (compte) segueix igual, garantint la mateixa qualitat a tots. Cada restaurant porta la seva pròpia caixa i cuina (estat separat), així que un problema en un no afecta un altre. Tens un manual d’operacions comú (estructura d’entorns) i un procés estàndard d’obertura de locals nous (CI/CD). El secret no és una tècnica nova, sinó aplicar les mateixes bones pràctiques amb disciplina a tots els locals.
Com encaixa amb Control Tower
Terraform i Control Tower (subcapítol 30.2) treballen junts, en nivells diferents:
- Control Tower governa l’estructura organitzativa: crea els comptes, aplica els guardrails, munta la landing zone (els «fonaments» i les «normes comunes»).
- Terraform desplega la infraestructura concreta dins de cada compte: les xarxes, els servidors, les aplicacions (el que «construeixes a sobre» dels fonaments).
Control Tower → prepara i governa els COMPTES (la landing zone)
│
▼
Terraform → construeix la INFRAESTRUCTURA dins de cada compteTots dos es complementen: un prepara el terreny multi-compte, l’altre construeix a sobre d’una manera reproduïble.
Exemple del món real: una empresa amb 30 comptes gestiona tota la seva infraestructura amb Terraform aplicant les pràctiques que coneix. Tenen una biblioteca de mòduls (xarxa estàndard, aplicació estàndard, base de dades estàndard) versionats (recorda el subcapítol 18.4), que tots els equips reutilitzen: així, la xarxa del compte d’un equip és idèntica en estructura a la d’un altre, sense duplicar codi. Cada compte+entorn té el seu estat separat en backends remots (Capítol 20), de manera que desplegar a
dev-equipAmai pot afectarprod-equipB. Fan servir Terragrunt (subcapítol 19.3) per mantenir tot DRY entre comptes, i pipelines de CI/CD (Capítol 22) que apliquen els canvis amb revisió iplanprevi, amb aprovacions extra per a producció. El resultat: gestionen 30 comptes amb la mateixa consistència, seguretat i control que tindrien amb un, perquè han aplicat les bones pràctiques amb disciplina a escala. Això és infraestructura com a codi de nivell expert.
El que has de recordar
- Gestionar Terraform sobre desenes de comptes (multi-compte) requereix aplicar amb disciplina les tècniques que ja coneixes, no aprendre màgia nova. Totes les peces ja les tens.
- Les peces que encaixen:
- Mòduls (Cap. 18): defineix la infraestructura una vegada i reutilitza-la a tots els comptes → consistència sense duplicar codi.
- Estat separat per compte (Caps. 11, 20): cada compte amb el seu propi estat → aïllament (canviar-ne un no afecta un altre).
- Gestió d’entorns (Cap. 19): directoris,
.tfvars, Terragrunt → organització ordenada de molts comptes. - CI/CD (Cap. 22): pipelines amb revisió i
plan→ desplegaments controlats a cada compte (estrictes en producció).
- Com una cadena de restaurants amb receptes estandarditzades: mateixes receptes (mòduls), cuina pròpia per local (estat separat), manual comú (entorns), procés d’obertura estàndard (CI/CD).
- Control Tower (governa els comptes/landing zone) i Terraform (construeix la infraestructura dins de cada compte) es complementen en nivells diferents.
Has completat el Capítol 30 i domines l’organització multi-compte i les landing zones! Al Capítol 31, que tanca la Part VII, veurem una disciplina molt actual que porta tot això un pas més enllà: el Platform Engineering i les plataformes internes per a desenvolupadors.
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
