EventBus
1 Amazon EventBridge 이벤트 버스
- Amazon EventBridge는 AWS 서비스, SaaS 애플리케이션, 커스텀 애플리케이션에서 발생하는 이벤트를 중앙에서 관리하고 처리할 수 있는 이벤트 버스 기능을 제공합니다.
- 이를 통해 다양한 소스의 이벤트를 수집, 필터링 및 전달하여 이벤트 기반 아키텍처를 구축할 수 있습니다.
2 이벤트 버스(Event Bus)
- 이벤트 버스는 이벤트가 수신되고 전송되는 곳입니다.
- 기본(Default) 이벤트 버스는 AWS 계정당 하나씩 제공되며, 대부분의 이벤트를 처리합니다.
- 커스텀(Custom) 이벤트 버스를 생성하여 특정 애플리케이션이나 워크로드에 맞게 이벤트를 분리하고 관리할 수 있습니다.
- 파트너 이벤트 버스는 SaaS(Software as a Service) 파트너로부터 직접 이벤트를 수신합니다.
2.1 이벤트 버스 예시
기본 이벤트 버스
Resources:
MyDefaultEventBusRule:
Type: "AWS::Events::Rule"
Properties:
EventPattern:
source:
- "aws.ec2"
detail-type:
- "EC2 Instance State-change Notification"
detail:
state:
- "pending"
State: "ENABLED"
Targets:
- Arn: !GetAtt MyLambdaFunction.Arn
Id: "MyLambdaFunction"
- 설명: 기본 이벤트 버스 예시 (클라우드 포메이션 템플릿)
커스텀 이벤트 버스
Resources:
MyCustomEventBus:
Type: "AWS::Events::EventBus"
Properties:
Name: "MyCustomEventBus"
- 설명: 커스텀 이벤트 버스 예시 (클라우드 포메이션 템플릿)
3 이벤트 소스(Event Source)
- 이벤트 소스는 이벤트가 발생하는 서비스나 애플리케이션을 나타냅니다.
- EventBridge는 AWS 서비스, SaaS 애플리케이션, 커스텀 애플리케이션에서 발생하는 이벤트를 수신할 수 있습니다.
3.1 AWS 서비스 이벤트
- EventBridge는 AWS 서비스에서 발생하는 이벤트를 기본적으로 수신할 수 있습니다.
- 예를 들어, EC2 인스턴스 상태 변경, S3 버킷 이벤트 등을 처리할 수 있습니다.
3.2 SaaS 애플리케이션 이벤트
- EventBridge는 다양한 SaaS 애플리케이션과 통합되어 이벤트를 수신할 수 있습니다.
- 이를 통해 외부 서비스와의 통합을 쉽게 구현할 수 있습니다.
3.3 커스텀 애플리케이션 이벤트
- EventBridge는 커스텀 애플리케이션에서 발생하는 이벤트도 처리할 수 있습니다.
- 애플리케이션 코드에서 EventBridge로 이벤트를 전송할 수 있습니다.
4 이벤트 필터링 및 규칙(Event Rules)
- 이벤트 필터링은 특정 조건에 따라 이벤트를 필터링하여 원하는 대상에만 전달하는 기능입니다.
- 규칙(Rule)을 사용하여 이벤트 패턴을 정의하고, 이벤트를 필터링 및 전달할 수 있습니다.
4.1 이벤트 필터링 예시
EC2 인스턴스 상태 변경 이벤트 필터링
Resources:
MyEC2InstanceStateChangeRule:
Type: "AWS::Events::Rule"
Properties:
EventPattern:
source:
- "aws.ec2"
detail-type:
- "EC2 Instance State-change Notification"
detail:
state:
- "running"
State: "ENABLED"
Targets:
- Arn: !GetAtt MyLambdaFunction.Arn
Id: "MyLambdaFunction"
- 설명: EC2 인스턴스 상태 변경 이벤트를 필터링하는 예시 (클라우드 포메이션 템플릿)
5 이벤트 대상(Event Targets)
- 이벤트 대상(Target)은 필터링된 이벤트가 전달되는 서비스나 리소스를 나타냅니다.
- EventBridge는 다양한 AWS 서비스 및 커스텀 애플리케이션을 대상으로 이벤트를 전달할 수 있습니다.