All Products
Search
Document Center

Auto Scaling:Praktik terbaik untuk mengoordinasikan tugas terjadwal dan tugas berbasis peristiwa

Last Updated:Jun 23, 2026

Auto Scaling mendukung tugas terjadwal maupun tugas berbasis peristiwa (termasuk aturan pelacakan target). Jika keduanya diaktifkan secara bersamaan, konfigurasi yang tidak tepat dapat menyebabkan tugas berbasis peristiwa menggantikan skala keluar terjadwal, sehingga menghasilkan kapasitas yang tidak diharapkan. Memahami interaksi antara keduanya membantu Anda mengonfigurasinya dengan benar dan menghindari konflik penskalaan.

Skenario masalah

Ketika sebuah grup penskalaan memiliki jumlah instans yang diharapkan, tugas terjadwal, dan tugas berbasis peristiwa (seperti aturan pelacakan target) diaktifkan secara bersamaan, konflik dapat terjadi: tugas terjadwal memicu skala keluar, tetapi sebelum selesai, tugas berbasis peristiwa dijalankan dan menimpa jumlah instans yang diharapkan, sehingga mencegah skala keluar tersebut berlaku.

Kasus khas

Kasus 1: Skala keluar terjadwal digantikan oleh aturan pelacakan target

Grup penskalaan pengguna dikonfigurasi sebagai berikut:

  • Jumlah instans yang diharapkan diaktifkan.

  • Tugas terjadwal: Setiap pukul 08.00 pagi, lakukan skala keluar menjadi 200 instans.

  • Aturan pelacakan target: Pertahankan utilisasi CPU pada 60%.

Eksekusi aktual:

Waktu

Event

Perubahan jumlah instans yang diharapkan

08:00:15

Tugas terjadwal dipicu dan mengubah jumlah instans yang diharapkan dari 80 menjadi 200.

80 → 200

08:00:28

Aturan pelacakan target memicu skala keluar sebanyak 10 instans dan menimpa jumlah instans yang diharapkan dari 200 menjadi 90.

200 → 90

Hasil: Target 200 instans yang ditetapkan oleh tugas terjadwal digantikan. Jumlah akhir hanya 90 instans, jauh di bawah kebutuhan bisnis.

Kasus 2: Tugas terjadwal digantikan oleh aturan pelacakan target

Grup penskalaan pengguna dikonfigurasi sebagai berikut:

  • Jumlah instans yang diharapkan diaktifkan.

  • Tugas terjadwal: Menggunakan ekspresi cron untuk melakukan skala keluar instans dalam persentase tertentu.

  • Aturan pelacakan target: Pertahankan utilisasi memori pada nilai target.

Eksekusi aktual:

Waktu

Event

Perubahan jumlah instans yang diharapkan

12:00:08

Tugas terjadwal dipicu dan mengubah jumlah instans yang diharapkan dari 20 menjadi 40.

20 → 40

12:00:50

Tugas berbasis peristiwa memicu skala keluar sebanyak 1 instans dan menimpa jumlah instans yang diharapkan dari 40 menjadi 21.

40 → 21

Hasil: Target 40 instans yang ditetapkan oleh tugas terjadwal digantikan. Jumlah akhir hanya 21 instans.

Kasus 3: Jumlah instans yang diharapkan yang ditetapkan oleh tugas terjadwal digantikan oleh aturan simple

Grup penskalaan pengguna dikonfigurasi sebagai berikut:

  • Jumlah instans yang diharapkan diaktifkan.

  • Tugas terjadwal: Mengubah jumlah instans yang diharapkan menjadi 50.

  • Tugas berbasis peristiwa: Terkait dengan aturan simple.

Eksekusi aktual:

Waktu

Event

Perubahan jumlah instans yang diharapkan

09:00:10

Tugas terjadwal dipicu dan mengubah jumlah instans yang diharapkan dari 2 menjadi 50.

2 → 50

09:00:22

Tugas berbasis peristiwa memicu skala keluar sebanyak 3 instans dan menimpa jumlah instans yang diharapkan dari 50 menjadi 5.

50 → 5

Hasil: Target 50 instans yang ditetapkan oleh tugas terjadwal digantikan. Jumlah akhir hanya 5 instans.

Analisis penyebab

Akar permasalahan terletak pada mekanisme eksekusi yang berbeda antara tugas terjadwal dan tugas berbasis peristiwa:

Aspek

Tugas terjadwal (hanya memodifikasi jumlah instans yang diharapkan)

Tugas berbasis peristiwa

Metode eksekusi

Hanya memodifikasi nilai jumlah instans yang diharapkan tanpa langsung memicu aktivitas penskalaan.

Langsung memicu aktivitas penskalaan dan sekaligus memperbarui jumlah instans yang diharapkan.

