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

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

最終更新日:Jan 13, 2026

数式を使用して複数のハイブリッドクラウド監視メトリックを組み合わせ、カスタムターゲット追跡スケーリングルールを作成できます。これにより、特定のビジネスニーズに対応できます。

ソリューション概要

メリット

  • 数式のサポート。数式で最大 3 つのメトリックを組み合わせることで、より柔軟な追跡が可能です。

  • より多くのメトリックのサポート。このソリューションはハイブリッドクラウド監視に基づいており、システム監視を使用するルールよりも多くのメトリックをターゲット追跡でサポートします。ハイブリッドクラウド監視の詳細については、「ハイブリッドクラウド監視の概要」をご参照ください。

手順

このソリューションでは、Auto Scaling のターゲット追跡スケーリングルール機能とハイブリッドクラウド監視を使用します。以下の手順では、カスタムターゲット追跡スケーリングルールの作成方法について説明します。

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

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

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

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

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

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

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

まず、必要なハイブリッドクラウド監視メトリックを特定し、ターゲット追跡スケーリングソリューションを設計します。以下の例をご参照ください。

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

ソリューション設計の例

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

  • 期待される結果

    スケーリンググループ内の各インスタンスは、キュー内のメッセージを平均 3 件処理することが期待されます。メッセージ数が増加するとスケールアウトがトリガーされます。メッセージ数が 3 件未満の場合、スケールインがトリガーされます。

  • 実装

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

2. 設計したスケーリングソリューションの実装

2.1 ターゲット追跡ルール用のハイブリッドクラウド監視メトリックの準備

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

ターゲット追跡スケーリングルールを作成する前に、追跡に必要なハイブリッドクラウド監視メトリックを作成する必要があります。手順は次のとおりです。

  1. メトリックリポジトリの作成。

    詳細については、「メトリックリポジトリの作成」をご参照ください。

  2. 追跡するメトリックの追加。

    手順 1 で作成したメトリックリポジトリに追跡したいメトリックを追加します。詳細については、「データインジェストタスクの管理」をご参照ください。

    説明

    ターゲット追跡の迅速な応答を確保するために、最小統計期間が 60 秒のメトリックを選択してください。

ソリューション例で必要なメトリック

ess-metrics-repo-test という名前のメトリックリポジトリを作成し、次の 2 つの監視メトリックを追加します。

  • Message Service (MNS)アクティブメッセージ数 (ActiveMessages) メトリック。

    image

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

    image

2.2 ハイブリッドクラウド監視メトリックに基づくターゲット追跡スケーリングルールの作成

スケーリンググループにターゲット追跡スケーリングルールを作成し、ハイブリッドクラウド監視メトリックを追跡します。手順は次のとおりです。

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

ターゲット追跡スケーリングルールは、インスタンス数をゼロにするスケールインをサポートしています。ターゲット追跡スケーリングルールを作成する前に、スケーリンググループの [最小インスタンス数][最大インスタンス数] を設定してください。これらの設定はスケーリングの境界を定義し、サービスの可用性の低下や予算超過を防ぐのに役立ちます。

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

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

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

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

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

    5. ページ上部の [スケーリングルールとタスク] タブをクリックします。

    6. [スケーリングルール] タブで、[スケーリングルールの作成] をクリックします。[スケーリングルールの作成] ページが表示されます。

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

    設定項目

    説明

    ルールタイプ

    [ターゲット追跡ルール] を選択します。

    メトリックタイプ

    [ハイブリッドクラウド監視] を選択します。

    メトリックリポジトリ

    手順 2.1 で準備したメトリックリポジトリを選択します。

    メトリックの説明

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

    メトリック計算式

    必要に応じて式を入力します。オペレーター +-*/ と括弧 () がサポートされています。

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

    • メトリックの計算結果は、スケーリンググループ内のインスタンス数に比例して調整される必要があります。これにより、メトリックがターゲット値を超えるとインスタンスが追加 (スケールアウト) され、メトリックがターゲット値を下回るとインスタンスが削除 (スケールイン) されるようになります。

    ターゲット値

    メトリック計算式のターゲット値です。ターゲット追跡スケーリングルールは、CloudMonitor メトリックの計算結果をこのターゲット値に近づけるように維持します。

    インスタンスのウォームアップ期間

    単位:秒。ウォームアップ状態のインスタンスはスケーリンググループに追加されますが、CloudMonitor にモニタリングデータをレポートしません。Auto Scaling がスケーリングするインスタンス数を動的に計算する際、ウォームアップ状態のインスタンスは既存のインスタンスとしてカウントされません。これにより、メトリックの変動が防止されます。

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

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

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

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

    スケールインの無効化

    スケールインを無効にすると、自動作成される監視タスクの数に影響します。

    • スケールインを無効にすると、ターゲット追跡スケーリングルールはスケールアウト用の監視タスクを 1 つだけ作成します。そのため、ECS インスタンスや ECI インスタンスはスケーリンググループから削除されません。

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

    ソリューション例の主要な設定

    設定項目

    メトリックタイプ

    [ハイブリッドクラウド監視] を選択します。

    メトリックリポジトリ

    手順 2.1 で準備したメトリックリポジトリ、つまり ess-metrics-repo-test を選択します。

    メトリックの説明

    メトリック a:

    • [メトリック]AliyunEss_RunningInstanceCount に設定します。

    • [監視対象リソース] を現在のスケーリンググループに設定します。

    メトリック b:

    • [メトリック]AliyunMnsnew_ActiveMessages に設定します。

    • [監視対象リソース] を監視したい MNS キューに設定します。

    メトリック計算式

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

    ターゲット値

    3 と入力します。これは、各インスタンスがキュー内に平均 3 件のメッセージを持つことが期待されることを示します。

  3. 設定が完了したら、[OK] をクリックしてターゲット追跡スケーリングルールを作成します。

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

