예시 작업 만들기 및 실행
Batch를 사용하여 동영상을 트랜스코딩하는 예시 일괄 처리 작업을 만들고 실행하는 방법을 알아봅니다. Google Cloud
콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 Google Cloud 둘러보기를 클릭합니다.
시작하기 전에
- 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. Google Cloud신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
프로젝트를 만들거나 Google Cloud 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택할 수 있습니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기.
-
프로젝트 만들기: Google Cloud
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
만든 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID를 프로젝트 이름으로 바꿉니다. Google Cloud
Batch, Compute Engine, Logging, Cloud Storage API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
프로젝트를 만들거나 Google Cloud 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택할 수 있습니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할 부여 방법 알아보기.
-
프로젝트 만들기: Google Cloud
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
만든 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID를 프로젝트 이름으로 바꿉니다. Google Cloud
Batch, Compute Engine, Logging, Cloud Storage API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
이 튜토리얼을 완료하는 데 필요한 권한이 사용자와 작업의 서비스 계정에 있는지 확인합니다. 이 튜토리얼에서는 Compute Engine 기본 서비스 계정인 작업의 기본 서비스 계정을 사용합니다.
-
이 튜토리얼을 완료하는 데 필요한 권한을 얻으려면 관리자에게 다음의 IAM 역할을 부여해 달라고 요청하세요.
-
작업 생성, 확인, 삭제:
-
Batch 작업 편집자 (
roles/batch.jobsEditor) 프로젝트에 대한 -
Compute Engine 기본 서비스 계정의 서비스 계정 사용자 (
roles/iam.serviceAccountUser)
-
Batch 작업 편집자 (
-
Cloud Storage 버킷 생성, 확인, 삭제:
스토리지 관리자 (
roles/storage.admin) : 프로젝트 -
작업 로그 보기:
로그 뷰어 (
roles/logging.viewer) 프로젝트에 대한
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
-
작업 생성, 확인, 삭제:
-
Compute Engine 기본 서비스 계정에 이 튜토리얼을 완료하는 데 필요한 권한이 있는지 확인하려면 관리자에게 Compute Engine 기본 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Batch 에이전트 보고자 (
roles/batch.agentReporter) 프로젝트에 대한 -
작업이 Cloud Storage 버킷에 액세스하도록 허용:
스토리지 관리자 (
roles/storage.admin) 프로젝트에 대한 -
작업이 Logging에서 로그를 생성하도록 허용:
로그 작성자 (
roles/logging.logWriter) 프로젝트에 대한
-
Batch 에이전트 보고자 (
-
-
Batch git 저장소를 현재 디렉터리에 클론합니다.
git clone https://github.com/GoogleCloudPlatform/batch-samples.git
-
transcoding디렉터리로 이동합니다.cd batch-samples/transcoding/
작업 입력 준비
Cloud Storage 버킷을 만듭니다.
gcloud storage buckets create gs://BUCKET_NAMEBUCKET_NAME을 버킷의 전역적으로 고유 이름으로 바꿉니다.출력은 다음과 비슷합니다.
Creating gs://BUCKET_NAME/...transcode.sh스크립트와 동영상 파일이 포함된 폴더를 Cloud Storage 버킷에 복사합니다.gcloud storage cp -R transcode.sh input gs://BUCKET_NAME출력은 다음과 비슷합니다.
Copying file://transcode.sh to gs://BUCKET_NAME/transcode.sh Copying file://input/video-2.mp4 to gs://BUCKET_NAME/input/video-2.mp4 Copying file://input/video-1.mp4 to gs://BUCKET_NAME/input/video-1.mp4 Copying file://input/video-0.mp4 to gs://BUCKET_NAME/input/video-0.mp4 Completed files 4/4 | 37.5MiB/37.5MiB Average throughput: 48.4MiB/s
작업 만들기
원하는 텍스트 편집기에서
job.json구성 파일을 엽니다.remotePath필드의 값을 Cloud Storage 버킷 이름으로 설정합니다.{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "bash /mnt/share/transcode.sh" } } ], "computeResource": { "cpuMilli": 2000, "memoryMib": 2048 }, "volumes": [ { "gcs": { "remotePath": "BUCKET_NAME" }, "mountPath": "/mnt/share" } ], "maxRetryCount": 2, "maxRunDuration": "600s" }, "taskCount": 3, "parallelism": 3 } ], "allocationPolicy": { "instances": [ { "policy": { "machineType": "n2d-standard-4", "provisioningModel": "SPOT" } } ] }, "labels": { "department": "creative", "env": "testing" }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }변경사항을 저장하고 텍스트 편집기를 닫습니다.
transcode작업을 만듭니다.gcloud batch jobs submit transcode \ --config=job.json \ --location=us-central1출력은 다음과 비슷합니다.
Job transcode-7a1654ca-211c-40e8-b0fb-8a00 was successfully submitted. ...이 작업은 3개의 태스크를 동시에 실행합니다. 각 태스크는 동영상 파일 3개 중 1개를 인코딩하여 Cloud Storage 버킷에 업로드하는
transcode.sh스크립트를 실행합니다.
작업 모니터링
콘솔에서 작업 목록 페이지로 이동합니다. Google Cloud
작업 이름 열에서 트랜스코딩을 클릭합니다.
작업 세부정보 페이지가 열립니다.
이벤트 탭을 클릭합니다.
이벤트 목록 섹션에서
transcode작업의 상태를 모니터링할 수 있습니다. 작업이 큐에 추가, 예약, 실행을 완료하는 데 걸리는 시간은 여러 요인에 따라 달라집니다. 이 예에서는 작업이 약 5분 내에 완료될 것으로 예상할 수 있습니다.선택사항: 페이지를 업데이트하려면 새로고침을 클릭합니다.
다음 단계를 진행하기 전에 작업 상태가 성공으로 설정되어 있는지 확인합니다. 작업이 실패하면 문제 해결을 참조하세요.
인코딩된 동영상 보기
콘솔에서 버킷 페이지로 이동합니다. Google Cloud
이름 열에서 BUCKET_NAME를 클릭합니다.
버킷 세부정보 페이지가 열립니다.
이름 열에서 output/을 클릭한 다음 인코딩된 동영상 파일 중 하나를 클릭합니다.
객체 세부정보 페이지가 열립니다.
인코딩된 동영상을 보려면 미리보기를 클릭한 후 재생을 클릭합니다.
삭제
이 페이지에서 사용한 리소스 비용이 계정에 청구되지 않도록 하려면 리소스가 포함된 프로젝트를 삭제하세요. Google Cloud Google Cloud
프로젝트 삭제
비용이 청구되지 않도록 하는 가장 쉬운 방법은 이 튜토리얼에서 사용한 프로젝트를 삭제하는 것입니다.
프로젝트 삭제: Google Cloud
gcloud projects delete PROJECT_ID
개별 리소스 삭제
현재 프로젝트를 계속 사용하려면 이 튜토리얼에서 사용된 개별 리소스를 삭제합니다.
작업 삭제
Batch 작업 실행이 완료되면 transcode 작업을 삭제합니다.
gcloud batch jobs delete transcode \
--location=us-central1
출력은 다음과 비슷합니다.
Job projects/example-project/locations/us-central1/jobs/transcode deletion is in progress
작업을 삭제하면 작업의 세부정보와 기록도 삭제됩니다. 작업 로그는 Cloud Logging 로그 보관 기간이 종료될 때 자동으로 삭제됩니다.
버킷 삭제
이 튜토리얼에서 사용한 Cloud Storage 버킷과 해당 콘텐츠가 더 이상 필요하지 않으면 버킷을 삭제합니다.
gcloud storage rm gs://BUCKET_NAME \
--recursive
출력은 다음과 비슷합니다.
Removing objects:
Removing gs://BUCKET_NAME/input/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/input/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/input/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/output/video-0.mp4#1694788495332395...
Removing gs://BUCKET_NAME/output/video-2.mp4#1694788495296173...
Removing gs://BUCKET_NAME/output/video-1.mp4#1694788495228839...
Removing gs://BUCKET_NAME/transcode.sh#1694788495039427...
Completed 4/4
Removing Buckets:
Removing gs://BUCKET_NAME/...
Completed 1/1
Git 저장소 삭제
이 튜토리얼을 위해 클론한 Batch git 저장소가 더 이상 필요하지 않으면 삭제할 수 있습니다.
cd ../../ && rm -rf batch-samples
다음 단계
Batch 시작 방법 알아보기
작업 생성 및 실행 알아보기