Dataflow ジョブで VM リソースが必要なときに利用できるようにするには、Compute Engine の予約を使用します。予約を使用すると、Compute Engine ゾーンリソースのキャパシティを確実に確保できます。
Dataflow で Compute Engine 予の約を使用するには、次の操作を行います。
Compute Engine の予約を作成します。単一のプロジェクト予約にすることも、共有予約にすることもできます。詳細については、次のドキュメントをご覧ください。
予約には GPU アクセラレータまたは TPU アクセラレータを含めることができます。
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 のデフォルトの使用順序に依存します。そのため、次の制限が適用されます。
- 同じプロジェクトまたは組織内の他のワークロードで、
--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 ゾーンリソースの予約をご覧ください。