예약된 작업 - Amazon Elastic Container Service

예약된 작업

Amazon ECS는 예약된 작업 생성을 지원합니다. 예약된 태스크는 Amazon EventBridge 규칙을 사용하여 일정에 따라 또는 EventBridge 이벤트에 대한 응답으로 태스크를 실행합니다.

백업 작업이나 로그 스캔 등 설정된 간격으로 태스크를 실행하려는 경우 지정된 시간에 하나 이상의 태스크를 실행하는 예약된 태스크를 생성할 수 있습니다. 정기적인 간격(N분, 시간 또는 일마다 실행)으로 지정하거나 보다 복잡한 예약의 경우 cron 표현식을 사용할 수 있습니다. 자세한 정보는 Amazon EventBridge 사용 설명서Cron 표현식 및 rate 표현식을 참조하세요.

이벤트에 의해 트리거되는 태스크를 실행하려는 경우 서비스에 대한 AWS 관리형 이벤트(예: Amazon ECS 작업 및 컨테이너 인스턴스 상태 변경 이벤트)가 있거나 사용자 지정 이벤트 패턴을 생성할 수 있습니다. 자세한 정보는 Amazon EventBridge 사용 설명서 이벤트 패턴을 참조하세요.

예약된 작업 생성

예약된 태스크는 EventBridge 콘솔을 사용하여 생성할 수 있는 Amazon EventBridge 규칙에 의해 트리거됩니다. Amazon ECS 콘솔에서 예약된 태스크를 생성할 수 있지만 현재 EventBridge 콘솔은 더 많은 기능을 제공하므로 다음 단계를 통해 예약된 태스크를 트리거하는 EventBridge 규칙을 생성하는 과정을 안내합니다.

EventBridge 규칙 및 대상과 함께 예약된 태스크를 제출하기 전에 EventBridge 서비스는 사용자를 대신하여 Amazon ECS 태스크를 실행할 수 있는 몇 가지 권한이 필요합니다. 이 역할에 필요한 서비스 보안 주체 및 IAM 권한에 대한 자세한 내용은 Amazon ECS CloudWatch Events IAM 역할 단원을 참조하세요.

