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

Auto Scaling:数式を使用したターゲット追跡スケーリングルールのカスタマイズ

最終更新日:Jun 22, 2026

ターゲット追跡スケーリングでは、複数のハイブリッドクラウド監視メトリクスを数式で組み合わせて、ビジネスニーズに合ったカスタムターゲット追跡スケーリングルールを作成できます。

概要

メリット

  • 数式のサポート:数式を使用して最大 3 つのメトリクスを追跡ターゲットとして組み合わせることで、柔軟性を高めることができます。

  • より多くの監視メトリクスをサポート:このアプローチはハイブリッドクラウド監視に基づいています。システムメトリクスを使用するターゲット追跡スケーリングルールと比較して、このアプローチでは、より幅広いメトリクスをターゲット追跡に使用できます。ハイブリッドクラウド監視の詳細については、「ハイブリッドクラウド監視の概要」をご参照ください。

ワークフロー

このソリューションは、スケーリンググループの ターゲット追跡スケーリングルールハイブリッドクラウド監視 を組み合わせたものです。次のワークフローに従って、カスタムターゲット追跡スケーリングルールを作成できます。

  1. ターゲット追跡スケーリングソリューションの設計

    まず、必要なハイブリッドクラウド監視のメトリクスを特定し、要件に基づいてターゲット追跡スケーリングソリューションを設計します。

  2. スケーリングソリューションの実装

    必要なハイブリッドクラウド監視のメトリクスを準備し、これらのメトリクスに基づいてターゲット追跡スケーリングルールを作成します。

  3. ソリューションの継続的な監視と最適化

    スケーリングアクティビティとメトリックの変化を継続的に監視して、ソリューションを最適化します。

1. ターゲット追跡スケーリングソリューションの設計

まず、必要なハイブリッドクラウド監視のメトリクスを特定し、スケーリングソリューションを設計します。次のセクションで例を示します。

ハイブリッドクラウド監視でサポートされているメトリクスの詳細については、「付録1:クラウドサービスメトリクス」をご参照ください。応答性の高いターゲット追跡を確保するには、最小集計期間が 60 秒のメトリクスを選択してください。
計算されたメトリック値は、スケーリンググループ内のインスタンス数に比例する必要があります。これにより、メトリック値がターゲットを上回るとスケールアウトし、下回るとスケールインします。

ソリューション設計のサンプル

このトピックでは、Message Service (MNS) キュー内のアクティブなメッセージ数に基づいて、スケーリンググループ内のインスタンス数を動的に調整するソリューションの例を使用します。

  • 期待される結果

    目標は、スケーリンググループ内のインスタンスあたり平均 3 つのキューメッセージを維持することです。インスタンスあたりのメッセージ数が 3 を超えるとグループはスケールアウトし、3 を下回るとスケールインします。

  • 実装

    この機能を実装するには、MNS キュー内のアクティブなメッセージ数 (ActiveMessages) とスケーリンググループ内の実行中のインスタンス数 (RunningInstanceCount) の 2 つのメトリクスが必要です。これら 2 つのメトリクスの比率に基づいてターゲット追跡スケーリングルールを作成し、ターゲット値を 3 に設定できます。これにより、比率が約 3 に維持され、次の数式が満たされます:

2. スケーリングソリューションの実装

2.1. ハイブリッドクラウド監視メトリクスの準備

ハイブリッドクラウド監視のメトリクスが準備できている場合は、この手順をスキップできます。
この機能を使用するには、ハイブリッドクラウド監視をアクティブ化する必要があります。詳細については、「ハイブリッドクラウド監視のアクティブ化」をご参照ください。

ターゲット追跡スケーリングルールを作成する前に、ハイブリッドクラウド監視で必要なメトリクスを準備します。次の手順に従ってください:

  1. 名前空間の作成

    詳細については、「名前空間の作成」をご参照ください。

  2. 必要なメトリクスの追加

    ビジネス要件に基づいて、必要なメトリクスを名前空間に追加します。詳細については、「メトリクスインポートタスクの管理」をご参照ください。

    説明

    応答性の高いターゲット追跡を確保するには、最小集計期間が 60 秒のメトリクスを選択してください。

サンプルソリューションに必要なメトリクス

ess-metrics-repo-test という名前の名前空間を作成し、次の 2 つのメトリクスを追加します:

  • アクティブメッセージ の [Active メッセージ] メトリック

  • Auto Scaling実行中のインスタンス メトリック。

2.2. ターゲット追跡スケーリングルールの作成

スケーリンググループを作成していない場合は、まず作成してください。詳細については、「ECS スケーリンググループの作成」および「ECI スケーリンググループの作成」をご参照ください。
重要

