커스텀 부팅 디스크를 사용하는 작업 만들기 및 실행

이 페이지에서는 작업이 실행되는 각 가상 머신(VM) 인스턴스를 부팅하는 데 사용되는 영구 디스크를 맞춤설정하는 방법을 설명합니다.

특히 부팅 디스크의 크기, 유형 또는 VM 운영체제(OS) 이미지를 맞춤설정할 수 있습니다. VM OS 이미지만 맞춤설정하려면 대신 작업에 VM OS 이미지 지정을 참조하세요.

부팅 디스크와 부팅 디스크 구성 시기에 대한 자세한 내용은 VM OS 환경 개요를 참조하세요.

시작하기 전에

  1. Batch를 사용한 적이 없으면 Batch 시작하기를 검토하고 프로젝트 및 사용자 기본 요건을 완료하여 Batch를 사용 설정하세요.
  2. 작업을 만드는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

    역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

커스텀 부팅 디스크를 사용하는 작업 만들기 및 실행

다음 방법 중 하나를 선택하여 작업을 만들 때 커스텀 부팅 디스크를 지정하세요.

  • 기존 커스텀 부팅 디스크를 지정하는 Compute Engine 인스턴스 템플릿 사용. 이 작업을 만드는 동안 VM 인스턴스 템플릿을 사용하거나 기존 커스텀 부팅 디스크를 사용하려면 다음 단계를 완료합니다.

    1. 커스텀 부팅 디스크를 만들거나 식별합니다.

      Batch의 부팅 디스크 요구사항은 이 문서와 VM OS 환경 개요를 참조하세요. 부팅 디스크를 만드는 방법은 Compute Engine 문서의 맞춤설정된 부팅 디스크 만들기를 참조하세요.

    2. 이 커스텀 부팅 디스크가 포함된 VM 인스턴스 템플릿을 만들거나 식별합니다.

      VM 인스턴스 템플릿을 만드는 방법은 Compute Engine 문서의 인스턴스 템플릿 만들기를 참조하세요.

    3. 이 VM 인스턴스 템플릿이 포함된 작업을 만들고 실행합니다.

      작업을 만들고 실행하는 방법은 VM 인스턴스 템플릿을 사용하여 작업 리소스 정의를 참조하세요.

  • 부팅 디스크 필드를 사용하여 커스텀 부팅 디스크 지정. 다음 안내의 설명에 따라 gcloud CLI 또는 Batch API를 사용하여 작업을 만들고 실행할 때 부팅 디스크(bootDisk) 필드를 사용하여 새 커스텀 부팅 디스크를 정의할 수 있습니다.

    특히 VM OS 이미지(image ), 영구 디스크 유형 (type ), 또는 크기(sizeGb ) 하위 필드를 구성하여 부팅 디스크를 맞춤설정할 수 있습니다. 생략한 하위 필드가 있으면 Batch가 기본값을 설정합니다.

