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

Resource Orchestration Service:ALIYUN::SAE::ApplicationScalingRule

最終更新日:Mar 17, 2025

ALIYUN::SAE::ApplicationScalingRule は、アプリケーションの自動スケーリングポリシーを作成するために使用されます。

構文

{
  "Type": "ALIYUN::SAE::ApplicationScalingRule",
  "Properties": {
    "AppId": String,
    "ScalingRuleName": String,
    "ScalingRuleType": String,
    "MinReadyInstances": Integer,
    "MinReadyInstanceRatio": Integer,
    "ScalingRuleMetric": Map,
    "ScalingRuleTimer": Map,
    "ScalingRuleEnable": Boolean
  }
}

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

AppId

String

はい

いいえ

アプリケーションの ID。

なし。

ScalingRuleName

String

はい

いいえ

自動スケーリングポリシーの名前。

名前はアプリケーション内で一意である必要があり、最大 32 文字まで使用できます。小文字で始まり、小文字、数字、およびハイフン (-) のみを含めることができます。

ScalingRuleType

String

はい

いいえ

自動スケーリングポリシーのタイプ。

有効な値:

  • timing: スケジュールされた自動スケーリングポリシー

  • metric: メトリックベースの自動スケーリングポリシー

  • mix: ハイブリッド自動スケーリングポリシー

説明

このプロパティを timing に設定する場合は、ScalingRuleTimer を指定する必要があります。

このプロパティを metric に設定する場合は、ScalingRuleMetric を指定する必要があります。

このプロパティを mix に設定する場合は、ScalingRuleMetric を指定する必要があり、ビジネス要件に基づいて ScalingRuleTimer を指定できます。

MinReadyInstances

Integer

いいえ

いいえ

使用可能なインスタンスの最小数。

有効な値:

  • 0: このプロパティを 0 に設定すると、アプリケーションのアップグレード時にビジネスの中断が発生します。

  • -1: このプロパティを -1 に設定すると、システムは次の式を使用して、推奨値を使用可能なインスタンスの最小数として計算します。推奨値 = 既存のインスタンス数 × 25%。計算結果は最も近い整数に切り上げられます。たとえば、既存のインスタンス数が 5 の場合、推奨値は次の式を使用して計算されます。5 × 25% = 1.25。この場合、使用可能なインスタンスの最小数は 2 です。

説明

業務継続性を確保するために、アプリケーションのデプロイメントおよびロールバック中は、使用可能なインスタンスの最小数を 1 以上にすることをお勧めします。

MinReadyInstanceRatio

Integer

いいえ

いいえ

使用可能なインスタンスの最小数の割合。

有効な値:

  • -1 (デフォルト): 使用可能なインスタンスの最小数は、このプロパティによって決定されません。

  • 0 ~ 100: 使用可能なインスタンスの最小数は、次の式を使用して計算されます。既存のインスタンス数 × MinReadyInstanceRatio の値 × 100%。計算結果は最も近い整数に切り上げられます。たとえば、既存のインスタンス数が 5 で MinReadyInstanceRatio が 50 に設定されている場合、使用可能なインスタンスの最小数は 3 です。

説明

MinReadyInstances が指定されていて、MinReadyInstanceRatio が -1 以外の有効な値に設定されている場合、MinReadyInstanceRatio の値を使用して、使用可能なインスタンスの最小数が計算されます。 たとえば、MinReadyInstances5 に設定されていて、MinReadyInstanceRatio50 に設定されている場合、50 を使用して使用可能なインスタンスの最小数が計算されます。

ScalingRuleMetric

Map

いいえ

はい

メトリックベースの自動スケーリングポリシーの構成。

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

