全部產品
Search
文件中心

:使用伸縮配置特性實現自動擴縮容

更新時間:Jun 30, 2024

為了提供更加彈性、靈活的伸縮服務,伸縮配置支援設定金鑰組、標籤、執行個體RAM角色和執行個體自訂資料參數項。本文為您介紹四個特性的作用並示範其使用方式。

前提條件

使用本教程進行操作前,請確保您已經註冊了阿里雲帳號。如還未註冊,請先完成帳號註冊

背景資訊

Auto Scaling(簡稱ESS,也稱為Auto Scaling)不僅提供了在業務需求高峰或低穀時自動調節ECS執行個體或ECI執行個體數量的能力,而且提供了在ECS執行個體或ECI執行個體上自動部署應用的能力。合理使用Auto Scaling服務,不僅能夠有效地降低您的伺服器成本,而且能夠有效地降低您的服務管理和營運成本。

Auto Scaling的伸縮配置支援多種特性,可以高效、靈活地自訂ECS執行個體或ECI執行個體的配置。為了協助您準確地理解和使用Auto Scaling服務,本文將結合伸縮配置特性介紹內容,示範伸縮組自動調整和自動部署的效果,包括為執行個體自動化佈建執行個體支援通行金鑰對登入、設定標籤屬性、添加執行個體RAM角色,並在執行個體啟動後自動執行自訂指令碼。

伸縮配置特性介紹

本文中的伸縮配置特性主要包括金鑰組、標籤、執行個體RAM角色和執行個體自訂資料四種特性,其詳細資料如下所示:

屬性類別別

說明

操作方式

金鑰組

阿里雲只支援RSA 2048位的金鑰組,僅Linux系統的ECS執行個體支援SSH金鑰組登入。在建立SSH金鑰組時,阿里雲會儲存密鑰的公開金鑰,並向您返回密鑰部分。

在Auto Scaling自動建立出ECS執行個體後,ECS執行個體會儲存該SSH金鑰組的公開金鑰,您在本機使用SSH金鑰組的私密金鑰即可登入自動建立的ECS執行個體。

說明

相比密碼方式,使用SSH金鑰組登入Linux執行個體更加快速、安全,您只需要在建立伸縮配置時選擇SSH金鑰組。更多資訊,請參見SSH金鑰組概述

標籤

標籤可以識別資源和使用者組,允許企業或個人將相同作用的ECS或ECI資源歸類,便於搜尋和資源彙總。更多資訊,請參見標籤概述

執行個體RAM角色

存取控制(Resource Access Management,RAM)是阿里雲提供的一項系統管理使用者身份與資源存取權限的服務。RAM支援建立不同的角色,不同的角色對不同的雲產品具有不同的操作許可權。

執行個體RAM角色讓ECS執行個體扮演具有某些許可權的角色,從而賦予執行個體一定的存取權限。更多資訊,請參見執行個體RAM角色概述

重要

在伸縮配置中選擇執行個體RAM角色時,請確保執行個體RAM角色的權限原則允許您的執行個體扮演該執行個體RAM角色,否則伸縮配置無法彈出執行個體。

執行個體自訂資料

Windows執行個體和Linux執行個體均支援設定執行個體自訂資料功能,更多資訊,請參見ECS執行個體自訂資料概述

說明

相比Terraform等開源IT基礎架構管理工具,使用Auto Scaling原生的執行個體自訂資料更加快速、安全。關於使用執行個體自訂資料功能的注意事項和具體操作,請參見使用執行個體自訂資料自動設定ECS執行個體

其主要功能體現如下:

  • 自訂功能:作為執行個體自訂指令碼在啟動執行個體時執行,您可以自訂執行個體的啟動行為。

  • 引用功能:作為普通資料向執行個體傳入資訊,您可以在執行個體中引用這些資料。

  • 控制台:通過Auto Scaling控制台建立伸縮配置時,您只需要準備好執行個體自訂指令碼,然後以Base64編碼的方式傳入伸縮配置即可,自動建立的ECS執行個體會在啟動時自動執行執行個體自訂指令碼,實現應用層級的擴容和縮容。具體操作,請參見建立伸縮配置(ECS執行個體)

  • API:通過API建立伸縮配置時,使用UserData參數傳入執行個體自訂資料。具體操作,請參見CreateScalingConfiguration

步驟一:建立配置項

