すべてのプロダクト
Search
ドキュメントセンター

Terraform:SLB インスタンスの管理

最終更新日:Jan 17, 2025

このトピックでは、Server Load Balancer (SLB) インスタンスを作成し、SLB インスタンスにリスナーを追加する方法について説明します。

前提条件

背景情報

このトピックでは、TCP、UDP、および HTTP リスナーで構成された slb_worder という名前のインターネット向けサブスクリプション SLB インスタンスを例として使用します。

手順

  1. SLB インスタンスを作成します。

    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 コマンドを実行して、SLB インスタンスを作成します。 次のようなログエントリが表示された場合、SLB インスタンスが作成されています。

      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 コマンドを実行して、作成された SLB インスタンスを表示します。

  2. SLB インスタンスにリスナーを追加します。 この例では、HTTP リスナー、UDP リスナー、および TCP リスナーが追加されます。

    1. listener.tf ファイルを作成し、次のコンテンツを入力して、現在の作業ディレクトリにファイルを保存します。

      説明

      Terraform は、ディレクトリ内のすべての .tf ファイルを自動的にロードします。 必要に応じて、構成情報を異なるファイルに書き込むことができます。

      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 コマンドを実行して、追加されたリスナーを表示します。