All Products
Search
Document Center

Auto Scaling:CreateScalingGroup

Last Updated:Apr 08, 2024

Creates scaling groups. You can call the CreateScalingGroup operation to automate the adjustment of computing power of specific type based on your business requirements and scaling polices.

Usage notes

A scaling group is a group of Elastic Compute Service (ECS) instances that can be used in similar business scenarios.

You can create only a limited number of scaling groups in a region. Go to Quota Center to check your quota of scaling groups.

A scaling group does not immediately take effect after you create the scaling group. You must call the EnableScalingGroup operation to enable the scaling group. After you enable a scaling group, Auto Scaling can execute scaling rules to trigger scaling activities in the scaling group.

If you want to associate Classic Load Balancer (CLB, formerly known as Server Load Balancer or SLB) instances and ApsaraDB RDS instances with a scaling group, the CLB instances, ApsaraDB RDS instances, and scaling group must reside in the same region. For more information, see Regions and zones.

If you associate a CLB instance with a scaling group, Auto Scaling automatically adds ECS instances in the scaling group to the backend server groups of the associated CLB instance. You can specify a server group to which ECS instances can be added. You can add ECS instances to the following types of server groups:

Note

If you specify the default server group and multiple vServer groups at the same time, ECS instances are added to all the specified server groups.

  • Default server group: a group of ECS instances that are used to receive requests. If you do not specify a vServer group or a primary/secondary server group for a listener, requests are forwarded to the ECS instances in the default server group.

  • vServer group: If you want to forward requests to different backend servers or configure domain name- or URL-based routing methods, you can specify vServer groups.

The default weight of an ECS instance that is added as a backend server of a CLB instance is 50. The CLB instance that you want to associate with a scaling group must meet the following requirements:

  • The CLB instance must be in the Active state. You can call the DescribeLoadBalancers operation to query the status of a CLB instance.

  • The health check feature must be enabled on all listener ports that are configured for the CLB instance. Otherwise, the scaling group cannot be created.

If you associate an Application Load Balancer (ALB) or Network Load Balancer (NLB) server group with a scaling group, Auto Scaling automatically adds ECS instances in the scaling group to the ALB or NLB server group to process requests distributed by the ALB or NLB instance to which the ALB or NLB server group belongs. You can specify multiple ALB or NLB server groups, but the server groups must belong to the same virtual private cloud (VPC) as the scaling group. For more information, see AttachAlbServerGroups or AttachServerGroups.

If you associate an ApsaraDB RDS instance with a scaling group, Auto Scaling automatically adds the private IP addresses of the ECS instances that are in the scaling group to the IP address whitelist of the ApsaraDB RDS instance. The ApsaraDB RDS instance that you want to associate with a scaling group must meet the following requirements:

  • The ApsaraDB RDS instance must be in the Running state. You can call the DescribeDBInstances operation to query the status of an ApsaraDB RDS instance.

  • The number of IP addresses in the IP address whitelist of the ApsaraDB RDS instance cannot exceed the upper limit. For more information, see Configure IP address whitelists.

If you set MultiAZPolicy of the scaling group to COST_OPTIMIZED, take note of the following items:

  • You can use OnDemandBaseCapacity, OnDemandPercentageAboveBaseCapacity, and SpotInstancePools to specify the instance allocation method based on the cost optimization policy. This instance allocation method is prioritized during scaling.

  • If you do not specify OnDemandBaseCapacity, OnDemandPercentageAboveBaseCapacity, or SpotInstancePools, the instance types that are provided at the lowest price are used to create instances based on the cost optimization policy.

If you set Tag.N.Propagate of the scaling group to true, take note of the following items:

  • Tags that you add to the scaling group cannot be propagated to existing instances in the scaling group. Tags that you add to the scaling group are propagated to only new instances.

  • If you specify instance tags in the scaling configuration that is used to create instances and propagate the tags that you add to the scaling group to the instances, all tags exist at the same time.

  • If the tag key that you specify in a scaling configuration and the tag key that you add to the scaling group of the scaling configuration are the same, the tag value that you specify in the scaling configuration is preferentially used.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

Request parameters

Parameter

Type

Required

Example

Description

Action

String

Yes

CreateScalingGroup

The operation that you want to perform. Set the value to CreateScalingGroup.

ScalingGroupName

String

No

scalinggroup****

The name of the scaling group. The name of a scaling group must be unique in a region. The name must be 2 to 64 characters in length and can contain letters, digits, underscores (_), hyphens (-), and periods (.). The name must start with a letter or a digit.

