July 31, 2025

EventBridge

📘 ¿Qué es AWS EventBridge?

AWS EventBridge es un servicio de bus de eventos totalmente administrado que permite conectar aplicaciones usando eventos generados por servicios de AWS, aplicaciones SaaS, o desarrollos propios.

Es la evolución de CloudWatch Events, pero más potente y flexible.


🧩 ¿Qué es un “evento”?

Un evento es una señal o mensaje que indica que algo ha sucedido en un sistema, por ejemplo:

  • Un archivo se subió a S3

  • Se creó una nueva instancia EC2

  • Un usuario realizó una compra en una app

Cada evento se representa como un objeto JSON estructurado con información sobre la acción y su contexto.


🔄 Flujo general de EventBridge

[Productor de eventos]

[Bus de eventos (Event Bus)]

[Reglas de enrutamiento]

[Destino: Lambda, SQS, Step Functions, etc.]

📦 Tipos de buses de eventos

TipoDescripción
Default event busRecibe eventos de AWS Services (por defecto)
Custom event busCreado por el usuario para eventos personalizados
Partner event busRecibe eventos de servicios SaaS integrados (e.g. Zendesk)

🛠️ Componentes clave

ComponenteFunción
EventMensaje JSON estructurado que representa un cambio o acción
Event BusCanal de transporte de eventos
RuleDefine cómo y cuándo se enruta un evento a un destino
TargetServicio que recibirá el evento si la regla coincide (Lambda, SQS, SNS, etc.)
Schema RegistryOpcional. Registro de estructuras de eventos y generación de código

🎯 Destinos compatibles

  • AWS Lambda

  • Amazon SNS

  • Amazon SQS

  • AWS Step Functions

  • AWS Kinesis Data Streams / Firehose

  • ECS Tasks

  • EC2 instances (via Systems Manager)

  • API Destinations (Webhooks a servicios HTTP externos)


🧠 Ejemplo de uso

Caso: Cuando se sube un archivo a un bucket S3, ejecutar una función Lambda que lo procese.

  1. S3 emite un evento → EventBridge

  2. Regla detecta eventos PutObject en ese bucket

  3. Se enruta a un Lambda que ejecuta el procesamiento


🧪 Sintaxis de reglas

Las reglas de filtrado se definen usando patrones en JSON.

{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification"],
  "detail": {
    "state": ["stopped"]
  }
}

Esta regla detecta cuando una instancia EC2 ha sido detenida.


🧰 Schema Registry

FuncionalidadDescripción
Registro de esquemasGuarda la estructura de los eventos recibidos
Code bindingsGenera automáticamente clases en Java, Python o TypeScript
DescubrimientoOpción para registrar esquemas automáticamente al recibir eventos nuevos

🔐 Seguridad

  • Se controla con IAM Policies sobre:

    • events:PutEvents

    • events:PutRule

    • events:PutTargets

  • También se puede usar encriptación KMS y logs en CloudWatch.


📈 Ventajas clave

✅ Desacopla componentes (arquitectura orientada a eventos)
✅ Escalabilidad automática
✅ Latencia baja (~100 ms)
✅ Admite redirección condicional (filtro por patrón)
✅ Compatible con aplicaciones SaaS y servicios HTTP externos (API Destinations)


💰 Precios

UsoPrecio aproximado
Eventos de AWS → Default Bus✅ Gratis
Eventos personalizados (custom bus)💲 $1 por millón de eventos
API Destinations💲 Precio adicional por llamadas salientes
Schema Discovery💲 Costo adicional (primera vez gratis)

Los primeros 100,000 eventos personalizados por mes son gratuitos.


🧠 Preguntas tipo certificación

  1. ¿Qué servicio permite enrutar eventos entre servicios AWS y aplicaciones SaaS?

    • ✅ EventBridge
  2. ¿Cuál es la diferencia entre EventBridge y CloudWatch Events?

    • EventBridge es la versión mejorada, con soporte para eventos personalizados y SaaS.
  3. ¿Qué tipo de bus usarías para eventos generados por tu app?

    • ✅ Custom Event Bus
  4. ¿Puedes enviar eventos a un webhook externo desde EventBridge?

    • ✅ Sí, usando API Destinations
  5. ¿Cómo defines qué eventos deben ser enviados a un destino?

    • ✅ Usando una regla basada en patrones JSON

🎯 Buenas prácticas

  • Usa nombres descriptivos para buses y reglas.

  • Filtra eventos lo más cerca posible del origen (minimiza procesamiento innecesario).

  • Habilita logs de eventos fallidos en CloudWatch.

  • Usa Schema Registry para mantener consistencia en eventos internos.

  • Usa Dead Letter Queues (DLQ) en destinos críticos.


📚 Recursos útiles