このページでは、Batch for Google Cloud の使用を開始する方法について説明します。
概要
Batch は、Google Cloud リソースでバッチ処理ワークロードをスケジュールし、キューに入れて実行するフルマネージド バッチサービスです。Batch がお客様に代わってリソースをプロビジョニングし、容量を管理することで、バッチ ワークロードを大規模に実行できます。
Batch を使用すると、サードパーティのジョブ スケジューラの構成、管理、リソースのプロビジョニングとプロビジョニング解除、一度に 1 つのゾーンに対するリソースのリクエストは必要ありません。ジョブを実行するには、ワークロードに必要なリソースのパラメータを指定してから、Batch はリソースを取得し、実行するためにジョブをキューに入れます。Batch は、バッチジョブのスケジューリング、実行、保存、分析を支援するために他の Google Cloud サービスとのネイティブな統合を提供するため、ジョブの送信と結果の使用に集中できます。
Batch は次のコンポーネントで構成されます。
ジョブ: ユーザー操作なしで一連のタスクを実行するスケジュールされたプログラム。通常は計算ワークロード用です。たとえば、ジョブは単一のシェル スクリプトや複雑なマルチパート計算です。
具体的には、Batch ジョブは 1 つ以上のタスクの配列と、それらのタスクを実行する環境を表します。ジョブのプログラムを 1 つ以上の実行可能なステップのシーケンスとして定義します。各タスクでは、実行可能な一連のリソースがジョブのリソースに対して実行されます。ジョブのタスクを並列または順次実行するように構成できます。
タスク: ジョブの一連の実行可能なもののうちの 1 つです。ジョブに複数のタスクがある場合、ジョブの実行可能なタスクのインデックスの環境変数を参照することで、それぞれの実行の変動方法を指定します。
実行可能:ジョブの一部として定義する実行可能スクリプトまたはコンテナ。
リソース: ジョブの実行に必要なインフラストラクチャ少なくとも、タスクごとに必要なコンピューティング リソース(CPU コア、メモリ、必要に応じて追加のブートディスク ストレージ)は指定する必要があります。必要に応じて、ジョブの他のリソース オプションを指定することもできます。Batch は、ジョブの実行中に仕様を満たすリソースを自動的に作成し、削除します。
具体的には、各バッチジョブはリージョン マネージド インスタンス グループ(MIG)で実行されます。MIG は、含まれるゾーンの 1 つにそれぞれ配置されている 1 つ以上の一致する Compute Engine 仮想マシン(VM)インスタンスのグループです。各 VM には、ジョブのパフォーマンスに影響を与える CPU コアとメモリの専用ハードウェアと、ジョブと(オペレーティング システム(OS)イメージとジョブ実行の指示を保存する)ブートディスクが備わっています。指定すると、ジョブで追加のリソース(GPU や外部ストレージ ボリュームなど)の追加やアクセスが行われることがあります。ジョブにプロビジョニングされる VM の数は、指定するハードウェア要件とタスク スケジューリング オプションによって異なります。
つまり、Batch でジョブを作成して実行し、それぞれのタスクの実行に必要なリソースを自動的にプロビジョニングして使用できます。
ジョブの動作とオプションの詳細については、ジョブの作成と実行の概要ページをご覧ください。
料金
Batch を使用することによる追加料金は発生しません。ジョブの実行に必要な基盤となるリソースの費用のみが課金されます。
Batch に関連する費用と、Cloud Billing レポートをフィルタして Batch 費用を表示する方法については、料金をご覧ください。
制限事項
Batch には次の制限があります。
- プロジェクトの Batch の割り当てと上限を超えることはできません。
- マシンタイプは、ジョブごとに 1 つしか指定できません。事前定義されたマシンタイプまたはカスタム マシンタイプを指定できます。
- ジョブごとに複数のタスクグループを指定することはできません。すべてのジョブに
group0
という名前のタスクグループが 1 つだけあります。
前提条件
Batch の使用を開始するには、次の前提条件を満たす必要があります。
- プロジェクトで Batch を初めて使用する場合は、プロジェクトで Batch を有効にします。
- 新しいユーザーごとに Batch を設定します。
プロジェクトで Batch を有効にする
プロジェクトで Batch を使用するには、次を行います。
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
プロジェクトに対して Batch が有効になっていることを確認します。
Google Cloud Console または Google Cloud CLI を使用して、Batch for APIs を有効にします。
Console
Batch, Compute Engine, and Cloud Logging API を有効にします。
gcloud
Batch, Compute Engine, and Cloud Logging API を有効にします。
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com バッチジョブを実行するためのリソースを作成してアクセスするために必要な権限を持つ 1 つ以上のサービス アカウントがプロジェクトに含まれていることを確認します。
重要な点として、プロジェクトでバッチジョブを作成および実行できるユーザーには、これらのサービス アカウントのいずれかを使用する権限が付与されている必要があります。そのため、これらのユーザーに付与する権限よりも多くの権限を持つサービス アカウントを選択しないでください。
各ジョブがデフォルトで使用するサービス アカウントは、Compute Engine のデフォルトのサービス アカウントですが、ジョブが使用するサービス アカウントをカスタマイズすることもできます。
プロジェクトがバッチジョブに使用するサービス アカウントに、次の IAM ロールを付与します。
- プロジェクトに対するバッチ エージェント報告者(
roles/batch.agentReporter
) - ジョブで Cloud Storage バケットにアクセスできるようにするには、バケットに対するストレージ管理者(
roles/storage.admin
)が必要です - ジョブによって Cloud Logging にログが生成されるようにするには: プロジェクトのログ書き込み(
roles/logging.logWriter
)
サービス アカウントへのロールの付与については、サービス アカウントを制限すると、サービス アカウントへのアクセスを管理するをご覧ください。
- プロジェクトに対するバッチ エージェント報告者(
プロジェクトの Batch サービス エージェントについて、十分に理解しておいてください。
Batch ジョブを作成すると、Batch サービス エージェント(Google 管理のサービス アカウント)が、次の名前でプロジェクト用に自動で作成されます。
service-PROJECT_NUMBER@gcp-sa-cloudbatch.iam.gserviceaccount.com
PROJECT_NUMBER
は、プロジェクトのプロジェクト番号に置き換えます。Batch サービス エージェントには、Google Batch サービス エージェント(
roles/batch.serviceAgent
)の IAM ロールが自動的に付与されます。この構成は、プロジェクトで Batch を使用するために必要です。ただし、共有 VPC ネットワークでジョブを実行するなどの特定のユースケースでは、プロジェクトの Batch サービス エージェントに追加の権限を付与する必要があります。
詳細については、サービス エージェントをご覧ください。
新しいユーザー用に Batch を設定する
ユーザーとして Batch の使用を開始するには:
Batch を使用するために必要な権限を取得するには、プロジェクトに必要な IAM ロールを付与してもらいます。必要な権限については、各タスクのドキュメントをご覧ください。
たとえば、基本ジョブを作成して Batch の使用を開始する場合は、次のタスクに対してロールをリクエストすることを検討してください。
- ジョブを作成するには:
- プロジェクトに対するバッチジョブ編集者(
roles/batch.jobsEditor
) - ジョブのサービス アカウントのサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)。デフォルトではデフォルトの Compute Engine サービス アカウントです。
- プロジェクトに対するバッチジョブ編集者(
- ジョブを一覧表示して記述するには、プロジェクトのバッチジョブ編集者(
roles/batch.jobsEditor
)またはバッチジョブ閲覧者(roles/batch.jobsViewer
) - ジョブのログを表示するには: プロジェクトのログビューア(
roles/logging.viewer
) - ジョブを削除するには: プロジェクトに対するバッチジョブ編集者(
roles/batch.jobsEditor
)
ロールの付与の詳細については、アクセスの管理をご覧ください。
- ジョブを作成するには:
Batch 用のコマンドラインの例を使用する場合は、次の手順で Google Cloud CLI を設定します。詳しくは、Google Cloud CLI の認証をご覧ください。
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
推奨:
gcloud config set project
コマンドを使用して、デフォルト プロジェクトを設定します。gcloud config set project PROJECT_ID
PROJECT_ID
は、プロジェクトのプロジェクト ID に置き換えます。
Batch 用の API の例またはクライアント ライブラリの例を使用する場合は、Batch を認証するをご覧ください。
サポートを受ける
Cloud フォーラムで、Batch をコミュニティとディスカッションできます。
Batch に問題がある場合は、トラブルシューティングのドキュメントをご覧ください。
Batch のサポートの利用やフィードバックの提供を行うには、次のリソースを使用します。
Google Cloud に対する請求に関する問題については、課金サポートにお問い合わせください。
有料のサポート パッケージをご利用の場合は、Batch の問題を Google Cloud サポートに直接お問い合わせください。
Google Cloud には、24 時間 365 日の対応や電話サポート、テクニカル サポート マネージャーへのお問い合わせなど、さまざまなニーズに対応する各種のサポート パッケージが用意されています。詳細については、Google Cloud サポートをご覧ください。
Batch のフィードバックや機能リクエストを提供するため、または有料サポート パッケージなしで Batch に関する問題を報告するには、[フィードバックを送信] ボタンをクリックします。これはそれぞれの Batch ドキュメントページの最初と最後に表示されます。 次のいずれかを選択します。
- Batch ドキュメントに関連するフィードバックについては、[ドキュメントのフィードバック] を選択します。
- Batch のその他のフィードバックについては、[Product feedback] を選択します。
次のステップ
Batch の詳細:
ジョブの作成の詳細を確認する。
関連する Google Cloud プロダクトについて学習する。