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

網路設定部分填入建立VPC的IPV4網段與交換器子網網段。 如果需要建立對等串連,這裡還需要填寫網路設定,網路設定部分填寫對等串連的使用者側VPC。 需要注意VPC的網段不可以與建立VPC網段重疊。

參數填寫完成後可進入訂單確認頁。

確認訂單完成後同意服務合約並點擊立即建立,進入部署階段。


等待部署完成後就可以開始使用服務。

網路設定已有對等串連內容(使用者在建立服務執行個體頁選擇開啟VPC對等串連才會顯示)。

使用服務,本服務支援VPC對等串連,租戶可以通過VPC對等串連實現私網訪問,租戶私網訪問流程如下。
在服務執行個體詳情的立即使用處VisitUrl後的私網IP地址,可以實現私網訪問。

在對應的vsw中建立ECS,建立好後安裝MySQL用戶端。
yum install mysql or apt install mysql-client在該ECS中串連MySQL,用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定義需要使用者填寫的參數,包括付費類型,執行個體規格,Ipv4網段,交換器子網網段和執行個體密碼可用性區域參數。ZoneId: Type: String AssociationProperty: ALIYUN::ECS::Instance:ZoneId Label: en: VSwitch Available Zone zh-cn: 可用性區域 # 資料庫root賬戶密碼 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 # 建立Ipv4網段 VpcCidrBlock: Type: String Label: en: VPC CIDR IPv4 Block zh-cn: 專用網路IPv4網段 Description: zh-cn: VPC的ip位址區段範圍,<br>您可以使用以下的ip位址區段或其子網:<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font> en: 'The ip address range of the VPC in the CidrBlock form; <br>You can use the following ip address ranges and their subnets: <br><font color=''green''>[10.0.0.0/8]</font><br><font color=''green''>[172.16.0.0/12]</font><br><font color=''green''>[192.168.0.0/16]</font>' AssociationProperty: ALIYUN::VPC::VPC::CidrBlock Default: 192.168.0.0/16 # 建立交換器網段 VSwitchCidrBlock: Type: String Label: en: VSwitch CIDR Block zh-cn: 交換器子網網段 Description: zh-cn: 必須屬於VPC的子網段。 en: Must belong to the subnet segment of VPC. AssociationProperty: ALIYUN::VPC::VSwitch::CidrBlock AssociationPropertyMetadata: VpcCidrBlock: VpcCidrBlock Default: 192.168.1.0/24 # Ecs執行個體類型 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.4xlargeResources定義需要開的資源,包括新開的VPC、vSwitch、ECS、SLB執行個體。# Vpc EcsVpc: Type: ALIYUN::ECS::VPC Properties: CidrBlock: Ref: VpcCidrBlock VpcName: Ref: ALIYUN::StackName # 交換器 EcsVSwitch: Type: ALIYUN::ECS::VSwitch Properties: ZoneId: Ref: ZoneId VpcId: Ref: EcsVpc CidrBlock: Ref: VSwitchCidrBlock 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 # Ecs執行個體 EcsInstanceGroup: Type: ALIYUN::ECS::InstanceGroup Properties: # I/O最佳化執行個體 IoOptimized: optimized ZoneId: Ref: ZoneId DiskMappings: - Category: cloud_essd Device: /dev/xvdb Size: 200 SystemDiskSize: 40 # cloud-init執行使用者命令 # /var/log/cloud-init.log /var/log/cloud-init-output.log 可以看到執行日誌 # /var/lib/cloud/instance/scripts/part-001 為具體的指令碼 可以sh 執行來排查問題 UserData: Fn::Sub: - | #!/bin/sh # sleep一段時間確保網路就緒 sleep 10 # 以下省略,具體可以看templates/template.yaml # 付費方式:隨用隨付 InstanceChargeType: PostPaid MaxAmount: 1 # 系統硬碟類型:cloud_essd SystemDiskCategory: cloud_essd # 執行個體名稱 InstanceName: Ref: ALIYUN::StackName VpcId: Ref: VpcId SecurityGroupId: Ref: EcsSecurityGroup VSwitchId: Ref: VSwitchId # 指定CentOS 7.9鏡像,如果修改鏡像,UserData指令碼需要進行適配 ImageId: "centos_7_9_x64_20G_alibase_20220727.vhd" InstanceType: Ref: EcsInstanceType # 主機名稱 HostName: Ref: ALIYUN::StackName # Ecs登入密碼 Password: Ref: Password # 是否為執行個體分配公網IP AllocatePublicIP: true InternetMaxBandwidthOut: 1Outputs定義需要最終在計算巢概覽頁中對使用者展示的輸出。Outputs: MysqlUserName: Label: MySQL登入使用者名稱 Value: admin VisitUrl: Label: 私網訪問地址 Description: zh-cn: 私網訪問地址 en: private Addresses Value: Fn::Sub: - mysql://${ServerAddress}:3306 - ServerAddress: Fn::Select: - 0 - Fn::GetAtt: - EcsInstanceGroup - PrivateIps