If you do not specify this parameter, the value of ScalingGroupId is used.

LaunchTemplateId

String

No

lt-m5e3ofjr1zn1aw7****

The ID of the launch template that is used by Auto Scaling to create instances.

LaunchTemplateVersion

String

No

Default

The version number of the launch template. Valid values:

  • A fixed template version number.

  • Default: the default template version.

  • Latest: the latest template version.

InstanceId

String

No

i-28wt4****

The ID of ECS instance N from which Auto Scaling obtains the required configuration information and uses the information to automatically create a scaling configuration.

RegionId

String

Yes

cn-qingdao

The region ID of the scaling group. For more information, see Regions and zones.

MinSize

Integer

Yes

2

The minimum number of ECS instances that must be contained in the scaling group. If the number of ECS instances in the scaling group is less than the value of MinSize, Auto Scaling automatically creates ECS instances until the number of instances in the scaling group is equal to the minimum number.

Note

The value of MinSize must be less than or equal to the value of MaxSize.

MaxSize

Integer

Yes

20

The maximum number of ECS instances that can be contained in the scaling group. If the number of ECS instances in the scaling group is greater than the value of MaxSize, Auto Scaling automatically removes ECS instances until the number of instances in the scaling group is equal to the maximum number.

The value range of MaxSize varies based on the instance quota. You can go to Quota Center to check the maximum number of instances that a scaling group can contain.

For example, if a scaling group can contain up to 2,000 instances, the value range of MaxSize is 0 to 2000.

DefaultCooldown

Integer

No

300

The cooldown period after a scaling activity is complete. Valid values: 0 to 86400. Unit: seconds.

During the cooldown period, Auto Scaling does not execute scaling activities that are triggered by CloudMonitor event-triggered tasks.

Default value: 300.

LoadBalancerIds

String

No

["lb-bp1u7etiogg38yvwz****", "lb-bp168cqrux9ai9l7f****", "lb-bp1jv3m9zvj22ufxp****"]

The IDs of CLB instances that you want to associate with the scaling group. The value can be a JSON array that contains multiple CLB instance IDs. Separate multiple IDs with commas (,).

You can associate only a limited number of CLB instances with a scaling group. Go to Quota Center to check the quota of CLB instances that you can associate with a scaling group.

DBInstanceIds

String

No

["rm-bp142f86de0t7****", "rm-bp18l1z42ar4o****", "rm-bp1lqr97h4aqk****"]

The IDs of the ApsaraDB RDS instances that you want to associate with the scaling group. The value can be a JSON array that contains multiple ApsaraDB RDS instance IDs. Separate multiple IDs with commas (,).

You can associate only a limited number of ApsaraDB RDS instances with a scaling group. Go to Quota Center to check the quota of ApsaraDB RDS instances that you can associate with a scaling group.

RemovalPolicy.1

String

No

OldestScalingConfiguration

The first step of the instance removal policy. You cannot set RemovalPolicy.1, RemovalPolicy.2, and RemovalPolicy.3 to the same value.

  • OldestInstance: removes ECS instances that are added at the earliest point in time to the scaling group.

  • NewestInstance: removes ECS instances that are most recently added to the scaling group.

  • OldestScalingConfiguration: removes ECS instances that are created based on the earliest scaling configuration.

  • CustomPolicy: removes ECS instances based on the custom scaling policy (Function).

The scaling configuration source specified by the OldestScalingConfiguration setting can be a scaling configuration or a launch template. You can specify CustomPolicy only as the value of RemovalPolicy.1. If you set RemovalPolicy.1 to CustomPolicy, you must also specify CustomPolicyARN.

Note

The removal of ECS instances from a scaling group is also affected by the value of MultiAZPolicy. For more information, see Configure a combination policy for removing instances.

RemovalPolicy.2

String

No

OldestInstance

The second step of the instance removal policy. You cannot set RemovalPolicy.1, RemovalPolicy.2, and RemovalPolicy.3 to the same value. Valid values:

  • OldestInstance: removes ECS instances that are added at the earliest point in time to the scaling group.

  • NewestInstance: removes ECS instances that are most recently added to the scaling group.

  • OldestScalingConfiguration: removes ECS instances that are created based on the earliest scaling configuration.

Note

The removal of ECS instances from a scaling group is also affected by the value of MultiAZPolicy. For more information, see Configure a combination policy for removing instances.

RemovalPolicy.3

String

No

NewestInstance

