본문 바로가기
카테고리 없음

AWS EventBridge 개념,구조 및 동작 방식,사용 사례

by jranke 2025. 3. 11.

AWS EventBridge는 클라우드 환경에서 이벤트 중심 아키텍처를 구축하는 핵심 서비스입니다. 다양한 AWS 서비스 및 외부 애플리케이션과 연동되어 이벤트 기반 워크플로를 자동화하는 역할을 합니다. 본 글에서는 EventBridge의 개념, 구조, 사용 방법, 그리고 실제 활용 사례를 심층적으로 분석합니다.

 

AWS EventBridge 개념

AWS EventBridge는 이벤트 중심 설계(Event-Driven Architecture)를 지원하는 서비스로, 클라우드에서 애플리케이션 간의 데이터를 쉽게 연결하고 자동화할 수 있도록 도와줍니다.

 

EventBridge란?

EventBridge는 AWS 서비스, SaaS 애플리케이션, 그리고 자체 애플리케이션에서 발생하는 이벤트를 수집하고, 이를 특정 대상에게 전달하는 서비스입니다. 기존의 Amazon CloudWatch Events를 확장한 형태이며, 더 강력한 이벤트 라우팅 기능을 제공합니다.

EventBridge의 주요 기능

  • 이벤트 버스(Event Bus) 관리: 기본적으로 AWS 계정에 하나의 기본 이벤트 버스가 제공되며, 추가로 커스텀 이벤트 버스를 생성하여 특정 애플리케이션 또는 조직 단위로 분리할 수 있습니다.
  • 이벤트 라우팅 및 필터링: 규칙(Rule)을 설정하여 특정 이벤트가 발생했을 때, 원하는 대상(Target)으로 전달되도록 구성할 수 있습니다.
  • AWS 및 서드파티 서비스 연동: AWS Lambda, SQS, SNS, Step Functions 등 다양한 AWS 서비스와 통합되며, Zendesk, Datadog 같은 외부 SaaS 애플리케이션과도 연결 가능합니다.
  • 서버리스 이벤트 처리: 별도의 서버 운영 없이 이벤트를 자동으로 처리할 수 있어 비용 효율적이고 확장성이 뛰어납니다.

EventBridge 아키텍처
EventBridge 아키텍처 [출처: AWS]

EventBridge와 기존 CloudWatch Events 차이점

기능 CloudWatch Events EventBridge
기본 이벤트 버스 1개 여러 개 생성 가능
서드파티 통합 불가능 가능 (SaaS 이벤트 처리)
이벤트 필터링 단순 필터 고급 필터링 (패턴 매칭)
이벤트 저장 미지원 지원 (아카이빙 기능)

 

구조 및 동작 방식

EventBridge의 주요 구성 요소는 이벤트 버스, 규칙(Rule), 대상(Target) 세 가지로 이루어집니다.

1) 이벤트 버스 (Event Bus)

이벤트 버스는 다양한 소스에서 들어오는 이벤트를 중앙에서 관리하는 역할을 합니다. 기본적으로 AWS 계정에는 "default" 이벤트 버스가 제공되며, 사용자가 추가로 생성할 수도 있습니다.

  • 기본(Default) 버스: AWS 서비스에서 자동으로 이벤트를 수집
  • 커스텀(Custom) 버스: 특정 애플리케이션이나 조직 단위로 분리 가능
  • 파트너(Partner) 버스: SaaS 애플리케이션에서 생성된 이벤트를 수집

2) 규칙 (Rule) 설정 및 이벤트 필터링

EventBridge의 강력한 기능 중 하나는 이벤트 필터링입니다. 특정 조건을 만족하는 이벤트만 타겟으로 전달할 수 있습니다.

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

3) 이벤트 대상 (Target) 설정

이벤트가 특정 조건을 만족하면, 이를 전달할 대상을 설정해야 합니다. EventBridge는 다음과 같은 서비스를 대상으로 이벤트를 보낼 수 있습니다.

  • AWS Lambda: 이벤트 기반 서버리스 함수 실행
  • Amazon SQS: 대기열 시스템과 연동
  • Amazon SNS: 푸시 알림 및 메시징 서비스 활용
  • AWS Step Functions: 이벤트 기반 워크플로 자동화
  • SaaS 애플리케이션 (Zendesk, Datadog 등): 외부 서비스와 연동

 

사용 사례

EventBridge는 다양한 클라우드 애플리케이션에서 활용됩니다. 아래는 주요 사용 사례를 소개합니다.

1) 서버리스 애플리케이션 이벤트 처리

AWS Lambda와 결합하여 특정 이벤트가 발생할 때 자동으로 함수를 실행할 수 있습니다.

예시) 주문 처리 자동화

  • 시나리오: 전자상거래 플랫폼에서 사용자가 상품을 주문하면 자동으로 주문을 처리하는 서버리스 애플리케이션을 구축합니다.
  • 구성:
    1. 사용자가 결제를 완료하면 주문 정보가 DynamoDB에 저장됨.
    2. DynamoDB Streams와 EventBridge를 사용하여 OrderPlaced 이벤트를 감지.
    3. EventBridge가 해당 이벤트를 감지하면, AWS Lambda를 트리거하여 주문 확인 이메일을 발송하고 배송 시스템을 업데이트.

2) 마이크로서비스 간 이벤트 기반 통신

마이크로서비스 아키텍처에서 서비스 간 데이터 공유를 위해 EventBridge를 활용할 수 있습니다.

예시) 고객 활동 로그 수집 및 분석

  • 시나리오: 다양한 마이크로서비스에서 발생하는 사용자 이벤트(예: 로그인, 구매, 검색)를 중앙에서 수집하여 분석합니다.
  • 구성:
    1. 각 마이크로서비스(AuthService, ProductService, OrderService)가 사용자 활동 이벤트를 EventBridge에 게시.
    2. EventBridge가 해당 이벤트를 Kinesis Data Firehose로 전달.
    3. Firehose가 데이터를 S3에 저장하고, Athena를 이용해 분석.

3) 실시간 모니터링 및 알림 시스템 구축

AWS CloudTrail 및 EventBridge를 조합하여 보안 이벤트를 실시간으로 감지하고, SNS를 통해 관리자에게 알림을 보낼 수 있습니다.

예시) 비정상적인 로그인 감지 및 경고

  • 시나리오: 관리 콘솔에서 비정상적인 로그인 시도를 감지하고 보안팀에 즉시 알림을 보냅니다.
  • 구성:
    1. AWS CloudTrail이 IAM 사용자 로그인 이벤트를 감지.
    2. EventBridge가 특정 국가 또는 특정 IP에서 발생한 로그인 실패 이벤트를 필터링.
    3. Lambda가 보안팀에 SNS 또는 Slack 메시지로 경고 전송.

AWS EventBridge는 클라우드 네이티브 환경에서 이벤트 중심 아키텍처를 구축하는 필수 서비스입니다.

기본적인 개념과 구조를 이해하면, 다양한 AWS 서비스 및 서드파티 애플리케이션과 연동하여 효율적인 이벤트 워크플로를 구축할 수 있습니다.