예약된 작업 생성(EventBridge 콘솔)

  1. https://console.aws.amazon.com/events/에서 Amazon EventBridge 콘솔을 엽니다.

  2. 탐색 창에서 [Rules]를 선택합니다.

  3. [규칙 생성(Create rule)]을 선택합니다.

  4. 규칙에 대해 이름과 설명을 입력합니다.

    참고

    규칙은 동일한 리전과 동일한 이벤트 버스의 다른 규칙과 동일한 이름을 가질 수 없습니다.

  5. 이벤트 버스(Event bus)에서 이 규칙과 연결할 이벤트 버스를 선택합니다. 이 규칙이 자신의 계정에서 발생하는 이벤트와 일치하도록 하려면 AWS 기본 이벤트 버스(default event bus)를 선택합니다. 계정의 AWS 서비스가 이벤트를 출력하면 항상 계정의 기본 이벤트 버스로 이동합니다.

  6. 태스크 예약 방법을 선택합니다.

    다음을 기반으로 규칙 생성 수행할 작업

    이벤트

    1. 규칙 유형(Rule type)에서 이벤트 패턴이 있는 규칙(Rule with an event pattern)을 생성합니다.

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

    3. 이벤트 소스(Event source)에서 AWS 이벤트( events)를 선택합니다.

    4. 이벤트 패턴(Event pattern)에서 다음을 수행합니다.

      • 템플릿을 사용하여 이벤트 패턴을 생성하려면 이벤트 패턴 양식(Event pattern form)에서 이벤트 소스(Event source), AWS 서비스( service)이벤트 유형(Event type)을 선택합니다. 이벤트 유형으로 모든 이벤트(All Events)를 선택하면 이 AWS 서비스에서 출력한 모든 이벤트가 규칙과 일치합니다.

        템플릿을 사용자 정의하려면 사용자 정의 패턴(JSON 편집기)(Custom pattern (JSON editor))을 선택하고 변경 사항을 작성합니다.

      • 사용자 정의 이벤트 패턴을 사용하려면 사용자 정의 패턴(JSON 편집기)(Custom pattern (JSON editor))을 선택하고 이벤트 패턴을 만들 수 있습니다.

    Schedule
    1. 규칙 유형(Rule type)에서 스케줄(Schedule)을 선택합니다.

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

    3. 스케줄 패턴(Schedule pattern)에서 다음을 수행합니다.

      • cron 표현식을 사용하여 스케줄을 정의하려면 오전 8시와 같이 특정 시간에 실행되는 세분화된 일정(A fine-grained schedule that runs at a specific time, such as 8:00 a.m)을 선택합니다. 매월 첫째 월요일(PST)(PST on the first Monday of every month)과 cron 표현식을 입력합니다.

      • rate 표현식을 사용하여 일정을 정의하려면 10분마다와 같이 일반 속도로 실행되는 일정(A schedule that runs at a regular rate, such as every 10 minutes)을 선택하고 rate 표현식을 입력합니다.

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

  8. 대상 유형(Target types)에서 AWS서비스(service)를 선택합니다.

  9. 대상 선택(Select a target)에서 ECS 태스크(ECS task)를 선택합니다.

  10. 클러스터(Cluster)에서 Amazon ECS 클러스터를 선택합니다.

  11. 태스크 정의(Task definition)에서 태스크 정의 패밀리를 선택합니다.

  12. 태스크 정의 개정(Task definition revision)에서 최신(Latest) 또는 개정(Revision)을 클릭하고 사용할 특정 태스크 정의 개정을 선택합니다.

  13. 개수(Count)에 실행할 원하는 작업 수를 지정합니다.

  14. 예약된 태스크가 클러스터 인프라에 배포되는 방식을 선택합니다.

    배포 방법 Steps

    용량 공급자 전략

    1. 컴퓨팅 옵션(Compute options) 섹션에서 용량 공급자 전략(Capacity provider strategy)을 선택합니다.

    2. 전략을 선택합니다.

      • 클러스터의 기본 용량 공급자 전략을 사용하려면 클러스터 기본값 사용(Use cluster default)을 선택합니다.

      • 클러스터에 기본 용량 공급자 전략이 없거나 사용자 지정 전략을 사용하려면 사용자 지정 사용(Use custom), 용량 공급자 전략 추가(Add capacity provider strategy)를 선택하고 기본(Base), 용량 공급자(Capacity provider)가중치(Weight)를 지정하여 사용자 지정 용량 공급자 전략을 정의합니다.

    참고

    전략에서 용량 공급자를 사용하려면 용량 공급자가 클러스터와 연결되어야 합니다. 용량 공급자 전략에 대한 자세한 정보는 Amazon ECS 용량 공급자 생성 섹션을 참조하세요.

    시작 유형
    1. 컴퓨팅 옵션(Compute options) 섹션에서 시작 유형(Launch type)을 선택합니다.

    2. 시작 유형(Launch type)에서 시작 유형을 선택합니다.

    3. (선택 사항) Fargate 시작 유형이 지정되면 플랫폼 버전(Platform version)에서 사용할 플랫폼 버전을 지정합니다. 플랫폼 버전을 지정하지 않으면 기본적으로 LATEST 플랫폼 버전이 사용됩니다.

  15. 태스크가 Fargate에서 호스팅되거나 awsvpc 네트워크 모드를 사용하면, 네트워크 구성을 구성(Configure network configuration)을 확장하여 네트워크 구성을 지정합니다.

    1. 서브넷(Subnets)에서 서브넷 ID를 하나 이상 지정합니다.

    2. 보안 그룹(Security groups)에서 하나 이상의 보안 그룹 ID를 지정합니다.

    3. 퍼블릭 IP 자동 할당(Auto-assign public IP)에서 서브넷의 퍼블릭 IP 주소를 작업에 할당할지를 지정합니다.

  16. (선택 사항) 작업에 대해 추가 파라미터를 지정하려면 추가 속성 구성(Configure additional properties)을 확장합니다.

    1. 작업 그룹(Task group)에서 작업 그룹 이름을 지정합니다. 작업 그룹 이름은 관련 작업 세트를 식별하는 데 사용되며 spread 작업 배치 전략과 사용하여 동일한 작업 그룹의 작업이 클러스터의 컨테이너 인스턴스 간에 균등하게 분산되도록 합니다.

    2. 배치 제약(Placement constraint)에서 배치 제약 추가(Add placement constraint)를 선택합니다. 배치 제약의 유형(Type)을 선택한 다음, 표현식을 입력합니다. 자세한 정보는 Amazon ECS 작업 배치 제약 섹션을 참조하세요.

      참고

      Fargate에서 호스팅되는 작업에는 작업 배치 제약이 지원되지 않습니다.

    3. 배치 전략(Placement strategy)에서 배치 전략 추가(Add placement strategy)를 선택합니다. 배치 전략의 유형(Type)을 선택한 다음, 표현식을 입력합니다. 추가할 각 배치 전략에 대해 이 프로세스를 반복합니다. 자세한 정보는 Amazon ECS 작업 배치 전략 섹션을 참조하세요.

      참고

      Fargate에서 호스팅되는 작업에는 작업 배치 전략이 지원되지 않습니다.

    4. 태그(Tags)에서 태그 추가(Add tag)를 사용하여 작업에 대한 키 값 쌍 태그를 연결합니다.

    5. 비용 및 사용 보고서에서 비용 할당을 검토할 때 사용할 수 있는 태그를 추가하려면, 관리형 태그 구성(Configure managed tags)에서 관리형 태그 사용 설정(Enable managed tags)을 선택합니다. 자세한 정보는 리소스에 결제용 태그 지정을 참조하세요.

    6. 작업에 대한 ECS Exec 기능을 사용 설정하려면 실행 명령 구성(Configure execute command)에서 실행 명령 사용 설정(Enable execute command)을 선택합니다. 자세한 정보는 디버깅에 Amazon ECS Exec 사용을 참조하세요.

    7. 태스크에 태스크 정의와 연결된 태그를 작업에 추가하려면 전파 태그 구성(Configure propagate tags)에서 태스크 정의에서 태그 전파(Propagate tags from task definition)를 선택합니다. 자세한 정보는 리소스에 태그 지정을 참조하세요.

      참고

      태그(Tags) 섹션에서 같은 키로 태그를 지정하는 경우 해당 태그가 태스크 정의에서 전파된 태그를 재정의합니다.

  17. 여러 대상 유형에 대해 EventBridge에서는 대상에 이벤트를 보낼 권한이 필요합니다. 이 경우 EventBridge는 규칙 실행에 필요한 IAM 역할을 생성할 수 있습니다. 다음 중 하나를 수행하세요.

    • IAM 역할을 자동으로 생성하려면 이 특정 리소스에 대해 새 역할 생성을 선택합니다.

    • 이전에 생성한 IAM 역할을 사용하려면 기존 역할 사용(Use existing role)을 선택하고 드롭다운에서 기존 역할을 선택합니다.

  18. (선택 사항) 추가 설정(Additional settings)에서 다음을 수행합니다.

    1. 최대 이벤트 기간(Maximum age of event)에 1분(00:01)에서 24시간(24:00) 사이의 값을 입력합니다.

    2. 재시도(Retry attempts)에 0에서 185 사이의 숫자를 입력합니다.

    3. 배달 못한 편지 대기열(Dead-letter queue)에서 표준 Amazon SQS 대기열을 배달 못한 편지 대기열로 사용할지를 선택합니다. 이벤트가 대상에 성공적으로 전달되지 않은 경우 EventBridge는 이 규칙과 일치하는 이벤트를 배달 못한 편지 대기열로 보냅니다. 다음 중 하나를 수행합니다.

      • 배달 못한 편지 대기열을 사용하지 않으려면 없음(None)을 선택합니다.

      • 현재 AWS 계정에서 DLQ(Dead Letter Queue)로 사용할 Amazon SQS 대기열 선택(Select an Amazon SQS queue in the current account to use as the dead-letter queue)을 선택하고 드롭다운에서 사용할 대기열을 선택합니다.

      • 다른 AWS 계정에서 배달 못한 편지 대기열로 사용할 Amazon SQS 대기열 선택(Select an Amazon SQS queue in an other account as a dead-letter queue)을 선택하고 사용할 대기열의 ARN을 입력합니다. 메시지를 보낼 수 있는 EventBridge 권한을 부여하는 리소스 기반 정책을 대기열에 연결해야 합니다. 자세한 정보는 Amazon EventBridge 사용 설명서DLQ(Dead Letter Queue)에 대한 권한 부여를 참조하세요.

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

  20. (선택 사항) 규칙에 대해 하나 이상의 태그를 입력하세요. 자세한 정보는 Amazon EventBridge 사용 설명서Amazon EventBridge 태그를 참조하세요.

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

  22. 규칙의 세부 정보를 검토하고 규칙 생성(Create rule)을 선택합니다.

