このページでは、Batch for Google Cloudの使用を開始する方法について説明します。
概要
Batch は、 Google Cloud リソースでバッチ処理ワークロードをスケジュールし、キューに入れて実行するフルマネージド サービスです。たとえば、ハイ パフォーマンス コンピューティング(HPC)、機械学習(ML)、データ処理のワークロードに Batch を使用することを検討してください。 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 つしか指定できません。事前定義されたマシンタイプまたはカスタム マシンタイプを指定できます。
- ジョブごとに指定できるタスクグループは 1 つだけです。すべてのジョブには、group0という名前のタスク グループが 1 つだけあります。
前提条件
Batch の使用を開始するには、次の前提条件を満たしている必要があります。
- プロジェクトで Batch を使用したことがない場合は、プロジェクトで Batch を有効にします。
- 新しいユーザーごとに Batch を設定します。
プロジェクトで Batch を有効にする
プロジェクトで Batch の使用を開始するには、次の手順に従います。
- In the Google Cloud console, on the project selector page, select or create a Google Cloud project. - Roles required to select or create a project - Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
- 
      Create a project: To create a project, you need the Project Creator
      (roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
 
- Verify that billing is enabled for your Google Cloud project. 
- プロジェクトに対して Batch が有効になっていることを確認します。 - Enable the Batch, Compute Engine, and Cloud Logging APIs. - Roles required to enable APIs - To enable APIs, you need the Service Usage Admin IAM role ( - roles/serviceusage.serviceUsageAdmin), which contains the- serviceusage.services.enablepermission. Learn how to grant roles.
- バッチジョブを実行するためのリソースを作成してアクセスするために必要な権限を持つ 1 つ以上のサービス アカウントがプロジェクトに含まれていることを確認します。 - 重要な点として、プロジェクトでバッチジョブを作成および実行できるユーザーには、これらのサービス アカウントのいずれかを使用する権限が付与されている必要があります。そのため、これらのユーザーに付与する権限よりも多くの権限を持つサービス アカウントを選択しないでください。 - 各ジョブがデフォルトで使用するサービス アカウントは、Compute Engine のデフォルトのサービス アカウントですが、ジョブが使用するサービス アカウントをカスタマイズすることもできます。 - ジョブのサービス アカウントにデフォルト構成のみを使用する予定がなければ、プロジェクトが Batch ジョブに使用するサービス アカウントに次の IAM ロールを付与します。 - プロジェクトに対するバッチ エージェント報告者(roles/batch.agentReporter)
- ジョブが Cloud Logging でログを生成できるようにするには: プロジェクトに対するログ書き込み(roles/logging.logWriter)
 - ジョブに使用するサービス アカウントには、ジョブで使用する構成オプションに基づいて追加のロールが必要になる場合があります。追加の権限が必要かどうかについては、各タスクのドキュメントをご覧ください。サービス アカウントへのロールの付与については、サービス アカウントを制限すると、サービス アカウントへのアクセスを管理するをご覧ください。 
- プロジェクトに対するバッチ エージェント報告者(
- プロジェクトの Batch サービス エージェントについて、十分に理解しておいてください。 - Batch ジョブを作成すると、Batch サービス エージェントが、次の名前でプロジェクト用に自動で作成されます。 - 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 をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。 - gcloud init- 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 
- 推奨: - gcloud config set projectコマンドを使用してデフォルト プロジェクトを設定します。- gcloud config set project PROJECT_ID- PROJECT_IDは、プロジェクトのプロジェクト ID に置き換えます。
 
- Batch 用の API の例またはクライアント ライブラリの例を使用する場合は、Batch を認証するをご覧ください。 
サポートを受ける
Google デベロッパー プログラム フォーラムの Batch タグを使用して、コミュニティで Batch について話し合うことができます。
Batch で問題が発生した場合は、トラブルシューティングのドキュメントをご覧ください。
Batch のサポートを受ける場合やフィードバックを提供する場合は、次のリソースを使用します。
- Google Cloudの請求に関する問題については、請求サポートにお問い合わせください。 
- 有料サポート パッケージをご利用の場合は、Batch に関する問題について Google Cloud サポートに直接お問い合わせください。 - Google Cloud には、24 時間 365 日の対応や電話サポート、テクニカル サポート マネージャーへのお問い合わせなど、さまざまなニーズに対応する各種のサポート パッケージが用意されています。詳細については、Google Cloud サポートをご覧ください。 
- Batch のフィードバックや機能リクエストを提供するため、または有料サポート パッケージなしで Batch に関する問題を報告するには、[フィードバックを送信] ボタンをクリックします。これはそれぞれの Batch ドキュメントページの最初と最後に表示されます。 次のいずれかを選択します。 - Batch ドキュメントに関連するフィードバックについては、[ドキュメント フィードバック] を選択します。
- Batch に関するその他のフィードバックについては、[プロダクト フィードバック] を選択します。
 
次のステップ
- Batch の詳細を確認する。 
- ジョブの作成の詳細を確認する。 
- 関連する Google Cloud プロダクトについて学習する: