EventBridge 스케줄러의 일정 유형 - EventBridge 스케줄러

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

EventBridge 스케줄러의 일정 유형

다음 주제에서는 Amazon EventBridge 스케줄러가 지원하는 다양한 일정 유형과 EventBridge 스케줄러가 일광 절약 시간제를 처리하는 방법과 다양한 시간대의 일정 지정에 대해 설명합니다. 일정을 구성할 때 속도 기반, cron 기반일회성 일정이라는 세 가지 일정 유형 중에서 선택할 수 있습니다.

속도 기반 일정과 cron 기반 일정 모두 반복 일정입니다. 구성하려는 일정 유형에 대한 일정 표현식을 사용하고 EventBridge 스케줄러가 표현식을 평가하는 시간대를 지정하여 모든 반복 일정 유형을 구성합니다.

일회성 일정은 대상을 한 번만 간접적으로 호출하는 일정입니다. EventBridge 스케줄러가 일정을 평가하는 시간, 날짜 및 시간대를 지정하여 일회성 일정을 구성할 수 있습니다.

참고

EventBridge 스케줄러의 모든 일정 유형은 60초 정밀도로 대상을 간접적으로 호출합니다. 즉, 일정을 1:00에 실행하도록 설정하면 1:00:00~1:00:59에서 대상 API가 간접적으로 호출됩니다.

다음 섹션을 사용하여 각 반복 일정 유형에 대한 일정 표현식을 구성하는 방법과 EventBridge 스케줄러에서 일회성 일정을 설정하는 방법에 대해 알아보십시오.

속도 기반 일정

속도 기반 일정은 일정에 지정한 시작 날짜 이후에 시작되며 일정 종료 날짜까지 사용자가 정의한 일반 속도로 실행됩니다. 속도 기반 일정을 사용하여 가장 일반적인 반복 예약 사용 사례를 설정할 수 있습니다. 예를 들어 15분마다, 2시간에 한 번 또는 5일에 한 번씩 대상을 간접적으로 호출하는 일정을 원한다면 속도 기반 일정을 사용하여 이를 달성할 수 있습니다. rate 표현식을 사용하여 속도 기반 일정을 구성합니다.

속도 기반 일정의 경우 StartDate 속성을 사용하여 일정의 첫 번째 발생을 설정합니다. 속도 기반 일정에 대해 StartDate를 제공하지 않으면 일정에서 즉시 대상을 간접적으로 호출하기 시작합니다.

Rate 표현식에는 다음과 같이 공백으로 구분된 두 개의 필수 필드가 있습니다.

구문

rate(value unit)
value

양수.

unit

일정에서 대상을 간접적으로 호출할 시간 단위입니다.

유효한 입력: minutes | hours | days

예제

다음 예제는 AWS CLI create-schedule 명령과 함께 rate 표현식을 사용하여 속도 기반 일정을 구성하는 방법을 보여줍니다. 이 예제에서는 5분마다 실행되는 일정을 생성하고 템플릿 기반 SqsParameters 대상 유형을 사용하여 Amazon SQS 대기열에 메시지를 전송합니다.

이 예제에서는 --start-date 파라미터 값을 설정하지 않으므로, 일정을 생성하고 활성화한 직후에 일정에서 대상을 간접적으로 호출하기 시작합니다.

$ aws scheduler create-schedule --schedule-expression 'rate(5 minutes)' --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

Cron 기반 일정

cron 표현식은 선택한 특정 시간에 실행되는 세분화된 반복 일정을 생성합니다. EventBridge 스케줄러는 UTC(협정 표준시) 또는 일정을 생성할 때 지정한 시간대로 cron 기반 일정을 구성할 수 있도록 지원합니다. Cron 기반 일정을 사용하면 일정 실행 시기와 빈도를 더 잘 제어할 수 있습니다. EventBridge 스케줄러의 rate 표현식 중 하나에서 지원되지 않는 사용자 지정 반복 일정이 필요한 경우 cron 기반 일정을 사용하십시오. 예를 들어 오전 8시에 실행되는 cron 기반 일정을 생성할 수 있습니다. 매월 첫째 월요일(PST) cron 표현식을 사용하여 cron 기반 일정을 구성합니다.

cron 표현식은 다음과 같이 분, 시간, 일, 월, 요일 및 선택적 필드인 연도 등 공백으로 구분된 다섯 개의 필수 필드로 구성됩니다.

