使用伸縮配置特性實現(xiàn)自動擴縮容
為了提供更加彈性、靈活的伸縮服務(wù),伸縮配置支持設(shè)置密鑰對、標簽、實例RAM角色和實例自定義數(shù)據(jù)參數(shù)項。本文為您介紹四個特性的作用并演示其使用方式。
前提條件
使用本教程進行操作前,請確保您已經(jīng)注冊了阿里云賬號。如還未注冊,請先完成賬號注冊。
背景信息
彈性伸縮(簡稱ESS,也稱為Auto Scaling)不僅提供了在業(yè)務(wù)需求高峰或低谷時自動調(diào)節(jié)ECS實例或ECI實例數(shù)量的能力,而且提供了在ECS實例或ECI實例上自動部署應(yīng)用的能力。合理使用彈性伸縮服務(wù),不僅能夠有效地降低您的服務(wù)器成本,而且能夠有效地降低您的服務(wù)管理和運維成本。
彈性伸縮的伸縮配置支持多種特性,可以高效、靈活地自定義ECS實例或ECI實例的配置。為了幫助您準確地理解和使用彈性伸縮服務(wù),本文將結(jié)合伸縮配置特性介紹內(nèi)容,演示伸縮組自動伸縮和自動部署的效果,包括為實例自動設(shè)置實例支持密鑰對登錄、設(shè)置標簽屬性、添加實例RAM角色,并在實例啟動后自動執(zhí)行自定義腳本。
伸縮配置特性介紹
本文中的伸縮配置特性主要包括密鑰對、標簽、實例RAM角色和實例自定義數(shù)據(jù)四種特性,其詳細信息如下所示:
特性類別 | 說明 | 操作方式 |
密鑰對 | 阿里云只支持RSA 2048位的密鑰對,僅Linux系統(tǒng)的ECS實例支持SSH密鑰對登錄。在創(chuàng)建SSH密鑰對時,阿里云會保存密鑰的公鑰,并向您返回密鑰部分。 在彈性伸縮自動創(chuàng)建出ECS實例后,ECS實例會存儲該SSH密鑰對的公鑰,您在本機使用SSH密鑰對的私鑰即可登錄自動創(chuàng)建的ECS實例。 說明 相比密碼方式,使用SSH密鑰對登錄Linux實例更加快速、安全,您只需要在創(chuàng)建伸縮配置時選擇SSH密鑰對。更多信息,請參見SSH密鑰對概述。 |
|
標簽 | 標簽可以識別資源和用戶組,允許企業(yè)或個人將相同作用的ECS或ECI資源歸類,便于搜索和資源聚合。更多信息,請參見標簽概述。 |
|
實例RAM角色 | 訪問控制(Resource Access Management,RAM)是阿里云提供的一項管理用戶身份與資源訪問權(quán)限的服務(wù)。RAM支持創(chuàng)建不同的角色,不同的角色對不同的云產(chǎn)品具有不同的操作權(quán)限。 實例RAM角色讓ECS實例扮演具有某些權(quán)限的角色,從而賦予實例一定的訪問權(quán)限。更多信息,請參見實例RAM角色概述。 重要 在伸縮配置中選擇實例RAM角色時,請確保實例RAM角色的權(quán)限策略允許您的實例扮演該實例RAM角色,否則伸縮配置無法彈出實例。 |
|
實例自定義數(shù)據(jù) | Windows實例和Linux實例均支持設(shè)置實例自定義數(shù)據(jù)功能,更多信息,請參見ECS實例自定義數(shù)據(jù)概述。 說明 相比Terraform等開源IT基礎(chǔ)架構(gòu)管理工具,使用彈性伸縮原生的實例自定義數(shù)據(jù)更加快速、安全。關(guān)于使用實例自定義數(shù)據(jù)功能的注意事項和具體操作,請參見使用實例自定義數(shù)據(jù)自動配置ECS實例。 其主要功能體現(xiàn)如下:
|
|
步驟一:創(chuàng)建配置項
按照以下步驟創(chuàng)建所需的實例RAM角色、標簽、密鑰對和實例自定義數(shù)據(jù)。
創(chuàng)建標簽。
具體操作,請參見創(chuàng)建或綁定標簽。
創(chuàng)建密鑰對。
具體操作,請參見創(chuàng)建SSH密鑰對。
創(chuàng)建實例RAM角色。
具體操作,請參見創(chuàng)建可信實體為阿里云服務(wù)的RAM角色。您也可以視情況選用已有的RAM角色,在伸縮配置中選擇實例RAM角色時,請確保實例RAM角色的權(quán)限策略允許伸縮組內(nèi)的實例扮演該RAM角色,否則伸縮配置無法彈出實例。例如,RAM角色
AliyunECSImageExportDefaultRole
用于授權(quán)導出鏡像,允許當前用戶的所有ECS實例扮演該RAM角色,其信任策略如下:{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ecs.aliyuncs.com" ] } } ], "Version": "1" }
說明ecs.aliyuncs.com
表示允許當前用戶的所有ECS實例扮演該RAM角色。生成實例自定義數(shù)據(jù)。
具體操作,請參見ECS實例自定義數(shù)據(jù)概述。
本示例中,創(chuàng)建了一個Shell腳本,實現(xiàn)在實例首次啟動后向/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腳本比較簡單,您可以根據(jù)自己的需求定制腳本,在實例啟動時自動實現(xiàn)更多功能。
腳本經(jīng)過Base64編碼后內(nèi)容如下:
IyEvYmluL3NoDQplY2hvICJIZWxsbyBXb3JsZC4gIFRoZSB0aW1lIGlzIG5vdyAkKGRhdGUgLVIpISIgfCB0ZWUgL3Jvb3Qvb3V0cHV0MTAudHh0
步驟二:應(yīng)用配置項
按照以下步驟創(chuàng)建伸縮組和伸縮配置,并在伸縮配置中應(yīng)用步驟一中創(chuàng)建的配置項。
創(chuàng)建伸縮組。
具體操作,請參見配置伸縮組。
創(chuàng)建伸縮組時,請注意以下配置項:
配置項
說明
組內(nèi)最小實例數(shù)
設(shè)置為1,表示在啟用伸縮組后,會自動創(chuàng)建1臺ECS實例或ECI實例。
組內(nèi)實例配置信息來源
選擇從零開始創(chuàng)建的方式。
網(wǎng)絡(luò)類型
選擇專有網(wǎng)絡(luò)類型。
說明僅針對ECS類型的伸縮組,ECI類型的伸縮組無此配置項。
專有網(wǎng)絡(luò)
選擇已創(chuàng)建的專有網(wǎng)絡(luò)ID。
選擇交換機
選擇對應(yīng)虛擬交換機。
創(chuàng)建并啟動伸縮配置。
具體操作,請參見創(chuàng)建伸縮配置(ECS實例)。
創(chuàng)建伸縮配置時,請注意以下配置項:
區(qū)域
配置項
說明
實例和鏡像
選擇鏡像
選用公共鏡像中的Ubuntu 16.04 64位。
管理設(shè)置
登錄憑證
選擇密鑰對方式。
密鑰對
選擇步驟一:創(chuàng)建配置項中創(chuàng)建好的密鑰對。
標簽
選擇步驟一:創(chuàng)建配置項中創(chuàng)建好的標簽。
高級設(shè)置
實例RAM角色
選擇步驟一:創(chuàng)建配置項中創(chuàng)建好的實例RAM角色。
實例自定義數(shù)據(jù)
輸入步驟一:創(chuàng)建配置項中準備的實例自定義數(shù)據(jù)腳本。
啟用伸縮組。
具體操作,請參見啟用伸縮組。
步驟三:驗證自定義配置效果
由于創(chuàng)建伸縮組時指定組內(nèi)最小實例數(shù)為1,在啟用伸縮組后即會自動創(chuàng)建1臺實例(以ECS實例為例),保證伸縮組滿足最小實例數(shù)的限制。
查看自動創(chuàng)建出的ECS實例。
具體操作,請參見查詢實例列表。
在云服務(wù)器ID/名稱列中,單擊實例ID,查看ECS實例詳情。
下圖為實例詳情,可見伸縮配置中的標簽和實例RAM角色配置已生效。
使用SSH密鑰對登錄實例。
具體操作,請參見通過密鑰認證登錄Linux實例。
下圖為登錄成功的效果,表示伸縮配置中的SSH密鑰對配置已生效。
運行以下命令,查看/root/output10.txt文件內(nèi)容。
cat /root/output10.txt
下圖為文件內(nèi)容,表示伸縮配置中的實例自定義數(shù)據(jù)配置已生效。