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) : 메시지 큐 서비스
애플리케이션 간 메시지를 안전하게 저장하고 전송할 수 있도록 돕는다. 주로 트래픽이 갑자기 증가할 때 요청을 일시적으로 큐에 저장하여 시스템의 부하를 줄이는 데 사용된다.