Dataflow の料金

このページでは、Dataflow の料金について説明します。他のプロダクトの料金を確認するには、料金についてのドキュメントをご覧ください。

料金の概要

料金設定は時間単位ですが、Dataflow サービスはジョブごとに秒単位で課金されます。秒単位での使用に対して時間単位の料金設定を適用するため、使用時間は時間単位で表されます(例: 30 分は 0.5 時間)。ワーカーとジョブは、以降のセクションで説明するようにリソースを消費します。

ワーカーとワーカー リソース

各 Dataflow ジョブは、少なくとも 1 つの Dataflow ワーカーを使用します。Dataflow サービスは、バッチとストリーミングの 2 つのワーカータイプを提供します。バッチワーカーとストリーミング ワーカーでは、それぞれ別のサービス料が設定されています。

Dataflow ワーカーは次のリソースを消費し、それぞれ秒単位で課金されます。

バッチワーカーとストリーミング ワーカーは、Compute Engine を使用する特殊なリソースです。一方、Dataflow ジョブでは Dataflow サービスによって管理される Compute Engine リソースに対して Compute Engine 課金が発生しません。Dataflow サービスの料金には、このような Compute Engine リソースの使用料金が含まれます。

ジョブのデフォルトのワーカー数をオーバーライドできます。自動スケーリングを使用している場合は、ジョブに割り当てられるワーカーの最大数を指定できます。ワーカーとそれに付随するリソースは、自動スケーリングの作動に基づいて自動的に追加および削除されます。

また、パイプライン オプションを使用して、各ワーカーに割り当てられ、GPU を使用するデフォルトのリソース設定(マシンタイプ、ディスクタイプ、ディスクサイズ)をオーバーライドできます。

Dataflow サービス

Dataflow Shuffle オペレーションは、スケーラブルで効率的、かつフォールト トレラントな方法で、キーごとにデータを分割およびグループ化します。Dataflow はデフォルトですべてワーカー仮想マシンで実行されるシャッフルの実装を使用します。この場合、ワーカーの CPU、メモリ、永続ディスク ストレージを消費します。

Dataflow には、オプションの機能として、スケーラビリティの高い Dataflow Shuffle も用意されています。この機能はバッチ パイプラインでのみ使用でき、ワーカー外部でデータをシャッフルします。Shuffle では、データの処理量に基づいて課金されます。Dataflow で Shuffle サービスを使用するには、Shuffle パイプライン パラメータを指定します。

Shuffle と同様に、Dataflow Streaming Engine では、ストリーミング シャッフルと状態処理がワーカー VM から Dataflow サービスのバックエンドに移動されます。Dataflow でストリーミング パイプラインに Streaming Engine を使用するには、Streaming Engine パイプライン パラメータを指定します。Streaming Engine の使用量は、ストリーミング データ処理量で課金されます。この処理量は、ストリーミング パイプラインに取り込まれたデータの量や、パイプライン ステージの複雑さと数に応じて決まります。処理されたバイトとしてカウントされるものの例には、データソースからの入力フロー、1 つの融合パイプライン ステージから別の融合ステージへのデータフロー、ユーザー定義の状態で保持されるデータフロー、ウィンドウ処理に使用されるデータフロー、Pub/Sub または BigQuery などのデータシンクへのメッセージ出力などが挙げられます。

Dataflow には、バッチ処理に使用する CPU とメモリに割引料金を適用できるオプションも用意されています。Flexible Resource Scheduling(FlexRS)では、処理リソースの使用料を抑えられるよう、通常の VM とプリエンプティブル VM を単一の Dataflow ワーカープールにまとめています。また、利用可能なリソースに基づいてジョブを開始するのに最適な時点を特定するために、FlexRS は 6 時間の枠内で Dataflow のバッチジョブの実行を遅延させます。Dataflow では複数のワーカーを組み合わせて FlexRS ジョブを実行しますが、課金にはワーカーのタイプにかかわらず均一料金が適用され、通常の Dataflow の料金と比べると割安です。Dataflow で、自動スケーリングされるバッチ パイプラインに FlexRS を使用するには、FlexRS パラメータを指定します。

