Tanquem el Capítol 28 amb una idea molt potent: executar lògica molt a prop dels usuaris, al «bord» de la xarxa. Fins ara, les nostres Lambdas (Capítol 14) s’executaven en una regió concreta. Però i si poguessis executar codi a les centenars d’ubicacions que CloudFront (subcapítol 16.2) té repartides pel món, just al costat de cada usuari? Això és el que permeten Lambda@Edge i CloudFront Functions: portar el còmput a l’edge (el bord de la xarxa) per respondre més ràpid i personalitzar el contingut.

Repàs: CloudFront i l’«edge»

Recorda del subcapítol 16.2 que CloudFront és la CDN d’AWS: té ubicacions repartides per tot el món (punts de presència o «edge locations») que serveixen contingut als usuaris des del punt més proper a ells, reduint la latència. Aquest conjunt d’ubicacions properes als usuaris és el que anomenem l’edge (el bord de la xarxa).

   Usuari a Tòquio → ubicació CloudFront a Tòquio (a prop) → resposta ràpida
   Usuari a Madrid → ubicació CloudFront a Madrid (a prop) → resposta ràpida

La idea d’aquest subcapítol: executar codi en aquestes ubicacions de l’edge, no només servir fitxers. Així, la lògica corre al costat de l’usuari, no en una regió llunyana.

El problema: a vegades la regió queda lluny

Si tota la teva lògica s’executa en una regió (per exemple, a Europa), un usuari al Japó ha d’«anar i tornar» fins a Europa per a cada operació, cosa que afegeix latència (retard). Per a certes tasques senzilles que es podrien resoldre a prop de l’usuari, aquest viatge és un malbaratament. Seria millor executar aquesta petita lògica a la ubicació de l’edge més propera a l’usuari.

Què és executar lògica a l’edge

Executar lògica a l’edge vol dir córrer codi a les ubicacions properes als usuaris (les de CloudFront), en lloc d’una regió central. Això serveix per a tasques que convé resoldre just quan una petició arriba o surt de l’edge, sense viatjar fins a la regió:

  • Personalitzar respostes segons l’usuari (el seu país, el seu idioma, el seu dispositiu).
  • Redirigir peticions segons certes regles.
  • Comprovar coses (autenticació bàsica, capçaleres) abans de continuar.
  • Modificar la petició o la resposta al vol.

Analogia: executar lògica a l’edge és com tenir un recepcionista a la porta de cada sucursal d’un banc, en comptes d’haver de trucar a la central per a tot. Si entres i només necessites que t’indiquin una finestreta o et donin un fulletó en el teu idioma, el recepcionista local ho resol a l’instant, sense trucar a la central (que està lluny). Només les gestions complexes van a la central. Portar tasques senzilles «a la porta» fa tot més ràpid.

Les dues opcions d’AWS: Lambda@Edge i CloudFront Functions

AWS ofereix dues formes d’executar codi a l’edge, una més potent i una altra més lleugera:

CloudFront Functions (lleugeres i ultraràpides)

CloudFront Functions són funcions molt lleugeres i rapidíssimes, pensades per a tasques simples que s’executen en cada petició amb mínima latència. Són ideals per a manipulacions senzilles i de gran volum:

CloudFront Functions:
   ✓ ultraràpides i de molt baix cost
   ✓ per a tasques SIMPLES: reescriure una URL, afegir/comprovar
     capçaleres, redireccions simples
   - capacitats limitades (expressament, per ser rapidíssimes)

Lambda@Edge (més potent)

Lambda@Edge són Lambdas (Capítol 14) que s’executen a l’edge, més potents que les CloudFront Functions: permeten lògica més complexa (més temps d’execució, accés a més recursos, etc.), a canvi d’una mica més de latència i cost.

Lambda@Edge:
   ✓ més potent: lògica complexa, més capacitats
   ✓ per a tasques que necessiten més que una manipulació simple
   - una mica més de latència i cost que CloudFront Functions

Com triar

CloudFront Functions Lambda@Edge
Potència Lleugera, tasques simples Més potent, lògica complexa
Velocitat Ultraràpida Ràpida (una mica més que les Functions)
Ideal per a Reescriure URLs, capçaleres, redireccions Personalització complexa, autenticació, lògica elaborada

💡 Regla pràctica: per a tasques simples i de gran volum (manipular capçaleres o URLs), fes servir CloudFront Functions (més ràpides i barates). Per a lògica més complexa, fes servir Lambda@Edge. Tria l’eina més lleugera que resolgui la teva necessitat.

Per què importa: rapidesa i personalització globals

L’avantatge d’executar lògica a l’edge és doble:

  • Menor latència: la lògica s’executa a prop de l’usuari, així que respon més ràpid (sense el viatge fins a la regió).
  • Personalització global: pots adaptar el contingut a cada usuari (idioma, país, dispositiu) al punt més proper a ell, donant una experiència ràpida i a mida a tot el món.

Això encaixa amb el pilar d’eficiència del rendiment del Well-Architected Framework (subcapítol 27.1): fer servir la ubicació adequada perquè el sistema rendeixi el millor possible per a cada usuari.

Exemple del món real: una web global vol que cada usuari vegi el contingut en el seu idioma i sigui redirigit a la versió del seu país, el més ràpid possible. Fan servir una CloudFront Function que, en cada petició, mira el país de l’usuari (a partir d’una capçalera que CloudFront afegeix) i reescriu la URL per servir la versió correcta, tot a la ubicació de l’edge més propera, en mil·lisegons. Per a una altra tasca més complexa —comprovar un token d’autenticació i personalitzar la resposta segons el perfil de l’usuari— fan servir Lambda@Edge, que té la potència necessària. El resultat: usuaris d’arreu del món obtenen contingut personalitzat i veloç, perquè la lògica corre al seu costat, no a l’altra banda del planeta.

El que has de recordar

  • CloudFront (subcap. 16.2) té ubicacions per tot el món (l’edge) properes als usuaris. S’hi pot executar codi, no només servir fitxers.
  • Executar lògica a l’edge vol dir córrer codi a prop de l’usuari (no en una regió llunyana), ideal per personalitzar respostes, redirigir, comprovar o modificar peticions al vol. Com un recepcionista a la porta de cada sucursal en comptes de trucar sempre a la central.
  • AWS ofereix dues opcions: CloudFront Functions (molt lleugeres i ultraràpides, per a tasques simples com reescriure URLs o capçaleres) i Lambda@Edge (més potent, per a lògica complexa).
  • 💡 Fes servir la més lleugera que resolgui la teva necessitat: CloudFront Functions per al simple i de gran volum; Lambda@Edge per al complex.
  • Aporta menor latència (lògica a prop de l’usuari) i personalització global, en línia amb el pilar d’eficiència del rendiment del Well-Architected Framework.

Has completat el Capítol 28 i domines les arquitectures serverless a escala: event-driven, el patró Saga, Step Functions i el còmput a l’edge! Al Capítol 29 canviarem de terreny cap a un altre gran domini: les plataformes de dades a AWS (data lakes, streaming i analítica a gran escala).

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