通過(guò)Terraform在專(zhuān)有網(wǎng)絡(luò)中創(chuàng)建負(fù)載均衡實(shí)例
本文介紹如何使用Terraform在專(zhuān)有網(wǎng)絡(luò)中創(chuàng)建負(fù)載均衡實(shí)例。
本教程所含示例代碼支持一鍵運(yùn)行,您可以直接運(yùn)行代碼。一鍵運(yùn)行
前提條件
在開(kāi)始之前,請(qǐng)您確保完成以下操作:
使用Terraform,您需要一個(gè)阿里云賬號(hào)和訪問(wèn)密鑰(AccessKey)。 請(qǐng)?jiān)诎⒗镌瓶刂婆_(tái)中的AccessKey管理頁(yè)面上創(chuàng)建和查看您的AccessKey。
已經(jīng)安裝并配置了Terraform,具體操作請(qǐng)參見(jiàn)在本地安裝和配置Terraform和在Cloud Shell中使用Terraform。
操作步驟
創(chuàng)建專(zhuān)有網(wǎng)絡(luò)和交換機(jī)。本示例中在cn-hangzhou-b區(qū)域創(chuàng)建了一個(gè)專(zhuān)有網(wǎng)絡(luò)和交換機(jī)。
創(chuàng)建terraform.tf文件,輸入以下內(nèi)容,并保存在當(dāng)前的執(zhí)行目錄中。
variable "region" { default = "cn-hangzhou" } provider "alicloud" { region = var.region } data "alicloud_zones" "default" { available_resource_creation = "VSwitch" } resource "alicloud_vpc" "main" { vpc_name = "alicloud" # 專(zhuān)有網(wǎng)絡(luò)地址塊 cidr_block = "10.1.0.0/21" } resource "alicloud_vswitch" "main" { vpc_id = alicloud_vpc.main.id # 交換機(jī)地址塊 cidr_block = "10.1.0.0/24" # 可用區(qū) zone_id = data.alicloud_zones.default.zones[0].id }
運(yùn)行terraform apply開(kāi)始創(chuàng)建資源。
運(yùn)行terraform show查看已創(chuàng)建的專(zhuān)有網(wǎng)絡(luò)和交換機(jī)。
創(chuàng)建負(fù)載均衡實(shí)例,并添加監(jiān)聽(tīng)。本示例中創(chuàng)建了一個(gè)預(yù)付費(fèi)的負(fù)載均衡實(shí)例,并添加了一個(gè)tcp監(jiān)聽(tīng)。
在terraform.tf文件中增加以下內(nèi)容:
resource "alicloud_slb_load_balancer" "instance" { load_balancer_name = "slb_worder" load_balancer_spec = "slb.s3.small" internet_charge_type = "PayByTraffic" address_type = "intranet" vswitch_id = alicloud_vswitch.main.id } resource "alicloud_slb_listener" "listener" { load_balancer_id = alicloud_slb_load_balancer.instance.id backend_port = "2111" frontend_port = "21" protocol = "tcp" bandwidth = "5" }
運(yùn)行terraform apply開(kāi)始創(chuàng)建。出現(xiàn)類(lèi)似下面的日志,說(shuō)明創(chuàng)建成功。
alicloud_slb_load_balancer.instance: Creating... alicloud_slb_load_balancer.instance: Still creating... [10s elapsed] alicloud_slb_load_balancer.instance: Creation complete after 10s [id=lb-bp13b3e2m9l8wjwh3y8px] alicloud_slb_listener.listener: Creating... alicloud_slb_listener.listener: Creation complete after 3s [id=lb-bp13b3e2m9l8wjwh3y8px:tcp:21] ...... Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
運(yùn)行terraform show查看已經(jīng)創(chuàng)建負(fù)載均衡實(shí)例。
操作樣例
當(dāng)前示例代碼支持一鍵運(yùn)行,您可以直接運(yùn)行代碼。一鍵運(yùn)行
variable "region" {
default = "cn-hangzhou"
}
provider "alicloud" {
region = var.region
}
data "alicloud_zones" "default" {
available_resource_creation = "VSwitch"
}
resource "alicloud_vpc" "main" {
vpc_name = "alicloud"
# 專(zhuān)有網(wǎng)絡(luò)地址塊
cidr_block = "10.1.0.0/21"
}
resource "alicloud_vswitch" "main" {
vpc_id = alicloud_vpc.main.id
# 交換機(jī)地址塊
cidr_block = "10.1.0.0/24"
# 可用區(qū)
zone_id = data.alicloud_zones.default.zones[0].id
}
resource "alicloud_slb_load_balancer" "instance" {
load_balancer_name = "slb_worder"
load_balancer_spec = "slb.s3.small"
internet_charge_type = "PayByTraffic"
address_type = "internet"
vswitch_id = alicloud_vswitch.main.id
}
resource "alicloud_slb_listener" "listener" {
load_balancer_id = alicloud_slb_load_balancer.instance.id
backend_port = "2111"
frontend_port = "21"
protocol = "tcp"
bandwidth = "5"
}