按照以下步驟建立所需的執行個體RAM角色、標籤、金鑰組和執行個體自訂資料。

  1. 建立標籤。

    具體操作,請參見建立或綁定標籤

  2. 建立金鑰組。

    具體操作,請參見建立SSH金鑰組

  3. 建立執行個體RAM角色。

    具體操作,請參見建立可信實體為阿里雲服務的RAM角色。您也可以視情況選用已有的RAM角色,在伸縮配置中選擇執行個體RAM角色時,請確保執行個體RAM角色的權限原則允許伸縮組內的執行個體扮演該RAM角色,否則伸縮配置無法彈出執行個體。例如,RAM角色AliyunECSImageExportDefaultRole用於授權匯出鏡像,允許目前使用者的所有ECS執行個體扮演該RAM角色,其信任策略如下:

    {
        "Statement": [
            {
                "Action": "sts:AssumeRole",
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "ecs.aliyuncs.com"
                    ]
                }
            }
        ],
        "Version": "1"
    }
    說明

    ecs.aliyuncs.com表示允許目前使用者的所有ECS執行個體扮演該RAM角色。

  4. 產生執行個體自訂資料。

    具體操作,請參見ECS執行個體自訂資料概述

    本樣本中,建立了一個Shell指令碼,實現在執行個體初次開機後向/root/output10.txt檔案寫入字串Hello World. The time is now{目前時間}。指令碼樣本如下:

    #!/bin/sh
    echo "Hello World.  The time is now $(date -R)!" | tee /root/output10.txt
    說明

    本文使用的Shell指令碼比較簡單,您可以根據自己的需求定製指令碼,在執行個體啟動時自動實現更多功能。

    指令碼經過Base64編碼後內容如下:

    IyEvYmluL3NoDQplY2hvICJIZWxsbyBXb3JsZC4gIFRoZSB0aW1lIGlzIG5vdyAkKGRhdGUgLVIpISIgfCB0ZWUgL3Jvb3Qvb3V0cHV0MTAudHh0 

步驟二:應用配置項

按照以下步驟建立伸縮組和伸縮配置,並在伸縮配置中應用步驟一中建立的配置項。

  1. 建立伸縮組。

    具體操作,請參見配置伸縮組

    建立伸縮組時,請注意以下配置項:

    配置項

    說明

    組內最小執行個體數

    設定為1,表示在啟用伸縮組後,會自動建立1台ECS執行個體或ECI執行個體。

    組內執行個體配置資訊來源

    選擇從零開始建立的方式。

    網路類型

    選擇專用網路類型。

    說明

    僅針對ECS類型的伸縮組,ECI類型的伸縮組無此配置項。

    專用網路

    選擇已建立的專用網路ID。

    選擇交換器

    選擇對應虛擬交換器。

  2. 建立並啟動伸縮配置。

    具體操作,請參見建立伸縮配置(ECS執行個體)

    建立伸縮配置時,請注意以下配置項:

    地區

    配置項

    說明

    執行個體和鏡像

    選擇鏡像

    選用公用鏡像中的Ubuntu 16.04 64位。

    管理設定

    登入憑證

    選擇金鑰組方式。

    金鑰組

    選擇步驟一:建立配置項中建立好的金鑰組。

    標籤

    選擇步驟一:建立配置項中建立好的標籤。

    進階設定

    執行個體RAM角色

    選擇步驟一:建立配置項中建立好的執行個體RAM角色。

    執行個體自訂資料

    輸入步驟一:建立配置項中準備的執行個體自訂資料指令碼。

  3. 啟用伸縮組。

    具體操作,請參見啟用伸縮組

步驟三:驗證自訂配置效果

由於建立伸縮組時指定組內最小執行個體數為1,在啟用伸縮組後即會自動建立1台執行個體(以ECS執行個體為例),保證伸縮組滿足最小執行個體數的限制。

  1. 查看自動建立出的ECS執行個體。

    具體操作,請參見查詢執行個體列表

  2. 雲端服務器ID/名稱列中,單擊執行個體ID,查看ECS執行個體詳情。

    下圖為執行個體詳情,可見伸縮配置中的標籤和執行個體RAM角色配置已生效。執行個體詳情ECS執行個體詳情-ram.png

  3. 使用SSH金鑰組登入執行個體。

    具體操作,請參見通過密鑰認證登入Linux執行個體

    下圖為登入成功的效果,表示伸縮配置中的SSH金鑰組配置已生效。使用金鑰組成功登入執行個體

  4. 運行以下命令,查看/root/output10.txt檔案內容。

    cat /root/output10.txt

    下圖為檔案內容,表示伸縮配置中的執行個體自訂資料配置已生效。自訂資料配置生效