Topik ini menjelaskan cara menggunakan Terraform untuk membuat kluster Elastic Compute Service (ECS), melakukan penskalaan keluar, menerapkan aplikasi, mengikat aplikasi ke instance Classic Load Balancer (CLB), serta membuat kelompok aplikasi.
Anda dapat menjalankan kode contoh dalam topik ini dengan beberapa klik. Untuk informasi lebih lanjut, kunjungi Terraform Explorer.
Prasyarat
Layanan berikut telah diaktifkan:
Enterprise Distributed Application Service (EDAS): Untuk informasi tentang cara mengaktifkan layanan ini, lihat Aktifkan EDAS.
CLB: Untuk informasi lebih lanjut, lihat Penagihan CLB.
ECS: Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan.
Pengguna Resource Access Management (RAM) dengan izin minimum yang diperlukan digunakan untuk melaksanakan operasi dalam topik ini. Ini meminimalkan risiko kebocoran Pasangan Kunci Akses akun Alibaba Cloud Anda. Untuk informasi tentang cara menambahkan Kebijakan yang berisi izin minimum yang diperlukan ke Pengguna RAM, lihat Buat Pengguna RAM dan Berikan Izin kepada Pengguna RAM. Dalam contoh ini, kebijakan berikut digunakan:
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "edas:CreateCluster", "edas:ReadCluster", "edas:DeleteCluster", "edas:ListResourceGroup", "edas:ListServiceGroups", "edas:ListSwimmingLaneGroup", "edas:ReadApplication", "edas:ListSlb", "edas:DeleteApplication" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecs:CreateSecurityGroup", "ecs:ModifySecurityGroupPolicy", "ecs:DescribeSecurityGroups", "ecs:ListTagResources", "ecs:DeleteSecurityGroup", "ecs:DescribeSecurityGroupAttribute", "ecs:RunInstances", "ecs:DescribeInstances", "ecs:DescribeUserData", "ecs:DescribeInstanceRamRole", "ecs:DescribeInstanceAttribute", "ecs:DescribeNetworkInterfaces", "ecs:DescribeInstanceMaintenanceAttributes", "ecs:DescribeDisks", "ecs:DeleteInstance" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "edas:ManageCluster", "edas:SynchronizeResource", "edas:CreateApplication", "edas:ManageApplication", "edas:QueryMigrateEcuList", "edas:ReadApplication" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "slb:CreateLoadBalancer", "slb:DescribeLoadBalancerAttribute", "slb:ListTagResources", "slb:DeleteLoadBalancer" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "vpc:CreateVpc", "vpc:DeleteVpc", "vpc:CreateVSwitch", "vpc:DeleteVSwitch" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "vpc:DescribeVpcAttribute", "vpc:DescribeRouteTableList", "vpc:DescribeVSwitchAttributes" ], "Resource": "*" }, { "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" } ] }Lingkungan runtime untuk Terraform disiapkan 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 menginstalnya. Untuk informasi lebih lanjut, lihat Gunakan Terraform di Terraform Explorer. 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 menjalankan perintah Terraform di Cloud Shell. Untuk informasi lebih lanjut, lihat Gunakan 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. Untuk informasi lebih lanjut, lihat Instal dan Konfigurasikan Terraform.
Anda akan dikenakan biaya untuk sumber daya tertentu. Jika Anda tidak lagi memerlukan sumber daya tersebut, Anda harus melepaskan atau berhenti berlangganan dari sumber daya tersebut sesegera mungkin.
Sumber daya yang digunakan
alicloud_vpc: Menyediakan virtual private cloud (VPC).
alicloud_security_group: Menyediakan grup keamanan.
alicloud_vswitch: Menyediakan vSwitch.
alicloud_instance: Menyediakan instance ECS.
alicloud_edas_cluster: Menyediakan kluster ECS.
alicloud_edas_instance_cluster_attachment: Menambahkan instance ECS ke kluster.
alicloud_edas_application: Membuat aplikasi ECS di EDAS.
alicloud_edas_deploy_group: Membuat kelompok aplikasi.
alicloud_edas_application_scale: Menskalakan aplikasi.
alicloud_edas_application_deployment: Menerapkan aplikasi.
alicloud_slb_load_balancer: Menyediakan instance CLB.
alicloud_edas_slb_attachment: Mengikat aplikasi ke instance CLB.
Langkah 1: Buat instance ECS
Buat direktori kerja dan file konfigurasi bernama main.tf di direktori tersebut. Kode berikut digunakan untuk membuat instance ECS, serta VPC, grup keamanan, dan vSwitch yang diperlukan untuk membuat instance ECS. Salin kode berikut ke file konfigurasi main.tf:
variable "region" { default = "cn-shanghai" } variable "instance_type" { type = string default = "ecs.e-c1m1.large" } variable "vpc_cidr_block" { default = "172.16.0.0/16" } variable "vsw_cidr_block" { default = "172.16.0.0/24" } # Unduh paket demo dari halaman unduhan resmi. variable "war_url" { type = string default = "http://edas-sz.oss-cn-shenzhen.aliyuncs.com/prod/demo/SPRING_CLOUD_CONSUMER.jar" } provider "alicloud" { region = var.region } data "alicloud_zones" "default" { available_instance_type = var.instance_type available_resource_creation = "VSwitch" available_disk_category = "cloud_essd" } # Tentukan bilangan acak. resource "random_integer" "default" { min = 10000 max = 99999 } # Buat VPC. resource "alicloud_vpc" "vpc" { vpc_name = "vpc-test_${random_integer.default.result}" cidr_block = var.vpc_cidr_block } # Buat grup keamanan. resource "alicloud_security_group" "group" { name = "test_${random_integer.default.result}" vpc_id = alicloud_vpc.vpc.id } # Buat vSwitch. resource "alicloud_vswitch" "vswitch" { vpc_id = alicloud_vpc.vpc.id cidr_block = var.vsw_cidr_block zone_id = data.alicloud_zones.default.zones[0].id vswitch_name = "vswitch-test-${random_integer.default.result}" } # Buat instance ECS. resource "alicloud_instance" "instance" { availability_zone = data.alicloud_zones.default.zones[0].id security_groups = alicloud_security_group.group.*.id instance_type = var.instance_type system_disk_category = "cloud_essd" system_disk_name = "test_foo_system_disk_${random_integer.default.result}" system_disk_description = "test_foo_system_disk_description" image_id = "aliyun_2_1903_x64_20G_alibase_20240628.vhd" instance_name = "test_ecs_${random_integer.default.result}" vswitch_id = alicloud_vswitch.vswitch.id internet_max_bandwidth_out = 10 password = "Terraform@Example" } # Setelah instance ECS dibuat, tunggu hingga diinisialisasi. Waktu tunggu biasanya tidak lebih dari 60 detik. resource "time_sleep" "example" { depends_on = [alicloud_instance.instance] create_duration = "60s" }Jalankan perintah berikut untuk menginisialisasi lingkungan runtime Terraform:
terraform initJika informasi berikut dikembalikan, Terraform telah diinisialisasi.
Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.Jalankan perintah berikut untuk mengeksekusi kode:
terraform applySelama eksekusi, masukkan
yessaat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai. Jika informasi berikut muncul, kode telah berhasil dieksekusi.You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes Apply complete! Resources: 6 added, 0 changed, 0 destroyed.Verifikasi hasilnya.
Jalankan perintah terraform show
Jalankan perintah berikut di direktori kerja untuk menanyakan detail instance ECS yang dibuat menggunakan Terraform:
terraform show
Masuk ke Konsol ECS
Masuk ke Konsol ECS. Di panel navigasi di sebelah kiri, pilih . Di bilah navigasi atas, pilih wilayah tempat instance ECS dibuat. Dalam contoh ini, pilih China (Shanghai) untuk melihat instance ECS yang telah dibuat.

