充分利用AWS Cloud平臺的最佳方法之一就是自動擴展,它既免費又易于實施。自動縮放可提供更好的容錯能力,更好的可用性和更好的成本管理。當任何基礎結(jié)構(gòu)組件的運行狀況都不足以滿足請求時,自動縮放功能會檢測到該問題并將其替換為運行狀況良好的組件。通過這種方式,自動縮放可快速擴展和縮小以滿足流量需求,同時將成本保持在預算之內(nèi)。
自動縮放可幫助組織:
1.按需滿足流量需求并相應擴展。
2.通過對自動伸縮組執(zhí)行計劃的操作來調(diào)整伸縮組容量。
3.在不需要時減少資源并節(jié)省成本。
4.通過跨可用區(qū)進行部署來提高應用程序的可用性。
借助AWS,有多種服務可幫助自動擴展基礎架構(gòu)組件并減少與擴展相關的管理。它們通過CloudWatch(AWS監(jiān)視和可觀察性服務)進行中介,該服務提供數(shù)據(jù)和可操作的見解來監(jiān)視您的應用程序和基礎架構(gòu),并響應系統(tǒng)范圍的性能變化和資源利用。例如,CloudWatch最多提供一秒鐘的指標可見性,15個月的數(shù)據(jù)保留(指標)以及對指標執(zhí)行計算的能力。例如,這允許數(shù)字工程團隊執(zhí)行歷史分析,例如成本優(yōu)化。在指定的指標之上,團隊可以創(chuàng)建警報并警報觸發(fā)自動擴展策略以執(zhí)行預定義的步驟,以進行橫向擴展或縱向擴展。
AWS Cloud Platform上的自動擴展服務
1. EC2實例自動擴展
EC2實例自動縮放可幫助我們保持正確數(shù)量的EC2實例可用于處理應用程序的傳入流量請求。我們可以創(chuàng)建一個EC2自動擴展組,該組是EC2實例的集合。在該組中,我們可以指定一個最小值,以確保該組永遠不會低于指定的大小。我們還可以指定EC2實例的最大數(shù)量,以確保該組永遠不會超過指定的大小。這樣可將容量保持在最小和最大范圍內(nèi),并確保自動伸縮組具有以所需容量指定的EC2實例。自動縮放還允許我們配置計劃的操作,這些操作可以在指定時間更改最小,最大和所需的自動縮放組容量。
EC2實例自動縮放允許配置縮放策略,該策略將根據(jù)策略增加或減少以增加或減少基礎架構(gòu)中的EC2實例。
擴展有兩種類型:手動(其中我們可以從自動擴展組附加和分離EC2實例)和動態(tài)擴展(動態(tài)擴展),其中我們可以定義如何根據(jù)傳入的請求或變化的需求來擴展自動擴展組的容量。特定資源利用率。這樣,我們就可以配置可以擴展和縮減的策略,并根據(jù)策略針對諸如請求數(shù),CPU和內(nèi)存使用率等因素進行操作。
以下是三種類型的動態(tài)擴展策略。
目標跟蹤–此策略將基于特定指標的目標值來增加或減少自動擴展組的當前所需容量。此策略保持了與指定目標指標(例如CPU或內(nèi)存利用率)相匹配的能力。假設您已將自動擴展組的利用率設置為60%,則目標跟蹤策略將添加或刪除EC2實例以滿足指定的利用率。
分步擴展–此策略基于一組擴展調(diào)整(EC2實例)來增加或減少自動擴展組的當前容量,該擴展調(diào)整根據(jù)警報違規(guī)的大小而變化。假設自動擴展組具有三個階段來跟蹤CPU利用率:第一個警報將在達到40%時觸發(fā),并將添加一個EC2實例,第二個警報將在達到60%且添加兩個EC2實例時觸發(fā),第三個當添加三個EC2實例時,達到80%。
Simple Scaling –這是一個簡單的縮放策略選項,可基于單個縮放調(diào)整來增加或減少當前自動縮放組的容量。在此處,當指定的警報違反時,我們可以添加一個EC2實例。
EC2自動伸縮提供按需實例伸縮和現(xiàn)貨機隊實例自動伸縮,在此我們可以根據(jù)需求自動增加或減少現(xiàn)貨機隊的當前容量。它可以在指定范圍內(nèi)啟動(縮?。┗蚪K止(放大)。
2. ECS容器服務自動擴展
彈性容器服務(ECS)自動擴展適用于容器發(fā)布的CloudWatch指標,例如CPU和內(nèi)存使用率。它會自動增加或減少ECS服務中所需的容器任務容量。您可以使用CloudWatch指標擴展(添加更多任務)以處理大量傳入請求,并在低利用率時擴展(刪除任務)。
通過ECS Auto Scaling,我們可以配置策略,例如目標跟蹤,逐步擴展和計劃的擴展操作。
3. RDS存儲自動縮放
適用于MariaDB,MySQL,PostgreSQL,SQL Server和Oracle的Amazon Relational Database Services(RDS)支持存儲自動擴展,停機時間為零,RDS存儲自動擴展可自動擴展連接到RDS數(shù)據(jù)庫的后端存儲量,以響應不斷增長的數(shù)據(jù)庫大小。
RDS監(jiān)視當前存儲消耗,并在當前消耗接近實際預配置大小時擴大存儲容量,而不會影響當前數(shù)據(jù)庫操作和干擾當前數(shù)據(jù)庫橫斷面。
4. Aurora自動縮放
AWS Aurora自動縮放會動態(tài)調(diào)整Aurora副本的數(shù)量。您可以定義縮放策略,并且Aurora會采取相應的措施。它可以擴展Aurora副本以應對數(shù)據(jù)庫連接性或工作負載的突然增加。隨著數(shù)據(jù)庫連接或工作負載減少,Aurora Auto Scaling會自動刪除不需要的Aurora副本,這意味著不會向客戶收取不需要的副本實例的費用。
就像我們能夠在其他服務中定義擴展策略一樣,我們也可以在Aurora Auto Scaling中定義它們,這還允許我們配置可以管理的Aurora副本的最小和最大數(shù)量。Aurora Auto Scaling可用于Aurora引擎MySQL和PostgreSQL。
5. DynamoDB自動擴展
DynamoDB工作負載中最困難的部分是預測讀寫容量單位。如果應用程序在特定時期內(nèi)需要高吞吐量,則不必一直都過度配置容量單位。Amazon DynamoDB Auto Scaling代表您動態(tài)調(diào)整已調(diào)配的吞吐量,以響應實際的傳入流量請求模式。
隨著工作負載的減少,應用程序自動擴展會減少預配置的吞吐量容量單位,因此客戶無需為任何不必要的容量付費。
使用DynamoDB Auto Scaling,我們可以在表或全局二級索引上創(chuàng)建縮放策略。我們可以在擴展策略中指定是否要擴展讀取容量或?qū)懭肴萘浚▋烧撸?,以及表或索引的最小和最大預配置容量單位設置。
準備好基礎架構(gòu)以實現(xiàn)自動擴展
為了使這些AWS自動伸縮服務正常運行,組織需要確保它們具有:
1.使用EC2實例時指定的應用程序用戶會話狀態(tài)和持久性。
2.測試,監(jiān)視和調(diào)整其自動縮放策略,以確保其按預期運行。
3.制定決策邏輯,可以根據(jù)預定義的閾值或時間表評估這些指標,并確定是橫向擴展還是縱向擴展。
4.在配置自動縮放之前,要使用特定于服務的限制。
5.在使用EC2自動縮放時,該團隊已指定了冷卻時間,要啟動哪個應用程序并準備在規(guī)定的時間內(nèi)提供服務。