ALIYUN::ECS::InstanceGroup is used to create a group of Elastic Compute Service (ECS) instances that have the same configurations.
Syntax
{
"Type": "ALIYUN::ECS::InstanceGroup",
"Properties": {
"DedicatedHostId": String,
"ResourceGroupId": String,
"SystemDiskDescription": String,
"InstanceChargeType": String,
"RamRoleName": String,
"SystemDiskPerformanceLevel": String,
"ImageId": String,
"SystemDiskDiskName": String,
"Tags": List,
"HostName": String,
"LaunchTemplateName": String,
"VSwitchId": String,
"Period": Number,
"ZoneIds": List,
"LaunchTemplateId": String,
"DeletionProtection": "Boolean",
"SecurityGroupIds": List,
"SecurityEnhancementStrategy": String,
"InternetChargeType": String,
"InstanceName": String,
"DeploymentSetId": String,
"InternetMaxBandwidthOut": Integer,
"VpcId": String,
"LaunchTemplateVersion": String,
"PeriodUnit": String,
"AutoReleaseTime": String,
"PrivateIpAddress": String,
"Description": String,
"DiskMappings": List,
"SystemDiskSize": Number,
"UserData": String,
"AutoRenew": String,
"Ipv6Addresses": List,
"MaxAmount": Integer,
"SystemDiskAutoSnapshotPolicyId": String,
"Ipv6AddressCount": Integer,
"NetworkType": String,
"SpotPriceLimit": String,
"InstanceType": String,
"AllocatePublicIP": "Boolean",
"SpotStrategy": String,
"Password": String,
"PasswordInherit": Boolean,
"AutoRenewPeriod": Number,
"KeyPairName": String,
"IoOptimized": String,
"ZoneId": String,
"HpcClusterId": String,
"SecurityGroupId": String,
"SystemDiskCategory": String,
"EniMappings": List,
"SystemDiskProvisionedIops": Integer,
"SystemDiskBurstingEnabled": Boolean,
"SpotInterruptionBehavior": String,
"SpotDuration": Integer,
"UpdatePolicy": String,
"SystemDiskEncrypted": String,
"SystemDiskEncryptAlgorithm": String,
"SystemDiskStorageClusterId": String,
"SystemDiskKMSKeyId": String,
"CreditSpecification": String,
"PrivatePoolOptions": Map,
"StorageSetId": String,
"HttpTokens": String,
"HttpEndpoint": String,
"Tenancy": String,
"StorageSetPartitionNumber": Integer,
"DeploymentSetGroupNo": Integer,
"Affinity": String,
"UseAdditionalService": Boolean,
"ImageFamily": String
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
ResourceGroupId | String | No | Yes | The ID of the resource group to which the ECS instances belong. | None. |
SpotInterruptionBehavior | String | No | No | The interruption mode of the preemptible instances. | Set the value to Terminate. A value of Terminate specifies that the system directly releases preemptible instances. Default value: Terminate. |
SpotDuration | Integer | No | No | The protection period of the preemptible instances. | Valid values: 0 to 6. Unit: hour. Valid values:
|
HpcClusterId | String | No | Yes | The ID of the Elastic High Performance Computing (E-HPC) cluster to which the ECS instances belong. | Updates to this property take effect only for new ECS instances. |
MaxAmount | Integer | Yes | Yes | The number of ECS instances that you can create at a time. | Valid values: 1 to 1000. Note If you increase or decrease the value of MaxAmount when you update the stack that references the property, the number of ECS instances is increased or decreased based on the new value. For example, if you change the value of MaxAmount from 2 to 5, three ECS instances are added. |
Description | String | No | Yes | The description. | The description can be up to 256 characters in length. Note Updates to this property take effect only for new ECS instances. |
InstanceType | String | Yes | Yes | The ECS instance type. | For more information, see Overview of instance families. Note You can update this property when UpdatePolicy is set to ForAllInstance. |
ImageId | String | Yes | Yes | The ID of the image that is used to start the ECS instances. You can use a public image, a custom image, or an Alibaba Cloud Marketplace image. | If you specify a part of a public image ID, the system can match the complete ID of the public image. You do not need to specify the complete ID of the public image. Examples:
For more information, see Request parameters. |
SecurityGroupId | String | No | No | The ID of the security group to which the ECS instances belong. Instances in the same security group can communicate with each other. | You cannot specify both SecurityGroupId and SecurityGroupIds. |
SecurityGroupIds | List | No | No | The IDs of the security groups to which the ECS instances belong. | You cannot specify both SecurityGroupId and SecurityGroupIds. For more information, see Security group limits. |
SecurityEnhancementStrategy | String | No | No | Specifies whether to enable security hardening. | Valid values:
|
InstanceName | String | No | No | The name of the ECS instance. | The name can be up to 128 characters in length, and can contain letters, digits, underscores (_), periods (.), and hyphens (-). The name must be in the |
Password | String | No | Yes | The password that you want to use to log on to the ECS instance. | The password must be 8 to 30 characters in length, and contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. The following special characters are supported: If you specify Password, we recommend that you call the Resource Orchestration Service (ROS) API by using HTTPS to prevent the exposure of your password. |
PasswordInherit | Boolean | No | No | Specifies whether to use the preset password of the image. | Valid values:
Note If you set this property to true, you must leave Password empty and make sure that the selected image has a preset password. |
ZoneIds | List | No | No | The zone IDs. | None. |
HostName | String | No | No | The hostname. | The hostname must be at least two characters in length. It cannot contain consecutive periods (.) or hyphens (-). It cannot start or end with a period (.) or hyphen (-). For more information, see Request parameters. |
AllocatePublicIP | Boolean | No | No | Specifies whether to assign a public IP address. | If you set InternetMaxBandwidthOut to 0, the system does not assign a public IP address. Valid values:
|
AutoReleaseTime | String | No | No | The time at which the system automatically releases the ECS instances. | Specify the time in the ISO 8601 standard in the |
PrivateIpAddress | String | No | No | The private IP address of the ECS instance. | If you configure a private IP address for an ECS instance in a virtual private cloud (VPC), you must select an idle IP address from the CIDR block of the vSwitch. Note If you specify PrivateIpAddress, you must set MaxAmount to 1. |
DiskMappings | List | No | Yes | The data disks that you want to create for the ECS instance. | You can create up to 16 data disks. If you change the value of this property, existing ECS instances are not affected. The new value is valid for new ECS instances. For more information, see DiskMappings properties. Note Updates to this property take effect only for new ECS instances. |
InternetChargeType | String | No | Yes | The metering method for Internet usage. | Valid values:
Note You can update this property when UpdatePolicy is set to ForAllInstance. |
InternetMaxBandwidthOut | Integer | No | Yes | The maximum outbound public bandwidth. | Valid values: 0 to 100. Unit: Mbit/s. Default value: 0. Note You can update this property when UpdatePolicy is set to ForAllInstance. |
SystemDiskProvisionedIops | Integer | No | Yes | The IOPS that is preconfigured for the system disk. | None. |
SystemDiskBurstingEnabled | Boolean | No | Yes | Specifies whether to enable the burst mode for the system disk. | Valid values:
|
IoOptimized | String | No | No | Specifies whether to create an I/O optimized instance. | Valid values:
|
SystemDiskCategory | String | No | Yes | The category of the system disk. | Valid values:
Note Updates to this property take effect only for new ECS instances. |
SystemDiskDescription | String | No | Yes | The description of the system disk. | Updates to this property take effect only for new ECS instances. |
SystemDiskDiskName | String | No | Yes | The name of the system disk. | Updates to this property take effect only for new ECS instances. |
SystemDiskSize | Number | No | Yes | The size of the system disk. | Valid values: 40 to 500. Unit: GB. If you use a custom image to create a system disk, make sure that the size of the system disk is larger than the size of the custom image. Note You can update this property when UpdatePolicy is set to ForAllInstance. |
Tags | List | No | Yes | The custom tags that you want to add to the ECS instance. | You can specify up to 20 tags in the following format: For more information, see Tags properties. |
UserData | String | No | Yes | The user data that you want to specify when you create the ECS 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. |
ZoneId | String | No | No | The zone ID. | None. |
VpcId | String | No | No | The VPC ID. | None. |
VSwitchId | String | No | No | The vSwitch ID. | None. |
KeyPairName | String | No | Yes | The name of the key pair that you want to use to connect to the ECS instances. | For ECS Windows instances, you can ignore KeyPairName. By default, this property is empty. If you specify KeyPairName, the value of Password is still used for ECS instances. However, password-based logons are disabled for ECS Linux instances. Note Updates to this property take effect only for new ECS instances. |
RamRoleName | String | No | Yes | The name of the Resource Access Management (RAM) role that you want to attach to the ECS instances. | You can call the ListRoles operation to query the RAM role name. |
SpotPriceLimit | String | No | No | The maximum hourly price of the ECS instance. | The value of this property can contain up to three decimal places. This property takes effect when SpotStrategy is set to SpotWithPriceLimit. |
SpotStrategy | String | No | No | The bidding policy for the pay-as-you-go instance. | This property takes effect when InstanceChargeType is set to PostPaid. Valid values:
|
DedicatedHostId | String | No | No | The ID of the dedicated host. | None. |
LaunchTemplateName | String | No | Yes | The name of the launch template. | None. |
PeriodUnit | String | No | Yes | The unit of the subscription duration. | Valid values:
Note Updates to this property take effect only for new ECS instances. |
AutoRenewPeriod | Number | No | Yes | The auto-renewal period. | You must specify this property when AutoRenew is set to True. Valid values:
Note Updates to this property take effect only for new ECS instances. |
AutoRenew | String | No | Yes | Specifies whether to enable auto-renewal. | This property takes effect when InstanceChargeType is set to PrePaid. Valid values:
Note Updates to this property take effect only for new ECS instances. |
InstanceChargeType | String | No | Yes | The billing method of the ECS instances. | Valid values:
Note Updates to this property take effect only for new ECS instances. |
EniMappings | List | No | Yes | The elastic network interfaces (ENIs) that you want to attach to the ECS instance. | You can attach only one ENI to an instance. For more information, see EniMappings properties. |
LaunchTemplateId | String | No | Yes | The ID of the launch template. | None. |
LaunchTemplateVersion | String | No | Yes | The version of the launch template. | If you do not specify a version, the default version is used. |
Period | Number | No | Yes | The subscription duration of the ECS instances. | You must specify this property when InstanceChargeType is set to PrePaid. If you specify DedicatedHostId, the value of Period must be within the subscription period of the dedicated host.
Note Updates to this property take effect only for new ECS instances. |
NetworkType | String | No | No | The network type of the ECS instances. | Valid values:
|
DeletionProtection | Boolean | No | Yes | The deletion protection property of the ECS instances. You can use this property to specify whether you can delete the ECS instances in the ECS console or by calling the DeleteInstance operation. | Valid values:
|
DeploymentSetId | String | No | Yes | The ID of the deployment set. | Updates to this property take effect only for new ECS instances. |
Ipv6AddressCount | Integer | No | Yes | The number of randomly generated IPv6 addresses that you want to assign to the ENI. | You cannot specify both Ipv6Addresses and Ipv6AddressCount. Note Updates to this property take effect only for new ECS instances. |
Ipv6Addresses | List | No | Yes | The IPv6 addresses that you want to assign to the ENI. | You can specify only one IPv6 address. If you change the value of this property, existing ECS instances are not affected. You cannot specify both Ipv6Addresses and Ipv6AddressCount. Note Updates to this property take effect only for new ECS instances. |
SystemDiskAutoSnapshotPolicyId | String | No | Yes | The ID of the automatic snapshot policy that you want to use for the system disk. | None. |
SystemDiskPerformanceLevel | String | No | Yes | The performance level (PL) of the ESSD that you want to use as the system disk. | Valid values:
For more information about how to select the PL of the ESSD, see ESSDs. |
UpdatePolicy | String | No | Yes | The update policy that you want to use for the ECS instances. | Valid values:
|
SystemDiskEncrypted | String | No | Yes | Specifies whether to encrypt the system disk. | Valid values:
|
SystemDiskEncryptAlgorithm | String | No | Yes | The encryption algorithm that you want to use for the system disk. | Valid values:
|
SystemDiskStorageClusterId | String | No | Yes | The ID of the dedicated block storage cluster in which the system disk resides. | None. |
SystemDiskKMSKeyId | String | No | Yes | The ID of the Key Management Service (KMS) key that you want to use for the system disk. | None. |
CreditSpecification
| String | No | Yes | The performance mode of the burstable instance. | Valid values: |
PrivatePoolOptions | Map | No | No | The options of the private pool to use to start the ECS instances. | For more information, see PrivatePoolOptions properties. |
StorageSetId | String | No | No | The ID of the storage set. | None. |
HttpTokens | String | No | Yes | Specifies whether to forcefully use the security-enhanced mode (IMDSv2) to access instance metadata. | Valid values:
Note For more information about the access modes of instance metadata, see Access mode of instance metadata. |
HttpEndpoint | String | No | Yes | Specifies whether to enable the access channel for instance metadata. | Valid values:
Note For more information about instance metadata, see Overview of ECS instance metadata. |
Tenancy | String | No | No | Specifies whether to create an instance on a dedicated host. | Valid values:
|
StorageSetPartitionNumber | Integer | No | No | The maximum number of partitions in the storage set. | You must set this property to a value that is greater than or equal to 2. |
DeploymentSetGroupNo | Integer | No | No | The group number of the deployment set group to which to deploy the instance. If the deployment set specified by DeploymentSetId uses the high availability group strategy (AvailabilityGroup), you can use DeploymentSetGroupNo to specify a deployment set group in the deployment set. | Valid values: 1 to 7. |
Affinity | String | No | No | Specifies whether to associate an instance on a dedicated host with the dedicated host. | Valid values:
Default value: default. |
UseAdditionalService | Boolean | No | No | Specifies whether to use the system configurations for virtual machines. Alibaba Cloud provides the Network Time Protocol (NTP) and KMS system configurations for Windows and the NTP and Yellowdog Updater, Modified (YUM) system configurations for Linux. | Valid values:
|
ImageFamily | String | No | No | The name of the image family. | You can specify this property to query the latest available images that belong to the specified image family and use the images to create instances.
Note For more information about the image families that are associated with Alibaba Cloud official images, see Overview. |
DiskMappings syntax
"DiskMappings": [
{
"Category": String,
"DiskName": String,
"Description": String,
"Device": String,
"SnapshotId": String,
"Size": String,
"Encrypted": String,
"KMSKeyId": String,
"PerformanceLevel": String,
"AutoSnapshotPolicyId": String,
"ProvisionedIops": Integer,
"BurstingEnabled": Boolean
}
]
DiskMappings properties
Property | Type | Required | Editable | Description | Constraint |
Size | String | Yes | No | The size of the data disk. | Unit: GB. |
Category | String | No | No | The category of the data disk. | Valid values:
The default value for an I/O optimized instance is cloud_efficiency. The default value for a non-I/O optimized instance is cloud. |
DiskName | String | No | No | The name of the data disk. | The name must be 2 to 128 characters in length. It must start with a letter and cannot start with |
Description | String | No | No | The description of the data disk. | The description must be 2 to 256 characters in length. It cannot start with |
Device | String | No | No | The mount target. | Note This property will be removed in the future. To improve compatibility, we recommend that you use other properties. |
SnapshotId | String | No | No | The snapshot ID. | None. |
Encrypted | String | No | No | Specifies whether to encrypt the data disk. | Valid values:
|
KMSKeyId | String | No | No | The ID of the KMS key that you want to use for the data disk. | None. |
AutoSnapshotPolicyId | String | No | No | The ID of the automatic snapshot policy. | None. |
PerformanceLevel | String | No | No | The PL of the ESSD that you want to use as the data disk. | Valid values:
For more information about how to select the PL of the ESSD, see ESSDs. |
ProvisionedIops | Integer | No | No | The IOPS that is preconfigured for the data disk. | None. |
BurstingEnabled | Boolean | No | No | Specifies whether to enable the burst mode. | Valid values:
|
Tags syntax
"Tags": [
{
"Value": String,
"Key": String
}
]
Tags properties
Property | Type | Required | Editable | Description | Constraint |
Key | String | Yes | No | The tag key. | The tag key must be 1 to 128 characters in length, and cannot contain |
Value | String | No | No | The tag value. | The tag value can be up to 128 characters in length, and cannot contain |
EniMappings syntax
"EniMappings": [
{
"SecurityGroupId": String,
"VSwitchId": String,
"Description": String,
"NetworkInterfaceName": String,
"PrimaryIpAddress": String,
"InstanceType": String,
"Ipv6AddressCount": Integer,
"NetworkInterfaceTrafficMode": String,
"Ipv6Addresses": List,
"QueueNumber": Integer,
"SecurityGroupIds": List
}
]
EniMappings properties
Property | Type | Required | Editable | Description | Constraint |
SecurityGroupId | String | No | Yes | The ID of the security group to which the ENI belongs. | The security group and the ECS instances must reside in the same VPC. |
VSwitchId | String | Yes | No | The vSwitch ID of the ENI. | None. |
Description | String | No | Yes | The description of the ENI. | The description must be 2 to 256 characters in length, and cannot start with |
NetworkInterfaceName | String | No | Yes | The ENI name. | The name must be 2 to 128 characters in length. It must start with a letter and cannot start with |
PrimaryIpAddress | String | No | No | The primary private IP address of the ENI. | The IP address must be an idle IP address within the CIDR block of the vSwitch. If you leave this property empty, the system randomly assigns an idle IP address from the CIDR block of the vSwitch. |
InstanceType | String | No | No | The ENI type. | You can attach up to two ENIs. If you attach only one ENI, you can configure a primary or secondary ENI. If you attach two ENIs, you must configure a primary ENI and a secondary ENI. Valid values:
|
Ipv6AddressCount | Integer | No | No | The number of randomly generated IPv6 addresses that you want to assign to the primary ENI. | Valid values: 1 to 10. Take note of the following items:
|
NetworkInterfaceTrafficMode | String | No | No | The communication mode of the ENI. | Valid values:
Note The number of ENIs in RDMA mode that can be attached to an instance cannot exceed the maximum number of ENIs that the instance type supports. For more information, see Overview of instance families. |
Ipv6Addresses | List | No | No | The one or more IPv6 addresses that you want to assign to the primary ENI. | You can specify up to 10 IPv6 addresses. Take note of the following items:
|
QueueNumber | Integer | No | No | The number of queues that are supported by the ENI. | Take note of the following items:
|
SecurityGroupIds | List | No | No | The IDs of one or more security groups to which the ENI belongs. | Take note of the following items:
|
PrivatePoolOptions syntax
"PrivatePoolOptions": [
{
"Id": String,
"MatchCriteria": String
}
]
PrivatePoolOptions properties
Property | Type | Required | Editable | Description | Constraint |
Id | String | No | No | The ID of the private pool. The ID of a private pool is the same as the ID of the elasticity assurance or capacity reservation for which the private pool is generated. | None. |
MatchCriteria | String | No | No | The type of the private pool to use to start the instance. A private pool is generated after an elasticity assurance or a capacity reservation takes effect. | Valid values:
Default value: None. PrivatePoolOptions.MatchCriteria must be set to
|
Return values
Fn::GetAtt
InstanceIds: the IDs of the ECS instances. An instance ID is a GUID that is generated by the system for an instance.
PrivateIps: the private IP addresses of the ECS instances in the VPC. This property takes effect when NetworkType is set to
vpc
. The value is a JSON array that can contain up to 100 IP addresses separated by commas (,). Example:["172.16.XX.XX", "172.16.XX.XX", … "172.16.XX.XX"]
.InnerIps: the private IP addresses of the ECS instances in the classic network. This property takes effect when NetworkType is set to
classic
. The value is a JSON array that can contain up to 100 IP addresses separated by commas (,). Example:["10.1.XX.XX", "10.1.XX.XX", … "10.1.XX.XX"]
.PublicIps: the public IP addresses of the ECS instances in the classic network. This property takes effect when NetworkType is set to
classic
. The value is a JSON array that can contain up to 100 IP addresses separated by commas (,). Example:["42.1.XX.XX", "42.1.XX.XX", … "42.1.XX.XX"]
.HostNames: the hostnames of the ECS instances.
OrderId: the order ID of the ECS instances.
ZoneIds: the zone IDs of the ECS instances.
Ipv6AddressIds: the IPv6 address IDs of the ECS instances.
NoteThe IPv6 address IDs are returned in a list that has two levels of nesting. If an ECS instance does not have an IPv6 address, the element at the relevant position in the list is empty. If all ECS instances do not have IP addresses, null is returned.
Ipv6Addresses: the IPv6 addresses of the ECS instances.
NoteThe IPv6 addresses are returned in a list that has two levels of nesting. If an ECS instance does not have an IPv6 address, the element at the relevant position in the list is empty. If all ECS instances do not have IP addresses, null is returned.
Examples
The following sample code provides examples on how to create the OpsEcsInstance and ProdEcsInstance ECS instances and configure the password-free logon of the OpsEcsInstance instance for the ProdEcsInstance instance.
If you want to receive signals of the execution results of user-data scripts of the ECS instances, you can configure ALIYUN::ROS::WaitCondition and ALIYUN::ROS::WaitConditionHandle. For more information, see ALIYUN::ROS::WaitConditionHandle and ALIYUN::ROS::WaitCondition.
In the examples, the following resource types are used: ALIYUN::ECS::InstanceGroup, ALIYUN::ECS::InstanceClone, ALIYUN::ECS::Command, and ALIYUN::ECS::Invocation.