クラスタのスケジュール設定された削除

非アクティブなクラスタに対して Google Cloud の料金が発生しないようにするには、クラスタの作成時に Dataproc のクラスタのスケジュール設定された削除機能を使用します。この機能には、次のイベントが発生したときにクラスタを削除するオプションがあります。

スケジュール設定された削除を無効にするアクション

クラスタの実行中に次の操作を行うと、無効化アクションが取り消されるまで、スケジュール設定された削除が無効になります。

クラスタのアイドル時間を計算する

スケジュール設定された削除を使用すると、指定したクラスタのアイドル時間が経過した後にクラスタを削除できます。アイドル時間は、クラスタの作成とクラスタのプロビジョニングが完了した後に計算されます。アイドル時間の計算は、クラスタで実行中のジョブがなくなったときに開始されます。

dataproc:dataproc.cluster-ttl.consider-yarn-activity クラスタ・プロパティは、以下のようにクラスタのアイドル時間の計算に影響します

  • このプロパティはデフォルトで有効(true に設定)になっています。
  • このプロパティが有効になっている場合、クラスタのアイドル時間の計算を開始してインクリメントを継続するには、YARN アクティビティと Dataproc Jobs API アクティビティの両方がアイドル状態になっている必要があります。
    • YARN アクティビティには、保留中と実行中の YARN アプリケーションが含まれます。
    • Dataproc Jobs API アクティビティには、Dataproc Jobs API にサブミットされた保留中のジョブと実行中のジョブが含まれます。
  • このプロパティが false に設定されている場合、クラスタのアイドル時間の計算は、Dataproc Jobs API アクティビティがアイドル状態の場合にのみ開始され、継続されます。

dataproc:dataproc.cluster-ttl.consider-yarn-activity プロパティは、1.4.641.5.392.0.13 以降のイメージ バージョンで作成されたクラスタに適用されます。それより前のイメージ バージョンで作成されたクラスタでは、クラスタのアイドル時間の計算には Dataproc Jobs API アクティビティのみが考慮されます。

クラスタのスケジュール設定された削除を使用する

Google Cloud CLI、Dataproc API、または Google Cloud コンソールを使用してクラスタを作成するときに、削除予定の値を設定できます。クラスタを作成した後、クラスタを更新して、クラスタに事前に設定されたスケジュール設定された削除の値を変更または削除できます。

gcloud CLI

次の表に示すフラグと値を gcloud dataproc clusters create コマンドまたは gcloud dataproc clusters update コマンドに渡すことで、クラスタで削除スケジュールの値を作成または更新できます。

gcloud CLI フラグ 説明 値の粒度 最小値 最大値
--delete-max-idle1 クラスタの作成コマンドとクラスタの更新コマンドに適用されます。クラスタが作成または更新されて使用可能な状態になった後、アイドル状態になってからクラスタの削除が開始されるまでの期間。期間は IntegerUnit 形式で指定します。単位は「s、m、h、d」(それぞれ秒、分、時間、日)のいずれかにできます。例: 「30m」: クラスタがアイドル状態になってから 30 分。 1 秒 5分 14 日
--no-delete-max-idle クラスタ更新コマンドにのみ適用されます。以前の delete-max-idle フラグ設定によるクラスタ削除をキャンセルします。 なし なし なし
--delete-expiration-time2 クラスタの作成コマンドとクラスタの更新コマンドに適用されます。クラスタの削除を開始する時点を ISO 8601 の日付時刻形式で指定します。正しい形式の日時を生成するには、Timestamp Generator を使用します。たとえば、「2017-08-22T13:31:48-08:00」は UTC -8:00 のタイムゾーンの 13:21:48 を有効期限として設定します。1 秒 現時点から 10 分 現時点から 14 日間
--delete-max-age2 クラスタの作成コマンドとクラスタの更新コマンドに適用されます。クラスタ作成リクエストを送信してから、クラスタの削除が開始されるまでの期間。期間は IntegerUnit 形式で指定します。単位は「s、m、h、d」(それぞれ秒、分、時間、日)のいずれかにできます。例: 「30m」: 今から 30 分後、「1d」: 今から 1 日後。 1 秒 10 分 14 日
--no-delete-max-age クラスタ更新コマンドにのみ適用されます。以前の delete-max-age フラグまたは delete-expiration-time フラグの設定によるクラスタの自動削除をキャンセルします。 該当なし 該当なし 該当なし
メモ:
  1. クラスタの作成リクエストまたは更新リクエストで、delete-expiration-time フラグまたは delete-max-age フラグとともに delete-max-idle フラグを渡すことができます。最初に true となる方がクラスタの削除を行います。
  2. クラスタの作成または更新コマンドには、delete-expiration-time フラグまたは delete-max-age フラグのいずれかを渡すことができますが、両方を渡すことはできません。

