Tutorial ini menjelaskan cara menggunakan kait siklus hidup Auto Scaling untuk menempatkan instans ECS dalam status tunggu dan menggunakan templat CloudOps Orchestration Service (OOS) guna secara otomatis menambahkan atau menghapus instans tersebut dari daftar putih alamat IP kluster AnalyticDB untuk MySQL.
Prasyarat
-
Grup penskalaan telah dibuat dan berada dalam status Enabled.
-
Kluster AnalyticDB untuk MySQL 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.
CatatanDalam topik ini, peran RAM OOSServiceRole digunakan sebagai contoh. Anda juga dapat menggunakan peran lain.
Latar Belakang
Grup penskalaan dapat dikaitkan dengan instans Server Load Balancer (SLB) dan instans ApsaraDB RDS, tetapi tidak dengan kluster AnalyticDB untuk MySQL. Jika data bisnis Anda berada di kluster AnalyticDB untuk MySQL, pengelolaan manual daftar putih alamat IP untuk instans ECS tidak efisien. Untuk mengotomatiskan proses ini, gunakan kait siklus hidup dan templat OOS.
Prosedur
Tutorial ini menjelaskan cara menggunakan templat publik OOS ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist untuk menambahkan instans ECS ke daftar putih alamat IP kluster AnalyticDB untuk MySQL selama event scale-out. Lakukan langkah-langkah berikut:
Untuk secara otomatis menghapus instans ECS dari daftar putih alamat IP kluster AnalyticDB untuk MySQL selama event scale-in, buat kait siklus hidup untuk event scale-in, lalu picu scale-in.
Langkah 1: Berikan izin OOS kepada peran RAM
Anda harus memiliki izin untuk mengeksekusi templat OOS. Templat ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist memerlukan izin untuk melakukan operasi pada resource ECS, Auto Scaling, dan AnalyticDB for MySQL.
-
Masuk ke Konsol RAM.
-
Buat kebijakan.
-
Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Policies, klik Create Policy.
-
Pada halaman Create Policy, klik tab JSON, konfigurasi parameter, lalu klik OK.
Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter lainnya.
Parameter
Deskripsi
Name
Masukkan ESSHookPolicyForAnalyticDBWhitelist.
Policy Document
Masukkan konten berikut:
{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeInstances" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "adb:ModifyDBClusterAccessWhiteList" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ess:CompleteLifecycleAction" ], "Resource": "*", "Effect": "Allow" } ] }
-
-
Lampirkan kebijakan 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, konfigurasi parameter, lalu klik OK.
Tabel berikut menjelaskan parameter yang digunakan dalam tutorial ini. Gunakan nilai default untuk parameter lainnya.
Parameter
Deskripsi
Authorized scope
Pilih Alibaba Cloud Account.
Policy
Pilih kebijakan kustom ESSHookPolicyForAnalyticDBWhitelist.
-
Langkah 2: Buat dan picu kait siklus hidup scale-out
Masuk ke Auto Scaling console.
Di panel navigasi sebelah kiri, klik Scaling Groups.
Di bilah navigasi atas, pilih wilayah.
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.
-
Buat kait siklus hidup untuk event scale-out.
Di bagian atas halaman, klik tab Event and adhesive hook.
-
Klik Create Lifecycle Hook.
-
Konfigurasi 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 ESSHookForAddAnalyticDBWhitelist.
Scaling Activity Type
Pilih Scale-Out.
Timeout Period
Masukkan periode timeout yang sesuai, misalnya 300 detik.
CatatanPeriode timeout adalah waktu yang dialokasikan untuk menjalankan aksi kustom. Evaluasi waktu yang dibutuhkan untuk aksi tersebut dan atur timeout yang sesuai agar tidak terjadi kegagalan.
Default Execution Policy
Pilih Continue.
Send Notification When Lifecycle Hook Takes Effect
Konfigurasi templat sebagai berikut:
-
Notification Method: Pilih OOS Template.
-
OOS Template Type: Pilih Public Templates.
-
Public Template: Pilih ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist.
Konfigurasi parameter eksekusi untuk ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist sebagai berikut:
-
dbClusterId: Masukkan ID kluster AnalyticDB untuk MySQL Anda.
-
modifyMode: Pilih Append. Ini berlaku untuk event scale-out dan menambahkan instans ECS ke daftar putih alamat IP kluster AnalyticDB untuk MySQL.
-
RAM role assumed by OOS: Pilih OOSServiceRole. Dalam prosedur, peran RAM OOSServiceRole telah diberikan izin untuk mengelola ECS, Auto Scaling, dan AnalyticDB untuk PostgreSQL. Layanan OOS mengasumsikan peran ini untuk mendapatkan izin tersebut.
-
-
Picu event scale-out.
Tutorial ini menggunakan aturan penskalaan yang dieksekusi secara manual sebagai contoh, tetapi Anda juga dapat memicu event scale-out dengan tugas terjadwal atau tugas berbasis peristiwa.
CatatanJika aktivitas penskalaan dipicu saat Anda mengeksekusi aturan penskalaan secara manual, kait siklus hidup akan berlaku. Kait siklus hidup tidak berlaku saat Anda menambahkan atau menghapus instans ECS ke atau dari grup penskalaan secara manual.
-
Klik tab Scaling Rules and Event-triggered Tasks.
-
Pada tab Scaling Rules, klik Create Scaling Rule.
-
Atur properti 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 ini ke Add 1 Instances.
-
Di daftar aturan penskalaan, temukan aturan penskalaan Add1 yang telah Anda buat dan klik Recurrently di kolom Actions.
-
Klik OK.
Setelah aturan penskalaan dieksekusi, satu instans ECS dibuat secara otomatis. Karena kait siklus hidup ESSHookForAddAnalyticDBWhitelist telah dibuat di grup penskalaan, instans tersebut masuk ke status tunggu. OOS kemudian diberi notifikasi untuk menjalankan operasi yang didefinisikan dalam templat ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist.
-
Langkah 3: Periksa daftar putih AnalyticDB untuk MySQL
-
Masuk ke Konsol AnalyticDB untuk MySQL.
-
Di panel navigasi sebelah kiri, klik Clusters.
-
Temukan kluster target dan klik ID-nya di kolom Cluster ID/Description.
-
Di panel navigasi sebelah kiri, klik Data Security.
-
Jika alamat IP pribadi instans ECS baru muncul di daftar putih alamat IP kluster AnalyticDB untuk MySQL, berarti templat publik ACS-ESS-LifeCycleModifyAnalyticDBIPWhitelist berfungsi dengan benar.
-
Jika instans ECS dibuat tetapi alamat IP pribadinya tidak muncul di daftar putih alamat IP, periksa status eksekusi tugas di Konsol OOS. Untuk informasi selengkapnya, lihat (Opsional) Langkah 4: Lihat detail eksekusi OOS.
-
(Opsional) Langkah 4: Lihat detail eksekusi OOS
-
Masuk ke Konsol OOS.
-
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 status di bagian Basic Information. Anda juga dapat mengklik node tugas di bagian Execution Result untuk melihat detailnya. Untuk informasi selengkapnya, lihat Lihat detail eksekusi.
CatatanJika eksekusi gagal, pesan error yang sesuai 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 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 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 yang sesuai. |
Periksa apakah peran RAM OOSServiceRole memiliki izin yang diperlukan. Sebagai contoh, Anda dapat memberikan izin OOS kepada peran RAM. Sebelum OOS dapat mengelola resource yang dideklarasikan dalam templat OOS, Anda harus memberikan izin yang diperlukan kepada peran RAM. |
|
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. |