

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

# Deadline Cloud를 사용하여 패키지 빌드 자동화
<a name="automate-package-builds"></a>

CI/CD 워크플로의 경우 또는 여러 운영 체제용 패키지를 빌드해야 하는 경우 Deadline Cloud 패키지 빌드 대기열을 생성할 수 있습니다. 대기열은 패키지를 빌드하고 Amazon Simple Storage Service(Amazon S3) conda 채널에 게시하는 플릿의 빌드 작업을 예약합니다. 이렇게 하면 필요한 모든 구성에서 소프트웨어 릴리스를 위한 지속적인 패키지 빌드를 유지 관리할 수 있습니다.

 AWS CloudFormation (CloudFormation) 템플릿을 사용하거나 Deadline Cloud 콘솔에서 수동으로 패키지 빌드 대기열을 생성할 수 있습니다. CloudFormation 템플릿은 프로덕션 대기열과 패키지 빌드 대기열이 이미 구성된 전체 팜을 배포합니다. 콘솔에서 대기열을 생성하면 개별 설정을 더 잘 제어할 수 있습니다.

## 를 사용하여 패키지 빌드 대기열 생성 CloudFormation
<a name="s3-channel-create-queue-cfn"></a>

 CloudFormation 템플릿을 사용하여 패키지 빌드 대기열이 포함된 Deadline Cloud 팜을 생성할 수 있습니다. 템플릿은 프라이빗 Amazon S3 conda 채널을 사용하여 프로덕션 대기열과 패키지 빌드 대기열을 구성합니다.