次の情報に注意してください。

  • maxReplicas: アプリケーションインスタンスの最大数。

  • minReplicas: アプリケーションインスタンスの最小数。

  • metricType: 自動スケーリングポリシーをトリガーするために使用されるメトリック。

    • CPU: CPU 使用率。

    • MEMORY: メモリ使用量。

    • QPS: Java アプリケーションインスタンスごとに 1 分あたりの平均クエリ/秒 (QPS)。

    • RT: Java アプリケーションのすべての API 操作の 1 分あたりの平均応答時間。

    • tcpActiveConn: インスタンスごとに 30 秒あたりのアクティブな TCP 接続の平均数。

    • SLB_QPS: インスタンスごとに 15 秒あたりのインターネット向け Server Load Balancer (SLB) インスタンスの平均 QPS。

    • SLB_RT: 15 秒あたりのインターネット向け SLB インスタンスの平均応答時間。

    • INTRANET_SLB_QPS: インスタンスごとに 15 秒あたりのイントラネット SLB インスタンスの平均 QPS。

    • INTRANET_SLB_RT: 15 秒あたりのイントラネット SLB インスタンスの平均応答時間。

  • metricTargetAverageUtilization: metricType で指定されたメトリックの制限。次の制限を指定できます。

    • CPU 使用率の制限。単位: パーセンテージ。

    • メモリ使用量の制限。単位: パーセンテージ。

    • QPS の制限。

    • 応答時間の制限。単位: ミリ秒。

    • 1 秒あたりのアクティブな TCP 接続の平均数の制限。

    • インターネット向け SLB インスタンスの QPS の制限。

    • インターネット向け SLB インスタンスの応答時間の制限。単位: ミリ秒。

    • イントラネット SLB インスタンスの QPS の制限。

    • イントラネット SLB インスタンスの応答時間の制限。単位: ミリ秒。

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

  • slbProject: Simple Log Service (SLS) プロジェクト。

  • slbLogstore: SLS Logstore。

  • vport: SLB インスタンスのリスナーポート。HTTP および HTTPS がサポートされています。

  • scaleUpRules: スケールアウトルール。

  • scaleDownRules: スケールインルール。

  • step: スケールアウトまたはスケールイン操作のステップサイズ。ステップサイズは、特定の期間内に追加または削除できるインスタンスの最大数を指定します。

  • disabled: スケールイン機能を無効にするかどうかを指定します。この機能を無効にすると、アプリケーションインスタンスは削除されません。これにより、ピーク時のビジネスリスクを防ぎます。

    • true

    • false (デフォルト)

  • stabilizationWindowSeconds: スケールアウトまたはスケールイン操作のクールダウン期間。有効な値: 0 ~ 3600。単位: 秒。デフォルト値: 0。

説明

自動スケーリングポリシーのトリガー条件として 1 つ以上のメトリックを指定できます。指定されたメトリック値のいずれかが指定された制限以上の場合、アプリケーションインスタンスはスケールアウトされます。スケールアウト操作後、アプリケーションインスタンスの数は、指定されたアプリケーションインスタンスの最大数以下になります。指定されたすべてのメトリック値が制限未満の場合、アプリケーションインスタンスはスケールインされます。スケールイン操作後、アプリケーションインスタンスの数は、指定されたアプリケーションインスタンスの最小数以上になります。

スケーリングルールタイマー

マップ

いいえ

はい

スケジュールされた自動スケーリング ポリシーの構成。

スケジュールされた自動スケーリング ポリシーを使用する場合は、関連するプロパティまたは SDK を設定することで、このプロパティを指定する必要があります。

