全部产品
Search
文档中心

Auto Scaling:Secara otomatis menambahkan atau menghapus alamat IP pribadi dari instance ECS ke/dari daftar putih alamat IP instance MongoDB

更新时间:Jul 02, 2025

Topik ini menjelaskan cara menggabungkan fitur lifecycle hook dari Auto Scaling dan template CloudOps Orchestration Service (OOS) untuk menempatkan instance Elastic Compute Service (ECS) dalam status Pending, lalu mengotomatiskan penambahan atau penghapusan alamat IP instance ke/dari daftar putih alamat IP instance ApsaraDB for MongoDB.

Prasyarat

  • Grup penskalaan telah dibuat dan berada dalam status Diaktifkan.

  • Instance MongoDB telah dibuat.

  • Peran RAM telah dibuat untuk OOS. Entitas tepercaya dari peran RAM harus Alibaba Cloud Service, layanan tepercaya harus CloudOps Orchestration Service, dan peran RAM harus memiliki izin untuk melakukan operasi pada template OOS. Untuk informasi lebih lanjut, lihat Buat Peran RAM untuk OOS dan Berikan Izin.

    Catatan

    Dalam topik ini, peran RAM OOSServiceRole digunakan sebagai contoh. Anda juga dapat menggunakan peran lainnya.

Informasi latar belakang

Auto Scaling saat ini hanya mendukung integrasi dengan Server Load Balancer (SLB) dan ApsaraDB RDS. Jika Anda menyimpan data aplikasi pada instance MongoDB, memperbarui daftar putih alamat IP untuk instance MongoDB dengan alamat IP pribadi instance ECS secara manual mengarah pada operasi yang tidak efisien. Untuk meningkatkan efisiensi operasional, pertimbangkan untuk mengotomatiskan pembaruan daftar putih alamat IP untuk instance MongoDB dengan menggabungkan fitur panggilan balik siklus hidup Auto Scaling dan template OOS. Perhatikan catatan penggunaan berikut:

  • Jika grup penskalaan Anda berisi instance ECS yang ada, Anda harus secara manual menambahkan alamat IP pribadi dari instance ECS tersebut ke daftar putih alamat IP instance MongoDB. Jika tidak, kesalahan akan terjadi ketika Anda menghapus alamat IP instance dari daftar putih alamat IP instance MongoDB.

  • Anda harus menggunakan NotificationMetadata (metadata untuk singkat) untuk menentukan parameter yang diperlukan untuk membuat eksekusi OOS.

    • Metadata harus dalam format string JSON.

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

    • Untuk parameter yang tidak memiliki pengaturan default dalam template OOS, Anda harus menentukan nilai untuk parameter tersebut. Untuk parameter yang memiliki pengaturan default dalam template OOS, Anda dapat menentukan apakah akan menimpa pengaturan default mereka.

Prosedur

Dalam contoh ini, template OOS publik bernama LifeCycleModifyMongoDBIPWhitelist digunakan untuk menunjukkan cara mengotomatiskan penambahan alamat IP instance ke daftar putih alamat IP instance MongoDB selama acara perluasan skala. Lakukan langkah-langkah berikut:

Catatan

Jika Anda ingin mengotomatiskan penghapusan alamat IP instance dari daftar putih alamat IP instance MongoDB, Anda dapat membuat panggilan balik siklus hidup untuk tujuan penskalaan masuk dan menerapkan panggilan balik siklus hidup selama acara penskalaan masuk.

Langkah 1: Berikan izin peran RAM pada OOS

Anda harus memiliki izin untuk mengeksekusi template OOS. Template ACS-ESS-LifeCycleModifyMongoDBIPWhitelist mencakup sumber daya ECS, Auto Scaling, dan MongoDB yang diperlukan untuk melaksanakan tugas O&M.

  1. Masuk ke Konsol RAM.

  2. Buat kebijakan.

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

    2. Di halaman Kebijakan, klik Create Policy.

    3. Di halaman Create Policy, klik tab JSON, konfigurasikan parameter berdasarkan kebutuhan bisnis Anda, lalu klik OK.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercakup dalam tabel berikut menggunakan pengaturan default mereka.

      Parameter

      Deskripsi

      Name

      Masukkan ESSHookPolicyForMongoDBWhitelist.

      Policy document

      Masukkan konten berikut:

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

    1. Di panel navigasi di 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 untuk menyelesaikan otorisasi.

    3. Di panel Grant Permission, konfigurasikan Lingkup Sumber Daya dan Kebijakan. Setelah Anda menyelesaikan konfigurasi, klik Grant permissions.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercakup dalam tabel berikut menggunakan pengaturan default mereka.

      Parameter

      Deskripsi

      Resource Scope

      Atur nilainya menjadi Account.

      Policy

      Pilih kebijakan kustom berikut: ESSHookPolicyForMongoDBWhitelist.

