Dataflow ジョブで VM リソースが必要なときに利用できるようにするには、Compute Engine の予約を使用します。予約を使用すると、Compute Engine ゾーンリソースのキャパシティを確実に確保できます。
Dataflow で Compute Engine 予の約を使用するには、次の操作を行います。
Compute Engine の予約を作成します。単一のプロジェクト予約にすることも、共有予約にすることもできます。詳細については、次のドキュメントをご覧ください。
この予約に GPU アクセラレータを含めることができます。
Dataflow ジョブを送信するときに、使用している Beam SDK のバージョンに応じて、次のいずれかのサービス オプションを渡します。
- Beam バージョン 2.29 より前:
--experiments=skip_gce_quota_verification
- Beam バージョン 2.29 以降:
--dataflow_service_options=automatically_use_created_reservation
- Beam バージョン 2.29 より前:
同じプロジェクト内の優先度の低いワークロードが 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 ゾーンリソースの予約をご覧ください。