AWS Amplify
Plataforma para construir y alojar aplicaciones web y móviles con su backend, desde el repositorio hasta el dominio.
En palabras simples
Es un equipo de montaje que vigila tu repositorio: cada vez que cambias el código, compila el sitio, lo publica y lo reparte por el mundo sin que toques un servidor.
Cuándo aplicarlo
Cuando quieres publicar un front-end moderno con autenticación y API sin montar la infraestructura pieza por pieza.
- ▸Publicar un sitio estático (Astro, Hugo, Vite) desde GitHub en cada push, como este mismo sitio
- ▸Alojar una aplicación de React o Vue con HTTPS y dominio propio
- ▸Desplegar una app de Next.js con renderizado en servidor sin administrar Lambda ni CloudFront
- ▸Previsualizar cada pull request en su propia URL antes de fusionarlo
- ▸Crear el backend de una app —login, API y archivos— desde TypeScript con Amplify Gen 2
Vocabulario mínimo
- Rama conectada
- Cada rama de Git que se conecta a la app se publica en su propia URL, con el nombre de la rama delante.
- Especificación de build (amplify.yml)
- El archivo del repositorio que dice qué comandos corren en cada build y qué carpeta se publica.
- Reglas de reescritura y redirección
- Qué hacer con cada URL: redirigir (301, 302), reescribir sin cambiar la dirección (200) o servir una página de error (404-200).
- Cabeceras personalizadas (customHttp.yml)
- Las cabeceras HTTP que Amplify añade a las respuestas: caché, HTTPS obligatorio, política de seguridad.
- Amplify Gen 2
- La parte de backend: se describe en TypeScript y Amplify crea por debajo Cognito, AppSync, DynamoDB o S3.
Costo y capa gratuita
- Cómo se cobra
- El hosting cobra por minuto de build (0,01 USD en la instancia estándar), por GB almacenado (0,023 USD al mes) y por GB servido (0,15 USD). El backend se paga aparte, según los servicios que cree.
- Capa gratuita
- La página de precios lista 1.000 minutos de build, 5 GB almacenados y 15 GB servidos al mes sin costo. Las cuentas creadas desde el 15 de julio de 2025 reciben la capa gratuita como créditos, de hasta 200 USD.
Cuidado con los créditos
- ⚠Hacer push de cada cambio a medias: cada push es un build completo y los minutos se suman.
- ⚠Servir videos pesados desde el sitio: a 0,15 USD por GB, un video de 350 MB visto cien veces son unos 35 GB de transferencia.
- ⚠Activar el firewall para un sitio estático: son 15 USD al mes por app, más el uso de AWS WAF, para casi nada que proteger.
- ⚠Elegir una instancia de build mayor «por si acaso»: el minuto de la Large cuesta 2,5 veces el de la estándar, y el de la XLarge, 10 veces.
- ⚠Dejar conectadas ramas de prueba: cada una se reconstruye en cada push que reciba.
Descripción
Amplify tiene dos mitades que conviene no confundir. Amplify Hosting conecta con el repositorio, compila en cada push y publica el resultado en una CDN con HTTPS y dominio propio. Amplify Gen 2 es la parte de backend: se describe en TypeScript y Amplify crea por debajo la autenticación con Cognito, la API con AppSync y el almacenamiento en S3.
Se pueden usar por separado. Un sitio estático solo necesita el hosting, y es el camino más corto entre un proyecto de Astro o React y un sitio en producción sobre AWS.
Lo que Amplify ahorra es justo lo que hay que armar a mano con S3 y CloudFront: el build en cada cambio, la invalidación de la caché, el certificado TLS y las rutas limpias. El precio de esa comodidad es el control: la distribución de CloudFront existe, pero la administra Amplify y no aparece en tu cuenta.
Cómo funciona
- Conectas un repositorio de GitHub, GitLab o Bitbucket y eliges una rama.
- En cada push, Amplify levanta un contenedor de build y corre lo que diga
amplify.yml: instalar dependencias, compilar y señalar la carpeta que se publica. - El resultado se sube a la CDN y la caché se vacía sola: nadie tiene que invalidar nada.
- El sitio queda en
https://<rama>.<id-de-la-app>.amplifyapp.com, o en tu dominio si lo añades. - Las reglas de reescritura y las cabeceras deciden qué responde cada URL y con qué instrucciones de caché y seguridad.
Así lo usa este sitio
Este sitio está en Amplify Hosting. No era el plan original —se iba a montar S3 y CloudFront a
mano—, pero sin dominio propio la URL de Amplify lleva el nombre del club delante:
aws-sbg-ucuenca.d2jrpw2uglkitl.amplifyapp.com. El primer tramo es el nombre de la rama de Git,
así que esa rama no se renombra nunca.
Cuatro piezas hacen el trabajo, y tres viven en el repositorio:
amplify.ymlfija las versiones de Node y pnpm, en vez de usar las que traiga la imagen de build ese día, y guarda las dependencias descargadas en la caché de Amplify para que el siguiente build no las baje de nuevo.astro.config.mjsarma la URL pública conAWS_BRANCHyAWS_APP_ID, dos variables que Amplify inyecta en cada build. Así las vistas previas de los enlaces apuntan a la dirección correcta sin escribirla a mano.customHttp.ymlle dice al navegador que guarde un año lo que está en/_astro/, cuyos nombres cambian con cada versión, y añade las cabeceras de seguridad.- La regla de la 404 es la única que vive en la consola:
/<*>→/404.htmlcon estado404-200.
Esa última costó un tropiezo. Con el estado 404 a secas, Amplify redirige: una URL
inexistente respondía 302, cambiaba la dirección del navegador y terminaba en un 200. Se veía
bien, pero para un buscador la página existía. Con 404-200 Amplify reescribe: sirve la misma
página de error, deja la URL como estaba y responde 404.
Manos a la obra
- Conecta un repositorio con un solo
index.htmly haz push. En un par de minutos tienes una URL con HTTPS. - Crea una rama
prueba, conéctala también y fíjate en su URL: es la misma de antes con otro nombre delante. - Pide una página que no existe con
curl -I. Compara la respuesta con la regla en404y en404-200: la primera trae una cabeceraLocation; la segunda, no. - Añade un
customHttp.ymlcon unCache-Controlpropio, haz push y vuelve a mirar las cabeceras concurl -I. - Al terminar, desconecta la rama de prueba: cada rama conectada vuelve a construirse con cada push que reciba.
Ejemplo visual
La flecha de la izquierda solo se recorre cuando alguien hace push; la de la derecha, en cada visita. Por eso los minutos de build dependen de cuánto se trabaja en el sitio, y la transferencia, de cuánta gente lo visita.
Cuándo NO es la mejor opción
- S3 + CloudFront, montados a mano — si quieres controlar cada pieza —acceso al bucket, funciones de borde, políticas de caché— o aprender cómo se arma una CDN por dentro. Era el plan original de este sitio.
- Amazon Lightsail — si lo que necesitas es un servidor tradicional con precio fijo, por ejemplo para un WordPress.
- AWS App Runner — si tu aplicación es un contenedor con su propio servidor web y no un front-end.
Se usa junto con
Aparece en certificaciones
- AWS Certified Developer – Associate
- AWS Certified Cloud Practitioner