EventBridge 스케줄러 시작하기 - EventBridge 스케줄러

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

EventBridge 스케줄러 시작하기

이 항목에서는 새 EventBridge 스케줄러 일정 생성에 대해 설명합니다. EventBridge 스케줄러 콘솔, AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용하여 템플릿 기반 Amazon SQS 대상이 포함된 일정을 생성할 수 있습니다. 그런 다음 로깅을 설정하고, 재시도를 구성하고, 실패한 작업에 대한 최대 보존 시간을 설정합니다. 일정을 만든 후에는 일정이 대상을 간접적으로 성공적으로 호출하고 대상 대기열에 메시지를 전송하는지 확인합니다.

참고

이 설명서를 따르려면 자격 증명 기반 정책 사용에 설명된 최소 필수 권한으로 IAM 사용자를 설정하는 것이 좋습니다. 사용자를 생성하고 구성한 후 다음 명령을 실행하여 액세스 자격 증명을 설정합니다. AWS CLI를 구성하려면 액세스 키 ID와 보안 액세스 키가 필요합니다.

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

자격 증명을 설정하는 다양한 방법에 대한 자세한 내용은 버전 2용 AWS Command Line Interface 사용 설명서구성 설정 및 우선 순위를 참조하세요.

필수 조건

이 섹션의 단계를 시도하기 전에 다음을 수행해야 합니다.

EventBridge 스케줄러 콘솔을 사용하여 일정 생성

