ビジネスのピーク時とオフピーク時を予測できる場合は、定時スケーリングを使用して、事前に定義したスケジュールに基づいてレプリカ数を自動的に調整できます。この機能は、トラフィックのピーク前にサービスをスケールアウトしてパフォーマンスを確保し、オフピーク時にはスケールインしてコストを節約します。このトピックでは、この機能の設定方法と、水平オートスケーリングとの互換性について説明します。
方法 1:コンソールでの設定
定時オートスケーリングの有効化
PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、Elastic Algorithm Service (EAS) をクリックします。
サービスリストで、目的のサービス名をクリックして概要 ページに移動します。
オートスケーリング タブに移動し、スケジュールされたスケーリング セクションで スケジュールされたスケーリングの有効化 をクリックします。
定時自動スケーリング設定 ダイアログボックスで、パラメーターを設定します。 また、追加 をクリックして複数の定時自動スケーリングタスクを設定することもできます。 パラメーターを設定したら、OK をクリックします。
パラメーター
説明
タスク名
定時オートスケーリングタスクの名前。
ターゲットレプリカ数
期待されるレプリカ数。
スケジューリング周期
タスクを実行する時間。以下の 3 つの設定がサポートされています。
曜日:週単位で繰り返す自動スケーリングスケジュールを設定します。
日: 自動スケーリングの日単位の定期スケジュールを設定します。
cron 式: cron 式を使用して、定期オートスケーリングの時刻を設定します。
定時オートスケーリング設定の更新
オートスケーリング タブの スケジュールされたスケーリング セクションで、スケジュールされたスケーリングの管理 をクリックします。
定時自動スケーリング設定 ダイアログボックスで、タスク名、ターゲットレプリカ数、または スケジューリング周期 を変更します。
更新 をクリックします。
定時オートスケーリングの無効化
オートスケーリング タブの スケジュールされたスケーリング セクションで、スケジュールされたスケーリングの無効化 をクリックします。
シャットダウンの確認 ダイアログボックスで、確認 をクリックします。
方法 2:ローカルクライアントを使用した設定
定時オートスケーリングの有効化または更新
サービスを作成した後、デフォルトでは定時スケーリングは無効になっています。eascmd クライアントにログインし、`cronscale` サブコマンドを実行して、定時オートスケーリングを有効にするか、その設定を更新できます。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 式」をご参照ください。 説明 `ScaleJobs` 内の cron 式が `ExcludeDates` 内の式と一致する場合、その `ScaleJobs` タスクは実行されません。 | ["* * * * * 0,6"] 定時スケーリングタスクは土曜日または日曜日に実行されません。 |
ScaleJobs | 実行する定時スケーリングタスク。タスクには Schedule、TargetSize、Name パラメーターが含まれます。
| [ { "Schedule": "0 0 18 * * *", "TargetSize": 10, "Name": "scale-up" }, { "Schedule": "0 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]水平オートスケーリングとの互換性
定時オートスケーリング (Cronscaler) は、水平オートスケーリング (Autoscaler) と併用できます。両方の機能が有効になっている場合、Cronscaler は Autoscaler の最小値または最大値を変更します。
Cronscaler は Autoscaler の設定を変更しますが、元の設定は次の定時スケーリングイベントがトリガーされるまで有効です。サービスの更新またはアップグレードが行われるたびに、Autoscaler の設定は元の設定に戻ります。
Cronscaler と Autoscaler が同時に有効になっている場合、最小値と最大値は次の表のルールによって決定されます。
水平オートスケーリングの最小値/最大値 | 定時オートスケーリング | 現在のレプリカ数 | 最終結果 | 説明 |
1/10 | 5 | 5 |
| ターゲットレプリカ数が現在のレプリカ数と一致する場合、変更は行われません。 |
1/10 | 4 | 5 |
| ターゲットが現在のレプリカ数より少ない場合、現在のレプリカ数が維持されます。 |
1/10 | 6 | 5 |
|
|
5/10 | 4 | 5 |
|
|
5/10 | 11 | 5 |
|
|
付録:Cron 式
定時スケーリングでは、cron 式を使用してスケジュールを定義します。
Cron 式
特殊文字
アスタリスク (*)
アスタリスク (*) は任意の値を表します。たとえば、
0 0 0 1 * *は毎月 1 日の 00:00 を表します。ハイフン (-)
ハイフン (-) は連続した値の範囲を表します。たとえば、
0 0 12-14 * * *は毎日 12:00、13:00、14:00 を表します。カンマ (,)
カンマ (,) は複数の離散値を表します。たとえば、
0 0 12,14 * * *は毎日 12:00 と 14:00 を表します。スラッシュ (/)
スラッシュ (/) は増分間隔を表します。たとえば、
0 */15 * * * *は毎時 0、15、30、45 分にイベントをトリガーします。スラッシュ (/) はハイフン (-) と一緒に使用できます。たとえば、0 5-40/15 * * * *は毎時 5 分から 40 分まで 15 分ごとにイベントをトリガーします。有効な時点は、毎時 5 分、20 分、35 分です。
時間パラメーターの説明
名前
有効値
使用可能な特殊文字
秒
0-59
* / , -
分
0-59
* / , -
時
0-23
* / , -
日
1-31
* / , -
月
1-12 または JAN-DEC
* / , -
週
0-6 または SUN-SAT
* / , -
よくある質問
Q:スケジュールに基づいてサービスの開始と停止を設定できますか?
A:はい、できます。たとえば、午前 8:00 にサービスを開始し、午後 8:00 に停止するには、定時オートスケーリングを有効にして 2 つのタスクを作成します。最初のタスクは毎日午前 8:00 にターゲットレプリカ数を 1 に設定し、2 番目のタスクは毎日午後 8:00 に 0 に設定します。


関連ドキュメント
水平オートスケーリングを有効にすると、定義されたメトリックに基づいてレプリカを自動的にスケールできます。詳細については、「水平オートスケーリング」をご参照ください。
EAS エラスティックリソースプールを使用すると、専用リソースグループのマシンリソースにサービススケーリングが制限されないように保証できます。詳細については、「エラスティックリソースプール」をご参照ください。