カスタム ブートディスクを使用するジョブを作成して実行する

このページでは、ジョブを実行する各仮想マシン(VM)インスタンスを起動するために使用する永続ディスクをカスタマイズする方法について説明します。

具体的には、ブートディスクのサイズ、タイプ、VM オペレーティング システム(OS)イメージをカスタマイズできます。VM OS イメージのみをカスタマイズする場合は、ジョブの VM OS イメージを指定するをご覧ください。

ブートディスクの詳細とブートディスクを構成する条件については、VM OS 環境の概要をご覧ください。

準備

カスタム ブートディスクを使用するジョブを作成して実行する

ジョブを作成する際、次のいずれかの方法を選択して、カスタム ブートディスクを指定します。

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_PREFIX は、Batch VM OS イメージの接頭辞のいずれかに置き換えます。たとえば、batch-debian は Batch Debian OS の接頭辞です。

      • イメージ ファミリーを指定する。 特定のイメージ ファミリーの最新イメージを使用するには、次の形式を使用します。

        projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
        

        以下を置き換えます。

        • IMAGE_PROJECT_ID: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージに batch-custom-image を指定します。
        • IMAGE_FAMILY: イメージ ファミリー。1 つ以上の特定のイメージが含まれ、OS の種類とメジャー バージョンを表します。たとえば、Batch のすべての VM OS イメージ ファミリーを確認するには、VM OS イメージのリストを表示します。
      • イメージのバージョンを指定する。 特定のバージョンの VM OS イメージを使用するには、次の形式を使用します。

        projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
        

        以下を置き換えます。

        • IMAGE_PROJECT_ID: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージに batch-custom-image を指定します。
        • IMAGE_NAME: イメージ名。VM OS イメージの特定のバージョンを表します。たとえば、Batch のすべての VM OS イメージ バージョンを表示するには、VM OS イメージのリストを表示します。
    • BOOT_DISK_TYPE: ブートディスクのディスクタイプpd-standardpd-balancedpd-ssdpd-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_PREFIX は、Batch VM OS イメージの接頭辞のいずれかに置き換えます。たとえば、batch-debian は Batch Debian OS の接頭辞です。

    • イメージ ファミリーを指定する。 特定のイメージ ファミリーの最新イメージを使用するには、次の形式を使用します。

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      以下を置き換えます。

      • IMAGE_PROJECT_ID: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージに batch-custom-image を指定します。
      • IMAGE_FAMILY: イメージ ファミリー。1 つ以上の特定のイメージが含まれ、OS の種類とメジャー バージョンを表します。たとえば、Batch のすべての VM OS イメージ ファミリーを確認するには、VM OS イメージのリストを表示します。
    • イメージのバージョンを指定する。 特定のバージョンの VM OS イメージを使用するには、次の形式を使用します。

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      以下を置き換えます。

      • IMAGE_PROJECT_ID: イメージを含むプロジェクトのプロジェクト ID。たとえば、すべての Batch イメージに batch-custom-image を指定します。
      • IMAGE_NAME: イメージ名。VM OS イメージの特定のバージョンを表します。たとえば、Batch のすべての VM OS イメージ バージョンを表示するには、VM OS イメージのリストを表示します。
  • BOOT_DISK_TYPE: ブートディスクのディスクタイプpd-standardpd-balancedpd-ssdpd-extreme のいずれか)。

  • BOOT_DISK_SIZE: 新規の永続ディスクのサイズ(GB)。この値は、すべてのブートディスク サイズの要件に準拠している必要があります。

次のステップ