gcloud

  1. 작업의 구성 세부정보를 지정하는 JSON 파일을 만드세요. 작업의 VM에 대해 새 커스텀 부팅 디스크를 지정하려면 bootDisk 필드 및 하위 필드를 포함하세요.

    예를 들어 새 커스텀 부팅 디스크를 사용하는 기본 스크립트 작업을 만들려면 다음 콘텐츠가 포함된 JSON 파일을 만듭니다.

    {
        "taskGroups": [
            {
                "taskSpec": {
                    "runnables": [
                        {
                            "script": {
                                "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                            }
                        }
                    ]
                },
                "taskCount": 3,
                "parallelism": 1
            }
        ],
        "allocationPolicy": {
          "instances": [
            {
              "policy": {
                "bootDisk": {
                  "image": "VM_OS_IMAGE_URI",
                  "type": "BOOT_DISK_TYPE",
                  "sizeGb": BOOT_DISK_SIZE
                }
              }
            }
          ]
        },
        "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    

    다음을 바꿉니다.

    • VM_OS_IMAGE_URI: VM OS 이미지의 상대적 리소스 이름. 다음 옵션 중 하나를 사용합니다.

      • Batch OS 프리픽스 지정. 특정 Batch OS의 최신 이미지를 사용하려면 다음 형식을 사용하세요.

        BATCH_OS_PREFIX
        

        BATCH_OS_PREFIXBatch VM OS 이미지 프리픽스 중 하나로 바꿉니다. 예를 들어 batch-debian은 Batch Debian OS의 프리픽스입니다.

      • 이미지 계열 지정. 특정 이미지 계열의 최신 이미지를 사용하려면 다음 형식을 사용하세요.

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        다음을 바꿉니다.

        • IMAGE_PROJECT_ID: 허브가 포함된 프로젝트의 프로젝트 ID. 예를 들어 모든 배치 이미지에 batch-custom-image를 지정합니다.
        • IMAGE_FAMILY: 특정 이미지가 하나 이상 포함되고 OS의 유형과 주 버전을 나타내는 이미지 계열. 예를 들어 Batch의 모든 VM OS 이미지 계열을 보려면 VM OS 이미지 목록을 열람하세요.
      • 이미지 버전 지정. VM OS 이미지의 특정 버전을 사용하려면 다음 형식을 사용합니다.

        projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
        

        다음을 바꿉니다.

        • IMAGE_PROJECT_ID: 허브가 포함된 프로젝트의 프로젝트 ID. 예를 들어 모든 배치 이미지에 batch-custom-image를 지정합니다.
        • IMAGE_NAME: VM OS 이미지의 특정 버전을 나타내는 이미지 이름. 예를 들어 Batch의 모든 VM OS 이미지 버전을 보려면 VM OS 이미지 목록을 열람하세요.
    • BOOT_DISK_TYPE: 부팅 디스크의 디스크 유형(pd-standard, pd-balanced, pd-ssd 또는 pd-extreme) 부팅 디스크의 기본 디스크 유형은 pd-balanced입니다.

    • BOOT_DISK_SIZE: 새 영구 디스크의 크기(GB). 이 값은 모든 부팅 디스크 크기 요구사항을 준수해야 합니다.

  2. 작업을 만들려면 다음 gcloud batch jobs submit 명령어를 실행합니다.

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE
    

    다음을 바꿉니다.

    • JOB_NAME: 이 작업의 이름
    • LOCATION: 이 작업의 위치
    • JSON_CONFIGURATION_FILE: 작업의 구성 세부정보가 포함된 JSON 파일의 경로

API

Batch API를 사용하여 작업을 만들려면 jobs.create 메서드를 사용하여 작업의 구성 세부정보를 지정합니다. 작업의 VM OS 이미지를 지정하려면 bootDisk 필드 및 하위 필드를 포함하세요. 예를 들어 새 커스텀 부팅 디스크를 사용하는 기본 스크립트 작업을 만들려면 다음 POST 요청을 수행합니다.

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
    "taskGroups": [
        {
            "taskSpec": {
                "runnables": [
                    {
                        "script": {
                            "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                        }
                    }
                ]
            },
            "taskCount": 3,
            "parallelism": 1
        }
    ],
    "allocationPolicy": {
      "instances": [
        {
          "policy": {
            "bootDisk": {
              "image": "VM_OS_IMAGE_URI",
              "type": "BOOT_DISK_TYPE",
              "sizeGb": BOOT_DISK_SIZE
            }
          }
        }
      ]
    },
    "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

다음을 바꿉니다.

  • VM_OS_IMAGE_URI: VM OS 이미지의 상대적 리소스 이름. 다음 옵션 중 하나를 사용합니다.

    • Batch OS 프리픽스 지정. 특정 Batch OS의 최신 이미지를 사용하려면 다음 형식을 사용하세요.

      BATCH_OS_PREFIX
      

      BATCH_OS_PREFIXBatch VM OS 이미지 프리픽스 중 하나로 바꿉니다. 예를 들어 batch-debian은 Batch Debian OS의 프리픽스입니다.

    • 이미지 계열 지정. 특정 이미지 계열의 최신 이미지를 사용하려면 다음 형식을 사용하세요.

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      다음을 바꿉니다.

      • IMAGE_PROJECT_ID: 허브가 포함된 프로젝트의 프로젝트 ID. 예를 들어 모든 배치 이미지에 batch-custom-image를 지정합니다.
      • IMAGE_FAMILY: 특정 이미지가 하나 이상 포함되고 OS의 유형과 주 버전을 나타내는 이미지 계열. 예를 들어 Batch의 모든 VM OS 이미지 계열을 보려면 VM OS 이미지 목록을 열람하세요.
    • 이미지 버전 지정. VM OS 이미지의 특정 버전을 사용하려면 다음 형식을 사용합니다.

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      다음을 바꿉니다.

      • IMAGE_PROJECT_ID: 허브가 포함된 프로젝트의 프로젝트 ID. 예를 들어 모든 배치 이미지에 batch-custom-image를 지정합니다.
      • IMAGE_NAME: VM OS 이미지의 특정 버전을 나타내는 이미지 이름. 예를 들어 Batch의 모든 VM OS 이미지 버전을 보려면 VM OS 이미지 목록을 열람하세요.
  • BOOT_DISK_TYPE: 부팅 디스크의 디스크 유형(pd-standard, pd-balanced, pd-ssd 또는 pd-extreme) 부팅 디스크의 기본 디스크 유형은 pd-balanced입니다.

  • BOOT_DISK_SIZE: 새 영구 디스크의 크기(GB). 이 값은 모든 부팅 디스크 크기 요구사항을 준수해야 합니다.

다음 단계