The third step of the instance removal policy. You cannot set RemovalPolicy.1, RemovalPolicy.2, and RemovalPolicy.3 to the same value. Valid values:

  • OldestInstance: removes ECS instances that are added at the earliest point in time to the scaling group.

  • NewestInstance: removes ECS instances that are most recently added to the scaling group.

  • OldestScalingConfiguration: removes ECS instances that are created based on the earliest scaling configuration.

Note

The removal of ECS instances from a scaling group is also affected by the value of MultiAZPolicy. For more information, see Configure a combination policy for removing instances.

VSwitchId

String

No

vsw-bp14zolna43z266bq****

The ID of the vSwitch. If you specify VSwitchId, the network type of the scaling group is virtual private cloud (VPC).

Note

If you do not specify VSwitchId or VSwitchIds.N, the network type of the scaling group is classic network.

MultiAZPolicy

String

No

PRIORITY

The scaling policy for the multi-zone scaling group of the ECS type. Valid values:

  • PRIORITY: Auto Scaling scales ECS instances based on the priority of the vSwitch that is specified by VSwitchIds.N. Auto Scaling scales instances in the zone where the vSwitch of the highest priority resides. If the scaling fails, Auto Scaling scales instances in the zone where the vSwitch of the next highest priority resides.

  • COST_OPTIMIZED: Auto Scaling preferentially scales out ECS instances whose vCPUs are provided at the lowest price and scales in ECS instances whose vCPUs are provided at the highest price. If preemptible instance types are specified in the scaling configuration, Auto Scaling preferentially scales out preemptible instances. You can use CompensateWithOnDemand to specify whether to automatically create pay-as-you-go instances when preemptible instances cannot be created due to insufficient resources.

    Note

    The COST_OPTIMIZED setting takes effect only when multiple instance types are specified or preemptible instances are used.

  • BALANCE: Auto Scaling evenly distributes ECS instances across zones that are specified for the scaling group. If ECS instances are unevenly distributed across zones due to insufficient resources, you can call the RebalanceInstance operation to evenly distribute the instances across the zones.

  • COMPOSABLE: You can flexibly combine the preceding policies based on your business requirements.

Default value: PRIORITY.

HealthCheckType

String

No

ECS

The health check mode of the scaling group. Valid values:

  • NONE: Auto Scaling does not check the health status of instances.

  • ECS: Auto Scaling checks the health status of ECS instances in the scaling group.

  • LOAD_BALANCER: Auto Scaling checks the health status of instances based on the health check results of load balancers. The health check results of CLB instances are not supported.

Default value: ECS.

Note

HealthCheckType has the same effect as HealthCheckTypes. You can select one of them to specify based on your business requirements. If you specify HealthCheckType, HealthCheckTypes is ignored. HealthCheckTypes is optional.

ScalingPolicy

String

No

recycle

The reclaim mode of the scaling group. Valid values:

  • recycle: economical mode

  • release: release mode

  • forcerelease: forced release mode

    Note

    If you set this parameter to forcerelease, Auto Scaling forcibly releases instances that are in the Running state during scale-ins. Forced release is equivalent to power outage. Forced release may cause ephemeral data on instances to be cleared beyond recovery. Exercise caution when you specify this setting.

  • forcerecycle: forceable recycle mode

    Note

    If you set this parameter to forcerecycle, Auto Scaling forcibly shuts down instances that are in the Running state during scale-ins. Forced recycle is equivalent to power outage. Forced recycle may cause ephemeral data on instances to be cleared beyond recovery. Exercise caution when you specify this setting.

ScalingPolicy specifies the reclaim mode of scaling groups. The policy that is used to remove ECS instances from scaling groups is specified by RemovePolicy of the RemoveInstances operation. For more information, see RemoveInstances.

ClientToken

String

No

123e4567-e89b-12d3-a456-42665544****

The client token that you want to use to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length. For more information, see How to ensure idempotence.

OnDemandBaseCapacity

Integer

No

30

The minimum number of pay-as-you-go instances that must be contained in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is less than the value of this parameter, Auto Scaling preferentially creates pay-as-you-go instances.

If you set MultiAZPolicy to COMPOSABLE Policy, the default value of this parameter is 0.

OnDemandPercentageAboveBaseCapacity

Integer

No

20

The percentage of pay-as-you-go instances among the excess instances when the requirement on the minimum number of pay-as-you-go instances is met. Valid values: 0 to 100.

If you set MultiAZPolicy to COMPOSABLE Policy, the default value is 100.

SpotInstanceRemedy

Boolean

No

true