次の情報にご注意ください。

  • beginDate および : スケジュールされた自動スケーリングポリシーの有効期間を制限するために、開始日と終了日を個別に指定します。有効な値:

    • null(デフォルト): beginDate と endDate を null に設定すると、スケジュールされた自動スケーリングポリシーは常にトリガーできます。

    • カスタム日付: たとえば、beginDate と endDate を特定の日付に個別に設定すると、スケジュールされた自動スケーリングポリシーは、その日付内の期間中にトリガーできます。たとえば、beginDate2021-03-25 に、endDate2021-04-25 に設定すると、自動スケーリングポリシーの有効期間は 1 か月になります。

  • period: スケジュールされた自動スケーリングポリシーが実行される頻度。有効な値:

    • * * *: スケジュールされた自動スケーリングポリシーは、毎日指定された時刻に実行されます。

    • * * Fri,Mon: スケジュールされた自動スケーリングポリシーは、毎週 1 つ以上の指定された曜日の指定された時刻に実行されます。時間は GMT+8 でなければなりません。有効な値:

      • Sun: 日曜日

      • Mon: 月曜日

      • Tue: 火曜日

      • Wed: 水曜日

      • Thu: 木曜日

      • Fri: 金曜日

      • Sat: 土曜日

    • 1,2,3,28,31 * *: スケジュールされた自動スケーリングポリシーは、毎月 1 つ以上の指定された日付の指定された時刻に実行されます。有効な値: 1 ~ 31。月に 31 日がない場合、自動スケーリングポリシーは 31 日以外で指定された日に実行されます。

  • schedules: スケジュールされた自動スケーリングポリシーがトリガーされる時刻、およびその期間中に保持されるアプリケーションインスタンスの数。最大 20 個の時刻を指定できます。次の情報に注意してください。

    • atTime: スケジュールされた自動スケーリングポリシーがトリガーされる時刻。時:分 形式で時刻を指定します。例: 08:00

    • targetReplicas: 対応する期間中に保持するアプリケーションインスタンスの数、または各デプロイに必要な最小限の利用可能なインスタンスの数。有効な値: 1 ~ 50。

説明

業務継続性を確保するために、アプリケーションのデプロイメントおよびロールバック中は、使用可能なインスタンスの最小数が 1 以上であることをお勧めします。 使用可能なインスタンスの最小数が 0 の場合、アプリケーションのスペックアップ時に業務が中断されます。

ScalingRuleEnable

ブール値

いいえ

いいえ

自動スケーリング ポリシーを有効にするかどうかを指定します。

有効な値:

  • true

  • false

ScalingRuleMetric の構文

"ScalingRuleMetric": {
  "Metrics": リスト,
  "MinReplicas": 整数,
  "MaxReplicas": 整数,
  "ScaleDownRules": マップ,
  "ScaleUpRules": マップ
}

ScalingRuleMetric プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Metrics

リスト

はい

いいえ

自動スケーリングポリシーをトリガーするために使用されるメトリック。

なし。

MinReplicas

整数

はい

いいえ

最小インスタンス数。

なし。

MaxReplicas

整数

はい

いいえ

最大インスタンス数。

なし。

ScaleDownRules

マップ

いいえ

いいえ

スケールインルール。

なし。

ScaleUpRules

マップ

いいえ

いいえ

スケールアウトルール。

なし。

メトリクスの構文

"Metrics": [
  {
    "SlbId": String,
    "MetricType": String,
    "Vport": String,
    "SlbLogstore": String,
    "SlbProject": String,
    "MetricTargetAverageUtilization": Integer
  }
]

メトリックのプロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

MetricType

String

はい

いいえ

自動スケーリングポリシーをトリガーするために使用されるメトリック。

有効な値:

  • CPU: CPU 使用率。

  • MEMORY: メモリ使用量。

  • QPS: Java アプリケーションインスタンスごとの 1 分間の平均 QPS。

  • RT: Java アプリケーションの 1 分間におけるすべての API 操作の平均応答時間。

  • tcpActiveConn: インスタンスごとの 30 秒間の平均アクティブ TCP 接続数。

  • SLB_QPS: インスタンスごとの 15 秒間のインターネット向け SLB インスタンスの平均 QPS。

  • SLB_RT: 15 秒間のインターネット向け SLB インスタンスの平均応答時間。

  • INTRANET_SLB_QPS: インスタンスごとの 15 秒間のイントラネット SLB インスタンスの平均 QPS。

  • INTRANET_SLB_RT: 15 秒間のイントラネット SLB インスタンスの平均応答時間。

MetricTargetAverageUtilization

Integer

はい

いいえ

