All Products
Search
Document Center

Auto Scaling:Secara otomatis menambahkan dan menghapus instans ECS dari daftar putih kluster PolarDB

Last Updated:Apr 02, 2026

Auto Scaling terintegrasi secara native dengan Server Load Balancer (SLB) dan ApsaraDB RDS, tetapi tidak dengan PolarDB. Jika data aplikasi Anda disimpan di kluster PolarDB, gunakan kait siklus hidup bersama templat publik CloudOps Orchestration Service (OOS) untuk secara otomatis menambahkan atau menghapus alamat IP pribadi instans Elastic Compute Service (ECS) dari daftar putih alamat IP kluster PolarDB setiap kali grup penskalaan melakukan skala keluar atau skala-masuk.

Cara kerja

Saat Auto Scaling menambahkan instans ECS selama event skala keluar, kait siklus hidup menempatkan instans tersebut ke status Pending Add sebelum masuk ke layanan. Selama jendela ini, Auto Scaling memberi notifikasi kepada OOS untuk menjalankan templat ACS-ESS-LifeCycleModifyPolarDBIPWhitelist, yang menambahkan alamat IP pribadi instans tersebut ke daftar putih alamat IP kluster PolarDB Anda. Setelah OOS menyelesaikan tugas tersebut, instans beralih ke status InService.

Mekanisme yang sama berlaku untuk skala-masuk: kait siklus hidup pada event skala-masuk menempatkan instans ke status tunggu, OOS menghapus alamat IP pribadi dari daftar putih, lalu instans tersebut dilepas.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Grup penskalaan dalam status Enabled

  • Kluster PolarDB

  • Peran RAM untuk OOS, dengan Alibaba Cloud Service sebagai entitas tepercaya dan CloudOps Orchestration Service sebagai layanan tepercaya

Catatan: Tutorial ini menggunakan OOSServiceRole sebagai nama peran RAM. Anda dapat menggunakan peran RAM apa pun yang memenuhi persyaratan.

Langkah 1: Berikan izin kepada peran RAM

Templat ACS-ESS-LifeCycleModifyPolarDBIPWhitelist memerlukan izin untuk mengkueri instans ECS, memperbarui daftar putih kluster PolarDB, dan menyelesaikan tindakan siklus hidup. Buat kebijakan dengan izin tersebut dan sambungkan ke peran RAM OOS.

Buat kebijakan

  1. Masuk ke Konsol RAM.

  2. Di panel navigasi kiri, pilih Permissions > Policies.

  3. Klik Create Policy.

  4. Pada halaman Create Policy, klik tab JSON, masukkan isi kebijakan berikut, lalu klik OK. Tetapkan nama kebijakan menjadi ESSHookPolicyForPolarDBWhitelist.

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:DescribeInstances"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "polardb:DescribeDBClusterAccessWhitelist",
                    "polardb:ModifyDBClusterAccessWhitelist"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "ess:CompleteLifecycleAction"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }

Sambungkan kebijakan ke peran RAM OOS

  1. Di panel navigasi kiri, pilih Identities > Roles.

  2. Temukan OOSServiceRole dan klik Grant Permission di kolom Actions.

  3. Pada panel Grant Permission, konfigurasikan pengaturan berikut lalu klik Grant permissions.

    ParameterNilai
    Resource ScopeAccount
    PolicyESSHookPolicyForPolarDBWhitelist

Langkah 2: Buat kait siklus hidup dan picu event skala keluar

Langkah ini membuat kait siklus hidup yang aktif pada event skala keluar dan memanggil templat OOS untuk memperbarui daftar putih PolarDB.

Buat kait siklus hidup

  1. Masuk ke Konsol Auto Scaling.

  2. Di panel navigasi sebelah kiri, klik Scaling Groups.

  3. Di bilah navigasi atas, pilih wilayah tempat grup penskalaan Anda berada.

  4. Klik ID grup penskalaan, atau klik Details di kolom Actions.

  5. Pada halaman detail grup penskalaan, klik tab Lifecycle Hook.

  6. Klik Create Lifecycle Hook.

  7. Konfigurasikan pengaturan berikut lalu klik OK.

    ParameterNilai
    NameESSHookForAddPolarDBWhitelist
    Scaling ActivityScale-out Event
    Timeout Period300 (detik). Atur nilai ini cukup panjang agar templat OOS dapat selesai dijalankan. Jika tugas OOS belum selesai sebelum timeout berakhir, kebijakan eksekusi default akan diterapkan.
    Default Execution PolicyPilih Continue.
    Send Notification When Lifecycle Hook Takes EffectPilih OOS Template, lalu pilih Public Templates, dan pilih ACS-ESS-LifeCycleModifyPolarDBIPWhitelist.
  8. Pada parameter templat ACS-ESS-LifeCycleModifyPolarDBIPWhitelist, konfigurasikan hal berikut:

    ParameterNilai
    dbClusterIdID kluster PolarDB Anda
    modifyModeAppend (menambahkan alamat IP pribadi ke daftar putih selama skala keluar)
    OOSAssumeRoleOOSServiceRole

