Portfolio Web en AWS con Terraform
Mi web de CV y portfolio es también mi proyecto de cloud: una web estática en tres idiomas, servida desde AWS, con toda la infraestructura definida como código y desplegada automáticamente en cada cambio.
- Infraestructura como código con Terraform: el bucket, la distribución CloudFront, el certificado, los registros DNS, la API, la base de datos, los permisos y las alertas de coste se crean y versionan desde el repositorio.
- Web estática en un bucket S3 privado, accesible solo a través de CloudFront. HTTPS con certificado ACM, cabeceras de seguridad y redirecciones (idioma, www) resueltas en el borde con una CloudFront Function.
- Contador de visitas serverless: API Gateway, Lambda (Node.js) y DynamoDB, servidos bajo el mismo dominio en /api y con límite de peticiones.
- CI/CD con GitHub Actions y OIDC: cada push a main compila, despliega en S3 e invalida la caché de CloudFront, sin guardar ninguna clave de AWS.
- Buenas prácticas: permisos de mínimo privilegio, estado de Terraform remoto en S3 con bloqueo y un presupuesto con alertas para vigilar el coste.
Visitante
Abre paumassales.dev en el navegador
Cloudflare DNS
Resuelve el dominio hacia CloudFront
CloudFront
CDN global, certificado ACM y reglas de seguridad
S3 privado
Guarda la web estática; solo CloudFront puede leerla
API Gateway
Recibe las llamadas a /api con límite de peticiones
Lambda
Función Node.js que cuenta la visita
DynamoDB
Guarda el contador de visitas
GitHub Actions
Compila y despliega en cada push, sin claves guardadas
Todo el recuadro de AWS, el DNS y los permisos están definidos con Terraform.