ターゲット追跡スケーリングルールは、インスタンス数をゼロまでスケールダウンすることをサポートしています。ターゲット追跡スケーリングルールを作成する前に、ビジネス要件に基づいてスケーリンググループの 最小インスタンス数最大インスタンス数 を設定してください。これにより、スケールアウトおよびスケールインアクティビティの境界が定義され、不適切なソリューション設計によるサービスの利用不可や予期せぬコストを防ぐのに役立ちます。

  1. スケーリンググループのスケーリングルール作成ページに移動します。

    1. Auto Scalingコンソールにログインします。

    2. 左側のナビゲーションウィンドウで、スケーリンググループをクリックします。

    3. 上部のナビゲーションバーで、リージョンを選択します。

    4. 管理するスケーリンググループを見つけ、操作 列で 詳細の表示 をクリックします。

    5. スケーリングルールとタスク タブをクリックします。

    6. スケーリングルール タブで、スケーリングルールの作成 をクリックします。

  2. [スケーリングルールの作成] ページで、次のパラメーターを設定します。

    パラメーター

    説明

    [ルールタイプ]

    [目標追従スケーリングルール] を選択します。

    [監視メトリックのタイプ]

    [CloudMonitor Enterprise Edition] を選択します。

    [監視メトリックウェアハウス]

    手順 2.1 で準備した名前空間を選択します。

    [監視メトリックの説明]

    手順 2.1 で準備したメトリクスと監視対象リソースを選択します。

    [メトリック計算式]

    ビジネス要件に基づいて式を入力します。+-*/ および () 演算子がサポートされています。

    重要
    • メトリック式には、最大 3 つの異なるメトリクスを含めることができます。

    • 計算されたメトリックはインスタンス数に比例する必要があります。これにより、メトリック値がターゲットを上回るとスケールアウトし、下回るとスケールインします。

    [目標値]

    メトリック式のターゲット値。ターゲット追跡スケーリングルールは、ハイブリッドクラウド監視メトリックの計算値をターゲット値に近いレベルに維持します。

    [インスタンスのウォームアップ時間]

    単位:秒。ウォームアップ状態のインスタンスはスケーリンググループに追加されますが、その監視データはハイブリッドクラウド監視に報告されません。スケーリング調整を計算する際、Auto Scaling はウォームアップ状態のインスタンスを現在のキャパシティの一部としてカウントしません。これにより、メトリックの変動が防止されます。

    [スケールアウトアラートのしきい値]

    自動的に作成されるスケールアウトのイベントトリガータスクをトリガーするために必要な、しきい値の連続達成回数を指定します。

    [スケールインアラートのしきい値]

    自動的に作成されるスケールインのイベントトリガータスクをトリガーするために必要な、しきい値の連続達成回数を指定します。

    [スケールインの無効化]

    このパラメーターは、スケールインを無効にするかどうかを指定し、自動的に作成されるイベントトリガータスクの数に影響します。

    • スケールインを無効にすると、ターゲット追跡スケーリングルールはスケールアウトのイベントトリガータスクのみを作成します。ECS インスタンスまたは ECI インスタンスはスケーリンググループから削除されません。

    • スケールインを許可すると、ターゲット追跡スケーリングルールは、スケールアウト用とスケールイン用の 2 つのイベントトリガータスクを作成します。

    サンプルソリューションの主要な設定

    パラメーター

    [監視メトリックのタイプ]

    [CloudMonitor Enterprise Edition] を選択します。

    [監視メトリックウェアハウス]

    手順 2.1 で準備した名前空間 (ess-metrics-repo-test) を選択します。

    [監視メトリックの説明]

    メトリック a:

    • メトリック名には、AliyunEss_RunningInstanceCount を選択します。

    • 監視対象リソースには、現在のスケーリンググループを選択します。

    メトリック b:

    • メトリック名には、AliyunMnsnew_ActiveMessages を選択します。

    • 監視対象リソースには、監視する MNS キューを選択します。

    [メトリック計算式]

    b/a と入力します。この式は、各インスタンスが処理する必要がある平均メッセージ数を示します。

    [目標値]

    3 と入力します。これは、インスタンスあたりの予想される平均キュー長が 3 メッセージであることを示します。

  3. パラメーターを設定した後、OK をクリックしてターゲット追跡スケーリングルールを作成します。

3. ソリューションの監視と最適化

ターゲット追跡スケーリングルールを作成した後、スケーリンググループを継続的に監視して、期待どおりに実行されていることを確認します。計算されたメトリック値、スケーリングアクティビティ、およびスケーリンググループの監視データを確認して、その動作を検証できます。

