すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:スケジュールされたスケーリング

最終更新日:Jul 22, 2024

Platform for AI (PAI) でスケジュールされたリソーススケーリングを設定して、リソースの無駄を防ぐためにワークロードを推定できるシナリオを処理できます。 この機能を有効にすると、Elastic Algorithm Service (EAS) は、営業時間のピーク前にサービスインスタンスの数を指定した値に自動的に増やすことができます。 ピーク時間が終了すると、EASは特定の時点でサービスインスタンスの数を特定の値に自動的に減らします。 このトピックでは、スケジュールスケーリング機能を設定する方法について説明します。 このトピックでは、スケジュールされたスケーリング機能と自動スケーリング機能の互換性についても説明します。

背景情報

方法1: PAIコンソールでスケジュールされたスケーリングを設定および方法2: クライアントを使用してスケジュールされたスケーリングを設定する方法のいずれかを使用してスケジュールされたスケーリングを設定できます。 サービスのスケジュールスケーリングとオートスケーリングの両方を有効にした場合、オートスケーリングのインスタンスの最小数と最大数は、スケジュールスケーリングのインスタンスの予想数に基づいて変更されます。 詳細については、「スケジュールスケーリングと自動スケーリングの互換性」をご参照ください。

方法1: PAIコンソールでスケジュールされたスケーリングを設定する

スケジュールスケーリングの有効化

  1. EAS-Online Model Servicesページに移動します。

    1. PAIコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、[ワークスペース] をクリックします。 [ワークスペース] ページで、管理するワークスペースの名前をクリックします。

    3. 左側のナビゲーションウィンドウで、[モデル展開] > [Elastic Algorithm Service (EAS)] を選択します。 Elastic Algorithm Service (EAS) ページが表示されます。

  2. Elastic Algorithm Service (EAS) ページで、管理するサービスの名前をクリックして、[サービスの詳細] ページに移動します。

  3. [Auto Scaling] タブをクリックします。 CronHPAセクションで、[スケジュール済みスケーリングの有効化] をクリックします。

  4. CronHPAの設定ダイアログボックスで、必要なパラメーターを設定します。 [追加] をクリックして、スケジュールされた複数のスケーリングタスクを設定することもできます。 下表に、各パラメーターを説明します。 パラメーターを設定したら、[OK] をクリックします。

    パラメーター

    説明

    タスク名

    スケジュールされたスケーリングタスクの名前。 画面上の指示に従って、このパラメーターを設定します。

    期待されるインスタンス

    インスタンスの予想数。

    スケーリングスケジュール

    次のいずれかの方法を使用して、スケジュールされたスケーリングタスクをトリガーするスケジュールを設定できます。

    • 週: 毎週特定の時間にタスクをトリガーできます。

    • 日: 毎日特定の時間にタスクをトリガーできます。

    • Cron式: cron式を入力してタスクをトリガーできます。 cron式の詳細については、「付録: Cron式」をご参照ください。

スケジュールされたスケーリングタスクの設定の更新

  1. [Auto Scaling] タブの [CronHPA] セクションで、[CronHPAの管理] をクリックします。

  2. [CronHPA設定] ダイアログボックスで、ビジネス要件に基づいて、[タスク名][期待されるインスタンス] 、および [スケーリングスケジュール] パラメーターの値を変更します。

  3. [Update] をクリックします。

スケジュールスケーリングの無効化

  1. [Auto Scaling] タブの [CronHPA] セクションで、[Scheduled Scalingの無効化] をクリックします。

  2. 確認ダイアログボックスで、[OK] をクリックします。

方法2: クライアントを使用してスケジュールされたスケーリングを設定する

スケジュールスケーリングの有効化またはスケジュールスケーリング設定の更新

既定では、サービスの作成後、スケジュールされたスケーリング機能は無効になります。 EASCMDクライアントにログインし、cronscaleサブコマンドを実行してこの機能を有効にしたり、関連する設定を更新したりできます。 EASCMDクライアントにログオンする方法については、「EASCMDクライアントのダウンロードとユーザー認証の完了」をご参照ください。

コマンド構文 (例としてWindows 64を使用)

eascmdwin64.exe cronscale [region]/[service_name] -s cronscale.json

コマンドを実行する前に、次の表のパラメーターの説明に基づいてcronscale.jsonファイルを設定する必要があります。 次のコードは、cronscale.jsonファイルのサンプルコンテンツを提供します。

{
  "ExcludeDates": ["* * * * * 6,0"],
  "ScaleJobs": [
    {
      "Schedule": "0 15,45 * * * *",
      "TargetSize": 6
    },
    {
      "Schedule": "0 0,30 * * * *",
      "TargetSize": 1
    },
    {
      "Schedule": "0 7,22,37,52 * * * *",
      "TargetSize": 3
    }
  ]
}

パラメーター

説明

ExcludeDates

スケーリングタスクをスケジュールするときに除外する時間。 cron式を使用して時間を指定します。 詳細については、「付録: Cron式」をご参照ください。

説明

ExcludeDatesパラメーターで指定された時間もScaleJobsパラメーターに含まれている場合、スケジュールされたスケーリングタスクは実行されません。

["* * * * 0,6"]

スケジュールされたスケーリングタスクは、土曜日または日曜日には実行されません。

ScaleJobs

