이 문서에서는 작업을 만들 때 Compute Engine VM 인스턴스 템플릿을 지정하여 Batch 작업에 대해 VM 리소스를 정의하는 방법을 설명합니다.
작업이 실행되는 VM 리소스의 유형은 다음 방법 중 하나를 사용하여 직접 정의하지 않으면 Batch에서 자동으로 정의합니다.
instances[].policy
필드를 사용하여 작업의 VM 리소스를 직접 정의합니다. 이 방법은 대부분의 Batch 문서에서 설명됩니다.instances[].instanceTemplate
필드를 사용하여 템플릿을 통해 작업의 VM 리소스를 정의합니다. 이 문서에서 설명하는 방법입니다.기본이 아닌 VM 이미지를 사용하는 작업을 만들려면 템플릿을 사용해야 합니다. 여러 작업에 동일한 VM 리소스를 지정하려는 경우에도 템플릿을 사용하는 것이 편리할 수 있습니다.
시작하기 전에
- Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
- 인스턴스 템플릿을 만들거나 기존 인스턴스 템플릿을 식별합니다.
-
작업을 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
-
프로젝트에 대한 일괄 작업 편집자(
roles/batch.jobsEditor
) -
기본적으로 기본 Compute Engine 서비스 계정인 작업의 서비스 계정에 대한 서비스 계정 사용자(
roles/iam.serviceAccountUser
) -
Compute Engine VM 인스턴스 템플릿에서 작업 만들기:
VM 인스턴스 템플릿의 Compute 뷰어(
roles/compute.viewer
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
-
프로젝트에 대한 일괄 작업 편집자(
Compute Engine VM 인스턴스 템플릿을 사용하여 작업 만들기
이 섹션에서는 기존 VM 인스턴스 템플릿에서 기본 스크립트 작업을 만드는 방법에 대한 예시를 제공합니다. gcloud CLI, Batch API, Go, Java, Node.js, Python 또는 C++을 사용하여 VM 인스턴스 템플릿에서 작업을 만들 수 있습니다.
gcloud
gcloud CLI를 사용하여 VM 인스턴스 템플릿에서 작업을 만들려면 gcloud batch jobs submit
명령어를 사용하고 작업의 JSON 구성 파일에 VM 인스턴스 템플릿을 지정합니다.
예를 들어 VM 인스턴스 템플릿에서 기본 스크립트 작업을 만들려면 다음 안내를 따르세요.
현재 디렉터리에 다음 콘텐츠로
hello-world-instance-template.json
이라는 JSON 파일을 만듭니다.{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks." } } ], "computeResource": { "cpuMilli": 2000, "memoryMib": 16 }, "maxRetryCount": 2, "maxRunDuration": "3600s" }, "taskCount": 4, "parallelism": 2 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ] }, "labels": { "department": "finance", "env": "testing" }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
다음을 바꿉니다.
INSTALL_GPU_DRIVERS
: 선택사항.true
로 설정하면 Batch가 Compute Engine VM 인스턴스 템플릿에 지정된 GPU 유형에 필요한 드라이버를 가져오고 Batch가 이를 자동으로 설치합니다. 자세한 내용은 GPU를 사용하는 작업 만들기 방법을 참조하세요.INSTANCE_TEMPLATE_NAME
: 기존 Compute Engine VM 인스턴스 템플릿의 이름입니다. 인스턴스 템플릿을 create 나열하는 방법을 알아봅니다.
다음 명령어를 실행합니다.
gcloud batch jobs submit example-template-job \ --location us-central1 \ --config hello-world-instance-template.json
API
Batch API를 사용하여 기본 작업을 만들려면 jobs.create
메서드를 사용하여 allocationPolicy
필드에 VM 인스턴스 템플릿을 지정합니다.
예를 들어 VM 인스턴스 템플릿에서 기본 스크립트 작업을 만들려면 다음 요청을 사용합니다.
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/jobs?job_id=example-script-job
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
],
"computeResource": {
"cpuMilli": 2000,
"memoryMib": 16
},
"maxRetryCount": 2,
"maxRunDuration": "3600s"
},
"taskCount": 4,
"parallelism": 2
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"instanceTemplate": "INSTANCE_TEMPLATE_NAME"
}
]
},
"labels": {
"department": "finance",
"env": "testing"
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
다음을 바꿉니다.
PROJECT_ID
: 프로젝트의 프로젝트 ID입니다.INSTALL_GPU_DRIVERS
: 선택사항.true
로 설정하면 Batch가 Compute Engine VM 인스턴스 템플릿에 지정된 GPU 유형에 필요한 드라이버를 가져오고 Batch가 이를 자동으로 설치합니다. 자세한 내용은 GPU를 사용하는 작업 만들기 방법을 참조하세요.INSTANCE_TEMPLATE_NAME
: 기존 Compute Engine VM 인스턴스 템플릿의 이름입니다. 인스턴스 템플릿을 create 나열하는 방법을 알아봅니다.
Go
Go
자세한 내용은 Batch Go API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
Java
자세한 내용은 Batch Java API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
Node.js
자세한 내용은 Batch Node.js API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
Python
자세한 내용은 Batch Python API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
C++
C++
자세한 내용은 Batch C++ API 참고 문서를 확인하세요.
Batch에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
다음 단계
- 작업을 만들거나 실행하는 데 문제가 있는 경우 문제 해결을 참조하기
- 작업 및 태스크 보기
- 작업 만들기 옵션 자세히 알아보기