데드라인 클라우드에서 작업 스케줄링 - AWS 데드라인 클라우드

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

데드라인 클라우드에서 작업 스케줄링

AWS Deadline Cloud는 작업이 생성된 후 대기열과 연결된 하나 이상의 플릿에서 해당 작업이 처리되도록 예약합니다. 특정 작업을 처리하는 플릿은 플릿에 구성된 기능과 특정 단계의 호스트 요구 사항을 기반으로 선택됩니다.

작업은 최선 작업 우선 순위 (가장 높은 순서에서 가장 낮은 순) 에 따라 스케줄링됩니다. 두 작업의 우선 순위가 같으면 가장 오래된 작업이 먼저 예약됩니다.

다음 섹션에서는 작업 예약 프로세스에 대한 세부 정보를 제공합니다.

플릿 호환성을 결정하세요.

작업이 생성된 후 Deadline Cloud는 작업이 제출된 대기열과 연결된 플릿의 기능과 비교하여 작업의 각 단계에 대한 호스트 요구 사항을 확인합니다. 플릿이 호스트 요구 사항을 충족하면 작업이 READY 상태로 전환됩니다.

대기열과 연결된 플릿이 충족할 수 없는 요구 사항이 작업 단계에 있는 경우 단계 상태는 로 설정됩니다NOT_COMPATIBLE. 또한 작업의 나머지 단계도 취소됩니다.

플릿의 기능은 플릿 수준에서 설정됩니다. 플릿에 속한 작업자가 작업 요구 사항을 충족하더라도 해당 작업단이 작업 요구 사항을 충족하지 않으면 해당 작업자의 작업이 배정되지 않습니다.

다음 작업 템플릿에는 해당 단계에 대한 호스트 요구 사항을 지정하는 단계가 있습니다.

name: Sample Job With Host Requirements specificationVersion: jobtemplate-2023-09 steps: - name: Step 1 script: actions: onRun: args: - '1' command: /usr/bin/sleep hostRequirements: amounts: # Capabilities starting with "amount." are amount capabilities. If they start with "amount.worker.", # they are defined by the OpenJD specification. Other names are free for custom usage. - name: amount.worker.vcpu min: 4 max: 8 attributes: - name: attr.worker.os.family anyOf: - linux

다음 기능을 갖춘 플릿으로 이 작업을 예약할 수 있습니다.

{ "vCpuCount": {"min": 4, "max": 8}, "memoryMiB": {"min": 1024}, "osFamily": "linux", "cpuArchitectureType": "x86_64" }

다음 기능을 갖춘 플릿에는 이 작업을 예약할 수 없습니다.

{ "vCpuCount": {"min": 4}, "memoryMiB": {"min": 1024}, "osFamily": "linux", "cpuArchitectureType": "x86_64" } The vCpuCount has no maximum, so it exceeds the maximum vCPU host requirement. { "vCpuCount": {"max": 8}, "memoryMiB": {"min": 1024}, "osFamily": "linux", "cpuArchitectureType": "x86_64" } The vCpuCount has no minimum, so it doesn't satisfy the minimum vCPU host requirement. { "vCpuCount": {"min": 4, "max": 8}, "memoryMiB": {"min": 1024}, "osFamily": "windows", "cpuArchitectureType": "x86_64" } The osFamily doesn't match.

플릿 스케일링

호환되는 서비스 관리형 플릿에 작업이 할당되면 플릿은 자동 스케일링됩니다. 플릿의 작업자 수는 플릿을 실행할 수 있는 작업 수에 따라 달라집니다.

작업이 고객 관리형 플릿에 할당되면 작업자가 이미 존재하거나 이벤트 기반 Auto Scaling을 사용하여 생성될 수 있습니다. 자세한 내용은 Amazon EventBridgeEC2Auto Scaling 사용 설명서의 Auto Scaling 이벤트 처리에 사용을 참조하십시오.

세션

작업의 작업은 하나 이상의 세션으로 나누어집니다. 작업자는 세션을 실행하여 환경을 설정하고 작업을 실행한 다음 환경을 분해합니다. 각 세션은 작업자가 취해야 하는 하나 이상의 작업으로 구성됩니다.

