IT/AWS

[AWS] Instance scheduler 에서 적용할 일정 등록하기 (scheduler-cli 사용)

반응형

Intro

Instance scheduler는 AWS에서 제공해주는 cloudformation기반 솔루션 입니다. 자세한 내용은 링크에서 확인해주시기 바랍니다. Instance scheduler 를 구축하면 dynamodb 테이블에 원하는 스케줄 아이템을 등록해야 하는데요. AWS console에서 클릭클릭 없이 cli 기반으로 스케줄을 생성할 수 있습니다. 이것이 바로 오늘 소개해드릴 scheduler-cli 입니다.

scheduler-cli란?

aws에서 Instance scheduler를 만들때 쉽게 명령어 기반으로 일정을 등록할 수 있도록 만들어준 인터페이스 솔루션입니다. AWS 콘솔에서 dynamodb 테이블의 아이템을 만들때, period타입의 아이템을 만들고 schedule 타입의 아이템을 만들어서 연결해주어야 합니다. 이 두번의 작업이 번거로울 수 있는데요. scheduler-cli 를 사용하면 쉽게 명령어 기반으로 원하는 스케줄의 dynamodb 테이블의 아이템을 생성할 수 있습니다.

사용 방법

우선 scheduler-cli 를 다운로드 받아 설치한뒤에 명령어를 입력하여 period 를 생성하고 shedule 을 생성하여 연결해 줍니다.

  • scheduler-cli 다운로드
## download
curl -O https://s3.amazonaws.com/solutions-reference/instance-scheduler-on-aws/latest/instance_scheduler_cli-1.5.3-py3-none-any.whl

## install
pip install instance_scheduler_cli-1.5.3-py3-none-any.whl

## check
scheduler-cli –-help
  • 특정시간에 시작/정지 하는 스케줄 생성
    • 생성한_CloudFormation_스택_이름 에는 Instance scheduler를 생성할때 입력한 cloudformation 스택의 이름을 입력합니다.
    • create-schedule 을 할때 먼저 생성한 periods 의 이름을 입력합니다.
# 평일 스케줄
scheduler-cli create-period \
--stack {생성한_CloudFormation_스택_이름} \
--region ap-northeast-2 \
--name kym-office-time \
--begintime 07:00 --endtime 20:00 \
--weekdays mon-fri

scheduler-cli create-schedule \
--stack {생성한_CloudFormation_스택_이름} \
--name kym-office-time \
--periods kym-office-time \
--timezone Asia/Seoul

# 주말 스케줄
scheduler-cli create-period \
--stack {생성한_CloudFormation_스택_이름} \
--region ap-northeast-2 \
--name kym-weekend-time \
--begintime 09:00 --endtime 18:00 \
--weekdays sat-sun

scheduler-cli create-schedule \
--stack {생성한_CloudFormation_스택_이름} \
--name kym-weekend-time \
--periods kym-weekend-time \
--timezone Asia/Seoul
  • 특정 시간에만 멈추는 스케줄 생성
# 매일 저녁 8시에 종료되는 스케줄
scheduler-cli create-period \
--stack {생성한_CloudFormation_스택_이름} \
--name stop-at-8 \
--endtime 20:00 \
--region ap-northeast-2

scheduler-cli create-schedule \
--stack {생성한_CloudFormation_스택_이름} \
--name seoul-stop-at-8 \
--periods stop-at-8 \
--timezone Asia/Seoul
반응형