Langkah 2: Buat panggilan balik siklus hidup untuk tujuan perluasan skala dan picu acara perluasan skala

  1. Masuk ke Konsol Auto Scaling.

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

  3. Di bilah navigasi atas, pilih wilayah.

  4. Temukan grup penskalaan yang diinginkan dan gunakan salah satu metode berikut untuk membuka halaman detail grup penskalaan.

    • Klik ID grup penskalaan di kolom Scaling Group Name/ID.

    • Klik Details di kolom Actions.

  5. Buat panggilan balik siklus hidup.

    1. Di bagian atas halaman detail, klik tab Lifecycle Hook.

    2. Klik Create Lifecycle Hook.

    3. Konfigurasikan parameter berdasarkan kebutuhan bisnis Anda dan klik OK.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercakup dalam tabel berikut menggunakan pengaturan default mereka.

      Parameter

      Deskripsi

      Name

      Masukkan ESSHookForAddMongoDBWhitelist.

      Scaling Activity

      Pilih Scale-out Event.

      Timeout Period

      Konfigurasikan Periode Waktu Habis berdasarkan kebutuhan bisnis Anda. Dalam contoh ini, atur nilainya menjadi 300. Unit: detik.

      Catatan

      Periode waktu habis adalah periode waktu selama Anda dapat melakukan operasi kustom pada instance. Jika periode waktu habis lebih pendek daripada periode waktu yang diperlukan untuk melakukan operasi kustom, operasi tersebut mungkin gagal. Kami sarankan Anda memperkirakan periode waktu yang diperlukan untuk melakukan operasi kustom pada instance dan mengonfigurasi Periode Waktu Habis berdasarkan perkiraan Anda.

      Default Execution Policy

      Pilih Continue.

      Send Notification When Lifecycle Hook Takes Effect

      Konfigurasikan parameter berikut untuk template:

      • Pilih OOS Template.

      • Pilih Public Templates.

      • Pilih LifeCycleModifyMongoDBIPWhitelist.

      Dalam template publik ACS-ESS-LifeCycleModifyMongoDBIPWhitelist, Anda juga harus mengonfigurasi parameter berikut:

      • dbInstanceId: Masukkan ID instance MongoDB. Dalam contoh ini, instance set replika MongoDB digunakan.

      • modifyMode: Pilih Tambahkan. Nilai ini berlaku untuk acara perluasan skala selama Auto Scaling menambahkan alamat IP pribadi instance ECS ke daftar putih alamat IP instance MongoDB.

      • OOSAssumeRole: Pilih OOSServiceRole. Di Langkah 1, OOSServiceRole diberikan izin pada sumber daya ECS, Auto Scaling, dan MongoDB. OOS memperoleh izin sebelumnya setelah mengasumsikan peran RAM.

  6. Picu acara perluasan skala.

    Dalam contoh ini, acara perluasan skala dipicu secara manual dengan mengeksekusi aturan penskalaan. Anda juga dapat memicu acara perluasan skala dengan menggunakan tugas terjadwal atau tugas yang dipicu oleh acara.

    Catatan

    Jika acara penskalaan dipicu ketika Anda secara manual mengeksekusi aturan penskalaan, panggilan balik siklus hidup berlaku. Namun, panggilan balik siklus hidup tidak berlaku ketika Anda secara manual menambahkan atau menghapus instance ECS ke/dari grup penskalaan.

    1. Di bagian atas halaman yang muncul, klik tab Scaling Rules and Event-triggered Tasks.

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

    3. Di kotak dialog Buat Aturan Penskalaan, konfigurasikan parameter berdasarkan kebutuhan bisnis Anda dan klik OK.

      Tabel berikut menjelaskan pengaturan yang digunakan dalam contoh ini. Parameter apa pun yang tidak tercakup dalam tabel berikut menggunakan pengaturan default mereka.

      Parameter

      Deskripsi

      Rule Name

      Masukkan Add1.

      Rule Type

      Pilih Simple Scaling Rule.

      Operation

      Atur nilainya menjadi Tambah 1 Instance.

    4. Di tab Aturan Penskalaan, temukan aturan penskalaan Add1 dan klik Execute di kolom Actions.

    5. Di pesan Eksekusi Aturan Penskalaan, klik OK.

    Setelah aturan penskalaan dieksekusi, Auto Scaling menambahkan satu instance ECS ke grup penskalaan. Namun, instance ECS memasuki status Pending Add karena panggilan balik siklus hidup ESSHookForAddMongoDBWhitelist yang sedang berlaku. Selama periode waktu habis panggilan balik siklus hidup, Auto Scaling memberi tahu OOS untuk mengeksekusi tugas O&M yang didefinisikan dalam template publik ACS-ESS-LifeCycleModifyMongoDBIPWhitelist.

