EventBridge

Amazon EventBridge 

  • Trước đây là CloudWatch Events. EventBridge là evolution của CloudWatch Events
  • CloudWatch Events là phiên bản giới hạn hơn, chủ yếu để lên lịch (schedule) hoặc phản ứng với sự kiện từ AWS service.
  • EventBridge không nằm trong nhánh “Monitoring” như CloudWatch Alarm, mà nằm trong nhánh “Event-Driven Architecture” như Kafka hoặc RabbitMQ.
  • Nếu bạn cần monitoring / alerting, dùng CloudWatch Alarm.
    Nếu bạn cần event routing, xử lý logic phức tạp theo event, hãy dùng EventBridge.
  • Schedule: Cron jobs
  • Event Pattern: Event rule để phản ứng khi một service thực hiện hành động nào đó
  • Kích hoạt Lambda function, gửi message qua SQS/SNS...

Event Bus

Trong Amazon EventBridge, Event Bus là trung tâm truyền tải sự kiện (event) — đóng vai trò như một "message router" hoặc "event pipeline" trung tâm. Đây là nơi nhận và phân phối các sự kiện đến các đích phù hợp (targets) như Lambda, SNS, SQS, Step Functions...

Default Event Bus

  • Dùng để nhận các sự kiện từ các dịch vụ AWS native (EC2, Lambda, S3, v.v.).
  • Không cần cấu hình gì thêm — mặc định đã có sẵn trong tài khoản.

Partner Event Bus

  • Nhận sự kiện từ các SaaS tích hợp sẵn như:
    • Zendesk, Datadog, Segment, PagerDuty, etc.
  • Chỉ cần thiết lập ủy quyền từ tài khoản EventBridge đến provider.

Custom Event Bus

  • Dùng để nhận event từ app tự build (microservice, frontend, backend...).
  • Gửi event bằng SDK hoặc API của EventBridge (PutEvents API).
  • Có thể định danh từng bus theo mục đích (ex: orders-event-bus, billing-bus, etc).

Schema Registry

  • EventBridge có thể phân tích các sự kiện trong event bus của bạn và suy luận ra schema.
  • Schema Registry cho phép bạn tạo mã (generate code) cho ứng dụng của mình, nhờ đó bạn biết trước cách dữ liệu được cấu trúc trong event bus.
  • Schema có thể versioned (hỗ trợ quản lý phiên bản).

Resource-based Policy

  • Quản lý quyền truy cập cho một Event Bus cụ thể
    • Ví dụ: cho phép/từ chối các sự kiện từ tài khoản AWS khác hoặc region khác
  • Use case: gom tất cả sự kiện từ các tài khoản AWS trong cùng một AWS Organization về một tài khoản hoặc một region duy nhất
  • AWS Account: 111122223333
    • Có 1 Lambda function gửi sự kiện (PutEvents)
  • AWS Account: 123456789012
    • Có 1 EventBridge Bus tên central-event-bus
    • Là nơi nhận sự kiện từ account khác
  • Luồng hoạt động:
    • Lambda trong account 111122223333 gửi sự kiện đến central-event-bus trong account 123456789012 thông qua quyền được cấp bởi policy ở trên.
Bạn thấy bài này thế nào?