本文由簡體中文內容自動轉碼而成。阿里雲不保證此自動轉碼的準確性、完整性及時效性。本文内容請以簡體中文版本為準。

使用MySQL軟體包建立包含私網串連功能的單租版全託管服務執行個體

更新時間:2025-01-17 09:12

本文介紹基於ECS+SLB架構版MySQL軟體包快速構建包含私網串連(PrivateLink)功能的單租版全託管計算巢服務執行個體的詳細資料。

服務說明

本樣本採用ECS+SLB的架構,並預設開啟了私網打通,使用者部署服務執行個體後,可以直接通過內網訪問部署在服務商的MySQL。本樣本對應的Git倉庫地址為:mysql-managed-demo

本樣本會自動的構建計算巢服務,建立過程大約持續3分鐘,當服務變成待提交後構建成功。具體的服務構建流程如下。

  1. 將MySQL安裝包(提前存放到該 GitHub repo中)構建為計算巢檔案部署物。

  2. 建立計算巢服務並關聯檔案部署物。

服務為您提供了如下三種套餐。

套餐名

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,並配置了終端節點。架構圖.png

服務構建計費說明

測試本服務構建無需任何費用,建立服務執行個體涉及的費用參考服務執行個體計費說明。

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。

網路設定

安全性群組

選擇建立私網串連的安全性群組。

網路設定

交換器和可用性區域

選擇建立私網串連的可用性區域與交換器。

部署步驟

  1. 單擊服務商提供的服務執行個體部署連結,在服務執行個體部署介面,根據介面提示,填寫參數完成部署。p758842.jpg

    您還需要填寫網路資訊,建立服務執行個體時,私網串連的終端節點將在該可用性區域建立。p758850.png

  2. 參數填寫完成後可以看到對應的詢價明細,確認參數後點擊下一步:確認訂單p758851.jpg

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

    提交成功.png部署進度.jpg

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

  5. 使用服務,本服務支援私網訪問,租戶可以通過PrivateLink實現私網訪問(私網訪問協助文檔), 租戶私網訪問流程。

    1. 在服務執行個體的虛擬互連網頁簽中查看詳細資料,串連時可以通過自訂網域名(如果在建立服務執行個體時勾選了的話)、IP地址或者可用性區域網域名稱進行訪問。3.png

    2. 在對應的vsw中建立ECS,然後安裝MySQL用戶端。

      yum install mysql
      or
      apt install mysql-client
    3. 在該ECS中串連MySQL,下面展示分別用自訂網域名、IP與可用性區域網域名稱進行串連。

      1. 自訂網域名方式訪問。p758873.png

      2. 通過IP訪問。p758876.png

      3. 通過可用性區域網域名稱訪問。p758877.png

服務詳細說明

本文提前將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主要由三部分組成,詳細資料如下。

  1. Parameters定義需要使用者填寫的參數,包括付費類型,執行個體規格和執行個體密碼可用性區域參數。

    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
    # Virtual Private Cloud執行個體ID
    VpcId:
     AssociationProperty: ALIYUN::ECS::VPC::VPCId
     Type: String
     Label:
       en: VPC ID
       zh-cn: Virtual Private Cloud執行個體ID
    # 交換器執行個體ID
    VSwitchId:
     AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
     AssociationPropertyMetadata:
       VpcId: ${VpcId}
       ZoneId: ${ZoneId}
     Type: String
     Label:
       en: VSwitch ID
       zh-cn: 交換器執行個體ID
    # 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.4xlarge
    SlbInstanceType:
     Type: String
     Label:
       en: Instance Type
       zh-cn: Slb執行個體類型
     AssociationProperty: ALIYUN::Slb::LoadBalance::LoadBalancerSpec
     AllowedValues:
       - slb.s1.small
       - slb.s3.small
  2. 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
    # 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: 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
  3. 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
    

相關文檔

服務配置

建立代營運服務完成執行個體營運

雲資源變更配置

服務升級配置

服務交付

佈建服務架構圖

佈建服務架構圖

將服務上架到雲市場

  • 本頁導讀 (1, M)
  • 服務說明
  • 部署架構
  • 服務構建計費說明
  • RAM帳號要求的權限
  • 服務執行個體計費說明
  • 部署流程
  • 部署參數說明
  • 部署步驟
  • 服務詳細說明
  • 相關文檔
  • 服務配置
  • 服務交付
文檔反饋
phone 聯絡我們

立即和Alibaba Cloud在線服務人員進行交談,獲取您想了解的產品信息以及最新折扣。

alicare alicarealicarealicare