このページでは、Batch for Google Cloud の使用を開始する方法について説明します。
概要
Batch は、Google Cloud リソースでバッチ処理ワークロードをスケジュールし、キューに入れて実行するフルマネージド バッチサービスです。Batch がお客様に代わってリソースをプロビジョニングし、容量を管理することで、バッチ ワークロードを大規模に実行できます。
Batch を使用すると、サードパーティのジョブ スケジューラの構成、管理、リソースのプロビジョニングとプロビジョニング解除、一度に 1 つのゾーンに対するリソースのリクエストは必要ありません。ジョブを実行するには、ワークロードに必要なリソースのパラメータを指定してから、Batch はリソースを取得し、実行するためにジョブをキューに入れます。Batch は、バッチジョブのスケジューリング、実行、保存、分析を支援するために他の Google Cloud サービスとのネイティブな統合を提供するため、ジョブの送信と結果の使用に集中できます。
Batch は、次のコンポーネントで構成されています。
ジョブ: 通常は計算ワークロードのために、ユーザーの操作なしで一連のタスクを完了するスケジューリングされたプログラム。ジョブは、たとえば、単一のシェル スクリプトや複雑なマルチパート計算になります。
ジョブは、タスクと呼ばれる 1 つ以上の特定のアクションを通じて実行されます。各 Batch ジョブは 1 つ以上のタスクの配列で構成され、これらのタスクはすべて同じ実行可能で実行されます。これは、ジョブの実行可能スクリプトとコンテナです。ジョブのタスクは、ジョブのリソースに対して並列に実行することも、順次実行することもできます。
タスク: ジョブの一部として定義され、ジョブの実行時に実行されるプログラムによるアクション。各タスクはジョブのタスクグループの一部です。ジョブの実行可能ファイルは、ジョブ内の各タスクによって実行されます。
リソース: ジョブの実行に必要なインフラストラクチャ各バッチジョブは、ジョブの指定要件とロケーションに基づいて、Compute Engine 仮想マシン(VM)インスタンスのリージョン マネージド インスタンス グループ(MIG)で実行されます。指定した場合、ジョブは GPU などの追加のコンピューティング リソースや、ローカル SSD や Cloud Storage バケットなどの追加の読み取り/書き込みストレージ リソースを使用することもできます。ジョブにプロビジョニングされる VM の数を決定する要因には、各タスクに必要なコンピューティング リソースとジョブの並列性などがあります。タスクを 1 つの VM で順次実行するか、複数の VM で同時に実行するかによって異なります。
まとめると、Batch を使用すると、それぞれがタスクの実行に必要なリソースを自動的にプロビジョニングして使用するジョブを作成して実行できます。
料金
Batch を使用することによる追加料金は発生しません。ジョブの実行に必要な基盤となるリソースの費用のみが課金されます。
Batch に関連する費用と、Cloud Billing レポートをフィルタして Batch 費用を表示する方法については、料金をご覧ください。
制限事項
Batch には次の制限があります。
- プロジェクトのバッチ割り当てと上限を超えることはできません。
- マシンタイプは、ジョブごとに 1 つしか指定できません。事前定義されたマシンタイプまたはカスタム マシンタイプを指定できます。
- ジョブに特定の VM イメージを使用するには、インスタンス テンプレートを使用してジョブを作成する必要があります。
- ジョブごとに複数のタスクグループを指定することはできません。すべてのジョブに
group0
という名前のタスクグループが 1 つだけあります。
前提条件
Batch の使用を開始するには、次の前提条件を満たす必要があります。
- プロジェクトで Batch を初めて使用する場合は、プロジェクトで Batch を有効にします。
- 新しいユーザーごとに Batch を設定します。
プロジェクトで Batch を有効にする
プロジェクトで Batch を使用するには、次を行います。
Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
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 Batch サービス エージェントによるジョブのリソースの作成とアクセスに必要な権限が、各ジョブのサービス アカウントへ付与されるようにするには、プロジェクトで Batch ジョブに使用するサービス アカウントへ次の IAM ロールの権限を付与するように管理者へ依頼してください。
各ジョブがデフォルトで使用するサービス アカウントは、Compute Engine のデフォルトのサービス アカウントですが、ジョブが使用するサービス アカウントをカスタマイズすることもできます。
- プロジェクトの Batch Agent Reporter(
roles/batch.agentReporter
) - ジョブで Cloud Storage バケットにアクセスできるようにするには、バケットに対するストレージ管理者(
roles/storage.admin
)が必要です - ジョブによって Cloud Logging にログが生成されるようにするには: プロジェクトのログ書き込み(
roles/logging.logWriter
)
サービス アカウントへのロールの付与については、サービス アカウントを制限すると、サービス アカウントへのアクセスを管理するをご覧ください。
- プロジェクトの Batch Agent Reporter(
(対応不要)なお、Batch ジョブを作成すると、Batch サービス エージェント(Google 管理のサービス アカウント)が、次の名前でプロジェクト用に自動で作成されます。
service-PROJECT_NUMBER@gcp-sa-cloudbatch.iam.gserviceaccount.com
PROJECT_NUMBER
は、プロジェクトのプロジェクト番号に置き換えます。Batch サービス エージェントには、Google Batch サービス エージェント(
roles/batch.serviceAgent
)の IAM ロールが自動的に付与されます。この構成は、プロジェクトで 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] を選択します。
次のステップ
- ジョブの作成.
- 関連する Google Cloud プロダクトについて学習します。