对于一台阿里云的ECS实例来说,主要由下面的几组属性组成:
-
实例规格
- 实例规格为对应着CPU和内存,是否为IO优化的实例,如果为IO优化实例则磁盘类型需要为
cloud_efficiency
高效云盘,cloud_ssd
ssd云盘。
- 实例规格为对应着CPU和内存,是否为IO优化的实例,如果为IO优化实例则磁盘类型需要为
-
网络配置
- 经典网络,同时包含出网带宽的设置。
- 专有网络,需要包括vpc配置和vswitch的配置信息,
-
磁盘配置,分为系统盘和数据盘。每个磁盘对应下面的属性
- 镜像信息,仅仅对系统盘有效,将需要从某个镜像创建,可以是系统镜像也可以是自定义镜像。目前阿里云的系统盘大小为40GB到500GB。可以按需指定。
- 快照信息,仅仅对数据盘有效,如果一块盘从一个快照创建,则指定的磁盘size必须大于等于snapshot的size。
- 磁盘种类,常见的包括
cloud
云盘,cloud_efficiency
高效云盘,cloud_ssd
ssd云盘 - 磁盘描述信息
- 磁盘名称
- 挂载点
- 对于数据盘,是否随实例删除
- 磁盘大小
- 安全组设置,一台虚拟机创建的时候必须至少属于一个安全组。在创建之后可以最多属于5个安全组。
- 实例的基本信息包括名称、描述、Tag标签设置
-
UserData属性
- 支持UserData的实例才有这个属性。
资源编排在克隆资源的时候,默认情况下会克隆上面的所有属性。有以下说明:
- 资源编排默认使用的镜像是创建源镜像的镜像ID,不是给源资源创建了新的镜像并且使用镜像。
- 资源编排默认创建的数据盘也是源实例生成的时候使用的数据盘(空白或者某个快照,例如快照是2016-06-06创建的,在2016-07-07Clone的时候,仍然是当时的快照)。
- 在执行克隆的过程中,会先一个源Instance的第一个安全组来创建ECS实例,当机器创建出来并设置为Running状态的时候,如果源实例中含有多个安全组,将会把新生成的Instance加入到其它的安全中。
之所以不是全部的克隆主要的原因是创建快照的时间可能会非常长,导致整个堆栈创建失败。
为了方便扩展扩展在Clone的时候您也可以自己指定如下属性做定制。
- SecurityGroupId 安全组,如果指定则仅仅使用者一个安全组。不会在clone源实例上已有的安全组。
- ImageId 镜像Id,您可以通过在控制台创建自定义镜像来完成。这样Clone的时候可以使用心得Image
- 实例的基本信息包括名称、描述、Tag标签设置。包括InstanceName、Description。
- 实例所在的可用区 ZoneId
- 使用自定义的数据盘信息类似创建Ecs实例。DiskMappings如下,创建一块100GB的类型为
cloud
的数据盘,使用快照s-1234567890
"DiskMappings": [
{"Size": 100, "Category": "cloud", "SnapshotId": "s-1234567890"}
]
下面是一套使用克隆的模板, clone的时候自定义了镜像id和使用了额外的两块数据盘,一块从快照创建,一块空白盘:
{
"ROSTemplateFormatVersion" : "2015-09-01",
"Resources" : {
"WebServer": {
"Type": "ALIYUN::ECS::InstanceGroupClone",
"Properties": {
"SourceInstanceId": "i-your_instance",
"Password": "YourPassword1234",
"MinAmount": 1,
"MaxAmount": 1,
"ImageId": "centos7u2_64_40G_cloudinit_20160520.raw",
"DiskMappings": [
{"Size": 100, "Category": "cloud", "SnapshotId": "s-123456789"},
{"Size": 100, "Category": "cloud", "Description": "Another 100 GB Disk"}
]
}
}
},
"Outputs": {
"InstanceId": {
"Value" : {"Fn::GetAtt": ["WebServer","InstanceIds"]}
},
"PublicIp": {
"Value" : {"Fn::GetAtt": ["WebServer","PublicIps"]}
}
}
}