全部產品
Search
文件中心

Auto Scaling:擴縮容時為ECS執行個體自動綁定和釋放EIP

更新時間:Jul 10, 2024

伸縮組中擴容的ECS執行個體未分配公網IP地址時,無法對外提供公網訪問能力,您可以在擴容時為新的ECS執行個體自動綁定EIP以保持服務的可訪問性。如果伸縮組中的ECS執行個體已綁定了EIP但您需要及時釋放ECS資源(例如業務進入低穀期),或不再需要公網訪問能力,建議釋放對應EIP避免資源或成本浪費,您可以在縮容時自動釋放不再需要的EIP以最佳化資源使用並降低成本。

說明

EIP是可以獨立購買和持有公網IP地址資源,可以靈活與ECS執行個體進行綁定或釋放。更多資訊,請參見什麼是彈性公網 IP

準備工作

  • 已建立伸縮組,且該伸縮組處於啟用狀態。具體操作,請參見配置伸縮組

  • 授予OOS服務訪問其他雲產品許可權。具體操作,請參見為OOS服務設定RAM許可權

    1. 建立RAM角色。

      本步驟中RAM角色的受信服務為系統營運管理,RAM角色名稱以OOSServiceRole為例。

    2. 為RAM角色添加授權策略。

      通過OOS執行任務時涉及ECS、Auto Scaling以及EIP資源,因此您需要為OOSServiceRole角色添加以下系統策略:

      • AliyunECSFullAccess

      • AliyunESSFullAccess

      • AliyunEIPFullAccess

擴容時為ECS執行個體自動綁定EIP

  1. 建立生命週期掛鈎。

    主要配置項說明如下所示,未提及的配置保持預設即可。具體操作,請參見建立生命週期掛鈎

    配置項

    說明

    名稱

    輸入ESSHookForAttachEip

    適用的伸縮活動類型

    選擇彈性擴張活動

    逾時時間

    輸入適當的逾時時間,例如300秒。

    重要

    該參數用於執行自訂動作的時間,若逾時時間過短,可能導致自訂動作失敗,請評估自訂動作耗時並設定適當的逾時時間。

    掛鈎期間執行的動作

    執行動作選擇OOS模板。配置步驟如下:

    1. OOS模板類型選擇公用模板

    2. 選擇OOS公用模板ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance,實現擴容時為ECS執行個體自動綁定EIP。

    3. 單擊ACS-ESS-LifeCycleAllocateEipAddressAndAttachToInstance模板後的設定參數

      主要參數樣本如下,未提及的參數保持預設即可。

      • EIP的計量方式:PayByBandwidth為按頻寬計費,PayByTraffic為按流量計費。本教程以PayByBandwidth為例。

      • EIP的頻寬峰值:本教程以5為例,代表使用EIP時頻寬峰值為5 Mbit/s。

      • EIP標籤:為自動建立的EIP添加標籤,以便分組管理。

      • OOS扮演的RAM角色:選擇OOSServiceRole即可。

        已為RAM角色OOSServiceRole添加了操作ECS、Auto Scaling、EIP資源的許可權,則OOS服務可訪問相應資源。

  2. Auto Scaling觸發擴容活動。

    本步驟以手動執行伸縮規則增加1台ECS執行個體為例。您也可以通過定時任務、警示任務等方式觸發擴容。具體操作,請參見執行伸縮規則

    說明

    手動執行伸縮規則引發擴容時,生命週期掛鈎功能會生效,但手動添加已有ECS執行個體時,生命週期掛鈎不會生效。

    成功觸發擴容活動後,伸縮組會自動建立1台ECS執行個體,但由於伸縮組內已建立生命週期掛鈎ESSHookForAttachEip,則ECS執行個體會被掛起,同時自動通知OOS服務執行營運操作(即建立EIP並將其綁定至ECS執行個體上)。

    如果伸縮活動的狀態顯示失敗,例如出現以下報錯,請前往OOS控制台查看營運任務執行情況。具體操作,請參見(可選)查看OOS執行情況

    scaling-failed

  3. 查看擴容的ECS執行個體是否已自動綁定EIP。

    在伸縮組的執行個體列表 > 自動建立頁簽下,單擊自動建立的ECS執行個體對應的雲端服務器ID,進入ECS執行個體詳情頁,具體操作,請參見查詢伸縮組內執行個體列表

    查看ECS執行個體基本資料中,Elastic IP Address參數顯示如下所示,表示ECS執行個體已自動綁定了EIP。

    primary-eip

    說明

    如果成功建立了ECS執行個體,但ECS執行個體並沒有自動綁定EIP,請前往OOS控制台查看營運任務執行情況。

  4. (可選)查看OOS執行情況。

    在任務執行詳情頁面,查看執行的相關資訊。您可以在基本資料地區查看執行ID、執行狀態等,也可以在執行步驟和結果地區,查看執行詳情和相應日誌。具體操作,請參見查看執行詳情

    重要

    如果執行失敗,在執行詳情頁面也會顯示相關的報錯資訊。

