服務說明
本樣本採用ECS+SLB的架構,並預設開啟了私網打通,使用者部署服務執行個體後,可以直接通過內網訪問部署在服務商的MySQL。本樣本對應的Git倉庫地址為:mysql-managed-demo。
本樣本會自動的構建計算巢服務,建立過程大約持續3分鐘,當服務變成待提交後構建成功。具體的服務構建流程如下。
將MySQL安裝包(提前存放到該 GitHub repo中)構建為計算巢檔案部署物。
建立計算巢服務並關聯檔案部署物。
服務為您提供了如下三種套餐。
套餐名 | SLB規格 | ECS規格類型系列 | vCPU與記憶體 | 系統硬碟 | 公網頻寬 |
套餐名 | SLB規格 | ECS規格類型系列 | vCPU與記憶體 | 系統硬碟 | 公網頻寬 |
低配版 | slb.s1.small | ecs.c6.large | 記憶體型c6,2vCPU 4 GiB | ESSD雲端硬碟200 GiB PL0 | 固定頻寬1 Mbps |
基礎版 | slb.s1.small | ecs.c6.xlarge | 記憶體型c6,4vCPU 8 GiB | ESSD雲端硬碟200 GiB PL0 | 固定頻寬1 Mbps |
高配版 | slb.s3.small | ecs.c6.2xlarge | 記憶體型c6,4vCPU 8 GiB | ESSD雲端硬碟200 GiB PL0 | 固定頻寬1 Mbps |
部署架構
本部署架構為SLB+ECS,安全性群組開放連接埠為3306,並配置了終端節點。
服務構建計費說明
測試本服務構建無需任何費用,建立服務執行個體涉及的費用參考服務執行個體計費說明。
RAM帳號要求的權限
本服務需要對ECS、VPC等資源進行訪問和建立操作,若您使用RAM使用者建立服務執行個體,需要在建立服務執行個體前,對使用的RAM使用者的帳號添加相應資源的許可權。添加RAM許可權的詳細操作,請參見為RAM使用者授權。
要求的權限如下表所示。
權限原則名稱 | 備忘 |
AliyunECSFullAccess | 管理雲端服務器服務(ECS)的許可權 |
AliyunVPCFullAccess | 管理Virtual Private Cloud的許可權 |
AliyunROSFullAccess | 管理Resource Orchestration Service服務(ROS)的許可權 |
AliyunComputeNestUserFullAccess | 管理計算巢服務(ComputeNest)的使用者側許可權 |
AliyunComputeNestSupplierFullAccess | 管理計算巢服務(ComputeNest)的服務商側許可權 |
AliyunPrivateLinkFullAccess | 管理私網串連(PrivateLink)的許可權 |
服務執行個體計費說明
測試本服務在計算巢上的費用主要涉及:
所選vCPU與記憶體規格
系統硬碟類型及容量
公網頻寬
私網串連費用
計費方式包括:
服務執行個體的預估費用在建立執行個體時可即時看到。私網串連時,只有在建立服務時候並建立串連後才會計費,計費的詳細資料,請參見計費說明。
部署流程
部署參數說明
參數族 | 參數項 | 說明 |
基礎配置 | 資料庫root和admin賬戶密碼 | 資料庫root和admin賬戶密碼,長度8-32個字元,可包含大小寫字母、數字及特殊符號(包含:!@#$%^&*-+=_)。 |
網路設定 | 可用性區域 | 選擇可用性區域,資源將在服務商的該可用性區域建立。 |
網路設定 | 專用網路 | 選擇建立私網串連的VPC。 |
網路設定 | 安全性群組 | 選擇建立私網串連的安全性群組。 |
網路設定 | 交換器和可用性區域 | 選擇建立私網串連的可用性區域與交換器。 |
部署步驟
單擊服務商提供的服務執行個體部署連結,在服務執行個體部署介面,根據介面提示,填寫參數完成部署。
您還需要填寫網路資訊,建立服務執行個體時,私網串連的終端節點將在該可用性區域建立。
參數填寫完成後可以看到對應的詢價明細,確認參數後點擊下一步:確認訂單。
確認訂單完成後同意服務合約並單擊立即建立進入部署階段。


等待部署完成後就可以開始使用服務。
使用服務,本服務支援私網訪問,租戶可以通過PrivateLink實現私網訪問(私網訪問協助文檔), 租戶私網訪問流程。
在服務執行個體的虛擬互連網頁簽中查看詳細資料,串連時可以通過自訂網域名(如果在建立服務執行個體時勾選了的話)、IP地址或者可用性區域網域名稱進行訪問。
在對應的vsw中建立ECS,然後安裝MySQL用戶端。
yum install mysql
or
apt install mysql-client
在該ECS中串連MySQL,下面展示分別用自訂網域名、IP與可用性區域網域名稱進行串連。
自訂網域名方式訪問。
通過IP訪問。
通過可用性區域網域名稱訪問。
服務詳細說明
本文提前將MySQL社區版安裝包存放到該Github Repo中,構建服務過程中會將該安裝包發布為計算巢部署物,並在ROS模板中寫入安裝指令,ROS模板引擎在執行時便會自動執行安裝操作。{{ computenest::file::MySQL }}
為預留位置,會由計算巢服務替換成檔案部署物MySQL的HTTP下載地址。
wget '{{ computenest::file::MySQL }}' -O mysql-community-release-el6-5.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
yum repolist all | grep mysql
yum install mysql-community-server -y
檔案說明
檔案路徑 | 說明 |
config.yaml | 構建服務的設定檔,服務構建過程中會使用計算巢命令列工具computenest-cli,computenest-cli會基於該設定檔構建服務。 |
parameters.yaml | 本服務為託管版單租,使用該檔案渲染服務商需要配置的網路參數,包括VpcId,vSwitch等。 |
artifact/mysql-community-release-el6-5.noarch.rpm | MySQL社區版安裝包,構建過程會將該包發布為計算巢部署物。 |
icons/service_logo.jpg | 構建服務預設的表徵圖。 |
templates/parameters.yaml | 本服務為託管版單租服務,所以只需要使用者填寫一部分參數,即可通過該檔案指定使用者所填參數。 |
templates/template.yaml | ROS模板檔案,ROS模板引擎根據該模板能夠自動建立出所有的資源。 |
其中templates/template.yaml主要由三部分組成,詳細資料如下。
Parameters
定義需要使用者填寫的參數,包括付費類型,執行個體規格和執行個體密碼可用性區域參數。
ZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::Instance:ZoneId
Label:
en: VSwitch Available Zone
zh-cn: 可用性區域
Password:
NoEcho: true
Type: String
Description:
en: 'Database root account passwor, 8-32 characters, including uppercase and lowercase letters, numbers and special symbols (including: !@#$%^&*-+=_).'
zh-cn: 資料庫root賬戶密碼,長度8-32個字元,可包含大小字母、數字及特殊符號(包含:!@#$%^&*-+=_)。
Label:
en: Root Account Password
zh-cn: 資料庫root賬戶密碼
ConstraintDescription:
en: '8-32 characters, including uppercase and lowercase letters, numbers and special symbols (including: !@#$%^&*-+=_).'
zh-cn: 8-32個字元,可包含大小字母、數字及特殊符號(包含:!@#$%^&*-+=_)。
MinLength: '8'
MaxLength: '32'
AssociationProperty: ALIYUN::ECS::Instance::Password
VpcId:
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Type: String
Label:
en: VPC ID
zh-cn: Virtual Private Cloud執行個體ID
VSwitchId:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
AssociationPropertyMetadata:
VpcId: ${VpcId}
ZoneId: ${ZoneId}
Type: String
Label:
en: VSwitch ID
zh-cn: 交換器執行個體ID
EcsInstanceType:
Type: String
Label:
en: Instance Type
zh-cn: Ecs執行個體類型
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AllowedValues:
- ecs.c6.large
- ecs.c6.xlarge
- ecs.c6.2xlarge
- ecs.c6.4xlarge
SlbInstanceType:
Type: String
Label:
en: Instance Type
zh-cn: Slb執行個體類型
AssociationProperty: ALIYUN::Slb::LoadBalance::LoadBalancerSpec
AllowedValues:
- slb.s1.small
- slb.s3.small
Resources
定義需要開的資源,包括新開的Vpc、vSwitch、ECS、Slb執行個體、私網串連。
EcsSecurityGroup:
Type: 'ALIYUN::ECS::SecurityGroup'
Properties:
VpcId:
Ref: VpcId
SecurityGroupIngress:
- Priority: 1
PortRange: 3306/3306
NicType: internet
SourceCidrIp: 0.0.0.0/0
IpProtocol: tcp
EcsInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
IoOptimized: optimized
ZoneId:
Ref: ZoneId
DiskMappings:
- Category: cloud_essd
Device: /dev/xvdb
Size: 200
SystemDiskSize: 40
UserData:
Fn::Sub:
- |
#!/bin/sh
sleep 10
InstanceChargeType: PostPaid
MaxAmount: 1
SystemDiskCategory: cloud_essd
InstanceName:
Ref: ALIYUN::StackName
VpcId:
Ref: VpcId
SecurityGroupId:
Ref: EcsSecurityGroup
VSwitchId:
Ref: VSwitchId
ImageId: "centos_7_9_x64_20G_alibase_20220727.vhd"
InstanceType:
Ref: EcsInstanceType
HostName:
Ref: ALIYUN::StackName
Password:
Ref: Password
AllocatePublicIP: true
InternetMaxBandwidthOut: 1
Slb:
Type: ALIYUN::SLB::LoadBalancer
Properties:
LoadBalancerName:
Fn::Join:
- '-'
- - mysql
- Ref: ALIYUN::StackName
VpcId:
Ref: VpcId
VSwitchId:
Ref: VSwitchId
PayType: PayOnDemand
AddressType: intranet
LoadBalancerSpec:
Ref: SlbInstanceType
SupportPrivateLink: true
SlbBackendServerAttachment:
DependsOn:
- EcsInstanceGroup
Type: ALIYUN::SLB::BackendServerAttachment
Properties:
BackendServerList:
Fn::GetAtt:
- EcsInstanceGroup
- InstanceIds
LoadBalancerId:
Ref: Slb
BackendServerWeightList:
- 100
- 0
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
VpcEndpointService:
DependsOn: Slb
Type: ALIYUN::PrivateLink::VpcEndpointService
Properties:
ServiceDescription: isv service
Resource:
- ZoneId:
Ref: ZoneId
ResourceId:
Ref: Slb
ResourceType: slb
AutoAcceptEnabled: true
Outputs
定義需要最終在計算巢概覽頁中對使用者展示的輸出。
Outputs:
EndpointServiceId:
Description:
en: EndpointService Id
zh-cn: 終端節點服務Id
Value:
Fn::GetAtt:
- VpcEndpointService
- ServiceId
Endpoint:
Value:
Fn::Join:
- ''
- - Ref: ALIYUN::StackName
- .mysql.com
MysqlUserName:
Description:
en: MySQL User Name
zh-cn: MySQL登入使用者名稱
Value: admin