背景資訊
伸縮組支援關聯Server Load Balancer執行個體和RDS執行個體,但是暫時不能關聯Tair (Redis OSS-compatible)執行個體。如果您有業務資料存放區在Tair (Redis OSS-compatible)執行個體上,需要手動設定ECS執行個體加入或移出Tair (Redis OSS-compatible)執行個體白名單,操作效率較低。您可以通過生命週期掛鈎和OOS模板將ECS執行個體自動加入和移出Tair (Redis OSS-compatible)執行個體白名單。
操作步驟
本教程以OOS公用模板ACS-ESS-LifeCycleModifyRedisIPWhitelist為例,實現在擴容時將ECS執行個體加入Tair (Redis OSS-compatible)執行個體白名單。步驟如下:
說明
如果需要在縮容時將ECS執行個體移出Tair (Redis OSS-compatible)執行個體白名單,建立適用於彈性收縮活動的生命週期掛鈎並觸發縮容即可。
步驟一:對RAM角色授予OOS服務許可權
您需要擁有OOS的執行許可權才能執行OOS的模板。執行ACS-ESS-LifeCycleModifyRedisIPWhitelist中定義的營運操作時涉及Elastic Compute Service、Auto Scaling、Tair (Redis OSS-compatible)的資源。
登入RAM控制台。
建立權限原則。
在左側導覽列,單擊。
單擊建立權限原則。
在建立權限原則頁面,選擇權限原則的配置模式為指令碼編輯後,設定其他參數項,然後單擊確定。
本教程中使用的配置如下表所示,未提及的配置保持預設即可。
配置項 | 說明 |
名稱 | 填寫ESSHookPolicyForRedisWhitelist。 |
策略內容 | 輸入以下內容:
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"kvstore:ModifySecurityIps"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ess:CompleteLifecycleAction"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
|
為OOSServiceRole授予權限原則。
在左側導覽列,單擊。
找到OOSServiceRole,在操作列,單擊新增授權。
為OOS服務扮演的RAM角色OOSServiceRole添加要求的權限即可完成授權。
在新增授權頁面,指定資源範圍和許可權配置,然後單擊確認新增授權。
本教程中使用的配置如下表所示,未提及的配置保持預設即可。
配置項 | 說明 |
資源範圍 | 選擇帳號層級。 |
權限原則 | 添加自訂策略ESSHookPolicyForRedisWhitelist。 |
步驟二:為擴容活動建立生命週期掛鈎並觸發擴容
在建立生命週期掛鈎時選擇通知方式為OOS模板並設定相關參數,即可在觸發擴容活動時將ECS執行個體自動加入Tair (Redis OSS-compatible)執行個體白名單。
登入Auto Scaling控制台。
在左側導覽列中,單擊伸縮組管理。
在頂部功能表列處,選擇地區。
找到待操作的伸縮組,選擇任一種方式開啟伸縮組詳情頁面。
在伸縮組名稱/ID列,單擊伸縮組ID。
在操作列,單擊查看詳情。
為擴容活動建立生命週期掛鈎。
在頁面上方,單擊生命週期掛鈎頁簽。
單擊建立生命週期掛鈎。
指定生命週期掛鈎配置,然後單擊確認。
本教程中使用的配置如下表所示,未提及的配置保持預設即可。
配置項 | 說明 |
名稱 | 輸入ESSHookForAddRedisWhitelist。 |
適用的伸縮活動類型 | 選擇彈性擴張活動。 |
逾時時間 | 輸入適當的逾時時間,例如300秒。 說明 逾時時間即用於執行自訂動作的時間,若逾時時間過短,可能導致自訂動作失敗,請評估自訂動作耗時並設定適當的逾時時間。 |
預設執行策略 | 選擇繼續。 |
掛鈎期間執行的動作 | 模板配置如下: ACS-ESS-LifeCycleModifyRedisIPWhitelist的執行參數配置如下: |
觸發擴容。
本教程中以手動執行伸縮規則為例,您也可以通過定時任務、警示任務等方式觸發擴容。
說明
手動執行伸縮規則引發擴縮容時,生命週期掛鈎會生效,但手動添加或移出已有ECS執行個體時,生命週期掛鈎不會生效。
在頁面上方,單擊伸縮規則與警示任務頁簽。
在伸縮規則頁簽下,單擊建立伸縮規則。
設定伸縮規則的屬性,然後單擊確認。
本教程中使用的配置如下表所示,未提及的配置保持預設即可。
配置項 | 說明 |
規則名稱 | 輸入Add1。 |
伸縮規則類型 | 選擇簡單規則。 |
執行的操作 | 設定為增加1台。 |
在伸縮規則列表下,找到建立的伸縮規則Add1,在操作地區,單擊執行。
單擊確定。
執行伸縮規則後自動建立1台ECS執行個體,由於伸縮組內已建立生命週期掛鈎ESSHookForAddRedisWhitelist,ECS執行個體會被掛起,同時自動通知OOS服務執行ACS-ESS-LifeCycleModifyRedisIPWhitelist中定義的營運操作。
步驟三:查看Tair (Redis OSS-compatible)執行個體白名單
登入雲資料庫 Tair(相容 Redis)管理主控台。
在左側導覽列,單擊執行個體列表。
找到目標執行個體,在執行個體ID/名稱地區,單擊執行個體ID。
在左側導覽列,單擊白名單設定。
如果Tair (Redis OSS-compatible)執行個體白名單中加入了建立ECS執行個體的私人IP,符合使用公用模板ACS-ESS-LifeCycleModifyRedisIPWhitelist的預期。
如果成功建立了ECS執行個體,但是建立ECS執行個體的私人IP並沒有加入Tair (Redis OSS-compatible)執行個體白名單,請前往OOS控制台查看營運任務執行情況。具體操作,請參見(可選)步驟四:查看OOS執行情況。
(可選)步驟四:查看OOS執行情況
登入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模板中定義的營運任務。 |