All Products
Search
Document Center

Auto Scaling:Menambahkan dan menghapus instans ECS secara otomatis dari daftar putih kluster PolarDB

Last Updated:Aug 26, 2026

Topik ini menjelaskan cara menggabungkan fitur lifecycle hook Auto Scaling dan templat CloudOps Orchestration Service (OOS) untuk menempatkan instans Elastic Compute Service (ECS) ke dalam status Pending, lalu mengotomatiskan penambahan atau penghapusan alamat IP instans tersebut ke atau dari daftar putih alamat IP kluster PolarDB.

Prasyarat

  • Grup penskalaan telah dibuat dan berada dalam status Enabled.

  • Kluster PolarDB telah dibuat.

  • Peran Resource Access Management (RAM) telah dibuat untuk OOS. Entitas tepercaya peran RAM harus berupa Alibaba Cloud Service, layanan tepercaya harus berupa CloudOps Orchestration Service, dan peran RAM harus memiliki izin untuk melakukan operasi pada templat OOS. Untuk informasi selengkapnya, lihat Buat peran RAM untuk OOS dan berikan izin.

    Catatan

    Pada topik ini, peran RAM OOSServiceRole digunakan sebagai contoh. Anda juga dapat menggunakan peran lain.

Latar Belakang

Saat ini, Auto Scaling hanya mendukung integrasi dengan Server Load Balancer (SLB) dan ApsaraDB RDS. Jika Anda menyimpan data aplikasi di kluster PolarDB, memperbarui daftar putih alamat IP kluster secara manual dengan alamat IP pribadi instans ECS akan menyebabkan proses operasional yang tidak efisien. Untuk meningkatkan efisiensi operasional, Anda dapat mengotomatiskan pembaruan daftar putih alamat IP kluster PolarDB dengan menggabungkan fitur lifecycle hook Auto Scaling dan templat OOS.

Prosedur

Pada contoh ini, templat OOS publik bernama ACS-ESS-LifeCycleModifyPolarDBIPWhitelist digunakan untuk mengotomatiskan penambahan alamat IP instans ke daftar putih alamat IP kluster PolarDB selama event scale-out. Lakukan langkah-langkah berikut:

Catatan

Jika Anda ingin mengotomatiskan penghapusan alamat IP instans dari daftar putih alamat IP kluster PolarDB, buat lifecycle hook untuk tujuan scale-in dan terapkan lifecycle hook tersebut selama event scale-in.

Langkah 1: Berikan izin peran RAM pada OOS

Anda harus memiliki izin untuk mengeksekusi templat OOS. Templat ACS-ESS-LifeCycleModifyPolarDBIPWhitelist mencakup resource ECS, Auto Scaling, dan PolarDB yang diperlukan untuk menjalankan tugas O&M.

  1. Masuk ke Konsol RAM.

  2. Buat kebijakan.

    1. Di panel navigasi sebelah kiri, pilih Permissions > Policies.

    2. Di halaman Policies, klik Create Policy.

    3. Di halaman Create Policy, klik tab JSON, konfigurasikan parameter, lalu klik OK.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercantum dalam tabel berikut menggunakan pengaturan bawaannya.

      Parameter

      Deskripsi

      Name

      Masukkan ESSHookPolicyForPolarDBWhitelist.

      Policy Document

      Masukkan konten berikut:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:DescribeInstances"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "polardb:DescribeDBClusterAccessWhitelist",
                      "polardb:ModifyDBClusterAccessWhitelist"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "ess:CompleteLifecycleAction"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
  3. Lampirkan kebijakan ke peran RAM OOSServiceRole.

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

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

      Tambahkan izin yang diperlukan untuk peran RAM OOSServiceRole yang diasumsikan oleh OOS guna menyelesaikan otorisasi.

    3. Di halaman Grant Permission, konfigurasikan cakupan resource dan kebijakan, lalu klik Grant Permission.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercantum dalam tabel berikut menggunakan pengaturan bawaannya.

      Parameter

      Deskripsi

      Resource Scope

      Atur nilainya ke Account.

      Policies

      Pilih kebijakan kustom berikut: ESSHookPolicyForPolarDBWhitelist.