関連操作

  • ターゲット追跡スケーリングルールに関する情報の表示

    スケーリングルールとアラートタスク > スケーリングルール タブで、作成したターゲット追跡スケーリングルールを見つけ、スケーリングルール ID をクリックして詳細を表示します。関連付けられたイベントトリガータスクをクリックして、その監視情報を表示できます。

  • 計算されたメトリック値の監視

    ターゲット追跡スケーリングルールを作成すると、スケールアウト用とスケールイン用の [アラートタスク (CloudMonitor Enterprise Edition)] が自動的に作成されます。スケールインを無効にした場合、スケールイン用のタスクは作成されません。スケーリングルールとタスク > イベントでトリガーされるタスク > アラートタスク (CloudMonitor Enterprise Edition) タブで、対応するタスクを見つけてその ID をクリックし、タスク詳細ページに移動して計算されたメトリック値を表示します。

  • スケーリングアクティビティの表示

    スケーリングアクティビティ タブで、スケーリンググループのスケーリングアクティビティのログを表示します。

API を使用したルールの作成

CreateScalingRule API を呼び出して、ハイブリッドクラウド監視メトリクスに基づくターゲット追跡スケーリングルールを作成します。主要なパラメーターを以下に示します。

主要なパラメーター

パラメーター

タイプ

説明

設定

RegionId

String

スケーリンググループが配置されているリージョンの ID。

このパラメーターをターゲットスケーリンググループが存在するリージョンに設定します。

ScalingGroupId

string

スケーリンググループの ID。

このパラメーターを変更したいスケーリンググループの ID に設定します。

ScalingRuleName

string

スケーリングルールの名前。

名前の長さは 2 ~ 64 文字で、数字、文字、または漢字で始まり、数字、アンダースコア (_)、ハイフン (-)、およびピリオド (.) を含めることができます。

名前は、同じ Alibaba Cloud アカウントの同じリージョンおよびスケーリンググループ内で一意である必要があります。

このパラメーターを指定しない場合、デフォルトで ScalingRuleId の値が使用されます。

ScalingRuleType

string

スケーリングルールのタイプ。

ターゲット追跡スケーリングルールを作成するには、このパラメーターを TargetTrackingScalingRule に設定します。

DisableScaleIn

boolean

スケールインを無効にするかどうかを指定します。このパラメーターは、ターゲット追跡スケーリングルールにのみ適用されます。

  • true: スケールインを無効にします。

  • false: スケールインを有効にします。

ソリューションに基づいてこのパラメーターを設定します。

TargetValue

integer

ターゲット値。

TargetValue の値は 0 より大きく、小数点以下 3 桁まで指定できます。

EstimatedInstanceWarmup

integer

インスタンスのウォームアップ期間。ウォームアップ状態の ECS インスタンスはスケーリンググループに追加されますが、その監視データはハイブリッドクラウド監視に報告されません。

追加または削除するインスタンスの数を計算する際、Auto Scaling はウォームアップ状態のインスタンスを現在のキャパシティの一部としてカウントしません。

有効な値:0 ~ 86400。単位:秒。

デフォルト値:300。

ScaleOutEvaluationCount

integer

ターゲット追跡スケーリングルールを作成すると、イベントトリガータスクが自動的に作成されます。このパラメーターは、スケールアウトのイベントトリガータスクをトリガーするために必要な、しきい値の連続達成回数を指定します。

デフォルト値:3。

ソリューションに基づいてこのパラメーターを設定します。

ScaleInEvaluationCount

integer

ターゲット追跡スケーリングルールを作成すると、イベントトリガータスクが自動的に作成されます。このパラメーターは、スケールインのイベントトリガータスクをトリガーするために必要な、しきい値の連続達成回数を指定します。

デフォルト値:15。

ソリューションに基づいてこのパラメーターを設定します。

MetricType

string

メトリックのタイプ。

ハイブリッドクラウド監視メトリクスに基づくターゲット追跡スケーリングルールを作成するには、このパラメーターを hybrid に設定します。この値は、メトリックソースとしてハイブリッドクラウド監視が使用されることを指定します。

HybridMonitorNamespace

string

ハイブリッドクラウド監視の名前空間の ID。

名前空間の管理方法の詳細については、「名前空間の管理」をご参照ください。

ソリューションに基づいてこのパラメーターを設定します。

HybridMetrics

array<object>

ハイブリッドクラウド監視メトリクスの設定。

ハイブリッドクラウド監視メトリクスの配列。

HybridMetrics のサブパラメーター

Id

string

メトリック式におけるメトリックの参照 ID。

これは、後で式で参照する変数を宣言するのと似ています。

このパラメーターは、a、b、c などに設定できます。

MetricName

string

ハイブリッドクラウド監視の名前空間におけるメトリックの名前。

ソリューションに基づいてこのパラメーターを設定します。

Statistic

string

メトリックの集計方法。

ソリューションに基づいてこのパラメーターを設定します。有効な値:

  • Average: 指定された期間のすべてのデータポイントの平均。

  • Minimum: 指定された期間のすべてのデータポイントの最小値。

  • Maximum: 指定された期間のすべてのデータポイントの最大値。

