Batch を使ってみる

このページでは、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 の使用を開始するには、次の前提条件を満たす必要があります。

  1. プロジェクトで Batch を以前に使用したことがない場合は、プロジェクトで Batch を有効にします
  2. 新しいユーザーごとに Batch を設定します

プロジェクトで Batch を有効にする

プロジェクトで Batch の使用を開始するには、次の手順に従います。

  1. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します

  3. プロジェクトに対して Batch が有効になっていることを確認します。

    1. Google Cloud コンソールまたは Google Cloud CLI を使用して、Batch の API を有効にします。

      Console

      Batch, Compute Engine, and Cloud Logging API を有効にします。

      API を有効にする

      gcloud

      Batch, Compute Engine, and Cloud Logging API を有効にします。

      gcloud services enable batch.googleapis.comcompute.googleapis.comlogging.googleapis.com

    2. バッチジョブを実行するためのリソースを作成してアクセスするために必要な権限を持つ 1 つ以上のサービス アカウントがプロジェクトに含まれていることを確認します。

      重要な点として、プロジェクトでバッチジョブを作成および実行できるユーザーには、これらのサービス アカウントのいずれかを使用する権限が付与されている必要があります。そのため、これらのユーザーに付与する権限よりも多くの権限を持つサービス アカウントを選択しないでください。

      各ジョブがデフォルトで使用するサービス アカウントは、Compute Engine のデフォルトのサービス アカウントですが、ジョブが使用するサービス アカウントをカスタマイズすることもできます。

      プロジェクトがバッチジョブに使用するサービス アカウントに、次の IAM ロールを付与します。

      • プロジェクトに対するバッチ エージェント報告者(roles/batch.agentReporter
      • ジョブが Cloud Storage バケットにアクセスできるようにするには: バケットのストレージ管理者(roles/storage.admin
      • ジョブが Cloud Logging でログを生成できるようにするには: プロジェクトに対するログ書き込み(roles/logging.logWriter

      サービス アカウントへのロールの付与については、サービス アカウントを制限すると、サービス アカウントへのアクセスを管理するをご覧ください。

    3. プロジェクトの 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 の使用を開始するには、次の手順に従います。

  1. Batch を使用するために必要な権限を取得するには、プロジェクトに必要な IAM ロールを付与するよう管理者に依頼してください。必要な権限を確認するには、各タスクのドキュメントをご覧ください。

    たとえば、基本的なジョブを作成して Batch の使用方法の学習を始める場合は、次のタスクのロールをリクエストすることを検討してください。

    • ジョブを作成するには:
    • ジョブを一覧表示して記述するには: プロジェクトに対するバッチジョブ編集者(roles/batch.jobsEditor)またはバッチジョブ閲覧者(roles/batch.jobsViewer
    • ジョブのログを表示するには: プロジェクトに対するログビューア(roles/logging.viewer
    • ジョブを削除するには: プロジェクトに対するバッチジョブ編集者(roles/batch.jobsEditor

    ロールの付与の詳細については、アクセスの管理をご覧ください。

  2. Batch 用のコマンドラインの例を使用する場合は、次の手順で Google Cloud CLI を設定します。詳しくは、Google Cloud CLI の認証をご覧ください。

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

    2. 推奨: gcloud config set project コマンドを使用して、デフォルト プロジェクトを設定します。

      gcloud config set project PROJECT_ID
      

      PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。

  3. Batch 用の API の例またはクライアント ライブラリの例を使用する場合は、Batch を認証するをご覧ください。

サポートを受ける

Cloud フォーラムで、Batch についてコミュニティとディスカッションできます。

Batch に問題がある場合は、トラブルシューティングのドキュメントをご覧ください。

Batch のサポートを利用する、またはフィードバックを送信するには、次のリソースを使用します。

  • Google Cloud の請求に関する問題については、請求サポートにお問い合わせください。

  • 有料サポート パッケージをお持ちの場合は、Batch に関する問題について Google Cloud サポートに直接お問い合わせください。

    Google Cloud には、24 時間 365 日の対応や電話サポート、テクニカル サポート マネージャーへのお問い合わせなど、さまざまなニーズに対応する各種のサポート パッケージが用意されています。詳細については、Google Cloud サポートをご覧ください。

  • Batch のフィードバックや機能リクエストを提供するため、または有料サポート パッケージなしで Batch に関する問題を報告するには、[フィードバックを送信] ボタンをクリックします。これはそれぞれの Batch ドキュメントページの最初と最後に表示されます。 次に、次のいずれかを選択します。

    • Batch ドキュメントに関連するフィードバックについては、[ドキュメント フィードバック] を選択します。
    • Batch に関するその他のフィードバックについては、[プロダクト フィードバック] を選択します。

次のステップ