View a markdown version of this page

Aurora Serverless v2 的要求與限制 - Amazon Aurora

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

Aurora Serverless v2 的要求與限制

在建立打算使用 Aurora Serverless v2 資料庫執行個體的叢集時,請注意下列要求和限制。

區域和版本可用性

功能可用性和支援會因每個 Aurora 資料庫引擎的特定版本以及 AWS 區域而有所不同。如需 Aurora 和 Aurora Serverless v2 版本和區域可用性的詳細資訊,請參閱 Aurora Serverless v2 支援的區域和 Aurora 資料庫引擎

下列範例顯示 AWS CLI 命令,以確認您可以搭配 Aurora Serverless v2 用於特定 的確切資料庫引擎值 AWS 區域。Aurora Serverless v2 的 --db-instance-class 參數一律為 db.serverless--engine 參數可為 aurora-mysqlaurora-postgresql。替換適當的--region--engine 值,以確認您可使用 --engine-version 值。如果命令未產生任何輸出,則 Aurora Serverless v2 和 資料庫引擎的組合無法使用 AWS 區域 。

aws rds describe-orderable-db-instance-options --engine aurora-mysql --db-instance-class db.serverless \ --region my_region --query 'OrderableDBInstanceOptions[].[EngineVersion]' --output text aws rds describe-orderable-db-instance-options --engine aurora-postgresql --db-instance-class db.serverless \ --region my_region --query 'OrderableDBInstanceOptions[].[EngineVersion]' --output text

使用 Aurora Serverless v2 的叢集必須指定容量範圍

Aurora 叢集必須具有 ServerlessV2ScalingConfiguration 屬性,然後才能新增使用 db.serverless 資料庫執行個體類別的資料庫執行個體。此屬性指定容量範圍。Aurora Serverless v2 容量範圍從最低 0 個 Aurora 容量單位 (ACU) 到最大 256 個 ACU,增量為 0.5 ACU。允許的最小值取決於 Aurora 版本。每個 ACU 皆提供相當於大約 2 GB (GiB) 的 RAM 以及相關聯的 CPU 和聯網。如需 Aurora Serverless v2 使用容量範圍設定的詳細資料,請參閱 Aurora Serverless v2 的運作方式

如需各種資料庫引擎版本和平台版本的允許容量範圍,請參閱 Aurora Serverless v2 容量。特定叢集的可用擴展範圍受引擎版本和硬體 (平台版本) 影響。

您可以在建立叢集和相關聯的資料庫執行個體 AWS 管理主控台 時,在 中指定最小和最大 ACU Aurora Serverless v2 值。您還可指定 AWS CLI中的 --serverless-v2-scaling-configuration 選項。或者您可搭配 Amazon RDS API 指定 ServerlessV2ScalingConfiguration 參數。建立叢集或修改現有叢集時,您可指定此屬性。有關設定容量範圍的程序,請參閱 設定叢集的 Aurora Serverless v2 容量範圍。有關如何選擇最小和最大容量值及這些設定會如何影響某些資料庫參數的詳細討論,請參閱 選擇 Aurora 叢集的 Aurora Serverless v2 容量範圍

不相容的擴展組態

當您以較低的最大容量修改 Aurora PostgreSQL 叢集時,每個執行個體都會縮減規模以符合新的組態。如果 Aurora 偵測到您的任何執行個體無法縮減規模,可能會取消並復原擴展組態更新。因此,執行個體會縮減至先前的組態。如果新的最大容量不足以處理目前的工作負載,或套用至叢集或執行個體的資料庫參數群組的自訂參數設定過高,可能會發生此問題。

復原開始時,您會透過 Amazon RDS 事件收到通知,其中包含無法套用所需擴展組態的執行個體相關資訊。轉返完成後,擴展組態的最大容量將回到其原始的更高值。由於轉返,您可能會發現所有叢集執行個體的Aurora Serverless資料庫容量也可能增加,進而產生更高的成本。

