このページでは、ジョブを実行する各仮想マシン(VM)インスタンスを起動するために使用する永続ディスクをカスタマイズする方法について説明します。
具体的には、ブートディスクのサイズ、タイプ、VM オペレーティング システム(OS)イメージをカスタマイズできます。VM OS イメージのみをカスタマイズする場合は、ジョブの VM OS イメージを指定するをご覧ください。
ブートディスクの詳細とブートディスクを構成する条件については、VM OS 環境の概要をご覧ください。
準備
- Batch を以前に使用したことがなかった場合は、Batch を使ってみるを確認し、プロジェクトとユーザーの前提条件を完了して Batch を有効にします。
-
ジョブの作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
プロジェクトのバッチジョブ編集者(
roles/batch.jobsEditor
) -
ジョブのサービス アカウントのサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)。これは、デフォルトでは Compute Engine のデフォルトのサービス アカウントです。
ロールの付与の詳細については、アクセスの管理をご覧ください。
-
プロジェクトのバッチジョブ編集者(
カスタム ブートディスクを使用するジョブを作成して実行する
ジョブを作成する際、次のいずれかの方法を選択して、カスタム ブートディスクを指定します。
既存のカスタム ブートディスクを指定する Compute Engine インスタンス テンプレートを使用する。 このジョブの作成中に VM インスタンス テンプレートを使用する場合、または既存のカスタム ブートディスクを使用する場合は、次の手順を行います。
カスタム ブートディスクを作成または特定します。
Batch のブートディスク要件については、このドキュメントと VM OS 環境の概要をご覧ください。ブートディスクの作成手順については、Compute Engine ドキュメントのカスタマイズしたブートディスクを作成するをご覧ください。
このカスタム ブートディスクを含む VM インスタンス テンプレートを作成または特定します。
VM インスタンス テンプレートの作成手順については、Compute Engine ドキュメントのインスタンス テンプレートを作成するをご覧ください。
この VM インスタンス テンプレートを含むジョブを作成して実行します。
ジョブを作成して実行する方法については、VM インスタンス テンプレートを使用したジョブリソースの定義をご覧ください。
ブートディスク フィールドを使用して、新しいカスタム ブートディスクを指定します。次の手順で説明するように、gcloud CLI または Batch API を使用してジョブを作成および実行するときに、ブートディスク(
bootDisk
)フィールドを使用して新しいカスタム ブートディスクを定義できます。具体的には、VM OS イメージ(
image
)サブフィールド、永続ディスクの種類(type
)サブフィールド、サイズ(sizeGb
)サブフィールドを構成することで、ブートディスクをカスタマイズできます。Batch では、省略することを選択したこれらのサブフィールドのいずれかにデフォルト値を設定します。
gcloud
ジョブの構成の詳細を指定する 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-standard
、pd-balanced
、pd-ssd
、pd-extreme
のいずれか)。BOOT_DISK_SIZE
: 新規の永続ディスクのサイズ(GB)。この値は、すべてのブートディスク サイズの要件に準拠している必要があります。
ジョブを作成するには、次の
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-standard
、pd-balanced
、pd-ssd
、pd-extreme
のいずれか)。BOOT_DISK_SIZE
: 新規の永続ディスクのサイズ(GB)。この値は、すべてのブートディスク サイズの要件に準拠している必要があります。
次のステップ
- ジョブの作成または実行に問題がある場合は、トラブルシューティングをご覧ください。
- ブートディスクと VM OS イメージについて詳細を確認する。
- ジョブの作成の詳細を確認する。
- ジョブとタスクを表示する方法を確認する。