Cómo Construí un Pipeline Seguro de Pedidos Sin Servidores con Lambda, SNS y SQS

Descubre un Pipeline de Pedidos Serverless en AWS: fan-out con SNS y SQS, Lambdas independientes, seguridad desde el diseño y red privada para resiliencia y escalabilidad.

12 sept 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Después de terminar un proyecto tradicional de tres capas en AWS decidí construir algo distinto para mi portafolio: más serverless, orientado a eventos y con componentes totalmente desacoplados. El objetivo fue probar el patrón fan out con SQS donde un único evento dispara múltiples acciones, y hacerlo todo desde un enfoque security first. El resultado fue un Pipeline de Pedidos Serverless que implementé con Lambda, SNS y SQS y que aprovecha buenas prácticas de red privada y control de acceso.

Arquitectura general: una Application Load Balancer público recibe solicitudes POST en /orders y las dirige a una Lambda que actúa como Publisher. Esa Lambda valida la petición y la publica en un tópico SNS. El tópico SNS hace fan out a varias colas SQS, por ejemplo billing y archive. Consumidores independientes, cada uno en su propia Lambda, procesan las colas: la Lambda de billing escribe en DynamoDB y la de archive guarda una copia JSON en S3. Todo corre dentro de una VPC con subredes públicas para el ALB y subredes privadas para las Lambdas. Las funciones no tienen acceso a internet y consumen servicios AWS a través de endpoints VPC.

Patrón fan out: un request pasa por SNS y se duplica hacia múltiples colas, permitiendo que cada consumidor sea independiente y escale según su propia carga. Esto mejora la resiliencia y facilita la extensión del sistema con nuevos consumidores sin tocar el flujo existente.

Seguridad desde el inicio: añadí autenticación en la Lambda Publisher. Las peticiones deben incluir cabeceras X-Client-Id y X-Signature. La Lambda valida esas cabeceras frente a un secreto gestionado por la configuración de entorno o un gestor de secretos para producción. Si la validación falla la función responde 401 Unauthorized. Con esto se evita que clientes no autorizados inyecten mensajes en la tubería.

Control de permisos: cada Lambda tiene su propio role IAM con permisos mínimos necesarios. Por ejemplo la Publisher solo recibe sns:Publish; la Billing tiene permisos para recibir y borrar mensajes de SQS y para put en DynamoDB; la Archive recibe y borra mensajes y pone objetos en S3. No existe un rol compartido con privilegios excesivos.

Políticas de recursos: cada cola SQS acepta mensajes únicamente del tópico SNS correspondiente mediante políticas de cola. Opcionalmente se pueden añadir condiciones que aten la fuente a un endpoint VPC usando aws:SourceVpce para evitar accesos directos desde fuera del sistema.

Red y seguridad: aprendí que las Lambdas no necesitan reglas de entrada en los security groups porque el ALB no se conecta por la red a la función sino que invoca a través del control plane de AWS. El security group influye en el tráfico saliente hacia DynamoDB, SNS o CloudWatch. Para mantener todo privado configuré endpoints VPC: endpoints de gateway para S3 y DynamoDB y endpoints de interfaz para SNS, SQS y CloudWatch Logs. De esta forma no se requieren NAT Gateways ni acceso público a internet.

Observabilidad: todas las Lambdas escriben en CloudWatch Logs y configuré métricas y alertas clave: errores de Lambda, profundidad de colas SQS, DLQ depth y 5XX del ALB. Estas señales son suficientes para detectar degradaciones y actuar antes de que el problema se propague.

Lecciones aprendidas: los security groups de Lambda se comportan distinto a instancias EC2; empaquetar funciones con Terraform requiere disciplina para mantener artefactos limpios; pensar security first desde el diseño ahorra retrabajo; el desacoplo real funciona: si un consumidor falla los demás siguen operando; y la combinación SQS más Lambda soporta picos de carga de manera eficiente frente a arquitecturas tradicionales.

Implementación con Terraform: organicé el código en carpetas para mantener claridad y aplicar por capas: infra network para VPC, subredes, rutas, SGs y endpoints; data para DynamoDB y bucket S3; messaging para SNS, SQS, DLQs y políticas; iam para roles y policies; compute para Lambdas y event source mappings; frontend para ALB y reglas; observability para alarmas CloudWatch. El orden de despliegue fue network, data, messaging, iam, compute, frontend y finalmente observability para garantizar dependencias resueltas.

En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida especializada en soluciones cloud y seguridad. Si te interesa cómo adaptar este tipo de arquitectura a proyectos reales o necesitas servicios cloud aws y azure podemos ayudarte a diseñar e implementar pipelines serverless seguros y escalables. Con experiencia en software a medida, inteligencia artificial y ciberseguridad entregamos soluciones integrales que incluyen desde agentes IA hasta visualización con power bi. Conoce más sobre nuestro enfoque para desplegar soluciones cloud en Servicios cloud AWS y Azure y sobre desarrollo de aplicaciones a medida en aplicaciones a medida y software a medida.

Resumen final: este Pipeline de Pedidos Serverless demuestra cómo combinar Lambdas, SNS y SQS con una estrategia security first y una red privada para construir sistemas escalables y resilientes. Si buscas integrar inteligencia artificial, servicios inteligencia de negocio o automatizar procesos con soluciones a medida, en Q2BSTUDIO podemos acelerar tu proyecto y asegurar su diseño desde la red hasta las políticas IAM.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.