Search

EventBridge

대분류
DevOps/Tool
소분류
AWS
유형
서버리스 서비스
부유형
서버리스 이벤트 라우터
주요 레퍼런스
https://velog.io/@dev_tmb/AWS-EventBridge%EC%97%90-%EB%8C%80%ED%95%B4-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90
https://docs.aws.amazon.com/ko_kr/systems-manager/latest/userguide/running-automations-event-bridge.html
https://www.megazone.com/techblog_20200309_reducing-custom-code-by-using-advanced-rules-in-amazon-eventbridge/
최종 편집 일시
2025/03/27 01:24
생성 일시
2024/10/29 09:30
13 more properties

EventBridge

다양한 소스의 데이터와 애플리케이션을 연결하는 데 사용할 수 있는 서버리스 서비스
AWS 서비스, 통합 소프트웨어 SaaS(Software as a Service) 애플리케이션 및 자체 애플리케이션 간에 이벤트를 라우팅할 수 있다.

이벤트 기반 아키텍처 (EDA: Event Driven Architecture)

이벤트 프로덕터가 이벤트를 생성하면 해당 이벤트 룰(규칙)에 따라 타겟을 작동시킨다.
이벤트 기반 아키텍처(EDA)는 민첩성을 높히고 안정적이고 확장성이 높은 어플리케이션을 구축하는데 도움을 준다.

사용 목적

업무를 자동화 시키는 역할
예시로는 이런게 있을 수 있다. (필자가 실제로 해본 것)
데이터가 변경된 것을 감지(이벤트)하여 슬랙으로 관리자에게 알림을 전송시키기(상태 변경 모니터링)
데이터가 변경된 것을 감지(이벤트)하여 데이터 파이프라인 자동화 시키기
(필자는 glue → batch 파이프라인을 자동화 시킴)
스케줄러를 생성하여 각 주기에 맞춰서 작업을 실행시키기 (크론-Cron 작업)
또는 이런 것도 있다.
SaaS 통합을 통한 기능 확장
애플리케이션을 다른 SaaS 애플리케이션에 연결
사용자 지정 이벤트를 EventBridge로 전송한 다음 API 대상을 통해 Zendesk CRM으로 전송할 수 있다.

이점 및 기능

이벤트 기반 아키텍처 구축

EventBridge는 확장 가능한 이벤트 기반 애플리케이션을 구축하기 위한 서버리스 서비스이다.
완전 관리형 보안 통합을 통해 비용 절감, 생산 시간 단축, 매우 민첩한 소프트웨어 개발을 가능하게 한다.

사용자 지정 코드 작성 최소화

EventBridge를 사용하면 애플리케이션을 더 쉽게 연결할 수 있다.
개발자는 코드를 적게 작성하면서도 다양한 애플리케이션(추가 코드 및 작업이 필요 없는 타사 SaaS 애플리케이션, 마이크로서비스, 엔터프라이즈 애플리케이션, 통합하기 쉬운 AWS 서비스)을 구축할 수 있다.

감소 및 보안

감소 및 보안 - 관리하거나 규모를 조정할 인프라가 없다.
권한이 있는 데이터를 관리하기 위한 세분화된 권한으로 자동 보안 및 패치를 적용한다.
다른 iPaaS 솔루션 같은 구속 효과를 겪거나 값비싼 라이선싱(Licensing)이 필요하지 않다.

생산 시간 단축

EventBridge는 이벤트 기반 애플리케이션을 개발하고 운영하기 위한 기본 제공 도구를 제공한다.

핵심 기능

Amazon EventBridge 콘솔을 연다.

Event Bus

이벤트 버스는 소프트웨어 아키텍처 패턴 중 하나로, 다른 컴포넌트나 모듈 간의 통신을 관리하기 위해 사용된다. 이 패턴은 이벤트를 발행(emit)하고, 해당 이벤트를 구독(subscribe)하는 리스너에게 전달함으로써 컴포넌트 간의 결합도를 낮추고, 코드의 모듈화를 촉진시킨다.

탐색 창에서 이벤트 버스를 선택

Create event bus(이벤트 버스 생성)를 선택

새 이벤트 버스의 이름을 입력

이벤트 KMS key EventBridge 버스에 저장된 이벤트 데이터를 암호화할 때 사용할 형식 선택

리소스 기반 정책

리소스 기반 정책: 이 영역에서는 이벤트 버스에 대한 권한을 설정할 수 있는 JSON 정책을 작성할 수 있다. 권한 정책을 추가하면 특정 IAM 역할이나 사용자에게 이벤트 버스에 접근할 수 있는 권한을 부여할 수 있다.
템플릿 로드: 기존의 정책 템플릿을 불러와 쉽게 설정할 수 있다. 템플릿을 사용하여 일관된 정책을 적용하거나 특정 이벤트에 대한 접근 제어를 설정할 수 있다.

아카이브 (선택 사항)

아카이브: 이벤트 버스에서 게시되는 이벤트를 아카이브하는 기능이다. 기본 보존 기간은 무기한으로 설정되어 있으며, 원하는 경우 이 보존 기간을 변경할 수 있다. 아카이브가 활성화되면 발생한 이벤트들을 나중에 다시 검토할 수 있도록 저장한다.
활성화: 아카이브 기능을 활성화하면 이벤트가 보존되고 필요에 따라 복구할 수 있다. 참고로, 아카이브 기능을 활성화하면 추가 비용이 발생할 수 있다.

