全部產品
Search
文件中心

Terraform:通過Terraform管理負載平衡服務

更新時間:Jun 30, 2024

本文介紹如何使用Terraform建立一個Server Load Balancer執行個體,並為其添加監聽。

前提條件

在開始之前,請您確保完成以下操作:

背景資訊

本文以建立一個名為slb_worder的公網執行個體,並為它配置TCP、UDP和HTTP監聽為例。

操作步驟

  1. 建立一個Server Load Balancer執行個體。

    1. 建立terraform.tf檔案,輸入以下內容,並儲存在當前的執行目錄中。

      說明

      需要為每個Terraform專案建立一個獨立的執行目錄。在初始化配置之前至少需要有1個.tf檔案。

      resource "alicloud_slb_load_balancer" "instance" {
        load_balancer_name   = "slb_worder"
        load_balancer_spec   = "slb.s3.small"
        internet_charge_type = "PayByTraffic"
        address_type         = "internet"
      }
    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 14s [id=lb-gw89kh14ra0htarr1ub8n]
      ......
      Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    3. 運行terraform show查看已建立的Server Load Balancer執行個體。

  2. 添加監聽。以下樣本添加了HTTP、UDP和HTTP三種協議的監聽。

    1. 建立listener.tf檔案,輸入以下內容,並儲存在當前的執行目錄中。

      說明

      在該目錄下所有*.tf 檔案都會被terraform自動載入。因此,使用者可以按照實際用途將配置資訊寫入不同的檔案中。

      resource "alicloud_slb_listener" "tcp" {
        load_balancer_id          = alicloud_slb_load_balancer.instance.id
        backend_port              = "22"
        frontend_port             = "22"
        protocol                  = "tcp"
        bandwidth                 = "10"
        health_check_type         = "tcp"
        persistence_timeout       = 3600
        healthy_threshold         = 8
        unhealthy_threshold       = 8
        health_check_timeout      = 8
        health_check_interval     = 5
        health_check_http_code    = "http_2xx"
        health_check_connect_port = 20
        health_check_uri          = "/console"
        established_timeout       = 600
      }
      
      resource "alicloud_slb_listener" "udp" {
        load_balancer_id          = alicloud_slb_load_balancer.instance.id
        backend_port              = 2001
        frontend_port             = 2001
        protocol                  = "udp"
        bandwidth                 = 10
        persistence_timeout       = 3600
        healthy_threshold         = 8
        unhealthy_threshold       = 8
        health_check_timeout      = 8
        health_check_interval     = 4
        health_check_connect_port = 20
      }
      
      resource "alicloud_slb_listener" "http" {
        load_balancer_id          = alicloud_slb_load_balancer.instance.id
        backend_port              = 80
        frontend_port             = 80
        protocol                  = "http"
        sticky_session            = "on"
        sticky_session_type       = "insert"
        cookie                    = "testslblistenercookie"
        cookie_timeout            = 86400
        health_check              = "on"
        health_check_uri          = "/cons"
        health_check_connect_port = 20
        healthy_threshold         = 8
        unhealthy_threshold       = 8
        health_check_timeout      = 8
        health_check_interval     = 5
        health_check_http_code    = "http_2xx,http_3xx"
        bandwidth                 = 10
        request_timeout           = 80
        idle_timeout              = 30
      }
    2. 運行terraform apply開始建立資源。出現類似下面的日誌,說明建立成功。

      alicloud_slb_listener.udp: Creating...
      alicloud_slb_listener.http: Creating...
      alicloud_slb_listener.tcp: Creating...
      alicloud_slb_listener.http: Creation complete after 5s [id=lb-gw89kh14ra0htarr1ub8n:http:80]
      ......
      Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
    3. 運行terraform show查看已建立的監聽。