Hem vist diverses opcions per desar dades: RDS/Aurora (relacional), DynamoDB (NoSQL) i ElastiCache (memòria cau). I AWS en té encara més. Davant tanta varietat, sorgeix la pregunta clau: quina faig servir per al meu cas? Aquest subcapítol et dona el criteri per triar bé. Tanca la Part II i és un dels coneixements més pràctics del llibre.

El principi: «l’eina adequada per a cada feina»

AWS defensa la idea de bases de dades especialitzades (purpose-built): en lloc de forçar totes les teves dades en un únic tipus de base de dades, tries el tipus que millor encaixa amb cada necessitat. Una aplicació gran sovint fa servir diverses bases de dades diferents alhora, cadascuna per al que millor fa.

Analogia: No fas servir un martell per a tot. Per clavar fas servir un martell; per cargolar, un tornavís; per tallar, una serra. Amb les bases de dades igual: cada tipus és l’eina ideal per a una feina concreta.

Les preguntes clau per triar

Fes-te aquestes preguntes sobre les teves dades i el teu cas:

  1. Les meves dades tenen una estructura clara i relacions entre si?
  2. Necessito consultes complexes (filtres, joins, informes)?
  3. Quina escala i rendiment necessito?
  4. Les dades canvien de forma flexible o tenen un esquema fix?
  5. Estic repetint moltes lectures iguals?

Vegem com t’orienten cap a cada opció.

Guia de decisió

Fes servir una base RELACIONAL (RDS / Aurora) quan…

  • Les teves dades tenen estructura clara i relacions (usuaris que tenen comandes, comandes que tenen productes…).
  • Necessites consultes complexes: filtres múltiples, unions entre taules, informes, agregacions.
  • La consistència i la integritat de les dades són crítiques (banca, facturació, inventari).
  • La teva aplicació fa servir SQL.

Exemples: sistemes de gestió, banca, facturació, comerç electrònic (la part de comandes), aplicacions empresarials clàssiques. Aurora si necessites més rendiment/escala; RDS vanilla si vols quelcom més senzill i econòmic.

Fes servir una base NoSQL (DynamoDB) quan…

  • Necessites escala massiva i rendiment constant en mil·lisegons.
  • Accedeixes a les dades sobretot per una clau coneguda («dona’m l’element X»).
  • Les teves dades són flexibles o canvien d’estructura amb freqüència.
  • Vols zero administració (serverless).

Exemples: carretons de compra, perfils d’usuari, sessions, catàlegs amb atributs variables, dades d’IoT, aplicacions amb milions d’usuaris i pics enormes.

Fes servir una MEMÒRIA CAU (ElastiCache) quan…

  • Repeteixes moltes lectures iguals i vols accelerar-les.
  • Vols alleujar la càrrega de la teva base de dades principal.
  • Necessites dades «calentes» a l’instant (sessions, rànquings, comptadors).

Recorda: la memòria cau acompanya una altra base de dades; no la substitueix. És una capa de velocitat al davant.

Taula resum de decisió

Necessito… Fes servir…
Dades estructurades + relacions + consultes complexes RDS / Aurora (relacional, SQL)
Màxim rendiment, escala enorme, accés per clau DynamoDB (NoSQL)
Accelerar lectures repetides / alleujar la BD ElastiCache (memòria cau)
Anàlisi de grans volums / informes (data warehouse) Redshift (Capítol 29)
Cercar text / cerques avançades OpenSearch
Dades molt connectades (xarxes, relacions) Neptune (base de grafs)

Les tres últimes files són bases especialitzades que AWS també ofereix. No les hem detallat, però convé saber que existeixen per a casos concrets (veurem Redshift al Capítol 29).

Combinar-les: el cas real

A la vida real, una aplicació seriosa barreja diverses. Vegem un exemple complet.

Exemple real — una botiga online:

  • RDS/Aurora (relacional): desa les comandes, pagaments i factures, on la consistència i les relacions són crítiques. Aquí necessites SQL i garanties fortes.
  • DynamoDB (NoSQL): desa els carrets de la compra i les sessions, que requereixen escala enorme i accés ràpid per id d’usuari.
  • ElastiCache (memòria cau): desa el catàleg de productes més visitats perquè les pàgines carreguin a l’instant sense saturar la base de dades.
  • OpenSearch: alimenta el cercador de productes amb cerques de text avançades.

Cada peça fa servir la base de dades que millor resol el seu problema. Forçar-ho tot en una sola faria l’aplicació més lenta, més cara o més fràgil.

Un consell per a principiants

No t’abrumeixis amb tantes opcions. Quan comences:

Si tens dubtes, una base de dades relacional (RDS/Aurora) és gairebé sempre una elecció segura i versàtil. Cobreix la majoria de necessitats. Afegeix DynamoDB quan tinguis un cas clar d’escala massiva o accés per clau, i ElastiCache quan notis que la base de dades pateix per lectures repetides. Comença simple i especialitza només quan ho necessitis.

El que has de recordar

  • AWS promou bases de dades especialitzades: tria el tipus que millor encaixa amb cada necessitat, en lloc de forçar-ho tot en una sola.
  • Relacional (RDS/Aurora): estructura, relacions, consultes complexes, consistència (SQL).
  • NoSQL (DynamoDB): escala massiva, rendiment constant, accés per clau, flexibilitat.
  • Memòria cau (ElastiCache): accelerar lectures repetides i alleujar la base de dades (sempre acompanyant-ne una altra).
  • Les aplicacions serioses combinen diverses segons cada problema.
  • Si dubtes a l’inici, una base relacional és l’opció segura i versàtil; especialitza quan sorgeixi la necessitat.

Amb això tanques el Capítol 8 i la Part II. Ja coneixes els serveis essencials d’AWS: còmput (EC2), emmagatzematge (S3), xarxes (VPC), identitat (IAM) i bases de dades. A la Part III fem un gran salt: aprendrem a definir tota aquesta infraestructura com a codi amb Terraform.

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