阿里云云計算ACP認證重點梳理3—彈性伸縮

彈性伸縮:彈性伸縮是根據用戶的業務需求和策略,自動調整其彈性計算資源的管理服務。其能夠在業務增長時自動增加 ECS 實例,並在業務下降時自動減少 ECS 實例。

伸縮組:伸縮組是具有相同應用場景的 ECS 實例的集合。伸縮組定義了組內 ECS 實例數的最大值、最小值及其相關聯的負載均衡實例和 RDS 實例等屬性。

伸縮配置:伸縮配置定義了用於彈性伸縮的 ECS 實例的配置信息。

伸縮規則:伸縮規則定義了具體的擴展或收縮操作,例如加入或移出 N 個 ECS 實例。

伸縮活動:伸縮規則成功觸發後,就會產生一條伸縮活動。伸縮活動主要用來描述伸縮組內 ECS 實例的變化情況。

伸縮觸發任務:用於觸發伸縮規則的任務,如定時任務、雲監控的報警任務。

冷卻時間:冷卻時間是指,在同一伸縮組內,一個伸縮活動執行完成後的一段鎖定時間。在這段鎖定時間內,該伸縮組不執行其他的伸縮活動。

自動創建的 ECS 實例

自動創建的 ECS 實例是指根據用戶的伸縮配置和伸縮規則,由彈性伸縮服務自動創建的 ECS 實例。彈性伸縮服務負責該類型 ECS 實例的全生命週期管理,即在伸縮組擴展活動中,負責該 ECS 實例的創建,在伸縮組的收縮活動中,負責停止和釋放該 ECS 實例

手工添加的 ECS 實例

手工添加的 ECS 實例是指不是由彈性伸縮服務創建,但由用戶手工添加到伸縮組中的 ECS 實例。彈性伸縮服務不負責該類型 ECS 實例的全生命週期管理,即該類型的 ECS 實例是在彈性伸縮服務之外創建,只能手工加入伸縮組,在伸縮組的收縮活動中或用戶手工移出該類型 ECS 實例時,彈性伸縮服務只負責將該 ECS 實例移出伸縮組,不會停止和釋放該 ECS 實例

實例狀態

ECS 實例在伸縮組中的生命週期,通過以下幾種狀態描述:

Pending – 表示 ECS 實例正在加入伸縮組,包括創建實例、加入負載均衡、添加 RDS 訪問名單等過程。

InService – 表示 ECS 實例已成功加入伸縮組,並正常提供服務。

Removing – 表示 ECS 實例正在移出伸縮組。

實例的健康狀態

ECS 實例在伸縮組中的健康狀態爲:

Healthy(健康)

Unhealthy(不健康)

彈性伸縮會自動移出伸縮組中不健康的 ECS 實例。

對於自動創建的 ECS 實例,彈性伸縮會停止和釋放該 ECS 實例。

對於手工添加的 ECS 實例,彈性伸縮不會停止和釋放該 ECS 實例。

冷卻時間

冷卻時間指成功執行伸縮活動後的一段鎖定時間。您可以通過以下兩種方式配置冷卻時間:

在伸縮組中配置默認冷卻時間,默認冷卻時間不能爲空。

在伸縮規則中配置冷卻時間,如果不配置,將使用默認冷卻時間。

如果同時在伸縮組和伸縮規則中配置了冷卻時間,彈性伸縮服務將優先使用伸縮規則中的冷卻時間。

伸縮組成功執行伸縮活動後,彈性伸縮服務開始計算冷卻時間。如果在伸縮活動中,多臺 ECS 實例加入或者移出伸縮組,則從最後一臺 ECS 實例加入或者移出伸縮組後開始計算冷卻時間

如果在伸縮活動中,沒有 ECS 實例成功加入或者移出伸縮組,則不會開始計算冷卻時間。

在冷卻時間內,伸縮組會拒絕由雲監控報警任務觸發的伸縮活動請求。但其他類型任務(手動執行任務、定時任務)觸發的伸縮活動可以立即執行,繞過冷卻時間。

如果您停用伸縮組,然後再次啓用伸縮組,冷卻時間將會失效。

冷卻時間僅鎖定同一個伸縮組的伸縮活動,不會對其他伸縮組的伸縮活動產生影響。

伸縮活動的流程

自動擴展

