Batch System With Node.js, Lambda, and PostgreSQL
- Part 5. 스케쥴링 (feat. AWS EventBridge rules)

목차

Part 1. 배치 시스템 설계 (링크)
Part 2. 데이터 업로더 (feat. Law SQL) (링크)
Part 3. 데이터베이스 테스트 (feat. Jest) (링크)
Part 4. 결과 알람 (feat. Slack) (링크)
Part 5. 스케쥴링 (feat. AWS EventBridge rules)


스케쥴러

스케쥴러는 미리 예약해둔 시간에 특정 작업을 실행시켜주는 도구이다.
AWS EventBridge Rules로 스케쥴러를 구현했다. 예약 시간은 정하기 나름이다. 특정 시간마다 실행시킬 수도 있고 얼마간의 시간을 간격으로 실행시킬 수도 있다.

매일 새벽 2시에 스케쥴러가 실행되도록 설정했다.
웹 콘솔에 보여지는 시간은 UTC 기준이다.


스케쥴러는 AWS 다양한 서비스에 이벤트를 전달 할 수 있다.
여기선 람다 서비스를 연결했고 이벤트로 넘겨줄 JSON 양식을 작성해줬다.


배치 자동화

새벽2시마다 스케쥴러가 배치 시스템을 가동함으로써 자동화가 구현됐다.

스케쥴러는 하루에 한번 배치 실행기 람다를 딱 1번 실행시킨다.
그럼 ‘배치 실행기’에서 데이터 항목별로 배치 작업 유무를 파악하여 필요한 업로드 람다를 호출해주는 것이다. 배치 작업 유무는 데이터베이스에 저장되어 있다.
작업할 사항이 아무것도 없는 날은 배치 실행기 람다에서 실행은 종료된다.


데이터 서비스 반영 시점

배치 처리된 데이터가 즉시 서비스에 반영되어서는 안된다.
모든 데이터의 배치가 완료되고 모든 테스트 및 결과 리포트를 확인한 후 서비스에 적용해야 한다.

이를 위해서 데이터베이스에서 데이터의 버전을 관리해주고 있다.
즉 데이터 버전을 올려야만 새로운 데이터가 서비스에 적용되는 것이다.
데이터 버전 만큼은 수동으로 관리해주고 있다.

댓글남기기