インフラ

Cloud Workflowsとは?GCPのサーバーレスオーケストレーションの仕組み・料金と採用判断を実装者目線で解説

Cloud Workflowsは、Google Cloud上の複数のサービスやAPI呼び出しを1本の流れとしてつなぎ、Googleがマネージドに実行するサーバーレスのオーケストレーションサービスです。処理の順序・分岐・リトライをYAMLまたはJSONの定義に書き出し、アプリ本体のコードから段取りを切り離せます。この記事では、ステップ定義の構文とコネクタの仕組み、Cloud SchedulerやEventarcによる起動、Cloud RunやCloud Functionsとの連携、内部ステップと外部ステップに分かれた料金体系、そしてCloud Composer(Airflow)やAWS Step Functionsとの違いを踏まえた採用・見送りの判断基準までを、実装者の目線で整理します。

まとめ:Cloud Workflowsの要点とサーバーレスオーケストレーションの位置づけ

Cloud Workflowsの本体は、処理の各段階を「ステップ」として並べ、遷移をYAML(またはJSON)で宣言的に書く仕組みです。HTTPエンドポイントの呼び出し、Google Cloudサービスへのコネクタ経由の呼び出し、変数への代入、条件分岐、繰り返し、並列実行を、アプリのコードではなく外側の定義に追い出せます。常駐サーバーを持たず、実行したステップ数だけ課金される点が、自前のジョブ制御にはない持ち味です。

使いどころは明快です。Cloud FunctionsやCloud Run、外部APIをまたぐ軽量なサービス連携を、順序・分岐・リトライ込みで束ねたいときに効きます。料金は月あたり内部ステップ5,000回・外部ステップ2,000回まで無料で、それ以降も内部ステップは1,000回0.01ドル前後と安価です。逆に、Pythonで書く重厚なデータパイプラインを日次で回すならCloud Composer、単一処理を発火させるだけならCloud Schedulerで足り、Workflowsを挟む必要はありません。GCPを含む基盤の設計・構築はクラウドインフラ構築で相談を受け付けています。

Cloud Workflowsの仕組みとYAML/JSONによるステップ定義の実行モデル

Cloud Workflowsを理解する起点は、ワークフロー全体を「ステップの列」として捉えることです。各ステップが処理を1つ担い、次のステップへ制御と値を渡しながら、先頭から終端まで実行されます。

ステップを順にたどるワークフロー実行の基本モデルと実行履歴の追跡

1つのワークフローは、複数のステップを上から順にたどって進みます。各ステップは前段の結果を受け取り、自分の処理結果を変数に残して次へ渡す——このデータの受け渡しが実行の背骨です。分岐や繰り返しがあっても、最終的にはreturnで値を返すか終端に達するまで遷移が続きます。実行のたびに一意の実行IDが割り当てられ、各ステップの入出力や所要時間をコンソールやCloud Loggingから追跡できる点も持ち味です。ワークフロー1実行あたりの最大実行時間は1年で、長時間の待ち合わせを含むフローも組めます。

YAML・JSONによる宣言的なステップ記述とバージョン管理

ワークフローの定義は、YAMLまたはJSONで記述します。実務ではコメントや可読性の面からYAMLが選ばれることが多く、同じ内容をJSONでも表現できます。各ステップに名前を付け、その中に処理の種類(代入・呼び出し・分岐など)を書く構造です。定義はテキストファイルとしてバージョン管理下に置き、差分レビューやIaCでの配布に載せられます。実処理のコードとフローの制御を分離できる点が、宣言的に書く狙いです。

assign・call・switch・for・parallelなど主要ステップの役割

ステップには用途ごとの書き方があります。変数へ値を入れるassign、HTTP呼び出しやコネクタ・サブワークフローを呼ぶcall、条件分岐のswitch、配列や範囲を反復するfor、複数の分岐や反復を同時に走らせるparallelが中心です。中でもcallが主役で、http.gethttp.postによる任意のエンドポイント呼び出しや、後述のコネクタ呼び出しをここで表します。並列処理では共有変数への書き込みにshared指定が要るなど、逐次実行とは扱いが変わる点は実装時の勘所です。