스키마 검색 (선택 사항)

스키마 검색: 이 기능을 활성화하면 이벤트 버스에서 발생하는 이벤트의 스키마를 자동으로 추론한다. 즉, 수신된 이벤트의 형식을 자동으로 분석하여 구조를 파악한다.
활성화: 스키마 검색을 활성화하면 추후 이벤트 데이터를 쉽게 분석할 수 있도록 이벤트 구조를 자동으로 감지하고 기록한다.

Scheduler

탐색 창에서 스케줄러를 선택

Create Scheduler(일정 생성)를 선택

1.
새 일정의 이름을 입력
2.
일정 패턴 선택 및 입력
a.
일회성 일정 : 특정 날짜와 시간에 한 번만 발생하는 일정을 설정할 때 사용
날짜 및 시간: 일정의 발생 날짜와 시간을 설정하는 부분이다.
날짜 형식: YYYY/MM/DD 형태로 입력하며, 원하는 날짜를 지정할 수 있다.
시간 형식: hh:mm 형태로 24시간 형식을 사용하여 시간 입력이 가능하다.
시간대
선택된 시간대에 따라 일정이 발생하며, 기본적으로 현재 위치에 맞는 시간대가 자동 설정된다.
여기서는 "(UTC+09:00) Asia/Seoul" 시간대로 설정되어 있다.
유연한 기간
일정이 유연하게 발생할 수 있는 기간을 설정하는 옵션
예를 들어, 이 기능을 활성화하면 지정한 시간에 정확하게 시작하지 않고, 설정된 범위 내에서 가장 근접한 시간에 시작되도록 설정할 수 있다.
기본적으로 15분 내외로 설정된다.
b.
반복 일정
일정이 반복적으로 발생하도록 설정할 때 사용
반복 주기나 빈도를 추가적으로 설정
일정 유형
Cron 기반 일정
Rate 기반 일정

기간 설정

시작 날짜 및 시간
시작 날짜: 일정을 시작할 날짜를 지정한다. YYYY/MM/DD 형식으로 입력하며, 사용자가 원하는 시작 날짜를 입력할 수 있다.
시작 시간: 일정을 시작할 시간을 지정하며, 24시간 형식(hh:mm)을 사용한다. 시작 시간은 일정이 첫 번째로 트리거될 때의 시간이다.
종료 날짜 및 시간
종료 날짜: 일정이 더 이상 발생하지 않을 종료 날짜를 지정한다. 마찬가지로 YYYY/MM/DD 형식으로 입력하며, 일정을 종료할 시점을 정할 수 있다.
종료 시간: 일정을 종료할 시간을 지정하며, 24시간 형식(hh:mm)을 사용한다. 이 종료 시간 이후에는 일정이 트리거되지 않는다.

대상 정보 설정

스케줄러 이벤트가 발생되었을 때, 발생 대상을 어디에 둘지를 세팅하는 것
대상 API: 이 섹션에서는 일정을 통해 호출할 수 있는 AWS 서비스의 API를 선택한다. EventBridge에서 발생한 이벤트에 따라 지정된 API 호출을 통해 다양한 AWS 서비스와 상호작용이 가능하다.
템플릿 형식의 대상: 자주 사용되는 API가 템플릿으로 제공되어 있어, 사용자들이 쉽게 선택할 수 있도록 되어 있다.
모든 API: 필요한 경우 모든 API 목록에서 선택할 수도 있으며, 이는 템플릿에 없는 특정 API를 선택하고자 할 때 유용하다.
s3 같은 것도 존재

설정

a.
일정 활성화
EventBridge 일정이 설정된 시간에 실행되도록 하는 최종 단계
생성 시 활성화하지 않아도 이후에 언제든지 변경할 수 있다.
비활성화 상태로 두면 테스트나 비용 관리에 유리하며, 활성화 여부는 상황에 맞게 유연하게 조정할 수 있다.
일정 활성화는 보안 및 권한 설정과 관련이 있으므로, 권한 관리도 중요하다.
b.
재시도 정책 및 DLQ(Dead Letter Queue)
재시도 정책: 실패한 호출을 최대 24시간 동안 재시도할 수 있으며, 여기서 재시도 기간과 최대 재시도 횟수를 설정할 수 있다. 기본값으로 최대 24시간 동안 최대 185회까지 재시도가 가능하다.
DLQ(Dead Letter Queue): 재시도 후에도 실패한 이벤트를 Amazon SQS 대기열에 저장하여 이후에 검토할 수 있다. "없음", "내 AWS 계정의 SQS 대기열", "다른 계정의 SQS 대기열" 중 선택 가능하다.
SQS(Amazon Simple Queue Service) : 메시지 큐 서비스 애플리케이션 간 메시지를 안전하게 저장하고 전송할 수 있도록 돕는다. 주로 트래픽이 갑자기 증가할 때 요청을 일시적으로 큐에 저장하여 시스템의 부하를 줄이는 데 사용된다.

실제 제작