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