티스토리 뷰

얼마 전에 Amazon EventBridge Scheduler가 한국 리전에 출시되었습니다. 

Amazon EventBridge SchedulerAmazon EventBridge 규칙과 기능이 거의 흡사합니다.

 

Amazon EventBridge 규칙은 이벤트 기반 애플리케이션을 구성할 수 있게끔 해주며 Lambda, SNS, SQS와 통합하여 애플리케이션을 보다 확장성 있게 설계할 수 있습니다.

 

만약 매일 오후 1시에 외부 API를 호출하여 조회한 데이터를 DB에 저장하는 기능을 개발해야 한다고 가정하면 다음처럼 구성할 수 있습니다.

1. Amazon EventBridge 규칙에 매일 오후1시에 이벤트가 트리거 되게끔 설정합니다.

2. 트리거 대상을 Lambda 함수로 설정해둡니다.

3. 매일 오후 1시에 Lambda 함수가 실행되어 외부 API를 호출하여 데이터를 DB에 저장합니다.

 

Amazon EventBridge Scheduler는 이 기능을 포함하여 더 많은 이점을 제공합니다. 이제 그 점에 대해 알아보겠습니다.

 

Amazon EventBridge 규칙과 Amazon EventBridge Scheduler

Amazon EventBridge 콘솔 화면에 들어가면 위와 같은 사진을 보실 수 있습니다. 

 

 

 

Amazon EventBridge 규칙

Amazon EventBridge 규칙을 생성하는 화면입니다.

규칙 유형을 일정으로 선택하면 아래처럼 EventBridge Scheduler를 사용할 수 있다고 메세지가 노출됩니다.

일단 Amazon EventBridge의 기능을 소개해드리기 위해 '규칙 생성으로 이동'을 클릭하겠습니다.

 

 

 

일정한 빈도로 규칙을 생성할 수 있고 일정 패턴으로 규칙을 생성할 수 있습니다.

일정 패턴으로 하게 되면 단점이 있는데 바로 cron 표현식을 UTC 기준으로 작성하셔야 합니다.

 

예를 들어 매일 오후 1시에 이벤트가 트리거 되게끔 구성하려면 0 4 ? * * * 이런 식으로 작성하셔야 합니다.

 

 

 

그리고 대상을 선택할 수 있으며 예시에서는 Lambda 함수를 지정해두었습니다.

매일 오후 1시에 특정 EC2 인스턴스를 시작하게끔 코드가 개발돼있는 Lambda 함수를 실행하도록 해두었습니다.

Amazon EventBridge 규칙은 여기까지 설명해 드리고 Amazon EventBridge Scheduler에 대해 설명드리겠습니다.

 

 

Amazon EventBridge Scheduler

Amazon EventBridge Scheduler는 Amazon EventBridge 규칙과 달리 cron식을 작성할 때 UTC 기준으로 작성하지 않고 Asia/Seoul 기준으로 작성하면 됩니다. 즉, cron 표현식을 더 직관적으로 작성하실 수 있습니다.

 

그리고 유연한 기간이라는 옵션이 추가되었습니다.

예를 들어 유연한 기간을 15분으로 선택하면 스케줄이 시작 시간으로부터 정해진 기간 이내에 실행할 수 있게 해주는 옵션입니다. 지금 당장은 필요가 없어서 꺼짐 처리 해두었습니다.

 

 

 

그리고 Amazon EventBridge Scheduler는 일광 절약 시간제에 맞게 일정을 조정합니다. 

이 옵션은 일정 패턴을 반복 일정으로 지정해뒀을 경우에만 선택할 수 있습니다. 필수값은 아닙니다.

자세한 내용은 여기를 클릭하시면 이해하는 데 도움이 되실 것 같습니다.

 

 

대상은 여러 서비스 중 하나를 선택하실 수 있습니다.

 

 

 

Amazon EventBridge 규칙에서는 대상만 지정할 수 있고 파라미터는 전달할 수 없지만

Amazon EventBridge Scheduler에서는 대상을 지정 후 대상에게 파라미터를 전달해줄 수 있습니다.

 

여기서 제가 간단하게 예제 하나를 만들고 보여드리겠습니다.

 

Amazon EventBridge Scheduler 예제

지금 이 글을 작성하고 있는 시간은 2023년 4월 10일 오전 0시 34분입니다.

0시 40분에 실행되도록 스케줄러를 만들어보겠습니다.

 

 

 

cron 표현식은 위 사진처럼 해두었습니다.

 

 

 

대상은 SQS로 해두었고 페이로드에는 위 JSON 값을 전달하도록 세팅해두었습니다.

 

 

 

정상적으로 지정된 시간에 스케줄러가 동작하여 지정된 파라미터가 잘 전달된 걸 보실 수 있습니다.

 

 

공통점 및 차이점

  Amazon EventBridge 규칙 Amazon EventBridge Scheduler
공통점 특정 주기에 이벤트를 트리거하여 AWS의 서비스와 통합하여 사용가능하며 애플리케이션을 보다 확장성 있게 설계할 수 있습니다.
차이점 cron 표현식을 UTC로 작성
이벤트 대상에 파라미터 전달 X
cron 표현식을 Asia/Seoul로 작성
이벤트 대상에 파라미터 전달 O

공통점과 차이점에 대해 간단히 정리해보았습니다. 

저도 Amazon EventBridge Scheduler를 잠시 사용해보았는데 cron 표현식을 직관적으로 작성할 수 있는 이점이 있었고

소스 코드 수정 없이 이벤트 대상에 파라미터를 직접 전달해줌으로써 약간의 번거로움을 해소할 수 있었습니다.

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함