1、判斷伸縮組的健康狀態和邊界條件。
2、分配 ActivityId 和執行伸縮活動。
3、創建 ECS 實例。
4、修改 Total Capacity。
5、分配 IP。
6、添加 RDS 白名單。
7、啓動 ECS 實例,等待啓動完成。
8、掛載負載均衡,將權重設爲創建伸縮配置時指定的 負載均衡權重。
9、伸縮活動完成,啓動 cooldown。

自動收縮

1、判斷伸縮組的健康狀態和邊界條件。
2、分配 ActivityId 和執行伸縮活動。
3、從負載均衡移除 ECS 實例。
4、停止 ECS 實例,等待停止完成。
5、從 RDS 白名單移除。
6、釋放 ECS 實例。
7、修改 Total Capacity。
8、伸縮活動完成,啓動 cooldown。

手工加入

1、判斷伸縮組的健康狀態、邊界條件和 ECS 實例的狀態、類型。
2、分配 ActivityId 和執行伸縮活動。
3、加入 ECS 實例。
4、修改 Total Capacity。
5、添加 RDS 白名單。
6、掛載負載均衡,將權重設爲當前伸縮組中已激活的伸縮配置上指定的負載均衡權重。
7、伸縮活動完成,啓動 cooldown。

手工移出

1、判斷伸縮組的健康狀態和邊界條件。
2、分配 ActivityId 和執行伸縮活動。
3、負載均衡停止向該 ECS 實例轉發流量。
4、等待 60 秒後,從負載均衡移除 ECS 實例。
5、從 RDS 白名單移除。
6、修改 Total Capacity。
7、從伸縮組移出。
8、伸縮活動完成,啓動 cooldown。

伸縮活動有 ECS 實例加入伸縮組失敗時,需要保持 ECS 實例級事務的完整性,而非伸縮活動級事務的完整性,即只進行 ECS 實例級回滾,而不是伸縮活動級回滾

例如,當伸縮組創建了 20 臺 ECS 實例,但只有 19 臺 ECS 實例成功加入負載均衡時,則只對不成功的 1 臺 ECS 實例進行自動釋放操作。

當 ECS 實例成功加入伸縮組後,彈性伸縮服務會定期掃描該 ECS 實例的運行狀態,如果發現該 ECS 實例爲非運行中(Running)狀態,則會將該 ECS 實例移出伸縮組

對於彈性服務自動創建的 ECS 實例:將立即啓動移出和釋放該 ECS 實例操作。

對於用戶手工添加的 ECS 實例:將立即啓動移出該 ECS 實例操作,但不會停止和釋放該 ECS 實例。

移出不健康 ECS 實例,不受 MinSize 的限制,即移出不健康 ECS 實例後,有可能導致 Total Capacity 低於 MinSize,此時彈性伸縮服務會自動創建差額的 ECS 實例使得 Total Capacity 等於 MinSize。

同一個賬號一個地域下最多創建 50 個伸縮組。

一個伸縮組內最多創建 10 個伸縮配置。

一個伸縮組內最多創建 50 個伸縮規則。

一個賬號下最多創建 20 個定時任務。

在計算和執行過程中,伸縮規則可以根據伸縮組的 MinSize、MaxSize 進行自動調整其需要增加或減少的 ECS 實例數(例如:伸縮規則中指定將伸縮組的 ECS 實例數調整至 50 臺,但伸縮組 MaxSize 只有 45 臺,則整個伸縮規則會按調整至 45 臺來計算和執行。

同一伸縮組內、同一時刻只能有一個伸縮活動在執行。

伸縮活動不可以中斷。例如,某個創建 20 臺 ECS 實例的伸縮活動正在執行中,當創建到第 5 臺 ECS 實例時,您無法強行終止該伸縮活動。

由於彈性伸縮是藉助阿里雲的 RAM (Resource Access Management)服務,通過 ECS Open API代替用戶彈性伸縮 ECS 實例資源,所以回滾的 ECS 實例仍然會被扣費

由於在同一時刻一個伸縮組中只能存在一個伸縮活動,定時任務還提供了自動重試時間設置功能,避免因爲單次執行伸縮規則失敗影響定時任務的結果。如果同一分鐘內存在多個待執行的定時任務,彈性伸縮會執行最新創建的定時任務

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章