작업자가 섹션 작업을 완료하면 작업자에게 추가 세션 작업을 보낼 수 있습니다. 작업자는 세션의 기존 환경과 작업 첨부 파일을 재사용하여 작업을 더 효율적으로 완료합니다.

Job 첨부 파일은 Deadline Cloud CLI 작업 번들의 일부로 사용하는 제출자가 생성합니다. 명령의 --attachments 옵션을 사용하여 작업 첨부 파일을 생성할 수도 있습니다. create-job AWS CLI 환경은 두 위치, 즉 특정 대기열에 연결된 대기열 환경과 작업 템플릿에 정의된 작업 단계 환경으로 정의됩니다.

세션 작업 유형에는 네 가지가 있습니다.

  • syncInputJobAttachments— 입력 작업 첨부 파일을 작업자에게 다운로드합니다.

  • envEnter— 환경에 대한 onEnter 작업을 수행합니다.

  • taskRunonRun 작업에 대한 작업을 수행합니다.

  • envExit— 환경에 대한 onExit 작업을 수행합니다.

다음 작업 템플릿에는 단계 환경이 있습니다. 여기에는 단계 환경을 설정하는 onEnter 정의, 실행할 작업을 정의하는 onRun 정의, 단계 환경을 분해하는 onExit 정의가 있습니다. 이 작업을 위해 생성되는 세션에는 작업 하나, 하나 이상의 taskRun 작업, 그리고 한 개의 envExit 동작이 포함됩니다. envEnter

name: Sample Job with Maya Environment specificationVersion: jobtemplate-2023-09 steps: - name: Maya Step stepEnvironments: - name: Maya description: Runs Maya in the background. script: embeddedFiles: - name: initData filename: init-data.yaml type: TEXT data: | scene_file: MyAwesomeSceneFile renderer: arnold camera: persp actions: onEnter: command: MayaAdaptor args: - daemon - start - --init-data - file://{{Env.File.initData}} onExit: command: MayaAdaptor args: - daemon - stop parameterSpace: taskParameterDefinitions: - name: Frame range: 1-5 type: INT script: embeddedFiles: - name: runData filename: run-data.yaml type: TEXT data: | frame: {{Task.Param.Frame}} actions: onRun: command: MayaAdaptor args: - daemon - run - --run-data - file://{{ Task.File.runData }}

단계 종속성

Deadline Cloud는 한 단계가 다른 단계가 완료될 때까지 기다렸다가 시작하도록 단계 간 종속성 정의를 지원합니다. 한 단계에 대해 둘 이상의 종속성을 정의할 수 있습니다. 종속성이 있는 단계는 모든 종속성이 완료될 때까지 예약되지 않습니다.

작업 템플릿이 순환 종속성을 정의하면 작업이 거부되고 작업 상태가 로 설정됩니다. CREATE_FAILED

다음 작업 템플릿은 두 단계로 작업을 생성합니다. StepB에 따라 다릅니다StepA. StepB성공적으로 StepA 완료된 후에만 실행됩니다.

작업이 생성된 후에는 StepA READY 상태가 되고 PENDING 상태가 StepB 됩니다. StepA완료 후 READY 상태로 StepB 이동합니다. StepA실패하거나 취소된 StepA 경우 해당 CANCELED 상태로 StepB 이동합니다.

여러 단계에 대한 종속성을 설정할 수 있습니다. 예를 들어, StepC If는 두 가지 모두에 StepA 종속되며 StepB 다른 두 단계가 완료될 때까지 StepC 시작되지 않습니다.

name: Step-Step Dependency Test specificationVersion: 'jobtemplate-2023-09' steps: - name: A script: actions: onRun: command: bash args: ['{{ Task.File.run }}'] embeddedFiles: - name: run type: TEXT data: | #!/bin/env bash set -euo pipefail sleep 1 echo Task A Done! - name: B dependencies: - dependsOn: A # This means Step B depends on Step A script: actions: onRun: command: bash args: ['{{ Task.File.run }}'] embeddedFiles: - name: run type: TEXT data: | #!/bin/env bash set -euo pipefail sleep 1 echo Task B Done!