Waktu berlaku

Memerlukan waktu 30 detik hingga 1 menit untuk berlaku setelah jumlah instans yang diharapkan dimodifikasi.

Berlaku segera.

Risiko konflik

Selama jendela penundaan, nilainya dapat ditimpa oleh tugas lain.

Setelah dieksekusi, jumlah instans yang diharapkan diperbarui ke nilai aktual saat ini.

Inti masalah: Ketika tugas terjadwal hanya memodifikasi jumlah instans yang diharapkan, operasi tersebut bukan perubahan kapasitas atomik yang langsung berlaku. Selama penundaan 30 detik hingga 1 menit, tugas berbasis peristiwa dapat memicu aktivitas penskalaan berdasarkan jumlah instans aktual saat ini, menghitung ulang, dan menimpa jumlah instans yang diharapkan.

Praktik terbaik: Tugas terjadwal untuk kapasitas dasar, tugas berbasis peristiwa untuk kapasitas elastis

Ikhtisar solusi

Gunakan model kapasitas berlapis "dasar + elastis" untuk memisahkan secara jelas tanggung jawab tugas terjadwal dan tugas berbasis peristiwa:

  • Kapasitas dasar (dikelola oleh tugas terjadwal): Gunakan tugas terjadwal untuk menetapkan jumlah minimum dan jumlah instans yang diharapkan, sehingga lantai kapasitas selama jam sibuk tidak dapat dikurangi oleh tugas berbasis peristiwa.

  • Kapasitas elastis (dikelola oleh tugas berbasis peristiwa): Gunakan aturan pelacakan target atau tugas berbasis peristiwa untuk menambah atau menghapus instans secara dinamis di atas kapasitas dasar berdasarkan beban aktual.

定时任务与报警任务协同配置-设计原则_v1

Prosedur

Contoh berikut menunjukkan konfigurasi yang direkomendasikan. Asumsikan bisnis Anda perlu melakukan skala keluar dari garis dasar harian 10 instans menjadi 50 pada pukul 08.00 setiap hari, memulihkan ke tingkat normal pada pukul 22.00, dan menggunakan aturan pelacakan target untuk mempertahankan utilisasi CPU pada 60%.

Langkah 1: Buat tugas skala keluar terjadwal

Buat tugas terjadwal yang menetapkan jumlah minimum dan jumlah instans yang diharapkan pada awal jam sibuk, sehingga kapasitas dasar langsung berlaku dan tidak dapat digantikan oleh tugas berbasis peristiwa.

  1. Masuk ke Auto Scaling console.

  2. Pada panel navigasi kiri, klik Scaling Groups.

  3. Temukan grup penskalaan target dan klik namanya untuk membuka halaman detailnya.

  4. Klik tab Scaling Rules and Tasks. Pada tab Scheduled Tasks, klik Create Scheduled Task.

  5. Buat tugas skala keluar terjadwal dengan pengaturan berikut:

    Parameter

    Nilai

    Task Name

    scheduled-scale-up

    Executed At

    08.00 setiap hari (atau awal jam sibuk bisnis Anda)

    Recurrence

    Daily

    Scaling Method

    Configure Number of Instances in Scaling Group

    Minimum Instances

    50

    Expected Instances

    50

    Konfigurasi kunci: Tetapkan Scaling Method ke Configure Number of Instances in Scaling Group, dan tetapkan baik Minimum Instances maupun Expected Instances ke 50. Dengan cara ini, tugas terjadwal secara simultan memperbarui jumlah minimum instans dan jumlah instans yang diharapkan, sehingga mencegah tugas berbasis peristiwa melakukan skala-masuk di bawah 50 instans.

Langkah 2: Buat tugas skala-masuk terjadwal

Buat tugas skala-masuk terjadwal berpasangan. Setelah jam sibuk berakhir, kembalikan jumlah minimum instans ke tingkat normal untuk menghindari pemborosan resource.

  1. Pada tab Scheduled Tasks, klik Create Scheduled Task dan gunakan pengaturan berikut:

    Parameter

    Nilai

    Task Name

    scheduled-scale-down

    Executed At

    22.00 setiap hari (atau akhir jam sibuk bisnis Anda)

    Recurrence

    Daily

    Scaling Method

    Configure Number of Instances in Scaling Group

    Minimum Instances

    10

    Expected Instances

    10

Langkah 3: Konfigurasi aturan pelacakan target

Buat aturan pelacakan target yang memungkinkan tugas berbasis peristiwa melakukan penskalaan otomatis berdasarkan beban aktual di atas kapasitas dasar yang ditetapkan oleh tugas terjadwal.

  1. Klik tab Scaling Rules and Tasks. Pada tab Scaling Rules, klik Create Scaling Rule.

  2. Buat aturan pelacakan target dengan pengaturan berikut:

    Parameter

    Nilai

    Rule Type

    Target Tracking Scaling Rule

    Metric Type

    (ECS) Average CPU Utilization

    Target Value

    60%