콘솔을 사용하여 새 일정을 생성하려면
  1. AWS Management Console에 로그인한 다음 https://us-west-2.console.aws.amazon.com/scheduler/home?region=us-west-2#home 링크를 선택하여 EventBridge 콘솔의 EventBridge 스케줄러 섹션을 엽니다.

    참고

    AWS Management Console의 리전 선택기를 사용하여 AWS 리전을 전환할 수 있습니다.

  2. 일정 페이지에서 일정 생성을 선택합니다.

  3. 일정 세부 정보 지정 페이지의 일정 이름 및 설명 섹션에서 다음을 수행합니다.

    1. 일정 이름에 일정의 이름을 입력합니다. 예: MyTestSchedule

    2. 선택 사항설명에 일정에 대한 설명을 입력합니다. 예: My first schedule.

    3. 일정 그룹의 경우 드롭다운 옵션에서 일정 그룹을 선택합니다. 이전에 일정 그룹을 만든 적이 없는 경우 일정에 맞는 default 그룹을 선택할 수 있습니다. 새 일정 그룹을 만들려면 콘솔 설명에서 나만의 일정 만들기 링크를 선택합니다. 일정 그룹을 사용하여 일정 그룹에 태그를 추가합니다.

  4. 일정 패턴 섹션에서 다음을 수행합니다.

    1. 발생에서 다음 패턴 옵션 중 하나를 선택합니다. 구성 옵션은 선택한 패턴에 따라 달라집니다.

      • 일회성 일정 – 일회성 일정은 사용자가 지정하는 날짜와 시간에 한 번만 대상을 간접적으로 호출합니다.

        날짜 및 시간에 유효한 날짜를 YYYY/MM/DD 형식으로 입력합니다. 그런 다음 24시간 hh:mm 형식으로 타임스탬프를 지정합니다. 마지막으로 드롭다운 옵션에서 시간대를 선택합니다.

      • 반복 일정 – 반복 일정은 cron 표현식 또는 rate 표현식을 사용하여 지정한 속도로 대상을 간접적으로 호출합니다.

        cron 표현식을 사용하여 일정을 구성하려면 Cron 기반 일정을 선택합니다. rate 표현식을 사용하려면 속도 기반 일정을 선택하고 에 양수를 입력한 다음 드롭다운 옵션에서 단위를 선택합니다.

      Cron 및 Rate 표현식 사용에 대한 자세한 내용은 EventBridge 스케줄러의 일정 유형 섹션을 참조하세요.

    2. 유연한 기간에서 끄기를 선택하여 옵션을 끄거나 드롭다운 목록에서 미리 정의된 기간 중 하나를 선택합니다. 예를 들어, 15분을 선택하고 1시간에 한 번씩 대상을 간접적으로 호출하도록 반복 일정을 설정하면 일정은 매시간 시작 후 15분 이내에 실행됩니다.

  5. 참고

    일회성 일정에서는 유연한 기간 기능을 사용할 수 없습니다.

    이전 단계에서 반복 일정을 선택한 경우 시간대 섹션에서 시간대를 지정하고 선택적으로 일정의 시작 날짜 및 시간, 종료 날짜 및 시간을 설정합니다. 시작 날짜가 없는 반복 일정은 생성되어 사용 가능한 즉시 시작됩니다. 종료 날짜가 없는 반복 일정은 계속해서 해당 대상을 무기한으로 간접적으로 호출합니다.

  6. 다음(Next)을 선택합니다.

  7. 대상 선택 페이지에서 다음을 수행합니다.

    1. 템플릿 기반 대상을 선택하고 대상 API를 선택합니다. 이 예제에서는 Amazon SQS SendMessage 템플릿 기반 대상을 선택합니다.

    2. SendMessage 섹션의 SQS 대기열의 경우 드롭다운 목록에서 arn:aws:sqs:us-west-2:123456789012:TestQueue 같은 기존 Amazon SQS 대기열 ARN을 선택합니다. 새 대기열을 생성하려면 새 SQS 대기열 생성을 선택하여 Amazon SQS 콘솔로 이동합니다. 대기열 생성을 완료한 후 EventBridge 스케줄러 콘솔로 돌아가서 드롭다운을 새로 고치십시오. 새 대기열 ARN이 나타나고 선택할 수 있습니다.

    3. 대상에는 EventBridge 스케줄러가 대상에 전달하려는 페이로드를 입력합니다. 이 예에서는 대상 대기열에 다음 메시지를 보냅니다. Hello, it's EventBridge Scheduler.

  8. 다음을 선택한 다음 설정 - 옵션 페이지에서 다음을 수행하십시오.

    1. 일정 상태 섹션의 일정 활성화에서 스위치를 사용하여 기능을 켜거나 끕니다. EventBridge 스케줄러는 기본적으로 일정을 활성화합니다.

    2. 일정 완료 후 조치 섹션에서 일정 완료 후 EventBridge 스케줄러가 수행하는 작업을 구성합니다.

      • 일정을 자동으로 삭제하려면 삭제를 선택합니다. 일회성 일정의 경우 일정이 대상을 한 번 간접적으로 호출한 후에 발생합니다. 반복 일정의 경우 이는 일정의 마지막으로 계획된 간접 호출 이후에 발생합니다. 자동 삭제에 대한 자세한 내용은 일정 완료 후 삭제 섹션을 참조하세요.

      • 일정이 완료된 후 EventBridge 스케줄러가 어떤 작업도 취하지 않도록 하려면 없음을 선택하거나 값을 선택하지 마십시오.

    3. 재시도 정책 및 DLQ(Dead Letter Queue) 섹션에서 재시도 정책에 대해 재시도를 켜서 일정에 대한 재시도 정책을 구성합니다. 재시도 정책을 사용하면 일정이 대상을 간접적으로 호출하지 못할 경우 EventBridge 스케줄러가 일정을 다시 실행합니다. 구성된 경우 일정에 대한 최대 보존 기간과 재시도 횟수를 설정해야 합니다.

    4. 최대 이벤트 수명 - 선택 사항에 EventBridge 스케줄러가 처리되지 않은 이벤트를 보관해야 하는 최대 시간을 입력합니다.

      참고

      최댓값은 24시간입니다.

    5. 최대 재시도 횟수에는 대상이 오류를 반환할 경우 EventBridge 스케줄러가 일정을 재시도하는 최대 횟수를 입력합니다.

      참고

      최댓값은 185회입니다.

    6. DLQ(Dead Letter Queue)의 경우 다음 옵션 중에서 선택합니다.

      • 없음 - DLQ를 구성하지 않으려면 이 옵션을 선택합니다.

      • 내 AWS 계정의 Amazon SQS 대기열을 DLQ로 선택 - 이 옵션을 선택한 다음 드롭다운 목록에서 대기열 ARN을 선택하고 일정을 생성하는 AWS 계정와 동일한 DLQ를 구성합니다.

      • 다른 AWS 계정의 Amazon SQS 대기열을 DLQ로 지정 — 이 옵션을 선택한 다음 대기열이 다른 AWS 계정에 있는 경우 구성한 대기열의 ARN을 DLQ로 입력합니다. 이 옵션을 사용하려면 대기열의 정확한 ARN을 입력해야 합니다.

    7. 고객 관리형 키를 사용하여 대상 입력을 암호화하려면 암호화 섹션에서 암호화 설정 사용자 지정(고급)을 선택합니다. 이 옵션을 선택하는 경우 기존 KMS 키 ARN을 입력하거나 AWS KMS 키 생성을 선택하여 AWS KMS 콘솔로 이동합니다. EventBridge 스케줄러가 저장 데이터를 암호화하는 방법에 대한 자세한 내용은 저장된 데이터 암호화 섹션을 참조하세요.

    8. 권한에서 기존 역할 사용을 선택한 다음, 설정 절차 중에 생성한 역할을 드롭다운 목록에서 선택합니다. 또한 IAM 콘솔로 이동을 선택하여 새 역할을 생성할 수도 있습니다.

      EventBridge 스케줄러가 새 실행 역할을 생성하도록 하려면 이 일정에 대한 새 역할 생성을 선택합니다. 그런 다음 역할 이름을 입력합니다. 이 옵션을 선택하면 EventBridge 스케줄러가 템플릿 기반 대상에 필요한 필수 권한을 역할에 연결합니다.

  9. 다음(Next)을 선택합니다.

  10. 일정 검토 및 생성 페이지에서 일정의 세부 정보를 검토합니다. 각 섹션에서 편집을 선택하여 해당 단계로 돌아가서 세부 정보를 편집합니다.

  11. 일정 생성을 선택하여 새 일정 생성을 완료합니다. 일정 페이지에서 새 일정과 기존 일정 목록을 볼 수 있습니다. 상태 열에서 새 일정이 활성화됨 상태인지 확인합니다.

  12. 일정에 따라 Amazon SQS 대상이 간접적으로 호출되는지 확인하려면 Amazon SQS 콘솔을 열고 다음을 수행하십시오.

    1. 대기열 목록에서 대상 대기열을 선택합니다.

    2. [메시지 전송 및 수신(Send and receive messages)]을 선택합니다.

    3. 메시지 보내기 및 받기 페이지의 메시지 수신에서 메시지 폴링을 선택하여 일정에 따라 대상 대기열로 보낸 테스트 메시지를 검색합니다.

