目標追蹤擴展政策 - Amazon ElastiCache

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

目標追蹤擴展政策

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

複本的 Auto Scaling 條件

Auto Scaling 政策會為您的叢集定義下列預先定義的指標:

ElastiCacheReplicaEngineCPUUtilization:在 ElastiCache 用來觸發自動擴展操作的所有複本中彙總的 AVG EngineCPU 使用率閾值。您可以將使用率目標設定為 35% 到 70% 之間。

當服務偵測到 ElastiCacheReplicaEngineCPUUtilization 指標等於或大於目標設定,便會自動增加碎片間的複本數。ElastiCache 會將叢集複本擴展為等於兩個數字中較大者的計數:與目標和一個複本的百分比變化。對於縮減,除非整體指標值低於已定義目標的 75%,否則 ElastiCache 不會自動縮減。

以下提供水平擴展的範例,如果有 5 個碎片,各 1 個複本:

如果您的目標違規 30%,ElastiCache for Valkey 和 Redis OSS 會跨所有碎片向外擴展 1 個複本 (max(0.3,預設 1))。這會產生 5 個碎片,每個碎片各 2 個複本。

對於縮減範例,如果您已選取目標值 60%,ElastiCache for Valkey 和 Redis OSS 將不會自動縮減,直到指標小於或等於 45% (低於目標 60% 的 25%)。

Auto Scaling 考量事項

請謹記以下幾點考量:

  • 目標追蹤擴展政策假設在指定的指標超過目標值時,應執行向外擴展。您無法使用目標追蹤擴展政策在指定的指標低於目標值時執行向外擴展。ElastiCache for Valkey 和 Redis OSS 會將複本擴展為叢集中所有碎片中現有複本的最大值 (與目標相差 %,預設 1)。

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

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

  • 為了確保應用程式的可用性,此服務可以配合指標依比例快速擴展規模,但是以更漸進的方式在叢集中碎片間最多縮減規模 1 個複本。

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

  • 請勿編輯或刪除 ElastiCache Auto Scaling 針對目標追蹤擴展政策管理的 CloudWatch 警示。當您刪除擴展政策或刪除叢集時,Auto Scaling 會自動刪除警示。

  • ElastiCache Auto Scaling 不會阻止您跨碎片手動修改複本。這些手動調整不會影響附加至調整規模政策的任何現有 CloudWatch 警示,但會影響可能觸發這些 CloudWatch 警示的指標。

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

    • 由於幾個熱碎片上的負載觸發了 CloudWatch 警示,因此在沒有需要時進行擴展

    • 由於跨影響警示的所有碎片之彙總 AVG 沒有超出限制,因此在需要時不進行擴展。

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

  • 確保 VPC 中有足夠的 ENI (彈性網路介面) 可用,進行水平擴展時會需要用到。如需詳細資訊,請參閱彈性網路介面

  • 如果 EC2 沒有足夠的容量可用,ElastiCache Auto Scaling 將不會橫向擴展,直到容量可用,或者如果您將叢集手動修改為具有足夠容量的執行個體類型。

  • ElastiCache Auto Scaling 不支援擴展叢集ReservedMemoryPercent低於 25% 的複本。如需詳細資訊,請參閱管理 Valkey 和 Redis OSS 的預留記憶體