Portfolio Web a AWS amb Terraform
La meva web de CV i portfolio és també el meu projecte de cloud: una web estàtica en tres idiomes, servida des d'AWS, amb tota la infraestructura definida com a codi i desplegada automàticament a cada canvi.
- Infraestructura com a codi amb Terraform: el bucket, la distribució CloudFront, el certificat, els registres DNS, l'API, la base de dades, els permisos i les alertes de cost es creen i es versionen des del repositori.
- Web estàtica en un bucket S3 privat, accessible només a través de CloudFront. HTTPS amb certificat ACM, capçaleres de seguretat i redireccions (idioma, www) resoltes a la vora amb una CloudFront Function.
- Comptador de visites serverless: API Gateway, Lambda (Node.js) i DynamoDB, servits sota el mateix domini a /api i amb límit de peticions.
- CI/CD amb GitHub Actions i OIDC: cada push a main compila, desplega a S3 i invalida la memòria cau de CloudFront, sense desar cap clau d'AWS.
- Bones pràctiques: permisos de mínim privilegi, estat de Terraform remot a S3 amb bloqueig i un pressupost amb alertes per vigilar el cost.
Visitant
Obre paumassales.dev al navegador
Cloudflare DNS
Resol el domini cap a CloudFront
CloudFront
CDN global, certificat ACM i regles de seguretat
S3 privat
Desa la web estàtica; només CloudFront la pot llegir
API Gateway
Rep les crides a /api amb límit de peticions
Lambda
Funció Node.js que compta la visita
DynamoDB
Desa el comptador de visites
GitHub Actions
Compila i desplega a cada push, sense claus desades
Tot el requadre d'AWS, el DNS i els permisos estan definits amb Terraform.