Specifies whether to supplement preemptible instances. If you set this parameter to true, Auto Scaling creates an instance to replace a preemptible instance when Auto Scaling receives a system message which indicates that the preemptible instance is to be reclaimed.

CompensateWithOnDemand

Boolean

No

true

Specifies whether to automatically create pay-as-you-go instances to meet the requirement on the number of ECS instances when the expected capacity of preemptible instances cannot be provided due to reasons such as cost-related issues and insufficient resources. This parameter is supported only if you set MultiAZPolicy to COST_OPTIMIZED. Valid values:

  • true

  • false

Default value: true.

SpotInstancePools

Integer

No

5

The number of instance types that you want to specify. Auto Scaling evenly creates preemptible instances of multiple instance types that are provided at the lowest price in the scaling group. Valid values: 1 to 10.

If you set MultiAZPolicy to COMPOSABLE, the default value of this parameter is 2.

DesiredCapacity

Integer

No

5

The expected number of ECS instances in the scaling group. Auto Scaling maintains the expected number of ECS instances in the scaling group. The expected number cannot be greater than the value of MaxSize and cannot be less than the value of MinSize.

GroupDeletionProtection

Boolean

No

true

Specifies whether to enable deletion protection for the scaling group. Valid values:

  • true: enables deletion protection for the scaling group. The scaling group cannot be deleted.

  • false: disables deletion protection for the scaling group.

Default value: false.

GroupType

String

No

ECS

The type of instances that are managed by the scaling group. Valid values:

  • ECS: ECS instances

  • ECI: elastic container instances

Default value: ECS.

ContainerGroupId

String

No

eci-uf6fonnghi50u374****

The ID of the elastic container instance.

VSwitchIds.N

String

No

vsw-bp14zolna43z266bq****

The IDs of vSwitches. If you specify VSwitchIds.N, VSwitchId is ignored. If you specify VSwitchIds.N, the network type of the scaling group is VPC.

If you specify multiple vSwitches, take note of the following items:

  • The vSwitches must belong to the same VPC.

  • The vSwitches can belong to different zones.

  • The vSwitches are sorted in ascending order based on their priorities. The first vSwitch that is specified by VSwitchIds.N has the highest priority. When ECS instances cannot be created in the zone where the vSwitch of the highest priority resides, Auto Scaling creates instances in the zone where the vSwitch of the next highest priority resides.

Note

If you do not specify VSwitchId or VSwitchIds.N, the network type of the scaling group is classic network.

LifecycleHook.N.DefaultResult

String

No

CONTINUE

The action that Auto Scaling performs when the lifecycle hook times out. Valid values:

  • CONTINUE: Auto Scaling continues to respond to a scale-in or scale-out request.

  • ABANDON: Auto Scaling releases ECS instances that are created during scale-outs, or removes ECS instances from the scaling group during scale-ins.

If multiple lifecycle hooks in the scaling group are triggered during scale-ins and you set LifecycleHook.N.DefaultResult to ABANDON for one of the lifecycle hooks, Auto Scaling immediately performs the action after the lifecycle hook whose LifecycleHook.N.DefaultResult is set to ABANDON times out. In this case, other lifecycle hooks time out ahead of schedule. In other cases, Auto Scaling performs the action only after all lifecycle hooks time out. The action that Auto Scaling performs is determined by the value of LifecycleHook.N.DefaultResult that you set for the lifecycle hook that last times out.

Default value: CONTINUE.

LifecycleHook.N.LifecycleHookName

String

No

lifecyclehook****

The name of the lifecycle hook. After you specify this parameter, you cannot change the name of the lifecycle hook. If you do not specify this parameter, the name of the lifecycle hook is the same as the ID of the lifecycle hook.

LifecycleHook.N.LifecycleTransition

String

No

SCALE_OUT

The type of scaling activity to which you want to apply the lifecycle hook. Valid values:

  • SCALE_OUT

  • SCALE_IN

Note

If you create lifecycle hooks for the scaling group, you must also specify LifecycleHook.N.LifecycleTransition.

LifecycleHook.N.NotificationMetadata

String

No

Test

The fixed string that you want to include in a notification. When a lifecycle hook takes effect, Auto Scaling sends a notification. The fixed string cannot exceed 128 characters in length. Auto Scaling sends the value of NotificationMetadata together with the notification. This allows you to categorize and manage notifications efficiently. If you specify NotificationMetadata, you must also specify NotificationArn.

LifecycleHook.N.NotificationArn

String

No

acs:ess:cn-hangzhou:1111111111:queue/queue2