Expression

string

複数のハイブリッドクラウド監視メトリクスを組み合わせたメトリック式。式の計算結果は、スケールアウトまたはスケールインアクティビティをトリガーするために使用されます。

式は中置記法を使用し、+-*、および / 演算子をサポートします。

ソリューションに基づいてこのパラメーターを設定します。

Dimensions

object

メトリックのディメンション。このパラメーターは、監視するリソースを指定するために使用されます。

Dimensions のサブパラメーター

DimensionKey

string

メトリックディメンションのキー。

ソリューションに基づいてこのパラメーターを設定します。

DimensionValue

string

メトリックディメンションの値。

ソリューションに基づいてこのパラメーターを設定します。

リクエストの例

次の例は、API を使用して「1. ターゲット追跡スケーリングソリューションの設計」で説明されているサンプルソリューションを実装する方法を示しています。

次のリクエストボディは、このソリューションのパラメーター設定を示しています。

{
    "RegionId": "cn-hangzhou",
    "ScalingGroupId": "asg-bp1******",
    "ScalingRuleType": "TargetTrackingScalingRule",
    "ScalingRuleName": "TrackingQueueLength",
    "DisableScaleIn": false,
    "TargetValue": 3,
    "EstimatedInstanceWarmup": 300,
    "ScaleOutEvaluationCount": 3,
    "ScaleInEvaluationCount": 15,
    "MetricType": "hybrid",
    "HybridMonitorNamespace": "ess-metrics-repo-test",
    "HybridMetrics.1.Id": "a",
    "HybridMetrics.1.MetricName": "AliyunEss_RunningInstanceCount",
    "HybridMetrics.1.Statistic": "Average",
    "HybridMetrics.1.Dimensions.1.DimensionKey": "scaling_group",
    "HybridMetrics.1.Dimensions.1.DimensionValue": "asg-bp1******",
    "HybridMetrics.2.Id": "b",
    "HybridMetrics.2.MetricName": "AliyunMnsnew_ActiveMessages",
    "HybridMetrics.2.Statistic": "Average",
    "HybridMetrics.2.Dimensions.1.DimensionKey": "region",
    "HybridMetrics.2.Dimensions.1.DimensionValue": "cn-hangzhou",
    "HybridMetrics.2.Dimensions.2.DimensionKey": "userId",
    "HybridMetrics.2.Dimensions.2.DimensionValue": "******",
    "HybridMetrics.2.Dimensions.3.DimensionKey": "queue",
    "HybridMetrics.2.Dimensions.3.DimensionValue": "test",
    "HybridMetrics.3.Id": "Expression",
    "HybridMetrics.3.Expression": "b/a"
}

主要な JSON フィールドと数式の対応関係:

  • ess-metrics-repo-test 名前空間の AliyunEss_RunningInstanceCount メトリックの値を 変数 a として宣言し、スケーリンググループ ID を asg-bp1****** として指定します。

    意味:ID が asg-bp1****** のスケーリンググループで実行中のインスタンス数。
    "HybridMetrics.1.Id": "a",
    "HybridMetrics.1.MetricName": "AliyunEss_RunningInstanceCount",
    "HybridMetrics.1.Statistic": "Average",
    "HybridMetrics.1.Dimensions.1.DimensionKey": "scaling_group",
    "HybridMetrics.1.Dimensions.1.DimensionValue": "asg-bp1******",
  • ess-metrics-repo-test 名前空間の AliyunMnsnew_ActiveMessages メトリックの値を 変数 b として宣言し、メトリックディメンションを region=cn-hangzhouuserId=******、および queue=test として指定します。

    意味:指定されたユーザーアカウント配下の、中国 (杭州) リージョンにある test キューのアクティブなメッセージ数。
    "HybridMetrics.2.Id": "b",
    "HybridMetrics.2.MetricName": "AliyunMnsnew_ActiveMessages",
    "HybridMetrics.2.Statistic": "Average",
    "HybridMetrics.2.Dimensions.1.DimensionKey": "region",
    "HybridMetrics.2.Dimensions.1.DimensionValue": "cn-hangzhou",
    "HybridMetrics.2.Dimensions.2.DimensionKey": "userId",
    "HybridMetrics.2.Dimensions.2.DimensionValue": "******",
    "HybridMetrics.2.Dimensions.3.DimensionKey": "queue",
    "HybridMetrics.2.Dimensions.3.DimensionValue": "test",
  • メトリックの数式を b/a に設定します

    意味:数式 を意味します。
    "HybridMetrics.3.Id": "Expression",
    "HybridMetrics.3.Expression": "b/a"
  • 数式の結果のターゲット値を設定します。

    意味:数式 の結果のターゲット値は 3 です。
    "TargetValue": 3