コネクタとトリガーによるGoogle Cloudサービス連携の構成

Cloud Workflowsの主戦場は、Google Cloudの各サービスを1つの流れとしてつなぐことです。呼び出しにはコネクタが用意され、起動にはCloud SchedulerやEventarcを組み合わせます。

コネクタによるサービス呼び出しとリトライ・長時間処理の待受け

コネクタは、Cloud StorageやBigQuery、Pub/Sub、Compute Engineなど個々のGoogle CloudサービスをWorkflowsから呼ぶための定型です。自分でエンドポイントURLや認証を組み立てる代わりに、コネクタ名とパラメータを渡すだけで呼び出せます。コネクタはエラー時のリトライを内蔵し、完了までに時間がかかる長時間処理(Long-running operation)はポーリングして終了を待ち受ける仕組みです。KubernetesエンジンAPIやVertex AI向けなどコネクタは追加が続いており、呼び出しごとの既定タイムアウトは30分、connector_paramsで最長1年まで延長できます。

Cloud Scheduler・Eventarc・APIによるワークフローの起動

ワークフローの起動経路は複数あります。定時実行ならCloud Schedulerからcron式でキックし、イベント起点ならEventarc経由でCloud StorageへのファイルアップロードやPub/Subメッセージを受けて発火させます。手動やアプリからの起動は、gcloudコマンドやExecutions APIを直接叩く形です。HTTP経由で同期的に呼び出して結果を受け取る使い方もでき、フロントの処理から短いオーケストレーションを呼ぶ構成に向きます。起動の「きっかけ」はこれらに任せ、起動後の「段取り」をWorkflowsが担う分担になります。

Cloud Functions・Cloud Runなど呼び出し先の連携パターン

最も多い構成は、複数のCloud FunctionsCloud Runのサービスを順に呼び、途中の結果で分岐させるパターンです。前処理・本処理・後処理をそれぞれ別のサービスに分け、callで順に呼び出します。独立した処理はparallelでまとめて走らせ、全体の待ち時間を縮める構成も定番です。呼ばれる側は自分の仕事だけに集中し、順序と分岐の制御はワークフロー定義が担うため、各サービスを疎結合に保ったまま全体の流れを組み替えられます。

Cloud Workflowsのエラー処理とリトライ・コールバックによる制御

Cloud Workflowsの実利は、失敗時の制御を定義側に書ける点にあります。例外の捕捉、再試行の方針、外部の応答待ちを、アプリのコードに散らさずフロー定義へ寄せられます。

try・retry・exceptによる例外捕捉と再試行の記述

tryブロックで対象のステップを囲み、retryで再試行回数やバックオフの間隔・倍率を指定し、exceptで失敗時の遷移先を書きます。一時的なネットワークエラーには指数バックオフで数回リトライし、それでも失敗したら通知ステップへ分岐する、といった制御を宣言的に組める点が要点です。標準のリトライポリシー(べき等なHTTP呼び出し向けなど)も用意されており、独自条件が要る場合だけ細かく書けば済みます。リトライで同じ処理が複数回走りうるため、呼ばれる側は同じ入力なら同じ結果になる冪等性を確保しておく設計が前提です。

コールバックによる外部応答と人手承認の待ち合わせと課金の扱い

人による承認や外部システムの応答を挟むフローでは、コールバック機構でワークフローを一時停止し、指定のエンドポイントにHTTPリクエストが届くまで待てます。承認待ちのように「いつ返ってくるか分からない」処理を、ポーリングのループを自作せずに表現できるのが持ち味です。待機中はステップとして課金対象になる点と、待受けの最大時間を踏まえて設計します。長時間の待ち合わせを自前の状態管理で書くより、フロー定義に寄せたほうが破綻しにくい構成です。

Cloud Workflowsの料金体系と内部/外部ステップの課金・無料枠を踏まえた試算

