このページでは、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 はジョブのタスクのスケジューリングを管理します。タスクが完了すると、ジョブは次のタスクを自動的に開始します(存在する場合)。
たとえば、次の 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 の使用方法の詳細を確認できるページが記載されています。
ワークフロー サービス | 主な違い | 詳細 |
---|---|---|
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 ドキュメントをご覧ください。 |