Aturan pelacakan target secara otomatis menyesuaikan jumlah instans antara jumlah minimum dan maksimum instans dalam grup penskalaan berdasarkan utilisasi CPU. Karena tugas terjadwal menetapkan jumlah minimum instans menjadi 50, jumlah instans tidak akan turun di bawah 50 meskipun utilisasi CPU rendah.

Perilaku yang diharapkan setelah konfigurasi

Waktu

Event

Jumlah minimum instans

Jumlah instans yang diharapkan

Efek aktual

08.00 setiap hari

Tugas skala keluar terjadwal dipicu

10 → 50

10 → 50

Langsung mulai melakukan skala keluar menjadi 50 instans

08.00 – 22.00

Aturan pelacakan target berjalan terus-menerus

50

≥50

Ketika utilisasi CPU melebihi 60%, lakukan skala keluar di atas dasar 50 instans. Ketika di bawah 60%, lakukan skala-masuk hingga minimum 50 instans.

22.00 setiap hari

Tugas skala-masuk terjadwal dipicu

50 → 10

50 → 10

Kembalikan ke tingkat kapasitas normal. Instans berlebih dilepas secara bertahap.

Waktu lainnya

Aturan pelacakan target berjalan terus-menerus

10

≥10

Lakukan penskalaan elastis dari dasar 10 instans berdasarkan utilisasi CPU

Poin konfigurasi utama

  1. Pilih "Configure Number of Instances in Scaling Group" sebagai metode penskalaan untuk tugas terjadwal. Tetapkan jumlah minimum instans dan jumlah instans yang diharapkan, bukan hanya memodifikasi jumlah instans yang diharapkan.

  2. Buat tugas terjadwal secara berpasangan: Tugas skala keluar dan skala-masuk harus dibuat berpasangan untuk memastikan jumlah minimum instans kembali ke kondisi normal setelah jam sibuk dan menghindari pemborosan resource.

  3. Hubungan antara jumlah minimum instans, jumlah instans yang diharapkan, dan jumlah maksimum instans:

    • Tugas terjadwal mengontrol kapasitas dasar dengan menetapkan jumlah minimum instans dan jumlah instans yang diharapkan.

    • Tugas berbasis peristiwa dan aturan pelacakan target menyesuaikan secara elastis antara jumlah minimum instans dan jumlah maksimum instans.

    • Aturan sistem internal menjamin bahwa jumlah minimum instansjumlah instans yang diharapkanjumlah maksimum instans. Prioritasnya jelas, sehingga tidak diperlukan mekanisme tambahan untuk menghindari konflik.

FAQ

  • Setelah tugas terjadwal berhasil melakukan skala keluar, apakah aturan pelacakan target akan melakukan skala-masuk jika utilisasi CPU rendah?

    Tidak. Tugas terjadwal juga menetapkan Minimum Instances. Aturan pelacakan target tidak akan melakukan skala-masuk di bawah Minimum Instances. Inilah alasan pentingnya menetapkan Minimum Instances secara simultan.

  • Apakah layak hanya memodifikasi jumlah instans yang diharapkan dalam tugas terjadwal?

    Tidak disarankan. Hanya memodifikasi Expected Instances mengandung risiko berikut:

    • Perubahan Expected Instances memiliki penundaan 30 detik hingga 1 menit sebelum berlaku. Selama periode ini, tugas berbasis peristiwa dapat menimpa nilainya.

    • Bahkan jika skala keluar berhasil, karena Minimum Instances tidak diperbarui sesuai, aturan pelacakan target dapat melakukan skala-masuk di bawah tingkat yang diinginkan.

  • Apakah saya perlu menetapkan jumlah maksimum instans dalam tugas terjadwal?

    Umumnya tidak. Maximum Instances biasanya tetap sebagai batas atas tetap untuk mencegah penskalaan tak terbatas dalam situasi abnormal. Jika bisnis Anda memerlukan batas instans berbeda pada waktu berbeda, Anda juga dapat menyesuaikan Maximum Instances dalam tugas terjadwal.

  • Apakah konflik akan terjadi dengan tugas berbasis peristiwa yang menggunakan aturan simple alih-alih aturan pelacakan target?

    Ya, konflik tetap dapat terjadi. Terlepas dari apakah tugas berbasis peristiwa terkait dengan Simple Scaling Rule, Step Scaling Rule, atau Target Tracking Scaling Rule, tugas tersebut akan menimpa Expected Instances jika dipicu selama periode penundaan tugas terjadwal. Solusi dalam topik ini berlaku untuk semua jenis tugas berbasis peristiwa.

Referensi