Arquitecturas escalables y débilmente acopladas

Disena arquitecturas escalables usando SQS, SNS, EventBridge, API Gateway y Lambda.

Uno de los patrones mas evaluados en SAA-C03 es: "¿Como hacer que este sistema fuertemente acoplado sea escalable?" El acoplamiento debil es un principio fundamental de la arquitectura moderna en la nube.

 

¿Por que necesitamos el acoplamiento debil?

Considera un restaurante. Si cada mesero corre directamente a la cocina para explicar cada pedido, el caos surge en hora punta. Los pedidos se acumulan, los meseros esperan y un cocinero lento paraliza todo el sistema.

Ahora agrega un sistema de boletas de pedido. Los meseros dejan la boleta y pasan a la siguiente mesa. La cocina procesa las boletas a su propio ritmo. Ambos lados operan de forma independiente. Eso es acoplamiento debil.

Tres beneficios clave del acoplamiento debil: Cada componente escala de forma independiente Si una parte falla, el resto sigue funcionando Cada parte puede desplegarse y actualizarse de forma independiente

 

Amazon SQS — El sistema de boletas de pedido

SQS (Simple Queue Service) es el servicio de cola de mensajes de AWS. Actua como un buffer entre productores (emisores) y consumidores (receptores).

Las colas SQS Standard tienen un rendimiento practicamente ilimitado. El orden de los mensajes no esta garantizado, pero pueden manejar millones de mensajes por segundo. Adecuado para la mayoria de las cargas de trabajo.

Las colas SQS FIFO garantizan el orden exacto y la deduplicacion. Usaelas cuando el orden importa: "el pedido 1 debe procesarse antes que el pedido 2." El rendimiento esta limitado a 3.000 mensajes por segundo (con procesamiento por lotes).

La Dead Letter Queue (DLQ) mueve los mensajes que fallan en el procesamiento a una cola separada. Puedes analizar y reprocesar los mensajes fallidos. Esencial para el aislamiento de errores y la depuracion.

El tiempo de espera de visibilidad es un concepto importante. Cuando un consumidor recupera un mensaje, este se vuelve invisible para otros consumidores durante un tiempo establecido. Si el procesamiento se completa, el consumidor lo elimina. Si el procesamiento falla, el mensaje reaparece en la cola tras expirar el tiempo de espera.

 

Amazon SNS — El altavoz de anuncios publicos

SNS (Simple Notification Service) es un servicio de fan-out que entrega un mensaje a multiples suscriptores simultaneamente. Piensa en el sistema de megafonia de una escuela transmitiendo a todo el edificio a la vez.

Publica un mensaje en un tema SNS y todos los suscriptores lo reciben simultaneamente. Los suscriptores pueden ser colas SQS, funciones Lambda, endpoints HTTP, direcciones de correo electronico y mas.

El patron SNS + SQS fan-out aparece con mucha frecuencia en el examen. Suscribe multiples colas SQS a un solo tema SNS y un evento se entrega a multiples pipelines de procesamiento al mismo tiempo. Por ejemplo, un evento de pedido completado puede llegar simultaneamente a una cola de procesamiento de pagos, una cola de actualizacion de inventario y una cola de notificacion por correo electronico.

!Amazon SQS vs SNS

Amazon EventBridge — Centro central para arquitectura basada en eventos

EventBridge es un bus de eventos que recopila eventos, los filtra por reglas y los enruta al destino correcto.

Diferencia con SQS y SNS: EventBridge examina el contenido de los eventos para decidir donde enrutarlos. Puedes construir flujos de trabajo complejos basados en eventos como "cuando una instancia EC2 termina, activa esta Lambda" o "cuando se sube un archivo a S3, inicia este flujo de Step Functions."

EventBridge puede recibir eventos de servicios AWS y tambien de aplicaciones SaaS de terceros.

 

Amazon API Gateway — El portero para APIs serverless

API Gateway crea y gestiona APIs REST, HTTP y WebSocket. Combinado con Lambda, obtienes una API completamente serverless: ni un solo servidor que operar.

Caracteristicas que proporciona API Gateway: Autenticacion y autorizacion (IAM, Cognito, Lambda Authorizer) Limitacion de solicitudes y gestion de cuotas Terminacion SSL/TLS Cache de respuestas para reducir la carga del backend

Consejo para el examen: "API REST serverless" o "exponer Lambda por HTTP" — elige API Gateway.

 

Orquestacion de contenedores

En una arquitectura de microservicios, los contenedores son la forma estandar de empaquetar cada servicio.

| Servicio | Descripcion | Analogia | |---------|-------------|----------| | Amazon ECS | Orquestacion de contenedores nativa de AWS | Plataforma de gestion de contenedores propia de AWS | | Amazon EKS | Gestion de contenedores basada en Kubernetes | Kubernetes estandar de la industria gestionado por AWS | | AWS Fargate | Ejecutar contenedores sin gestionar servidores | La version serverless de los contenedores |

Con Fargate, nunca gestionas instancias EC2 tu mismo. Di "ejecuta este contenedor" y Fargate lo aprovisiona y ejecuta automaticamente. Fargate + ALB es el patron estandar de arquitectura de contenedores serverless.

 

AWS Step Functions — El orquestador de flujos de trabajo

Usa Step Functions para automatizar procesos de negocio de multiples pasos. Por ejemplo, "registro de usuario → verificacion de email → mensaje de bienvenida → registro en CRM": un flujo de trabajo secuencial definido visualmente.

Cada paso puede ser una funcion Lambda, notificacion SNS, mensaje SQS, actualizacion DynamoDB y mas. Step Functions gestiona automaticamente el paso de datos entre pasos, manejo de errores, reintentos y ejecucion paralela.

 

Puntos clave para el examen

"Comunicacion asincrona entre componentes, actua como buffer" — Amazon SQS

"Un evento entregado a multiples destinos simultaneamente" — Amazon SNS fan-out

"SNS publicando en multiples colas SQS a la vez" — patron SNS+SQS fan-out (muy frecuente en examen)

"Almacenar y analizar mensajes fallidos por separado" — Dead Letter Queue (DLQ)

"Garantizar orden exacto de mensajes y deduplicacion" — cola SQS FIFO

"Enrutar eventos basado en contenido, filtrar con reglas" — Amazon EventBridge

"Construir una API REST serverless" — API Gateway + Lambda

"Ejecutar contenedores sin gestionar servidores" — AWS Fargate (con ECS o EKS)

"Ejecutar multiples Lambdas en secuencia o en paralelo" — AWS Step Functions

Volver a la lista del blog