ALIYUN::ESS::ScalingGroup リソースを使用して、スケーリンググループを作成できます。 スケーリンググループは、同じアプリケーションシナリオで使用される ECS インスタンスのコレクションです。 スケーリンググループは、作成直後には有効になりません。 ALIYUN::ESS::ScalingGroupEnable を使用してスケーリンググループを有効にする必要があります。 スケーリンググループが有効になると、スケーリングアクティビティをトリガーし、スケーリングルールを実行できます。
構文
{
"Type": "ALIYUN::ESS::ScalingGroup",
"Properties": {
"MultiAZPolicy": String,
"DesiredCapacity": Integer,
"NotificationConfigurations": List,
"ProtectedInstances": List,
"LaunchTemplateId": String,
"LaunchTemplateVersion": String,
"ScalingGroupName": String,
"VSwitchIds": List,
"DefaultCooldown": Integer,
"MinSize": Integer,
"GroupDeletionProtection": Boolean,
"MaxSize": Integer,
"InstanceId": String,
"VSwitchId": String,
"LoadBalancerIds": List,
"StandbyInstances": List,
"RemovalPolicys": List,
"HealthCheckType": String,
"DBInstanceIds": List,
"Tags": List,
"OnDemandPercentageAboveBaseCapacity": Integer,
"CompensateWithOnDemand": Boolean,
"ContainerGroupId": String,
"ScalingPolicy": String,
"SpotInstanceRemedy": Boolean,
"SpotInstancePools": Integer,
"OnDemandBaseCapacity": Integer,
"GroupType": String,
"LaunchTemplateOverrides": List,
"AllocationStrategy": String,
"AzBalance": Boolean,
"MaxInstanceLifetime": Integer,
"CustomPolicyARN": String,
"SpotAllocationStrategy": String,
"HealthCheckTypes": List,
"ServerGroups": List,
"ResourceGroupId": String
}
}プロパティ
プロパティ名 | タイプ | 必須 | 更新可能 | 説明 | 制約 |
MinSize | Integer | はい | はい | スケーリンググループ内の ECS インスタンスの最小数。 | 有効な値: 0 ~ 1000。 スケーリンググループ内の ECS インスタンスの数が MinSize 値より少ない場合、Auto Scaling は自動的に ECS インスタンスを作成します。 |
MaxSize | Integer | はい | はい | スケーリンググループ内の ECS インスタンスの最大数。 | 有効な値: 0 ~ 1000。 スケーリンググループ内の ECS インスタンスの数が MaxSize 値より多い場合、Auto Scaling は自動的に ECS インスタンスを削除します。 |
ScalingGroupName | String | いいえ | はい | スケーリンググループの表示名。 | 名前は 2~64 文字である必要があります。 数字、文字、または漢字で始まる必要があります。 文字、漢字、数字、アンダースコア (_)、ハイフン (-)、およびピリオド (.) を含めることができます。 名前は、同じリージョンおよび同じ Alibaba Cloud アカウント内で一意である必要があります。 デフォルト値: スケーリンググループの ID。 |
LaunchTemplateId | String | いいえ | はい | 起動テンプレートの ID。 スケーリンググループは、起動テンプレートを使用してインスタンス作成のための構成情報を取得します。 | なし |
LaunchTemplateVersion | String | いいえ | はい | ECS 起動テンプレートのバージョン。 | 有効な値:
|
RemovalPolicys | List | いいえ | はい | スケーリンググループから ECS インスタンスを削除するためのポリシー。 | 有効な値:
|
VSwitchId | String | いいえ | はい | vSwitch の ID。 | なし |
LoadBalancerIds | List | いいえ | はい | SLB インスタンスの ID。 | 複数の SLB インスタンスの ID を含む JSON 配列を指定できます。 最大 5 つの ID を指定できます。 ID はコンマ (,) で区切ります。 |
DefaultCooldown | Integer | いいえ | はい | スケーリングアクティビティ完了後のクールダウン時間。 | 有効値: 0~86,400。 単位: 秒。 デフォルト値: 300。 クールダウン時間中、スケーリンググループは他のスケーリングアクティビティを実行しません。 これは、CloudMonitor で作成された監視タスクによってトリガーされるスケーリングアクティビティに対してのみ有効です。 |
DBInstanceIds | List | いいえ | はい | ApsaraDB RDS インスタンスの ID。 | 複数の RDS インスタンスの ID を含む JSON 配列を指定できます。 最大 8 つの ID を指定できます。 ID はコンマ (,) で区切ります。 |
VSwitchIds | List | いいえ | はい | 複数の vSwitch の ID。 | 最大 5 つの vSwitch ID を指定できます。 VSwitchIds を指定した場合、VSwitchId パラメーターは無視されます。 vSwitch は指定された順序で優先順位が付けられます。 優先度の高い vSwitch があるゾーンで ECS インスタンスを作成できない場合は、次に優先度の高い vSwitch が自動的に使用されます。 |
MultiAZPolicy | String | いいえ | はい | マルチゾーンスケーリンググループ内の ECS インスタンスのスケーリングポリシー。 | 有効な値:
|
NotificationConfigurations | List | いいえ | はい | イベントおよびリソース変更通知の構成のリスト。 | 詳細については、「NotificationConfigurations プロパティ」をご参照ください。 |
ProtectedInstances | List | いいえ | はい | スケーリンググループ内の保護された ECS インスタンスの数。 | 最大 1,000 インスタンスまで指定できます。 |
StandbyInstances | List | いいえ | はい | スケーリンググループ内のスタンバイ ECS インスタンスの数。 | 最大 1,000 インスタンスまで指定できます。 |
HealthCheckTypes | List | いいえ | はい | スケーリンググループのヘルスチェックタイプのリスト。 | 有効な値:
|
HealthCheckType | String | いいえ | はい | ヘルスチェックタイプ。 | 有効な値:
|
GroupDeletionProtection | Boolean | いいえ | はい | スケーリンググループの削除保護を有効にするかどうかを指定します。 | 有効な値:
|
DesiredCapacity | Integer | いいえ | はい | スケーリンググループ内の ECS インスタンスの期待数。 Auto Scaling は、ECS インスタンスの数をこの値に自動的に維持します。 | 値は MinSize 以上、MaxSize 以下である必要があります。 |
InstanceId | String | いいえ | いいえ | ECS インスタンスの ID。 スケーリンググループを作成すると、システムは指定されたインスタンスから必要な構成情報を取得し、スケーリング設定を自動的に作成します。 | なし |
Tags | List | いいえ | はい | タグ。 | 最大 20 個のタグを追加できます。 詳細については、「Tags プロパティ」をご参照ください。 |
OnDemandPercentageAboveBaseCapacity | Integer | いいえ | はい | 基本容量を超えるインスタンスの中でのオンデマンドインスタンスの割合。 | スケーリンググループがオンデマンドインスタンスの最小数 (OnDemandBaseCapacity) を満たした後、このパラメーターは超過インスタンスの中でのオンデマンドインスタンスの割合を指定します。 有効な値: 0 ~ 100。 |
CompensateWithOnDemand | Boolean | いいえ | はい | 必要な ECS インスタンス数を満たすためにオンデマンドインスタンスを自動的に作成するかどうかを指定します。 | このパラメーターは、MultiAZPolicy が COST_OPTIMIZED に設定されている場合にのみ有効になります。 価格や在庫などの理由で十分なスポットインスタンスを作成できない場合に、必要な ECS インスタンス数を満たすためにオンデマンドインスタンスを自動的に作成するかどうかを指定します。 有効な値:
|
ContainerGroupId | String | いいえ | いいえ | ECI インスタンスの ID。 | なし |
ScalingPolicy | String | いいえ | いいえ | スケーリンググループの回収モード。 | 有効な値:
ScalingPolicy パラメーターはスケーリンググループの回収モードを指定します。 ただし、インスタンスがスケーリンググループから削除されるときに実行される特定のアクションは、RemoveInstances 操作の RemovePolicy パラメーターによって決定されます。 詳細については、「RemoveInstances」をご参照ください。 |
SpotInstanceRemedy | Boolean | いいえ | はい | 補足的なスポットインスタンスを有効にするかどうかを指定します。 | 有効な値:
|
SpotInstancePools | Integer | いいえ | はい | 使用可能なインスタンスタイプの数。 | スケーリンググループは、最もコストの低い複数のインスタンスタイプにわたってバランスの取れた方法でスポットインスタンスを作成します。 有効な値: 1 ~ 10。 |
OnDemandBaseCapacity | Integer | いいえ | はい | スケーリンググループで必要なオンデマンドインスタンスの最小数。 | 有効な値: 0 ~ 1000。 オンデマンドインスタンスの数がこの値を下回る場合、システムはオンデマンドインスタンスの作成を優先します。 |
GroupType | String | いいえ | いいえ | スケーリンググループによって管理されるインスタンスのタイプ。 | 有効な値:
|
LaunchTemplateOverrides | List | いいえ | はい | 起動テンプレートを拡張するインスタンスタイプに関する情報。 | なし |
AllocationStrategy | String | いいえ | はい | 容量割り当てポリシー。 | スケーリンググループが容量要件を満たすために利用可能なインスタンスタイプをどのように選択するかを決定します。 容量割り当てポリシーは、オンデマンド容量とプリエンプティブル容量の両方に適用されます。 このポリシーは、 有効な値:
|
AzBalance | Boolean | いいえ | はい | スケーリンググループの容量を複数のゾーンに均等に分散するかどうかを指定します。 | このパラメーターは、 有効な値:
|
MaxInstanceLifetime | Integer | いいえ | はい | スケーリンググループ内のインスタンスの最大存続期間。 | 単位: 秒。 有効値: 86400~ デフォルト値: null。 |
CustomPolicyARN | String | いいえ | はい | カスタムスケールインポリシー関数の ARN。 | このパラメーターは、RemovalPolicies の最初の削除ポリシーが CustomPolicy に設定されている場合にのみ有効です。 |
SpotAllocationStrategy | String | いいえ | はい | スポット容量の割り当てポリシー。 | このパラメーターを使用して、スポット容量の分散戦略を個別に指定します ( 有効な値:
|
ServerGroups | List | いいえ | いいえ | Server Load Balancer サーバーグループの構成。 | 詳細については、「ServerGroups プロパティ」をご参照ください。 |
ResourceGroupId | String | いいえ | はい | リソースグループの ID。 | なし |
ServerGroups 構文
"ServerGroups": [
{
"Type": String,
"ServerGroupId": String,
"Weight": Number,
"Port": Number
}
] ServerGroups プロパティ
プロパティ名 | タイプ | 必須 | 更新可能 | 説明 | 制約 |
Type | String | はい | いいえ | Server Load Balancer サーバーグループのタイプ。 | 有効な値:
|
ServerGroupId | String | はい | いいえ | Server Load Balancer サーバーグループの ID。 | なし |
Weight | Number | はい | いいえ | バックエンドサーバーとしての ECS または ECI インスタンスの重み。 | 有効な値: 0 ~ 100。 重みが大きいほど、ECS または ECI インスタンスにより多くのアクセスリクエストが割り当てられることを示します。 重みが 0 の場合、ECS または ECI インスタンスはアクセスリクエストを受信しません。 |
Port | Number | はい | いいえ | ECS または ECI インスタンスが使用するポート番号。 | 有効な値: 1 ~ 65535。 |
NotificationConfigurations 構文
"NotificationConfigurations": [
{
"NotificationArn": String,
"NotificationTypes": List
}
] NotificationConfigurations プロパティ
プロパティ名 | タイプ | 必須 | 更新可能 | 説明 | 制約 |
NotificationArn | String | はい | いいえ | ライフサイクルフックの通知受信者の識別子。 Simple Message Queue (formerly MNS) キューまたはトピックをサポートします。 | 有効な値:
|
NotificationTypes | List | はい | いいえ | Auto Scaling イベントおよびリソース変更の通知タイプ。 | なし |
Tags 構文
"Tags": [
{
"Key": String,
"Value": String
}
] Tags プロパティ
プロパティ名 | タイプ | 必須 | 更新可能 | 説明 | 制約 |
Key | String | はい | いいえ | タグキー。 | キーは 1~128 文字である必要があります。 |
Value | String | いいえ | いいえ | タグ値。 | 値は 0~128 文字です。 |
LaunchTemplateOverrides 構文
"LaunchTemplateOverrides": [
{
"InstanceType": String,
"WeightedCapacity": Integer,
"SpotPriceLimit": Number
}
] LaunchTemplateOverrides プロパティ
プロパティ名 | タイプ | 必須 | 更新可能 | 説明 | 制約 |
InstanceType | String | いいえ | はい | ECS インスタンスタイプ。 | スケーリンググループをインスタンスタイプの容量に基づいてスケーリングする場合は、このパラメーターと このパラメーターはインスタンスタイプを指定し、起動テンプレートのインスタンスタイプを上書きします。 説明 このパラメーターは、LaunchTemplateId パラメーターによって起動テンプレートが指定されている場合にのみ有効です。 |
WeightedCapacity | Integer | いいえ | はい | インスタンスタイプの重み。 | スケーリンググループをインスタンスタイプの容量に基づいてスケーリングする場合は、 このパラメーターはインスタンスタイプの重みを指定します。これは、スケーリンググループ内のそのタイプの単一インスタンスの容量を表します。 重みが大きいほど、期待される容量を満たすために必要なこのタイプのインスタンスが少なくなることを意味します。
例:
期待される容量を満たすために、スケーリンググループは 2 つの 有効値: 1~500。 説明 スケールアウト中、スケーリンググループの容量は、最大容量 (MaxSize) とインスタンスタイプの最大重みの合計を超えることはできません。 |
SpotPriceLimit | Number | いいえ | はい | スポットインスタンスの最大価格。 | このパラメーターは、 説明 このパラメーターは、 |
戻り値
Fn::GetAtt
ScalingGroupId: スケーリンググループの ID。
ScalingGroupName: スケーリンググループの名前。
Arn: Alibaba Cloud リソースネーム (ARN)。
例
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VSwitch:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
Label:
zh-cn: vSwitch ID
en: VSwitch ID
LaunchTemplateId:
AssociationProperty: ALIYUN::ECS::LaunchTemplate::LaunchTemplateId
Type: String
Resources:
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
Properties:
VSwitchId:
Ref: VSwitch
LaunchTemplateId:
Ref: LaunchTemplateId
MaxSize: 3
ScalingGroupName: TestScalingGroup
MinSize: 0
Outputs:
ScalingGroupId:
Description: スケーリンググループの ID。
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupId
ScalingGroupName:
Description: スケーリンググループの名前。
Value:
Fn::GetAtt:
- ScalingGroup
- ScalingGroupName{
"ROSTemplateFormatVersion": "2015-09-01",
"Parameters": {
"VSwitch": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Type": "String",
"Label": {
"zh-cn": "vSwitch ID",
"en": "VSwitch ID"
}
},
"LaunchTemplateId":{
"AssociationProperty":"ALIYUN::ECS::LaunchTemplate::LaunchTemplateId",
"Type":"String"
}
},
"Resources": {
"ScalingGroup": {
"Type": "ALIYUN::ESS::ScalingGroup",
"Properties": {
"VSwitchId": {
"Ref": "VSwitch"
},
"LaunchTemplateId": {
"Ref": "LaunchTemplateId"
},
"MaxSize": 3,
"ScalingGroupName": "TestScalingGroup",
"MinSize": 0
}
}
},
"Outputs": {
"ScalingGroupId": {
"Description": "スケーリンググループの ID。",
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupId"
]
}
},
"ScalingGroupName": {
"Description": "スケーリンググループの名前。",
"Value": {
"Fn::GetAtt": [
"ScalingGroup",
"ScalingGroupName"
]
}
}
}
}スケーリンググループにスケーリング設定が 1 つしかなく、その設定が他のリソースに依存している場合は、テンプレートのスケーリンググループに DependsOn プロパティを設定します。 これにより、スケーリング設定が必要とするリソースへの依存関係が作成されます。
ScalingConfiguration は SecurityGroup リソースに依存するため、ScalingGroup は SecurityGroup に対する DependsOn 依存関係を持ちます。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
VpcId:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
VSwitchId:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
AssociationPropertyMetadata:
VpcId: ${VpcId}
Resources:
ScalingGroupEnable:
Type: ALIYUN::ESS::ScalingGroupEnable
Properties:
ScalingConfigurationId:
Ref: ScalingConfiguration
ScalingGroupId:
Ref: ScalingGroup
ScalingRuleArisExecuteVersion: 0
SecurityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
SecurityGroupName:
Ref: ALIYUN::StackName
VpcId:
Ref: VpcId
SecurityGroupIngress:
- PortRange: '-1/-1'
Priority: 1
SourceCidrIp: 0.0.X.X/0
IpProtocol: all
NicType: internet
SecurityGroupEgress:
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.X.X/0
NicType: internet
- PortRange: '-1/-1'
Priority: 1
IpProtocol: all
DestCidrIp: 0.0.X.X/0
NicType: intranet
ScalingConfiguration:
Type: ALIYUN::ESS::ScalingConfiguration
DependsOn: ScalingGroup
Properties:
InstanceType: ecs.g6e.large
ImageId: centos_7_04_64_20G_alibase_201701015.vhd
SystemDiskCategory: cloud_essd
SystemDiskSize: 100
ScalingConfigurationName:
Ref: ALIYUN::StackName
ScalingGroupId:
Ref: ScalingGroup
SecurityGroupId:
Ref: SecurityGroup
ScalingGroup:
Type: ALIYUN::ESS::ScalingGroup
DependsOn: SecurityGroup
Properties:
MaxSize: 3
MinSize: 0
DefaultCooldown: 15
VSwitchId:
Ref: VSwitchId
Outputs: {}