Langkah 2: Buat kluster ECS dan tambahkan instance ECS ke kluster
Tambahkan kode berikut ke file
main.tf.# Buat kluster ECS. resource "alicloud_edas_cluster" "cluster" { cluster_name = "tf-edas-${random_integer.default.result}" cluster_type = "2" network_mode = "2" logical_region_id = var.region vpc_id = alicloud_vpc.vpc.id } # Tambahkan instance ECS ke kluster ECS. resource "alicloud_edas_instance_cluster_attachment" "default" { depends_on = [time_sleep.example] cluster_id = alicloud_edas_cluster.cluster.id instance_ids = [alicloud_instance.instance.id] }Buat rencana eksekusi dan pratinjau perubahan.
terraform planJalankan perintah berikut untuk mengeksekusi kode:
terraform applySelama eksekusi, masukkan
yessaat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai. Jika informasi berikut muncul, kode telah berhasil dieksekusi.Apply complete! Resources: 2 added, 0 changed, 0 destroyed.Verifikasi hasilnya.
Jalankan perintah terraform show
Jalankan perintah berikut di direktori kerja untuk menanyakan detail kluster ECS yang dibuat menggunakan Terraform:
terraform show
Masuk ke Konsol EDAS
Masuk ke Konsol EDAS. Di panel navigasi di sebelah kiri, pilih . Di bilah navigasi atas, pilih wilayah tempat kluster ECS dibuat. Dalam contoh ini, pilih China (Shanghai) untuk melihat kluster ECS yang telah dibuat.

