En el subcapítol anterior vam veure les regions. Ara baixem un nivell per descobrir un dels conceptes més importants de tot el núvol: les Availability Zones (Zones de Disponibilitat, o «AZ»). Són la base perquè les teves aplicacions no caiguin encara que falli un datacenter sencer.

Què és una Availability Zone

Cada regió d’AWS està formada internament per diverses Availability Zones. Una AZ és un o més datacenters físics, amb la seva pròpia energia, refrigeració i xarxa, independents de les altres AZ de la regió.

Pensa-hi així:

Regió Europa (Espanya)  ← una zona geogràfica
 ├── AZ-a   ← datacenter(s) independent(s)
 ├── AZ-b   ← datacenter(s) independent(s)
 └── AZ-c   ← datacenter(s) independent(s)

Les AZ d’una mateixa regió estan:

  • Prou lluny les unes de les altres perquè un desastre local (incendi, inundació, tall elèctric) no les afecti totes alhora.
  • Prou a prop per estar connectades per xarxes molt ràpides, de manera que treballin juntes gairebé com si fossin una sola.

Solen anomenar-se afegint una lletra al codi de regió: eu-south-2a, eu-south-2b, eu-south-2c.

Per què existeixen: tolerància a fallades

La idea és simple però poderosa: si reparteixes la teva aplicació entre diverses AZ, la fallada d’una no tomba el teu servei.

Analogia: Imagina que tens una botiga important. En lloc de posar tot el teu estoc en un únic magatzem (que podria incendiar-se), el reparteixes en tres magatzems en barris diferents. Si un es crema, els altres dos segueixen servint comandes. Perds un terç de capacitat, però no tanques.

Això és exactament el que fan les AZ: et permeten dissenyar sistemes que sobreviuen a la caiguda d’un datacenter sencer.

Exemple real: una web tolerant a fallades

Imagina una botiga online ben dissenyada:

        Usuaris
           │
     [Balancejador de càrrega]   ← reparteix el trànsit
        ╱     │     ╲
   Servidor Servidor Servidor
    (AZ-a)   (AZ-b)   (AZ-c)
  • El trànsit dels usuaris arriba a un balancejador de càrrega (ho veurem al Capítol 13).
  • El balancejador reparteix les peticions entre servidors que estan en AZ diferents.
  • Si la AZ-b pateix un tall de llum, el balancejador deixa d’enviar-li trànsit i utilitza només AZ-a i AZ-c.
  • Els usuaris no se n’assabenten de res. La web segueix funcionant.

Això és el que significa «alta disponibilitat des del disseny»: la resiliència no és un afegit, sinó part de com construeixes des del principi.

La regla d’or: «dissenya per al falliment»

Al núvol s’assumeix que el maquinari fallarà tard o d’hora. No és pessimisme, és realisme: amb milions de components, sempre hi ha alguna cosa trencant-se. L’estratègia guanyadora no és evitar que res falli (impossible), sinó dissenyar perquè, quan alguna cosa falli, no importi.

Per això una de les primeres bones pràctiques que aprendràs és:

Mai posis tota la teva aplicació en una sola AZ. Reparteix sempre en almenys dues.

Serveis com les bases de dades gestionades (RDS Multi-AZ, Capítol 8) o els grups d’autoescalat (Capítol 13) estan pensats precisament per distribuir-se entre AZ amb molt poc esforç per part teva.

AZ vs Regió: no confondre

És important distingir dos nivells de resiliència:

Nivell Protegeix contra Exemple de fallada coberta
Multi-AZ (diverses zones, mateixa regió) Fallada d’un datacenter Tall de llum en un edifici
Multi-regió (diverses regions) Fallada d’una regió sencera Catàstrofe que afecta tota una zona geogràfica

Per a la majoria d’aplicacions, multi-AZ és suficient i molt més senzill i barat. Multi-regió es reserva per a sistemes crítics que no poden permetre’s ni el més mínim temps de caiguda (ho veurem al Capítol 26 sobre recuperació davant desastres).

El que has de recordar

  • Una regió es divideix en diverses Availability Zones (AZ), que són datacenters independents (energia, xarxa i refrigeració pròpies).
  • Les AZ estan aïllades entre si però connectades per xarxes ràpides.
  • Repartir la teva aplicació en diverses AZ la fa tolerant a la fallada d’un datacenter complet.
  • Regla d’or: dissenya per al falliment i mai utilitzis una sola AZ en producció.
  • Multi-AZ protegeix contra fallades de datacenter; multi-regió protegeix contra fallades d’una regió sencera (més car i complex).

En el següent subcapítol veurem un tercer nivell de presència d’AWS, encara més proper a l’usuari: les edge locations i el servei CloudFront.

Cloud, AWS & Terraform — De zero a expert

Capítol 1 · Què és el cloud computing

Capítol 2 · El mercat cloud i els grans proveïdors

Capítol 3 · Regions, zones de disponibilitat i edge

Capítol 4 · Càlcul: EC2

Capítol 5 · Emmagatzematge: S3

Capítol 6 · Xarxes: VPC

Capítol 7 · Identitat i accés: IAM

Capítol 8 · Bases de dades gestionades

Capítol 9 · Per què Infraestructura com a Codi

Capítol 10 · HCL: el llenguatge de Terraform

Capítol 11 · Providers i estat

Capítol 12 · La teva primera infraestructura real amb Terraform

Capítol 13 · Balanceig de càrrega i autoescalat

Capítol 14 · Serverless amb Lambda

Capítol 15 · Missatgeria i esdeveniments

Capítol 16 · Lliurament de contingut i DNS

Capítol 17 · Contenidors a AWS

Capítol 18 · Mòduls: reutilització i composició

Capítol 19 · Workspaces i gestió d'entorns

Capítol 20 · Backends remots i locking

Capítol 21 · Testing d'infraestructura

Capítol 22 · Terraform en CI/CD

Capítol 23 · Seguretat en profunditat

Capítol 24 · Observabilitat: logs, mètriques i traces

Capítol 25 · Optimització de costos

Capítol 26 · Alta disponibilitat i disaster recovery

Capítol 27 · Well-Architected Framework d'AWS

Capítol 28 · Arquitectures serverless a escala

Capítol 29 · Plataformes de dades a AWS

Capítol 30 · Multi-compte i landing zones

Capítol 31 · Platform Engineering i Internal Developer Platform

Capítol 32 · Certificacions AWS rellevants

Capítol 33 · Projectes per consolidar el que s'ha après

Capítol 34 · Recursos i comunitat

© Copyright 2024. Tots els drets reservats