All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::ESS::ScalingConfiguration

Last Updated:Dec 20, 2023

ALIYUN::ESS::ScalingConfiguration is used to create a scaling configuration for a scaling group.

Syntax

{
  "Type": "ALIYUN::ESS::ScalingConfiguration",
  "Properties": {
    "PasswordInherit": Boolean,
    "DiskMappings": List,
    "RamRoleName": String,
    "IoOptimized": String,
    "InternetChargeType": String,
    "KeyPairName": String,
    "InstanceId": String,
    "InstanceTypes": List,
    "ImageId": String,
    "ResourceGroupId": String,
    "SpotStrategy": String,
    "InstanceType": String,
    "SystemDiskCategory": String,
    "SystemDiskSize": Integer,
    "SystemDiskAutoSnapshotPolicyId": String,
    "SystemDiskPerformanceLevel": String,
    "InternetMaxBandwidthOut": Integer,
    "InstanceName": String,
    "InternetMaxBandwidthIn": Integer,
    "ScalingConfigurationName": String,
    "UserData": String,
    "DeploymentSetId": String,
    "SecurityGroupId": String,
    "SpotPriceLimit": Number,
    "HpcClusterId": String,
    "ScalingGroupId": String,
    "SpotPriceLimitForInstanceType": Map,
    "TagList": List,
    "Ipv6AddressCount": Integer,
    "LoadBalancerWeight": Integer,
    "CreditSpecification": String,
    "ImageFamily": String,
    "HostName": String,
    "Password": String
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

ResourceGroupId

String

No

Yes

The ID of the resource group to which the instances belong.

None.

DeploymentSetId

String

No

No

The ID of the deployment set.

None.

HpcClusterId

String

No

No

The ID of the Elastic High Performance Computing (E-HPC) cluster to which the instances belong.

None.

ScalingGroupId

String

Yes

No

The ID of the scaling group to which the scaling configuration belongs.

None.

DiskMappings

List

No

Yes

The disks that you want to attach to the instances.

You can attach up to 16 disks.

For more information, see DiskMappings properties.

InternetChargeType

String

No

Yes

The metering method for Internet usage.

Valid values:

  • PayByBandwidth

  • PayByTraffic (default)

InternetMaxBandwidthIn

Integer

No

No

The maximum inbound public bandwidth.

Unit: Mbit/s.

Valid values: 1 to 200.

If you leave this property empty, the system sets the maximum inbound public bandwidth to 200 Mbit/s. This property is not used for billing because the inbound traffic of instances is free of charge.

InternetMaxBandwidthOut

Integer

No

Yes

The maximum outbound public bandwidth.

  • Valid values when InternetChargeType is set to PayByBandwidth: 0 to 100. Default value: 0.

  • Valid values when InternetChargeType is set to PayByTraffic: 0 to 100. This property must be specified when InternetChargeType is set to PayByTraffic.

Unit: Mbit/s.

InstanceId

String

No

No

The ID of the instance that is created based on the scaling configuration.

None.

SystemDiskCategory

String

No

Yes

The category of the system disk.

Valid values:

  • cloud: basic disk

  • cloud_efficiency: ultra disk

  • cloud_ssd: standard SSD

  • ephemeral_ssd: local SSD

  • cloud_essd: enhanced SSD (ESSD)

For non-I/O optimized instances of Generation I instance families, the default value is cloud. For instances of other categories, the default value is cloud_efficiency.

ImageId

String

No

Yes

The ID of the image that is used to create the instances. You can use a public image, a custom image, or an Alibaba Cloud Marketplace image.

For more information, see Overview.

InstanceType

String

No

Yes

The instance type.

For more information, see Overview of instance families.

SecurityGroupId

String

No

Yes

The ID of the security group to which the instances belong.

None.

IoOptimized

String

No

Yes

Specifies whether to create an I/O optimized instance.

Valid values:

  • none (default): does not create an I/O optimized instance.

  • optimized: creates an I/O optimized instance.

ScalingConfigurationName

String

No

Yes

The name of the scaling configuration.

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

The name of the scaling configuration must be unique in a scaling group in a region.

If you leave this property empty, the ID of the scaling configuration is used.

KeyPairName

String

No

Yes

The name of the key pair that is used to connect to the instances.

  • For Windows instances, this property is ignored and is empty by default.

  • For Linux instances, the password-based logon method is disabled during initialization.

RamRoleName

String

No

Yes

The name of the Resource Access Management (RAM) role for the instances.

You can call the ListRoles operation of RAM to query the role name. For more information, see CreateRole and ListRoles.

SystemDiskSize

Integer

No

Yes

The size of the system disk.

Valid values: 20 to 500.

Default value: 40.

Unit: GiB.

If you use a custom image to create the system disk, make sure that the size of the system disk is greater than or equal to the size of the custom image.

SystemDiskPerformanceLevel

String

No

Yes

The performance level (PL) of the ESSD that you want to use as the system disk.

Valid values:

  • PL1 (default): An ESSD delivers up to 50,000 random read/write IOPS.

  • PL2: An ESSD delivers up to 100,000 random read/write IOPS.

  • PL3: An ESSD delivers up to 1,000,000 random read/write IOPS.

For more information about how to select the PL of the ESSD, see ESSDs.

UserData

String

No

Yes

The user data that you want to pass when you create the instances.

The user data can be up to 16 KB in size. You do not need to convert the data into Base64-encoded strings. If the data contains special characters, you must add the escape character (\) before each special character.

InstanceTypes

List

No

Yes

The instance types.

If you specify InstanceTypes, InstanceType is ignored.

You can specify up to 10 instance types in a scaling configuration. The instance types are sorted in descending order of priority based on the specified sequence. Auto Scaling creates instances based on the priorities of the instance types. If Auto Scaling cannot create instances by using the instance type that has the highest priority, Auto Scaling creates instances by using the instance type that has the next highest priority.

PasswordInherit

Boolean

No

Yes

Specifies whether to use the preset password of the image.

If you want to use the preset password, make sure that the specified image has a preset password.

TagList

List

No

Yes

The tags of the instance.

You can specify up to five tags. Specify tags in the following key-value format: {"key1": "value1", "key2": "value2", ... "key5": "value5"}.

For more information, see TagList properties.

Ipv6AddressCount

Integer

No

Yes

The number of randomly generated IPv6 addresses that you want to assign to the elastic network interface (ENI).

None.

LoadBalancerWeight

Integer

No

Yes

The weight of the ECS instance that is used as the backend server of a Server Load Balancer (SLB) instance.

Valid values: 1 to 100.

Default value: 50.

CreditSpecification

String

No

Yes

The performance mode of the burstable instance.

Valid values:

  • Unlimited (default)

  • Standard

For more information about performance modes, see Performance modes.

ImageFamily

String

No

Yes

The name of the image family.

You can use this property to query the latest available images that belong to the specified image family. If you specify ImageId, you cannot specify ImageFamily.

SpotStrategy

String

No

Yes

The preemption policy for the pay-as-you-go instance.

Valid values:

  • NoSpot (default): The instance is created as a regular pay-as-you-go instance.

  • SpotWithPriceLimit: The instance is created as a preemptible instance that has a user-defined maximum hourly price.

  • SpotAsPriceGo: The instance is created as a preemptible instance whose bidding price is based on the market price at the time of purchase.

InstanceName

String

No

Yes

The name of the instance that is created based on the scaling configuration.

None.

SpotPriceLimit

Number

No

Yes

The maximum hourly price for the instance.

The value of this property can contain up to 3 decimal places.

This property takes effect when SpotStrategy is set to SpotWithPriceLimit. If you specify SpotPriceLimit and SpotPriceLimitForInstanceType, the value of SpotPriceLimit is overwritten by the value of SpotPriceLimitForInstanceType.

SpotPriceLimitForInstanceType

Map

No

Yes

The instance types and the bidding prices for preemptible instances.

Specify the value in the {“<instance_type_1>": <price_limit_1>, ..., {“<instance_type_10>": <price_limit_10>} format.

This property takes effect when SpotStrategy is set to SpotWithPriceLimit.

You can configure up to 10 sets of instance types and bidding prices.

SystemDiskAutoSnapshotPolicyId

String

No

Yes

The ID of the automatic snapshot policy that you want to apply to the system disk.

None.

HostName

String

No

Yes

The hostname of the ECS instance.

The hostname cannot start or end with a period (.) or hyphen (-) and cannot contain consecutive periods (.) or hyphens (-).

The hostname that you can specify for an ECS instance varies based on the category of the instance:

  • Windows instances: The hostname must be 2 to 15 characters in length and can contain letters, digits, and hyphens (-). It cannot contain periods (.) or contain only digits.

  • Other instances such as Linux instances: The hostname must be 2 to 64 characters in length and can contain periods (.). Separate multiple segments in a hostname with periods (.). Each segment can contain letters, digits, and hyphens (-).

Password

String

No

Yes

The password that you want to use to connect to the ECS instance.

The password must be 8 to 30 characters in length and must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. The following special characters are supported:

( ) ` ~ ! @ # $ % ^ & * - _ + = \ | { } [ ] : ; ' < > , . ? /

Passwords of Windows instances cannot start with a forward slash (/).

Note

If you specify Password, we recommend that you use HTTPS to send requests for security purposes.

DiskMappings syntax

"DiskMappings": [
  {
    "Category": String,
    "DiskName": String,
    "Description": String,
    "AutoSnapshotPolicyId": String,
    "PerformanceLevel": String,
    "Encrypted": String,
    "KMSKeyId": String,
    "Device": String,
    "SnapshotId": String,
    "Size": String
  }
]

DiskMappings properties

Property

Type

Required

Editable

Description

Constraint

Size

String

No

No

The size of the data disk.

Valid values:

  • Valid values when Category is set to cloud: 5 to 2000.

  • Valid values when Category is set to cloud_efficiency: 20 to 32768.

  • Valid values when Category is set to cloud_ssd: 20 to 32768.

  • Valid values when Category is set to cloud_essd: 20 to 32768.

  • Valid values when Category is set to ephemeral_ssd: 5 to 800.

Unit: GB.

The value of this property must be greater than or equal to the size of the snapshot that is specified by using SnapshotId.

Category

String

No

No

The category of the data disk.

Valid values:

  • cloud: basic disk

  • cloud_efficiency (default): ultra disk

  • cloud_ssd: standard SSD

  • ephemeral_ssd: local SSD

  • cloud_essd: ESSD

For I/O optimized instances, the default value is cloud_efficiency. For non-I/O optimized instances, the default value is cloud.

DiskName

String

No

No

The name of the data disk.

The name must be 2 to 128 characters in length and can contain digits, letters, colons (:), underscores (_), and hyphens (-).

It must start with a letter and cannot start with http:// or https://.

PerformanceLevel

String

No

No

The PL of the ESSD that you want to use as the data disk.

Valid values:

  • PL1 (default): An ESSD delivers up to 50,000 random read/write IOPS.

  • PL2: An ESSD delivers up to 100,000 random read/write IOPS.

  • PL3: An ESSD delivers up to 1,000,000 random read/write IOPS.

For more information about how to select the PL of the ESSD, see ESSDs.

Description

String

No

No

The description of the data disk.

The description must be 2 to 256 characters in length. It cannot start with http:// or https://.

Device

String

No

No

The mount target of the data disk.

If you do not specify this property, the system assigns a mount target in alphabetical order from /dev/xvdb to /dev/xvdz when the system automatically creates ECS instances.

SnapshotId

String

No

No

The ID of the snapshot that you want to use to create the data disk.

If you specify this property, Size is ignored. The actual size of the created data disk is the size of the specified snapshot. If you specify a snapshot that was created on or before July 15, 2013, the snapshot cannot be requested and the InvalidSnapshot.TooOld error message is returned.

Encrypted

String

No

No

Specifies whether to encrypt the data disk.

Valid values:

  • true

  • false (default)

KMSKeyId

String

No

No

The ID of the Key Management Service (KMS) key that you want to use for the data disk.

None.

AutoSnapshotPolicyId

String

No

No

The ID of the automatic snapshot policy that you want to apply to the data disk.

None.

TagList syntax

"TagList": [
  {
    "Key": String,
    "Value": String
  }
]

TagList properties

Property

Type

Required

Editable

Description

Constraint

Key

String

Yes

No

The tag key.

The tag key must be 1 to 64 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.

Value

String

No

No

The tag value.

The tag value must be up to 128 characters in length. It cannot start with aliyun or acs: and cannot contain http:// or https://.

Return values

Fn::GetAtt

  • ScalingConfigurationId: the ID of the scaling configuration. The ID is a GUID that is generated by the system for the scaling configuration.

  • ScalingGroupId: the ID of the scaling group to which the scaling configuration belongs.

Examples

  • YAML format

    ROSTemplateFormatVersion: '2015-09-01'
    Description: Test ESS ScalingConfiguration
    Parameters:
      AutoScalingGroupId:
        Type: String
        AssociationProperty: ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId
      SecurityGroupId:
        Type: String
        AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
        Label:
           
          en: Security Group ID
      ImageId:
        Type: String
        AssociationProperty: ALIYUN::ECS::Image::ImageId
        AssociationPropertyMetadata:
          SupportedImageOwnerAlias:
            - system
            - self
            - others
    Resources:
      ScalingConfiguration:
        Type: ALIYUN::ESS::ScalingConfiguration
        Properties:
          InstanceType: ecs.c5.large
          ImageId:
            Ref: ImageId
          SystemDiskCategory: cloud_essd
          SystemDiskSize: 40
          ScalingConfigurationName: mytest
          ScalingGroupId:
            Ref: AutoScalingGroupId
          SecurityGroupId:
            Ref: SecurityGroupId
    Outputs: {}
  • JSON format

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "Test ESS ScalingConfiguration",
      "Parameters": {
        "AutoScalingGroupId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ESS::AutoScalingGroup::AutoScalingGroupId"
        },
        "SecurityGroupId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
          "Label": {
             
            "en": "Security Group ID"
          }
        },
        "ImageId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::Image::ImageId",
          "AssociationPropertyMetadata": {
            "SupportedImageOwnerAlias": ["system", "self", "others"]
          }
        }
      },
      "Resources": {
        "ScalingConfiguration": {
          "Type": "ALIYUN::ESS::ScalingConfiguration",
          "Properties": {
            "InstanceType": "ecs.c5.large",
            "ImageId": {
              "Ref": "ImageId"
            },
            "SystemDiskCategory": "cloud_essd",
            "SystemDiskSize": 40,
            "ScalingConfigurationName": "mytest",
            "ScalingGroupId": {
              "Ref": "AutoScalingGroupId"
            },
            "SecurityGroupId": {
              "Ref": "SecurityGroupId"
            }
          }
        }
      },
      "Outputs": {
      }
    }

If you define only one scaling configuration that contains dependencies in a scaling group, you must specify DependsOn for the scaling group in the Resources section of a template. This way, the dependencies of the scaling configuration are associated with the scaling group.

In this example, DependsOn in ScalingGroup is set to SecurityGroup because SecurityGroup is the dependency of ScalingConfiguration.

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
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
Outputs: {}

For more examples, visit ScalingGroupEnable.json and ScalingGroupEnable.yml. In the examples, the ALIYUN::ESS::ScalingConfiguration and ALIYUN::ESS::ScalingGroupEnable resource types are used.