AWS 在 8 月 13 日發布了一項重要的 DynamoDB 功能改進,讓開發者在管理資料庫容量時擁有更大的彈性。用戶現在可以在 24 小時內,可以將 DynamoDB 資料表的吞吐量模式從預置容量(Provisioned Capacity)切換至隨需模式最多四次,相較於之前每 24 小時只能切換一次的限制,已經方便不少。
模式切換是在成本與因應流量之間的決策,一般而言,在流量穩定可預期的情況下,Provisioned 模式具有成本的優勢,但在有突發流量或不穩定流量的情況下,On-Demoand 模式能夠更快速而且支撐住流量的衝擊。
過去一天只能一次的限制,讓管理團隊在切換之際要考量更多,這次更新可以帶來更多的決策自由度,在需要彈性調整讀寫性能時,不會再因為切換限制而被迫選擇「整天待在On-Demoand 模式」或「整天待在Provisioned 模式」。
這次更新會套用在所有的 Region,用戶不用再額外設定。
關於 DynamoDB 容量模式
1. 預置容量模式(Provisioned Capacity)
- 需要事先設定 讀取單位(RCU) 和 寫入單位(WCU)。
- 適合流量相對穩定、可預測的工作負載。
- 可搭配 自動擴展(Auto Scaling) 自動調整容量。
- 從偵測到需求變化到實際調整容量,通常需要幾分鐘時間
- 段階式調整,每次調整都有一定的比例限制,無法瞬間大幅擴展
- 成本:固定付費(即使未滿載)。
2. 隨需容量模式(On-Demand Capacity)
- 預置且官方推薦的容量模式。
- 免預測流量,自動因應請求量彈性擴展。
- 可以瞬間應對流量突增,從 0 到數百萬 RPS
- 無調整延遲,請求量增加時立即提供所需容量
- 按 每次請求 計費。
- 適合流量不穩定、難以預測的應用。
雖然看起來 On-Demand 很好用,實際上也是好用,但是換來的是成本上的差異,如果是穩定的高流量相比,它的成本可能是 Provisioned 模式的 2 到 3 倍。不過如果流量不穩定而預留太多 Capacity,反而 Provisioned 就形同浪費。一般來說,如果能持續長期使用到預留容量的 20~30% 以上,Provisioned 模式在成本上就划算,在這個前提上,如果有已知的活動會帶來常態之外的流量,這時就適合切換過去 On-Demand 模式,等活動結束之後再切換回來。