このページでは、Cloud Life Sciences から Batch に移行する方法について説明します。
2023 年 7 月 17 日、Google Cloud は、ベータ版だった Cloud Life Sciences を非推奨にすることを発表しました。このサービスは、2025 年 7 月 8 日以降、Google Cloud で利用できなくなります。ただし、Batch は一般提供されており、Cloud Life Sciences のすべてのユースケースをサポートする包括的な後継製品です。
詳しくは、Batch、Cloud Life Sciences、プロダクトのリリース ステージをご覧ください。
Cloud Life Sciences と Batch
Cloud Life Sciences から Batch に移行するには、主に Cloud Life Sciences パイプラインを実行して、現在実行しているワークロードで Batch を使用する方法を把握します。
Batch で Cloud Life Sciences ワークロードを実行する方法については、次のセクションをご覧ください。
概要
Cloud Life Sciences のパイプラインは、実行する一連のアクション(コンテナ)とコンテナを実行する環境を記述します。
Batch ジョブは、1 つ以上のタスクの配列と、それらのタスクを実行する環境を記述します。ジョブのワークロードは、実行される 1 つ以上の実行可能物(コンテナまたはスクリプト)の 1 つのシーケンスとして定義します。ジョブの各タスクは、その一連の実行可能物の 1 回の実行を表します。
Cloud Life Sciences パイプラインは、単一タスクの Batch ジョブとして表すことができます。
たとえば、次のサンプルでは、単純な Cloud Life Sciences パイプラインと同等の Batch ジョブについて記述しています。
Cloud Life Sciences パイプライン | Batch ジョブ |
---|---|
{ "actions": [ { "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } ] } |
{ "taskGroups" : [{ "taskSpec" : { "runnables" : [{ "container":{ "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } }] } }] } |
マルチタスクの Batch ジョブは、コピーされた Cloud Life Sciences パイプラインに似ています。
Cloud Life Sciences とは異なり、Batch ではワークロードの複数の実行を自動的にスケジュールできます。タスクの数を定義することで、ジョブの一連の実行可能物を実行する回数を指定します。ジョブに複数のタスクがある場合、実行可能物のタスクのインデックスを参照して、各実行の変動方法を指定します。また、ジョブのタスクの相対的なスケジュールを構成できます。たとえば、複数のタスクの並列実行を許可するか、またはタスクを順番に 1 つずつ実行することを要求するか、といったスケジュールです。Batch はジョブのタスクのスケジューリングを管理します。タスクが完了すると、ジョブは次のタスクを自動的に開始します(存在する場合)。
たとえば、次のバッチジョブをご覧ください。このサンプルジョブには、10 個の Compute Engine 仮想マシン(VM)インスタンスで実行される 100 個のタスクがあるため、特定の時点で同時に実行されるタスクは約 10 個です。この例のジョブの各タスクは、1 つの実行可能物(BATCH_TASK_INDEX
事前定義の環境変数で定義されたメッセージとタスクのインデックスを出力するスクリプト)のみを実行します。
{
"taskGroups" : [{
"taskSpec" : {
"runnables" : [{
"script":{
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}."
}
}]
},
"taskCount": 100,
"parallelism": 10
}]
}
Batch の組み込みスケジューリングを活用することで、複数の類似した Cloud Life Sciences パイプラインの作成とモニタリングを伴う Workflows を簡略化できる場合があります。
基本的なオペレーション
このセクションでは、Cloud Life Sciences と Batch の基本的なオペレーションについて説明します。
次の表に、Cloud Life Sciences と Batch の基本的なオペレーション オプションを示します。
基本操作 | Cloud Life Sciences のオプション | Batch オプション |
---|---|---|
ワークロードを実行します。 |
|
|
すべてのワークロードを表示します。 |
|
|
ワークロードの詳細とステータスを表示します。 |
|
|
ワークロードを停止して削除する。 |
|
|
Cloud Life Sciences と Batch の基本的なオペレーションには、いくつかの重要な違いがあります。
まず、長時間実行オペレーション リソースは、Batch 内で Cloud Life Sciences と同じ役割を果たしません。Cloud Life Sciences の長時間実行オペレーション リソース(LRO)は、パイプラインの一覧表示と表示に使用される主なリソースです。ただし、Batch やその他の Google Cloud APIs の長時間実行オペレーション リソースは、完了するまでに時間がかかるリクエストのステータスをモニタリングするためにのみ使用されます。特に、Batch では、長時間実行オペレーション リソースを返すリクエストはジョブの削除のみです。Batch の長時間実行オペレーション リソースの詳細については、projects.locations.operations
REST リソースの Batch API リファレンス ドキュメントをご覧ください。Batch では、長時間実行オペレーション リソースを使用する代わりに、ワークロードのジョブリソースを表示して削除します。
次に、Batch でワークロードの詳細を表示すると、Cloud Life Sciences とは異なるオペレーションが行われます。ジョブを表示して、その詳細とステータスの両方を確認できます。ただし、ジョブの各タスクには、ジョブのタスクのリストとタスクの詳細を表示して確認できる独自の詳細とステータスもあります。
Cloud Life Sciences と Batch の基本オペレーションを詳しく理解できるように、次のセクションでは、これらの基本オペレーションの Google Cloud CLI コマンドと API リクエストパスの例を示します。
gcloud CLI コマンドの例
gcloud CLI の場合、Cloud Life Sciences コマンドは gcloud beta lifesciences
で始まり、Batch コマンドは gcloud batch
で始まります。たとえば、次の gcloud CLI コマンドをご覧ください。
Cloud Life Sciences の gcloud CLI コマンドの例:
パイプラインを実行します。
gcloud beta lifesciences pipelines run \ --project=PROJECT_ID \ --regions=LOCATION \ --pipeline-file=JSON_CONFIGURATION_FILE
長時間実行オペレーションの詳細を取得します。
gcloud beta lifesciences operations describe OPERATION_ID
以下を置き換えます。
PROJECT_ID
: プロジェクトのプロジェクト IDLOCATION
: パイプラインのロケーション。JSON_CONFIGURATION_FILE
: パイプラインの JSON 構成ファイル。OPERATION_ID
: パイプラインの実行リクエストによって返された長時間実行オペレーションの識別子。
Batch の gcloud CLI コマンドの例:
ジョブを作成して実行します。
gcloud batch jobs submit JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --config=JSON_CONFIGURATION_FILE
ジョブの詳細を表示します。
gcloud batch jobs describe JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION \
ジョブのタスクのリストを表示します。
gcloud batch tasks list \ --project=PROJECT_ID \ --location=LOCATION \ --job=JOB_NAME
タスクの詳細を表示します。
gcloud batch tasks describe TASK_INDEX \ --project=PROJECT_ID \ --location=LOCATION \ --job=JOB_NAME \ --task_group=TASK_GROUP
ジョブを削除(キャンセル)します。
gcloud batch jobs delete JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION
以下を置き換えます。
JOB_NAME
: ジョブの名前。PROJECT_ID
: プロジェクトのプロジェクト IDLOCATION
: ジョブのロケーション。JSON_CONFIGURATION_FILE
: ジョブの構成の詳細を含む JSON ファイルへのパス。TASK_INDEX
: 詳細を表示するタスクのインデックス。タスクグループでは、最初のタスクのタスク インデックスは 0 から始まり、タスクを追加するごとに 1 ずつ増加します。たとえば、4 つのタスクを含むタスクグループには、インデックス0
、1
、2
、3
が設定されます。TASK_GROUP_NAME
: 詳細を表示するタスクグループの名前。値はgroup0
に設定する必要があります。
API リクエストパスの例
API の場合、Cloud Life Sciences は lifesciences.googleapis.com
リクエストパスを使用し、Batch は batch.googleapis.com
リクエストパスを使用します。たとえば、次の API リクエストパスをご覧ください。Cloud Life Sciences とは異なり、Batch には RPC API はなく、REST API しかありません。
Cloud Life Sciences の API リクエストパスの例:
パイプラインを実行します。
POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/pipelines:run
長時間実行オペレーションの詳細を取得します。
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
以下を置き換えます。
PROJECT_ID
: プロジェクトのプロジェクト IDLOCATION
: パイプラインのロケーション。OPERATION_ID
: パイプラインの実行リクエストによって返された長時間実行オペレーションの識別子。
Batch の API リクエストパスの例:
ジョブを作成して実行します。
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
ジョブの詳細を表示します。
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
ジョブのタスクのリストを表示します。
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP/tasks
ジョブの削除
DELETE https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
ジョブの削除リクエストのステータスを確認します。
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
以下を置き換えます。
IAM のロールと権限
このセクションでは、Cloud Life Sciences と Batch の Identity and Access Management のロールと権限の違いについて説明します。ロールとその権限の詳細については、IAM の基本ロールと事前定義ロールのリファレンスをご覧ください。
次の表に、Cloud Life Sciences のユーザーに必要な事前定義ロールとその権限を示します。
Cloud Life Sciences のロール | 権限 |
---|---|
次のいずれか:
|
|
プロジェクトに対する Cloud Life Sciences 閲覧者(roles/lifesciences.viewer ) |
|
次の表に、Batch の事前定義ロールとその権限を示します。Cloud Life Sciences とは異なり、Batch では、ジョブのユーザーとサービス アカウントに権限を付与する必要があります。IAM 要件の詳細については、Batch の前提条件をご覧ください。
Batch のユーザーのロール | 権限 |
---|---|
プロジェクトに対する Batch ジョブ編集者(roles/batch.jobsEditor ) |
|
プロジェクトに対する Batch ジョブ閲覧者(roles/batch.jobsViewer ) |
|
ジョブのサービス アカウントに対するサービス アカウント ユーザー(roles/iam.serviceAccountUser ) |
|
Batch のサービス アカウントのロール | 権限 |
プロジェクトに対する Batch エージェント報告者(roles/batch.agentReporter ) |
|
対応する機能
次の表では、Cloud Life Sciences の機能、Batch での同等の機能、それらの違いの詳細を示します。
各機能は、説明とその JSON 構文で示されます。JSON 構文は、API を介して Batch にアクセスする場合や、Google Cloud CLI で JSON 構成ファイルを指定する場合に使用できます。ただし、Google Cloud コンソール フィールド、gcloud CLI のフラグ、クライアント ライブラリなどの他の方法でも Batch 機能を使用できます。詳細については、Batch ドキュメントに記載されています。
各機能とその JSON 構文の詳細については、以下をご覧ください。
Cloud Life Sciences の場合は、
projects.locations.pipelines
REST リソースの Cloud Life Sciences API リファレンス ドキュメントをご覧ください。Batch の場合は、
projects.locations.jobs
REST リソースの Batch API リファレンス ドキュメントをご覧ください。
Cloud Life Sciences の機能 | Batch の機能 | 詳細 |
---|---|---|
パイプライン(pipeline ) |
ジョブ(job )とそのタスク(taskGroups[] ) |
Batch ジョブは、すべての同じ実行可能物をそれぞれが実行する 1 つ以上のタスクの配列で構成されます。Cloud Life Sciences パイプラインは、1 つのタスクがある Batch ジョブに似ています。ただし、Cloud Life Sciences には、タスク(複数のタスクがあるジョブ)に対して同等のコンセプトはありません。これは、パイプラインの繰り返しに似ています。 ジョブとタスクの詳細については、Batch の概要をご覧ください。 |
パイプラインのアクション(actions[] ) |
ジョブのタスクの実行可能物(runnables[] ) |
Cloud Life Sciences のアクションはコンテナを記述しますが、Batch の実行可能物にはコンテナまたはスクリプトを含めることができます。 |
アクションの認証情報(credentials ) |
コンテナの実行可能物の場合: |
Cloud Life Sciences では、アクションの認証情報は、ユーザー名とパスワードの Key-Value ペアを含む Cloud Key Management Service 暗号化ディクショナリである必要があります。 Batch では、コンテナの実行可能物のユーザー名とパスワードが別々のフィールドに格納されます。いずれのフィールドも、書式なしテキストまたは Secret Manager シークレットの名前で指定できます。 |
アクションの場合:
|
環境の場合:
考えられる環境:
|
Cloud Life Sciences では、書式なしテキストまたは暗号化された辞書の形式のアクションの環境変数を指定できます。Batch では、これは実行可能物の環境( ただし、Batch には環境変数を指定するその他のオプションもあります。
詳細については、環境変数を使用するをご覧ください。 |
パイプラインを実行するリクエストのラベル(リクエスト本文内の labels ) |
ジョブのラベル(ジョブリソースの labels ) |
Cloud Life Sciences とは異なり、Batch では、新しいジョブを作成するためのリクエストにラベルフィールドが含まれていません。Batch に最も近いオプションは、ジョブにのみ関連するラベルを使用することです。 Batch には、ジョブの作成時に使用できる複数のタイプのラベル( |
パイプラインのリソース(resources )のリージョン(regions[] )とゾーン(zones[] ) |
ジョブのリソース ロケーション ポリシー(allowedLocations )の許可されたロケーション(locationPolicy ) |
Cloud Life Sciences では、単一の VM でパイプラインを実行します。必要なリージョンやゾーンを指定できます。 Batch で同等のオプションとしては、ジョブに許可されているロケーションを使用します。これにより、1 つ以上のリージョンまたはゾーンとして定義し、ジョブの VM を作成できる場所を指定できます。単一の Batch ジョブのすべての VM は、特定のリージョンに存在する単一のマネージド インスタンス グループ(MIG)に属しています。ただし、個々の VM がそのリージョンの異なるゾーンにある場合があります。 特に、ジョブの許可されたロケーション フィールドの指定は、ジョブのロケーションとは異なるためオプションです。ジョブのロケーションとは異なり、許可されたロケーションは、Batch ジョブの作成とジョブのメタデータの保存に使用されるロケーションには影響しません。詳細については、Batch のロケーションをご覧ください。 |
パイプラインのリソース(
|
ジョブのリソース ポリシー(
|
Cloud Life Sciences では、パイプラインが実行される VM を(1 つ)構成できます。 Batch では、ジョブのリソース割り当てポリシー(
|
アクションの場合:
|
実行可能物の場合:
|
Cloud Life Sciences のこれらのさまざまな役立つフラグは、Batch でも同等です。ただし、フラグが各アクション(コンテナ)にではなく、各実行可能物(スクリプトやコンテナを含む場合がある)に指定されている場合を除きます。 |
アクションの場合:
|
コンテナの実行可能物用のオプション(options ) |
これらの Cloud Life Sciences オプション(およびその他のオプション)は、コンテナの実行可能物のオプション フィールド( |
アクションの場合:
|
同等のものはなし |
Batch は、ジョブのログポリシー( |
アクションの外部ネットワーク(blockExternalNetwork )をブロックするオプション |
コンテナの実行可能物の外部ネットワーク(blockExternalNetwork )をブロックするオプション |
アクションで外部ネットワークをブロックする Cloud Life Sciences オプションは、コンテナで外部ネットワークをブロックする Batch オプションに似ています。 Batch には、ジョブのすべての VM の外部ネットワークのブロックなどの、その他のネットワーキング オプションも多数用意されています。詳細については、Batch ネットワーキングの概要をご覧ください。 |
アクションのマウント(mounts[] ) |
すべての実行可能物のボリューム(taskSpec の volumes[] )とコンテナのボリューム オプション(container の volumes[] ) |
Batch では、 また、Batch は Batch でストレージ ボリュームを使用する方法については、ストレージ ボリュームを使用するジョブを作成して実行するをご覧ください。 |
アクションで Cloud Storage FUSE を有効にするオプション(enableFuse ) |
同等のものはなし |
Batch は、ジョブに指定した Cloud Storage バケットなどのストレージ ボリュームのマウントを処理します。そのため、Batch 用の Cloud Storage FUSE などのマウントツールを有効にはしません。ただし、必要に応じて Batch で Cloud Storage バケットを使用する方法については、ストレージ ボリュームを使用するジョブを作成して実行するをご覧ください。 |
パイプラインの実行リクエスト用の Pub/Sub トピック(pubSubTopic ) |
ジョブの通知構成(
|
Batch では、Cloud Life Sciences よりもステータス更新を細かくカスタマイズできます。たとえば、Batch ユーザーには、個々のタスクの状態が変化した場合、またはジョブ全体の状態が変更された場合にのみ、Pub/Sub トピックに通知が送られます。 |
ワークフロー サービス
Cloud Life Sciences でワークフロー サービスを使用する場合は、移行プロセスで、Batch と連携するようにワークフロー サービスを構成することも必要です。このセクションでは、Batch で使用できるワークフロー サービスについて説明します。
Batch では、Google Cloud のワークフロー サービスである Workflows がサポートされています。Batch で Workflows を使用する場合は、Workflows を使用して Batch ジョブを実行するをご覧ください。それ以外の場合は、次の表に、Batch で使用できる Cloud Life Sciences に使用できる他のワークフロー サービスを示します。次の表では、各ワークフロー サービスで Cloud Life Sciences の代わりに Batch を使用した場合の主な相違点と、各サービスでの Batch の使用方法の詳細を確認できるページが記載されています。
Workflow Service | 主な違い | 詳細 |
---|---|---|
Cromwell |
代わりに Batch API で v2beta Cloud Life Sciences API の Cromwell 構成ファイルを使用するには、次の変更を行います。
|
Cromwell での Batch の使用方法については、Batch の Cromwell ドキュメントと Batch の Cromwell チュートリアルをご覧ください。 |
dsub |
代わりに Batch で Cloud Life Sciences の dsub パイプラインを実行するには、次の変更を行います。
|
dsub で Batch を使用する方法については、Batch の dsub ドキュメントをご覧ください。 |
Nextflow |
代わりに Batch で Cloud Life Sciences の Nextflow 構成ファイルを使用するには、次の変更を行います。
|
Nextflow での Batch の使用方法について詳しくは、Batch のチュートリアルまたは Nextflow のチュートリアルをご覧ください。構成オプションの詳細については、Nextflow のドキュメントをご覧ください。 |
Snakemake |
代わりに Batch API で v2beta Cloud Life Sciences API の Snakemake パイプラインを使用するには、次の変更を行います。
|
Snakemake で Batch を使用する方法については、Batch の Snakemake ドキュメントをご覧ください。 |