AutoScaling技術相關要點

2021-08-04 09:41:00 字數 3156 閱讀 2774

autoscaling技術要點

一、優點與限制

1.1、優點

l  實現資源的自我補充和減少機制;

l  支援多種觸發機制;

l  按需呼叫例項,提高單個例項的利用率,減少費用;

l  支援多種擴充套件方法,提高場景及需求匹配度;

l  可以實現乙個組多策略的使用方法;

l  高可用,組合靈活;

1.2、限制資源

預設限制

啟動配置

100auto scaling組 20

每個auto scaling 組的生命週期鉤子 50

每個auto scaling 組的負載均衡器 50

每個擴充套件策略的步進調整 20

當然,這些限制可以通過提交aws的技術申請放開,但提公升的幅度不會很大。

二、autoscaling的策略

2.1、擴充套件策略

autoscaling支援四種擴充套件方法:始終保持當前例項等級、手動擴充套件、按計畫擴充套件、按需求進行擴充套件;

始終保持當前例項等級:實際上保持ec2 的數量不變,在出現健康ec2是進行替換;

手動擴充套件:在現有執行的auto scaling 的組中,手動新增ec2,並加入到組中;

按計畫擴充套件:主要是設定時間點,在固定的時間執行ec2 的擴充套件,或者啟動乙個新的auto scaling組,無論當時機器負荷情況如何;

按需求進行擴充套件:此策略是auto scaling官方推薦策略,也是最自動話的擴充套件策略,此策略主要依託觸發機制使用,當監控到達設定報警線後,會根據既定的要求,自動增加ec2 到已有的auto scaling 中,或者重新啟動乙個新的auto scaling 組;

注意:乙個auto scaling組在任何給定時間可附有多個擴充套件策略。

2.2、收縮策略

auto scaling 為此,提供了5種終止策略方案,具體如下:

• oldestinstance。auto scaling 終止組中最舊的例項。當auto scaling 組中的例項公升級為新的ec2 例項型別,可以逐漸將較舊型別的例項替換為較新型別的例項時,此選項十分有用。

• newestinstance。auto scaling 終止組中最新的例項。如果要測試新的啟動配置但不想在生產中保留它時,此策略非常有用。

• oldestlaunchconfiguration。auto scaling 終止採用最舊啟動配置的例項。如果要更新某個組並且逐步淘汰先前配置中的例項時,此策略非常有用。

• closesttonextinstancehour。auto scaling 終止最接近下個計費小時的例項。此策略最大程度使用例項並管理成本。

• default。auto scaling 使用預設終止策略。如果有多個擴充套件策略與該組關聯,此策略非常有用。

此預設終止策略可幫助確保網路架構均勻分布到多個可用區。當使用預設終止策略時,按如下方式選擇要終止的例項:

1. auto scaling 確定在多個可用區中是否有例項。如果是,它會選擇有最多例項並且至少乙個例項不受縮減保護的可用區。如果有多個可用區有此數目的例項,則auto scaling 選擇使用最舊啟動配置的例項所在的可用區。

2. auto scaling 確定所選可用區中的哪些不受保護的例項使用最舊啟動配置。如果有乙個此類例項,它會終止該例項。

3. 如果有多個例項使用最舊啟動配置,則autoscaling 確定哪些不受保護的例項最接近下個計費小時。(這有助於最大程度使用ec2 例項,同時最大程度減少對amazon ec2 用量的計費時數。)如果有乙個此類例項,auto scaling 會終止該例項。

4. 如果有多個不受保護的例項最接近下個計費小時,則auto scaling 隨機選擇其中乙個例項。

流程圖說明:

終止策略跟擴充套件策略上有點不一樣的地方是:終止策略可以多個應用到乙個auto scaling 組上。

三、autoscaling 的實施

從上面的介紹可以看到,在autoscaling的部署中,會可以有多種不同的搭配,基於不同的情況下,觸發/啟動乙個新的auto scaling組,很多時候還可以多個組去形成乙個系統集群。

3.1、策略的選擇

auto scaling從本質上就是要確保集群的高可用性,所以在策略選擇上,也不能以單一的方式作為集群接點的伸縮支撐,需要使用多種策略結合的方式結合,讓auto scaling更顯健壯;

3.2、基礎物件的選擇

auto scaling部署中,很多時候為了提高ec2 的應用率,都會在auto scaling按需擴充套件的策略,這種策略有乙個短板,就是需要外部警報的觸發(手動也可以),根據設定的條件進行收縮,所以監控什麼物件產生警報,這就很關鍵了。

例如:現在有乙個elb+ 2個ec2 執行了乙個web 應用平台,如果我們設定監測其中乙個ec2 的cpu利用率高於80% 或記憶體使用率高於90%時觸發乙個auto scaling組,增加ec2 來減輕現有ec2 的壓力。這種做法是乙個很正常的做法,但是很多時候我們會忽略乙個事情,當被監控的ec2 宕機了,這樣auto scaling組就無法觸發了。

所以在這種情況下,我們可能把監控的物件放在elb上更可靠些,當然,還是將elb+ 2個ec2做成乙個auto scaling組,並設定為「始終保持當前例項等級」,在基於此auto scaling組上建立監控和警報觸發,這樣會有更大的可靠性;

3.3、多autoscaling組形成的集群

如3.2 例子上所說,多個autoscaling 組建的系統集群具有更高的可靠性,同時也會擁有更大的可擴充套件性(畢竟乙個auto scaling組只能最多包含20個ec2)。而不同組別之間可以基於不同的ec2 類別進行元件,互補雙互之間的不足;

3.4、autoscaling組接點ec2的安全性

在auto scaling中包含多ec2,這些ec2在系統使用的過程中不停地經行更替,所以對auto scaling組的配置必須要有乙個謹慎的安全意識,同時其使用的安全組也不能經常進行修改;

AutoScaling伸縮活動流程

自動擴充套件 1 判斷伸縮組的健康狀態和邊界條件。2 分配 activityid 和執行伸縮活動。3 建立 ecs 例項。4 修改 total capacity。5 分配 ip。6 新增 rds 白名單。7 啟動 ecs 例項,等待啟動完成。8 掛載負載均衡,將權重設為建立伸縮配置時指定的 負載均衡...

EC2 Auto Scaling演示彈性伸縮

www.iloveaws.cn 我們開始今天的課程內容。來到auto scaling組控制台,as test group是我們上節課建立的auto scaling組,所需例項和最小例項我們配置的為1。上節課我們配置了擴充套件策略並新增了2個警報,內容為當auto scaling組內例項cpu使用率大...

XML相關技術

xsl由三部分組成 xml文件轉換 xml document transformation 又叫xslt 模式匹配語法 a pattern matching syntax 又叫xpath 格式話物件 a formatting object interpretation,xsl fo xpath是一種...