AWS自動擴展服務讓您能夠根據實際需求動態調整資源,從而優化性能。
AWS雲平台上一種非常簡單(且免費)的方式來物超所值就是使用自動擴展。自動擴展能夠提高容錯能力、可用性和成本管理,快速擴大或縮小規模以滿足流量需求,同時通過檢測並替換健康狀態不足以保留在基礎設施中的組件,保持成本在預算範圍內。
自動擴展的一些關鍵好處包括:
- 根據需求滿足流量要求並相應調整規模。
- 通過在自動擴展組中預定的操作來調整擴展組容量。
- 減少資源和成本。
- 通過跨可用區部署來增加應用可用性。
AWS提供了多個服務,幫助自動擴展基礎設施組件並減少與擴展相關的管理工作。這些服務通過CloudWatch監控和可觀測性服務進行中介。CloudWatch提供最高1秒的指標可見性、15個月的數據保留(指標)以及對指標進行計算的能力。這使得數字工程團隊能夠執行歷史分析,例如成本優化。除了指定的指標,團隊可以創建警報,並觸發自動擴展策略執行預定義的步驟,無論是擴展還是縮減。
AWS雲平台上的自動擴展服務
EC2實例自動擴展
EC2實例自動擴展幫助我們保持處理應用程序的入站流量請求所需的正確數量的EC2實例。我們可以創建一個EC2自動擴展組,這是一組EC2實例的集合。在該組中,我們可以指定一個最小值,以確保該組的大小永遠不會低於指定的大小。我們還可以指定EC2實例的最大數量,這確保該組的大小永遠不會超過指定的大小。這樣可以保持容量在最小和最大範圍內,並確保您的自動擴展組具有指定的所需容量。自動擴展還允許我們配置計劃的操作,這些操作可以在指定的時間更改最小、最大和所需的自動擴展組容量。
EC2實例自動擴展允許配置擴展策略,根據策略增加或減少您的基礎設施中的EC2實例數量以擴展或縮減。
有兩種類型的擴展:手動擴展,我們可以在其中將EC2實例附加到或從自動擴展組中分離,以及動態擴展,在動態擴展中,我們可以定義如何根據入站請求或具體資源利用率的變化來擴展自動擴展組容量。這允許我們配置策略,以便在諸如請求數量、CPU和內存利用率等因素方面根據策略進行擴展和縮減。
以下是三種動態擴展策略:
- 目標追踪策略:此策略基於特定指標的目標值增加或減少自動擴展組的當前所需容量。此策略維持容量以匹配指定的目標指標,如CPU或內存利用率。假設您設置了自動擴展組的60%利用率——目標追踪策略將增加或移除EC2實例以滿足指定的利用率。
- 階梯式擴展:此策略基於一組擴展調整(EC2實例)增加或減少自動擴展組的當前容量,這些調整根據警報違規的大小而變化。假設自動擴展組有三個階段用於追踪CPU利用率——第一個警報在達到40%時觸發並增加一個EC2實例,第二個警報在達到60%時觸發並增加兩個EC2實例,第三個警報在達到80%時觸發並增加三個EC2實例。
- 簡單擴展:這是一個簡單的擴展策略選項,根據單一擴展調整增加或減少當前自動擴展組容量。這裡我們可以在指定的警報違規時增加一個EC2實例。
EC2自動擴展提供按需實例擴展和現貨艦隊實例自動擴展,通過它我們可以根據需求自動增加或減少現貨艦隊的當前容量。它可以在指定範圍內啟動(擴展)或終止(縮減)。
ECS容器服務自動擴展
彈性容器服務(ECS)自動擴展基於發布的容器CloudWatch指標,如CPU和內存使用率工作。它自動增加或減少ECS服務中容器任務的所需容量。CloudWatch指標可用於擴展(增加更多任務)以處理大量的入站請求,並在利用率低時縮減(移除任務)。
ECS自動擴展允許我們配置包括目標追踪、階梯式擴展和預定擴展動作的策略。
RDS存儲自動擴展
Amazon關聯式數據庫服務(RDS)支持MariaDB、MySQL、PostgreSQL、SQL Server和Oracle的存儲自動擴展,具有零停機時間的RDS存儲自動擴展能夠響應數據庫大小增長自動擴展附加到RDS數據庫的後端存儲卷。
RDS監控當前存儲消耗情況,當當前消耗接近實際配置的大小時向上擴展存儲容量,不影響當前數據庫操作並且不打擾當前數據庫交易。
Aurora自動擴展
AWS Aurora自動擴展動態調整Aurora副本的數量。您可以定義擴展策略,Aurora相應地行動。它擴展Aurora副本以處理數據庫連接性或工作負載的突然增加。當數據庫連接或工作負載減少時,Aurora自動擴展自動移除不需要的Aurora副本,因此客戶不會為不需要的副本實例被收費。
就像我們能夠在其他服務中定義擴展策略一樣,我們也可以在Aurora自動擴展中定義它們,它還允許我們配置可以管理的Aurora副本的最小和最大數量。Aurora自動擴展適用於Aurora的兩種引擎MySQL和PostgreSQL。
DynamoDB自動擴展
DynamoDB工作負載最困難的部分是預測讀寫容量單位。如果應用程序在特定時期需要高吞吐量,就沒有必要為整個時間過量配置容量單位。Amazon DynamoDB自動擴展會根據實際的流量請求模式代表您動態調整配置的吞吐量容量。
隨著工作負載的減少,應用程序自動擴展會減少配置的吞吐量容量單位,以便客戶不為任何不必要的容量付費。
使用DynamoDB自動擴展,我們可以在表或全局二級索引上創建擴展策略。我們可以在擴展策略中指定我們想要擴展讀容量還是寫容量(兩者都行),以及表或索引的最小和最大配置容量單位設置。
为自动扩展准备您的基础设施
为了使这些AWS自动扩展服务能够按预期运作,组织需要确保它们已经:
- 当使用EC2实例时,指定了应用程序用户会话状态和持久性。
- 测试、监控并调整了它们的自动扩展策略,以确保其按预期功能运作。
- 放置了决策逻辑,该逻辑将这些指标与预定义的阈值或计划进行比较,并决定是扩展还是缩减。
- 在配置自动扩展之前,设置了特定服务的限制。
在使用EC2自动扩展时,团队已指定了冷却时间以及启动哪个应用程序,并准备在定义的时间内提供服务。