Langkah 3: Periksa daftar putih alamat IP instance MongoDB

  1. Masuk ke Konsol MongoDB.

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

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

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

    • Jika alamat IP pribadi instance ECS ditambahkan ke daftar putih alamat IP instance MongoDB, template publik ACS-ESS-LifeCycleModifyMongoDBIPWhitelist berlaku seperti yang diharapkan.

    • Jika instance ECS dibuat tetapi alamat IP pribadinya tidak ditambahkan ke daftar putih alamat IP instance MongoDB, buka konsol OOS untuk melihat eksekusi tugas O&M. Untuk informasi lebih lanjut, lihat (Opsional) Langkah 4: Lihat Eksekusi OOS.

(Opsional) Langkah 4: Lihat eksekusi OOS

  1. Masuk ke Konsol OOS.

  2. Di panel navigasi di 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, di bagian Basic Information, Anda dapat melihat ID eksekusi dan status. Di bagian Execution Steps and Results, Anda dapat mengklik node tugas untuk melihat detail eksekusi. Untuk informasi lebih lanjut, lihat Lihat Detail Eksekusi.

    Catatan

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

FAQ

Jika Anda gagal mengeksekusi tugas O&M, lakukan pemecahan masalah berdasarkan pesan kesalahan dalam hasil eksekusi. Untuk informasi lebih lanjut, lihat FAQ.

Tabel berikut menjelaskan pesan kesalahan umum.

Pesan Kesalahan

Penyebab

Solusi

Forbidden.Unauthorized message: Otorisasi yang diperlukan untuk tindakan yang ditentukan tidak disediakan.

Anda belum mengotorisasi Auto Scaling untuk melakukan tindakan saat ini.

Periksa apakah peran RAM OOSServiceRole memiliki izin yang diperlukan.

Forbidden.RAM message: Pengguna tidak berwenang untuk mengoperasikan sumber daya yang ditentukan, atau API ini tidak mendukung RAM.

Pengguna RAM atau peran RAM tidak memiliki izin untuk mengoperasikan sumber daya yang sesuai.

Periksa apakah peran RAM OOSServiceRole memiliki izin yang diperlukan. Sebagai contoh, Anda dapat memberikan izin OOS ke peran RAM. Sebelum OOS dapat mengelola sumber daya yang dideklarasikan dalam template OOS, Anda harus memberikan izin yang diperlukan kepada peran RAM.

LifecycleHookIdAndLifecycleActionToken.Invalid message: lifecycleActionToken dan lifecycleActionId yang Anda tentukan tidak cocok dengan tindakan siklus hidup yang sedang berlangsung.

Tindakan panggilan balik siklus hidup yang sedang berlangsung telah berakhir atau dihentikan.

Evaluasi periode waktu habis dari panggilan balik siklus hidup untuk memastikan bahwa tugas O&M yang ditentukan dalam template OOS dapat selesai dalam batas waktu yang dialokasikan.