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 に設定する場合は、ScalingRuleTimer を指定する必要があります。 このプロパティを metric に設定する場合は、ScalingRuleMetric を指定する必要があります。 このプロパティを mix に設定する場合は、ScalingRuleMetric を指定する必要があり、ビジネス要件に基づいて ScalingRuleTimer を指定できます。 |
MinReadyInstances | Integer | いいえ | いいえ | 使用可能なインスタンスの最小数。 | 有効な値:
説明 業務継続性を確保するために、アプリケーションのデプロイメントおよびロールバック中は、使用可能なインスタンスの最小数を 1 以上にすることをお勧めします。 |
MinReadyInstanceRatio | Integer | いいえ | いいえ | 使用可能なインスタンスの最小数の割合。 | 有効な値:
説明 MinReadyInstances が指定されていて、MinReadyInstanceRatio が -1 以外の有効な値に設定されている場合、MinReadyInstanceRatio の値を使用して、使用可能なインスタンスの最小数が計算されます。 たとえば、MinReadyInstances が 5 に設定されていて、MinReadyInstanceRatio が 50 に設定されている場合、50 を使用して使用可能なインスタンスの最小数が計算されます。 |
ScalingRuleMetric | Map | いいえ | はい | メトリックベースの自動スケーリングポリシーの構成。 | ScalingRuleType が metric に設定されている場合は、このプロパティを指定する必要があります。 次の情報に注意してください。
説明 自動スケーリングポリシーのトリガー条件として 1 つ以上のメトリックを指定できます。指定されたメトリック値のいずれかが指定された制限以上の場合、アプリケーションインスタンスはスケールアウトされます。スケールアウト操作後、アプリケーションインスタンスの数は、指定されたアプリケーションインスタンスの最大数以下になります。指定されたすべてのメトリック値が制限未満の場合、アプリケーションインスタンスはスケールインされます。スケールイン操作後、アプリケーションインスタンスの数は、指定されたアプリケーションインスタンスの最小数以上になります。 |
スケーリングルールタイマー | マップ | いいえ | はい | スケジュールされた自動スケーリング ポリシーの構成。 | スケジュールされた自動スケーリング ポリシーを使用する場合は、関連するプロパティまたは SDK を設定することで、このプロパティを指定する必要があります。 次の情報にご注意ください。
説明 業務継続性を確保するために、アプリケーションのデプロイメントおよびロールバック中は、使用可能なインスタンスの最小数が 1 以上であることをお勧めします。 使用可能なインスタンスの最小数が 0 の場合、アプリケーションのスペックアップ時に業務が中断されます。 |
ScalingRuleEnable | ブール値 | いいえ | いいえ | 自動スケーリング ポリシーを有効にするかどうかを指定します。 | 有効な値:
|
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 | はい | いいえ | 自動スケーリングポリシーをトリガーするために使用されるメトリック。 | 有効な値:
|
MetricTargetAverageUtilization | Integer | はい | いいえ | メトリックの制限。 |
|
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 | ブール値 | いいえ | いいえ | スケールイン機能を無効にするかどうかを指定します。 | この機能を無効にすると、アプリケーションインスタンスは削除されません。これにより、ピーク時のビジネスリスクを防ぎます。 有効な値:
|
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 | はい | いいえ | スケジュールされた自動スケーリングポリシーが実行される頻度。 | 有効な値:
|
Schedules | List | はい | いいえ | 1 日以内にスケジュールされた自動スケーリングポリシーがトリガーされる時点。 | なし。 |
BeginDate | String | いいえ | いいえ | スケジュールされた自動スケーリングポリシーの有効期間の開始日。 |
|
EndDate | String | いいえ | いいえ | スケジュールされた自動スケーリングポリシーの有効期間の終了日。 |
|
スケジュールの構文
"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"
]
}
}
}
}