Topik ini menjelaskan cara menggunakan Template Terraform untuk membuat grup skala, konfigurasi skala, aturan skala, dan sumber daya Auto Scaling lainnya saat pertama kali menggunakan Auto Scaling.
Anda dapat menjalankan kode contoh dengan beberapa klik. Jalankan Kode Contoh.
Sebelum memulai
Buat Pengguna Resource Access Management (RAM) dan pasangan AccessKey. Akun Alibaba Cloud memiliki izin penuh atas semua sumber daya yang dimiliki akun tersebut. Jika kredensial dari akun Alibaba Cloud bocor, risiko keamanan mungkin timbul. Kami menyarankan Anda menggunakan pengguna RAM dan membuat pasangan AccessKey untuk pengguna RAM. Untuk informasi lebih lanjut, lihat Buat Pengguna RAM dan Buat Pasangan AccessKey.
Berikan izin kepada pengguna RAM. RAM memungkinkan kontrol efisien atas izin sumber daya cloud, mendukung kolaborasi multi-pengguna yang aman. Dengan menerapkan prinsip hak istimewa minimal (PoLP), Anda dapat memberikan pengguna hanya akses yang diperlukan, mengurangi risiko keamanan dari izin berlebihan. Untuk informasi lebih lanjut, lihat Berikan Izin kepada Pengguna RAM.
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:CreateSecurityGroup", "ecs:ModifySecurityGroupPolicy", "ecs:DescribeSecurityGroups", "ecs:ListTagResources", "ecs:DeleteSecurityGroup", "ecs:DescribeSecurityGroupAttribute", "ecs:AuthorizeSecurityGroup", "ecs:RevokeSecurityGroup" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "vpc:DescribeVpcAttribute", "vpc:DescribeRouteTableList", "vpc:DescribeVSwitchAttributes", "vpc:DeleteVpc", "vpc:DeleteVSwitch", "vpc:CreateVpc", "vpc:CreateVSwitch" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ess:CreateScalingGroup", "ess:DescribeScalingGroups", "ess:ListTagResources", "ess:DeleteScalingGroup", "ess:ModifyScalingGroup", "ess:CreateScalingConfiguration", "ess:DescribeScalingConfigurations", "ess:ModifyScalingConfiguration", "ess:CreateScalingRule", "ess:DescribeScalingRules", "ess:DeleteScalingRule" ], "Resource": "*" } ] }Siapkan lingkungan runtime Terraform dengan menggunakan salah satu metode berikut:
Gunakan Terraform di Terraform Explorer. Alibaba Cloud menyediakan Terraform Explorer, lingkungan runtime online untuk Terraform. Anda dapat menggunakan Terraform setelah masuk ke Terraform Explorer tanpa perlu menginstal Terraform. Metode ini cocok untuk skenario di mana Anda ingin menggunakan dan men-debug Terraform dengan cepat dan nyaman tanpa biaya tambahan.
Gunakan Terraform di Cloud Shell. Terraform sudah diinstal sebelumnya di Cloud Shell dan kredensial identitas telah dikonfigurasi. Anda dapat langsung menjalankan perintah Terraform di Cloud Shell. Metode ini cocok untuk skenario di mana Anda ingin menggunakan dan men-debug Terraform dengan cepat dan nyaman dengan biaya rendah.
Instal dan Konfigurasikan Terraform pada Mesin Lokal Anda. Metode ini cocok untuk skenario di mana kondisi jaringan buruk atau lingkungan pengembangan kustom digunakan.
Sumber daya yang diperlukan
alicloud_ess_scaling_group: membuat sebuah grup skala.
alicloud_ess_scaling_configuration: membuat sebuah konfigurasi skala.
alicloud_ess_scaling_rule: membuat sebuah aturan skala.
alicloud_vpc: membuat sebuah virtual private cloud (VPC).
alicloud_vswitch: membuat sebuah vSwitch dalam VPC.
alicloud_security_group: membuat sebuah grup keamanan.
alicloud_security_group_rule: membuat sebuah aturan grup keamanan.
Gunakan Terraform untuk membuat sumber daya Auto Scaling
Dalam contoh ini, Terraform digunakan untuk membuat sumber daya Auto Scaling seperti grup skala, konfigurasi skala, dan aturan skala.
Buat direktori kerja dan file bernama main.tf di bawah direktori tersebut. Kemudian, salin konten berikut ke file main.tf.
variable "region" { default = "cn-heyuan" } variable "instance_type" { default = "ecs.hfc7.xlarge" } variable "image_id" { default = "aliyun_2_1903_x64_20G_alibase_20210120.vhd" } variable "zone_id" { default = "cn-heyuan-b" } provider "alicloud" { region = var.region } # Buat sebuah VPC. resource "alicloud_vpc" "vpc" { vpc_name = "tf-test-vpc-wjt" cidr_block = "172.16.0.0/12" # Rencanakan blok CIDR privat untuk VPC. } # Buat sebuah vSwitch dalam VPC. resource "alicloud_vswitch" "vsw" { vpc_id = alicloud_vpc.vpc.id cidr_block = "172.16.0.0/21" # Rencanakan blok CIDR privat untuk vSwitch. zone_id=var.zone_id# Pilih zona untuk vSwitch. vswitch_name = "tf-test-vswitch-wjt" } # Buat sebuah grup keamanan. resource "alicloud_security_group" "security" { name = "tf_test_security" description = "New security group" vpc_id = alicloud_vpc.vpc.id } # Tambahkan aturan grup keamanan yang mengizinkan akses dari semua alamat ke grup keamanan. resource "alicloud_security_group_rule" "allow_all_tcp" { type = "ingress" ip_protocol = "tcp" nic_type = "intranet" policy = "accept" port_range = "1/65535" priority = 1 security_group_id = alicloud_security_group.security.id cidr_ip = "0.0.0.0/0" } # Dalam contoh ini, sebuah grup skala yang dapat berisi hingga 100 instance dibuat. resource "alicloud_ess_scaling_group" "group" { scaling_group_name = "tf_test_scalinggroup" min_size = 0 max_size = 100 vswitch_ids = [alicloud_vswitch.vsw.id] } # Dalam contoh ini, sebuah konfigurasi skala tipe ECS dibuat. resource "alicloud_ess_scaling_configuration" "configuration" { scaling_group_id = alicloud_ess_scaling_group.group.id instance_type = var.instance_type image_id = var.image_id security_group_id = alicloud_security_group.security.id scaling_configuration_name = "tf_test_scalingconfiguration" system_disk_category = "cloud_essd" spot_strategy = "SpotWithPriceLimit" active = true force_delete = true } # Buat sebuah aturan skala. resource "alicloud_ess_scaling_rule" "rule" { scaling_group_id = alicloud_ess_scaling_group.group.id adjustment_type = "QuantityChangeInCapacity" adjustment_value = 1 }Jalankan perintah berikut untuk menginisialisasi lingkungan runtime untuk Terraform:
terraform initJika informasi berikut dikembalikan, Terraform telah diinisialisasi:
Menginisialisasi backend... Menginisialisasi plugin penyedia... - Memeriksa plugin penyedia yang tersedia... - Mengunduh plugin untuk penyedia "alicloud" (hashicorp/alicloud) 1.90.1... ... Anda sekarang dapat mulai bekerja dengan Terraform. Coba jalankan "terraform plan" untuk melihat perubahan apa pun yang diperlukan untuk infrastruktur Anda. Semua perintah Terraform seharusnya sekarang berfungsi. Jika Anda pernah mengatur atau mengubah modul atau konfigurasi backend untuk Terraform, jalankan ulang perintah ini untuk menginisialisasi ulang direktori kerja Anda. Jika Anda lupa, perintah lain akan mendeteksinya dan mengingatkan Anda untuk melakukannya jika perlu.Buat rencana eksekusi dan pratinjau perubahan.
terraform planJalankan perintah berikut untuk membuat sumber daya:
terraform applySelama eksekusi perintah, masukkan
yessaat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai dijalankan. Jika informasi berikut dikembalikan, sumber daya Auto Scaling telah dibuat.Apakah Anda ingin melakukan tindakan ini? Terraform akan melakukan tindakan yang dijelaskan di atas. Hanya 'yes' yang akan diterima untuk menyetujui. Masukkan nilai: yes ... alicloud_security_group_rule.allow_all_tcp: Pembuatan selesai setelah 0 detik [id=sg-f8z1mes******:ingress:tcp:1/65535:intranet:0.0.0.0/0:accept:1] alicloud_vswitch.vsw: Pembuatan selesai setelah 3 detik [id=vsw-f8ztgc4******] alicloud_ess_scaling_group.group: Membuat... alicloud_ess_scaling_group.group: Pembuatan selesai setelah 2 detik [id=asg-f8z9mo******] ... Penerapan selesai! Sumber daya: 7 ditambahkan, 0 diubah, 0 dihapus.Verifikasi Hasil
Jalankan perintah terraform show
Jalankan perintah berikut untuk menanyakan detail sumber daya yang dibuat menggunakan Terraform:
terraform show
Masuk ke konsol Auto Scaling
Anda dapat masuk ke Konsol Auto Scaling untuk melihat grup skala yang dibuat.

Hapus sumber daya
Jika Anda tidak lagi memerlukan sumber daya yang dibuat atau dikelola menggunakan Terraform, jalankan perintah berikut untuk melepaskan sumber daya. Untuk informasi lebih lanjut, lihat Perintah Umum.
terraform destroyKode contoh lengkap
Anda dapat menjalankan kode contoh dengan satu klik. Jalankan Kode Contoh.