Tutorial ini menjelaskan cara menggunakan lifecycle hook dari Auto Scaling untuk menangguhkan instans ECS dan menerapkan kebijakan snapshot otomatis secara otomatis dengan templat dari CloudOps Orchestration Service (OOS).
Prasyarat
-
Anda telah membuat scaling group yang berada dalam status Enabled. Untuk informasi selengkapnya, lihat Manage scaling groups.
-
Anda telah membuat kebijakan snapshot otomatis. Untuk informasi selengkapnya, lihat Create an automatic snapshot policy.
-
Peran Resource Access Management (RAM) telah dibuat untuk OOS. Entitas tepercaya dari peran RAM tersebut harus berupa Alibaba Cloud Service, layanan tepercayanya harus CloudOps Orchestration Service, dan peran RAM tersebut harus memiliki izin untuk melakukan operasi pada templat OOS. Untuk informasi selengkapnya, lihat Create a RAM role for OOS and grant permissions.
CatatanPada topik ini, peran RAM OOSServiceRole digunakan sebagai contoh. Anda juga dapat menggunakan peran lainnya.
Latar Belakang
Kebijakan snapshot otomatis secara berkala membuat snapshot untuk instans ECS Anda, sehingga meningkatkan keamanan data dan toleransi terhadap kesalahan operasional. Meskipun Anda tidak dapat mengaitkan kebijakan snapshot otomatis saat membuat scaling configuration, Anda dapat menggunakan lifecycle hook dan templat OOS untuk mengotomatiskan proses ini. Metode ini lebih efisien dibandingkan menerapkan kebijakan secara manual ke setiap instans ECS baru.
Kebijakan snapshot otomatis secara berkala membuat snapshot pada waktu yang dijadwalkan untuk melindungi data pada disk sistem dan disk data Anda. Untuk informasi selengkapnya, lihat Automatic snapshot policies.
Prosedur
Tutorial ini menggunakan templat publik OOS ACS-ESS-LifeCycleApplyAutoSnapshotPolicy sebagai contoh untuk menjelaskan cara menerapkan kebijakan snapshot otomatis ke instans ECS secara otomatis selama skala keluar. Prosedurnya adalah sebagai berikut:
Langkah 1: Berikan izin ke peran RAM OOS
Anda harus memiliki izin yang diperlukan untuk mengeksekusi templat OOS. Eksekusi operasi O&M yang didefinisikan dalam ACS-ESS-LifeCycleApplyAutoSnapshotPolicy melibatkan resource dari Elastic Compute Service (ECS) dan Auto Scaling.
-
Masuk ke RAM console.
-
Buat kebijakan izin.
-
Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Policies, klik Create Policy.
-
Pada halaman Create Policy, klik tab JSON, masukkan konten kebijakan berikut, lalu klik OK.
{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeDisks", "ecs:ApplyAutoSnapshotPolicy", "ecs:DescribeInstances" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ess:CompleteLifecycleAction" ], "Resource": "*", "Effect": "Allow" } ] } -
Pada dialog Create Policy, masukkan nama untuk kebijakan tersebut.
Nama kebijakan adalah
ESSHookPolicyForApplyAutoSnapshotPolicy.CatatanJika Anda perlu mengubah konten kebijakan, klik Cancel untuk melanjutkan pengeditan kebijakan izin.
-
Klik OK.
-
-
Lampirkan kebijakan izin ke peran RAM OOSServiceRole.
-
Di panel navigasi sebelah kiri, pilih .
-
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.
-
Pada halaman Grant Permission, konfigurasikan pengaturan dan klik OK.
Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter yang tidak disebutkan.Basic Information
Parameter
Deskripsi
Grant Scope
Pilih Alibaba Cloud Account.
Policies
Tambahkan kebijakan kustom
ESSHookPolicyForApplyAutoSnapshotPolicy.
-
Langkah 2: Buat lifecycle hook dan picu skala keluar
Masuk ke Auto Scaling console.
Di panel navigasi sebelah kiri, klik Scaling Groups.
Di bilah navigasi atas, pilih wilayah.
Temukan scaling group yang ingin Anda kelola dan buka halaman detailnya dengan salah satu cara berikut:
Di kolom Scaling Group Name/ID, klik ID scaling group tersebut.
Di kolom Actions, klik Details.
-
Buat lifecycle hook untuk event skala keluar.
Di bagian atas halaman, klik tab Event and adhesive hook.
-
Klik Create Lifecycle Hook.
-
Konfigurasikan lifecycle hook dan klik OK.
Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter yang tidak disebutkan.
Parameter
Deskripsi
Name
Masukkan
ESSHookForApplyAutoSnapshotPolicy.Scaling Activity Type
Pilih Scale-Out.
Timeout Period
Masukkan periode timeout yang sesuai, misalnya 300 detik.
CatatanPeriode timeout adalah waktu maksimum yang diizinkan untuk menyelesaikan aksi kustom. Jika aksi tidak selesai dalam periode ini, maka akan gagal. Tetapkan timeout yang cukup lama agar aksi Anda dapat berjalan sukses.
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-LifeCycleApplyAutoSnapshotPolicy.
Parameter eksekusi untuk
ACS-ESS-LifeCycleApplyAutoSnapshotPolicyadalah sebagai berikut:-
autoSnapshotPolicyId: Masukkan ID kebijakan snapshot otomatis Anda.
-
OOSAssumeRole: Pilih
OOSServiceRole. Di Langkah 1, Anda telah memberikan izin yang diperlukan kepada peran RAM ini untuk mengelola resource ECS dan Auto Scaling. OOS mengasumsikan peran ini untuk memperoleh izin tersebut.
-
-
Picu event skala keluar.
Dalam tutorial ini, kami mengeksekusi aturan penskalaan secara manual untuk memicu event skala keluar. Anda juga dapat menggunakan metode lain, seperti tugas terjadwal atau tugas berbasis peristiwa.
CatatanLifecycle hook dipicu saat Anda mengeksekusi aturan penskalaan, tetapi tidak dipicu saat Anda menambahkan atau menghapus instans ECS yang sudah ada dari scaling group secara manual.
-
Di bagian atas halaman, klik tab Scaling Rules and Event-triggered Tasks.
-
Pada tab Scaling Rules, klik Create Scaling Rule.
-
Konfigurasikan aturan penskalaan dan klik OK.
Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter yang tidak disebutkan.
Parameter
Deskripsi
Rule Name
Masukkan
Add1.Rule Type
Pilih Simple Scaling Rule.
Operation
Diatur untuk menambahkan 1 instance.
-
Di daftar aturan penskalaan, temukan aturan
Add1dan klik Actions di kolom Recurrently. -
Klik OK.
Setelah aturan penskalaan dieksekusi, satu instans ECS dibuat secara otomatis. Lifecycle hook
ESSHookForApplyAutoSnapshotPolicydalam scaling group kemudian menangguhkan instans ECS tersebut dan secara bersamaan memberi notifikasi ke layanan OOS untuk mengeksekusi operasi O&M yang didefinisikan dalamACS-ESS-LifeCycleApplyAutoSnapshotPolicy. -
-
Verifikasi bahwa kebijakan snapshot otomatis telah diterapkan ke instans ECS baru.
Di bagian atas halaman, klik tab Instance Management.
-
Temukan instans ECS yang baru dibuat dan klik ID-nya di kolom ECS Instance ID/Name.
-
Pada halaman Instance Details, klik tab Block Storage.
Temukan cloud disk, lalu di kolom Actions, klik Set Snapshot Policy.
-
Gambar di bawah menunjukkan bahwa kebijakan snapshot otomatis telah diaktifkan untuk cloud disk tersebut. Kebijakan ini sesuai dengan Automatic Snapshot Policy ID yang ditetapkan saat membuat lifecycle hook, yang merupakan perilaku yang diharapkan saat menggunakan templat publik
ACS-ESS-LifeCycleApplyAutoSnapshotPolicy.
-
Jika instans ECS berhasil dibuat tetapi kebijakan snapshot otomatis tidak diterapkan, buka konsol OOS untuk memeriksa status eksekusi tugas.
-
(Opsional) Langkah 3: Lihat status eksekusi OOS
-
Masuk ke OOS console.
-
Di panel navigasi sebelah kiri, pilih .
-
Temukan tugas eksekusi berdasarkan waktu dan klik Details di kolom Actions.
-
Di halaman detail eksekusi, lihat informasi eksekusi.
Sebagai contoh, Anda dapat melihat ID eksekusi dan statusnya di bagian Basic Information. Anda juga dapat mengklik node tugas di bagian Task Execution untuk melihat detail langkah tersebut. Untuk informasi selengkapnya, lihat View the details of an execution.
CatatanJika eksekusi gagal, halaman detail eksekusi akan menampilkan pesan error.
FAQ
Jika Anda gagal mengeksekusi tugas O&M, lakukan troubleshooting berdasarkan pesan error dalam 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 melakukan aksi tersebut. |
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 yang sesuai. |
Periksa apakah peran RAM OOSServiceRole memiliki izin yang diperlukan. Sebagai contoh, 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 tugas O&M yang ditentukan dalam templat OOS dapat diselesaikan dalam batas waktu yang ditentukan. |
Topik terkait
Anda juga dapat menggunakan lifecycle hook Auto Scaling dan templat CloudOps Orchestration Service (OOS) untuk menjalankan skrip secara otomatis pada instans ECS selama event skala-masuk atau skala keluar. Untuk informasi selengkapnya, lihat Automatically execute scripts on ECS instances.