MediaConvert 에서 대기열에 있는 수천 개의 작업을 취소하려면 어떻게 해야 하나요?

3분 분량
콘텐츠 수준: 중급
4

AWS Elemental MediaConvert의 Default 대기열에 있는 작업 수가 계속 증가하고 있어서 이를 일시 중지하고 작업을 취소하고 싶은데 방법이 있는지 궁금합니다.

요약 설명 :

MediaConvert에서 대기열은 활성화(ACTIVE) 또는 일시 중지(PASECTED)일 수 있습니다. 그리고 대기열을 일시 중지하게 될 경우 MediaConvert 서비스가 해당 대기열의 작업을 처리하기 시작하지 않습니다. 이 때문에 대기열을 일시 중지하면 해당 대기열의 작업이 시작 되지 않게 됩니다. MediaConvert 콘솔이나 CLI를 사용하여 작업을 취소 수는 있지만 하지만 콘솔을 사용하여 수천 개의 작업을 취소하는 것은 시간이 많이 소요될 뿐만 아니라 번거롭로울 수 있습니다. 따라서 CLI를 사용하여 간단한 셸 스크립트로 취소하는 것을 소개합니다.

구현 아이디어 :

  • 대기열 일시 중지
  • 대기열에 있는 작업 목록 검색
  • 작업 취소
  • 쉘스크립트를 이용하여 대기열 작업 목록이 확인되지 않을 때까지 작업 목록 확인 및 취소 반복

작업 절차 :

  1. 주문형 대기열 일시 중지 MediaConvert 콘솔을 사용하여 주문형 대기열의 상태를 변경하려면 다음 절차를 따릅니다.

    • MediaConvert 콘솔 접속 후 '대기열' 메뉴를 선택 합니다.
    • '온디맨드 대기열' 섹션 원하는 대기열 선택후
    • 대기열 편집 메뉴 선택 후
    • '상태' 값을 "활성" 에서 "일시 중지됨" 으로 변경후 '대기열 저장'을 눌러 저장합니다.
  2. 대기열에 있는 작업 목록 검색

    • MediaConvert 작업을 취소할 지역의 미디어 변환 끝점(예: ap-northeast-2))을 기록합니다.
    • 참고로 ap-northeast-2 에 대한 endpoint는 https://bnklbqvoa.mediaconvert.ap-northeast-2.amazonaws.com 입니다.
$ aws mediaconvert describe-endpoints --region ap-northeast-2
{
    "Endpoints": [
        {
            "Url": "https://bnklbqvoa.mediaconvert.ap-northeast-2.amazonaws.com"
        }
    ]
}
  • MediaConvert의 list-jobs [2] 명령을 사용하여 SUMBITED 상태의 작업 ID를 나열합니다.
aws mediaconvert list-jobs --region ap-northeast-2 --endpoint-url https://bnklbqvoa.mediaconvert.ap-northeast-2.amazonaws.com --status SUBMITTED --queue Default --query 'Jobs[*].{Id:Id}' --output text
  1. MediaConvert에서 cancel-job을 사용하여 작업 취소[3]
    • 다음 작업 취소 예제는 작업을 취소합니다.
aws mediaconvert cancel-job \
--endpoint-url https://abcd1234.mediaconvert.region-name-1.amazonaws.com \
--id 1234567890123-efg456
  1. bash 스크립트를 사용하여 대기열에 있는 작업 목록 반복
    • list-jobs 명령을 사용하여 취소해야 할 태스크 수를 결정합니다.
    • 그런 다음 50 또는 100 단위로 bash 스크립트를 사용하여 작업을 취소하는 코드를 작성합니다.
    • 샘플코드 예시) 제가 사용하고 있는 MAC BOOK에서 작성한 샘플 코드입니다. 사용 환경에 맞게 수정해야 합니다. (아래 코드에서 <endpoint url>에는 1. 에서 출력되는 endpoint를 사용해야 합니다.)
#!/bin/sh
$aws mediaconvert list-jobs --region <region, ex. us-east-1> --endpoint-url <endpoint url> --status SUBMITTED --queue Default --query 'Jobs[*].{Id:Id}' --output text | while read id;
do
    echo "Read Job id : $id"
        aws mediaconvert cancel-job --region <region, ex. us-east-1> --endpoint-url <endpoint url> --id $id > /dev/null
    echo "Cancel Job id : $id"
done



추가 정보 :

온디맨드에 대한 Default 대기열에 대한 작업 취소 외에도 다양한 워크플로우에 대한 작업을 (Default 대기열이 아닌) 개별 대기열에서 실행하기 위해 여러 온디맨드 대기열을 사용하는 것이 좋습니다.

참고 :

[1] https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-on-demand-queues.html#updating-queue-status

[2] https://docs.aws.amazon.com/cli/latest/reference/mediaconvert/list-jobs.html

[3] https://docs.aws.amazon.com/cli/latest/reference/mediaconvert/cancel-job.html

AWS
전문가
Bo_L
게시됨 4달 전383회 조회