クラスタ作成の例:

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --delete-expiration-time=TIME \
    ... other flags ...

クラスタの更新の例:

gcloud dataproc clusters update CLUSTER_NAME \
    --region=REGION \
    --delete-max-idle=DURATION \
    --no-delete-max-age \
    ... other flags

REST API

クラスタのスケジュール設定された削除値を作成または更新するには、次の表に示す Dataproc API の ClusterLifecycleConfig フィールドと値を、Dataproc の cluster.create または cluster.patch API リクエストの一部として設定します。

API フィールド 説明 値の粒度 最小値 最大値
idleDeleteTtl1 クラスタの作成コマンドとクラスタの更新コマンドに適用されます。クラスタが作成または更新されて使用可能な状態になった後、アイドル状態になってからクラスタの削除が開始されるまでの期間。新しい値でクラスタを更新する場合、新しい値は以前に設定した値よりも大きくする必要があります。秒単位の期間を小数点以下 9 桁までの値で指定し、末尾に「s」を付加します。例: 「3.5s」以前に設定した idleDeleteTtl 値をキャンセルするには、空の期間を送信します。 1 秒 5分 14 日
autoDeleteTime2 クラスタの作成コマンドとクラスタの更新コマンドに適用されます。クラスタの削除を開始する時間。新しい時刻でクラスタを更新する場合、新しい時刻は以前に設定した時刻よりも後にする必要があります。更新時に autoDeleteTime に空の値が設定されている場合、既存の自動削除はキャンセルされます。
RFC 3339 UTC「Zulu」形式のタイムスタンプを、ナノ秒単位の精度で指定します。例: 「2014-10-02T15:01:23.045123456Z」。
1 秒 現時点から 10 分 現時点から 14 日間
autoDeleteTtl2 クラスタ作成リクエストまたはクラスタ更新リクエストを送信してから、クラスタの削除が開始されるまでの期間。クラスタを更新する場合、新しいスケジュール設定された削除時間(更新リクエストの時刻 + 新しい期間)は、以前に設定されたクラスタ削除時刻よりも後にする必要があります。以前に設定した autoDeleteTtl 値をキャンセルするには、空の値を送信します。秒単位の期間を小数点以下 9 桁までの値で指定し、末尾に「s」を付加します。例: 「3.5s」 1 秒 10 分 14 日
注:
  1. クラスタの作成リクエストまたは更新リクエストでは、idleDeleteTtlautoDeleteTime または autoDeleteTtl のいずれかを設定または更新できます。最初に true となる方がクラスタの削除を行います。
  2. リクエストで autoDeleteTime または autoDeleteTtl のいずれかを設定または更新できますが、両方は設定できません。

コンソール

  1. Dataproc の [クラスタの作成] ページを開きます。
  2. [クラスタのカスタマイズ] パネルを選択します。
  3. [スケジュール設定された削除] セクションで、クラスタに適用するオプションを選択します。

スケジュール設定された削除のクラスタ設定を表示する

gcloud CLI

gcloud dataproc clusters list コマンドを使用して、クラスタでスケジュール設定された削除が有効になっていることを確認できます。

 gcloud dataproc clusters list \
     --region=REGION
出力例:
...
NAME         WORKER_COUNT ... SCHEDULED_DELETE
CLUSTER_ID   NUMBER       ... enabled
...

gcloud dataproc clusters describe コマンドを使用して、クラスタの LifecycleConfig のスケジュール設定された削除の設定を確認できます。

gcloud dataproc clusters describe CLUSTER_NAME \
    --region=REGION
...
lifecycleConfig:
  autoDeleteTime: '2018-11-28T19:33:48.146Z'
  idleDeleteTtl: 1800s
  idleStartTime: '2018-11-28T18:33:48.146Z'
...

autoDeleteTimeidleDeleteTtl は、クラスタで設定されているスケジュール設定された削除の構成値です。Dataproc は idleStartTime 値を生成します。この値は、クラスタのアイドル状態が開始された時刻の最新値です。クラスタがアイドル状態のままの時間が idleStartTime + idleDeleteTtl に達すると、クラスタは Dataproc によって削除されます。

REST API

クラスタでスケジュール設定された削除が有効になっているか確認するには、clusters.list リクエストを行います。

コンソール

  • クラスタのスケジュール設定された削除の設定を表示するには、 Google Cloud コンソールで Dataproc のクラスタページからクラスタ名を選択します。
  • クラスタの詳細ページで、[構成] タブを選択します。クラスタ構成リストに移動して、スケジュール設定された削除の設定を表示します。