Klik ID kluster ECS untuk melihat detail kluster.

Langkah 3: Buat aplikasi dan kelompok aplikasi
Tambahkan kode berikut ke file
main.tf.# Buat aplikasi. resource "alicloud_edas_application" "app" { application_name = "tf-test-app-${random_integer.default.result}" cluster_id = alicloud_edas_cluster.cluster.id package_type = "JAR" } # Buat kelompok aplikasi. resource "alicloud_edas_deploy_group" "this" { app_id = alicloud_edas_application.app.id group_name = "tf-test-group-${random_integer.default.result}" }Buat rencana eksekusi dan pratinjau perubahan.
terraform planJalankan perintah berikut untuk mengeksekusi kode:
terraform applySelama eksekusi, masukkan
yessaat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai. Jika informasi berikut muncul, kode telah berhasil dieksekusi.Apply complete! Resources: 2 added, 0 changed, 0 destroyed.Verifikasi hasilnya.
Jalankan perintah terraform show
Jalankan perintah berikut di direktori kerja untuk menanyakan detail aplikasi dan kelompok aplikasi yang dibuat menggunakan Terraform:
terraform show
Masuk ke Konsol EDAS
Masuk ke Konsol EDAS. Di panel navigasi di sebelah kiri, pilih . Di bilah navigasi atas, pilih wilayah tempat aplikasi dibuat. Dalam contoh ini, pilih China (Shanghai) untuk melihat aplikasi yang telah dibuat.

Klik nama aplikasi. Di halaman yang muncul, klik tab Instance Information untuk melihat kelompok aplikasi tempat aplikasi tersebut termasuk.

