為了提供更加彈性、靈活的伸縮服務,伸縮配置支持設置密鑰對、標簽、實例RAM角色和實例自定義數據參數項。本文為您介紹四個特性的作用并演示其使用方式。
前提條件
使用本教程進行操作前,請確保您已經注冊了阿里云賬號。如還未注冊,請先完成賬號注冊。
背景信息
彈性伸縮(簡稱ESS,也稱為Auto Scaling)不僅提供了在業務需求高峰或低谷時自動調節ECS實例或ECI實例數量的能力,而且提供了在ECS實例或ECI實例上自動部署應用的能力。合理使用彈性伸縮服務,不僅能夠有效地降低您的服務器成本,而且能夠有效地降低您的服務管理和運維成本。
彈性伸縮的伸縮配置支持多種特性,可以高效、靈活地自定義ECS實例或ECI實例的配置。為了幫助您準確地理解和使用彈性伸縮服務,本文將結合伸縮配置特性介紹內容,演示伸縮組自動伸縮和自動部署的效果,包括為實例自動設置實例支持密鑰對登錄、設置標簽屬性、添加實例RAM角色,并在實例啟動后自動執行自定義腳本。
伸縮配置特性介紹
本文中的伸縮配置特性主要包括密鑰對、標簽、實例RAM角色和實例自定義數據四種特性,其詳細信息如下所示:
特性類別 | 說明 | 操作方式 |
密鑰對 | 阿里云只支持RSA 2048位的密鑰對,僅Linux系統的ECS實例支持SSH密鑰對登錄。在創建SSH密鑰對時,阿里云會保存密鑰的公鑰,并向您返回密鑰部分。 在彈性伸縮自動創建出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基礎架構管理工具,使用彈性伸縮原生的實例自定義數據更加快速、安全。關于使用實例自定義數據功能的注意事項和具體操作,請參見使用實例自定義數據自動配置ECS實例。 其主要功能體現如下:
|
|
步驟一:創建配置項
按照以下步驟創建所需的實例RAM角色、標簽、密鑰對和實例自定義數據。
創建標簽。
具體操作,請參見創建或綁定標簽。
創建密鑰對。
具體操作,請參見創建SSH密鑰對。
創建實例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角色。生成實例自定義數據。
具體操作,請參見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臺ECS實例或ECI實例。
組內實例配置信息來源
選擇從零開始創建的方式。
網絡類型
選擇專有網絡類型。
說明僅針對ECS類型的伸縮組,ECI類型的伸縮組無此配置項。
專有網絡
選擇已創建的專有網絡ID。
選擇交換機
選擇對應虛擬交換機。
創建并啟動伸縮配置。
具體操作,請參見創建伸縮配置(ECS實例)。
啟用伸縮組。
具體操作,請參見啟用伸縮組。
步驟三:驗證自定義配置效果
由于創建伸縮組時指定組內最小實例數為1,在啟用伸縮組后即會自動創建1臺實例(以ECS實例為例),保證伸縮組滿足最小實例數的限制。
查看自動創建出的ECS實例。
具體操作,請參見查詢實例列表。
在云服務器ID/名稱列中,單擊實例ID,查看ECS實例詳情。
下圖為實例詳情,可見伸縮配置中的標簽和實例RAM角色配置已生效。
使用SSH密鑰對登錄實例。
具體操作,請參見通過密鑰認證登錄Linux實例。
下圖為登錄成功的效果,表示伸縮配置中的SSH密鑰對配置已生效。
運行以下命令,查看/root/output10.txt文件內容。
cat /root/output10.txt
下圖為文件內容,表示伸縮配置中的實例自定義數據配置已生效。