The Alibaba Cloud Resource Name (ARN) of the notification method that Auto Scaling uses to send a notification when a lifecycle hook takes effect. This method can be a Message Service (MNS) queue or an MNS topic. Specify the value in the following format: acs:ess:{region}:{account-id}:{resource-relative-id}.

  • region: the region ID of the scaling group

  • account-id: the ID of the Alibaba Cloud account

Examples:

  • MNS queue: acs:ess:{region}:{account-id}:queue/{queuename}

  • MNS topic: acs:ess:{region}:{account-id}:topic/{topicname}

LifecycleHook.N.HeartbeatTimeout

Integer

No

600

The period of time before the lifecycle hook times out. When the lifecycle hook times out, Auto Scaling performs the action that is specified by DefaultResult. Valid values: 30 to 21600. Unit: seconds.

After you create a lifecycle hook, you can call the RecordLifecycleActionHeartbeat operation to extend the timeout period of the lifecycle hook. You can also call the CompleteLifecycleAction operation to end the timeout period ahead of schedule.

Default value: 600.

VServerGroup.N.VServerGroupAttribute.N.VServerGroupId

String

No

rsp-bp1443g77****

The ID of vServer group N.

For more information, see AttachVServerGroups.

VServerGroup.N.VServerGroupAttribute.N.Weight

Integer

No

100

The weight of an ECS instance as a backend server after Auto Scaling adds the ECS instance to vServer group N. If you increase the weight of an ECS instance in vServer group N, the number of access requests that are forwarded to the ECS instance increases. If you set Weight to 0 for an ECS instance in vServer group N, no access requests are forwarded to the ECS instance. Valid values: 0 to 100. Default value: 50.

For more information, see AttachVServerGroups.

VServerGroup.N.VServerGroupAttribute.N.Port

Integer

No

22

The port number that is used by an ECS instance after Auto Scaling adds the ECS instance to vServer group N. Valid values: 1 to 65535.

For more information, see AttachVServerGroups.

VServerGroup.N.LoadBalancerId

String

No

lb-bp1u7etiogg38yvwz****

The ID of the CLB instance to which vServer group N belongs.

For more information, see AttachVServerGroups.

Tag.N.Key

String

No

Department

The key of tag N.

Tag.N.Value

String

No

Finance

The value of tag N.

Tag.N.Propagate

Boolean

No

false

Specifies whether tag N can be propagated. Valid values:

  • true: propagates tag N to instances that are newly created and does not propagate tag N to instances that are already running in the scaling group.

  • false: does not propagate tag N to any instances.

Default value: false.

LaunchTemplateOverride.N.InstanceType

String

No

ecs.c5.xlarge

Instance type N. The instance type that is specified by using this parameter overrides the instance type that is specified in the launch template. If you want to scale instances in the scaling group based on the weights of instance types, you must specify LaunchTemplateOverride.N.InstanceType and LaunchTemplateOverride.N.WeightedCapacity at the same time.

You can specify N instance types by using the Extend Instance Type of Launch Template feature. Valid values of N: 1 to 10.

Note

This parameter takes effect only if you specify LaunchTemplateId.

For information about the valid values of InstanceType in InstanceTypeOverride.N.InstanceType, see Overview of instance families.

LaunchTemplateOverride.N.WeightedCapacity

Integer

No

4

The weight of instance type N. The weight of an instance type specifies the capacity of a single instance of the instance type in the scaling group. If you want to scale instances in the scaling group based on the weights of instance type N, you must specify LaunchTemplateOverride.N.WeightedCapacity after you specify LaunchTemplateOverride.N.InstanceType. The values of N in the two parameters must be the same.

A higher weight specifies that a smaller number of instances of the specified instance type is required to meet the expected capacity requirement.

Performance metrics such as the number of vCPUs and the memory size of each instance type may vary. You can specify different weights for different instance types based on your business requirements.

Example:

  • Current capacity: 0

  • Expected capacity: 6

  • Capacity of ecs.c5.xlarge: 4

To meet the expected capacity requirement, Auto Scaling must scale out two ecs.c5.xlarge instances.

Note

The capacity of the scaling group during a scale-out cannot exceed the sum of the maximum number of instances that is specified by MaxSize and the maximum weight of the instance types.

Valid values of WeightedCapacity in InstanceTypeOverride.N.WeightedCapacity: 1 to 500.

LaunchTemplateOverride.N.SpotPriceLimit

Float

No

0.025