縮容時為ECS執行個體自動釋放EIP

  1. 建立生命週期掛鈎。

    主要配置項說明如下所示,未提及的配置項保持預設即可。具體操作,請參見建立生命週期掛鈎

    配置項

    說明

    名稱

    輸入ESSHookForReleaseEip

    適用的伸縮活動類型

    選擇彈性收縮活動

    逾時時間

    輸入適當的逾時時間,例如300秒。

    重要

    該參數用於執行自訂動作的時間,若逾時時間過短,可能導致自訂動作失敗,請評估自訂動作耗時並設定適當的逾時時間。

    掛鈎期間執行的動作

    執行動作選擇OOS模板。配置步驟如下:

    1. OOS模板類型選擇公用模板

    2. 選擇OOS公用模板ACS-ESS-LifeCycleReleaseEipAddressFromInstance,實現縮容時為ECS執行個體自動釋放EIP。

    3. 單擊ACS-ESS-LifeCycleReleaseEipAddressFromInstance模板後的設定參數

      設定OOS扮演的RAM角色OOSServiceRole即可,其他參數保持預設即可。已為RAM角色OOSServiceRole添加了操作ECS、Auto Scaling、EIP資源的許可權,則OOS服務可訪問相應資源。

  2. Auto Scaling觸發縮容活動。

    本步驟以手動執行伸縮規則減少1台ECS執行個體為例。您也可以通過定時任務、警示任務等方式觸發擴容。具體操作,請參見執行伸縮規則

    說明

    手動執行伸縮規則引發縮容時,生命週期掛鈎會生效,但手動移出已有ECS執行個體時,生命週期掛鈎不會生效。

    成功觸發縮容活動後,伸縮組會自動減少1台ECS執行個體,但由於伸縮組內已建立生命週期掛鈎ESSHookForReleaseEip,ECS執行個體會被掛起,同時自動通知OOS服務執行營運操作(即已成功釋放ECS上的EIP)。

  3. 查看縮容的ECS執行個體是否已自動釋放EIP。

    您可以前往Elastic IP Address列表,查看對應的EIP,如果EIP不存在,則說明已成功釋放了EIP。

    說明

    如果成功刪除了ECS執行個體,但並沒有釋放EIP,請前往OOS控制台查看營運任務執行情況。

  4. (可選)查看OOS執行情況。

    在任務執行詳情頁面,查看執行的相關資訊。您可以在基本資料地區查看執行ID、執行狀態等,也可以在執行步驟和結果地區,查看執行詳情和相應日誌。具體操作,請參見查看執行詳情

    重要

    如果執行失敗,在執行詳情頁面也會顯示相關的報錯資訊。

常見問題

如果營運任務執行失敗,請根據執行結果中的報錯資訊排查原因。更多資訊,請參見常見問題

常見的報錯資訊如下:

報錯資訊

原因

解決方案

Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

您並未向Auto Scaling授權操作當前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的輔助彈性網卡