Langkah 4: Skalakan dan terapkan aplikasi
Tambahkan kode berikut ke file
main.tf.# Dapatkan ID kelompok aplikasi. locals { parts = split(":", alicloud_edas_deploy_group.this.id) group_id = local.parts[2] } # Skalakan aplikasi. resource "alicloud_edas_application_scale" "default" { app_id = alicloud_edas_application.app.id deploy_group = local.group_id ecu_info = [alicloud_edas_instance_cluster_attachment.default.ecu_map[alicloud_instance.instance.id]] } # Terapkan aplikasi. resource "alicloud_edas_application_deployment" "default" { depends_on = [alicloud_edas_application_scale.default, alicloud_edas_instance_cluster_attachment.default] app_id = alicloud_edas_application.app.id group_id = local.group_id war_url = var.war_url } # Setelah aplikasi diterapkan, tunggu hingga dimulai. Waktu tunggu biasanya tidak lebih dari 60 detik. resource "time_sleep" "example2" { depends_on = [alicloud_edas_application_deployment.default] create_duration = "60s" }Buat rencana eksekusi dan pratinjau perubahan.
terraform planJalankan perintah berikut untuk mengeksekusi kode:
terraform applySelama eksekusi, masukkan
yessaat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai. Jika informasi berikut muncul, kode telah berhasil dieksekusi.Apply complete! Resources: 3 added, 0 changed, 0 destroyed.Verifikasi hasilnya.
Jalankan perintah terraform show
Jalankan perintah berikut di direktori kerja untuk menanyakan detail aplikasi yang dibuat menggunakan Terraform:
terraform show
Masuk ke Konsol EDAS
Masuk ke Konsol EDAS. Di panel navigasi di sebelah kiri, pilih . Di bilah navigasi atas, pilih wilayah tempat aplikasi dibuat. Dalam contoh ini, pilih China (Shanghai) untuk melihat aplikasi yang telah dibuat. Klik nama aplikasi. Di halaman yang muncul, klik tab Instance Information untuk melihat informasi penerapan aplikasi.

Langkah 5: Buat instance CLB dan ikat ke aplikasi
Tambahkan kode berikut ke file
main.tf.# Buat instance CLB. resource "alicloud_slb_load_balancer" "default" { load_balancer_name = "tf-test-slb-${random_integer.default.result}" vswitch_id = alicloud_vswitch.vswitch.id load_balancer_spec = "slb.s2.small" address_type = "intranet" } # Ikat instance CLB ke aplikasi. resource "alicloud_edas_slb_attachment" "this" { depends_on = [time_sleep.example2] app_id = alicloud_edas_application.app.id slb_id = alicloud_slb_load_balancer.default.id slb_ip = alicloud_slb_load_balancer.default.address type = alicloud_slb_load_balancer.default.address_type }Buat rencana eksekusi dan pratinjau perubahan.
terraform planJalankan perintah berikut untuk mengeksekusi kode:
terraform applySelama eksekusi, masukkan
yessaat diminta dan tekan tombol Enter. Tunggu hingga perintah selesai. Jika informasi berikut muncul, kode telah berhasil dieksekusi.Apply complete! Resources: 2 added, 0 changed, 0 destroyed.Verifikasi hasilnya.
Jalankan perintah terraform show
Jalankan perintah berikut di direktori kerja untuk menanyakan detail instance CLB yang dibuat menggunakan Terraform:
terraform show
Masuk ke Konsol EDAS
Masuk ke Konsol EDAS. Di panel navigasi di sebelah kiri, pilih . Di bilah navigasi atas, pilih wilayah tempat aplikasi dibuat. Dalam contoh ini, pilih China (Shanghai) untuk melihat aplikasi yang telah dibuat. Klik nama aplikasi. Di halaman yang muncul, klik tab Basic Information untuk melihat informasi dasar tentang aplikasi.

Pembersihan
Ketika Anda tidak lagi memerlukan sumber daya yang dibuat atau dikelola oleh Terraform di atas, jalankan perintah berikut untuk melepaskan sumber daya. Untuk informasi lebih lanjut tentang terraform destroy, lihat Perintah Umum.
terraform destroyContoh
Anda dapat menjalankan kode contoh dalam topik ini dengan beberapa klik. Untuk informasi lebih lanjut, kunjungi Terraform Explorer.
Kode contoh
Jika Anda ingin melihat contoh yang lebih lengkap, kunjungi direktori layanan terkait di GitHub.
Referensi
Untuk informasi lebih lanjut tentang Terraform, lihat Apa itu Terraform?
Untuk informasi lebih lanjut tentang CLB, lihat Apa itu CLB?.