使用ROS创建ECS实例
1. 实验资源方式简介及开始实验
云起实验室实验资源方式介绍
云起实验室支持个人账户资源一种实验资源方式。
- 个人账户资源
- 使用您个人的云资源进行操作,资源归属于个人。
- 所有实验操作将保留至您的账号,请谨慎操作。
- 平台仅提供手册参考,不会对资源做任何操作。
- 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。
准备开始实验
在实验开始前,请您选择其中一种实验资源,单击确认开启实验。
说明:每个实验所支持的实验资源方式都不相同,实验不一定能满足有三种实验资源方式,请根据实验的实际情况,进行选择。
2. 编写ROS模板
编写ROS模板的基本方式可以参考《使用ROS创建VPC、VSwitch》。
- 查询资源类型详情。
访问资源类型索引,根据部署场景查询资源类型,此处我们创建ECS云服务器需要使用到的资源类型有:(ALIYUN::ECS::VPC、ALIYUN::ECS::VSwitch、ALIYUN::ECS::SecurityGroup、ALIYUN::ECS::Instance)
- 声明创建的资源(Resources)。
示例代码段如下:
"Resources": { "EcsVSwitch": { "Type": "ALIYUN::ECS::VSwitch", "Properties": { "VpcId": { "Ref": "EcsVpc" }, "ZoneId": "cn-beijing-f", "CidrBlock": "192.168.0.0/24" } }, "EcsInstance": { "Type": "ALIYUN::ECS::Instance", "Properties": { "PrivateIpAddress": "192.168.0.1", "VpcId": { "Ref": "EcsVpc" }, "SecurityGroupId": { "Ref": "EcsSecurityGroup" }, "VSwitchId": { "Ref": "EcsVSwitch" }, "ImageId": "centos_7", "InstanceType": "ecs.g5.large", "SystemDiskCategory": "cloud_ssd", "SystemDiskSize": 40, "Password": "Admin@1234" } }, "EcsSecurityGroup": { "Type": "ALIYUN::ECS::SecurityGroup", "Properties": { "VpcId": { "Ref": "EcsVpc" }, "SecurityGroupIngress": [ { "PortRange": "-1/-1", "Priority": 1, "SourceCidrIp": "0.0.0.0/0", "IpProtocol": "all", "NicType": "intranet" } ], "SecurityGroupEgress": [ { "PortRange": "-1/-1", "Priority": 1, "IpProtocol": "all", "DestCidrIp": "0.0.0.0/0", "NicType": "intranet" } ] } }, "EcsVpc": { "Type": "ALIYUN::ECS::VPC", "Properties": { "CidrBlock": "192.168.0.0/16" } } }
- 定义模板参数(Parameters)。
参数 |
说明 |
VSwitchZoneId |
指定VSwitch的可用区ID |
InstanceImageId |
指定ECS实例的镜像ID |
InstanceType |
指定ECS实例的实例规格 |
InstancePassword |
指定ECS实例的实例密码 |
SystemDiskCategory |
指定ECS实例的系统盘类型 |
SystemDiskSize |
指定ECS实例的系统盘大小 |
为了在ROS控制台动态呈现与选择以上参数,我们可以对SystemDiskCategory、InstanceImageId、InstanceType、VSwitchZoneId加入AssociationProperty和AssociationPropertyMetadata参数属性,并且定义对应的参数属性类型,这样我们就可以在不修改模板的前提下更加灵活的使用模板参数作为模板资源的配置输入信息。
示例代码段如下:
"Parameters": { "SystemDiskCategory": { "Type": "String", "Label": { "en": "System Disk Type", "zh-cn": "系统盘类型" }, "Description": { "en": "<font color='blue'><b>Optional values:</b></font><br>[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]", "zh-cn": "<font color='blue'><b>可选值:</b></font><br>[cloud_efficiency: <font color='green'>高效云盘</font>]<br>[cloud_ssd: <font color='green'>SSD云盘</font>]<br>[cloud_essd: <font color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]<br>[ephemeral_ssd: <font color='green'>本地SSD盘</font>]" }, "AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory", "AssociationPropertyMetadata": { "ZoneId": "${VSwitchZoneId}", "InstanceType": "${InstanceType}" } }, "InstanceImageId": { "Type": "String", "Description": { "zh-cn": "镜像ID,详见:<b><a href='https://help.aliyun.com/document_detail/112977.html' target='_blank'><font color='blue'>查找镜像</font></a></b>", "en": "Image ID,see detail:<b><a href='https://www.alibabacloud.com/help/en/doc-detail/112977.html' target='_blank'><font color='blue'>Find the mirror</font></a></b>" }, "Label": { "zh-cn": "镜像", "en": "Image" }, "AssociationProperty": "ALIYUN::ECS::Image::ImageId" }, "InstanceType": { "Type": "String", "Description": { "zh-cn": "填写VSwitch可用区下可使用的规格;<br>通用规格:<font color='red'><b>ecs.c5.large</b></font><br>注:可用区可能不支持通用规格<br>规格详见:<a href='https://help.aliyun.com/document_detail/25378.html' target='_blank'><b><font color='blue'>实例规格族</font></a></b>", "en": "Fill in the specifications that can be used under the VSwitch availability zone;</b></font><br>general specifications:<font color='red'><b>ecs.c5.large</b></font><br>note: a few zones do not support general specifications<br>see detail: <a href='https://www.alibabacloud.com/help/en/doc-detail/25378.html' target='_blank'><b><font color='blue'>Instance Specification Family</font></a></b>" }, "Label": { "zh-cn": "实例规格", "en": "Instance Type" }, "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType", "AssociationPropertyMetadata": { "ZoneId": "${VSwitchZoneId}" } }, "InstancePassword": { "NoEcho": true, "Type": "String", "Description": { "en": "Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).", "zh-cn": "服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。" }, "AllowedPattern": "[0-9A-Za-z\\_\\-\\&:;'<>,=%`~!@#\\(\\)\\$\\^\\*\\+\\|\\{\\}\\[\\]\\.\\?\\/]+$", "Label": { "en": "Instance Password", "zh-cn": "实例密码" }, "ConstraintDescription": { "en": "Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).", "zh-cn": "长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。" }, "MinLength": 8, "MaxLength": 30 }, "VSwitchZoneId": { "AssociationProperty": "ALIYUN::ECS::ZoneId", "Type": "String", "Description": { "zh-cn": "可用区ID。<br><b>注: <font color='blue'>选择前请确认该可用区是否支持创建ECS资源的规格,建议与其他交换机可用区不同</font></b>", "en": "Availability Zone ID.<br><b>note:<font color='blue'>before selecting, please confirm that the Availability Zone supports the specification of creating ECS resources,which is recommended to be different from other VSwitch Availability Zone</font></b>" }, "Label": { "zh-cn": "交换机可用区", "en": "VSwitch Availability Zone" } }, "SystemDiskSize": { "Default": 40, "Type": "Number", "Description": { "zh-cn": "系统盘大小, 取值范围:[40, 500], 单位:GB。", "en": "System disk size, range of values: 40-500, units: GB." }, "Label": { "zh-cn": "系统盘空间", "en": "System Disk Space" } } }
- 定义模板的输出(Outputs)内容。
我们可以定义ECS实例ID(EcsInstanceId)作为模板输出内容,编写Outputs模板示例代码段。
"Outputs": { "EcsInstanceId": { "Value": { "Fn::GetAtt": [ "EcsInstance", "InstanceId" ] } } }
- 创建ECS的模板。
根据步骤1~4,定义出完整模板如下。
{ "ROSTemplateFormatVersion": "2015-09-01", "Description": "Creates VPC ECS instance", "Metadata": { "ALIYUN::ROS::Interface": { "ParameterGroups": [ { "Parameters": [ "VSwitchZoneId", "InstanceImageId", "InstanceType", "SystemDiskCategory", "SystemDiskSize", "InstancePassword" ], "Label": { "default": "ECS" } } ], "TemplateTags": [ "acs:example:弹性计算:创建VPC网络下的ECS实例", "acs:developer:云起实验室:创建ECS实例" ] } }, "Parameters": { "SystemDiskCategory": { "Type": "String", "Label": { "en": "System Disk Type", "zh-cn": "系统盘类型" }, "Description": { "en": "<font color='blue'><b>Optional values:</b></font><br>[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]", "zh-cn": "<font color='blue'><b>可选值:</b></font><br>[cloud_efficiency: <font color='green'>高效云盘</font>]<br>[cloud_ssd: <font color='green'>SSD云盘</font>]<br>[cloud_essd: <font color='green'>ESSD云盘</font>]<br>[cloud: <font color='green'>普通云盘</font>]<br>[ephemeral_ssd: <font color='green'>本地SSD盘</font>]" }, "AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory", "AssociationPropertyMetadata": { "ZoneId": "${VSwitchZoneId}", "InstanceType": "${InstanceType}" } }, "InstanceImageId": { "Type": "String", "Description": { "zh-cn": "镜像ID,详见:<b><a href='https://help.aliyun.com/document_detail/112977.html' target='_blank'><font color='blue'>查找镜像</font></a></b>", "en": "Image ID,see detail:<b><a href='https://www.alibabacloud.com/help/en/doc-detail/112977.html' target='_blank'><font color='blue'>Find the mirror</font></a></b>" }, "Label": { "zh-cn": "镜像", "en": "Image" }, "AssociationProperty": "ALIYUN::ECS::Image::ImageId" }, "InstanceType": { "Type": "String", "Description": { "zh-cn": "填写VSwitch可用区下可使用的规格;<br>通用规格:<font color='red'><b>ecs.c5.large</b></font><br>注:可用区可能不支持通用规格<br>规格详见:<a href='https://help.aliyun.com/document_detail/25378.html' target='_blank'><b><font color='blue'>实例规格族</font></a></b>", "en": "Fill in the specifications that can be used under the VSwitch availability zone;</b></font><br>general specifications:<font color='red'><b>ecs.c5.large</b></font><br>note: a few zones do not support general specifications<br>see detail: <a href='https://www.alibabacloud.com/help/en/doc-detail/25378.html' target='_blank'><b><font color='blue'>Instance Specification Family</font></a></b>" }, "Label": { "zh-cn": "实例规格", "en": "Instance Type" }, "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType", "AssociationPropertyMetadata": { "ZoneId": "${VSwitchZoneId}" } }, "InstancePassword": { "NoEcho": true, "Type": "String", "Description": { "en": "Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).", "zh-cn": "服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。" }, "AllowedPattern": "[0-9A-Za-z\\_\\-\\&:;'<>,=%`~!@#\\(\\)\\$\\^\\*\\+\\|\\{\\}\\[\\]\\.\\?\\/]+$", "Label": { "en": "Instance Password", "zh-cn": "实例密码" }, "ConstraintDescription": { "en": "Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in).", "zh-cn": "长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。" }, "MinLength": 8, "MaxLength": 30 }, "VSwitchZoneId": { "AssociationProperty": "ALIYUN::ECS::ZoneId", "Type": "String", "Description": { "zh-cn": "可用区ID。<br><b>注: <font color='blue'>选择前请确认该可用区是否支持创建ECS资源的规格,建议与其他交换机可用区不同</font></b>", "en": "Availability Zone ID.<br><b>note:<font color='blue'>before selecting, please confirm that the Availability Zone supports the specification of creating ECS resources,which is recommended to be different from other VSwitch Availability Zone</font></b>" }, "Label": { "zh-cn": "交换机可用区", "en": "VSwitch Availability Zone" } }, "SystemDiskSize": { "Default": 40, "Type": "Number", "Description": { "zh-cn": "系统盘大小, 取值范围:[40, 500], 单位:GB。", "en": "System disk size, range of values: 40-500, units: GB." }, "Label": { "zh-cn": "系统盘空间", "en": "System Disk Space" } } }, "Resources": { "EcsVSwitch": { "Type": "ALIYUN::ECS::VSwitch", "Properties": { "VpcId": { "Ref": "EcsVpc" }, "ZoneId": "cn-beijing-f", "CidrBlock": "192.168.0.0/24" } }, "EcsInstance": { "Type": "ALIYUN::ECS::Instance", "Properties": { "PrivateIpAddress": "192.168.0.1", "VpcId": { "Ref": "EcsVpc" }, "SecurityGroupId": { "Ref": "EcsSecurityGroup" }, "VSwitchId": { "Ref": "EcsVSwitch" }, "ImageId": { "Ref": "InstanceImageId" }, "InstanceType": { "Ref": "InstanceType" }, "SystemDiskCategory": { "Ref": "SystemDiskCategory" }, "SystemDiskSize": { "Ref": "SystemDiskSize" }, "Password": { "Ref": "InstancePassword" } } }, "EcsSecurityGroup": { "Type": "ALIYUN::ECS::SecurityGroup", "Properties": { "VpcId": { "Ref": "EcsVpc" }, "SecurityGroupIngress": [ { "PortRange": "-1/-1", "Priority": 1, "SourceCidrIp": "0.0.0.0/0", "IpProtocol": "all", "NicType": "intranet" } ], "SecurityGroupEgress": [ { "PortRange": "-1/-1", "Priority": 1, "IpProtocol": "all", "DestCidrIp": "0.0.0.0/0", "NicType": "intranet" } ] } }, "EcsVpc": { "Type": "ALIYUN::ECS::VPC", "Properties": { "CidrBlock": "192.168.0.0/16" } } }, "Outputs": { "EcsInstanceId": { "Value": { "Fn::GetAtt": [ "EcsInstance", "InstanceId" ] } } } }
3. 创建资源栈
本步骤将指导您如何使用您的阿里云账号,通过资源编排控制台创建ECS实例。
说明:通过资源编排控制台创建ECS实例会产生一定的费用,并按量计费,详情请参考计费概述。
- 进入资源编排控制台。
- 在左侧导航栏中,单击资源栈。
- 在资源栈列表页面,单击创建资源栈,然后在下拉列表中选择使用ROS。
- 在选择模板页签,指定模板选择已有模板,模板录入方式选择输入模板,将上一小节中的创建ECS的模板内容复制到模板内容输入框中,然后单击下一步。
- 在配置模板参数页签,配置资源栈名称及其余参数,在页面右下角,查看创建ECS所产生的费用,然后单击创建。
说明:通过资源编排控制台创建ECS实例会产生一定的费用,并按量计费。实验完成后,请您及时释放资源。
配置项 |
示例值 |
交换机可用区 |
可用区A |
镜像 |
公共镜像 CentOS 7.9 64位 |
实例规格 |
ecs.xn4.small |
系统盘类型 |
SSD盘 |
实例密码 |
自定义实例密码 |
返回如下页面,单击图标刷新页面,状态变为创建成功,表示您已成功创建ECS实例。
4. 查看资源栈
本步骤将指导您在完成创建资源栈操作后,如何查询资源栈详情。
- 查看资源栈信息。
单击资源栈信息页签,您可以查看到资源栈的基本信息和资源栈策略。
- 查看资源栈事件。
单击事件页签,您可以查看资源栈生命周期中发生的每一个事件。
- 查看资源栈资源。
单击资源页签,查看资源栈所包括的每一个资源的信息。
- 查看资源栈输出。
单击输出页签,您可以查看创建资源栈时,模板中指定的输出信息。
- 查看资源栈参数。
单击参数页签,您可以查看创建资源栈时,模板中指定的参数,包括ROS提供的以ALIYUN::开头的伪参数。
- 查看资源栈模板。
单击模板页签,您可以查看资源栈所对应的模板信息。
5. 释放资源栈
本步骤将指导您如何释放通过资源编排控制台创建的ECS资源。
- 在模板页签,单击右上角的图标。
- 在资源栈列表页面,找到您创建的资源栈,单击操作列下的删除。
- 在删除资源栈对话框中,删除方式选择释放资源,单击确定。
实验链接:https://developer.aliyun.com/adc/scenario/ef5a1ff36c3344ffaceeecf8a298d9e7