Terraform telah dipra-instal di Alibaba Cloud Shell, menyediakan lingkungan berbasis browser untuk menyediakan infrastruktur cloud Anda menggunakan Infrastructure as Code (IaC). Panduan ini memandu Anda melalui proses pembuatan instans Elastic Compute Service (ECS) menggunakan Terraform di Cloud Shell.
Anda dapat menjalankan kode contoh dalam tutorial ini dengan sekali klik. Jalankan kode di OpenAPI Explorer.
Prasyarat
Demi keamanan, gunakan pengguna Resource Access Management (RAM) dengan prinsip hak istimewa minimal. Buat kebijakan kustom dengan JSON berikut dan sambungkan ke pengguna RAM Anda. Kebijakan ini hanya memberikan izin yang diperlukan untuk tutorial ini. Untuk informasi selengkapnya, lihat Berikan izin kepada pengguna RAM.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudshell:StartSession",
"cloudshell:StopSession",
"cloudshell:GetSession",
"cloudshell:ListSessions",
"ecs:CreateInstance",
"ecs:RunInstances",
"ecs:StartInstance",
"ecs:StopInstance",
"ecs:RebootInstance",
"ecs:TerminateInstance",
"ecs:ModifyInstanceAttribute",
"ecs:DescribeInstances",
"ecs:AllocatePublicIpAddress",
"ecs:AssignPrivateIpAddresses",
"ecs:UnassignPrivateIpAddresses",
"ecs:ModifyInstanceVpcAttribute",
"ecs:ResetInstance",
"ecs:AttachKeyPair",
"ecs:DetachKeyPair",
"ecs:CreateSecurityGroup",
"ecs:DeleteSecurityGroup",
"ecs:AuthorizeSecurityGroup",
"ecs:RevokeSecurityGroup",
"ecs:CreateVpc",
"ecs:DeleteVpc",
"ecs:CreateVSwitch",
"ecs:DeleteVSwitch",
"ecs:CreateDisk",
"ecs:DeleteDisk",
"ecs:AttachDisk",
"ecs:DetachDisk",
"ecs:CreateSnapshot",
"ecs:DeleteSnapshot",
"ecs:CreateImage",
"ecs:DeleteImage"
],
"Resource": "*"
}
]
}Sumber daya yang digunakan
alicloud_vpc: Membuat virtual private cloud (VPC) untuk menyediakan lingkungan jaringan terisolasi.
alicloud_vswitch: Membuat vSwitch (subnet) di dalam VPC untuk menghubungkan sumber daya cloud.
alicloud_security_group: Membuat security group untuk bertindak sebagai firewall virtual bagi instans ECS Anda.
alicloud_instance: Menyediakan instans ECS untuk memberikan kapasitas komputasi.
alicloud_security_group_rule: Menentukan aturan untuk mengontrol lalu lintas inbound atau outbound untuk security group.
Prosedur
Mulai Cloud Shell
Anda dapat memulai Cloud Shell dengan dua cara:
Dari Konsol Manajemen Alibaba Cloud: Klik ikon Cloud Shell di bilah navigasi atas.