템플릿을 배포하기 전에 작업 첨부 파일과 conda 채널을 보관할 Amazon S3 버킷을 생성합니다. [Amazon S3 콘솔](https://console.aws.amazon.com/s3/)에서 버킷을 생성할 수 있습니다. 템플릿을 배포할 때 버킷 이름이 필요합니다.

**CloudFormation 템플릿을 배포하려면**

1. 의 [Deadline Cloud 샘플](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm) 리포지토리에서 [deadline-cloud-starter-farm-template.yaml](https://github.com/aws-deadline/deadline-cloud-samples/raw/mainline/cloudformation/farm_templates/starter_farm/deadline-cloud-starter-farm-template.yaml) 템플릿을 다운로드합니다GitHub.

1. [CloudFormation 콘솔](https://console.aws.amazon.com/cloudformation/)에서 **스택 생성을** 선택한 다음 **새 리소스 사용(표준)**을 선택합니다.

1. 옵션을 선택하여 템플릿 파일을 업로드한 다음 `deadline-cloud-starter-farm-template.yaml` 파일을 업로드합니다.

1. **StarterFarm**와 같은 스택의 이름을 입력하고 작업 연결을 위한 Amazon S3 버킷의 이름과 conda 채널을 제공합니다.

1.  CloudFormation 콘솔 단계에 따라 스택 생성을 완료합니다.

템플릿 파라미터 및 사용자 지정 옵션에 대한 자세한 내용은의 Deadline Cloud 샘플 리포지토리에서 [스타터 팜 README](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm)를 참조하세요GitHub.

## 콘솔에서 패키지 빌드 대기열 생성
<a name="s3-channel-create-queue"></a>

*Deadline Cloud 사용 설명서*의 [대기열 생성](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue.html) 지침을 따릅니다. 다음과 같이 변경합니다.
+ 5단계에서 기존 Amazon S3 버킷을 선택합니다. 빌드 아티팩트가 일반적인 Deadline Cloud 연결과 분리**DeadlineCloudPackageBuild**되도록와 같은 루트 폴더 이름을 지정합니다.
+ 6단계에서는 패키지 빌드 대기열을 기존 플릿과 연결하거나 현재 플릿이 적합하지 않은 경우 완전히 새로운 플릿을 생성할 수 있습니다.
+ 9단계에서 패키지 빌드 대기열에 대한 새 서비스 역할을 생성합니다. 권한을 수정하여 대기열에 패키지를 업로드하고 conda 채널을 다시 인덱싱하는 데 필요한 권한을 부여합니다.

### 패키지 빌드 대기열 권한 구성
<a name="package-building-queue-permissions"></a>

패키지 빌드 대기열이 대기열의 Amazon S3 버킷에 있는 `/Conda` 접두사에 액세스하도록 허용하려면 대기열의 역할을 수정하여 읽기/쓰기 액세스 권한을 부여해야 합니다. 이 역할에는 패키지 빌드 작업이 새 패키지를 업로드하고 채널을 다시 인덱싱할 수 있도록 다음 권한이 필요합니다.
+ `s3:GetObject`
+ `s3:PutObject`
+ `s3:ListBucket`
+ `s3:GetBucketLocation`
+ `s3:DeleteObject`

1. Deadline Cloud 콘솔을 열고 패키지 빌드 대기열의 대기열 세부 정보 페이지로 이동합니다.

1. 대기열 서비스 역할을 선택한 다음 **대기열 편집**을 선택합니다.

1. **대기열 서비스 역할** 섹션으로 스크롤한 다음 **IAM 콘솔에서이 역할 보기를** 선택합니다.

1. 권한 정책 목록에서 대기열에 대한 **AmazonDeadlineCloudQueuePolicy**를 선택합니다.

1. **권한** 탭에서 **편집**을 선택합니다.

1. 다음과 같이 대기열 서비스 역할에 새 섹션을 추가합니다. *amzn-s3-demo-bucket* 및 *111122223333*을 자체 버킷 및 계정으로 바꿉니다.

   ```
   {
      "Effect": "Allow",
      "Sid": "CustomCondaChannelReadWrite",
      "Action": [
       "s3:GetObject",
       "s3:PutObject",
       "s3:DeleteObject",
       "s3:ListBucket",
       "s3:GetBucketLocation"
      ],
      "Resource": [
       "arn:aws:s3:::amzn-s3-demo-bucket",
       "arn:aws:s3:::amzn-s3-demo-bucket/Conda/*"
      ],
      "Condition": {
       "StringEquals": {
        "aws:ResourceAccount": "111122223333"
       }
      }
     },
   ```

## 패키지 빌드 작업 제출
<a name="automate-submit-package-job"></a>

패키지 빌드 대기열을 생성하고 대기열 권한을 구성한 후 작업을 제출하여 conda 패키지를 빌드할 수 있습니다. 의 [Deadline Cloud 샘플](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes#readme) `submit-package-job` 리포지토리에 있는 스크립트는 conda 레시피에 대한 빌드 작업을 GitHub 제출합니다.

다음 항목이 필요합니다.
+ 워크스테이션에 설치된 [Deadline Cloud CLI](https://github.com/aws-deadline/deadline-cloud)입니다.
+ 활성 [AWS Deadline Cloud Monitor(Deadline Cloud Monitor)](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/working-with-deadline-monitor.html) 로그인 세션입니다.
+ [Deadline Cloud 샘플](https://github.com/aws-deadline/deadline-cloud-samples) 리포지토리의 복제본입니다.

**패키지 빌드 작업을 제출하려면**

1. Deadline Cloud 구성 GUI를 열고 기본 팜과 대기열을 패키지 빌드 대기열로 설정합니다.

   ```
   deadline config gui
   ```

1. 샘플 리포지토리의 `conda_recipes` 디렉터리로 변경합니다.

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. 레시피 디렉터리를 사용하여 `submit-package-job` 스크립트를 실행합니다. 다음 예제에서는 Blender 4.5 레시피를 빌드합니다.

   ```
   ./submit-package-job blender-4.5/
   ```

   레시피에 아직 다운로드하지 않은 소스 아카이브가 필요한 경우 스크립트는 다운로드 지침을 제공합니다. 아카이브를 다운로드하고 스크립트를 다시 실행합니다.

작업을 제출한 후 Deadline Cloud 모니터를 사용하여 작업의 진행 상황과 상태를 확인합니다.

![\[Conda 패키지를 빌드하는 작업의 진행 상황과 상태를 보여주는 Deadline Cloud 모니터입니다.\]](http://docs.aws.amazon.com/ko_kr/deadline-cloud/latest/developerguide/images/Conda-Figure3.png)


모니터는 작업의 두 단계, 즉 패키지를 빌드한 다음 conda 채널을 다시 인덱싱하는 단계를 보여줍니다. 패키지 빌드 단계의 작업을 마우스 오른쪽 버튼으로 클릭하고 **로그 보기를** 선택하면 모니터에 세션 작업이 표시됩니다.
+ **첨부 파일 동기화** - 입력 작업 첨부 파일을 복사하거나 가상 파일 시스템을 탑재합니다.
+ **Conda 시작** - 대기열 환경 작업입니다. 빌드 작업은 conda 패키지를 지정하지 않으므로이 작업은 빠르게 완료됩니다.
+ **CondaBuild Env 시작** - conda 패키지를 빌드하고 채널을 다시 인덱싱하는 데 필요한 소프트웨어를 사용하여 conda 가상 환경을 생성합니다.
+ **작업 실행** - 패키지를 빌드하고 결과를 Amazon S3에 업로드합니다.

작업이 실행되면 Amazon CloudWatch(CloudWatch)로 로그를 전송합니다. 작업이 완료되면 **모든 작업에 대한 로그 보기를** 선택하여 환경 설정 및 해체에 대한 추가 로그를 확인합니다.