All Products
Search
Document Center

Auto Scaling:Secara otomatis menambahkan atau menghapus instans ECS dari daftar putih instance MongoDB

Last Updated:Apr 02, 2026

Auto Scaling terintegrasi secara native dengan Server Load Balancer (SLB) dan ApsaraDB RDS, tetapi tidak dengan ApsaraDB for MongoDB. Untuk menjaga agar daftar putih alamat IP instance MongoDB Anda selalu sinkron dengan peristiwa penskalaan, gabungkan kait siklus hidup Auto Scaling dengan templat publik CloudOps Orchestration Service (OOS). Saat terjadi peristiwa skala keluar, kait siklus hidup menempatkan instans ECS baru ke dalam status Pending Add dan memicu OOS untuk menambahkan alamat IP pribadinya ke daftar putih MongoDB sebelum instans tersebut aktif.

Topik ini menjelaskan kasus skala keluar menggunakan templat publik ACS-ESS-LifeCycleModifyMongoDBIPWhitelist. Pendekatan yang sama berlaku untuk skala-masuk: buat kait siklus hidup terpisah untuk peristiwa skala-masuk dan atur modifyMode agar menghapus alamat IP, bukan menambahkannya.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

  • Grup penskalaan dalam status Enabled

  • Instance ApsaraDB for MongoDB

  • Peran RAM untuk OOS dengan entitas tepercaya diatur ke Alibaba Cloud Service dan layanan tepercaya diatur ke CloudOps Orchestration Service, serta peran RAM tersebut harus memiliki izin untuk melakukan operasi pada templat OOS. Untuk informasi lebih lanjut, lihat Gunakan RAM untuk memberikan izin kepada OOS.

Topik ini menggunakan OOSServiceRole sebagai contoh nama peran RAM. Peran RAM apa pun yang dikonfigurasi dengan hubungan kepercayaan OOS yang diperlukan dapat digunakan.

Cara kerja otomatisasi

  1. Peristiwa skala keluar memicu kait siklus hidup, menempatkan instans ECS baru ke dalam status Pending Add.

  2. Auto Scaling mengirim notifikasi ke OOS dengan parameter yang ditentukan dalam NotificationMetadata.

  3. OOS menjalankan templat ACS-ESS-LifeCycleModifyMongoDBIPWhitelist, yang mengambil alamat IP pribadi instans dan menambahkannya ke daftar putih MongoDB.

  4. Setelah OOS menyelesaikan tugas, kait siklus hidup melepaskan instans tersebut, yang kemudian beralih ke status In Service.

Kait siklus hidup berlaku saat aturan penskalaan dieksekusi, termasuk tugas terjadwal dan tugas berbasis peristiwa. Kait ini tidak berlaku saat Anda menambahkan atau menghapus instans secara manual dari grup penskalaan.
Penting

Anda harus menggunakan NotificationMetadata (metadata untuk singkatnya) untuk menentukan parameter yang diperlukan guna membuat eksekusi OOS:

  • metadata harus dalam format string JSON.

  • Kunci dalam metadata harus sesuai dengan parameter dalam templat OOS.

  • Untuk parameter yang tidak memiliki pengaturan default dalam templat OOS, Anda harus menentukan nilainya. Untuk parameter yang memiliki pengaturan default dalam templat OOS, Anda dapat memilih apakah akan menimpa pengaturan default tersebut atau tidak.

Langkah 1: Berikan izin peran RAM pada OOS

Templat ACS-ESS-LifeCycleModifyMongoDBIPWhitelist memerlukan izin untuk mendeskripsikan instans ECS, mengubah IP keamanan MongoDB, dan menyelesaikan tindakan siklus hidup. Buat kebijakan yang memberikan izin-izin tersebut dan sambungkan ke OOSServiceRole.

Buat kebijakan

  1. Masuk ke Konsol RAM.

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

  3. Klik Create Policy.

  4. Di halaman Create Policy, klik tab JSON, masukkan dokumen kebijakan berikut, lalu klik OK.

    ParameterNilai
    NameESSHookPolicyForMongoDBWhitelist
    Policy documentLihat JSON di bawah ini
    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:DescribeInstances"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "dds:ModifySecurityIps"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "ess:CompleteLifecycleAction"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }

Sambungkan kebijakan ke OOSServiceRole

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

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

  3. Di panel Grant Permission, konfigurasikan pengaturan berikut dan klik Grant permissions.

    ParameterNilai
    Resource ScopeAccount
    PolicyESSHookPolicyForMongoDBWhitelist

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

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 Auto Scaling diaktifkan.

  4. Temukan grup penskalaan Anda dan klik ID-nya di kolom Scaling Group Name/ID, atau klik Details di kolom Actions.

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

  6. Klik Create Lifecycle Hook.

  7. Konfigurasikan parameter berikut dan klik OK.

    ParameterNilai
    NameESSHookForAddMongoDBWhitelist
    Scaling ActivityScale-out Event
    Timeout PeriodAtur nilai ini cukup panjang agar OOS dapat menyelesaikan pembaruan daftar putih. Contoh ini menggunakan 300 detik. Jika waktu tunggu habis sebelum OOS selesai, tindakan siklus hidup secara default menjadi Continue dan instans aktif tanpa alamat IP ditambahkan.
    Default Execution PolicyContinue
    Send Notification When Lifecycle Hook Takes EffectPilih OOS Template > Public Templates > LifeCycleModifyMongoDBIPWhitelist
    dbInstanceIdID instance MongoDB Anda (contoh ini menggunakan instans set replika)
    modifyModeAppend
    OOSAssumeRoleOOSServiceRole