例如,您有一個具有單一執行個體的 Aurora PostgreSQL Aurora Serverless叢集,且擴展組態設定為 minCapacity=0.5maxCapacity=128secondsUntilAutopause=null。此外,資料庫參數track_activity_query_size設定為自訂值 40960。如果您接著將叢集的擴展組態修改為最大容量為 1 個 ACU,您可能會注意到在幾個小時後,修改尚未完成。參數的高值track_activity_query_size需要比新的最大容量更多的資源。因此,即使沒有工作負載,執行個體的 也ServerlessDatabaseCapacity無法縮減以符合 1 ACU 的新最大容量。 Aurora Serverless v2會取消擴展組態修改,並會重新套用先前的擴展組態 minCapacity=0.5maxCapacity=128secondsUntilAutopause=null。執行個體接著會向上擴展以符合先前的擴展組態,結束叢集的修改。已發佈 Amazon RDS 事件,通知您偵測到不相容的擴展組態更新、取消並復原至先前的組態。

問題和補救措施

新的擴展組態與工作負載不相容

新的Aurora Serverless v2擴展組態的最大容量太低,無法處理目前的工作負載。

建議:

  • 在重新套用較低的最大容量之前,請先減少工作負載。

  • 如果無法減少工作負載,請重新評估所需的最大容量。若要挑選適當的最大容量,請在取消和復原擴展組態更新之前,檢查 Aurora PostgreSQL 叢集的最大 ServerlessDatabaseCapacity CloudWatch 指標。然後將新擴展組態的最大容量設定為至少觀察到的 ServerlessDatabaseCapacity 值。如需選擇最大容量的詳細資訊,請參閱 選擇 Aurora 叢集的 Aurora Serverless v2 容量範圍

新的擴展組態與自訂資料庫參數不相容

叢集或執行個體的自訂資料庫參數群組需要超過新擴展組態最大容量的額外資源。

潛在的不相容 Aurora PostgreSQL 資料庫參數:

  • max_connections

  • track_activity_query_size

  • min_dynamic_shared_memory

建議:

  • 若要挑選適當的資料庫參數值,請檢查上述每個參數的預設參數值。如果您的設定值超過預設值,請在修改具有相同減少最大容量的擴展組態之前,先將參數還原為其預設值。

  • 如果無法選擇減少資料庫參數,請遵循上述所述的相同步驟來挑選適當的最大容量:新的擴展組態與工作負載不相容

Aurora Serverless v2 中不支援某些佈建功能

Aurora 佈建資料庫執行個體的下列功能目前不適用於 Amazon Aurora Serverless v2:

  • 資料庫活動串流 (DAS)。

  • Aurora PostgreSQL 的叢集快取管理。apg_ccm_enabled 組態參數不適用於 Aurora Serverless v2 資料庫執行個體。

有些 Aurora 功能搭配 Aurora Serverless v2 使用,但若容量範圍低於具有特定工作負載之這些功能的記憶體需求,則可能會造成問題。於該種情況下,您的資料庫可能無法像往常一樣執行,或者可能會遇到記憶體不足錯誤。有關設定適當容量範圍的建議,請參閱 選擇 Aurora 叢集的 Aurora Serverless v2 容量範圍。有關資料庫因容量範圍錯誤設定而造成記憶體不足錯誤時的疑難排解資訊,請參閱 避免記憶體不足錯誤

不支援 Aurora Auto Scaling。此擴展類型會新增新的讀取器,來處理額外的讀取密集型工作負載 (以 CPU 用量為基礎)。但是,以 CPU 用量為基礎的擴展對 Aurora Serverless v2 不具意義。或者,您可預先建立 Aurora Serverless v2 讀取器資料庫執行個體,並使其縮小至低容量。與動態新增新資料庫執行個體相比,這是一種擴展叢集讀取容量更快、破壞性更低的方法。