料金の考え方は、実行したステップ数を「内部ステップ」と「外部ステップ」に分けて数える方式です。以下は2026年7月時点の米国リージョンの公開料金をもとにした概算で、実際の金額はリージョンで異なります。

内部ステップと外部ステップの区分・単価と無料枠の課金の考え方

Google Cloud内のAPI呼び出し(*.googleapis.com)やCloud Runの起動、変数代入・条件評価・サブワークフロー呼び出し・コネクタのポーリングは「内部ステップ」に数えます。Google Cloudの外部APIへのリクエストや、コールバック待ちは「外部ステップ」です。無料枠は月あたり内部ステップ5,000回・外部ステップ2,000回。超過分は内部ステップが1,000回あたり0.01ドル前後、外部ステップが1,000回あたり0.025ドル前後で、いずれも1,000回単位(端数切り上げ)で課金されます。外部ステップのほうが単価が高い設計です。

月あたりの実行回数とステップ数から見たコスト試算の考え方と目安

コストはステップ総数にほぼ比例します。無料枠を踏まえた概算は次のとおりで、あくまで単価からの目安です。

月間ステップ数 内部ステップの課金目安 外部ステップの課金目安
無料枠内 0ドル(5,000回まで) 0ドル(2,000回まで)
100万回 約10ドル 約25ドル
1,000万回 約100ドル 約250ドル

1回の実行でステップが10回なら、月10万実行で約100万ステップという換算です。分岐やリトライで発生した評価・再試行もステップとして数えるため、ステップ数の見積もりが料金の勘所になります。外部API呼び出しが多いフローは、外部ステップ単価で膨らみやすい点を織り込んでください。

Cloud ComposerやStep Functionsとの違いと使い分けの判断基準

オーケストレーションの選択肢はCloud Workflowsだけではありません。用途の重なる周辺サービスと比べると、Workflowsが向く領域がはっきりします。

Cloud Workflowsとマネージドオーケストレーションの位置づけの比較

同じ「処理をつなぐ」でも、道具ごとに狙う領域が異なります。軽量なサービス連携はWorkflows、重厚なデータパイプラインはComposer、発火のきっかけはSchedulerやEventarc、という切り分けが実務の基準です。

観点 Cloud Workflows Cloud Composer(Airflow)
定義方法 YAML/JSON Python(DAG)
実行基盤 サーバーレス(常駐なし) 常駐クラスタ(GKE等)
課金 ステップ従量 環境の稼働時間
向く用途 軽量なサービス連携・API連携 大規模データパイプライン
起動 Scheduler/Eventarc/API スケジュール/センサー

Cloud WorkflowsとCloud Composer(Airflow)の使い分け

両者の分かれ目は「常駐コストを払ってでもPythonの表現力とエコシステムが要るか」です。日次のETLや複雑な依存関係を持つデータ処理、豊富なオペレーターやプラグインを使いたいならCloud Composerが向きます。Composerは常駐クラスタを持つため、実行が無くても環境の稼働費がかかる代わりに、大規模なDAGを安定して回せます。一方、数個のサービスをイベント起点でつなぐだけなら、常駐コストのないWorkflowsのほうが軽く、無料枠の範囲で収まることも珍しくありません。「毎日決まった重いパイプライン」ならComposer、「イベントで軽く連携」ならWorkflows、と読み分けてください。

AWS Step FunctionsとのYAML/JSON対ASLの違いと移行観点

Cloud Workflowsは、AWSのStep Functionsに対応するGoogle Cloud側のサービスです。定義言語が異なり、WorkflowsはYAML/JSON、Step FunctionsはASL(Amazon States Language)というJSONベースの言語で書きます。Step Functionsが標準型とExpress型で実行モデルを分けるのに対し、Workflowsは単一の実行モデルで、内部/外部ステップの区分で課金を分ける設計です。マルチクラウドで両者を併用する場合、フローの考え方(順序・分岐・リトライ・並列)は共通するため、概念は流用できても定義ファイルはそれぞれの構文で書き分ける必要があります。