The maximum bid price of instance type N that is specified by LaunchTemplateOverride.N.InstanceType. You can specify N instance types by using the Extend Instance Type of Launch Template feature. Valid values of N: 1 to 10.

Note

This parameter takes effect only if you specify LaunchTemplateId.

AlbServerGroup.N.AlbServerGroupId

String

No

sgp-ddwb0y0g6y9bjm****

The ID of ALB server group N.

N specifies the serial number of the ALB server group. You can associate only a limited number of ALB server groups with a scaling group. To view the available quota or manually request a quota increase, go to Quota Center.

AlbServerGroup.N.Weight

Integer

No

100

The weight of the ECS instance as a backend server after Auto Scaling adds the ECS instance to ALB server group N. If you increase the weight of an ECS instance in ALB server group N, the number of access requests that are forwarded to the ECS instance increases. If you set Weight to 0 for an ECS instance in ALB server group N, no access requests are forwarded to the ECS instance. Valid values: 0 to 100.

N specifies the serial number of the ALB server group.

AlbServerGroup.N.Port

Integer

No

22

The port number used by an ECS instance after Auto Scaling adds the ECS instance to ALB server group N. Valid values: 1 to 65535.

N specifies the serial number of the ALB server group.

Note

If the N values are the same but the port numbers are different, Auto Scaling associates multiple ports of ALB server group N with the scaling group.

ServerGroup.N.ServerGroupId

String

No

sgp-5yc3bd9lfyh*****

The ID of server group N.

ServerGroup.N.Type

String

No

ALB

The type of server group N. Valid values:

  • ALB: ALB server groups

  • NLB: NLB server groups

ServerGroup.N.Weight

Integer

No

100

The weight of an ECS instance in the scaling group as a backend server after Auto Scaling adds the ECS instance to server group N. Valid values: 0 to 100.

If you increase the weight of an ECS instance in server group N, the number of access requests that are forwarded to the ECS instance also increases. If you set Weight to 0 for an ECS instance in server group N, no access requests are forwarded to the ECS instance.

ServerGroup.N.Port

Integer

No

22

The port number that is used by an ECS instance in the scaling group after Auto Scaling adds the ECS instance to server group N. Valid values: 1 to 65535.

AzBalance

Boolean

No

false

Specifies whether to evenly distribute instances in the scaling group across multiple zones. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE. Valid values:

  • true

  • false

Default value: false.

AllocationStrategy

String

No

priority

The allocation policy of instances. Auto Scaling selects instance types based on the allocation policy to create instances. The policy can be applied to pay-as-you-go instances and preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE. Valid values:

  • priority: Auto Scaling selects instance types based on the specified order of the instance types to create the required number of instances.

  • lowestPrice: Auto Scaling selects instance types that have the lowest unit price of vCPUs to create the required number of instances.

Default value: priority.

SpotAllocationStrategy

String

No

lowestPrice

The allocation policy of preemptible instances. You can use this parameter to individually specify the allocation policy for preemptible instances. This parameter takes effect only if you set MultiAZPolicy to COMPOSABLE. Valid values:

  • priority: Auto Scaling selects instance types based on the specified order of the instance types to create the required number of preemptible instances.

  • lowestPrice: Auto Scaling selects instance types that have the lowest unit price of vCPUs to create the required number of preemptible instances.

Default value: priority.

MaxInstanceLifetime

Integer

No

null

The maximum life span of an instance in the scaling group. Unit: seconds.

Valid values: 86400 to the value of Integer.maxValue.

Default value: null.

Note

This parameter is unavailable for scaling groups of the Elastic Container Instance type or scaling groups whose ScalingPolicy is set to recycle.

CustomPolicyARN

String

No

acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name

The ARN of the custom scale-in policy (Function). This parameter takes effect only if you specify CustomPolicy as the value of RemovalPolicy.1.

ResourceGroupId

String

No

rg-123****

The ID of the resource group to which you want to add the scaling group.

Note

If you specify this parameter, new scaling groups are added to the specified resource group. If you do not specify this parameter, new scaling groups are added to the default resource group.

LoadBalancerConfig.N.LoadBalancerId

String

No

147b46d767c-cn-qingdao-cm5****

The ID of the CLB instance.

LoadBalancerConfig.N.Weight

Integer

No

10

The weight of an ECS instance as a backend server after Auto Scaling adds the ECS instance to the CLB backend server group. If you increase the weight of an ECS instance in the CLB backend server group, the number of access requests that are forwarded to the ECS instance also increases. If you set Weight to 0 for an ECS instance in the CLB backend server group, no access requests are forwarded to the ECS instance.