Langkah 2: Buat lifecycle hook untuk tujuan scale-out dan picu event scale-out

  1. Masuk ke Konsol Auto Scaling.

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

  3. Di bilah navigasi atas, pilih wilayah.

  4. Temukan grup penskalaan yang ingin Anda kelola dan buka halaman detailnya dengan salah satu cara berikut:

    • Di kolom Scaling Group Name/ID, klik ID grup penskalaan.

    • Di kolom Actions, klik Details.

  5. Buat lifecycle hook.

    1. Di bagian atas halaman, klik tab Event and adhesive hook.

    2. Klik Create Lifecycle Hook.

    3. Konfigurasikan parameter lifecycle hook dan klik OK.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercantum dalam tabel berikut menggunakan pengaturan bawaannya.

      Parameter

      Deskripsi

      Name

      Masukkan ESSHookForAddPolarDBWhitelist.

      Scaling Activity Type

      Pilih Scale-Out.

      Timeout Period

      Konfigurasikan Timeout Period sesuai kebutuhan bisnis Anda. Dalam contoh ini, atur nilainya menjadi 300. Satuan: detik.

      Catatan

      Periode timeout adalah periode waktu di mana Anda dapat melakukan operasi kustom pada instans. Jika periode timeout lebih pendek daripada waktu yang diperlukan untuk menjalankan operasi kustom, operasi tersebut mungkin gagal. Kami menyarankan agar Anda memperkirakan waktu yang diperlukan untuk menjalankan operasi kustom pada instans dan mengonfigurasi Timeout Period berdasarkan perkiraan tersebut.

      Default Execution Policy

      Pilih Continue.

      Send Notification When Lifecycle Hook Takes Effect

      Konfigurasikan parameter berikut untuk templat:

      • Notification Method: Pilih OOS Template.

      • OOS Template Type: Pilih Public Templates.

      • Pilih ACS-ESS-LifeCycleModifyPolarDBIPWhitelist.

      Dalam templat publik ACS-ESS-LifeCycleModifyPolarDBIPWhitelist, Anda juga harus mengonfigurasi parameter berikut:

      • dbClusterId: Masukkan ID kluster PolarDB.

      • modifyMode: Pilih Append. Nilai ini berlaku untuk event scale-out di mana Auto Scaling menambahkan alamat IP pribadi instans ECS Anda ke daftar putih alamat IP kluster PolarDB.

      • OOSAssumeRole: Pilih OOSServiceRole. Di Langkah 1, OOSServiceRole diberikan izin pada resource ECS, Auto Scaling, dan PolarDB. OOS memperoleh izin tersebut setelah mengasumsikan peran RAM.

  6. Picu event scale-out.

    Dalam contoh ini, event scale-out dipicu secara manual dengan mengeksekusi aturan penskalaan. Anda juga dapat memicu event scale-out menggunakan tugas terjadwal atau tugas berbasis peristiwa.

    Catatan

    Jika event penskalaan dipicu saat Anda mengeksekusi aturan penskalaan secara manual, lifecycle hook akan berlaku. Namun, lifecycle hook tidak berlaku saat Anda menambahkan atau menghapus instans ECS ke atau dari grup penskalaan secara manual.

    1. Klik tab Scaling Rules and Event-triggered Tasks.

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

    3. Atur properti aturan penskalaan dan klik OK.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercantum dalam tabel berikut menggunakan pengaturan bawaannya.

      Parameter

      Deskripsi

      Rule Name

      Masukkan Add1.

      Rule Type

      Pilih Simple Scaling Rule.

      Operation

      Atur nilainya menjadi Add 1 Instances.

    4. Di daftar aturan penskalaan, temukan aturan Add1 yang telah Anda buat dan klik Recurrently di kolom Actions.

    5. Klik OK.

    Setelah aturan penskalaan dieksekusi, Auto Scaling menambahkan satu instans ECS ke grup penskalaan. Namun, instans ECS tersebut masuk ke status Pending Add karena lifecycle hook ESSHookForAddPolarDBWhitelist sedang berlaku. Selama periode timeout lifecycle hook, Auto Scaling memberi notifikasi kepada OOS untuk mengeksekusi tugas O&M yang didefinisikan dalam templat publik ACS-ESS-LifeCycleModifyPolarDBIPWhitelist.

Langkah 3: Periksa daftar putih alamat IP kluster PolarDB

  1. Masuk ke Konsol PolarDB.

  2. Di panel navigasi sebelah kiri, klik Clusters.

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

  4. Di panel navigasi sebelah kiri, klik Settings and Management > Cluster Whitelist.

    • Jika alamat IP pribadi instans ECS ditambahkan ke daftar putih alamat IP kluster PolarDB, templat publik ACS-ESS-LifeCycleModifyPolarDBIPWhitelist berlaku.

    • Jika instans ECS dibuat tetapi alamat IP pribadinya tidak ditambahkan ke daftar putih alamat IP kluster PolarDB, buka Konsol OOS untuk melihat eksekusi tugas O&M. Untuk informasi selengkapnya, lihat Langkah 4: (Opsional) Lihat eksekusi OOS.

Langkah 4: (Opsional) Lihat eksekusi OOS

  1. Masuk ke Konsol OOS.

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

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

  4. Di halaman detail eksekusi yang muncul, lihat informasi terkait.

    Sebagai contoh, Anda dapat melihat ID eksekusi dan status di bagian Basic Information. Di bagian Execution Result, Anda dapat mengklik node tugas untuk melihat detailnya. Untuk informasi selengkapnya, lihat Lihat detail eksekusi.

    Catatan

    Jika eksekusi gagal, pesan error akan ditampilkan di halaman detail eksekusi.

FAQ

Jika Anda gagal mengeksekusi tugas O&M, lakukan troubleshooting berdasarkan pesan error di hasil eksekusi. Untuk informasi selengkapnya, lihat FAQ.

Tabel berikut menjelaskan pesan error umum.

Pesan error

Penyebab

Solusi

Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

Anda belum memberi otorisasi kepada Auto Scaling untuk menjalankan aksi saat ini.

Periksa apakah peran RAM OOSServiceRole memiliki 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 terkait.

Periksa apakah peran RAM OOSServiceRole memiliki izin yang diperlukan. Misalnya, Anda dapat memberikan izin OOS kepada peran RAM tersebut. Sebelum OOS dapat mengelola resource yang dideklarasikan dalam templat OOS, Anda harus memberikan izin yang diperlukan kepada peran RAM tersebut.

LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action.

Aksi lifecycle hook yang sedang berlangsung telah berakhir atau dihentikan.

Evaluasi periode timeout lifecycle hook untuk memastikan bahwa tugas O&M yang ditentukan dalam templat OOS dapat diselesaikan dalam batas waktu yang ditentukan.