AWS CLI를 사용하여 일정을 생성합니다.

다음 예제는 AWS CLI 명령 create-schedule을 사용하여 템플릿 기반 Amazon SQS 대상이 포함된 EventBridge 스케줄러 일정을 생성하는 방법을 보여줍니다. 다음 파라미터의 자리 표시자 값을 사용자의 정보로 바꿉니다.

  • --일정 – 일정 이름을 입력합니다.

  • RoleArn — 일정과 연결할 실행 역할의 ARN을 입력합니다.

  • Arn — 대상의 ARN을 입력합니다. 이 경우 대상은 Amazon SQS 대기열입니다.

  • 입력 - EventBridge 스케줄러가 대상 대기열에 전달하는 메시지를 입력합니다.

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

EventBridge 스케줄러 SDK를 사용하여 일정 생성

다음 예제에서는 EventBridge 스케줄러 SDK를 사용하여 템플릿 기반 Amazon SQS 대상이 포함된 EventBridge 스케줄러 일정을 생성합니다.

예 Python SDK
import boto3 scheduler = boto3.client('scheduler') flex_window = { "Mode": "OFF" } sqs_templated = { "RoleArn": "<ROLE_ARN>", "Arn": "<QUEUE_ARN>", "Input": "Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'" } scheduler.create_schedule( Name="sqs-python-templated", ScheduleExpression="rate(5 minutes)", Target=sqs_templated, FlexibleTimeWindow=flex_window)
예 Java SDK
package com.example; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.scheduler.SchedulerClient; import software.amazon.awssdk.services.scheduler.model.*; public class MySchedulerApp { public static void main(String[] args) { final SchedulerClient client = SchedulerClient.builder() .region(Region.US_WEST_2) .build(); Target sqsTarget = Target.builder() .roleArn("<ROLE_ARN>") .arn("<QUEUE_ARN>") .input("Message for scheduleArn: '<aws.scheduler.schedule-arn>', scheduledTime: '<aws.scheduler.scheduled-time>'") .build(); CreateScheduleRequest createScheduleRequest = CreateScheduleRequest.builder() .name("<SCHEDULE NAME>") .scheduleExpression("rate(10 minutes)") .target(sqsTarget) .flexibleTimeWindow(FlexibleTimeWindow.builder() .mode(FlexibleTimeWindowMode.OFF) .build()) .build(); client.createSchedule(createScheduleRequest); System.out.println("Created schedule with rate expression and an Amazon SQS templated target"); } }

다음 단계

  • 콘솔, AWS CLI 또는 EventBridge 스케줄러 SDK를 사용하여 일정을 관리하는 방법에 대한 자세한 내용은 일정 관리 섹션을 참조하세요.

  • 템플릿 기반 대상 구성 방법과 범용 대상 파라미터의 사용에 대한 자세한 내용은 대상 관리 섹션을 참조하세요.

  • EventBridge 스케줄러 데이터 유형과 API 작업에 대한 자세한 내용은 EventBridge 스케줄러 API 참조를 참조하세요.