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

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

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

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

시작하기 전에

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

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

  • 기존 커스텀 부팅 디스크를 지정하는 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)

    • 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)

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

다음 단계