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

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

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

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

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

  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 のデフォルトの使用順序に依存します。そのため、次の制限が適用されます。

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

料金

予約済みの Compute Engine VM は、Dataflow ジョブの実行中に Dataflow によって課金されます。Dataflow によって VM が使用されていない場合は、Compute Engine によって課金されます。

次のステップ

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