ターゲット追跡スケーリングルールを作成した後、スケーリンググループが期待どおりに動作することを確認するために、継続的に監視する必要があります。メトリックの計算値、スケーリングアクティビティ、スケーリンググループの監視情報を確認して、スケーリンググループが意図したとおりに機能しているかどうかを判断できます。

関連操作

  • ターゲット追跡ルールの表示

    [スケーリングルールとタスク] > [スケーリングルール] タブで、作成したターゲット追跡スケーリングルールを見つけます。スケーリングルール ID をクリックすると、ターゲット追跡スケーリングルールの詳細を表示できます。また、関連する監視タスクをクリックして、その監視情報を表示することもできます。

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

    ターゲット追跡スケーリングルールが作成されると、2 つの [監視タスク (ハイブリッドクラウド監視)] タスクが自動的に作成されます。[スケーリングルールとタスク] > [監視タスク] > [監視タスク (ハイブリッドクラウド監視)] タブで、対応する監視タスクを見つけ、その ID をクリックして詳細ページに移動し、メトリックの計算値を表示します。

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

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

API を呼び出してハイブリッドクラウド監視に基づくターゲット追跡スケーリングルールを作成

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

コアパラメーターの説明

パラメーター名

タイプ

説明

設定方法

RegionId

文字列

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

対象のスケーリンググループのリージョンに設定します。

ScalingGroupId

string

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

変更したいスケーリンググループの ID に設定します。

ScalingRuleName

string

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

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

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

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

ScalingRuleType

string

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

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

DisableScaleIn

boolean

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

  • true:無効。

  • false:無効にしない。

必要に応じてこのパラメーターを設定します。

TargetValue

integer

ターゲット値。

TargetValue は小数点以下 3 桁まで指定でき、0 より大きい必要があります。

EstimatedInstanceWarmup

integer

インスタンスのウォームアップ期間。ウォームアップ状態の ECS インスタンスはスケーリンググループに追加されますが、CloudMonitor にモニタリングデータをレポートしません。

Auto Scaling がスケーリングする ECS インスタンス数を動的に計算する際、ウォームアップ状態のインスタンスは既存のインスタンスとしてカウントされません。

有効な値: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

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

式は逆ポーランド記法 (RPN) の仕様に従う必要があり、+ - * / オペレーターのみをサポートします。

必要に応じてこのパラメーターを設定します。

Dimensions

object

メトリックのディメンション。監視対象のリソースを指定するために使用されます。

Dimensions のサブプロパティ

DimensionKey

string

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

必要に応じてこのパラメーターを設定します。

DimensionValue

string

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

必要に応じてこのパラメーターを設定します。

API 呼び出しの例

この例では、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": "instanceId",
    "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 スニペットの解説:

  • 変数 a の宣言。この変数の値は、ess-metrics-repo-test メトリックリポジトリの AliyunEss_RunningInstanceCount メトリックの値です。スケーリンググループ ID は asg-bp1****** として指定されます。

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

    意味:ユーザー ID が ****** のアカウントで、中国 (杭州) リージョンにある 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