ビジネスのピーク時とオフピーク時を予測できる場合は、定時スケーリングを使用して、事前に定義したスケジュールに基づいてレプリカ数を自動的に調整できます。この機能は、トラフィックのピーク前にサービスをスケールアウトしてパフォーマンスを確保し、オフピーク時にはスケールインしてコストを節約します。このトピックでは、この機能の設定方法と、水平オートスケーリングとの互換性について説明します。
方法 1:コンソールでの設定
定時オートスケーリングの有効化
PAI コンソールにログインします。ページ上部でリージョンを選択します。次に、目的のワークスペースを選択し、Elastic Algorithm Service (EAS) をクリックします。
サービスリストで、目的のサービス名をクリックしてOverview ページに移動します。
Auto Scaling タブに移動し、CronHPA セクションで Enable Scheduled Scaling をクリックします。
CronHPA Settings ダイアログボックスで、パラメーターを設定します。 また、Add をクリックして複数の定時自動スケーリングタスクを設定することもできます。 パラメーターを設定したら、OK をクリックします。
パラメーター
説明
Task Name
定時オートスケーリングタスクの名前。
Target Replicas
期待されるレプリカ数。
Scaling Schedule
タスクを実行する時間。以下の 3 つの設定がサポートされています。
Week:週単位で繰り返す自動スケーリングスケジュールを設定します。
Day: 自動スケーリングの日単位の定期スケジュールを設定します。
Cron Expression: cron 式を使用して、定期オートスケーリングの時刻を設定します。
定時オートスケーリング設定の更新
Auto Scaling タブの CronHPA セクションで、Manage CronHPA をクリックします。
CronHPA Settings ダイアログボックスで、Task Name、Target Replicas、または Scaling Schedule を変更します。
Update をクリックします。
定時オートスケーリングの無効化
Auto Scaling タブの CronHPA セクションで、Disable Scheduled Scaling をクリックします。
Confirm Disable ダイアログボックスで、Confirm をクリックします。
方法 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 エラスティックリソースプールを使用すると、専用リソースグループのマシンリソースにサービススケーリングが制限されないように保証できます。詳細については、「エラスティックリソースプール」をご参照ください。