Cloud Workflowsを採用すべき要件と自前実装・他サービスで足りる見送り場面

ここは判断を言い切ります。Cloud Workflowsは万能ではなく、挟むほど得をする条件があるツールです。複数サービスをまたぐ順序・分岐・リトライ・並列のどれかが効くフローでこそ価値が出ます。

Cloud Workflowsを採用すべきワークフロー要件の判断基準

採用が効くのは、Cloud FunctionsやCloud Run、外部APIをまたいで、条件分岐やリトライ、並列実行を含む処理を組むときです。とくに「どのステップで失敗したかを実行履歴から追いたい」「外部の承認応答を挟みたい」「コネクタのリトライを自作せず任せたい」という要件があるなら、Workflowsの実行履歴とコネクタが直接効きます。常駐基盤を持たずに済むため、実行頻度が低く波のあるワークロードほど、無料枠と従量課金の相性がよい構成です。処理の途中経過を運用担当がコンソールで追える点も、障害対応の速さに直結します。

自前実装やSchedulerで足りるケースと過剰投資となる見送り場面

逆に見送るべき場面もあります。サービスを2〜3個順に呼ぶだけで分岐もリトライも要らないなら、呼び出し側のコードで直接つなぐか、Pub/Subとサブスクライバで足ります。単一のジョブを定時に起動するだけならCloud Scheduler単体で十分で、Workflowsを挟むと定義とステップ課金の管理が増えるだけです。Pythonで書く重厚なデータパイプラインや、豊富なオペレーターが要るETLはCloud Composerのほうが向きます。「フローが1本道で、失敗しても手動で流し直せばよい」規模なら、Workflowsは過剰投資です。設計から迷う場合は、要件の切り分け自体をGoogle Cloudを含むインフラ構築で相談できます。

よくある質問

Cloud Workflowsの検討でよく挙がる疑問を、実装者の視点で簡潔に答えます。

Cloud WorkflowsとCloud Functionsの違いは何ですか?

Cloud Functionsは1つの処理(関数)を実行するサービス、Cloud Workflowsはその関数や他サービスを「どの順で、どう分岐・リトライして呼ぶか」を指揮するサービスです。役割が重ならないため、実務では両者を組み合わせ、Functionsが個々の仕事を担い、Workflowsが全体の段取りを担います。単一の処理だけならWorkflowsは不要です。

Cloud WorkflowsとCloud Composerはどちらを選ぶべきですか?

数個のサービスをイベント起点で軽くつなぐならWorkflows、Pythonで書く大規模なデータパイプラインを安定して回すならCloud Composerが向きます。Composerは常駐クラスタの稼働費がかかる代わりに表現力とエコシステムが厚く、Workflowsはサーバーレスで無料枠内に収まることも多い、という違いで選び分けます。

Cloud Workflowsの料金はどのくらいかかりますか?

月あたり内部ステップ5,000回・外部ステップ2,000回までは無料です。超過分は2026年7月時点の米国リージョンで内部ステップが1,000回あたり0.01ドル前後、外部ステップが1,000回あたり0.025ドル前後です。分岐評価やリトライもステップとして数えるため、ステップ数の見積もりが料金を左右します。金額はリージョンで異なります。

Cloud WorkflowsはYAMLとJSONのどちらで書きますか?

どちらでも記述できます。同じ定義をYAMLでもJSONでも表現でき、実務ではコメントが書けて可読性の高いYAMLが選ばれることが多いです。定義はテキストファイルとしてバージョン管理下に置き、レビューやIaCでの配布に載せられます。

Cloud Workflowsの最大実行時間はどのくらいですか?

1回のワークフロー実行の最大時間は1年です。コネクタ呼び出しの既定タイムアウトは30分で、connector_paramsにより最長1年まで延長できます。長時間の待ち合わせや承認待ちを含むフローも、この範囲で組めます。

関連記事

資料請求

RELATED POSTS 関連記事