Ecosistema serverless: SQS, S3 y más

Resumen

Construir una aplicación serverless completa en AWS no se limita a Lambda. Existen cuatro servicios clave que, combinados, te permiten desacoplar procesos, persistir datos y exponer APIs sin aprovisionar servidores: SQS, DynamoDB, S3 y API Gateway. Aquí verás cómo encajan en una arquitectura real y por qué cada uno aporta algo distinto.

¿Cómo desacoplar procesos con SQS en arquitecturas serverless?

SQS es el servicio de colas de AWS y su valor está en convertir tareas síncronas en asíncronas cuando no necesitas devolverle una respuesta inmediata al usuario [3:00].

Imagina que una de tus Lambdas dispara un proceso pesado. En lugar de hacer esperar al cliente, mandas el mensaje a una cola y otra función lo procesa en segundo plano. SQS escala de forma invisible, sin configuración compleja.

Uno de sus pilares más útiles es la dead-letter queue, que retiene mensajes que no fueron leídos en un tiempo determinado para que ningún evento se pierda mientras el consumidor vuelve a estar disponible.

¿Qué es una dead-letter queue? Es una cola secundaria donde SQS guarda los mensajes que no pudieron procesarse. Te permite reintentar o auditar fallos sin perder información.

¿Por qué DynamoDB es el servicio más infravalorado de AWS?

DynamoDB es una base de datos NoSQL con tiempos de respuesta muy bajos sin importar el volumen de datos que manejes [4:30]. Su curva de aprendizaje puede sentirse extraña al principio, pero en la práctica es muy sencillo crear una tabla, aplicar permisología mínima e incluso insertar registros desde la consola web.

La funcionalidad que más se subutiliza son las global tables: bases de datos que se replican automáticamente en múltiples regiones del mundo. Esto significa que tu aplicación responde con baja latencia sin importar desde dónde se conecte el usuario.

  • Tiempos de respuesta consistentes a cualquier escala.
  • Replicación multirregión con global tables.
  • Integración directa con Lambda y permisología granular.

Es apenas una de sus capacidades. Si quieres explotarlo a fondo, el curso dedicado a DynamoDB te muestra el resto.

¿Para qué sirven los buckets de S3 en una aplicación serverless?

S3 va mucho más allá de almacenar archivos. Puede lanzar eventos que ejecutan Lambdas automáticamente, lo que abre casos de uso muy potentes [6:00].

Un ejemplo: subes una imagen al bucket y eso dispara una función que genera thumbnails en background. Útil para perfiles de usuario o tiendas web que necesitan múltiples resoluciones para distintos dispositivos.

¿Puedo hostear un sitio web en S3?

Sí, y es una de sus funcionalidades más usadas. S3 permite alojar sitios web estáticos que escalan automáticamente con el tráfico. La única condición es que la aplicación sea 100% estática.

Combinado con CloudFront, agregas una capa de caché que reduce el tiempo de respuesta para usuarios alrededor del mundo.

¿Sirve serverless solo para backend? No. Con S3 y CloudFront puedes alojar el frontend estático, y con Lambda más DynamoDB cubres backend y persistencia. Toda la pila puede ser serverless.

¿Cómo expone API Gateway las funciones Lambda?

Una Lambda no se puede exponer directamente al exterior. Tienes dos caminos: un balanceador de carga o API Gateway [8:30]. Este último es el que has venido usando en la aplicación base del curso.

API Gateway traduce peticiones HTTP en invocaciones a tus funciones y, además, te ofrece capacidades de seguridad y control que evitan que tengas que escribirlas tú mismo.

  • Validación de autorización con API Keys.
  • Custom authorizers para lógica de autenticación a medida.
  • Transformaciones y lógica de negocio antes de llegar a la Lambda.

Es un servicio tan amplio que daría para un curso entero por sí solo.

¿Cómo se ve una arquitectura 100% serverless en AWS?

Juntando las piezas, puedes montar una aplicación completa, escalable y resiliente, incluso aprovechando el free tier:

  1. Frontend: archivos estáticos en S3 servidos a través de CloudFront.
  2. Backend: Lambda para cómputo y SQS para desacoplar tareas asíncronas.
  3. Persistencia: DynamoDB con global tables si necesitas multirregión.
  4. Exposición: API Gateway como puerta de entrada HTTP a tus funciones.

Cada servicio escala de forma independiente y responde peticiones con baja latencia, sin que tengas que administrar infraestructura.

¿Te gustaría profundizar en CloudFront o en algún otro servicio de AWS? Cuéntanos en los comentarios qué te gustaría explorar a continuación.