如何解決 Amazon Keyspaces 中的 Auto Scaling 問題?

1 分的閱讀內容
0

我已為 Amazon Keyspaces (適用於 Apache Cassandra) 表格開啟 AWS Auto Scaling。但是,我仍然看到限流,因為耗用的容量大於佈建容量。

簡短說明

Amazon Keyspaces 使用目標追蹤 AWS Application Auto Scaling。目標使用率百分比值是耗用的容量與佈建容量的比率。

Application Auto Scaling 會代為建立 Amazon CloudWatch 警示。該警示會叫用 AWS Application Auto Scaling,通知 Amazon Keyspaces 調整表格的佈建輸送容量。

僅在工作負載持續幾分鐘的減少或上升時,Amazon Keyspaces 的 Application Auto Scaling 才會修改佈建輸送量。例如,您將最小讀取容量單位 (RCU) 設為 100,將目標使用率設為 70%:

  • 當使用率超過 70 個 RCU 且至少連續三分鐘時,Application Auto Scaling 會增加佈建容量。
  • 當連續 15 分鐘 (50 個 RCU) 的使用率低於目標 20% 或以上時,Application Auto Scaling 會減少佈建容量。

解決方案

Application Auto Scaling 可能不適用於在表格上執行尖峰流量負載。這是因為耗用的容量可能沒有足夠的連續資料點來滿足您的容量需求。在這種情況下,您可能會遇到表格限流,因為耗用的容量超過佈建容量。發生這種情況是因為沒有足夠的資料點超出 Application Auto Scaling 擴展容量的使用率閾值。

若要確定耗用的容量是否高於佈建容量,請使用 Amazon CloudWatch 指標。使用 Sum 統計資料來計算耗用的輸送量。例如,取得一分鐘範圍內的 Sum 值。然後,將其除以 60 來計算每秒的平均 ConsumedReadCapacityUnits。請注意,此平均值並未強調顯示該分鐘內發生的任何較大但短暫的讀取活動峰值。您可以將計算值與您為 Amazon Keyspaces 提供的佈建輸送量值進行比較。

以下是對 Amazon Keyspaces 表格上的 Application Auto Scaling 問題進行進行疑難排解的一些最佳實務:

  • 如果表格的流量經常無法預測,請考量將表格更新為隨需模式。隨需模式適用於執行尖峰工作負載,因為它可以立即滿足您的容量需求。當您的流量變得穩定或逐漸增加時,請再次開始使用 Application Auto Scaling。
  • 在您的應用程式中設定重試政策。使用指數退避,然後重試。或者,增加抖動。您可以使用這些方法在後續重試之間引入一些延遲。使用這些方法,可以確保重試不會很快耗盡。如需詳細資訊,請參閱指數退避和抖動
  • 請勿刪除 Amazon Keyspaces 的 Application Auto Scaling 所建立的 CloudWatch 警示。如果您刪除這些警示,Application Auto Scaling 可能無法如預期般運作。如果您不小心刪除了這些警示,請關閉 Application Auto Scaling,然後再重新啟用。CloudWatch 會自動重新建立警示。
  • 請勿依賴 Application Auto Scaling 來處理偶爾的短期活動峰值。當流量逐漸增加或減少時,Application Auto Scaling 運作的效果最好。該表格的內建高載容量可處理偶爾的活動峰值。請注意,Amazon Keyspaces 還可能會在沒有事先通知的情況下,使用高載容量進行背景維護和其他任務。
AWS 官方
AWS 官方已更新 10 個月前