您可以通过选择场景模板的方式自动录入模板内容,完成服务的快速创建。本文介绍了创建两个ECS和SLB并将ECS添加到SLB后端服务器,并创建一台RDS服务器的场景下,通过选择场景模板的方式,快速部署计算巢服务。
前提条件
当您满足以下任一条件时,可通过本文操作快速部署服务。
您的软件是通过自定义镜像创建ECS实例来部署的。
您已经在云市场以镜像的形式发布过商品。
操作步骤
创建服务
登录计算巢控制台。
在左侧导航栏中,单击我的服务,在我创建的服务页签中,单击创建新服务。
选择自定义创建服务,并在服务类型处选择私有部署服务,然后单击下一步:配置服务。
在配置服务界面,完成如下信息配置。
在基本信息区域,上传服务图标,填写服务名称、服务简介和版本描述。
在服务部署区域,配置服务所需要的资源。
在部署设置处,选择全部地域。
在模板录入处,选择选择经典场景并在选择场景中选择创建两个ECS和SLB并将ECS添加到SLB后端服务器,并创建一台RDS-已有专有网络VPC场景。完成选择场景后,模板内容框中会自动填充内容,您无需修改。界面配置如下图所示。
模板内容的详细说明,请参见ROS控制台,模板架构如下:
单击添加套餐,设置两个套餐且不支持自定义套餐。
在部署物关联处,选择部署物中已分发的镜像替换模板中的镜像。
不设置应用分组。
若您需要将模板中的资源进行分组,可单击创建应用分组,对资源分组。
在服务运维(选填)区域,设置服务运维功能。
在运维处,设置运维通知信息。
在监控处,设置资源监控信息。
在日志、升级和变配处,保持默认配置。
在高级配置(选填)区域,不做更多高级配置。
单击创建服务。
在弹窗中,选中服务协议和审核标准,然后单击确定。
测试服务。
服务保存后,您需要对创建的服务进行测试,以确保其正常可用。更多信息,请参见测试服务。
发布服务。
服务测试通过后,再提交审核,审核通过后即可发布上线。更多信息,请参见上线服务。
部署服务实例
服务上线后用户通过部署链接创建服务实例,按提示输入对应参数,然后点击下一步:确认订单。
在确认订单页,完成参数信息的确认并授权服务商权限,然后单击立即创建。
服务实例部署完成后在资源页查看服务实例生成的资源。
进阶操作
将生成的ECS自动加入RDS白名单
在创建服务时选择并修改本文场景模板,重新定义SecurityIPList部分(模板参考附件),修改完成后按上文的操作步骤配置服务。
附件
ROSTemplateFormatVersion: '2015-09-01'
Description:
en: >-
Use the existing VPC、VSWitch、 SecurityGroup, create 1 RDS, 1 SLB, and 2 ECS
instances, and bind all ECS instances to the SLB.
zh-cn: 使用已有VPC、VSWitch、SecurityGroup,创建1个RDS、1个SLB、2个ECS实例,并将所有ECS实例绑定到SLB上。
Parameters:
ZoneId:
Type: String
AssociationProperty: 'ALIYUN::ECS::Instance:ZoneId'
Description:
zh-cn: 可用区ID。
en: Availability Zone ID.
Label:
zh-cn: 交换机可用区
en: VSwitch Availability Zone
VpcId:
AssociationProperty: 'ALIYUN::ECS::VPC::VPCId'
Type: String
Description:
en: >-
Please search the ID starting with (vpc-xxx)from console-Virtual Private
Cloud
zh-cn: 现有虚拟专有网络的实例ID
Label:
en: VPC ID
zh-cn: 专有网络VPC实例ID
VSwitch:
AssociationProperty: 'ALIYUN::ECS::VSwitch::VSwitchId'
AssociationPropertyMetadata:
VpcId: '${VpcId}'
ZoneId: '${ZoneId}'
Type: String
Description:
en: >-
Instance ID of existing business network switches, console-Virtual
Private Cloud-VSwitches under query
zh-cn: 现有业务网络交换机的实例ID
Label:
en: VSwitch ID
zh-cn: 交换机实例ID
SecurityGroup:
Type: String
AssociationProperty: 'ALIYUN::ECS::SecurityGroup::SecurityGroupId'
AssociationPropertyMetadata:
VpcId: '${VpcId}'
Description:
en: >-
Please search the business security group ID starting with(sg-xxx)from
console-ECS-Network & Security
zh-cn: 现有业务安全组的实例ID
Label:
en: Business Security Group ID
zh-cn: 业务安全组ID
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
DataDiskCategory:
AssociationProperty: 'ALIYUN::ECS::Disk::DataDiskCategory'
AssociationPropertyMetadata:
InstanceType: '${EcsInstanceType}'
ZoneId: '${ZoneId}'
Type: String
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>]
Label:
en: Disk Type
zh-cn: 数据盘类型
DataDiskSize:
Type: Number
Description:
en: 'Data disk space, range of values: 20-23768, units: GB.'
zh-cn: 实例数据盘大小,单位为GiB。取值范围:20~23768。
Label:
en: Data Disk Space
zh-cn: 数据盘空间
MinValue: 20
MaxValue: 23768
Default: 20
SystemDiskSize:
Default: 40
Type: Number
MinValue: 40
MaxValue: 500
Description:
zh-cn: '系统盘大小, 取值范围:[40, 500], 单位:GB。'
en: 'System disk size, range of values: 40-500, units: GB.'
Label:
zh-cn: 系统盘空间
en: System Disk Space
EcsInstanceType:
Type: String
Label:
en: Instance Type
zh-cn: 实例类型
AssociationProperty: 'ALIYUN::ECS::Instance::InstanceType'
AssociationPropertyMetadata:
ZoneId: '${ZoneId}'
InstanceChargeType: '${InstanceChargeType}'
LoadBalancerSpec:
Type: String
AssociationProperty: 'ALIYUN::SLB::Instance::InstanceType'
Description:
en: >-
Instance specifications,</br>see detail:</b><a
href='https://www.alibabacloud.com/help/doc-detail/85939.html'
target='_blank'><b><font color='blue'>Performance Support
Type</b></font></a>
zh-cn: >-
实例规格,</br>详见:</b><a
href='https://help.aliyun.com/document_detail/85939.html'
target='_blank'><b><font color='blue'>性能保障型</b></font></a>
Label:
en: Specifications
zh-cn: 规格
Default: slb.s1.small
SystemDiskCategory:
AssociationProperty: 'ALIYUN::ECS::Disk::DataDiskCategory'
AssociationPropertyMetadata:
InstanceType: '${EcsInstanceType}'
ZoneId: '${ZoneId}'
Type: String
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>]
Label:
en: System Disk Category
zh-cn: 系统盘类型
DBInstanceEngineAndVersion:
Type: String
Description:
zh-cn: 数据库实例引擎类型加版本,默认为Mysql-8.0,现在支持Mysql/SQLServer/PostgreSQL/PPAS/MariaDB。
en: >-
Database instance engine type, default is 'ysql-8.0'.Support
MySQL/SQLServer/PostgreSQL/PPAS/MariaDB now.
Label:
zh-cn: 类型加版本
en: Engine And Version
Default: MySQL-8.0
DBInstanceClass:
Label:
zh-cn: 实例规格
en: DB Instance Class
Type: String
Description:
zh-cn: >-
根据数据库引擎的类型和可用的区域支持选择实例规格;<br>请参见详细信息:<a
href='https://help.aliyun.com/document_detail/26312.html'
target='_blank'><b><font color='blue'>实例规格表</font></b></a>
en: >-
Select the instance specification based on the type of database engine
and the available area support;<br>see detail: <a
href='https://www.alibabacloud.com/help/doc-detail/26312.html'
target='_blank'><b><font color='blue'>Instance specification
sheet</font></b></a>
Default: rds.mysql.c1.large
AssociationProperty: 'ALIYUN::RDS::Instance::InstanceType'
AssociationPropertyMetadata:
ZoneId: '${ZoneId}'
InstanceChargeType: '${RdsDBInstancePayType}'
DBInstanceStorage:
Label:
zh-cn: 实例存储
en: Storage
Type: Number
Description:
zh-cn: RDS实例大小范围为20-2000,每5个增量,单位为GB
en: >-
The size range of RDS instances is 20 - 2000, Incrementing in every 5,
unit GB
MinValue: 20
MaxValue: 2000
ConstraintDescription:
zh-cn: RDS实例大小范围为20-2000,每5个增量,单位为GB
en: >-
The size range of RDS instances is 20 - 2000, Incrementing in every 5,
unit GB
Default: 20
DBInstanceNetType:
AllowedValues:
- Internet
- Intranet
Description:
zh-cn: 数据库实例网络类型,默认为Intranet.Internet用于公共访问,Intranet用于私人访问。
en: >-
Database instance net type, default is Intranet.Internet for public
access, Intranet for private access.
Type: String
Default: Intranet
Label:
zh-cn: 网络类型
en: Network Type
ECSPeriodUnit:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${InstanceChargeType}'
- PostPaid
Description:
zh-cn: '云服务器预付费资源的购买时长周期,取值:[Week(周), Month(月)],<br>'
en: 'ECS Purchase cycle of prepaid resource, value: [Week, Month]<br>'
Default: Week
AllowedValues:
- Week
- Month
Label:
zh-cn: 云服务器预付费资源的购买周期
en: ECS Purchase cycle of prepaid resources
Type: String
ECSPeriod:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${InstanceChargeType}'
- PostPaid
Description:
zh-cn: >-
云服务器预付费资源的购买时长,当预付费资源的购买周期为Week时,取值范围:[1,2,3,4];
当预付费资源的购买周期为Month时,取值:[1,2,3,4,5,6,7,8,9,12,24,36,48,60]<br>
en: >-
When the purchase cycle of prepaid resource is week, the value range is:
[1,2,3,4]; when the purchase cycle of prepaid resource is month, the
value is: [1,2,3,4,5,6,7,8,9,12,24,36,48,60]<br>
Default: 1
Label:
zh-cn: 云服务器预付费资源的购买时长
en: ECS Purchase duration of prepaid resources
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 12
- 24
- 36
- 48
- 60
Type: Number
InstanceChargeType:
Default: PostPaid
Label:
zh-cn: ECS实例的付费模式
en: ECS Instance Billing Method
Type: String
Description:
zh-cn: >-
<font color='blue'><b>可选值:</b></font><br>[PostPaid: <font
color='green'>按量付费。</font>]<br>[PrePaid: <font
color='green'>预付费,包年包月。</font>]
en: >-
<font color='blue'><b>Optional values:</b></font><br>[PostPaid: <font
color='green'>Pay as you go.</font>]<br> [PrePaid: <font
color='green'>Prepaid, subscription.</font>]
AllowedValues:
- PostPaid
- PrePaid
SLBPayType:
Default: PayOnDemand
Label:
zh-cn: SLB实例的付费模式
en: SLB Instance Billing Method
Type: String
Description:
zh-cn: >-
<font color='blue'><b>可选值:</b></font><br>[PayOnDemand: <font
color='green'>按量付费。</font>]<br>[PrePay: <font
color='green'>预付费,包年包月。</font>]
en: >-
<font color='blue'><b>Optional values:</b></font><br>[PayOnDemand: <font
color='green'>Pay as you go.</font>]<br> [PrePay: <font
color='green'>Prepaid, subscription.</font>]
AllowedValues:
- PayOnDemand
- PrePay
SLBPricingCycle:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${SLBPayType}'
- PayOnDemand
Description:
zh-cn: '负载均衡预付费资源的购买时长周期,取值:[month(月), year(年)],<br>'
en: 'SLB Purchase cycle of prepaid resource, value: [month, year]<br>'
Default: month
AllowedValues:
- month
- year
Label:
zh-cn: 负载均衡预付费资源的购买周期
en: SLB Purchase cycle of prepaid resources
Type: String
SLBDuration:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${SLBPayType}'
- PayOnDemand
Description:
zh-cn: >-
负载均衡预付费资源的购买时长,当预付费资源的购买周期为month时,取值范围:[1,2,3,4, 5,6,7,8,9];
当预付费资源的购买周期为year时,取值:[1,2,3]<br>
en: >-
When the purchase cycle of prepaid resource is week, the value range is:
[1,2,3,4, 5,6,7,8,9]; when the purchase cycle of prepaid resource is
month, the value is: [1,2,3]<br>
Default: 1
Label:
zh-cn: 负载均衡预付费资源的购买时长
en: SLB Purchase duration of prepaid resources
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Type: Number
RdsDBInstancePayType:
Type: String
Description:
en: >-
<font color='blue'><b>Optional values: </b></font><br>[PayOnDemand:<font
color='green'>pay-as-you-go</font>]<br>[PrePay:<font
color='green'>prepayment,monthly or annual</font>]<br><font
color='blue'>The monthly instance can not create a database (db) and an
account.
zh-cn: >-
<font color='blue'><b>付费类型;可选值:</b></font><br>[Postpaid:<font
color='green'>按量付费</font>]<br>[Prepaid:<font
color='green'>预付费,包月</font>]<br>预付费,包月实例不创建数据库(db)和账号。
AllowedValues:
- Postpaid
- Prepaid
Label:
en: Payment Type
zh-cn: 付费类型
Default: Postpaid
RdsPeriodType:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${RdsDBInstancePayType}'
- Postpaid
Description:
zh-cn: '数据库实例预付费资源的购买时长周期,取值:[Month(月), Year(年)],<br>'
en: 'Rds Purchase cycle of prepaid resource, value: [Month, Year]<br>'
Default: Month
AllowedValues:
- Month
- Year
Label:
zh-cn: 云数据库预付费资源的购买周期
en: RDS Purchase cycle of prepaid resources
Type: String
RdsPeriod:
AssociationPropertyMetadata:
Visible:
Condition:
'Fn::Not':
'Fn::Equals':
- '${RdsDBInstancePayType}'
- Postpaid
Description:
zh-cn: >-
数据库实例预付费资源的购买时长,当预付费资源的购买周期为Month时,取值范围:[1,2,3,4, 5,6,7,8,9];
当预付费资源的购买周期为Year时,取值:[1,2,3]<br>
en: >-
When the purchase cycle of prepaid resource is Month, the value range
is: [1,2,3,4, 5,6,7,8,9]; when the purchase cycle of prepaid resource is
Year, the value is: [1,2,3]<br>
Default: 1
Label:
zh-cn: 数据库实例预付费资源的购买时长
en: Rds Purchase duration of prepaid resources
AllowedValues:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Type: Number
Resources:
EcsInstanceGroup:
Type: 'ALIYUN::ECS::InstanceGroup'
Properties:
Period:
Ref: ECSPeriod
PeriodUnit:
Ref: ECSPeriodUnit
IoOptimized: optimized
DiskMappings:
- Category:
Ref: DataDiskCategory
Device: /dev/xvdb
Size:
Ref: DataDiskSize
SystemDiskSize:
Ref: SystemDiskSize
InstanceChargeType:
Ref: InstanceChargeType
SecurityGroupId:
Ref: SecurityGroup
VSwitchId:
Ref: VSwitch
MaxAmount: 2
SystemDiskCategory:
Ref: SystemDiskCategory
InstanceName:
'Fn::Join':
- '-'
- - StackId
- Ref: 'ALIYUN::StackId'
VpcId:
Ref: VpcId
ImageId: centos_7
InstanceType:
Ref: EcsInstanceType
HostName:
'Fn::Join':
- '-'
- - StackId
- Ref: 'ALIYUN::StackId'
Password:
Ref: InstancePassword
AllocatePublicIP: false
Slb:
Type: 'ALIYUN::SLB::LoadBalancer'
Properties:
VpcId:
Ref: VpcId
VSwitchId:
Ref: VSwitch
LoadBalancerName:
'Fn::Join':
- '-'
- - StackId
- Ref: 'ALIYUN::StackId'
PayType:
Ref: SLBPayType
PricingCycle:
Ref: SLBPricingCycle
Duration:
Ref: SLBDuration
AddressType: intranet
LoadBalancerSpec:
Ref: LoadBalancerSpec
AutoPay: true
SlbBackendServerAttachment:
DependsOn:
- EcsInstanceGroup
Type: 'ALIYUN::SLB::BackendServerAttachment'
Properties:
BackendServerList:
'Fn::GetAtt':
- EcsInstanceGroup
- InstanceIds
LoadBalancerId:
Ref: Slb
BackendServerWeightList:
- 100
- 100
SlbListener:
DependsOn: Slb
Type: 'ALIYUN::SLB::Listener'
Properties:
Persistence:
CookieTimeout: 60
StickySession: 'on'
PersistenceTimeout: 180
XForwardedFor: 'off'
StickySessionType: insert
ListenerPort: 3306
Bandwidth: -1
HealthCheck:
HttpCode: 'http_2xx,http_3xx,http_4xx,http_5xx'
HealthCheckType: tcp
UnhealthyThreshold: 3
Timeout: 5
HealthyThreshold: 3
Port: 3306
URI: /
Interval: 2
LoadBalancerId:
Ref: Slb
BackendServerPort: 3306
Protocol: tcp
Database:
Type: 'ALIYUN::RDS::DBInstance'
Properties:
PayType:
Ref: RdsDBInstancePayType
Period:
Ref: RdsPeriod
PeriodType:
Ref: RdsPeriodType
VpcId:
Ref: VpcId
VSwitchId:
Ref: VSwitch
Engine:
'Fn::Select':
- '0'
- 'Fn::Split':
- '-'
- Ref: DBInstanceEngineAndVersion
EngineVersion:
'Fn::Select':
- '1'
- 'Fn::Split':
- '-'
- Ref: DBInstanceEngineAndVersion
DBInstanceClass:
Ref: DBInstanceClass
DBInstanceStorage:
Ref: DBInstanceStorage
DBInstanceNetType:
Ref: DBInstanceNetType
SecurityIPList:
Fn::Join:
- ','
- Fn::GetAtt:
- EcsInstanceGroup
- PrivateIps
Outputs:
LoadBalancerId:
Description:
en: The ID of load balance created.
zh-cn: 已创建负载平衡的ID。
Value:
'Fn::GetAtt':
- Slb
- LoadBalancerId
SlbIpAddress:
Description:
en: The IP address of the load balancer.
zh-cn: 负载均衡器的IP地址。
Value:
'Fn::GetAtt':
- Slb
- IpAddress
Metadata:
'ALIYUN::ROS::Interface':
ParameterGroups:
- Parameters:
- ZoneId
- VpcId
- VSwitch
- SecurityGroup
Label:
default:
en: NetWork And SecurityGroup
zh-cn: 网络和安全组
- Parameters:
- InstanceChargeType
- ECSPeriodUnit
- ECSPeriod
- EcsInstanceType
- SystemDiskCategory
- SystemDiskSize
- DataDiskCategory
- DataDiskSize
- InstancePassword
Label:
default:
en: ECS
zh-cn: 云服务器
- Parameters:
- SLBPayType
- SLBPricingCycle
- SLBDuration
- LoadBalancerSpec
Label:
default:
en: SLB
zh-cn: 负载均衡
- Parameters:
- RdsDBInstancePayType
- RdsPeriodType
- RdsPeriod
- DBInstanceEngineAndVersion
- DBInstanceClass
- DBInstanceStorage
- DBInstanceNetType
Label:
default:
en: RDS
zh-cn: 云数据库