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

Resource Orchestration Service:ALIYUN::SLB::Listener

最終更新日:Apr 08, 2025

ALIYUN::SLB::Listener は、Server Load Balancer (SLB) リスナーを作成するために使用されます。

構文

 {
  "Type": "ALIYUN::SLB::Listener",
  "Properties": {
    "MasterSlaveServerGroupId": String, // プライマリ/セカンダリサーバーグループの ID
    "AclStatus": String, // アクセス制御を有効にするかどうかを指定します
    "Protocol": String, // ネットワークプロトコル
    "AclId": String, // リスナーに関連付けるアクセス制御リスト (ACL) の ID
    "ServerCertificateId": String, // サーバー証明書の ID
    "HealthCheck": Map, // ヘルスチェック構成
    "RequestTimeout": Integer, // リクエストのタイムアウト期間
    "IdleTimeout": Integer, // アイドル接続のタイムアウト期間
    "ListenerPort": Integer, // SLB インスタンスのフロントエンドポート
    "HttpConfig": Map, // HTTP 構成
    "Bandwidth": Integer, // リスナーの最大帯域幅
    "AclType": String, // ACL タイプ
    "BackendServerPort": Integer, // SLB インスタンスのバックエンドポート
    "Scheduler": String, // ルーティングアルゴリズム
    "LoadBalancerId": String, // SLB インスタンスの ID
    "CACertificateId": String, // 認証局 (CA) 証明書の ID
    "Persistence": Map, // 永続化の構成
    "VServerGroupId": String, // サーバーグループの ID
    "Description": String, // リスナーの説明
    "PortRange": List, // リスナーのポート範囲
    "StartListener": Boolean, // リスナーを起動するかどうかを指定します
    "EnableHttp2": String, // HTTP/2 を有効にするかどうかを指定します
    "Gzip": String, // 特定の種類のファイルを圧縮するために Gzip 圧縮を有効にするかどうかを指定します
    "TLSCipherPolicy": String, // トランスポート層セキュリティ (TLS) ポリシー
    "AclIds": List, // リスナーに関連付ける ACL の ID
    "ProxyProtocolV2Enabled": Boolean, // ソースクライアント IP アドレスをバックエンドサーバーに渡すために Proxy プロトコルを使用するかどうかを指定します
    "ConnectionDrainTimeout": Integer, // 接続ドレインのタイムアウト期間
    "Tags": List, // タグ
    "FullNatEnabled": Boolean, // フル NAT モードを有効にして、バックエンドサーバーをアクセス用のクライアントとして使用するかどう かを指定します。
    "ConnectionDrain": String // 接続ドレインを有効にするかどうかを指定します
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

MasterSlaveServerGroupId

String

いいえ

いいえ

プライマリ/セカンダリサーバーグループの ID。

なし。

AclStatus

String

いいえ

はい

アクセス制御を有効にするかどうかを指定します。

有効な値:

  • on (デフォルト)

  • off

EnableHttp2

String

いいえ

はい

HTTP/2 を有効にするかどうかを指定します。

有効な値:

  • on

  • off

AclId

String

いいえ

はい

リスナーに関連付けるアクセス制御リスト (ACL) の ID。

AclStatus が on に設定されている場合は、このプロパティを指定する必要があります。

AclType

String

いいえ

はい

ACL タイプ。

有効な値:

  • white: ホワイトリスト。 ACL 内の IP アドレスまたは CIDR ブロックからのリクエストのみが転送されます。 特定の IP アドレスからのみアプリケーションへのアクセスを許可する場合に、ホワイトリストを使用できます。 ホワイトリストが正しく構成されていない場合は、リスクが発生する可能性があります。 ホワイトリストを構成した後、ホワイトリストに追加された IP アドレスのみがリスナーにアクセスできます。 ホワイトリストを有効にしても、ホワイトリストに IP アドレスを追加しないと、リスナーはリクエストを転送しません。

  • black: ブラックリスト。 ACL 内の IP アドレスまたは CIDR ブロックからのすべてのリクエストは転送されません。 特定の IP アドレスからのみアプリケーションへのアクセスを拒否する場合に、ブラックリストを使用できます。 ブラックリストを有効にしても、ブラックリストに IP アドレスを追加しないと、リスナーはすべてのリクエストを転送します。 AclStatus が on に設定されている場合は、このプロパティを指定する必要があります。

Protocol

String

はい

いいえ

ネットワークプロトコル。

有効な値:

  • http

  • https

  • tcp

  • udp

ListenerPort

Integer

はい

いいえ

SLB インスタンスのフロントエンドポート。

有効な値: 1 ~ 65535。

Bandwidth

Integer

はい

はい

リスナーの最大帯域幅。

有効な値: 1 ~ 1000 および -1。

単位: Mbit/s。

このプロパティの値は、次の要件を満たしている必要があります。

  • 帯域幅課金のインターネット向け SLB インスタンスの場合、このプロパティを -1 に設定することはできません。 SLB インスタンスのすべてのリスナーに指定する最大帯域幅値の合計は、SLB インスタンスの帯域幅値を超えることはできません。

  • トラフィック課金のインターネット向け SLB インスタンスの場合、このプロパティを -1 に設定できます。 値 -1 は、最大帯域幅制限がないことを指定します。

BackendServerPort

Integer

いいえ

いいえ

SLB インスタンスのバックエンドポート。

有効な値: 1 ~ 65535。

FullNatEnabled

Boolean

いいえ

はい

フル NAT モードを有効にして、バックエンドサーバーをアクセス用のクライアントとして使用するかどう かを指定します。

デフォルト値: false。

このプロパティは、TCP または UDP リスナーに対してのみ有効です。

LoadBalancerId

String

はい

いいえ

SLB インスタンスの ID。

なし。

HealthCheck

Map

いいえ

はい

ヘルスチェック構成。

詳細については、「HealthCheck プロパティ」をご参照ください。

Persistence

Map

いいえ

はい

永続化の構成。

詳細については、「Persistence プロパティ」をご参照ください。

Scheduler

String

いいえ

いいえ

ルーティングアルゴリズム。

有効な値:

  • wrr (デフォルト): 重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受信します。

  • wlc: リクエストはバックエンドサーバーに順番に転送されます。

CACertificateId

String

いいえ

いいえ

認証局 (CA) 証明書の ID。

このプロパティは、Protocol が https に設定されている場合にのみ有効です。

ServerCertificateId

String

いいえ

はい

サーバー証明書の ID。

このプロパティは、Protocol が https に設定されている場合にのみ指定する必要があります。

VServerGroupId

String

いいえ

はい

サーバーグループの ID。

なし。

RequestTimeout

Integer

いいえ

いいえ

リクエストのタイムアウト期間。

有効な値: 1 ~ 180。

単位: 秒。

IdleTimeout

Integer

いいえ

いいえ

アイドル接続のタイムアウト期間。

有効な値: 1 ~ 60。

単位: 秒。

HttpConfig

Map

いいえ

いいえ

HTTP 構成。

詳細については、「HttpConfig プロパティ」をご参照ください。

Description

String

いいえ

いいえ

リスナーの説明。

説明は 1 ~ 80 文字で、文字、数字、ハイフン (-)、スラッシュ (/)、ピリオド (.)、アンダースコア (_) を使用できます。

PortRange

List

いいえ

いいえ

リスナーのポート範囲。

すべてのポートを有効にする必要があります。 すべてのポートを有効にするには、StartPort を 1 に、EndPort を 65535 に設定します。

詳細については、「PortRange プロパティ」をご参照ください。

StartListener

Boolean

いいえ

いいえ

リスナーを起動するかどうかを指定します。

有効な値:

  • true (デフォルト)

  • false

Gzip

String

いいえ

はい

特定の種類のファイルを圧縮するために Gzip 圧縮を有効にするかどうかを指定します。

有効な値:

  • true (デフォルト)

  • false

TLSCipherPolicy

String

いいえ

はい

トランスポート層セキュリティ (TLS) ポリシー。

TLS ポリシーには、HTTPS で使用できる TLS プロトコルバージョンと暗号スイートが含まれています。

説明

このプロパティは、Protocol が https に設定されている場合に有効になります。

AclIds

List

いいえ

はい

リスナーに関連付ける ACL の ID。

AclStatus が on に設定されている場合は、このプロパティを指定する必要があります。 AclIds プロパティは、AclId プロパティよりも優先されます。

ProxyProtocolV2Enabled

Boolean

いいえ

はい

ソースクライアント IP アドレスをバックエンドサーバーに渡すために Proxy プロトコルを使用するかどうかを指定します。

有効な値:

  • true

  • false

ConnectionDrainTimeout

Integer

いいえ

はい

接続ドレインのタイムアウト期間。

単位: 秒。

有効な値: 10 ~ 900

Tags

List

いいえ

はい

タグ。

詳細については、「Tags プロパティ」をご参照ください。

ConnectionDrain

String

いいえ

はい

接続ドレインを有効にするかどうかを指定します。

有効な値:

  • on

  • off

HealthCheck 構文

"HealthCheck": {
  "Domain": String, // ヘルスチェックに使用するドメイン名
  "Interval": Integer, // 2 回の連続したヘルスチェックの間隔
  "URI": String, // ヘルスチェックに使用する Uniform Resource Identifier (URI)
  "HttpCode": String, // HTTP ステータスコード
  "HealthyThreshold": Integer, // バックエンドサーバーが正常であるかどうかを判断するために使用されるしきい値。異常なバックエンドサーバーが正常と宣言されるまでに連続してヘルスチェックに合格する必要がある回数。
  "HealthCheckType": String, // ヘルスチェックタイプ
  "Timeout": Integer, // ヘルスチェック応答の最大タイムアウト期間
  "UnhealthyThreshold": Integer, // バックエンドサーバーが異常であるかどうかを判断するために使用されるしきい値。正常なバックエンドサーバーが異常と宣言されるまでに連続してヘルスチェックに失敗する必要がある回数。
  "Port": Integer, // ヘルスチェックに使用するポート
  "Switch": String, // ヘルスチェック機能を有効にするかどうかを指定します
  "HealthCheckMethod": String, // ヘルスチェックを実行するために使用するメソッド
  "Req": String, // UDP リスナーヘルスチェックのリクエスト文字列
  "Exp": String // UDP リスナーヘルスチェックのレスポンス文字列
}

HealthCheck プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Domain

String

いいえ

いいえ

ヘルスチェックに使用するドメイン名。

有効な値:

  • $_ip.

  • カスタム文字列: 指定するカスタム文字列は 1 ~ 80 文字で、文字、数字、ハイフン (-)、ピリオド (.) を使用できます。

  • Null.

説明

このプロパティを $_ip または Null に設定すると、SLB は各バックエンドサーバーのプライベート IP アドレスをドメイン名として使用してヘルスチェックを実行します。

Interval

Integer

いいえ

いいえ

2 回の連続したヘルスチェックの間隔。

有効な値: 1 ~ 5。

単位: 秒。

URI

String

いいえ

いいえ

ヘルスチェックに使用する Uniform Resource Identifier (URI)。

URI は 1 ~ 80 文字で、スラッシュ (/) で始まる必要があります。 文字、数字、および次の特殊文字を使用できます: - / . % ? # &

HttpCode

String

いいえ

いいえ

HTTP ステータスコード。

有効な値:

  • http_2xx (デフォルト)

  • http_3xx

  • http_4xx

  • http_5xx

複数の HTTP ステータスコードはコンマ (,) で区切ります。

HealthyThreshold

Integer

いいえ

いいえ

バックエンドサーバーが正常であるかどうかを判断するために使用されるしきい値。 異常なバックエンドサーバーが正常と宣言されるまでに連続してヘルスチェックに合格する必要がある回数。

有効な値: 1 ~ 10。

HealthCheckType

String

いいえ

いいえ

ヘルスチェックタイプ。

有効な値:

  • tcp

  • http

Timeout

Integer

いいえ

いいえ

ヘルスチェック応答の最大タイムアウト期間。

有効な値: 1 ~ 50。

単位: 秒。

説明

Timeout の値が Interval の値よりも小さい場合、Timeout は有効になりません。 この場合、Interval の値が最大タイムアウト期間を指定します。

UnhealthyThreshold

Integer

いいえ

いいえ

バックエンドサーバーが異常であるかどうかを判断するために使用されるしきい値。 正常なバックエンドサーバーが異常と宣言されるまでに連続してヘルスチェックに失敗する必要がある回数。

有効な値: 1 ~ 10。

Port

Integer

いいえ

いいえ

ヘルスチェックに使用するポート。

有効な値: 0 ~ 65535。

Switch

String

いいえ

いいえ

ヘルスチェック機能を有効にするかどうかを指定します。

有効な値:

  • on

  • off

説明

このプロパティは、Protocol が http または https に設定されている場合にのみ有効です。 Switch を空のままにすると、ヘルスチェック項目が既に構成されていない限り、ヘルスチェック機能はデフォルトで無効になります。

HealthCheckMethod

String

いいえ

いいえ

ヘルスチェックを実行するために使用するメソッド。

有効な値:

  • head

  • get

説明

このプロパティは、Protocol が https または http に設定され、Switch が on に設定されている場合に有効になります。

Req

String

いいえ

いいえ

UDP リスナーヘルスチェックのリクエスト文字列。

文字列は最大 64 文字で、文字と数字のみを含めることができます。

Exp

String

いいえ

いいえ

UDP リスナーヘルスチェックのレスポンス文字列。

文字列は最大 64 文字で、文字と数字のみを含めることができます。

Persistence 構文

"Persistence": {
  "PersistenceTimeout": Integer, // セッション維持のタイムアウト期間
  "CookieTimeout": Integer, // Cookie のタイムアウト期間
  "XForwardedFor": String, // クライアントの実際の IP アドレスを照会するために X-Forwarded-Fort ヘッダーを使用するかどうかを指定します
  "XForwardedFor_SLBID": String, // SLB インスタンスの ID を照会するために SLB-ID ヘッダーを使用するかどうかを指定します
  "XForwardedFor_proto": String, // SLB インスタンスのリスナープロトコルを照会するために X-Forwarded-Proto ヘッダーを使用するかどうかを指定します
  "XForwardedFor_SLBIP": String, // クライアントによってリクエストされた実際の IP アドレスを照会するために SLB-IP ヘッダーを使用するかどうかを指定します
  "Cookie": String, // サーバーに構成する Cookie
  "StickySession": String, // セッション維持を有効にするかどうかを指定します
  "StickySessionType": String, // Cookie を処理するために使用するメソッド
  "XForwardedFor_ClientSrcPort": String, // クライアントが SLB インスタンスにアクセスするために使用するポートを照会するために X-Forwarded-Client-srcport ヘッダーを使用するかどうかを指定します
  "XForwardedFor_SLBPORT": String // SLB インスタンスのリスナーポートを照会するために X-Forwarded-Port ヘッダーを使用するかどうかを指定します
}

Persistence プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

StickySession

String

いいえ

はい

セッション維持を有効にするかどうかを指定します。

有効な値:

  • on

  • off

    説明

    このプロパティは、Protocol が http または https に設定されている場合にのみ有効です。

PersistenceTimeout

Integer

いいえ

はい

セッション維持のタイムアウト期間。

有効な値: 0 ~ 1000。

デフォルト値: 0. 値 0 は、セッション維持が無効になっていることを指定します。

単位: 秒。

CookieTimeout

Integer

いいえ

はい

Cookie のタイムアウト期間。

有効な値: 1 ~ 86400。

単位: 秒。

説明

StickySession が on に設定され、StickySessionType が insert に設定されている場合は、このプロパティを指定する必要があります。

XForwardedFor

String

いいえ

はい

クライアントの実際の IP アドレスを照会するために X-Forwarded-Fort ヘッダーを使用するかどうかを指定します。

有効な値:

  • on

  • off (デフォルト)

XForwardedFor_proto

String

いいえ

はい

SLB インスタンスのリスナープロトコルを照会するために X-Forwarded-Proto ヘッダーを使用するかどうかを指定します。

有効な値:

  • on

  • off (デフォルト)

XForwardedFor_SLBID

String

いいえ

はい

SLB インスタンスの ID を照会するために SLB-ID ヘッダーを使用するかどうかを指定します。

有効な値:

  • on

  • off (デフォルト)

XForwardedFor_SLBIP

String

いいえ

はい

クライアントによってリクエストされた実際の IP アドレスを照会するために SLB-IP ヘッダーを使用するかどうかを指定します。

有効な値:

  • on

  • off (デフォルト)

Cookie

String

いいえ

はい

サーバーに構成する Cookie。

Cookie は 1 ~ 200 文字で、ドル記号 ($) で始めることはできません。 文字と数字を含めることができ、コンマ (,)、セミコロン (;)、スペースを含めることはできません。

説明

StickySession が on に設定され、StickySessionType が server に設定されている場合は、このプロパティを指定する必要があります。

StickySessionType

String

いいえ

はい

Cookie を処理するために使用するメソッド。

有効な値:

  • insert: Cookie を挿入します。

  • server: Cookie を書き直します。

説明

StickySession が on に設定されている場合は、このプロパティを指定する必要があります。

XForwardedFor_ClientSrcPort

String

いいえ

はい

クライアントが SLB インスタンスにアクセスするために使用するポートを照会するために X-Forwarded-Client-srcport ヘッダーを使用するかどうかを指定します。

有効な値:

  • on

  • off (デフォルト)

XForwardedFor_SLBPORT

String

いいえ

はい

SLB インスタンスのリスナーポートを照会するために X-Forwarded-Port ヘッダーを使用するかどうかを指定します。

有効な値:

  • on

  • off (デフォルト)

HttpConfig 構文

"HttpConfig": {
  "ForwardPort": Integer, // HTTP リクエストを HTTPS にリダイレクトするために使用するリスナーポート
  "ListenerForward": String // HTTP から HTTPS へのリダイレクトを有効にするかどうかを指定します
}

HttpConfig プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

ForwardPort

Integer

いいえ

いいえ

HTTP リクエストを HTTPS にリダイレクトするために使用するリスナーポート。

有効な値: 1 ~ 65535。

デフォルト値: 443。

ListenerForward

String

いいえ

いいえ

HTTP から HTTPS へのリダイレクトを有効にするかどうかを指定します。

有効な値:

  • on

  • off (デフォルト)

PortRange 構文

"PortRange": [
  {
    "StartPort": Integer, // 開始ポート
    "EndPort": Integer // 終了ポート
  }
]

PortRange プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

StartPort

Integer

はい

いいえ

開始ポート。

値を 1 に設定します。

EndPort

Integer

はい

いいえ

終了ポート。

値を 65535 に設定します。

Tags 構文

"Tags": [
  {
    "Key": String, // タグキー
    "Value": String // タグ値
  }
]

Tags プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Key

String

はい

いいえ

タグキー。

なし。

Value

String

いいえ

いいえ

タグ値。

なし。

戻り値

Fn::GetAtt

  • LoadBalancerId: SLB インスタンスの ID。

  • ListenerPortsAndProtocol: SLB インスタンスによって使用されるフロントエンドポートとプロトコル。

  • Arn: Alibaba Cloud リソースネーム (ARN)。

YAML 形式

ROSTemplateFormatVersion: '2015-09-01'
Description: Test SLB Listener
Parameters:
  SlbInstanceId:
    AssociationProperty: ALIYUN::SLB::Instance::InstanceId
    Type: String
Resources:
  Listener:
    Type: ALIYUN::SLB::Listener
    Properties:
      BackendServerPort: 8080
      Bandwidth: 50
      ListenerPort: 80
      LoadBalancerId:
        Ref: SlbInstanceId
      Protocol: https
      Scheduler: wrr
Outputs: {}

JSON 形式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test SLB Listener",
  "Parameters": {
    "SlbInstanceId": {
      "AssociationProperty": "ALIYUN::SLB::Instance::InstanceId",
      "Type": "String"
    }
  },
  "Resources": {
    "Listener": {
      "Type": "ALIYUN::SLB::Listener",
      "Properties": {
        "BackendServerPort": 8080,
        "Bandwidth": 50,
        "ListenerPort": 80,
        "LoadBalancerId": {
          "Ref": "SlbInstanceId"
        },
        "Protocol": "https",
        "Scheduler": "wrr"
      }
    }
  },
  "Outputs": {
  }
}