メトリックの制限。

  • CPU 使用率の制限。単位: パーセンテージ。

  • メモリ使用量の制限。単位: パーセンテージ。

  • QPS の制限。

  • 応答時間の制限。単位: ミリ秒。

  • 1 秒あたりの平均アクティブ TCP 接続数の制限。

  • インターネット向け SLB インスタンスの QPS の制限。

  • インターネット向け SLB インスタンスの応答時間の制限。単位: ミリ秒。

  • イントラネット SLB インスタンスの QPS の制限。

  • イントラネット SLB インスタンスの応答時間の制限。単位: ミリ秒。

SlbId

String

いいえ

いいえ

SLB インスタンスの ID。

なし。

SlbLogstore

String

いいえ

いいえ

SLS Logstore。

なし。

SlbProject

String

いいえ

いいえ

SLS プロジェクト。

なし。

Vport

String

いいえ

いいえ

SLB インスタンスのリスナーポート。HTTP および HTTPS がサポートされています。

なし。

ScaleDownRules 構文

"ScaleDownRules": {
  "Step": String,
  "StabilizationWindowSeconds": Integer,
  "Disabled": Boolean
}

ScaleDownRules プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Step

String

はい

いいえ

スケールイン操作のステップサイズ。

ステップサイズは、特定の期間内に削除できるインスタンスの最大数を指定します。

Disabled

ブール値

いいえ

いいえ

スケールイン機能を無効にするかどうかを指定します。

この機能を無効にすると、アプリケーションインスタンスは削除されません。これにより、ピーク時のビジネスリスクを防ぎます。

有効な値:

  • true

  • false (デフォルト)

StabilizationWindowSeconds

Integer

いいえ

いいえ

スケールイン操作のクールダウン期間。

有効な値: 0 ~ 3600。単位: 秒。デフォルト値: 0。

ScaleUpRules 構文

"ScaleUpRules": {
  "Step": String,
  "StabilizationWindowSeconds": Integer,
  "Disabled": Boolean
}

ScaleUpRules プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Step

String

Yes

No

スケールアウト操作のステップサイズ。

ステップサイズは、特定の期間内に追加できるインスタンスの最大数を指定します。

Disabled

Boolean

No

No

スケールアウト機能を無効にするかどうかを指定します。

この機能を無効にすると、アプリケーション インスタンスは追加されません。 これにより、ピーク時のビジネスリスクを回避できます。

StabilizationWindowSeconds

Integer

No

No

スケールアウト操作のクールダウン時間。

有効な値: 0 ~ 3600 。単位:秒。 デフォルト値: 0 。

ScalingRuleTimer の構文

"ScalingRuleTimer": {
  "Schedules": リスト,
  "Period": 文字列,
  "EndDate": 文字列,
  "BeginDate": 文字列
}

ScalingRuleTimer プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Period

String

はい

いいえ

スケジュールされた自動スケーリングポリシーが実行される頻度。

有効な値:

  • * * *: スケジュールされた自動スケーリングポリシーは、毎日指定された時刻に実行されます。

  • * * Fri,Mon: スケジュールされた自動スケーリングポリシーは、毎週 1 日以上、指定された時刻に実行されます。時刻は GMT+8 でなければなりません。有効な値:

    • Sun: 日曜日

    • Mon: 月曜日

    • Tue: 火曜日

    • Wed: 水曜日

    • Thu: 木曜日

    • Fri: 金曜日

    • Sat: 土曜日

  • 1,2,3,28,31 * *: スケジュールされた自動スケーリングポリシーは、毎月 1 日以上、指定された時刻に実行されます。有効な値: 1 ~ 31。月に 31 日がない場合、自動スケーリングポリシーは 31 日以外で指定された日に実行されます。

Schedules

List

はい

いいえ

1 日以内にスケジュールされた自動スケーリングポリシーがトリガーされる時点。

なし。

BeginDate

String

いいえ

いいえ

スケジュールされた自動スケーリングポリシーの有効期間の開始日。

  • null (デフォルト): BeginDateEndDate を null に設定すると、スケジュールされた自動スケーリングポリシーは常にトリガーできます。

  • カスタム日付: たとえば、BeginDate を 2021-03-25 に、EndDate を 2021-04-25 に個別に設定すると、スケジュールされた自動スケーリングポリシーの有効期間は 1 か月になります。

