All Products
Search
Document Center

Auto Scaling:Jalankan skrip secara otomatis pada instance ECS

Last Updated:Aug 21, 2026

Tutorial ini menjelaskan cara menggunakan kait siklus hidup Auto Scaling untuk menangguhkan instance ECS dan templat CloudOps Orchestration Service (OOS) guna mengeksekusi skrip secara otomatis pada instance tersebut selama aktivitas penskalaan.

Prasyarat

  • Grup penskalaan telah dibuat dan berada dalam status Enabled.

  • Anda telah menyiapkan skrip. Tutorial ini menggunakan skrip yang menginstal Apache pada instance Linux CentOS 7.6 sebagai contoh.

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

Prosedur

Tutorial ini menggunakan templat publik OOS ACS-ESS-LifeCycleRunCommand untuk menunjukkan cara menjalankan skrip secara otomatis pada instance ECS selama event scale-out.

Langkah 1: Konfigurasikan izin peran RAM OOS

Templat ACS-ESS-LifeCycleRunCommand memerlukan izin untuk melakukan operasi pada resource ECS dan Auto Scaling. Anda harus memberikan izin tersebut kepada peran RAM yang diasumsikan oleh OOS.

  1. Masuk ke Konsol RAM.

  2. Buat kebijakan.

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

    2. Pada halaman Policies, klik Create Policy.

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

      Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter lainnya.

      Parameter

      Deskripsi

      Name

      Masukkan ESSHookPolicyForRunCommand.

      Policy Document

      Masukkan konten berikut:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:DescribeInvocationResults",
                      "ecs:DescribeInvocations",
                      "ecs:RunCommand"
                  ],
                  "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. Pada halaman Grant Permission, tentukan cakupan resource dan izin, lalu klik OK.

      Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter lainnya.

      Parameter

      Deskripsi

      Resource Scope

      Pilih Account.

      Policies

      Tambahkan kebijakan kustom ESSHookPolicyForRunCommand.

Langkah 2: Buat kait siklus hidup untuk event scale-out

Saat membuat kait siklus hidup, konfigurasikan agar menggunakan templat OOS. Hal ini memastikan bahwa skrip dijalankan secara otomatis ketika event scale-out dipicu.

  1. Masuk ke Auto Scaling console.

  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 kait siklus hidup untuk event scale-out.

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

    2. Klik Create Lifecycle Hook.

    3. Konfigurasikan parameter kait siklus hidup dan klik OK.

      Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter lainnya.

      Parameter

      Deskripsi

      Name

      Masukkan ESSHookForRunCommand.

      Scaling Activity Type

      Pilih Scale-Out.

      Timeout Period

      Masukkan periode timeout, misalnya 300 detik.

      Catatan

      Timeout menentukan berapa lama operasi kustom dapat berjalan. Jika timeout terlalu singkat, operasi mungkin gagal. Evaluasi waktu yang diperlukan untuk operasi kustom Anda dan atur timeout yang sesuai.

      Default Execution Policy

      Pilih Continue.

      Send Notification When Lifecycle Hook Takes Effect

      Konfigurasikan templat sebagai berikut:

      • Notification Method: Pilih OOS Template.

      • OOS Template Type: Pilih Public Templates.

      • Public Template: Pilih ACS-ESS-LifeCycleRunCommand.

      Konfigurasikan parameter eksekusi untuk ACS-ESS-LifeCycleRunCommand sebagai berikut:

      • commandType: Pilih RunShellScript.

      • commandContent: Masukkan skrip yang akan dijalankan. Tutorial ini menggunakan skrip yang secara otomatis menginstal Apache sebagai contoh.

        yum install -y httpd
        systemctl start httpd
        systemctl enable httpd
      • OOSAssumeRole: Pilih OOSServiceRole. Di bagian Prosedur, Anda telah memberikan izin kepada peran ini untuk mengelola resource ECS dan Auto Scaling. OOS mengasumsikan peran RAM ini untuk mendapatkan izin tersebut.

  6. Picu event scale-out.

    Tutorial ini menggunakan aturan penskalaan yang dieksekusi secara manual sebagai contoh. Anda juga dapat memicu event scale-out dengan tugas terjadwal atau tugas berbasis peristiwa.

    Catatan

    Kait siklus hidup dipicu oleh aturan penskalaan, tetapi tidak oleh penambahan atau penghapusan instance 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. Atur parameter aturan penskalaan dan klik OK.

      Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter lainnya.

      Parameter

      Deskripsi

      Rule Name

      Masukkan Add1.

      Rule Type

      Pilih Simple Scaling Rule.

      Operation

      Atur untuk menambahkan 1 instans.

    4. Di daftar aturan penskalaan, temukan aturan Add1 dan klik Recurrently di kolom Actions.

    5. Klik OK.

    Setelah aturan penskalaan dieksekusi, instance ECS dibuat secara otomatis. Karena kait siklus hidup ESSHookForRunCommand ada di grup penskalaan, instance baru memasuki status tunggu. OOS kemudian diberi notifikasi untuk melakukan operasi yang ditentukan dalam templat ACS-ESS-LifeCycleRunCommand.

  7. Verifikasi bahwa instance ECS yang dibuat secara otomatis dikonfigurasi dengan benar.

    1. Di bagian atas halaman, klik tab Instance Management.

    2. Temukan instance ECS yang dibuat secara otomatis dan klik ID instance di kolom ECS Instance ID/Name.

    3. Di panel navigasi sebelah kiri, klik Cloud Assistant.

    4. Di pojok kanan atas halaman, klik Create/Run Command.

    5. Jalankan perintah berikut untuk memeriksa status instalasi Apache.

      Untuk informasi lebih lanjut, lihat Create and run a command. Konten perintah adalah sebagai berikut:

      systemctl status httpd
      • Di tab Command Execution Result, lihat detail eksekusi. Jika hasil menunjukkan bahwa layanan Apache telah terinstal dan statusnya aktif, maka skrip dalam parameter commandContent templat ACS-ESS-LifeCycleRunCommand berhasil dijalankan.

      • Jika instance ECS dibuat tetapi Apache gagal terinstal secara otomatis, buka konsol OOS untuk melihat detail eksekusi tugas. Untuk informasi lebih lanjut, lihat (Optional) Step 3: View the OOS execution details.

(Opsional) Langkah 3: Lihat detail 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. Halaman detail eksekusi menyediakan gambaran lengkap tentang tugas tersebut.

    Sebagai contoh, Anda dapat melihat ID eksekusi dan status di bagian Basic Information. Anda juga dapat mengklik node tugas di bagian Execution Result untuk melihat detailnya. Untuk informasi lebih lanjut, lihat View the details of an execution.

    Catatan

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

FAQ

Jika Anda gagal mengeksekusi tugas O&M, lakukan pemecahan masalah berdasarkan pesan error di hasil eksekusi. Untuk informasi lebih lanjut, 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 melakukan 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 kait siklus hidup yang sedang berlangsung telah berakhir atau dihentikan.

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

Referensi

Untuk menjalankan skrip pada instance ECS yang sudah ada di grup penskalaan, gunakan fitur rolling update. Untuk informasi lebih lanjut, lihat topik berikut: