Jika Anda dapat memprediksi jam sibuk dan jam sepi bisnis Anda, Anda dapat menggunakan penjadwalan penskalaan untuk secara otomatis menyesuaikan jumlah replica berdasarkan jadwal yang telah ditentukan. Fitur ini melakukan scale-out layanan sebelum puncak trafik guna memastikan kinerja dan melakukan scale-in selama periode jam sepi untuk menghemat biaya. Topik ini menjelaskan cara mengonfigurasi fitur tersebut serta kompatibilitasnya dengan auto-scaling horizontal.
Metode 1: Konfigurasi di Konsol
Aktifkan penyesuaian skala otomatis terjadwal
Login ke Konsol PAI. Pilih Wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).
Pada daftar layanan, klik nama layanan target untuk membuka halaman Overview.
Buka tab Auto Scaling. Di bagian CronHPA, klik Enable Scheduled Scaling.
Pada dialog CronHPA Settings, konfigurasikan parameter-parameter tersebut. Anda juga dapat mengklik Add untuk mengonfigurasi beberapa tugas penyesuaian skala otomatis terjadwal. Setelah mengonfigurasi parameter, klik OK.
Parameter
Deskripsi
Task Name
Nama tugas penyesuaian skala otomatis terjadwal.
Target Replicas
Jumlah replica yang diharapkan.
Scaling Schedule
Waktu menjalankan tugas. Tiga pengaturan berikut didukung:
Week: Tetapkan jadwal mingguan berulang untuk penskalaan otomatis.
Day: Tetapkan jadwal harian berulang untuk penskalaan otomatis.
Cron Expression: Tetapkan waktu untuk penyesuaian skala otomatis terjadwal menggunakan ekspresi cron.
Perbarui konfigurasi penyesuaian skala otomatis terjadwal
Pada tab Auto Scaling, di bagian CronHPA, klik Manage CronHPA.
Pada dialog CronHPA Settings, ubah Task Name, Target Replicas, atau Scaling Schedule.
Klik Update.
Nonaktifkan penyesuaian skala otomatis terjadwal
Pada tab Auto Scaling, di bagian CronHPA, klik Disable Scheduled Scaling.
Pada dialog Confirm Disable, klik Confirm.
Metode 2: Konfigurasi menggunakan client lokal
Aktifkan atau perbarui penyesuaian skala otomatis terjadwal
Setelah membuat layanan, penjadwalan penskalaan dinonaktifkan secara default. Anda dapat login ke client eascmd dan menjalankan subperintah cronscale untuk mengaktifkan penyesuaian skala otomatis terjadwal atau memperbarui konfigurasinya. Untuk informasi lebih lanjut tentang cara login ke client eascmd, lihat Unduh dan autentikasi client.
Format perintah (versi Windows 64-bit digunakan sebagai contoh)
eascmdwin64.exe cronscale [region]/[service_name] -s cronscale.jsonSebelum menjalankan perintah, konfigurasikan file cronscale.json berdasarkan deskripsi parameter. Kode berikut menunjukkan contoh konfigurasi 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
}
]
}Nama Parameter | Deskripsi | Contoh |
ExcludeDates | Waktu yang dikecualikan dari jadwal, ditentukan sebagai ekspresi cron. Untuk informasi lebih lanjut, lihat Lampiran: Ekspresi cron. Catatan Jika ekspresi cron dalam ScaleJobs cocok dengan ekspresi dalam ExcludeDates, tugas ScaleJobs tidak dijalankan. | ["* * * * * 0,6"] Tugas penyesuaian skala terjadwal tidak dijalankan pada hari Sabtu atau Minggu. |
ScaleJobs | Tugas penyesuaian skala terjadwal yang akan dijalankan. Tugas-tugas tersebut mencakup parameter Schedule, TargetSize, dan Name:
| [ { "Schedule": "0 0 18 * * *", "TargetSize": 10, "Name": "scale-up" }, { "Schedule": "0 0 22 * * *", "TargetSize": 3, "Name": "scale-down" }] Lakukan scale-out layanan menjadi 10 replica setiap hari pukul 18.00 dan lakukan scale-in menjadi 3 replica setiap hari pukul 22.00. |
Lihat konfigurasi penyesuaian skala otomatis terjadwal
Format perintah (versi Windows 64-bit digunakan sebagai contoh)
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 |
+--------------+----------------------------+---------+------------+----------------------+Nonaktifkan penyesuaian skala otomatis terjadwal
Format perintah (versi Windows 64-bit digunakan sebagai contoh)
eascmdwin64.exe cronscale rm [region]/[service_name]Kompatibilitas dengan auto-scaling horizontal
Anda dapat menggunakan penyesuaian skala otomatis terjadwal (Cronscaler) bersamaan dengan auto-scaling horizontal (Autoscaler). Saat kedua fitur diaktifkan, Cronscaler memodifikasi nilai min atau max Autoscaler.
Meskipun Cronscaler memodifikasi konfigurasi Autoscaler, pengaturan aslinya tetap berlaku hingga event penskalaan terjadwal berikutnya dipicu. Konfigurasi Autoscaler akan kembali ke pengaturan awal setiap kali layanan diperbarui atau ditingkatkan.
Saat Cronscaler dan Autoscaler diaktifkan secara bersamaan, nilai min dan max ditentukan berdasarkan aturan dalam tabel berikut.
Min/maks auto-scaling horizontal | Penyesuaian skala otomatis terjadwal | Jumlah replica saat ini | Hasil akhir | Deskripsi |
1/10 | 5 | 5 |
| Jika jumlah replica target sesuai dengan jumlah saat ini, tidak ada perubahan yang dilakukan. |
1/10 | 4 | 5 |
| Jika target lebih rendah daripada jumlah replica saat ini, jumlah saat ini dipertahankan. |
1/10 | 6 | 5 |
|
|
5/10 | 4 | 5 |
|
|
5/10 | 11 | 5 |
|
|
Lampiran: Ekspresi cron
Penyesuaian skala terjadwal menggunakan ekspresi cron untuk menentukan jadwalnya.
Ekspresi cron
Karakter khusus
Tanda bintang (*)
Tanda bintang (*) merepresentasikan nilai apa pun. Misalnya,
0 0 0 1 * *merepresentasikan pukul 00.00 pada hari pertama setiap bulan.Tanda hubung (-)
Tanda hubung (-) merepresentasikan rentang nilai kontinu. Misalnya,
0 0 12-14 * * *merepresentasikan pukul 12.00, 13.00, dan 14.00 setiap hari.Koma (,)
Koma (,) merepresentasikan beberapa nilai diskrit. Misalnya,
0 0 12,14 * * *merepresentasikan pukul 12.00 dan 14.00 setiap hari.Garis miring (/)
Garis miring (/) merepresentasikan interval inkremental. Misalnya,
0 */15 * * * *memicu event pada menit ke-0, 15, 30, dan 45 setiap jam. Anda dapat menggunakan garis miring (/) bersama tanda hubung (-). Misalnya,0 5-40/15 * * * *memicu event setiap 15 menit, dimulai dari menit ke-5 hingga menit ke-40 setiap jam. Titik waktu yang valid adalah menit ke-5, 20, dan 35 setiap jam.
Deskripsi parameter waktu
Name
Available values
Available special characters
Second
0-59
* / , -
Minute
0-59
* / , -
Hour
0-23
* / , -
Day
1-31
* / , -
Month
1-12 atau JAN-DEC
* / , -
Week
0-6 atau SUN-SAT
* / , -
FAQ
T: Dapatkah saya mengonfigurasi layanan agar mulai dan berhenti sesuai jadwal?
Ya, Anda bisa. Misalnya, untuk memulai layanan pukul 08.00 dan menghentikannya pukul 20.00, Anda dapat mengaktifkan penyesuaian skala otomatis terjadwal dan membuat dua tugas. Tugas pertama menetapkan jumlah replica target menjadi 1 setiap hari pukul 08.00, sedangkan tugas kedua menetapkannya menjadi 0 setiap hari pukul 20.00.


Referensi
Anda dapat mengaktifkan auto-scaling horizontal untuk secara otomatis menskalakan replica berdasarkan metrik yang ditentukan. Untuk informasi lebih lanjut, lihat Auto-scaling horizontal.
Anda dapat menggunakan kolam sumber daya elastis EAS untuk memastikan bahwa penskalaan layanan tidak dibatasi oleh sumber daya mesin dalam kelompok sumber daya khusus Anda. Untuk informasi lebih lanjut, lihat Kolam sumber daya elastis.