구문

cron(minutes hours day-of-month month day-of-week year)
필드 와일드카드

Minutes

0~59

, - * /

시간

0~23

, - * /

날짜

1~31

, - * ? / L W

1-12 또는 JAN-DEC

, - * /

요일

1-7 또는 SUN-SAT

, - * ? L #

연도

1970~2199

, - * /

와일드카드
  • ,(쉼표) 와일드카드는 추가 값을 포함합니다. ‘월’ 필드에서 JAN, FEB, MAR은 1월, 2월, 3월을 포함한다는 의미입니다.

  • -(대시) 와일드카드는 범위를 지정합니다. ‘일’ 필드에서 1-15는 지정된 달의 1일에서 15일까지 포함한다는 의미입니다.

  • *(별표) 와일드카드는 필드의 모든 값을 포함합니다. ‘시간’ 필드에서 *는 모든 시간을 포함한다는 의미입니다. '날짜' 및 '요일' 필드 모두에서 *를 사용할 수 없습니다. 필드 중 하나에 사용할 경우 다른 하나에는 반드시 ?를 사용해야 합니다.

  • /(슬래시) 와일드카드로 증분을 지정합니다. 예를 들어, '분' 필드에 1/10을 입력하면 지정한 시간의 1분부터 시작해서 매 10분 간격을 지정할 수 있습니다(즉, 11분, 21분, 31분 등).

  • ?(물음표) 와일드카드는 any를 지정합니다. '날짜' 필드에 7을 입력하고 일주일 중 어느 날이라도 괜찮다면 '요일' 필드에는 ?을 입력합니다.

  • '날짜' 또는 '요일' 필드에서 L 와일드카드로 해당 월 또는 주의 마지막 날을 지정할 수 있습니다.

  • '날짜' 필드에서는 W 와일드카드로 어떤 한 평일을 지정할 수 있습니다. 예를 들어 '날짜' 필드에 3W를 입력하면 해당 월의 세 번째 평일에 가장 가까운 날을 지정할 수 있습니다.

  • '요일' 필드의 # 와일드카드는 그 달에 속한 정해진 요일의 특정 인스턴스를 지정합니다. 예를 들어, 3#2는 그 달의 두 번째 화요일입니다. 3은 각 주의 셋째 날이므로 화요일을 나타내고 2는 그 달의 두 번째 해당 요일입니다.

    참고

    '#' 문자를 사용하는 경우 요일(day-of-week) 필드에 하나의 표현식만 정의할 수 있습니다. 예를 들어 "3#1,6#3"은(는) 두 개의 표현식으로 해석되기 때문에 유효하지 않습니다.

예제

다음 예제는 AWS CLI create-schedule 명령과 함께 cron 표현식을 사용하여 cron 기반 일정을 구성하는 방법을 보여줍니다. 이 예제는 2022년부터 2023년까지 매월 마지막 금요일 오전 10시 15분(UTC+0)에 실행되는 일정을 생성하고 템플릿 기반 SqsParameters 대상 유형을 사용하여 Amazon SQS 대기열에 메시지를 전송합니다.

$ aws scheduler create-schedule --schedule-expression "cron(15 10 ? * 6L 2022-2023)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --flexible-time-window '{ "Mode": "OFF"}'

일회성 일정

일회성 일정은 유효한 날짜와 타임스탬프를 사용하여 사용자가 지정하는 날짜와 시간에 한 번만 대상을 간접적으로 호출합니다. EventBridge 스케줄러는 UTC(협정 표준시) 또는 일정을 생성할 때 지정한 시간대로 일정을 구성할 수 있도록 지원합니다.

참고

일회성 일정은 실행을 완료하고 대상을 간접적으로 호출한 후에도 여전히 계정 할당량에 계산됩니다. 일회성 스케줄이 실행을 완료한 후에는 해당 일정을 삭제하는 것이 좋습니다.

at 표현식을 사용하여 일회성 일정을 구성합니다. at 표현식은 다음과 같이 EventBridge 스케줄러가 일정을 간접적으로 호출하도록 하려는 날짜 및 시간으로 구성됩니다.

구문

at(yyyy-mm-ddThh:mm:ss)

일회성 일정을 구성하면 EventBridge 스케줄러는 사용자가 일정에 지정한 StartDateEndDate를 무시합니다.

예제

