スケーリングルールの作成
スケーリングルールでは、n 個の ECS インスタンスの追加や削除など、具体的なスケーリングアクションを定義します。
スケーリングルールを実行すると、スケーリンググループの ECS インスタンスの数が MinSize を下回るか、MaxSize を上回ることがあります。その場合、Auto Scaling によって “スケーリンググループのインスタンス数量を MinSize に調整” ルールまたは “スケーリンググループのインスタンス数量を MaxSize に調整” ルールが実行され、追加または削除される ECS インスタンスの数が調整されます。
- 例 1: スケーリンググループの MaxSize が 3 で現在のインスタンスの数 (合計容量) が 2 となっている場合にスケーリングルールで “ECS インスタンスを 3 個追加” するよう指示すると、この操作で実際に追加される ECS インスタンスは 1 つだけになります (スケーリングルールの値は変更されません)。
- 例 2: スケーリンググループの MinSize が 2 で現在のインスタンスの数 (合計容量) が 3 となっている場合にスケーリングルールで “ECS インスタンスを 5 個削除” するよう指示すると、この操作で実際に削除される ECS インスタンスは 1 つだけになります (スケーリングルールの値は変更されません)。
説明
この操作では、入力パラメーターに基づいてスケーリングルールを作成します。
(1) AdjustmentType が TotalCapaciy である場合、現在のスケーリンググループの ECS インスタンスの数量は指定した値に調整されます。対応する AdjustmentValue は 0 以上にする必要があります。
(2) AdjustmentType が QuantityChangeInCapacity または PercentChangeInCapacity である場合、対応する AdjustmentValue が正の数のときは追加する ECS インスタンスが増加し、対応する AdjustmentValue が負の数のときは ECS インスタンスが減少します。
(3) AdjustmentType が PercentChangeInCapacity である場合、Auto Scaling サービスでは、”現在のインスタンスの数 (合計容量) * AdjustmentValue/100” という式を使用し、結果を標準的な方法で丸めて、追加または削除する ECS インスタンスの数を確定します。
(4) スケーリングルールにクールダウン時間 (Cooldown) が指定されている場合、このルールを実行するスケーリングアクティビティの完了後に、指定された Cooldown がスケーリンググループに適用されます。それ以外の場合は、DefaultCooldown がスケーリンググループに適用されます。
(5) スケーリングルールには、最大 10 個のスケーリングルールを作成できます。
(6) 返されるスケーリングルールの唯一の識別子 (ScalingRuleAri) は、主に次のインターフェイスで使用できます。
- ExecuteScalingRule の ScalingRuleAri パラメーターを指定すると、スケーリングルールを手動で実行できます。
- CreateScheduledTask の ScheduledAction パラメーターを指定すると、スケーリングルールの実行スケジュールを設定できます。
リクエストパラメーター
名前 | 型 | 必須かどうか | 説明 |
---|---|---|---|
Action | String | はい | 操作インターフェイス、必須。パラメーター値は CreateScalingRule です。 |
ScalingGroupId | String | はい | スケーリングルールのスケーリンググループの ID。 |
AdjustmentType | String | はい | スケーリングルールの調整モード。オプション値: QuantityChangeInCapacity: 指定された ECS インスタンスの数を増減させるために使用します。 PercentChangeInCapacity: 指定した ECS インスタンスの比率を増減させるために使用します。 TotalCapacity: 現在のスケーリンググループの ECS インスタンスの数を、指定した値に調整するために使用します。 |
AdjustmentValue | Integer | はい | スケーリングルールの調整値。値範囲: QuantityChangeInCapacity: (0, 100] U (-100, 0]、 PercentChangeInCapacity: [0, 10000] U [-10000, 0] TotalCapacity: [0, 100] |
ScalingRuleName | String | いいえ | 表示されるスケーリンググループの名前。2 ~ 40 文字の英字または漢字の文字列です。数字、英字 (大文字と小文字を区別しない)、または漢字で始まる必要があり、”_”、”-“、”.” を使用できます。同じスケーリンググループのアカウント名は、同じリージョン内で一意です。このパラメーター値を指定しない場合、デフォルト値は ScalingRuleId です。 |
Cooldown | Integer | No | スケーリングルールのクールダウン時間です。値の範囲: [0, 86,400]、秒単位。デフォルト値は空です。 |
リターンパラメーター
名前 | 型 | 説明 |
---|---|---|
ScalingRuleId | String | スケーリングルールの ID。システムによって生成され、グローバルに一意です。 |
ScalingRuleAri | String | スケーリングルールの一意の ID。 |
エラーコード
すべてのインターフェイスに共通のエラーについては、「エラーコード表」クライアントエラーまたは サーバエラーを参照してください。
エラー | エラーコード | 説明 | HTTP ステータスコード |
---|---|---|---|
指定したスケーリンググループがこのアカウントに存在しません。 | InvalidScalingGroupId.NotFound | 指定したスケーリンググループが存在しません。 | 404 |
スケーリングルールの名前は既に存在します。 | InvalidScalingRuleName.Duplicate | 指定したパラメーター <parameter name> の値が重複しています。 |
400 |
スケーリングルールの数が、ユーザーが使用できる上限を超えています。 | QuotaExceeded.ScalingRule | 指定したスケーリンググループでスケーリングルールのクォータを超えました。 | 400 |
例
リクエストの例
http://ess.aliyuncs.com/?Action=CreateScalingRule
&ScalingGroupId=AG6CQdPU8OKdwLjgZcJ2eaQ
&AdjustmentType=QuantityChangeInCapacity
&AdjustmentValue=-10
&<Public Request Parameters>
戻り値の例
XML の例
<CreateScalingRuleResponse>
<ScalingRuleAri>
ari:acs:ess:cn-qingdao:1344371:scalingrule/eMKWG8SRNb9dBLAjweNI1Ik
</ScalingRuleAri>
<ScalingRuleId>eMKWG8SRNb9dBLAjweNI1Ik</ScalingRuleId>
<RequestId>570C84F4-A434-488A-AFA1-1E3213682B33</RequestId>
</CreateScalingRuleResponse>
JSON 形式
{
"RequestId": "04F0F334-1335-436C-A1D7-6C044FE73368",
"ScalingRuleId": "eMKWG8SRNb9dBLAjweNI1Ik",
"ScalingRuleAri":"ari:acs:ess:cn-qingdao:1344371:scalingrule/eMKWG8SRNb9dBLAjweNI1Ik"
}