使用 Amazon Keyspaces 自動擴展自動管理輸送量容量 - Amazon Keyspaces (適用於 Apache Cassandra)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon Keyspaces 自動擴展自動管理輸送量容量

許多資料庫工作負載本來就具週期性或難以事先預測。例如,假設有一個社交聯網應用程式,其中大部分使用者會在日間活動。資料庫必須能夠處理日間活動,但夜間則不需要同樣多的輸送量。

另一個範例則是正被快速採用的新行動遊戲應用程式。如果遊戲變得非常熱門,可能會超過可用的資料庫資源,這會導致效能緩慢和客戶不滿意。這類工作負載通常需要手動介入來擴展或縮減資料庫資源,以回應不斷改變的用量。

Amazon Keyspaces (適用於 Apache Cassandra) 透過自動調整輸送量容量以回應實際的應用程式流量,協助您有效率地佈建可變工作負載的輸送量容量。Amazon Keyspaces 使用 Application Auto Scaling 服務來代表您增加和減少資料表的讀取和寫入容量。如需 Application Auto Scaling 的詳細資訊,請參閱 Application Auto Scaling 使用者指南

注意

若要快速開始使用 Amazon Keyspaces 自動擴展,請參閱 設定和更新 Amazon Keyspaces 自動擴展政策

Amazon Keyspaces 自動擴展的運作方式

下圖提供 Amazon Keyspaces 自動擴展如何管理資料表輸送量容量的高階概觀。

顯示使用者變更 Amazon Keyspaces 資料表時涉及的不同服務的圖表。服務是 Amazon CloudWatch、Amazon SNS 和 Application Auto Scaling,它會發出 ALTER TABLE 陳述式,根據使用者的讀取或寫入用量來變更容量。

若要啟用資料表的自動擴展,您可以建立擴展政策。擴展政策會指定您要擴展讀取容量或寫入容量 (或兩者),以及資料表的最小和最大佈建容量單位設定。

擴展政策也會定義目標使用率。目標使用率是消耗容量單位與某個時間點佈建容量單位的比率,以百分比表示。自動擴展使用目標追蹤演算法來向上或向下調整資料表的佈建輸送量,以回應實際工作負載。這樣做,以便實際的容量使用率保持在或接近您的目標使用率。

您可以為讀取和寫入容量設定介於 20% 到 90% 之間的自動擴展目標使用率值。預設目標使用率為 70%。如果您的流量快速變更,且您希望容量更快開始擴展,您可以將目標使用率設定為較低的百分比。如果您的應用程式流量變更速度較慢,而且您想要降低輸送量成本,您也可以將目標使用率設定為較高的速率。

如需擴展政策的詳細資訊,請參閱《Application Auto Scaling 使用者指南》中的 Application Auto Scaling 的目標追蹤擴展政策 Auto Scaling

當您建立擴展政策時,Amazon Keyspaces 會代表您建立兩對 Amazon CloudWatch 警示。每對代表佈建和耗用輸送量設定的上限和下限。當資料表的實際使用率持續一段時間偏離您的目標使用率時,就會觸發這些 CloudWatch 警示。若要進一步了解 Amazon CloudWatch,請參閱 Amazon CloudWatch 使用者指南

當其中一個 CloudWatch 警示觸發時,Amazon Simple Notification Service (Amazon SNS) 會傳送通知給您 (如果您已啟用)。然後CloudWatch 警示會叫用 Application Auto Scaling 來評估您的擴展政策。這反過來會向 Amazon Keyspaces 發出 Alter Table 請求,以視需要向上或向下調整資料表的佈建容量。若要進一步了解 Amazon SNS 通知,請參閱設定 Amazon SNS 通知

Amazon Keyspaces 透過增加 (或減少) 資料表的佈建輸送量容量來處理 Alter Table 請求,以便接近您的目標使用率。

注意

Amazon Keyspaces 自動擴展只會在實際工作負載持續幾分鐘保持上升 (或下降) 時,修改佈建的輸送量設定。 目標追蹤演算法會設法長期將目標使用率保持在或接近您選擇的值。資料表的內建高載容量可應付短期遽增的活動。

自動擴展如何適用於多區域資料表

為了確保佈建容量模式中所有多區域資料表中所有資料表複本 AWS 區域 的讀取和寫入容量都足夠,建議您設定 Amazon Keyspaces 自動擴展。

當您在佈建模式中使用多區域資料表搭配自動擴展時,您無法停用單一資料表複本的自動擴展。但是,您可以調整不同區域的資料表讀取自動擴展設定。例如,您可以為複寫資料表的每個區域指定不同的讀取容量和讀取自動擴展設定。

您在指定區域中為資料表複本設定的讀取自動擴展設定會覆寫資料表的一般自動擴展設定。不過,寫入容量必須保持所有資料表複本的同步,以確保有足夠的容量來複寫所有區域中的寫入。

Amazon Keyspaces 自動擴展 AWS 區域 會根據該區域中的用量,獨立更新每個 中資料表的佈建容量。因此,當自動擴展作用中時,多區域資料表的每個區域中的佈建容量可能會有所不同。

您可以使用 Amazon Keyspaces 主控台 AWS CLI、API 或 CQL 來設定多區域資料表及其複本的自動擴展設定。如需如何建立和更新多區域資料表自動擴展設定的詳細資訊,請參閱更新 Amazon Keyspaces 中多區域資料表的佈建容量和自動擴展設定

注意

如果您將自動擴展用於多區域資料表,則必須一律使用 Amazon Keyspaces API 操作來設定自動擴展設定。如果您直接使用 Application Auto Scaling API 操作來設定自動擴展設定,則無法指定多區域資料表 AWS 區域 的 。這可能會導致不支援的組態。

使用須知

開始使用 Amazon Keyspaces 自動擴展之前,您應該注意下列事項:

  • Amazon Keyspaces 自動擴展可根據您的擴展政策,視需要增加讀取容量或寫入容量。如 中所述,所有 Amazon Keyspaces 配額仍然有效Amazon Keyspaces 配額 (適用於 Apache Cassandra)

  • Amazon Keyspaces 自動擴展不會阻止您手動修改佈建的輸送量設定。這些手動調整不會影響連接到擴展政策的任何現有 CloudWatch 警示。

  • 如果您使用主控台建立具有佈建輸送量容量的資料表,則預設會啟用 Amazon Keyspaces 自動擴展。您可以隨時修改自動擴展設定。如需詳細資訊,請參閱關閉資料表的 Amazon Keyspaces 自動擴展

  • 如果您使用 AWS CloudFormation 建立擴展政策,您應該從 管理擴展政策, AWS CloudFormation 以便堆疊與堆疊範本同步。如果您從 Amazon Keyspaces 變更擴展政策,則當堆疊重設時,它們將以 AWS CloudFormation 堆疊範本的原始值覆寫。

  • 如果您使用 CloudTrail 來監控 Amazon Keyspaces 自動擴展,您可能會看到 Application Auto Scaling 發出的呼叫提醒,作為其組態驗證程序的一部分。您可以使用 欄位來篩選掉這些提醒,該invokedBy欄位包含這些驗證檢查application-autoscaling.amazonaws.com的 。