Saltar al contenido
aprendeaws.dev

Módulo 6 · Serverless/Lección 42

Una aplicación serverless completa

Frontend en S3 y CloudFront, usuarios en Cognito, API Gateway, Lambda y DynamoDB. Cómo encajan las piezas.

Al terminar podrás

  • →Armar una arquitectura serverless de punta a punta
  • →Seguir una petición desde el navegador hasta la base de datos
  • →Reconocer el papel de AWS Amplify

Las piezas sueltas ya las conoces. Ahora toca armarlas: una aplicación web completa donde no hay una sola instancia EC2. El ejemplo es una app para reportar daños en un conjunto: los residentes inician sesión, crean un reporte con foto y la administración recibe un aviso.

InternetAWS CloudFrontend weblo puede alojar AmplifyBackend · us-east-1sin servidoresvalida el tokenlee y escribeNavegadorCloudFrontsucursal cercanaAmazon S3la web compiladaAPI Gatewayla ventanillaCognitolos carnésLambdala lógicaDynamoDBlos casilleros

Pasa el mouse para ver qué es cada pieza; haz clic para abrir su ficha. En el celular, usa los botones de abajo.

Amazon API Gateway

API Gateway

AnalogíaLa ventanilla que recibe las solicitudes, revisa el carné y las pasa a quien corresponde.

Cada ruta de la API (por ejemplo, POST /pedidos) se conecta con una función Lambda. API Gateway valida el token de Cognito antes de llamar a la función, y limita cuántas peticiones acepta.

Escala solo y se paga por petición.

Las piezas y su papel

  • Amazon S3

    Guarda el frontend ya compilado (HTML, CSS, JavaScript) y las fotos de los reportes en buckets distintos.
  • Amazon CloudFront

    Sirve el frontend desde ubicaciones de borde cercanas al usuario, con HTTPS y caché.
  • Amazon Cognito

    Registro, inicio de sesión y tokens de los usuarios de la app. No guardas contraseñas en tu base.
  • Amazon API Gateway

    La API de la app: valida el token de Cognito y enruta cada petición a su función.
  • AWS Lambda

    La lógica: crear un reporte, listar reportes, generar URLs para subir fotos.
  • Amazon DynamoDB

    Guarda los reportes. Escala con las peticiones y no tiene servidores que parchar.
  • Amazon SQS

    Deja trabajos pendientes, como generar miniaturas, para que la API responda rápido.
  • Amazon EventBridge

    Publica el evento «reporte creado» para que otros procesos reaccionen sin acoplarse.

Sigue una petición

Un residente abre la app y crea un reporte con foto. Esto es lo que pasa, paso a paso:

  1. 1

    Carga la app

    El navegador pide app.ejemplo.com. Route 53 resuelve el nombre hacia CloudFront, que entrega el HTML y el JavaScript desde S3.
  2. 2

    Inicia sesión

    El frontend envía usuario y contraseña a Cognito. Cognito devuelve tokens firmados que identifican al residente.
  3. 3

    Pide permiso para subir la foto

    El frontend llama a POST /fotos con el token. API Gateway lo valida y una función Lambda genera una URL prefirmada de S3, válida por pocos minutos.
  4. 4

    Sube la foto directo a S3

    El navegador sube el archivo a esa URL. La foto no pasa por API Gateway ni por Lambda, así que no consume su tiempo ni su límite de carga.
  5. 5

    Crea el reporte

    El frontend llama a POST /reportes. Lambda guarda el reporte en DynamoDB con la llave de la foto y responde de inmediato.
  6. 6

    Lo lento, en segundo plano

    Lambda deja un mensaje en SQS para generar la miniatura y publica «reporte creado» en EventBridge. Otra función avisa a la administración.

Qué ganas y qué cuidas

  • Sin servidores que operar: nada que parchar ni dimensionar. Todo escala por pieza.
  • Costo proporcional al uso: si el conjunto está tranquilo un domingo, casi no hay cómputo que pagar.
  • Disponibilidad: cada servicio ya está repartido en varias zonas de la región.
  • Lo que sigue siendo tuyo: los permisos de cada función, la validación de datos, los límites de cada servicio y la observabilidad. Con muchas piezas, necesitas logs y trazas (CloudWatch y X-Ray).

Dónde encaja AWS Amplify

Armar todo lo anterior a mano lleva trabajo. AWS Amplify es un conjunto de herramientas para crear aplicaciones web y móviles de pila completa. Tiene dos partes:

  • Amplify Hosting

    Conectas tu repositorio y Amplify compila y publica el frontend con HTTPS y CDN en cada cambio.
  • Backend de Amplify

    Defines autenticación, datos, almacenamiento y funciones desde tu proyecto. Por debajo crea Cognito, DynamoDB, S3, Lambda y otros servicios.

Repasa las piezas por separado: S3, DynamoDB, Lambda y API Gateway.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.¿Cuál es la forma más común de alojar el frontend estático de una aplicación serverless en AWS?

  2. 2.Los usuarios deben subir fotos grandes sin que pasen por Lambda. ¿Qué usas?

  3. 3.Un equipo de desarrollo web quiere publicar su frontend y crear autenticación y datos con la menor configuración posible. ¿Qué servicio usa?

  4. 4.Después de crear un pedido, la app debe generar una factura en PDF, lo cual tarda. ¿Qué diseño mantiene la API rápida?

  5. 5.En la arquitectura de esta lección, ¿qué servicio valida quién es el usuario antes de que la petición llegue a Lambda?