Valid values: 0 to 100.

HealthCheckTypes.N

String

No

ECS

The health check modes of the scaling group. Valid values:

  • NONE: Auto Scaling does not check the health status of instances.

  • ECS: Auto Scaling checks the health status of ECS instances in the scaling group.

  • LOAD_BALANCER: Auto Scaling checks the health status of ECS instances based on the health check results of load balancers. The health check results of CLB instances are not supported as the health check basis for instances in the scaling group.

Default value: ECS.

Note

HealthCheckTypes has the same effect as HealthCheckType. You can select one of them to specify based on your business requirements. If you specify HealthCheckTypes, HealthCheckType is ignored. HealthCheckType is optional.

Response parameters

Parameter

Type

Example

Description

RequestId

String

473469C7-AA6F-4DC5-B3DB-A3DC0DE3****

The request ID.

ScalingGroupId

String

asg-bp14wlu85wrpchm0****

The ID of the scaling group.

Examples

Sample requests

http(s)://ess.aliyuncs.com/?Action=CreateScalingGroup
&ScalingGroupName=scalinggroup****
&LaunchTemplateId=lt-m5e3ofjr1zn1aw7****
&LaunchTemplateVersion=Default
&InstanceId=i-28wt4****
&RegionId=cn-qingdao
&MinSize=2
&MaxSize=20
&DefaultCooldown=300
&LoadBalancerIds=["lb-bp1u7etiogg38yvwz****", "lb-bp168cqrux9ai9l7f****", "lb-bp1jv3m9zvj22ufxp****"]
&DBInstanceIds=["rm-bp142f86de0t7****", "rm-bp18l1z42ar4o****", "rm-bp1lqr97h4aqk****"]
&RemovalPolicy.1=OldestScalingConfiguration
&RemovalPolicy.2=OldestInstance
&RemovalPolicy.3=NewestInstance
&VSwitchId=vsw-bp14zolna43z266bq****
&MultiAZPolicy=PRIORITY
&HealthCheckType=ECS
&ScalingPolicy=recycle
&ClientToken=123e4567-e89b-12d3-a456-42665544****
&OnDemandBaseCapacity=30
&OnDemandPercentageAboveBaseCapacity=20
&SpotInstanceRemedy=true
&CompensateWithOnDemand=true
&SpotInstancePools=5
&DesiredCapacity=5
&GroupDeletionProtection=true
&GroupType=ECS
&ContainerGroupId=eci-uf6fonnghi50u374****
&VSwitchIds=["vsw-bp14zolna43z266bq****"]
&LifecycleHook=[{"DefaultResult":"CONTINUE","LifecycleHookName":"lifecyclehook****","LifecycleTransition":"SCALE_OUT","NotificationMetadata":"Test","NotificationArn":"acs:ess:cn-hangzhou:1111111111:queue/queue2","HeartbeatTimeout":600}]
&VServerGroup=[{"VServerGroupAttribute":[{"VServerGroupId":"rsp-bp1443g77****","Weight":100,"Port":22}],"LoadBalancerId":"lb-bp1u7etiogg38yvwz****"}]
&Tag=[{"Key":"Department","Value":"Finance","Propagate":false}]
&LaunchTemplateOverride=[{"InstanceType":"ecs.c5.xlarge","WeightedCapacity":4,"SpotPriceLimit":0.025}]
&AlbServerGroup=[{"AlbServerGroupId":"sgp-ddwb0y0g6y9bjm****","Weight":100,"Port":22}]
&ServerGroup=[{"ServerGroupId":"sgp-5yc3bd9lfyh*****","Type":"ALB","Weight":100,"Port":22}]
&AzBalance=false
&AllocationStrategy=priority
&SpotAllocationStrategy=lowestPrice
&CustomPolicyARN=acs:fc:cn-zhangjiakou:16145688****:services/ess_custom_terminate_policy.LATEST/functions/ess_custom_terminate_policy_name
&ResourceGroupId=rg-123****
&LoadBalancerConfig=[{"LoadBalancerId":"147b46d767c-cn-qingdao-cm5****","Weight":10}]
&HealthCheckTypes=["ECS"]
&<Common request parameters>

Sample success responses

XML format

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateScalingGroupResponse>
    <RequestId>473469C7-AA6F-4DC5-B3DB-A3DC0DE3****</RequestId>
    <ScalingGroupId>asg-bp14wlu85wrpchm0****</ScalingGroupId>
</CreateScalingGroupResponse>