Sebagai aplikasi mandiri: Buka langsung https://shell.aliyun.com.
Saat Anda memulai Cloud Shell, CLI secara otomatis dikonfigurasi dengan kredensial berdasarkan identitas login Anda. Jangan ubah atau hapus file konfigurasi kredensial default.
Pertama kali Anda memulai Cloud Shell, sebuah instans mesin virtual (VM) disediakan untuk Anda, yang mungkin memerlukan beberapa saat. Sesi berikutnya akan dimulai lebih cepat.
Anda dapat membuka hingga lima jendela secara bersamaan. Semua sesi berbagi instans VM yang sama.
Buat sumber daya cloud
Buat file konfigurasi Terraform di Cloud Shell.
Jalankan perintah berikut untuk membuat direktori proyek dan file konfigurasi bernama
main.tf:mkdir terraform-project cd terraform-project touch main.tfGunakan editor teks seperti
vimuntuk menambahkan kode berikut ke filemain.tf. Konfigurasi ini menentukan sumber daya yang diperlukan: VPC, vSwitch, security group, dan instans ECS.provider "alicloud" { region = var.region_id } variable "region_id" { default = "cn-shanghai" } variable "available_disk_category" { default = "cloud_efficiency" } variable "available_resource_creation" { default = "VSwitch" } variable "vpc_name" { default = "tf_test_fofo" } variable "vpc_cidr_block" { default = "172.16.0.0/12" } variable "vswitch_cidr_block" { default = "172.16.0.0/21" } variable "security_group_name" { default = "default" } variable "instance_type" { default = "ecs.n4.large" } variable "image_id" { default = "ubuntu_18_04_64_20G_alibase_20190624.vhd" } variable "instance_name" { default = "test_fofo" } variable "internet_max_bandwidth_out" { default = 10 } variable "port_range" { default = "1/65535" } variable "priority" { default = 1 } variable "cidr_ip" { default = "0.0.0.0/0" } data "alicloud_zones" "default" { available_disk_category = var.available_disk_category available_resource_creation = var.available_resource_creation } resource "alicloud_vpc" "vpc" { vpc_name = var.vpc_name cidr_block = var.vpc_cidr_block } resource "alicloud_vswitch" "vsw" { vpc_id = alicloud_vpc.vpc.id cidr_block = var.vswitch_cidr_block zone_id = data.alicloud_zones.default.zones[0].id } resource "alicloud_security_group" "default" { name = var.security_group_name vpc_id = alicloud_vpc.vpc.id } resource "alicloud_instance" "instance" { availability_zone = data.alicloud_zones.default.zones[0].id security_groups = [alicloud_security_group.default.id] instance_type = var.instance_type system_disk_category = var.available_disk_category image_id = var.image_id instance_name = var.instance_name vswitch_id = alicloud_vswitch.vsw.id internet_max_bandwidth_out = var.internet_max_bandwidth_out } resource "alicloud_security_group_rule" "allow_all_tcp" { type = "ingress" ip_protocol = "tcp" nic_type = "intranet" policy = "accept" port_range = var.port_range priority = var.priority security_group_id = alicloud_security_group.default.id cidr_ip = var.cidr_ip }Inisialisasi direktori kerja Terraform Anda.
terraform initOutput yang diharapkan:

Jalankan
terraform applyuntuk membuat instans ECS. Saat diminta, masukkanyesdan tekan Enter.terraform applyOutput yang diharapkan:

Verifikasi penerapan
Anda dapat memverifikasi bahwa sumber daya telah dibuat dengan dua cara:
Dari command line
Jalankan perintah terraform show untuk memeriksa status saat ini dan melihat atribut sumber daya yang telah Anda buat, seperti ID instans dan IP publik.
terraform show
Dari Konsol ECS
Buka Konsol ECS dan verifikasi bahwa instans telah dibuat dan sedang berjalan.

Bersihkan sumber daya
Untuk menghindari biaya di masa mendatang, lepaskan sumber daya yang telah Anda buat. Saat diminta, konfirmasi dengan mengetik yes.
terraform destroyUntuk informasi selengkapnya tentang perintah terraform destroy, lihat Perintah umum.
Kode contoh lengkap
Anda dapat menjalankan kode contoh dengan sekali klik. Jalankan kode di OpenAPI Explorer.
Kode contoh
Ganti versi Terraform
Cloud Shell menggunakan tfenv untuk mengelola beberapa versi Terraform yang terinstal. Anda dapat beralih dari versi default jika proyek Anda memerlukan versi yang berbeda. Versi Terraform default di Cloud Shell adalah 0.12.31.
Daftar versi Terraform yang tersedia di Cloud Shell.
tfenv listBeralih ke versi berbeda untuk sesi saat ini.
tfenv use <terraform_version>