目標追蹤擴展政策 - Amazon ElastiCache

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

目標追蹤擴展政策

使用目標追蹤擴展政策,您可以選取指標及設定目標值。 ElastiCache 使用 Valkey 或 Redis OSS Auto Scaling 會建立和管理觸發擴展政策的 CloudWatch 警示,並根據指標和目標值計算擴展調整。規模調整政策會視需要新增或移除複本,讓指標保持在等於或接近指定目標值。除了讓指標保持在接近目標值之外,目標追蹤規模調整政策也會配合指標中,因為負載模式波動所造成的波動調整,並將機群容量中的快速波動降到最低。

例如,想想看當規模調整政策使用預先定義的平均 ElastiCachePrimaryEngineCPUUtilization 指標搭配所設定目標值時的情況。此類政策可以保持CPU使用率為或接近指定的目標值。

預先定義的指標

預先定義的指標是參考指定 CloudWatch 指標的特定名稱、維度和統計資料 (average) 的結構。Auto Scaling 政策會為您的叢集定義下列其中一項預先定義的指標:

預先定義的指標名稱 CloudWatch 指標名稱 CloudWatch 指標維度 不合格執行個體類型
ElastiCachePrimaryEngineCPUUtilization

EngineCPUUtilization

ReplicationGroupId,角色 = 主要

ElastiCacheDatabaseCapacityUsageCountedForEvictPercentage

DatabaseCapacityUsageCountedForEvictPercentage

Valkey 或 Redis OSS 複寫群組指標

ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage

DatabaseMemoryUsageCountedForEvictPercentage

Valkey 或 Redis OSS 複寫群組指標

R6gd

資料分層執行個體類型無法使用 ElastiCacheDatabaseMemoryUsageCountedForEvictPercentage,因為這些執行個體類型會將資料同時儲存在記憶體和 中SSD。資料分層執行個體的預期使用案例是 100% 的記憶體用量,並視需要填滿SSD。

碎片的 Auto Scaling 條件

當服務偵測到預先定義指標等於或大於目標設定,便會自動增加碎片容量。 ElastiCache 使用 Valkey 或 Redis 將叢集碎片OSS擴展為等於兩個數字中較大者的數量:與目標的百分比變化和目前碎片的 20%。對於縮減,除非整體指標值低於定義目標的 75%,否則 ElastiCache 不會自動縮減。

以下提供水平擴展的範例,如果你有 50 個碎片,

  • 如果您的目標違規率為 30%, ElastiCache 則 Valkey 或 Redis OSS會縮減 30%,因此每個叢集會產生 65 個碎片。

  • 如果您的目標違規率為 10%, ElastiCache 則依預設,Valkey 或 Redis 會橫向OSS擴展至少 20%,因此每個叢集會產生 60 個碎片。

對於縮減範例,如果您已選取目標值 60%, ElastiCache 則使用 Valkey 或 Redis 時,在指標小於或等於 45% (低於目標 60% 的 25%) 之前OSS,不會自動縮減。

Auto Scaling 考量事項

請謹記以下幾點考量:

  • 目標追蹤擴展政策假設在指定的指標超過目標值時,應執行向外擴展。當指定的指標低於目標值時,您無法使用目標追蹤擴展政策來擴展。 ElastiCache 使用 Valkey 或 Redis 將碎片OSS擴展到叢集中現有碎片目標的至少 20% 偏差。

  • 所指定指標的資料不足時,目標追蹤擴展政策不會執行擴展。政策不會執行縮減,因為縮減不會將資料不足解釋為低使用率。

  • 您可能會看到目標值與實際指標資料點之間有些差距。這是因為 ElastiCache 使用 Valkey 或 Redis OSS Auto Scaling 時,在決定要新增或移除的容量時,一律會四捨五入或向下捨入,以保守的方式運作。這樣可防止新增不足的容量,或移除過多的容量。

  • 為了確保應用程式可用性,服務可以根據指標依比例快速水平擴展,但需以更保守的方式縮減規模。

  • 您可以針對 ElastiCache 具有 Valkey 或 Redis OSS叢集的 擁有多個目標追蹤擴展政策,前提是每個政策都使用不同的指標。 ElastiCache (Redis OSS) Auto Scaling 的用意是一律優先考慮可用性,因此其行為會因目標追蹤政策是否已準備好橫向擴展或橫向擴展而有所不同。如果任何目標追蹤政策已準備好向外擴展,它就會將服務向外擴展,但只有在所有目標追蹤政策 (已啟用向內擴展部分) 都已準備好要向內擴展時才會向內擴展。

  • 請勿編輯或刪除 ElastiCache 使用 Valkey 或 Redis OSS Auto Scaling 管理的目標追蹤擴展政策的 CloudWatch 警示。當您刪除擴展政策時, ElastiCache Auto Scaling 會自動刪除警示。

  • ElastiCache Auto Scaling 不會阻止您手動修改叢集碎片。這些手動調整不會影響連接到擴展政策的任何現有 CloudWatch 警示,但可能會影響可能觸發這些 CloudWatch 警示的指標。

  • 這些由 Auto Scaling 管理的 CloudWatch 警示是透過叢集中所有碎片的AVG指標來定義。因此,使用熱碎片可能會導致以下任一情況:

    • 因幾個觸發 CloudWatch 警示的熱碎片載入而不需要擴展

    • 由於AVG彙總了影響警示不違反的所有碎片,因此在需要時不會擴展。

  • ElastiCache 對於每個叢集的節點,使用 Valkey 或 Redis OSS 預設限制仍然適用。因此,當選擇使用 Auto Scaling 且您希望節點數上限超過預設配額時,請至 AWS 服務配額請求增加配額,並選擇配額類型 Nodes per cluster per instance type (每執行個體類型每叢集的節點數)

  • 請確定您的 中有足夠的 ENIs(彈性網路介面)VPC,這是橫向擴展期間所需的。如需詳細資訊,請參閱彈性網路介面

  • 如果 提供的容量不足EC2, ElastiCache Auto Scaling 將無法擴展,且會在容量可用時延遲。

  • ElastiCache (Redis OSS) 在縮減期間Auto Scaling不會移除項目大小大於 256 MB 後序列化的插槽碎片。

  • 進行規模縮減期間,如果產生的碎片組態上的可用記憶體不足,就不會移除碎片。