実行するスケジュールされたスケーリングタスクの設定。 ScaleJobsパラメーターには、Schedule、TargetSize、およびNameオプションが含まれます。

  • スケジュール: タスクを実行する時刻。 cron式を使用して時間を指定します。 詳細については、「付録: Cron式」をご参照ください。

  • TargetSize: インスタンスの予想数。

  • 名前: タスクを識別するために使用されるカスタム名。 このオプションはオプションです。

    [名前] オプションを設定するときは、次のルールに注意してください。

    • 名前には、文字と数字のみを使用できます。

    • 名前の長さは20文字を超えることはできません。

[ { "Schedule": "0 18 * *", "TargetSize": 10, "Name": "scale-up" }, { "Schedule": "0 22 * *", "TargetSize": 3, "Name": "scale-down" }]

サービスインスタンスの数は、毎日18:00に10に増加し、22:00に3に減少します。

サービスのスケジューリングされたスケーリング設定の表示

コマンド構文 (例としてWindows 64を使用)

eascmdwin64.exe cronscale show [region]/[service_name]
[RequestId]: F4C38D2D-4B38-5CB7-B706-9A1C41D4617E
+--------------+----------------------------+---------+------------+----------------------+
|     NAME     |          SCHEDULE          |  STATE  | TARGETSIZE |    LASTPROBETIME     |
+--------------+----------------------------+---------+------------+----------------------+
| scale-jobs-1 | 0 5,15,25,35,45,55 * * * * | Succeed |          1 | 2022-03-03T13:45:00Z |
| scale-jobs-0 | 0 0,10,20,30,40,50 * * * * | Succeed |          4 | 2022-03-03T13:50:00Z |
+--------------+----------------------------+---------+------------+----------------------+

スケジュールスケーリングの無効化

コマンド構文 (例としてWindows 64を使用)

eascmdwin64.exe cronscale rm [region]/[service_name]

スケジュールスケーリングと自動スケーリングの互換性

スケジュールスケーリング機能と自動スケーリング機能の両方を有効にできます。 両方の機能を有効にすると、自動スケーリングに指定したminまたはmaxパラメーターの値が、スケジュールされたスケーリングに指定したTargetSizeパラメーターの値に変更されます。

重要

スケジュールされたスケーリング設定は、自動スケーリング設定を上書きします。 ただし、自動スケーリング設定はスケジュールされた時間まで有効です。 サービスが更新またはアップグレードされるたびに、元の自動スケーリング設定が使用されます。

次の表に、両方の機能が有効になる前と後のminおよびmaxパラメーターの値を示します。

オートスケーリングの最小および最大パラメーターの値

スケジュールされたスケーリング

最小および最大パラメータの実際の値

説明

2/5

1

1/5

スケジュールスケーリングに指定されたインスタンスの予想数が、オートスケーリングに指定されたインスタンスの最小数よりも小さい場合、オートスケーリングに指定されたインスタンスの最小数は、スケジュールスケーリングに指定されたインスタンスの予想数に変更されます。

2/5

6

6/6

スケジュールされたスケーリングに指定されたインスタンスの予想数が、自動スケーリングに指定されたインスタンスの最大数を超える場合、自動スケーリングに指定されたインスタンスの最小数と最大数は、スケジュールされたスケーリングに指定されたインスタンスの予想数に変更されます。 この場合、minパラメータとmaxパラメータの値は同じであり、自動スケーリングは実行されません。

2/5

3

3/5

スケジュールスケーリングに指定されたインスタンスの予想数が、オートスケーリングに指定されたインスタンスの最小数と最大数の間にある場合、オートスケーリングに指定されたインスタンスの最小数は、スケジュールスケーリングに指定されたインスタンスの予想数に変更されます。

付録: Cron式

cron式を使用して、スケジュールされたスケーリングを有効にできます。

Cron式 Cron表达式

  • 特殊文字

    • アスタリスク (*)

      アスタリスク (*) を使用して、すべての有効な値を表すことができます。 たとえば、次のcron式は、各月の初日の00:00を表します。0 0 0 1 * *

    • ハイフン (-)

      ハイフン (-) を使用して、有効な値の範囲を表すことができます。 たとえば、次のcron式は、毎日の12:00、13:00、14:00を表します。0 0 12-14 * * *

    • コンマ (,)

      カンマ (,) を使用して、有効な値の範囲を表すことができます。 たとえば、次のcron式は、毎日の12:00と14:00を表します。0 0 12,14 * * *

    • スラッシュ (/)

      スラッシュ (/) を使用して間隔を指定できます。 たとえば、次のcron式は、各時間の0分、15分、30分、および45分を表します。0 */15 * * * * です。 スラッシュ (/) とハイフン (-) を使用して、特定の値の範囲の間隔を指定できます。 たとえば、次のcron式は、1時間ごとの5分から40分の範囲内の5分、20分、および35分を表します。0 5-40/15 * * *

  • 時間関連パラメータの説明

    名前

    有効値

    有効な特殊文字

    0-59

    * / , -

    0-59

    * / , -

    時間

    0-23

    * / , -

    1-31

    * / , -

    1-12またはJAN-DEC

    * / , -

    バックアップ日付

    0-6またはSUN-SAT

    * / , -

関連ドキュメント

  • 自動スケーリングを有効にすると、指定されたメトリックに基づいてインスタンスが自動的にスケーリングされます。 詳細については、「自動スケーリング」をご参照ください。

  • EASのエラスティックリソースプール機能を使用すると、リソースグループのノードリソースが不足している場合でも、専用リソースグループにデプロイされているサービスをスケールアウトできます。 詳細については、「Elasticリソースプール」をご参照ください。