예약된 작업 보기

예약된 태스크는 클래식 Amazon ECS 콘솔에서 볼 수 있습니다. 또한 EventBridge 콘솔에서 예약된 태스크를 트리거하는 Amazon EventBridge 규칙을 볼 수도 있습니다.

예약된 태스크를 보려면(Amazon ECS 콘솔)

  1. https://console.aws.amazon.com/ecs/에서 Amazon ECS 콘솔을 엽니다.

  2. 예약된 작업이 실행될 클러스터를 선택합니다.

  3. 클러스터: cluster-name 페이지에서 예약된 작업(Scheduled Tasks)을 선택합니다.

  4. 예약된 모든 작업이 나열됩니다.

예약된 태스크를 편집하려면

예약된 태스크는 클래식 Amazon ECS 콘솔에서 편집할 수 있습니다. 또한 EventBridge 콘솔에서 예약된 태스크를 트리거하는 Amazon EventBridge 규칙을 편집할 수도 있습니다.

예약된 태스크를 편집하려면(Amazon ECS 콘솔)

  1. https://console.aws.amazon.com/ecs/에서 Amazon ECS 콘솔을 엽니다.

  2. 예약된 태스크를 편집할 클러스터를 선택합니다.

  3. 클러스터: cluster-name 페이지에서 예약된 작업(Scheduled Tasks)을 선택합니다.

  4. 편집할 예약 규칙의 왼쪽에서 확인란을 선택하고 편집(Edit)을 선택합니다.

  5. 업데이트할 필드를 편집하고 업데이트(Update)를 선택합니다.