[AWS] EventBridge와 Lambda 이용해 S3에 기록 적재하기

jake·2022년 11월 9일
0

AWS

목록 보기
2/3

EventBrigde : 서버리스 이벤트 버스로 다양한 이벤트를 받아서 라우팅, 필터링, 트리거링할 수 있다. 특정 규칙을 지정하고 그 규칙에 부합하면 AWS의 다른 서비스를 호출할 수 있다. 여기서는 일정 시간마다 AWS 서비스를 호출시켜주는 스케줄러로서 사용해보자.
Lambda : 함수역할, 무엇인가 함수를 호출(트리거링)하면 실행되는 구조(API GW, S3, SQS, EventBridge 등)

준비물 : AWS 계정, 로그 발생시키는 py파일


1. AWS Lambda에 접속 go

2. 함수 생성 후 이름 작성 후 런타임은 python 3.9(3.8, 3.7 상관 없음)으로 설정, 로그 발생시키는 py파일을 작성할 것이기 때문이다.

3. 함수 만들면 코드가 보이는데 여기에 이제 로그 발생시키는 규칙을 작성하면 된다. 주의할 점은 현재 S3의 "test-wootag"라는 폴더에 로그를 적재할 것이기 때문에 Bucket('test-wootag')라고 적어야 한다.
S3에 generated_log라는 폴더를 만든 후 여기에 기록을 적하는 것이 코드의 목적이다.

다 적었으면 Deploy 버튼을 꼭 누르자. 그래야 변경사항이 적용된다.

4. 한가지 더 주의할 점이 있다.
현재 Lambda함수에서 S3 폴더에 접근하려고 하기 때문에 허가가 필요하다. (디폴트는 접근하지 못하므로) 허가를 받기 위해 구성에 들어가보자. 그러면 권한 카테고리에 역할 이름이라는 링크가 있다. 클릭해보자.

5. 이제 IAM창이 뜨면서 복잡한 홈페이지가 뜬다. 권한 추가 버튼을 누르면 아래로 정책 연결이라는 버튼이 뜬다. 정책 연결에 들어가 보자.

6. 이곳에서 Lambda함수가 S3에 접근하게 만들 수 있다. 우리가 필요한 정책은 "AmazonS3FullAccess"이다. 저 키워드를 검색한 후 클릭하고 정책 연결을 누르면 끝이다. 이제 만든 Lambda함수는 S3에 자유롭게 접근할 수 있다.

7. Lambda함수를 만들었지만 이걸 발생시킬 뭔가가 필요하다. 따라서 함수를 발동시킬 EventBridge를 만들어보자. AWS EventBridge에 접속 후 규칙 이름을 적고 일정 옵션 선택

8. 크론식을 알면 첫 번째 옵션을 사용하면 된다. 두번째 옵션 선택 후 1분으로 설정(결과를 빨리 확인하기 위해 1분으로 설정함)

9. 아까 만든 Lambda함수를 연결시키는 것이 목적이다. AWS 서비스 -> Lambda함수 -> 만든 Lambda 함수 선택 -> 규칙 생성 버튼 클릭

10. 이제 EventBridge의 규칙과 Lambda함수가 연결되었다. 확인해보기 위해 Lambda함수 창으로 가면 사진처럼 둘이 연결되어 있는게 보인다.

11. 원래 목적인 기록 적재가 되었는지 확인해보자. test-wootag에 들어가니 generated_log폴더가 만들어져 있다.

12. generated_log폴더에 들어가면 벌써 log가 3개나 있다. 시간대를 잘 보면 1분마다 로그가 생긴 것을 알 수 있다. EventBridge에서 함수 발동 주기를 1분으로 설정했기 때문에 거기에 맞게 로그가 1분마다 적재되고 있는 것이다.

0개의 댓글