EndDate

String

いいえ

いいえ

スケジュールされた自動スケーリングポリシーの有効期間の終了日。

  • null (デフォルト): BeginDateEndDate を null に設定すると、スケジュールされた自動スケーリングポリシーは常にトリガーできます。

  • カスタム日付: たとえば、BeginDate を 2021-03-25 に、EndDate を 2021-04-25 に個別に設定すると、スケジュールされた自動スケーリングポリシーの有効期間は 1 か月になります。

スケジュールの構文

"Schedules": [
  {
    "TargetReplicas": 整数,
    "AtTime": 文字列
  }
]

スケジュールのプロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

AtTime

String

はい

いいえ

スケジュールされた自動スケーリングポリシーがトリガーされる時点です。

なし。

TargetReplicas

Integer

はい

いいえ

対応する期間中に保持するアプリケーションインスタンスの数、または各デプロイメントに必要な最小限の利用可能なインスタンスの数です。

有効な値:1 ~ 50。

戻り値

Fn::GetAtt

ScalingRuleName: 自動スケーリング ポリシーの名前。

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  ScalingRuleName:
    Type: String
    Description:
      en: 自動スケーリングポリシーの名前。名前は小文字で始まり、小文字、数字、およびハイフン (-) を含めることができます。名前は 1 ~ 32 文字である必要があります。
    AllowedPattern: ^[a-z][a-z0-9-]{0,31}$
    Required: true
  AppId:
    Type: String
    Description:
      en: アプリケーションの ID。
    Required: true
  ScalingRuleType:
    Type: String
    Description:
      en: 自動スケーリングポリシーのタイプ。有効な値:timer:時間指定スケーリング。metric:カスタムメトリックスケーリング。mix:ミックススケーリング
    AllowedValues:
      - timing
      - metric
      - mix
    Required: true
Resources:
  ApplicationScalingRule:
    Type: ALIYUN::SAE::ApplicationScalingRule
    Properties:
      ScalingRuleName:
        Ref: ScalingRuleName
      AppId:
        Ref: AppId
      ScalingRuleType:
        Ref: ScalingRuleType
Outputs:
  ScalingRuleName:
    Description: スケーリングルールの名前。
    Value:
      Fn::GetAtt:
        - ApplicationScalingRule
        - ScalingRuleName
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "ScalingRuleName": {
      "Type": "String",
      "Description": {
        "en": "自動スケーリングポリシーの名前。名前は小文字で始まり、小文字、数字、およびハイフン (-) を含めることができます。名前は 1 ~ 32 文字である必要があります。"
      },
      "AllowedPattern": "^[a-z][a-z0-9-]{0,31}$",
      "Required": true
    },
    "AppId": {
      "Type": "String",
      "Description": {
        "en": "アプリケーションの ID。"
      },
      "Required": true
    },
    "ScalingRuleType": {
      "Type": "String",
      "Description": {
        "en": "自動スケーリングポリシーのタイプ。有効な値:timer:時間指定スケーリング。metric:カスタムメトリックスケーリング。mix:ミックススケーリング"
      },
      "AllowedValues": [
        "timing",
        "metric",
        "mix"
      ],
      "Required": true
    }
  },
  "Resources": {
    "ApplicationScalingRule": {
      "Type": "ALIYUN::SAE::ApplicationScalingRule",
      "Properties": {
        "ScalingRuleName": {
          "Ref": "ScalingRuleName"
        },
        "AppId": {
          "Ref": "AppId"
        },
        "ScalingRuleType": {
          "Ref": "ScalingRuleType"
        }
      }
    }
  },
  "Outputs": {
    "ScalingRuleName": {
      "Description": "スケーリングルールの名前。",
      "Value": {
        "Fn::GetAtt": [
          "ApplicationScalingRule",
          "ScalingRuleName"
        ]
      }
    }
  }
}