사용 목적
- s3에 파일이 적재되었을 경우, 해당 이벤트를 감지한 뒤 진행되야 할 업무 자동화 프로세스를 만들게되었다.
이벤트 감지에 대한 서비스 AWS EventBridge 이용하려면 어떻게 사용해야 하는지 알아보고자 한다
EventBridge란
- EDA (Event Driven Architecture)를 구성하는데 도움을 주는 서버리스 서비스
- 다양한 소스 데이터와 앱을 연결하는데 사용
- AWS 서비스에 대한 이벤트 감지 후 라우팅
- 예로 들어 EC2 생성되었거나 EC2 인스턴스가 삭제되었다면 해당 이벤트 감지 후 특정 이벤트 발생
- 이벤트기반 아키텍처는 민첩성을 높이고 안정적이고 확장 가능한 애플리케이션을 구축하는데 도움을 줌
EventBridge 흐름
- 모든 이벤트는 이벤트버스와 연결
- 이벤트 버스란 이벤트를 수신하는 파이프라인.
- 다양한 소스의 이벤트를 여러 대상으로 라우팅해야 할 경우 이벤트 버스 사용
- 서비스 또는 시스템 간의 브로커 역할
EventBridge VS Lambda 트리거 차이
- 이벤트 감지는 Lambda에서 트리거추가로 사용할 수도 있음
- 하지만 전송에 도움되는 필터링, 변환, 정해진 시간 예약 등을 추가해야 할 경우 EventBridge를 사용
(다른 말이지만 현재 내가 사용하려는 목적은 Lambda의 트리거로도 사용해도 무방하다. 하지만 EventBridge의 사용 방법에 대한 탐색을 하고자 해당 포스팅을 하게 되었다.)
EventBridge 실행 방법
실행전 S3 속성변경
1. 이벤트 감지 대상 s3 Bucket 속성 -> Amazon EventBridge 편집 클릭 -> 활성화
Bucket의 폴더별로 속성을 설정할 수는 없으며 Bucket 전체 속성을 변경해야 함.
- 이와 같은 작업이 있어야 default 이벤트 버스로 전송이 됨.
Lambda 함수실행
1. 함수 만들기
자세한 내용은 아래 포스팅을 참고하시면 좋습니다.
https://big-data-analyst.tistory.com/17
EventBridge 생성
1. 이벤트 버스 클릭 -> default 클릭
- default는 사용자가 생성하지 않아도 기본으로 생성되어 있음
2. 리소스 기반 정책
- https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-use-resource-based.html
- 연결된 대상을 호출하려면 EventBridge에 적절한 권한이 필요하다.
- 리소스 기반 정책은 위의 주소 참고
3. 규칙
- 규칙 클릭 -> 규칙 생성 클릭
3-1. 규칙 세부 정보 정의
s3 파일 적재 시 이벤트가 발생되는 규칙을 만들어 볼 예정이다.
규칙 이름 및 이벤트 버스 정보 유형을 선택 -> 다음 버튼 클릭
3-2. 이벤트 패턴 작성
아래의 사진은 s3 모든 버킷 object생성 시 이벤트 발생하는 패턴을 작성하였다.
- source : 이벤트 감지될 AWS 서비스
- detail-type: s3 이벤트 유형
- detail/ bucket / name : 이벤트 특정 버킷일 경우 작성
- object / key / prefix : bucket안의 특정 폴더를 선택할 경우 작성
3-3. 대상 선택
생성한 Lambda 함수 선택
- eventbridge 대상은 이벤트 관련 정보를 해당 대상으로 보냄
- 데이터를 전달하기 위해서는 대상 리소스에 액세스 할 수 있는 권한 필요 (위의 s3 속성 변경 참고)
- https://docs.aws.amazon.com/ko_kr/eventbridge/latest/userguide/eb-targets.html#eb-console-targets
- aws 서비스 대상
3-4. 규칙 생성 클릭 후 EventBridge 생성은 완료되었다.
테스트 두 가지 방법
첫 번째. EvnetBridge 모니터링으로 확인 가능하며 시간을 커스텀하며 확인할 수 있다.
두 번째. 람다 함수 로그로 확인하기
1. Cloudwatch 로그 그룹 선택
2. EventBridge에서 설정한 lambda/test 선택
3. S3에 파일을 적재 후 로그스트림이 생성된 것을 확인되면 EventBridge 테스트는 성공적으로 완료된 것을 볼 수 있다.
(만일 Lambda의 오류발생 시, 해당 내용은 EventBridge 오류와는 무관하므로 Lambda 포스팅에서 작성)
마무리
EventBridge의 기본적인 툴을 다뤄보았으며 권한을 따로 설정할 필요가 없었기에 생각보다 어렵지 않게 진행하게 되었다.
브로커 역할이 필요한 경우 EventBridge를 사용하여 애플리케이션의 작업을 효율적으로 사용할 수 있게 만들 것 같다. Lambda의 경우 사용하는 만큼 비용이 발생되므로 해당 서비스를 이용한다면 비용절감 효과도 가져올 것으로 보인다.
'AWS' 카테고리의 다른 글
AWSLambda 개념 및 사용 방법 (0) | 2024.04.15 |
---|
댓글