Picu event skala keluar

Picu event skala keluar dengan menjalankan aturan penskalaan. Anda juga dapat menggunakan tugas terjadwal atau tugas berbasis peristiwa untuk memicu event skala keluar.

Catatan: Kait siklus hidup hanya berlaku saat event penskalaan dipicu oleh aturan penskalaan, tugas terjadwal, atau tugas berbasis peristiwa. Kait ini tidak berlaku saat Anda menambahkan atau menghapus instans ECS secara manual dari grup penskalaan.
  1. Pada halaman detail grup penskalaan, klik tab Scaling Rules and Event-triggered Tasks.

  2. Pada tab Scaling Rules, klik Create Scaling Rule.

  3. Konfigurasikan pengaturan berikut lalu klik OK.

    ParameterNilai
    Rule NameAdd1
    Rule TypeSimple Scaling Rule
    OperationAdd 1 Instances
  4. Temukan aturan penskalaan Add1 dan klik Execute di kolom Actions.

  5. Pada dialog konfirmasi, klik OK.

Setelah aturan penskalaan dijalankan, Auto Scaling menambahkan satu instans ECS ke grup penskalaan. Instans tersebut masuk ke status Pending Add karena kait siklus hidup sedang berlaku. Selama periode timeout, OOS menjalankan templat ACS-ESS-LifeCycleModifyPolarDBIPWhitelist untuk menambahkan alamat IP pribadi instans tersebut ke daftar putih alamat IP kluster PolarDB.

Langkah 3: Verifikasi pembaruan daftar putih

Periksa daftar putih kluster PolarDB untuk memastikan alamat IP pribadi instans telah ditambahkan.

  1. Masuk ke Konsol PolarDB.

  2. Di panel navigasi kiri, klik Clusters.

  3. Temukan kluster Anda dan klik ID-nya di kolom Cluster ID/Name.

  4. Di panel navigasi kiri, pilih Settings and Management > Cluster Whitelists.

Jika alamat IP pribadi muncul di daftar putih: Templat OOS berhasil dijalankan. Penyiapan selesai.

Jika alamat IP pribadi tidak ada: Templat OOS mungkin tidak berhasil dijalankan. Buka Langkah 4 untuk menyelidiki lebih lanjut.

Langkah 4: (Opsional) Lihat detail eksekusi OOS

Jika daftar putih tidak diperbarui, periksa detail eksekusi OOS untuk mengidentifikasi penyebabnya.

  1. Masuk ke Konsol OOS.

  2. Di panel navigasi kiri, pilih Automated Tasks > Task Execution Management.

  3. Temukan entri eksekusi berdasarkan waktu dan klik Details di kolom Actions.

  4. Pada halaman detail eksekusi:

    • Di bagian Basic Information, periksa ID eksekusi dan statusnya.

    • Di bagian Execution Steps and Results, klik node tugas untuk melihat detail tingkat langkah.

    Untuk informasi lebih lanjut, lihat View the details of an execution.

Catatan: Jika eksekusi gagal, pesan error akan ditampilkan pada halaman detail eksekusi. Lihat bagian troubleshooting di bawah ini.

FAQ

Jika tugas Operation and Maintenance (O&M) gagal, temukan penyebabnya berdasarkan pesan error dalam 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 peran RAM OOSServiceRole telah diberikan izin yang diperlukan.

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 ke 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.

Troubleshooting

ErrorPenyebabSolusi
Forbidden.Unauthorized: A required authorization for the specified action is not suppliedPeran RAM OOS tidak memiliki izin yang diperlukan.Verifikasi bahwa OOSServiceRole telah disambungkan dengan kebijakan ESSHookPolicyForPolarDBWhitelist, seperti yang dijelaskan dalam Langkah 1.
Forbidden.RAM: User not authorized to operate on the specified resource, or this API doesn't support RAMPeran RAM OOS tidak memiliki izin yang diperlukan.Verifikasi bahwa OOSServiceRole telah disambungkan dengan kebijakan ESSHookPolicyForPolarDBWhitelist, seperti yang dijelaskan dalam Langkah 1.
LifecycleHookIdAndLifecycleActionToken.Invalid: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle actionKait siklus hidup mengalami timeout sebelum templat OOS selesai dijalankan.Tingkatkan Timeout Period kait siklus hidup agar templat OOS memiliki cukup waktu untuk menyelesaikan tugasnya.

Langkah selanjutnya

  • Untuk mengotomatiskan penghapusan alamat IP selama skala-masuk, buat kait siklus hidup terpisah untuk Scale-in Event dan konfigurasikan parameter templat OOS yang sesuai.

  • Untuk menggunakan peran RAM kustom alih-alih OOSServiceRole, buat peran RAM dengan Alibaba Cloud Service sebagai entitas tepercaya dan CloudOps Orchestration Service sebagai layanan tepercaya, sambungkan kebijakan yang sama, dan tentukan nama peran tersebut pada parameter OOSAssumeRole.