Jika grup penskalaan Anda sudah berisi instans ECS, tambahkan secara manual alamat IP pribadi mereka ke daftar putih MongoDB sebelum mengaktifkan otomatisasi ini. Jika alamat IP tersebut tidak ada di daftar putih saat peristiwa skala-masuk dijalankan, langkah penghapusan akan gagal.

Picu peristiwa skala keluar

Dalam contoh ini, picu skala keluar dengan mengeksekusi aturan penskalaan secara manual. Lingkungan produksi biasanya menggunakan tugas terjadwal atau tugas berbasis peristiwa.

  1. Di halaman detail grup penskalaan, klik tab Scaling Rules and Event-triggered Tasks.

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

  3. Konfigurasikan parameter berikut dan klik OK.

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

  5. Di pesan Execute Scaling Rule, klik OK.

Auto Scaling menambahkan satu instans ECS ke grup penskalaan. Instans tersebut masuk ke status Pending Add karena kait siklus hidup ESSHookForAddMongoDBWhitelist sedang berlaku. Selama periode waktu tunggu, OOS menjalankan templat ACS-ESS-LifeCycleModifyMongoDBIPWhitelist untuk memperbarui daftar putih MongoDB.

Langkah 3: Verifikasi daftar putih MongoDB

  1. Masuk ke Konsol MongoDB.

  2. Di panel navigasi kiri, klik Replica Set Instances.

  3. Temukan instance MongoDB Anda dan klik ID-nya di kolom Instance ID/Name.

  4. Di panel navigasi kiri, pilih Data Security > Whitelist Settings.

Jika alamat IP pribadi instans ECS baru muncul di daftar putih, berarti otomatisasi berfungsi dengan benar. Jika alamat IP tidak muncul, periksa log eksekusi OOS seperti yang dijelaskan pada langkah berikutnya.

(Opsional) Langkah 4: Lihat log eksekusi OOS

  1. Masuk ke Konsol OOS.

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

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

  4. Di halaman detail eksekusi, periksa bagian Basic Information untuk ID dan status eksekusi. Di bagian Execution Steps and Results, klik node tugas individual untuk melihat output tingkat langkah.

Untuk informasi lebih lanjut, lihat Lihat detail eksekusi.

FAQ

Jika tugas Operasi dan Pemeliharaan (O&M) gagal, cari 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 tindakan 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 untuk memastikan 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.

Tindakan siklus hidup yang sedang berlangsung telah kedaluwarsa atau dibatalkan.

Evaluasi periode waktu tunggu kait siklus hidup untuk memastikan tugas O&M yang ditentukan dalam templat OOS dapat diselesaikan dalam periode waktu tunggu tersebut.

Pemecahan Masalah

Alamat IP tidak ditambahkan ke daftar putih

Gejala: Peristiwa skala keluar selesai, tetapi alamat IP pribadi instans ECS tidak muncul di daftar putih MongoDB.

Langkah-langkah:

  1. Buka log eksekusi OOS (lihat Langkah 4) dan periksa apakah status eksekusi adalah Failed.

  2. Jika eksekusi gagal, cari salah satu pesan error berikut dan terapkan perbaikan yang sesuai:

    Pesan errorPenyebabPerbaikan
    Forbidden.Unauthorized: A required authorization for the specified action is not suppliedOOSServiceRole tidak memiliki izin yang diperlukanSambungkan kebijakan ESSHookPolicyForMongoDBWhitelist ke OOSServiceRole seperti yang dijelaskan di Langkah 1
    Forbidden.RAM: User not authorized to operate on the specified resource, or this API doesn't support RAMOOSServiceRole tidak memiliki izin yang diperlukanSambungkan kebijakan ESSHookPolicyForMongoDBWhitelist ke OOSServiceRole seperti yang dijelaskan di Langkah 1
  3. Jika log eksekusi tidak menunjukkan catatan tugas OOS dipicu, kemungkinan kait siklus hidup tidak dikonfigurasi dengan benar. Pastikan kait tersebut menargetkan Scale-out Event dan templat OOS diatur ke ACS-ESS-LifeCycleModifyMongoDBIPWhitelist.

Tindakan siklus hidup kedaluwarsa sebelum OOS selesai

Gejala: Instans beralih keluar dari status Pending Add sebelum alamat IP ditambahkan ke daftar putih, atau log eksekusi OOS menunjukkan tugas yang terganggu.

Langkah-langkah:

  1. Buka log eksekusi OOS dan periksa apakah eksekusi diakhiri dengan error LifecycleHookIdAndLifecycleActionToken.Invalid:

    LifecycleHookIdAndLifecycleActionToken.Invalid: The specified lifecycleActionToken
    and lifecycleActionId you provided does not match any in process lifecycle action.
  2. Jika error ini muncul, Timeout Period kait siklus hidup terlalu singkat. Tingkatkan Timeout Period pada kait siklus hidup agar OOS memiliki cukup waktu untuk menyelesaikan pembaruan daftar putih, lalu eksekusi ulang aturan penskalaan untuk menguji kembali.