ストリーミング パイプラインの信頼性を管理するため、Dataflow のスナップショットにより、パイプラインの状態を保存して復元できます。スナップショットの使用量は、保存されたデータ量によって課金されますが、これはストリーミング パイプラインに取り込まれたデータ量、ウィンドウ処理ロジック、パイプライン ステージの数に依存します。Dataflow Web UI または gcloud コマンドライン ツールを使用して、ストリーミング ジョブのスナップショットを取得できます。スナップショットからジョブを作成して、パイプラインの状態を復元する場合、追加料金は発生しません。詳細については、Dataflow スナップショットの使用をご覧ください。

Dataflow Prime

Dataflow Prime は Dataflow を基盤とする新しいデータ処理プラットフォームであり、リソース使用率と分散診断が改善されています。

Dataflow Prime を実行しているジョブの料金は、ジョブが使用している Dataflow Processing Unit(DPU)の数に基づいて決まります。DPU は、パイプラインを実行するために割り当てられるコンピューティング リソースを表します。

Dataflow Processing Unit とは

Dataflow Processing Unit(DPU)は、ジョブによって消費されたリソース量を追跡する Dataflow 使用状況測定ユニットです。DPU は、コンピューティング、メモリ、ディスク ストレージ、シャッフルされたデータ(バッチジョブの場合)、処理されたストリーミング データ(ストリーミング ジョブの場合)など、さまざまなリソースの使用状況を追跡します。リソース消費量が多いジョブほど、リソース消費量が少ないジョブよりも DPU 使用量が多くなります。ジョブで使用するさまざまなリソースと DPU は 1 対 1 で対応していませんが、1 DPU は、250 GB の永続ディスクを使用して 1 個の vCPU および 4 GB ワーカーの条件で 1 時間実行される Dataflow ジョブで使用されるリソースと同等です。

ジョブで使用される Dataflow Processing Unit 数を最適化するにはどうすればよいですか?

ジョブの DPU 数は設定できません。DPU は、Dataflow Prime によってカウントされます。ただし、ジョブの次の側面に重点を置くことで、消費される DPU の数を減らすことができます。

  • メモリ消費量を削減する。
  • フィルタ、コンバイナ、効率的なコーダーを使用して、シャッフルの際に処理されるデータ量を削減する。

これらの最適化を特定するには、Dataflow モニタリング インターフェース実行の詳細インターフェースを使用します。

Dataflow Processing Unit はどのように課金されますか?

特定の期間にジョブが消費した DPU の合計数に対して、秒単位で課金されます。単一の DPU の料金は、ジョブタイプ(バッチまたはストリーミング)によって異なります。

ジョブが消費する Dataflow Processing Unit の数を制限するにはどうすればよいですか?

ジョブが使用できる DPU の合計数は、ジョブが使用できるリソースの最大数によって制限されます。ジョブのワーカーの最大数を設定して、ジョブが使用できる DPU 数を制限することもできます。

Dataflow Prime の料金と Dataflow の料金モデルとの違い

Dataflow モデルでは、ジョブが使用する異種リソース(vCPU、メモリ、ストレージ、Dataflow Shuffle や Streaming Engine によって処理されたデータ量)について課金されます。

Dataflow Processing Unit は、これらのリソースを 1 つの測定単位に統合します。ジョブの種類(バッチまたはストリーミング)に基づいて、消費された DPU の数が課金されます。DPU を物理リソースから切り離すことで、ジョブ間のコストを比較したり、Dataflow の使用状況の推移を追跡したりすることが容易になります。詳細については、Dataflow Prime の使用をご覧ください。

Dataflow 料金モデルを使用している既存のジョブへの影響

既存のバッチジョブとストリーミング ジョブは引き続き Dataflow モデルによって課金されます。Dataflow Prime を使用するようにジョブを更新すると、消費した DPU に対して課金されます。

