Un dels usos més populars i pràctics de S3 és allotjar un lloc web directament, sense necessitat de servidors. És barat, senzill i escala automàticament a milions de visites. En aquest subcapítol tanquem el capítol de S3 veient com i quan utilitzar-lo.

Web estàtica vs web dinàmica

Primer, una distinció clau:

  • Web estàtica: els fitxers es serveixen tal qual a tots els visitants. El contingut no canvia segons qui entri. Són fitxers HTML, CSS, JavaScript, imatges… Exemples: una web corporativa, un blog, un portfoli, la documentació d’un producte, una landing page.
  • Web dinàmica: el contingut es genera en el moment segons l’usuari o les dades (necessita un servidor que executi codi i consulti bases de dades). Exemples: el teu panell de banca online, un carret de compra personalitzat.

S3 serveix webs estàtiques, no dinàmiques. Però compte: avui dia moltíssimes webs modernes (fetes amb React, Vue, Angular…) són estàtiques en la seva entrega i obtenen les dades dinàmiques cridant a una API per separat. Així que «estàtic» no vol dir «simple» ni «avorrit».

Analogia: Una web estàtica a S3 és com un tauler d’anuncis: penges els fulls i tothom que passa veu el mateix. Una web dinàmica és com un cambrer que prepara alguna cosa diferent per a cada client.

Per què allotjar una web a S3 és una bona idea

  • Sense servidors per gestionar: no hi ha EC2 per mantenir, parchejar ni vigilar. Només puges fitxers.
  • Escala automàticament: si la teva web es torna viral i la visiten milions de persones, S3 ho aguanta sense que facis res. No hi ha servidor que es saturi.
  • Barat: pagues només per l’emmagatzematge (uns pocs fitxers) i per les descàrregues. Una web petita pot costar cèntims al mes.
  • Molt fiable: heretes la durabilitat i disponibilitat de S3.

Exemple real: Una startup llança la seva web de presentació (la típica landing page amb informació del producte i un formulari de contacte). En lloc de pagar un servidor encès 24/7, la pugen a S3. Quan surten a les notícies i reben un pic enorme de visites, la web aguanta perfectament i el cost segueix sent mínim.

Com funciona, a grans trets

Els passos conceptuals per allotjar una web estàtica a S3 són:

  1. Crear un bucket (recorda: nom únic mundial, subcapítol 5.1).
  2. Pujar els fitxers de la web (index.html, fulls d’estil, imatges, etc.).
  3. Activar l’opció de "static website hosting" al bucket, indicant quin és el document d’inici (normalment index.html) i el d’error (per exemple error.html).
  4. Donar permís de lectura pública als fitxers mitjançant una política de bucket (recorda el subcapítol 5.4: cal obrir l’accés conscientment i només al necessari).

Amb això, S3 et dona una URL des d’on la teva web és accessible.

El problema de la URL i l’HTTPS (i la seva solució: CloudFront)

Allotjar directament a S3 té dues limitacions:

  1. La URL que dona S3 és llarga i lletja (alguna cosa com mi-bucket.s3-website-eu-west-1.amazonaws.com), no el teu domini bonic www.miempresa.com.
  2. L’hosting directe de S3 no ofereix HTTPS (la connexió segura amb el cadenat) per a dominis propis.

La solució professional és posar CloudFront davant del bucket (recorda el subcapítol 3.3). Això et dona:

  • HTTPS amb un certificat gratuït (ACM, que veurem al Capítol 16).
  • El teu domini propi (www.miempresa.com) mitjançant Route 53 (Capítol 16).
  • Velocitat global gràcies a la memòria cau a edge locations.
  • Més seguretat: el bucket pot seguir privat i només CloudFront hi accedeix (ja no cal exposar-lo al públic).

Arquitectura recomanada per a una web estàtica professional:

Usuari → CloudFront (HTTPS, memòria cau global) → S3 (fitxers privats)
            ↑
       Route 53 (el teu domini)  +  ACM (certificat SSL gratuït)

Aquesta combinació —S3 + CloudFront + Route 53 + ACM— és un dels patrons més utilitzats del món per servir webs i és, a més, el Projecte 1 que construiràs al Capítol 33.

Quan utilitzar S3 per a hosting (i quan no)

Fes-lo servir per a:

  • Webs corporatives, blogs, portfolios, documentació.
  • Landing pages i webs de màrqueting.
  • Aplicacions d’una sola pàgina (SPA) fetes amb React, Vue, Angular… que consumeixen una API a part.

No el facis servir (directament) per a:

  • Webs que necessiten executar codi al servidor per cada petició (per això, EC2, contenidors o Lambda).
  • Quan necessites lògica de servidor, sessions, renderitzat en servidor pesat, etc. (tot i que sovint pots combinar S3 per a l’estàtic + Lambda/API per al dinàmic).

El que has de recordar

  • S3 pot allotjar llocs web estàtics (HTML, CSS, JS, imatges) sense servidors: barat, escalable i fiable.
  • «Estàtic» no vol dir simple: les SPA modernes (React, Vue…) es serveixen així i obtenen dades d’una API a part.
  • L’hosting directe de S3 dona una URL lletja i sense HTTPS per a domini propi; la solució professional és posar CloudFront davant (HTTPS, domini propi, velocitat i seguretat).
  • El patró S3 + CloudFront + Route 53 + ACM és l’estàndard per a webs estàtiques i el construiràs al Capítol 33.
  • Per a lògica de servidor per petició, S3 no és suficient: combina’l amb Lambda, contenidors o EC2.

Amb això tanques el Capítol 5 i domines l’emmagatzematge d’objectes. Al Capítol 6 veurem les xarxes a AWS amb VPC: com es connecten i s’aïllen els teus recursos de manera segura.

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