Instance user data memungkinkan Auto Scaling menjalankan skrip pada setiap instans ECS baru saat boot pertama—tanpa perlu koneksi SSH manual atau langkah konfigurasi tambahan setelah peluncuran. Tutorial ini memandu Anda menulis skrip Shell, menyambungkannya ke konfigurasi penskalaan, dan memverifikasi hasilnya.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Akun Alibaba Cloud. Untuk membuatnya, kunjungi halaman pendaftaran akun.
Virtual private cloud (VPC) dan vSwitch.
Cara kerja instance user data
Auto Scaling meneruskan instance user data ke instans ECS baru saat boot pertama. cloud-init mengambil data tersebut dan menjalankannya secara otomatis, sehingga instans sudah sepenuhnya dikonfigurasi saat siap melayani lalu lintas. Dibandingkan dengan alat manajemen infrastruktur TI open-source seperti Terraform, fitur Instance User Data lebih efisien dan andal.
Tutorial ini menggunakan skrip Shell untuk mengonfigurasi YUM dan NTP pada instans CentOS. Pendekatan yang sama berlaku untuk tugas inisialisasi apa pun: menginstal paket, mengatur variabel lingkungan, atau mendaftarkan instans ke layanan eksternal.
Untuk referensi fitur lengkap, lihat Ikhtisar instance user data ECS. Instance user data berfungsi untuk instans Linux maupun Windows.
Catatan penggunaan
Grup penskalaan harus menggunakan VPC sebagai jenis jaringannya.
Instance user data harus di-encode dalam Base64.
Skrip hanya dijalankan sekali, yaitu saat instans pertama kali dinyalakan.
Instance user data ditransmisikan dalam teks biasa. Jangan sertakan kata sandi, kunci privat, atau informasi sensitif lainnya. Jika Anda harus mengirimkan data sensitif, enkripsi terlebih dahulu dan dekripsi di dalam instans.
Untuk konfigurasi berbasis API, kirimkan user data menggunakan parameter UserData dari CreateScalingConfiguration.
Anda dapat menggabungkan instance user data dengan pasangan kunci SSH, peran RAM, dan tag untuk manajemen instans yang lebih komprehensif. Lihat Konfigurasi parameter dalam konfigurasi penskalaan untuk menerapkan penyebaran otomatis.
Langkah 1: Siapkan instance user data
Buat skrip Shell yang mengonfigurasi setiap instans baru, lalu encode dalam Base64.
Batasan skrip
| Batasan | Persyaratan |
|---|---|
| Format | Harus diawali dengan #! (misalnya, #!/bin/sh) |
| Ukuran | Tidak boleh melebihi 32 KB sebelum di-encode Base64 |
| Eksekusi | Dijalankan sekali, saat boot pertama |
Buat skrip Shell. Skrip berikut mengonfigurasi repositori paket YUM dan mengatur server NTP ke
ntp1.aliyun.com:#!/bin/sh # Konfigurasi repositori YUM rm -rf /etc/yum.repos.d/* touch myrepo.repo echo "[base]" | tee /etc/yum.repos.d/myrepo.repo echo "name=myrepo" | tee -a /etc/yum.repos.d/myrepo.repo echo "baseurl=http://mirror.centos.org/centos" | tee -a /etc/yum.repos.d/myrepo.repo echo "gpgcheck=0" | tee -a /etc/yum.repos.d/myrepo.repo echo "enabled=1" | tee -a /etc/yum.repos.d/myrepo.repo yum update -y # Atur server NTP echo "server ntp1.aliyun.com" | tee /etc/ntp.conf systemctl restart ntpd.serviceEncode skrip tersebut dalam Base64. Output yang dihasilkan akan tampak seperti berikut:
IyEvYmluL3NoCiMgTW9kaWZ5IHl1bSByZXBvIGFuZCB1cGRhdGUKcm0gLXJmIC9ldGMveXVtLnJlcG9zLmQvKgp0b3VjaCBteXJlcG8ucmVwbwplY2hvICJbYmFzZV0iIHwgdGVlIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KZWNobyAibmFtZT1teXJlcG8iIHwgdGVlIC1hIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KZWNobyAiYmFzZXVybD1odHRwOi8vbWlycm9yLmNlbnRvcy5vcmcvY2VudG9zIiB8IHRlZSAtYSAvZXRjL3l1bS5yZXBvcy5kL215cmVwby5yZXBvCmVjaG8gImdwZ2NoZWNrPTAiIHwgdGVlIC1hIC9ldGMveXVtLnJlcG9zLmQvbXlyZXBvLnJlcG8KZWNobyAiZW5hYmxlZD0xIiB8IHRlZSAtYSAvZXRjL3l1bS5yZXBvcy5kL215cmVwby5yZXBvCnl1bSB1cGRhdGUgLXkKIyBNb2RpZnkgTlRQIFNlcnZlcgplY2hvICJzZXJ2ZXIgbnRwMS5hbGl5dW4uY29tIiB8IHRlZSAvZXRjL250cC5jb25mCnN5c3RlbWN0bCByZXN0YXJ0IG50cGQuc2VydmljZQ==Simpan string ter-encode ini untuk Langkah 2.
Langkah 2: Buat dan aktifkan grup penskalaan
Buat grup penskalaan. Untuk langkah-langkah detail, lihat Kelola grup penskalaan. Konfigurasikan parameter berikut: Setelah dibuat, grup penskalaan akan muncul di halaman Scaling Groups dengan status Disabled. Klik View Details di kolom Actions untuk melihat detailnya.
Parameter Nilai untuk tutorial ini Minimum Number of Instances 1 Instance Configuration Source Create from Scratch Network Type VPC VPC Pilih VPC yang sudah ada Select vSwitch Pilih vSwitch di VPC tersebut Buat dan aktifkan konfigurasi penskalaan. Untuk langkah-langkah detail, lihat Buat konfigurasi penskalaan untuk grup penskalaan yang berisi instans ECS. Konfigurasikan parameter berikut:
Bagian Parameter Nilai untuk tutorial ini Instance and Image Select Image Pilih CentOS 7.9 64-bit dari Public Image Management Configuration Logon Credentials Key Pair Management Configuration Key Pair Pilih pasangan kunci yang sudah ada. Untuk membuatnya, lihat Buat pasangan kunci SSH Advanced Settings Instance User Data Masukkan skrip instance user data yang disiapkan di Langkah 1 Aktifkan grup penskalaan. Untuk langkah-langkah detail, lihat Aktifkan grup penskalaan.
Langkah 3: Verifikasi konfigurasi instans
Karena Minimum Number of Instances diatur ke 1, Auto Scaling akan membuat satu instans ECS segera setelah Anda mengaktifkan grup penskalaan.
Periksa aktivitas penskalaan. Di detail grup penskalaan, buka daftar aktivitas penskalaan. Pastikan satu instans ECS telah dibuat. Untuk detailnya, lihat Lihat detail aktivitas penskalaan.
Login ke instans ECS. Untuk instans Linux, hubungkan menggunakan pasangan kunci SSH Anda. Lihat Hubungkan ke instans Linux menggunakan pasangan kunci SSH.
Jika Anda mengatur kata sandi logon atau mengaitkan pasangan kunci dengan instans, Anda juga dapat menggunakan Workbench. Lihat Hubungkan ke instans Linux menggunakan password atau kunci.
Periksa status layanan. Gambar berikut menunjukkan bahwa layanan YUM dan NTP telah diaktifkan. Hal ini mengonfirmasi bahwa instance user data yang dikonfigurasi dalam konfigurasi penskalaan telah berlaku.

Langkah selanjutnya
Untuk mengelola instans secara lebih efisien, gabungkan instance user data dengan pasangan kunci SSH, peran RAM, dan tag. Lihat Konfigurasi parameter dalam konfigurasi penskalaan untuk menerapkan penyebaran otomatis.
Untuk mengirimkan user data melalui API, gunakan parameter
UserDatadalam CreateScalingConfiguration.