JSON format

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
  "ScalingGroupId" : "asg-bp14wlu85wrpchm0****"
}

Error codes

For a list of error codes, see Service error codes.

HTTP status code

Error code

Error message

Description

400

IncorrectDBInstanceStatus

The current status of DB instance "XXX" does not support this action.

The specified ApsaraDB RDS instance is not in the Running state.

400

IncorrectLoadBalancerHealthCheck

The current health check type of specified load balancer does not support this action.

The health check feature is not enabled for the specified CLB instance.

400

IncorrectLoadBalancerStatus

The current status of the specified load balancer does not support this action.

The specified CLB instance is not in the Active state.

400

IncorrectVSwitchStatus

The current status of virtual switch does not support this operation.

The vSwitch is unavailable. In this case, ECS instances cannot be created.

400

InvalidDBInstanceId. RegionMismatch

DB instance "XXX" and the specified scaling group are not in the same Region.

The specified ApsaraDB RDS instance and the scaling group do not reside in the same region.

400

InvalidLoadBalancerId.IncorrectAddressType

The current address type of specified load balancer does not support this action.

The network type of the specified CLB instance is different from the network type of the vSwitch.

400

InvalidLoadBalancerId.IncorrectInstanceNetworkType

The network type of the instance in specified Load Balancer does not support this action.

The network type of a backend vServer of the specified CLB instance is different from the network type of the scaling group.

400

InvalidLoadBalancerId.RegionMismatch

The specified Load Balancer and the specified scaling group are not in the same Region.

The specified CLB instance and the scaling group do not reside in the same region.

400

InvalidLoadBalancerId.VPCMismatch

The specified virtual switch and the instance in specified Load Balancer are not in the same VPC.

The vSwitch and a backend vServer of the associated CLB instance are not in the same VPC.

400

InvalidParameter

The specified value of parameter "ScalingPolicy" is not valid.

The value of ScalingPolicy is invalid.

400

InvalidParameter.Conflict

The value of parameter &lt;parameter name&gt; and parameter &lt;parameter name&gt; are conflict.

The value of MinSize is greater than the value of MaxSize.

400

InvalidScalingGroupName.Duplicate

The specified value of parameter &lt;parameter name&gt; is duplicated.

The specified scaling group name already exists.

400

QuotaExceeded.DBInstanceSecurityIP

Security IP quota exceeded in DB instance "XXX".

The maximum number of IP addresses in the IP address whitelist of the associated ApsaraDB RDS instance has been reached.

400

QuotaExceeded.PrivateIpAddress

Private IP address quota exceeded in the specified virtual switch.

No more private IP addresses are available in the CIDR block of the specified vSwitch.

400

QuotaExceeded.ScalingGroup

Scaling group quota exceeded.

The maximum number of scaling groups has been reached.

400

QuotaExceeded.VPCInstance

Instance quota exceeded in the specified VPC.

The maximum number of instances in the VPC has been reached.

404

InvalidDBInstanceId.NotFound

DB instance "XXX" does not exist.

The specified ApsaraDB RDS instance does not exist.

404

InvalidLoadBalancerId.NotFound

The specified Load Balancer does not exist.

The specified CLB instance does not exist.

404

InvalidRegionId.NotFound

The specified region does not exist.

The specified region does not exist.

404

InvalidVSwitchId.NotFound

The specified virtual switch does not exist.

The specified vSwitch does not exist.

400

LaunchTemplateVersionSet.NotFound

The specific version of launch template is not exist.

The specified version of the launch template does not exist.

400

LaunchTemplateSet.NotFound

The specified launch template set is not found.

The specified launch template does not exist.

400

TemplateMissingParameter.ImageId

The input parameter "ImageId" that is mandatory for processing this request is not supplied.

No value is specified for ImageId that is required in the launch template.

400

TemplateMissingParameter.InstanceTypes

The input parameter "InstanceTypes" that is mandatory for processing this request is not supplied.

No value is specified for InstanceTypes that is required in the launch template.

400

TemplateMissingParameter.SecurityGroup

The input parameter "SecurityGroup" that is mandatory for processing this request is not supplied.

No value is specified for SecurityGroup that is required in the launch template.

400

TemplateVersion.NotNumber

The input parameter "LaunchTemplateVersion" is supposed to be a string representing the version number.

The fixed version number that is specified for LaunchTemplateVersion contains non-digit characters.

400

AlbServerGroup.NotExist

The ServerGroup "%s" do(es) not exist.

The specified ALB server group does not exist within the Alibaba Cloud account.