Dataflow で Compute Engine の予約を使用する

Dataflow ジョブで VM リソースが必要なときに利用できるようにするには、Compute Engine の予約を使用します。予約を使用すると、Compute Engine ゾーンリソースのキャパシティを確実に確保できます。

Dataflow で Compute Engine 予の約を使用するには、次の操作を行います。

  1. Compute Engine の予約を作成します。単一のプロジェクト予約にすることも、共有予約にすることもできます。詳細については、次のドキュメントをご覧ください。

    予約には GPU アクセラレータまたは TPU アクセラレータを含めることができます。

  2. Dataflow ジョブを送信するときに、使用している Beam SDK のバージョンに応じて、次のいずれかのサービス オプションを渡します。

    • Beam バージョン 2.29 より前: --experiments=skip_gce_quota_verification
    • Beam バージョン 2.29 以降: --dataflow_service_options=automatically_use_created_reservation

同じプロジェクト内の優先度の低いワークロードが Dataflow の予約で競合しないようにするには、それらのワークロード用の VM を作成するときに予約アフィニティを none に設定します。詳細については、予約済みインスタンスの使用をご覧ください。

予約を使用するには、Dataflow ワーカーが予約構成と一致する必要があります。場合によっては、ジョブのワーカー マシンタイプを設定する必要があります。詳細については、ワーカーをご覧ください。

制限事項

  • Dataflow ワーカーが予約を使用すると、Compute Engine の予約のすべての制限が適用されます。詳細については、予約の仕組みをご覧ください。

  • Dataflow は Compute Engine のデフォルトの使用順序に依存します。そのため、次の制限が適用されます。

    • 同じプロジェクトまたは組織内の他のワークロードで、--reservation フラグを指定していないものは、プロジェクト固有または共有予約で Dataflow ワークロードと競合する可能性があります。
  • Dataflow Prime のジョブは Compute Engine の予約を使用しません。

予約とアクセラレータ

Dataflow は、アクセラレータ(GPU または TPU)を使用しているパイプラインの対象となる特定の予約をサポートしています。この機能は、許可リスト付きで一般提供されています。特定の予約で Dataflow アクセラレータを使用する手順については、Google のアカウント担当者にお問い合わせください。

料金

Dataflow ジョブの実行中、Dataflow では自動的に消費される予約の VM に対して課金されます。Dataflow が VM を使用していない場合は、Compute Engine によって課金されます。

Compute Engine の料金モデル

GPU または TPU を追加した対象となる特定の予約の VM が Dataflow 使用量に含まれている場合、これらの予約済み VM のコンピューティング リソースは Compute Engine の料金に従って課金されます。対象となる特定の予約が Compute Engine のリソースベースのコミットメントに関連付けられている場合は、使用量に応じてリソースベースの確約利用割引(CUD)も適用されます。また、Dataflow で使用されるコンピューティング リソースの管理プレミアムも課金されます。料金の詳細については、Dataflow の料金をご覧ください。

Dataflow の料金モデル

Dataflow で使用する他のタイプの Compute Engine 予約については、Dataflow の料金モデルを使用して使用量が課金されます。これらの予約の Dataflow 使用量は、リソースベースのコミットメントに関連付けられている場合でも、リソースベースの CUD の対象にはなりません。これは、次の Compute Engine 予約に適用されます。

  • GPU または TPU が追加されていない対象となる特定の予約
  • すべての自動的に消費される予約

次のステップ

Compute Engine の予約の詳細については、Compute Engine ゾーンリソースの予約をご覧ください。