다음 예제는 AWS CLI create-schedule 명령과 함께 at 표현식을 사용하여 일회성 일정을 구성하는 방법을 보여줍니다. 이 예제는 2022년 11월 20일 오후 1시(UTC-8)에 한 번 실행되는 일정을 생성하고 템플릿 기반 SqsParameters 대상 유형을 사용하여 Amazon SQS 대기열에 메시지를 전송합니다.

$ aws scheduler create-schedule --schedule-expression "at(2022-11-20T13:00:00)" --name schedule-name \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "TEST_PAYLOAD" }' \ --schedule-expression-timezone "America/Los_Angeles" --flexible-time-window '{ "Mode": "OFF"}'

EventBridge 스케줄러의 시간대

EventBridge 스케줄러는 사용자가 지정하는 모든 시간대에 cron 기반 일정 및 일회성 일정을 구성할 수 있도록 지원합니다. EventBridge 스케줄러는 IANA(Internet Assigned Numbers Authority)에서 유지 관리하는 시간대 데이터베이스를 사용합니다.

AWS CLI를 사용하면 EventBridge 스케줄러가 --schedule-expression-timezone 파라미터를 사용하여 일정을 평가하도록 하려는 시간대를 설정할 수 있습니다. 예를 들어 다음 명령은 매일 오전 8시 30분에 미국/뉴욕에서 템플릿 기반 Amazon SQS SendMessage 대상을 간접적으로 호출하는 cron 기반 일정을 생성합니다.

$ aws scheduler create-schedule --schedule-expression "cron(30 8 * * ? *)" --name schedule-in-est \ --target '{"RoleArn": "role-arn", "Arn": "QUEUE_ARN", "Input": "This schedule runs in the America/New_York time zone." }' \ --schedule-expression-timezone "America/New_York" --flexible-time-window '{ "Mode": "OFF"}'

EventBridge 스케줄러의 일광 절약 시간제

EventBridge 스케줄러는 일광 절약 시간제에 맞게 일정을 자동으로 조정합니다. 봄에 시간이 앞으로 당겨질 때 cron 표현식이 존재하지 않는 날짜 및 시간에 해당하는 경우 일정 간접 호출을 건너뛰게 됩니다. 가을에 시간이 뒤로 당겨질 때 일정은 한 번만 실행되며 간접 호출을 반복하지 않습니다. 다음 간접 호출은 지정된 날짜 및 시간에 정상적으로 발생합니다.

EventBridge 스케줄러는 일정을 생성할 때 지정한 시간대에 따라 일정을 조정합니다. 미국/뉴욕에서 일정을 구성한 경우 해당 시간대의 시간이 변경되면 일정이 조정되고, 미국/로스앤젤레스의 일정은 서부 해안의 시간이 변경되면 3시간 후에 조정됩니다.

days를 단위로 사용하는 속도 기반 일정의 경우(예: rate(1 days)) days는 24시간을 기준으로 합니다. 즉, 일광 절약 시간제로 인해 하루가 23시간으로 단축되거나 25시간으로 연장되는 경우에도 EventBridge Scheduler는 일정을 마지막으로 간접 호출한 지 24시간 후에 rate 표현식을 평가합니다.

참고

현지 규칙 및 규정에 따라 일부 시간대는 일광 절약 시간제를 준수하지 않습니다. 일광 절약 시간제를 준수하지 않는 시간대로 일정을 생성하는 경우 EventBridge 스케줄러는 일정을 조정하지 않습니다. 일광 절약 시간 조정은 협정 세계시(UTC) 일정에는 적용되지 않습니다.

미국/로스앤젤레스에서 cron 표현식(예: cron(30 2 * * ? *))을 사용하여 일정을 만드는 시나리오를 생각해 보십시오. 이 일정은 지정된 시간대로 매일 오전 2시 30분에 실행됩니다.

  • 봄에는 앞으로 — 봄철에 시간이 오전 1시 59분에서 오전 3시로 앞으로 바뀌면 EventBridge 스케줄러는 해당 날짜에 일정 간접 호출을 건너뛰고 다음 날 정상적으로 일정 실행을 재개합니다.

  • 가을에는 뒤로 – 가을에 시간이 오전 2시 59분에서 오전 2시로 뒤로 바뀌는 경우 EventBridge스케줄러는 변동이 발생하기 전 오전 2시 30분에 일정을 한 번만 실행하며, 시간 변동 후 오전 2시 30분에 일정 간접 호출을 다시 반복하지 않습니다.