本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
方法 Aurora Serverless v2 運作方式
下列概觀說明如何 Aurora Serverless v2 有效。
Aurora Serverless v2 概觀
Amazon Aurora Serverless v2 適用於高要求、高度可變的工作負載。例如,您的資料庫使用量可能在短時間內很大,然後是長時間的輕度活動或完全沒有活動。某些範例是具有定期促銷活動的零售網站、遊戲或體育網站,以及在需要時產生報告的資料庫。其他則為開發和測試環境,及用量可能會迅速增加的新應用程式。對於這類類似案例和許多其他情況,並不一定可以使用佈建的模型事先正確設定容量。如果您過度佈建且具有未使用的容量,也可能會產生較高的成本。
相比之下,Aurora 佈建的叢集適用於穩定的工作負載。使用佈建叢集時,您可以選擇具有預先定義記憶體、CPU電源、I/O 頻寬等量的資料庫執行個體類別。若您的工作負載發生變化,您可以手動修改寫入器和讀取器的執行個體類別。當您可以在預期的耗用模式之前調整容量,佈建的模型就能順利運作,並且在您變更集中寫入器和讀取器的執行個體類別時,短暫中斷是可以接受的。
Aurora Serverless v2 從頭開始建構,以支援可立即擴展的無伺服器資料庫叢集。Aurora Serverless v2 旨在提供與佈建寫入器和讀取器相同的安全和隔離程度。這些方面在多租戶無伺服器雲端環境中至關重要。動態擴展機制的額外負荷很小,因此可以快速回應資料庫工作負載的變化。其功能強大,足以滿足大幅增加的處理需求。
使用 Aurora Serverless v2,您可以建立 Aurora 資料庫叢集,而不會鎖定每個寫入器和讀取器的特定資料庫容量。您指定最小和最大的容量範圍。Aurora 擴展每個 Aurora Serverless v2 叢集中的寫入器或讀取器在該容量範圍內。透過使用每個寫入器或讀取器都可以動態擴展的多可用區域叢集,您可以利用動態擴展和高可用性。
Aurora Serverless v2 會根據您的最小和最大容量規格自動擴展資料庫資源。擴展速度很快,因為大多數擴展事件作業皆將寫入器或讀取器保留在同一主機上。在極少數情況下,Aurora Serverless v2 寫入器或讀取器已從一個主機移至另一個主機,Aurora Serverless v2 會自動管理連線。您無需變更資料庫用戶端應用程式程式碼或資料庫連線字串。
使用 Aurora Serverless v2,如同佈建的叢集,儲存容量和運算容量是分開的。當我們參考 Aurora Serverless v2 容量和擴展,它總是在運算容量增加或減少。因此,即使 CPU和 記憶體容量縮減到低層級,叢集也可以包含許多 TB 的資料。
您無需佈建和管理資料庫伺服器,而是指定資料庫容量。如需 的詳細資訊 Aurora Serverless v2 容量,請參閱 Aurora Serverless v2 容量。每個 的實際容量 Aurora Serverless v2 寫入器或讀取器會隨著時間而變化,具體取決於您的工作負載。如需有關該機制的詳細資料,請參閱 Aurora Serverless v2 擴展。
重要
使用 Aurora Serverless v1,您的叢集具有單一的運算容量測量,可在最小和最大容量值之間擴展。使用 Aurora Serverless v2,除了寫入器之外,您的叢集還可以包含讀取器。每個 Aurora Serverless v2 寫入器和讀取器可以在最小和最大容量值之間擴展。因此,您 的總容量 Aurora Serverless v2 叢集取決於您為資料庫叢集定義的容量範圍,以及叢集中的寫入器和讀取器數量。在任何特定時間,您只需支付 Aurora Serverless v2 Aurora 資料庫叢集中主動使用的容量。
Aurora 資料庫叢集的組態
對於每個 Aurora 資料庫叢集,您可以選擇 Aurora Serverless v2 容量、佈建的容量,或兩者。
您可以設定包含兩者的叢集 Aurora Serverless v2 和佈建容量,稱為混合組態叢集 。例如,假設您需要的讀取/寫入容量超過 的可用容量 Aurora Serverless v2 寫入器。在這種情況下,您可以使用非常大的已佈建寫入器來設定叢集。在這種情況下,您仍然可以使用 Aurora Serverless v2 給讀者。或者假設叢集的寫入工作負載有變化,但讀取工作負載穩定。在此情況下,您可以使用 設定叢集 Aurora Serverless v2 寫入器和一或多個佈建的讀取器。
您也可以設定資料庫叢集,其中所有容量都由 管理 Aurora Serverless v2。 若要這麼做,您可以建立新的叢集並使用 Aurora Serverless v2 從頭開始。或者,您可以將現有叢集中的所有佈建容量取代為 Aurora Serverless v2。 例如,舊版引擎的某些升級路徑需要從佈建寫入器開始,並以 取代 Aurora Serverless v2 寫入器。使用 建立新資料庫叢集的程序 Aurora Serverless v2 或 將現有資料庫叢集切換至 Aurora Serverless v2,請參閱 建立 Aurora Serverless v2 資料庫叢集和 從佈建叢集切換至 Aurora Serverless v2。
如果您不使用 Aurora Serverless v2 資料庫叢集中的所有寫入器和讀取器都會佈建 。這是大多數使用者熟悉的最古老、最常見的資料庫叢集。事實上,在 Aurora Serverless,這種 Aurora 資料庫叢集沒有特殊名稱。已佈建容量是常數。費用相對容易預測。但是,您必須提前預測您需要多少容量。在某些情況下,您的預測可能不準確,或者您的容量需求可能會發生變化。在這些情況下,您的資料庫叢集可能會變得佈建不足 (比您想要的速度慢) 或過度佈建 (比您想要的成本要高)。
Aurora Serverless v2 容量
的測量單位 Aurora Serverless v2 是 Aurora 容量單位 (ACU)。Aurora Serverless v2 容量不會與您用於佈建叢集的資料庫執行個體類別綁定。
每個 ACU 是由大約 2 GB GiB) 的記憶體、對應的 CPU和網路組合而成。您可以使用此度量單位指定資料庫容量範圍。ServerlessDatabaseCapacity
和 ACUUtilization
指標可協助您確定資料庫實際使用的容量,及該容量在指定範圍內的位置。
任何時候,每個 Aurora Serverless v2 資料庫寫入器或讀取器具有容量 。容量會以代表 的浮點數表示ACUs。每當寫入器或讀取器擴展時,容量都會增加或減少。此值每秒測量一次。針對您要使用的每個資料庫叢集 Aurora Serverless v2,您可以定義容量範圍:每個 的最小和最大容量值 Aurora Serverless v2 寫入器或讀取器可以在其中進行擴展。每個 的容量範圍相同 Aurora Serverless v2 資料庫叢集中的寫入器或讀取器。每個 Aurora Serverless v2 寫入器或讀取器具有自己的容量,落在該範圍內的某個位置。
下表顯示 Aurora Serverless v2 Aurora MySQL 和 Aurora Postgre 支援的容量範圍SQL。
容量範圍 (ACUs) | Aurora MySQL 支援的版本 | Aurora PostgreSQL 支援的版本 |
---|---|---|
0.5–128 | 3.02.0 和更新版本 | 13.6 及更高版本、14.3 及更高版本、15.2 及更高版本、16.1 及更高版本 |
0.5–256 | 3.06.0 和更新版本 | 13.13 及更高版本、14.10 及更高版本、15.5 及更高版本、16.1 及更高版本 |
最小的 Aurora Serverless v2 您可以定義的容量為 0.5 ACUs。若其小於或等於最大容量值,您可以指定更大的數字。將最小容量設定為較小的數字可使負載較輕的資料庫叢集消耗最少的運算資源。同時,它們隨時準備好立即接受連線,並在忙碌時擴充規模。
我們建議將最小值設定為允許每個資料庫寫入器或讀取器將應用程式的工作集保存在緩衝集區中的值。這樣,緩衝集區的內容在閒置期間不會被丟棄。如需選擇最小容量值時的所有注意事項,請參閱 選擇最小 Aurora Serverless v2 叢集的容量設定。如需選擇最大容量值時的所有注意事項,請參閱 選擇上限 Aurora Serverless v2 叢集的容量設定。
根據您在多可用區部署中設定讀取器的方式,其容量可以與寫入器的容量綁定或獨立。如需有關如何執行此作業的詳細資訊,請參閱 Aurora Serverless v2 擴展。
監控 Aurora Serverless v2 涉及隨著時間的推移,測量資料庫叢集中寫入器和讀取器的容量值。若資料庫未縮減規模至最小容量,則可採取諸如調整最小容量和最佳化資料庫應用程式等作業。如果資料庫持續達到其最大容量,則可採取諸如增加最大值之類的動作。您還可以最佳化資料庫應用程式,並將查詢負載分佈到更多讀取器中。
的費用 Aurora Serverless v2 容量的測量單位為 ACU小時。如需如何 Aurora Serverless v2 費用已計算,請參閱 Aurora 定價頁面。
假設叢集中的寫入器和讀取器總數為 n
。 在這種情況下,當您未執行任何資料庫操作n x
時,叢集大約會耗用 。Aurora 本身可能會執行導致少量負載的監控或維護作業。當資料庫滿容量執行時,該叢集的消耗不超過 minimum ACUs
n x
。maximum ACUs
如需選擇適當最小值和ACU最大值的詳細資訊,請參閱 選擇 Aurora Serverless v2 Aurora 叢集的容量範圍。您指定的最小值和ACU最大值也會影響某些 Aurora 組態參數的運作方式 Aurora Serverless v2。 如需容量範圍和組態參數之間互動的詳細資訊,請參閱 使用 的參數群組 Aurora Serverless v2。
Aurora Serverless v2 擴展
針對每個 Aurora Serverless v2 寫入器或讀取器,Aurora 會持續追蹤資源的使用率CPU,例如 、記憶體和網路。這些測量統稱為負載。負載包括應用程式執行的資料庫作業。它還包括資料庫伺服器和 Aurora 管理任務的背景處理。當容量受到任何這些限制時,Aurora Serverless v2 會向上擴展。Aurora Serverless v2 也會在偵測到效能問題時擴大規模,因為這樣可以解決。您可以監控資源使用率及其如何影響 Aurora Serverless v2 使用 的重要 Amazon CloudWatch 指標 Aurora Serverless v2和 中的程序進行擴展監控 Aurora Serverless v2 績效洞察。
資料庫叢集中的寫入器和讀取器的負載可能會有所不同。寫入器會處理所有資料定義語言 (DDL) 陳述式,例如 CREATE TABLE
、 ALTER TABLE
和 DROP TABLE
。寫入器也會處理所有資料處理語言 (DML) 陳述式,例如 INSERT
和 UPDATE
。讀取器可以處理唯讀陳述式,例如 SELECT
查詢。
Scaling 是增加或減少的操作 Aurora Serverless v2 資料庫的容量。使用 Aurora Serverless v2,每個寫入器和讀取器都有自己的目前容量值,以 為單位ACUs。Aurora Serverless v2 當寫入器或讀取器目前的容量太低而無法處理負載時, 會將容量擴展到更高的容量。當其目前容量高於需要時,它會將寫入器或讀取器縮減到更低的容量。
與 Aurora Serverless v1,其會在每次資料庫叢集達到閾值時,透過將容量加倍來擴展,Aurora Serverless v2 可以逐步增加容量。當您的工作負載需求開始達到寫入器或讀取器的目前資料庫容量時,Aurora Serverless v2 會增加該寫入器或讀取器ACUs的 數目。Aurora Serverless v2 以所需的增量擴展容量,為消耗的資源提供最佳效能。擴展以小至 0ACUs.5 的增量進行。目前容量越大,擴展增量就越大,因此可以發生更快的擴展。
因為 Aurora Serverless v2 擴展非常頻繁、精細且不中斷,它不會 AWS Management Console 以這種方式造成離散事件 Aurora Serverless v1 可以。相反地,您可以測量 Amazon CloudWatch 指標,例如 ServerlessDatabaseCapacity
和 ,ACUUtilization
並追蹤其隨時間的最小值、最大值和平均值。如要進一步了解 Aurora 指標,請參閱 在 Amazon Aurora 叢集中監控指標。如需監控的秘訣 Aurora Serverless v2,請參閱的重要 Amazon CloudWatch 指標 Aurora Serverless v2。
您可以選擇與關聯的寫入器同時擴展讀取器,也可以獨立於寫入器進行擴展。您可以透過為該讀取器指定提升層來執行此操作。
-
提升層 0 和 1 中的讀取器與寫入器同時擴展。這種擴展行為使優先順序層 0 和 1 中的讀取器成為可用性的理想選擇。這是因為它們總是調整到適當的容量,以便在發生容錯移轉時從寫入器處接管工作負載。
-
提升層 2 至 15級中的讀取器可獨立於寫入器擴展。每個讀取器都會保持在您為叢集指定的最小值和ACU最大值內。當讀取器獨立於關聯的寫入器資料庫進行擴展時,它可能會處於閒置狀態並縮減規模,而寫入器繼續處理大量交易。如果在較低的提升層中沒有其他讀取器可用,則它仍可用作容錯移轉目標。但是,如果將其提升為寫入器,則可能需要擴充規模以處理寫入器的全部工作負載。
如需提升層的詳細資訊,請參閱選擇 的促銷層 Aurora Serverless v2 讀者。
擴展點的概念和來自 的相關逾時期間 Aurora Serverless v1 不適用於 Aurora Serverless v2. Aurora Serverless v2 當資料庫連線開啟時、SQL交易進行中、資料表鎖定時,以及使用臨時資料表時,可能會發生擴展。Aurora Serverless v2 不會等待安靜的點開始擴展。擴展不會中斷正在進行的任何資料庫作業。
如果您的工作負載需要的讀取容量超過單一寫入器和單一讀取器的可用容量,您可以新增多個 Aurora Serverless v2 叢集的讀取器。每個 Aurora Serverless v2 讀取器可以在您為資料庫叢集指定的最小和最大容量值範圍內進行擴展。您可以使用叢集的讀取器端點,將唯讀工作階段導向讀取器,並減少寫入器的負載。
是否 Aurora Serverless v2 會執行擴展,以及擴展啟動後發生的速度,也取決於叢集的最小和最大ACU設定。此外,這取決於讀取器是設定為與寫入器一起擴展還是獨立擴展。如需有關影響 Aurora Serverless v2 擴展,請參閱 的效能和擴展 Aurora Serverless v2。
注意
目前,Aurora Serverless v2 寫入器和讀取器不會完全擴展到零ACUs。閒置 Aurora Serverless v2 寫入器和讀取器可以縮減到您為叢集指定的ACU最小值。
該行為不同於 Aurora Serverless v1,這可能會在閒置一段時間後暫停,但當您開啟新連線時,需要一些時間才能繼續。當您的資料庫叢集具有 時 Aurora Serverless v2 容量已經不需要一段時間,您可以像佈建的資料庫叢集一樣停止和啟動叢集。如需停止和啟動叢集的詳細資料,請參閱 停用和啟動 Amazon Aurora 資料庫叢集。
Aurora Serverless v2 和高可用性
為 Aurora 資料庫叢集建立高可用性的方法,是使其成為多可用區域資料庫叢集。多可用區域 Aurora 資料庫叢集在多個可用區域 (AZ) 中始終具有可用的運算容量。該組態保持資料庫的正常執行,即使在出現嚴重停機的情況下也是如此。Aurora 會在出現影響寫入器甚至整個可用區域的問題時,執行自動容錯移轉。使用 Aurora Serverless v2,您可以選擇待命運算容量,以隨著寫入器的容量進行擴展和縮減。這樣,第二個可用區域中的運算容量就可以隨時接管目前工作負載。同時,所有 中的運算容量AZs可以在資料庫閒置時縮減。如需 Aurora 如何使用 AWS 區域 和可用區域的詳細資訊,請參閱 Aurora 資料庫執行個體的高可用性。
所以此 Aurora Serverless v2 除了寫入器之外,多可用區域功能還會使用讀取器。對讀取器的支援是新的 Aurora Serverless v2 相較於 Aurora Serverless v1。 您最多可以新增 15 個 Aurora Serverless v2 讀取器分散到 3 個 AZs Aurora 資料庫叢集。
對於即使影響整個叢集或整個 AWS 區域的問題,仍必須保持可用的業務關鍵應用程式,您可以設定 Aurora 全域資料庫。您可以使用...Aurora Serverless v2 次要叢集中的 容量,以便他們準備好在災難復原期間接管。當資料庫不忙碌時,它們還可以縮減規模。如需 Aurora 全球資料庫的詳細資訊,請參閱 使用 Amazon Aurora Global Database。
Aurora Serverless v2 的運作方式類似為容錯移轉和其他高可用性功能佈建。如需詳細資訊,請參閱Amazon Aurora 的高可用性。
假設您想要確保 的最大可用性 Aurora Serverless v2 叢集。除了寫入器之外,您還可建立讀取器。如果您將讀取器指派到提升層 0 或 1,則寫入器發生擴展時,讀取器也會一併發生。這樣,在發生容錯移轉時,具有相同容量的讀取器一律可以接管寫入器。
假設您希望在叢集繼續處理交易的同時為您的業務執行季度報告。如果您新增 Aurora Serverless v2 讀取器至叢集,並將其指派給 2 到 15 的提升層,您可以直接連線至該讀取器以執行報告。根據記憶體密集型和報告查詢密集CPU型,讀取器可以擴展以適應工作負載。然後,它可以在報告完成後再次縮減規模。
Aurora Serverless v2 和 儲存
每個 Aurora 資料庫叢集的儲存體包含六份分散至三個 的資料AZs。無論您的資料庫叢集是否包含除寫入器之外的任何讀取器,此內建資料複寫皆適用。如此,即使存在影響叢集運算容量的問題,您的資料也是安全的。
Aurora Serverless v2 儲存具有與 中所述相同的可靠性和耐用性特性Amazon Aurora 存儲。這是因為 Aurora 資料庫叢集的儲存,無論運算容量使用何種 Aurora Serverless v2 或已佈建。
Aurora 叢集的組態參數
您可以使用 調整叢集的所有相同叢集和資料庫組態參數 Aurora Serverless v2 容量與佈建的資料庫叢集相同。不過,某些容量相關參數的處理方式會有所不同 Aurora Serverless v2。 在混合組態叢集中,您為這些容量相關參數指定的參數值仍然適用於任何佈建的寫入器和讀取器。
幾乎所有參數的運作方式都相同 Aurora Serverless v2 寫入器和讀取器與佈建的寫入器和讀取器相同。例外狀況是 Aurora 在擴展期間中自動調整的一些參數,及 Aurora 將某些參數保持在取決於最大容量設定的固定值。
例如,為緩衝區快取保留的記憶體量隨著寫入器或讀取器的擴展而增加,並隨著縮小而減少。如此,可在資料庫不忙時釋放記憶體。反之,Aurora 會根據最大容量設定,自動將最大連接數設定為適當的值。如此一來,如果負載下降且 Aurora Serverless v2 縮減規模。如需如何 Aurora Serverless v2 處理特定參數,請參閱 使用 的參數群組 Aurora Serverless v2。