このトピックでは、Server Load Balancer (SLB) インスタンスを作成し、SLB インスタンスにリスナーを追加する方法について説明します。
前提条件
Alibaba Cloud アカウントと AccessKey ペアが作成されていること。 AccessKey ペア ページで、AccessKey ペアを作成または表示できます。
Terraform がインストールおよび構成されていること。 詳細については、「ローカル PC に Terraform をインストールして構成する」および「Cloud Shell で Terraform を使用する」をご参照ください。
背景情報
このトピックでは、TCP、UDP、および HTTP リスナーで構成された slb_worder という名前のインターネット向けサブスクリプション SLB インスタンスを例として使用します。
手順
SLB インスタンスを作成します。
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" }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.terraform show コマンドを実行して、作成された SLB インスタンスを表示します。
SLB インスタンスにリスナーを追加します。 この例では、HTTP リスナー、UDP リスナー、および TCP リスナーが追加されます。
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 }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.terraform show コマンドを実行して、追加されたリスナーを表示します。