プールのベストプラクティス
この記事では、プールとは何か、およびプールを最適に構成する方法について説明します。 プールの作成については、 「プール構成リファレンス」を参照してください。
プールに関する考慮事項
プールを作成するときは、次の点を考慮してください。
ターゲット ワークロードに基づいて、インスタンスの種類と Databricks ランタイムを使用してプールを作成します。
可能であれば、コストを削減するために、プールにプリエンプティブ VM インスタンスを追加します。 ワーカーノードとしてプリエンプティブ VM プールのみを使用します。 ドライバー ノードでは、オンデマンド インスタンスを使用する必要があります。
実行時間が短く、実行時間の要件が厳しいジョブのオンデマンドインスタンスをプールに入力します。
プール タグとクラスター タグを使用して課金を管理します。
プールを事前設定して、クラスターで必要なときにインスタンスを使用できるようにします。
ワークロードに基づいてプールを作成する
組織で一般的に使用するインスタンスの種類と Databricks ランタイムごとにプールを作成することで、インスタンスの取得時間を最小限に抑えることができます。 たとえば、ほとんどの データエンジニアリング クラスターがインスタンスタイプ A を使用し、データサイエンスクラスターがインスタンスタイプ B を使用し、アナリティクスクラスターがインスタンスタイプ C を使用する場合、各インスタンスタイプでプールを作成します。
プリエンプティブ VM インスタンス プールの使用
ドライバー ノードとワーカー ノードの要件が異なる場合は、それぞれに異なるプールを使用します。
Databricks では、ドライバー ノードにプリエンプティブ VM インスタンスを使用しないことを推奨しています。 ワーカー ノードにプリエンプティブ VM プールを使用する場合は、ドライバー タイプとしてオンデマンド プールを選択します。
実行時間が短く、実行時間の要件が厳しいジョブにオンデマンド インスタンスを使用するようにプールを構成します。 これは、プリエンプティブルVMインスタンスは、システムイベントによっていつでも停止できるためです。
対話型開発をサポートするクラスターや、信頼性よりもコスト削減を優先するジョブにプリエンプティブル VM インスタンスを使用するようにプールを構成します。
コストと課金を管理するためのタグ プール
プールを正しいコスト・センターにタグ付けすると、コストと使用量のチャージバックを管理できます。 複数のカスタムタグを使用して、複数のコストセンターをプールに関連付けることができます。 ただし、クラスターがプールから作成されるときにタグがどのように伝達されるかを理解することが重要です。 プールのタグは基盤となるクラウドプロバイダーインスタンスに伝達されますが、クラスターのタグは伝達されません。 クラウド・プロバイダーのコンピュート・コストのチャージバックを管理するために必要なすべてのカスタム・タグをプールに適用します。
プール タグとクラスター タグはどちらも Databricks の課金に反映されます。 クラスター タグとプール タグの組み合わせを使用して、Databricks ユニットのチャージバックを管理できます。
詳細については、 「タグを使用して使用状況を監視する」を参照してください。
コストを制御するためのプールの構成
次の構成オプションを使用して、プールのコストを制御できます。
[Min Idle instances] を 0 に設定して、動作していない実行中のインスタンスに対する支払いを回避します。トレードオフは、クラスターが新しいインスタンスを取得する必要がある場合に時間がかかる可能性があることです。
予想される使用量に基づいて 最大容量 を設定します。 これにより、プール内の使用済みインスタンスとアイドル状態のインスタンスの最大数の上限が設定されます。 ジョブまたはクラスターが最大容量でプールからインスタンスを要求した場合、要求は失敗し、クラスターはそれ以上のインスタンスを取得しません。 そのため、Databricks では、インスタンスのクォータまたは予算の制約が厳密な場合にのみ、最大容量を設定することをお勧めします。
プールの事前設定
プールを最大限に活用するために、新しく作成したプールを事前に設定することができます。 プール構成で [最小アイドル インスタンス数] を 0 より大きく設定します。 または、この値を 0 に設定する推奨事項に従っている場合は、スターター ジョブを使用して、新しく作成されたプールにクラスターがアクセスできるインスタンスがあることを確認します。
スターター ジョブ アプローチでは、より厳しいパフォーマンス要件を持つ ジョブ の前、またはユーザーがインタラクティブ クラスターの使用を開始する前に、柔軟な実行時間要件を持つ ジョブ を実行するようにスケジュールします。 ジョブが終了すると、ジョブに使用されたインスタンスはプールに戻されます。
スターター ジョブを使用すると、プール インスタンスをスピンアップし、プールにデータを設定し、ダウンストリーム ジョブまたは対話型クラスターで引き続き使用できます。