追加のジョブリソース

ワーカー リソースの使用に加え、ジョブで次のリソースが消費される可能性もあります(ただし、これらに限定されません)。これらのリソースは、それぞれ独自の料金設定で課金されます。

料金の詳細

Dataflow の今後のリリースでは、異なるサービス料や関連サービスのバンドルが導入される可能性があります。

使用可能なリージョンとゾーンの詳細については、Compute Engine のリージョンとゾーンのページをご覧ください。

ワーカー リソースの料金

その他のリソースの料金

次のリソースは、ストリーミング、バッチ、FlexRS ジョブと同じレートで課金されます。

1 バッチワーカーのデフォルト: vCPU 1 個、メモリ 3.75 GB、永続ディスク 250 GB

2 FlexRS ワーカーのデフォルト: 1 ワーカーあたり vCPU 2 個、メモリ 7.50 GB、永続ディスク 25 GB(最小 2 つのワーカー)

3 ストリーミング ワーカーのデフォルト: vCPU 4 個、メモリ 15 GB、永続ディスク 400 GB

4 この機能は、Dataflow がサポートされているすべてのリージョンで使用できます。使用可能なロケーションを確認するには、Dataflow のロケーションをご覧ください。

Dataflow Shuffle の料金は、データセットのシャッフルの読み取り操作と書き込み操作で処理されたデータの量に適用されるボリューム調整に基づいて計算されます。詳しくは、Dataflow Shuffle 料金の詳細をご覧ください。

5 この機能は、Dataflow がサポートされているすべてのリージョンで使用できます。使用可能なロケーションを確認するには、Dataflow のロケーションをご覧ください。

Dataflow Shuffle 料金の詳細

請求額は、Dataflow Shuffle の操作で処理された合計データ量に適用されるボリューム調整に基づいて、Dataflow ジョブごとに計算されます。処理された Dataflow Shuffle データに対する実際の請求額は、Dataflow ジョブで処理された合計データ量よりも少ない量に対する正規料金と同じになります。この違いにより、Dataflow Shuffle の課金対象データ量の指標は、Dataflow Shuffle の合計データ量の指標よりも小さくなります。

次の表で、この調整の適用方法を説明します。

ジョブで処理されたデータ 請求額の調整
最初の 250 GB 75% 削減
次の 4,870 GB 50% 削減
5,120 GB(5 TB)を超えた分 なし

たとえば、パイプラインで合計 1,024 GB(1 TB)の Dataflow Shuffle データを処理した場合、請求額は 250 GB × 25% + 774 GB × 50% = 449.5 GB × リージョンの Dataflow Shuffle データ処理レートで計算されます。合計 10,240 GB(10 TB)の Dataflow Shuffle データを処理した場合、課金対象のデータ量は 250 GB × 25% + 4,870 GB × 50% + 5,120 GB = 7,617.5 GB です。

スナップショットの料金

Dataflow スナップショットは、一般提供が開始され次第、他のリージョンで使用可能となります。

使用量の確認

ジョブに関連する vCPU、メモリ、永続ディスク リソースの合計使用量は、Google Cloud Console または gcloud コマンドライン ツールで確認できます。Shuffle とストリーミングの実際のデータ処理量と課金対象のデータ処理量の指標は、どちらも Dataflow モニタリング インターフェースで追跡できます。実際の Shuffle データ処理量を使用すると、パイプラインのパフォーマンスを評価できます。また、請求対象の Shuffle データ処理量を使用すると、Dataflow ジョブのコストを判断できます。ストリーミング データ処理量については、実際の指標と課金対象の指標は同一となります。

料金計算ツール

Google Cloud 料金計算ツールを使用すると、請求金額の算出方法を確認できます。

次のステップ

カスタム見積もりのリクエスト

Google Cloud の従量制課金では、使用したサービスに対してのみ料金が発生します。カスタム見積もりをご希望の場合は、Google のセールスチームにお問い合わせください。
お問い合わせ