Auto Scaling terintegrasi secara native dengan Server Load Balancer (SLB) dan ApsaraDB RDS, tetapi tidak dengan AnalyticDB for MySQL. Jika data aplikasi Anda berada di kluster AnalyticDB for MySQL, Anda dapat menggabungkan kait siklus hidup dengan templat OOS untuk mengotomatiskan pembaruan daftar putih setiap kali terjadi penskalaan keluar (scale-out) atau penskalaan masuk (scale-in) — tanpa perlu intervensi manual.
Tutorial ini membahas kasus scale-out: ketika sebuah instans Elastic Compute Service (ECS) baru bergabung ke dalam grup penskalaan, alamat IP pribadinya secara otomatis ditambahkan ke daftar putih alamat IP kluster AnalyticDB for MySQL. Untuk menangani scale-in (menghapus alamat IP saat instans dikeluarkan), buat kait siklus hidup terpisah yang dikonfigurasi untuk event scale-in.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Grup penskalaan dalam status Enabled
Kluster AnalyticDB for MySQL
Peran RAM untuk CloudOps Orchestration Service (OOS) — entitas tepercaya harus berupa Alibaba Cloud Service, dan layanan tepercaya harus berupa CloudOps Orchestration Service. Untuk detail penyiapan, lihat Gunakan RAM untuk memberikan izin kepada OOS
Tutorial ini menggunakan OOSServiceRole sebagai nama peran RAM. Anda dapat menggunakan nama peran yang berbeda.Cara kerja
Saat terjadi event scale-out:
Auto Scaling meluncurkan instans ECS baru dan memicu kait siklus hidup.
Instans memasuki status Pending Add — belum dapat melayani traffic.
Auto Scaling memberi notifikasi kepada OOS untuk menjalankan templat publik
ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist.OOS mengambil alamat IP pribadi instans tersebut dan menambahkannya ke daftar putih alamat IP kluster AnalyticDB for MySQL.
Setelah tugas selesai, OOS memberi sinyal kepada Auto Scaling untuk melanjutkan, dan instans berpindah ke status InService.
Jika kait siklus hidup mengalami timeout sebelum OOS selesai, instans akan diproses berdasarkan Default Execution Policy yang Anda tetapkan:
Continue: Instans tetap masuk ke layanan meskipun pembaruan daftar putih belum selesai.
Abandon: Instans dihentikan.
Langkah 1: Berikan izin peran RAM pada OOS
Templat ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist memerlukan izin untuk mendeskripsikan instans ECS, memodifikasi daftar putih AnalyticDB for MySQL, dan memberi sinyal pada aksi siklus hidup Auto Scaling.
Masuk ke Konsol RAM.
Buat kebijakan.
Di panel navigasi kiri, pilih Permissions > Policies.
Klik Create Policy.
Di halaman Create Policy, klik tab JSON, masukkan dokumen kebijakan berikut, lalu klik OK.
Tetapkan Name menjadi
ESSHookPolicyForAnalyticDBWhitelist.{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeInstances" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "adb:ModifyDBClusterAccessWhiteList" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ess:CompleteLifecycleAction" ], "Resource": "*", "Effect": "Allow" } ] }
Sambungkan kebijakan tersebut ke peran RAM OOSServiceRole.
Di panel navigasi kiri, pilih Identities > Roles.
Temukan OOSServiceRole dan klik Grant permissions di kolom Actions.
Di panel Grant permissions, atur Resource Scope menjadi Account, pilih kebijakan kustom
ESSHookPolicyForAnalyticDBWhitelist, lalu klik Grant permissions.
Langkah 2: Buat kait siklus hidup untuk scale-out
Masuk ke Konsol Auto Scaling.
Di panel navigasi kiri, klik Scaling Groups.
Di bilah navigasi atas, pilih wilayah tempat grup penskalaan Anda berada.
Klik ID grup penskalaan atau klik Details di kolom Actions.
Di tab Lifecycle Hook, klik Create Lifecycle Hook.
Konfigurasikan parameter berikut dan klik OK.
Parameter Deskripsi Name Masukkan ESSHookForAddAnalyticDBWhitelist.Scaling Activity Pilih Scale-out Event. Timeout Period Atur nilai ini lebih tinggi daripada perkiraan waktu eksekusi OOS. Jika kait mengalami timeout sebelum OOS selesai, pembaruan daftar putih gagal. Contoh ini menggunakan 300detik.Default Execution Policy Pilih Continue agar instans tetap masuk ke layanan jika kait mengalami timeout. Pilih Abandon untuk menghentikan instans tersebut. Send Notification When Lifecycle Hook Takes Effect Pilih OOS Template > Public Templates > ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist. Lalu konfigurasikan parameter templat: dbClusterId (ID kluster AnalyticDB for MySQL Anda), modifyMode ( Append— menambahkan alamat IP pribadi ke daftar putih saat scale-out), dan OOSAssumeRole (OOSServiceRole).
Langkah 3: Picu event scale-out dan verifikasi daftar putih
Picu event scale-out
Contoh ini memicu event scale-out dengan menjalankan aturan penskalaan secara manual. Anda juga dapat memicu event scale-out melalui tugas terjadwal atau tugas berbasis peristiwa.
Kait siklus hidup hanya berlaku saat aktivitas penskalaan dipicu oleh aturan penskalaan atau tugas — bukan saat Anda menambahkan atau menghapus instans secara manual dari grup penskalaan.
Di tab Scaling Rules and Event-triggered Tasks, buka tab Scaling Rules.
Klik Create Scaling Rule, konfigurasikan parameter berikut, lalu klik OK.
Parameter Nilai Rule Name Add1Rule Type Simple Scaling Rule Operation Add 1 Instances Temukan aturan penskalaan
Add1dan klik Execute di kolom Actions.Di pesan Execute Scaling Rule, klik OK.
Auto Scaling meluncurkan satu instans ECS. Instans tersebut memasuki status Pending Add karena kait siklus hidup ESSHookForAddAnalyticDBWhitelist sedang berlaku. Selama periode timeout, Auto Scaling memberi notifikasi kepada OOS untuk menjalankan templat ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist.
Verifikasi daftar putih alamat IP
Masuk ke Konsol AnalyticDB for MySQL.
Di panel navigasi kiri, klik Clusters.
Klik ID kluster di kolom Cluster ID/Description.
Di panel navigasi kiri, klik Data Security.
Jika alamat IP pribadi instans ECS muncul di daftar putih, berarti templat OOS berhasil dijalankan. Jika alamat IP tidak muncul, periksa detail eksekusi OOS seperti yang dijelaskan pada langkah berikutnya.
(Opsional) Langkah 4: Lihat eksekusi OOS
Masuk ke Konsol OOS.
Di panel navigasi kiri, pilih Automated Tasks > Task Execution Management.
Temukan eksekusi berdasarkan waktu dan klik Details di kolom Actions.
Di bagian Basic Information, periksa ID dan status eksekusi. Di bagian Execution Steps and Results, klik node tugas untuk melihat detail tiap langkah.
Untuk informasi lebih lanjut, lihat Lihat detail eksekusi.
Jika eksekusi gagal, pesan error akan muncul di halaman detail eksekusi.
FAQ
Jika tugas Operation and Maintenance (O&M) gagal, cari penyebabnya berdasarkan pesan error di hasil eksekusi. Untuk informasi lebih lanjut, lihat FAQ.
Pesan error umum adalah sebagai berikut:
Pesan error | Penyebab | Solusi |
Forbidden.Unauthorized message: A required authorization for the specified action is not supplied. | Auto Scaling tidak memiliki otorisasi untuk melakukan aksi yang ditentukan. | Verifikasi bahwa izin yang diperlukan telah diberikan kepada peran RAM OOSServiceRole. |
Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM. | Pengguna RAM atau peran RAM tidak memiliki izin untuk mengoperasikan resource yang sesuai. | Verifikasi bahwa peran RAM OOSServiceRole memiliki izin yang diperlukan. Misalnya, Anda dapat memberikan izin contoh untuk layanan OOS kepada peran RAM tersebut. Anda harus menambahkan izin operasi ke peran RAM agar layanan OOS dapat mengelola resource yang ditentukan dalam templat OOS. |
LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action. | Aksi siklus hidup yang sedang berlangsung telah kedaluwarsa atau dibatalkan. | Evaluasi periode timeout kait siklus hidup untuk memastikan tugas O&M yang didefinisikan dalam templat OOS dapat diselesaikan dalam periode timeout tersebut. |
Pemecahan Masalah
Jika tugas gagal, temukan pesan error di hasil eksekusi dan rujuk ke berikut ini:
`Forbidden.Unauthorized`: A required authorization for the specified action is not supplied.
Peran RAM OOSServiceRole tidak memiliki izin yang diperlukan. Berikan izin seperti yang dijelaskan di Langkah 1.
`Forbidden.RAM`: User not authorized to operate on the specified resource, or this API doesn't support RAM.
Periksa apakah izin yang diperlukan, seperti izin contoh di Langkah 1, telah diberikan kepada peran RAM OOSServiceRole. Verifikasi bahwa kebijakan ESSHookPolicyForAnalyticDBWhitelist telah disambungkan ke OOSServiceRole dengan cakupan resource tingkat Account.
`LifecycleHookIdAndLifecycleActionToken.Invalid`: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action.
Periksa apakah periode timeout kait siklus hidup mencukupi bagi tugas O&M yang ditentukan dalam templat OOS untuk diselesaikan.