通过Terraform在专有网络中创建负载均衡实例

更新时间:

本文介绍如何使用Terraform在专有网络中创建负载均衡实例。

说明

本教程所含示例代码支持一键运行,您可以直接运行代码。一键运行

前提条件

在开始之前,请您确保完成以下操作:

操作步骤

  1. 创建专有网络和交换机。本示例中在cn-hangzhou-b区域创建了一个专有网络和交换机。

    1. 创建terraform.tf文件,输入以下内容,并保存在当前的执行目录中。

      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"
        # 专有网络地址块
        cidr_block = "10.1.0.0/21"
      }
      
      resource "alicloud_vswitch" "main" {
        vpc_id = alicloud_vpc.main.id
        # 交换机地址块
        cidr_block = "10.1.0.0/24"
        # 可用区
        zone_id = data.alicloud_zones.default.zones[0].id
      }
    2. 运行terraform apply开始创建资源。

    3. 运行terraform show查看已创建的专有网络和交换机。

  2. 创建负载均衡实例,并添加监听。本示例中创建了一个预付费的负载均衡实例,并添加了一个tcp监听。

    1. terraform.tf文件中增加以下内容:

      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"
      }
    2. 运行terraform apply开始创建。出现类似下面的日志,说明创建成功。

      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.
    3. 运行terraform show查看已经创建负载均衡实例。

操作样例

说明

当前示例代码支持一键运行,您可以直接运行代码。一键运行

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"
  # 专有网络地址块
  cidr_block = "10.1.0.0/21"
}

resource "alicloud_vswitch" "main" {
  vpc_id = alicloud_vpc.main.id
  # 交换机地址块
  cidr_block = "10.1.0.0/24"
  # 可用区
  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"
}