本文為您介紹如何通過Terraform創建伸縮組、伸縮配置、伸縮規則等彈性伸縮資源。
前提條件
在使用Terraform之前,請您確保完成以下操作:
- 您已擁有一個阿里云賬號和訪問密鑰(AccessKey)。請在阿里云控制臺的AccessKey管理頁面上查看您的AccessKey。如需創建AccessKey,具體操作,請參見創建AccessKey。
- 您已安裝并配置了Terraform。如需安裝Terraform,具體操作,請參見在本地安裝和配置Terraform和在Cloud Shell中使用Terraform。
背景信息
- Terraform是一種開源工具,用于安全高效地預覽,配置和管理云基礎架構和資源。主要體現在可以對基礎設施進行編碼,利用代碼來進行資源管理(例如創建、刪除、查找或修改資源)。更多信息,請參見Terraform概述。
- Terraform命令包括terraform apply和terraform show等資源管理命令、狀態管理命令和其他命令,更多信息,請參見資源管理常用命令。其中:
- terraform apply:該命令用于實際資源的新建和變更操作,為了安全起見,在命令運行過程中增加了人工交互的過程,即需要手動確認是否繼續。
- terraform show:該命令用于展示當前state文件中所有被管理的資源及其所有屬性值。
操作步驟
本操作以通過Terraform創建伸縮組、伸縮配置和伸縮規則為例,管理其他彈性伸縮資源請參考該方法進行。
操作示例
通過Terraform創建伸縮組、伸縮配置以及伸縮規則的操作示例如下所示:
resource "alicloud_vpc" "vpc" {
name = "tf_test_vpc"
cidr_block = "172.16.0.0/12"
}
resource "alicloud_vswitch" "vsw" {
vpc_id = alicloud_vpc.vpc.id
cidr_block = "172.16.0.0/21"
availability_zone = "cn-hangzhou-b"
}
resource "alicloud_security_group" "security" {
name = "tf_test_security"
vpc_id = alicloud_vpc.vpc.id
}
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"
}
resource "alicloud_ess_scaling_group" "group" {
scaling_group_name="tf_test_scalinggroup"
min_size=0
max_size=100
vswitch_ids=[alicloud_vswitch.vsw.id]
}
resource "alicloud_ess_scaling_configuration" "configuration" {
scaling_group_id = alicloud_ess_scaling_group.group.id
instance_type = "ecs.hfc7.xlarge"
image_id = "aliyun_2_1903_x64_20G_alibase_20210120.vhd"
security_group_id = alicloud_security_group.security.id
scaling_configuration_name = "tf_test_scalingconfiguration"
system_disk_category = "cloud_essd"
spot_strategy = "SpotWithPriceLimit"
force_delete = true
}
resource "alicloud_ess_scaling_rule" "rule" {
scaling_group_id = alicloud_ess_scaling_group.group.id
adjustment_type = "QuantityChangeInCapacity"
adjustment_value = 1
}