Gairebé tota aplicació necessita desar dades de forma organitzada: usuaris, comandes, productes… Per això fem servir bases de dades. AWS et permet executar bases de dades sense haver-les d’administrar tu, gràcies a serveis gestionats. El més important és RDS, i és on comencem aquest capítol.

El problema que resol RDS

Muntar i mantenir una base de dades «a mà» és una feina dura i delicada:

  • Instal·lar i configurar el programari de base de dades.
  • Aplicar pegats de seguretat.
  • Fer còpies de seguretat periòdiques.
  • Configurar l’alta disponibilitat per si el servidor falla.
  • Monitorar el rendiment.

Fer tot això bé requereix un especialista (un DBA, administrador de bases de dades) i molt de temps. RDS automatitza gairebé tot això per tu.

Què és RDS

RDS significa Relational Database Service. És un servei gestionat per executar bases de dades relacionals sense ocupar-te de l’administració feixuga.

Recorda el Capítol 1: RDS és un exemple de PaaS. AWS s’encarrega del sistema operatiu, la instal·lació, els pegats, les còpies de seguretat i la infraestructura; tu només t’ocupes de les teves dades i les teves consultes.

«Base de dades relacional» vol dir que les dades s’organitzen en taules amb files i columnes, relacionades entre si (com fulls de càlcul connectats). Es consulten amb el llenguatge SQL. Són les bases de dades «de tota la vida», ideals quan les dades tenen una estructura clara i consistent.

Analogia: Fer servir RDS és com llogar un cotxe amb conductor i manteniment inclòs en lloc de comprar el cotxe i encarregar-te tu de les revisions, l’assegurança i les avaries. Tu decideixes on vols anar (les teves dades); de la resta se n’encarrega AWS.

Els motors que suporta RDS

RDS no és una base de dades nova: executa els motors de bases de dades populars que ja existeixen. Tries el que prefereixis:

Motor Notes
PostgreSQL Molt potent i popular, codi obert
MySQL El més usat del món, codi obert
MariaDB Derivat de MySQL, codi obert
Oracle Comercial, comú en grans empreses
SQL Server De Microsoft, comú en entorns Windows
Aurora El motor propi d’AWS (el veiem al subcapítol 8.2)

Avantatge clau: si la teva aplicació ja feia servir, per exemple, MySQL o PostgreSQL, la pots moure a RDS sense canviar el codi. És el mateix motor, però gestionat per AWS.

Multi-AZ: alta disponibilitat automàtica

Aquí RDS brilla en seguretat i resiliència. Recorda les zones de disponibilitat del Capítol 3. L’opció Multi-AZ de RDS fa el següent:

  • Manté una còpia exacta (rèplica de reserva) de la teva base de dades en UNA ALTRA zona de disponibilitat, sincronitzada en temps real.
  • Si la base de dades principal falla (per un problema de maquinari o una caiguda de l’AZ), RDS commuta automàticament a la còpia de reserva, normalment en un o dos minuts, sense que tu facis res.

Analogia: És com tenir un conductor de recanvi assegut al costat en un viatge llarg. Si el conductor principal es troba malament, el de recanvi agafa el volant a l’instant i el viatge continua gairebé sense interrupció.

        Aplicació
            │
            ▼
   [BD Principal - AZ-a]  ──sincronitza──►  [BD Reserva - AZ-b]
                                              │
   Si la principal falla, RDS commuta ────────┘
   automàticament a la de reserva

Important: La rèplica de reserva de Multi-AZ no s’utilitza per consultar; només està «esperant» per si la principal falla. El seu únic propòsit és l’alta disponibilitat. Per repartir la càrrega de lectura es fan servir les rèpliques de lectura (ho veiem ara).

Rèpliques de lectura: repartir la càrrega de lectura

A vegades el problema no és que la base de dades falli, sinó que rep massa consultes de lectura i se satura. Per això hi ha les rèpliques de lectura (read replicas).

Una rèplica de lectura és una còpia addicional de la teva base de dades que serveix només per llegir (consultes), no per escriure. Reparteixes les lectures entre la principal i les rèpliques, alleujant la càrrega.

Analogia: Imagina una biblioteca amb un únic bibliotecari desbordat per la gent que ve a consultar llibres. Contractes diversos ajudants (rèpliques) que només atenen consultes. Les modificacions del catàleg (escriptures) les segueix fent només el bibliotecari en cap (la principal), per evitar descontrol.

Exemple real: Un web de notícies té moltíssima gent llegint articles i poca gent escrivint-los. Crea diverses rèpliques de lectura: els milions de lectors consulten les rèpliques, mentre que els pocs periodistes escriuen a la base de dades principal. Així el web aguanta pics enormes de trànsit de lectura.

Multi-AZ vs Rèpliques de lectura: no confondre

És l’error conceptual més típic d’aquest tema:

Multi-AZ Rèplica de lectura
Per a què Alta disponibilitat (tolerar fallades) Escalar les lectures (rendiment)
La còpia s’utilitza per consultar No (està en espera) Sí (atén lectures)
Commutació automàtica si falla No (no és la seva funció)
Sincronització Immediata (síncrona) Amb lleu retard (asíncrona)

Regla mental: Multi-AZ = disponibilitat (un recanvi en espera). Rèplica de lectura = rendiment (ajudants que atenen lectures). Sovint es fan servir totes dues alhora.

El que RDS fa per tu (resum)

  • Còpies de seguretat automàtiques i la possibilitat de restaurar a un moment concret del passat.
  • Pegats del motor i del sistema operatiu.
  • Alta disponibilitat amb Multi-AZ.
  • Escalat de lectures amb rèpliques.
  • Monitoratge integrat.
  • Xifratge de les dades en repòs i en trànsit.

El que has de recordar

  • RDS és un servei gestionat (PaaS) per a bases de dades relacionals (taules + SQL): AWS s’ocupa de pegats, còpies i administració; tu, de les teves dades.
  • Suporta els motors populars (PostgreSQL, MySQL, MariaDB, Oracle, SQL Server i Aurora); pots migrar sense canviar el codi.
  • Multi-AZ = alta disponibilitat: còpia de reserva en una altra AZ que pren el relleu automàticament si la principal falla.
  • Rèpliques de lectura = rendiment: còpies que atenen consultes de lectura per alleujar la càrrega.
  • No confonguis ambdues: una és per tolerar fallades, l’altra per escalar lectures. Sovint es combinen.

Al següent subcapítol veurem Aurora, el motor de base de dades propi d’AWS, i per què sovint supera l’RDS «clàssic».

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