伸縮組中擴容的ECS實例未分配公網IP地址時,無法對外提供公網訪問能力,您可以在擴容時為新的ECS實例自動綁定EIP以保持服務的可訪問性。如果伸縮組中的ECS實例已綁定了EIP但您需要及時釋放ECS資源(例如業務進入低谷期),或不再需要公網訪問能力,建議釋放對應EIP避免資源或成本浪費,您可以在縮容時自動釋放不再需要的EIP以優化資源使用并降低成本。
EIP是可以獨立購買和持有公網IP地址資源,可以靈活與ECS實例進行綁定或釋放。更多信息,請參見什么是彈性公網 IP。
準備工作
已創建伸縮組,且該伸縮組處于啟用狀態。具體操作,請參見配置伸縮組。
授予OOS服務訪問其他云產品權限。具體操作,請參見為OOS服務設置RAM權限。
創建RAM角色。
本步驟中RAM角色的受信服務為系統運維管理,RAM角色名稱以
OOSServiceRole
為例。為RAM角色添加授權策略。
通過OOS執行任務時涉及ECS、彈性伸縮以及EIP資源,因此您需要為
OOSServiceRole
角色添加以下系統策略:AliyunECSFullAccess
AliyunESSFullAccess
AliyunEIPFullAccess
擴容時為ECS實例自動綁定EIP
創建生命周期掛鉤。
主要配置項說明如下所示,未提及的配置保持默認即可。具體操作,請參見創建生命周期掛鉤。
配置項
說明
名稱
輸入
ESSHookForAttachEip
。適用的伸縮活動類型
選擇彈性擴張活動。
超時時間
輸入適當的超時時間,例如300秒。
重要該參數用于執行自定義操作的時間,若超時時間過短,可能導致自定義操作失敗,請評估自定義操作耗時并設置適當的超時時間。
掛鉤期間執行的動作
執行動作選擇OOS模板。配置步驟如下:
OOS模板類型選擇公共模板。
選擇OOS公共模板
ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance
,實現擴容時為ECS實例自動綁定EIP。單擊
ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance
模板后的設置參數。主要參數示例如下,未提及的參數保持默認即可。
EIP的計量方式:PayByBandwidth為按帶寬計費,PayByTraffic為按流量計費。本教程以PayByBandwidth為例。
EIP的帶寬峰值:本教程以5為例,代表使用EIP時帶寬峰值為5 Mbit/s。
EIP標簽:為自動創建的EIP添加標簽,以便分組管理。
OOS扮演的RAM角色:選擇
OOSServiceRole
即可。已為RAM角色
OOSServiceRole
添加了操作ECS、彈性伸縮、EIP資源的權限,則OOS服務可訪問相應資源。
彈性伸縮觸發擴容活動。
本步驟以手動執行伸縮規則增加1臺ECS實例為例。您也可以通過定時任務、報警任務等方式觸發擴容。具體操作,請參見執行伸縮規則。
說明手動執行伸縮規則觸發擴容時,生命周期掛鉤功能會生效,但手動添加已有ECS實例時,生命周期掛鉤不會生效。
成功觸發擴容活動后,伸縮組會自動創建1臺ECS實例,但由于伸縮組內已創建生命周期掛鉤
ESSHookForAttachEip
,則ECS實例會被掛起,同時自動通知OOS服務執行運維操作(即創建EIP并將其綁定至ECS實例上)。如果伸縮活動的狀態顯示失敗,例如出現以下報錯,請前往OOS控制臺查看運維任務執行情況。具體操作,請參見(可選)查看OOS執行情況。
查看擴容的ECS實例是否已自動綁定EIP。
在伸縮組的查詢伸縮組內實例列表。
頁簽下,單擊自動創建的ECS實例對應的云服務器ID,進入ECS實例詳情頁,具體操作,請參見查看ECS實例基本信息中,彈性公網IP參數顯示如下所示,表示ECS實例已自動綁定了EIP。
說明如果成功創建了ECS實例,但ECS實例并沒有自動綁定EIP,請前往OOS控制臺查看運維任務執行情況。
(可選)查看OOS執行情況。
在任務執行詳情頁面,查看執行的相關信息。您可以在基本信息區域查看執行ID、執行狀態等,也可以在執行步驟和結果區域,查看執行詳情和相應日志。具體操作,請參見查看執行詳情。
重要如果執行失敗,在執行詳情頁面也會顯示相關的報錯信息。
縮容時為ECS實例自動釋放EIP
創建生命周期掛鉤。
主要配置項說明如下所示,未提及的配置項保持默認即可。具體操作,請參見創建生命周期掛鉤。
配置項
說明
名稱
輸入
ESSHookForReleaseEip
。適用的伸縮活動類型
選擇彈性收縮活動。
超時時間
輸入適當的超時時間,例如300秒。
重要該參數用于執行自定義操作的時間,若超時時間過短,可能導致自定義操作失敗,請評估自定義操作耗時并設置適當的超時時間。
掛鉤期間執行的動作
執行動作選擇OOS模板。配置步驟如下:
OOS模板類型選擇公共模板。
選擇OOS公共模板
ACS-ESS-LifeCycleReleaseEipAddressFromInstance
,實現縮容時為ECS實例自動釋放EIP。單擊
ACS-ESS-LifeCycleReleaseEipAddressFromInstance
模板后的設置參數。設置OOS扮演的RAM角色為
OOSServiceRole
即可,其他參數保持默認即可。已為RAM角色OOSServiceRole
添加了操作ECS、彈性伸縮、EIP資源的權限,則OOS服務可訪問相應資源。
彈性伸縮觸發縮容活動。
本步驟以手動執行伸縮規則減少1臺ECS實例為例。您也可以通過定時任務、報警任務等方式觸發擴容。具體操作,請參見執行伸縮規則。
說明手動執行伸縮規則觸發縮容時,生命周期掛鉤會生效,但手動移出已有ECS實例時,生命周期掛鉤不會生效。
成功觸發縮容活動后,伸縮組會自動減少1臺ECS實例,但由于伸縮組內已創建生命周期掛鉤
ESSHookForReleaseEip
,ECS實例會被掛起,同時自動通知OOS服務執行運維操作(即已成功釋放ECS上的EIP)。查看縮容的ECS實例是否已自動釋放EIP。
您可以前往彈性公網IP列表,查看對應的EIP,如果EIP不存在,則說明已成功釋放了EIP。
說明如果成功刪除了ECS實例,但并沒有釋放EIP,請前往OOS控制臺查看運維任務執行情況。
(可選)查看OOS執行情況。
在任務執行詳情頁面,查看執行的相關信息。您可以在基本信息區域查看執行ID、執行狀態等,也可以在執行步驟和結果區域,查看執行詳情和相應日志。具體操作,請參見查看執行詳情。
重要如果執行失敗,在執行詳情頁面也會顯示相關的報錯信息。
常見問題
如果運維任務執行失敗,請根據執行結果中的報錯信息排查原因。更多信息,請參見常見問題。
常見的報錯信息如下:
報錯信息 | 原因 | 解決方案 |
Forbidden.Unauthorized message: A required authorization for the specified action is not supplied. | 您并未向彈性伸縮授權操作當前Action。 | 請檢查是否為RAM角色OOSServiceRole添加了相應的權限。 |
Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM. | RAM用戶或RAM角色沒有操作對應資源的權限。 | 請檢查是否為RAM角色OOSServiceRole添加了相應的權限。例如為RAM角色授予OOS服務的示例權限。您需要為RAM角色添加操作權限,確保OOS服務能夠操作OOS模板中涉及的資源。 |
LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action. | 正在進行的生命周期動作已經過期或中止。 | 請評估生命周期掛鉤的超時時間,確保在超時時間內可以執行完OOS模板中定義的運維任務。 |
相關文檔
生命周期掛鉤是一個管理伸縮組內實例生命周期的工具。使用該功能可以在實例被終止前執行自定義操作,更多信息,請參見生命周期掛鉤概述。
系統運維管理 OOS(CloudOps Orchestration Service)是阿里云提供的云上自動化運維服務,能夠自動化管理和執行任務。更多信息,請參見什么是系統運維管理。
如果需實現低成本故障轉移等網絡管理,同時需具備公網訪問能力,您可在擴容時為ECS實例自動綁定帶有EIP的輔助彈性網卡。如果ECS實例已綁定了帶有EIP的輔助彈性網卡,但您需及時釋放ECS資源(例如業務進入低谷期),或不再需要公網訪問能力,您可在縮容時自動釋放不再需要的輔助彈性網卡和EIP。具體操作,請參見自動綁定和釋放帶有EIP的輔助彈性網卡。