

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

# 使用 Amazon DocumentDB 無伺服器
<a name="docdb-serverless"></a>

Amazon DocumentDB Serverless 是一種隨需的自動擴展組態，可根據應用程式需求自動調整 Amazon DocumentDB 資料庫容量的程序。您只需支付叢集使用的資源費用。因此，DocumentDB Serverless 可協助您保持在預算內，並避免支付未使用的電腦資源。

這種類型的自動化對於具有高度可變和不可預測工作負載的環境特別有用，例如多租戶資料庫、分散式資料庫，以及開發和測試系統。

**Topics**
+ [無伺服器使用案例](#docdb-serverless-use-cases)
+ [Amazon DocumentDB 無伺服器的優點](#docdb-serverless-advantages)
+ [無伺服器的運作方式](docdb-serverless-how-it-works.md)
+ [無伺服器需求和限制](docdb-serverless-limitations.md)
+ [建立使用無伺服器 的叢集](docdb-serverless-create-cluster.md)
+ [遷移至無伺服器](docdb-serverless-migrating.md)
+ [管理無伺服器](docdb-serverless-managing.md)
+ [無伺服器執行個體限制](docdb-serverless-instance-limits.md)
+ [無伺服器擴展組態](docdb-serverless-scaling-config.md)
+ [監控無伺服器](docdb-serverless-monitoring.md)

## DocumentDB 無伺服器使用案例
<a name="docdb-serverless-use-cases"></a>

Amazon DocumentDB 佈建叢集和 DocumentDB Serverless 都支援許多類型的資料庫工作負載，從開發和測試環境，到需要大規模和可用性的最嚴苛、業務關鍵應用程式。但是 DocumentDB Serverless 為客戶工作負載新增了另一個維度，也就是支援工作負載無法預測的網站和應用程式的能力。

DocumentDB 無伺服器對於下列使用案例特別有用：
+ **可變工作負載**：您正在執行的工作負載活動突然且無法預測地增加。例如一個交通站點，在開始下雨時會看到活動突然增加。另一個是電子商務網站，當您提供銷售或特別促銷活動時，流量會增加。有了 DocumentDB 無伺服器，您的資料庫會自動擴展容量以滿足應用程式尖峰負載的需求，並在活動激增結束時縮減規模。使用 DocumentDB 無伺服器，您不再需要佈建尖峰或平均容量。您可以指定容量上限來處理最壞情況，除非需要，否則不會使用該容量。
  + DocumentDB Serverless 中的精細擴展可協助您將容量與資料庫的需求緊密匹配。對於佈建的叢集，向上擴展需要新增全新的執行個體。當只需要多一點容量時，DocumentDB 無伺服器可以新增一半的 DCU。它可以根據處理工作負載增加所需的額外容量，新增 0.5、1、1.5、2 或其他半DCUs。當工作負載減少且不再需要該容量時，它可以移除 0.5、1、1.5、2 或其他半DCUs。
+ **多租戶應用程式**：使用 DocumentDB 無伺服器，您不需要個別管理機群中每個應用程式的資料庫容量。DocumentDB Serverless 會為您管理個別資料庫容量。
  + 您可以為每個租用戶建立叢集。如此一來，您可以使用複製和快照還原等功能來增強每個租戶適用的高可用性和災難復原。
  + 根據一天中的時間、一年中的時間、促銷活動等，每個租用戶可能具有特定的繁忙和閒置時段。每個叢集都可能具有廣泛的容量範圍。如此一來，活動量低的叢集會產生最低的執行個體費用。任何叢集都可以快速擴充規模，以便處理高活動期間。
+ **新應用程式**：您正在部署新應用程式，且不確定所需的執行個體大小。透過使用 DocumentDB Serverless，您可以設定具有一或多個執行個體的叢集，並讓資料庫根據應用程式的容量需求自動擴展。
+ **混合使用應用程式** — 假設您有線上交易處理 (OLTP) 應用程式，但您定期遇到查詢流量激增的情況。透過為叢集中的 DocumentDB 無伺服器執行個體指定提升層，您可以設定叢集，讓讀取器執行個體可以獨立於寫入器執行個體進行擴展，以處理額外的負載。當用量尖峰下降時，讀取器執行個體會縮減規模以符合寫入器執行個體的容量。
+ **容量規劃** — 假設您通常會調整資料庫容量，或透過修改叢集中所有執行個體的執行個體類別，來驗證工作負載的最佳資料庫容量。使用 DocumentDB 無伺服器，您可以避免此管理開銷。您可以執行工作負載並檢查執行個體實際擴展的程度，以判斷適當的最小和最大容量。
  + 您可以將現有執行個體從佈建修改為 DocumentDB 無伺服器，或從 DocumentDB 無伺服器修改為佈建。在這種情況下，您不需要建立新的叢集或新的執行個體。
+ **開發和測試** — 除了執行最嚴苛的應用程式之外，您還可以使用 DocumentDB Serverless 進行開發和測試環境。使用 DocumentDB 無伺服器，您可以建立具有低最小容量的執行個體，而不是使用爆量 db.t\$1 執行個體類別。您可以設定足夠高的最大容量，讓這些執行個體仍可執行大量工作負載，而不會在記憶體上執行不足。當資料庫未使用時，所有執行個體都會縮減規模，以避免不必要的費用。

### 針對現有的佈建工作負載使用 Amazon DocumentDB 無伺服器
<a name="docdb-serverles-provisioned-workloads"></a>

假設您已在佈建叢集上執行 DocumentDB 應用程式。您可以將一或多個 DocumentDB 無伺服器執行個體新增至現有叢集做為讀取器執行個體，以檢查應用程式如何使用 DocumentDB 無伺服器。您可以檢查讀取器執行個體擴展和縮減的頻率。您可以使用 DocumentDB 容錯移轉機制，將 DocumentDB 無伺服器執行個體提升為寫入器，並檢查其如何處理讀取/寫入工作負載。如此一來，您可以用最短的停機時間進行切換，而無需變更用戶端應用程式使用的端點。如需將現有叢集轉換為 DocumentDB 無伺服器程序的詳細資訊，請參閱 [遷移至 Amazon DocumentDB 無伺服器](docdb-serverless-migrating.md)。

## Amazon DocumentDB 無伺服器的優點
<a name="docdb-serverless-advantages"></a>

DocumentDB 無伺服器適用於變數或「尖峰」工作負載。由於這種不可預測的工作負載，您可能難以規劃何時應變更資料庫容量。使用常見的機制，例如新增執行個體或變更執行個體類別，您也可能無法快速變更容量。DocumentDB Serverless 提供下列優點，以協助處理這類使用案例：
+ **比佈建的容量管理更簡單** — DocumentDB 無伺服器可減少工作負載變更時規劃執行個體大小和調整執行個體大小的負擔。它還減少了為叢集中的所有執行個體維持一致容量的工作量。
+ **在高活動期間更快速且更輕鬆地擴展** - DocumentDB 無伺服器可視需要擴展運算和記憶體容量，而不會中斷用戶端交易或整體工作負載。除了垂直擴展之外，將讀取器執行個體與 DocumentDB 無伺服器搭配使用還可協助您利用水平擴展。使用 DocumentDB 全域叢集的功能表示您可以將 DocumentDB 無伺服器讀取工作負載分散到多個 AWS 區域。此功能比已佈建叢集的擴展機制更方便。
+ **在活動量低期間符合成本效益** — DocumentDB 無伺服器可協助您避免過度佈建執行個體。當執行個體擴展時，DocumentDB 無伺服器會以精細遞增的方式新增資源。您只需為使用的資料庫資源付費。DocumentDB 無伺服器資源用量是以每秒為單位測量。如此一來，當執行個體縮減規模時，會立即註冊減少的資源用量。
+ **已佈建的功能同位** — 您可以將所有 DocumentDB 功能與 DocumentDB 無伺服器搭配使用。例如，使用 DocumentDB 無伺服器，您可以使用讀取器執行個體、 AWS Identity and Access Management (IAM) 資料庫身分驗證和績效詳情。

  特別是，使用 DocumentDB 無伺服器時，您可以從佈建的叢集中利用下列功能：
  + **讀取器執行個體** — DocumentDB 無伺服器可以利用讀取器執行個體水平擴展。當叢集包含一或多個讀取器執行個體時，如果寫入器執行個體發生問題，叢集可能會立即容錯移轉。
  + **多可用區域叢集** — 您可以將叢集的 DocumentDB 無伺服器執行個體分散到多個可用區域 (AZs)。設定多可用區域叢集有助於確保業務持續性，即使在遇到會影響整個可用區域的極少數情況下也是如此。
  + **全域叢集** — 您可以搭配 DocumentDB 全域叢集使用 DocumentDB 無伺服器，在其他 中建立叢集的其他唯讀複本， AWS 區域 以用於災難復原目的。

# Amazon DocumentDB 無伺服器的運作方式
<a name="docdb-serverless-how-it-works"></a>

**Topics**
+ [概觀](#docdb-serverlerss-overviewn)
+ [Amazon DocumentDB 叢集的組態](#docdb-serverlerss-configuration)
+ [Amazon DocumentDB 無伺服器擴展容量](#docdb-serverless-scaling-capacity)
+ [Amazon DocumentDB 無伺服器擴展](#docdb-serverless-scaling)
+ [閒置狀態 (0.5 DCUs)](#docdb-serverlerss-idle-state)

## 概觀
<a name="docdb-serverlerss-overviewn"></a>

Amazon DocumentDB Serverless 適用於要求最嚴苛、高度可變的工作負載。例如，您的資料庫使用量可能在短時間內很大，然後是長時間的輕度活動或完全沒有活動。某些範例是具有定期促銷活動的零售網站、遊戲或體育網站，以及在需要時產生報告的資料庫。其他則為開發和測試環境，及用量可能會迅速增加的新應用程式。對於這類類似案例和許多其他情況，並不一定可以使用佈建的模型事先正確設定容量。如果您過度佈建且具有未使用的容量，也可能會產生較高的成本。

相反地，DocumentDB 佈建叢集適用於穩定的工作負載。使用佈建叢集時，您可以選擇具有預先定義記憶體數量、CPU 電源、I/O 頻寬等的執行個體類別。若您的工作負載發生變化，您可以手動修改寫入器和讀取器的執行個體類別。當您可以在預期的耗用模式之前調整容量，佈建的模型就能順利運作，並且在您變更集中寫入器和讀取器的執行個體類別時，短暫中斷是可以接受的。

DocumentDB 無伺服器從頭開始架構，以支援可立即擴展的無伺服器叢集。DocumentDB 無伺服器旨在提供與佈建寫入器和讀取器相同的安全性和隔離程度。這些方面在多租戶無伺服器雲端環境中至關重要。動態擴展機制的額外負荷很小，因此可以快速回應資料庫工作負載的變化。其功能強大，足以滿足大幅增加的處理需求。

透過使用 DocumentDB 無伺服器，您可以建立 DocumentDB 叢集，而不會鎖定每個寫入器和讀取器的特定資料庫容量。您指定最小和最大的容量範圍。DocumentDB 會在該容量範圍內擴展叢集中的每個 DocumentDB 無伺服器寫入器或讀取器。透過使用每個寫入器或讀取器都可以動態擴展的多可用區域叢集，您可以利用動態擴展和高可用性。

DocumentDB 無伺服器會根據您的最小和最大容量規格自動擴展資料庫資源。擴展速度很快，因為大多數擴展事件作業皆將寫入器或讀取器保留在同一主機上。在極少數情況下，DocumentDB 無伺服器寫入器或讀取器會從一個主機移至另一個主機，DocumentDB 無伺服器會自動管理連線。您無需變更資料庫用戶端應用程式程式碼或資料庫連線字串。

透過 DocumentDB 無伺服器，與佈建叢集一樣，儲存容量和運算容量是分開的。當我們參考 DocumentDB 無伺服器容量和擴展時，一律會運算增加或減少的容量。因此，即使 CPU 和記憶體容量縮減規模到低等級，您的叢集也可以包含許多 TB 的資料。

您無需佈建和管理資料庫伺服器，而是指定資料庫容量。根據您的工作負載，每個 DocumentDB 無伺服器寫入器或讀取器的實際容量會隨著時間而不同。如需有關該機制的詳細資料，請參閱 [Amazon DocumentDB 無伺服器擴展](#docdb-serverless-scaling)。

## Amazon DocumentDB 叢集的組態
<a name="docdb-serverlerss-configuration"></a>

對於每個 Amazon DocumentDB 叢集，您可以選擇 DocumentDB 無伺服器容量、佈建容量或兩者的任意組合。

您可以設定包含 DocumentDB 無伺服器和佈建容量的叢集，稱為混合組態叢集。例如，假設您需要比 DocumentDB 無伺服器寫入器更多的讀取/寫入容量。在這種情況下，您可以使用非常大的已佈建寫入器來設定叢集。然後，您仍然可以將 DocumentDB 無伺服器用於讀取器。或者假設叢集的寫入工作負載有變化，但讀取工作負載穩定。在此情況下，您可以使用 DocumentDB 無伺服器寫入器和一或多個佈建讀取器來設定叢集。

您也可以設定叢集，其中所有容量都由 DocumentDB Serverless 管理。若要這樣做，您可以建立新的叢集，並從頭開始使用 DocumentDB 無伺服器。或者，您可以將現有叢集中的所有佈建容量取代為 DocumentDB 無伺服器。如需使用 DocumentDB 無伺服器建立新叢集或將現有叢集切換至 DocumentDB 無伺服器的程序，請參閱 [建立使用 Amazon DocumentDB Serverless 的叢集](docdb-serverless-create-cluster.md)和 [遷移至 Amazon DocumentDB 無伺服器](docdb-serverless-migrating.md)。

如果您在叢集中完全不使用 DocumentDB 無伺服器，則會佈建叢集中的所有寫入器和讀取器。這是大多數使用者熟悉的最常見叢集類型。已佈建容量是常數。費用相對容易預測。但是，您必須提前預測您需要多少容量。在某些情況下，您的預測可能不準確，或者您的容量需求可能會發生變化。在這些情況下，您的叢集可能會變得佈建不足 （比您想要的還慢） 或過度佈建 （比您想要的更昂貴）。

## Amazon DocumentDB 無伺服器擴展容量
<a name="docdb-serverless-scaling-capacity"></a>

Amazon DocumentDB Serverless 的度量單位是 DocumentDB 容量單位 (DCU)。DocumentDB 無伺服器擴展容量與您用於佈建叢集的執行個體類別無關。

每個 DCU 都是大約 2 GB (GiB) 記憶體、對應 CPU 和聯網的組合。您可以使用此度量單位指定資料庫容量範圍。`ServerlessDatabaseCapacity` 和 `DCUUtilization` CloudWatch 指標可協助您判斷資料庫實際使用的容量，以及該容量落在指定範圍內的位置。

每個 DocumentDB 無伺服器寫入器或讀取器隨時都有容量。容量是代表 DCUs浮點數。每當寫入器或讀取器擴展時，容量都會增加或減少。此值每秒測量一次。對於您要使用 DocumentDB 無伺服器的每個叢集，您可以定義容量範圍：每個 DocumentDB 無伺服器寫入器或讀取器可以擴展的最小和最大容量值。叢集中每個 DocumentDB 無伺服器寫入器或讀取器的容量範圍都相同。每個 DocumentDB 無伺服器寫入器或讀取器都有自己的容量，落在該範圍內。

DocumentDB 5.0.0 僅支援 DocumentDB 無伺服器 (8.0 不支援），容量範圍為 0.5 - 256 DCUs。

您可以定義的最小 DocumentDB 無伺服器容量為 0.5 DCUs。如果小於或等於支援的最大容量值，您可以指定較高的數字。將最小容量設定為少量，可讓輕度載入的叢集使用最少的運算資源。同時，它們隨時準備好立即接受連線，並在忙碌時擴充規模。

我們建議將最小值設定為允許每個寫入器或讀取器在緩衝集區中保留應用程式的工作集的值。這樣，緩衝集區的內容在閒置期間不會被丟棄。如需選擇擴展容量範圍時的所有考量，請參閱[選擇 DocumentDB 無伺服器叢集的擴展容量範圍](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。

根據您在多可用區域部署中設定讀取器的方式，讀取器的容量可以繫結至寫入器的容量，也可以獨立地調整。如需有關如何執行此作業的詳細資訊，請參閱 [檢視和修改無伺服器讀取器的提升層](docdb-serverless-managing.md#docdb-serverless-promo-tier)。

監控 DocumentDB 無伺服器涉及測量叢集中寫入器和讀取器隨時間的容量值。若資料庫未縮減規模至最小容量，則可採取諸如調整最小容量和最佳化資料庫應用程式等作業。如果資料庫持續達到其最大容量，則可採取諸如增加最大值之類的動作。您還可以最佳化資料庫應用程式，並將查詢負載分佈到更多讀取器中。

DocumentDB 無伺服器容量的費用是以 DCU 小時為單位衡量。如需如何計算 DocumentDB 無伺服器費用的資訊，請參閱 [Amazon DocumentDB 定價](https://aws.amazon.com//documentdb/pricing)。假設叢集中的寫入器和讀取器總數為 n。在這種情況下，當您未執行任何資料庫操作時，叢集會耗用大約 n x 的DCUs。Amazon DocumentDB 本身可能會執行導致少量負載的監控或維護操作。當資料庫以完整容量執行時，該叢集會耗用不超過 n x 個最大 DCUs。

如需選擇適當最小和最大 DCU 值的詳細資訊，請參閱 [選擇 DocumentDB 無伺服器叢集的擴展容量範圍](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。您指定的最小和最大 DCU 值也會影響某些 Amazon DocumentDB 執行個體限制。如需容量範圍與執行個體限制之間互動的詳細資訊，請參閱 [Amazon DocumentDB 無伺服器執行個體限制](docdb-serverless-instance-limits.md)。

## Amazon DocumentDB 無伺服器擴展
<a name="docdb-serverless-scaling"></a>

對於每個 DocumentDB 無伺服器寫入器或讀取器，Amazon DocumentDB 會持續追蹤 CPU、記憶體和網路等資源的使用率。這些測量統稱為負載。負載包括應用程式執行的資料庫作業。它還包括資料庫伺服器和 Amazon DocumentDB 管理任務的背景處理。當容量受到這些限制時，DocumentDB 無伺服器會擴展。DocumentDB 無伺服器也會在偵測到效能問題時向上擴展，因為這樣可以解決。您可以使用 中的程序，監控資源使用率及其如何影響 DocumentDB 無伺服器擴展[監控 Amazon DocumentDB 無伺服器](docdb-serverless-monitoring.md)。

負載可能因叢集中的寫入器和讀取器而有所不同。寫入器會處理寫入操作，並對叢集磁碟區執行所有資料修改。讀者可以處理唯讀請求。

擴展是增加或減少資料庫 DocumentDB 無伺服器容量的操作。有了 DocumentDB 無伺服器，每個寫入器和讀取器都有自己的目前容量值，以 DCUs測量。當寫入器或讀取器目前的容量太低而無法處理負載時，DocumentDB 無伺服器會將寫入器或讀取器擴展到更高的容量。當其目前容量高於需要時，它會將寫入器或讀取器縮減到更低的容量。

DocumentDB 無伺服器可以增量增加容量。當您的工作負載需求開始達到寫入器或讀取器的目前資料庫容量時，DocumentDB 無伺服器會增加該寫入器或讀取器DCUs 數量。DocumentDB 無伺服器會以所需的增量擴展容量，為消耗的資源提供最佳效能。擴展會以小至 0.5 DCUs的增量進行。目前容量越大，擴展增量就越大，因此可以發生更快的擴展。

由於 DocumentDB 無伺服器擴展非常頻繁、精細且不中斷，因此不會在 中造成離散事件 AWS 管理主控台。反之，您可以測量 Amazon CloudWatch 指標，例如 `serverlessDatabaseCapacity`和 `DCUUtilization`，並追蹤其隨時間的最小值、最大值和平均值。若要進一步了解如何監控 DocumentDB 無伺服器，請參閱 [監控 Amazon DocumentDB 無伺服器](docdb-serverless-monitoring.md)。

向上或向下擴展可能由以下原因造成：
+ 記憶體使用率
+ CPU 使用率
+ 網路使用率
+ 儲存使用率

您可以監控這些在 DocumentDB 無伺服器執行個體上向上/向下擴展的原因。如需詳細資訊，請參閱[監控 Amazon DocumentDB 無伺服器](docdb-serverless-monitoring.md)。

您可以選擇與關聯的寫入器同時擴展讀取器，也可以獨立於寫入器進行擴展。您可以透過為該讀取器指定提升層來執行此操作。
+ DocumentDB 無伺服器讀取器在提升層 0 和 1 中，與寫入器同時擴展。這種擴展行為使優先順序層 0 和 1 中的讀取器成為可用性的理想選擇。這是因為它們總是調整到適當的容量，以便在發生容錯移轉時從寫入器處接管工作負載。
+ 提升層 2 至 15級中的讀取器可獨立於寫入器擴展。每個讀取器都會保持在您為叢集指定的最小和最大 DCU 值內。當讀取器獨立於關聯的寫入器資料庫進行擴展時，它可能會處於閒置狀態並縮減規模，而寫入器繼續處理大量交易。如果在較低的提升層中沒有其他讀取器可用，則它仍可用作容錯移轉目標。但是，如果將其提升為寫入器，則可能需要擴充規模以處理寫入器的全部工作負載。

如需檢視和變更無伺服器執行個體提升方案的詳細資訊，請參閱 [檢視和修改無伺服器讀取器的提升層](docdb-serverless-managing.md#docdb-serverless-promo-tier)。

當資料庫連線開啟、交易正在進行等時，可能會發生 DocumentDB 無伺服器擴展。DocumentDB 無伺服器不會等待安靜點開始擴展。擴展不會中斷正在進行的任何資料庫作業。

如果您的工作負載需要的讀取容量超過單一寫入器和單一讀取器的可用容量，您可以將多個 DocumentDB 無伺服器讀取器新增至叢集。每個 DocumentDB 無伺服器讀取器可以在您為叢集指定的最小和最大容量值範圍內進行擴展。您可以使用叢集的讀取器端點，將唯讀工作階段導向讀取器，並減少寫入器的負載。

DocumentDB Serverless 是否執行擴展，以及擴展開始後的速度有多快，也取決於叢集的最小和最大 DCU 設定。此外，這取決於讀取器是設定為與寫入器一起擴展還是獨立擴展。如需擴展組態的詳細資訊，請參閱 [Amazon DocumentDB 無伺服器擴展組態](docdb-serverless-scaling-config.md)。

## 閒置狀態 (0.5 DCUs)
<a name="docdb-serverlerss-idle-state"></a>

當 Amazon DocumentDB 無伺服器寫入器或讀取器閒置時，如果叢集的 MinCapacity 設定為 0.5，則 DocumentDB 無伺服器執行個體支援縮減至閒置狀態 0.5 DCUs。

在閒置狀態下，DocumentDB 無伺服器執行個體沒有足夠的 CPU 運算容量來支援大多數生產工作負載，但已準備好快速擴展以支援新的工作負載。在非閒置狀態下，DocumentDB 無伺服器執行個體通常至少需要 1.0 - 2.5 DCUs。因此，當 DocumentDB 無伺服器執行個體從閒置狀態擴展到非閒置狀態時，它們會直接擴展到 1.0 - 2.5 DCUs（如果較低，則為 MaxCapacity 的值）。

為了在閒置時支援縮減至 0.5 個 DCUs，如果 MinCapacity 設定為小於或等於 1.0 個 DCUs執行個體限制會受到限制。如需 MinCapacity 組態如何影響限制的詳細資訊，請參閱 [Amazon DocumentDB 無伺服器執行個體限制](docdb-serverless-instance-limits.md)。

# DocumentDB 無伺服器的需求和限制
<a name="docdb-serverless-limitations"></a>

## 功能需求
<a name="w2aac41c15b3"></a>

### 區域可用性
<a name="w2aac41c15b3b3"></a>

Amazon DocumentDB 無伺服器執行個體類型可在下列區域使用：

下列 AWS CLI 命令可用來驗證特定區域中提供的確切 DocumentDB 無伺服器執行個體選項：

```
aws docdb describe-orderable-db-instance-options \
        --region my_region \
        --db-instance-class db.serverless \
        --engine docdb
```

### 引擎版本可用性
<a name="w2aac41c15b3b5"></a>

僅 Amazon DocumentDB 5.0.0 引擎版本支援 DocumentDB 無伺服器。 Amazon DocumentDB 它不適用於引擎版本 3.6、4.0 或 8.0。

**注意**  
僅較新的 5.0.0 修補程式版本支援 DocumentDB 無伺服器。請確定您的叢集已更新為最新的引擎修補程式版本。如需維護 Amazon DocumentDB 叢集的詳細資訊，請參閱 [維護 Amazon DocumentDB](db-instance-maintain.md)

### 叢集組態
<a name="w2aac41c15b3b7"></a>

在將任何 Amazon DocumentDB 無伺服器執行個體新增至 Amazon DocumentDB 叢集之前，叢集也必須設定 `ServerlessV2ScalingConfiguration` 參數。這會定義叢集中 DocumentDB 無伺服器執行個體的容量範圍。如需擴展組態的詳細資訊，請參閱 [Amazon DocumentDB 無伺服器擴展組態](docdb-serverless-scaling-config.md)。

### 特定 Amazon DocumentDB 功能的最小擴展容量範圍設定
<a name="w2aac41c15b3b9"></a>

有些 Amazon DocumentDB 功能可與 DocumentDB 無伺服器搭配使用，但如果您的容量範圍低於特定工作負載中這些功能的記憶體需求，可能會導致問題。於該種情況下，您的資料庫可能無法像往常一樣執行，或者可能會遇到記憶體不足錯誤。

下列功能需要設定更高的 `MinCapacity`和/或 `MaxCapacity`值，才能獲得最佳操作：
+ Performance Insights
+ 全域叢集 （僅適用於主要叢集 AWS 區域)
+ 在具有大型資料磁碟區的叢集上建立無伺服器執行個體

  這包括建立無伺服器執行個體做為叢集還原的一部分。

如需設定適當容量範圍的建議 （如果您使用此功能），請參閱 [選擇 DocumentDB 無伺服器叢集的擴展容量範圍](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。有關資料庫因容量範圍錯誤設定而造成記憶體不足錯誤時的疑難排解資訊，請參閱 [避免記憶體不足錯誤](docdb-serverless-scaling-config.md#docdb-serverless-scaling-mem-errors)。

# 建立使用 Amazon DocumentDB Serverless 的叢集
<a name="docdb-serverless-create-cluster"></a>



## 建立 Amazon DocumentDB 無伺服器叢集
<a name="w2aac41c17b5"></a>

使用 Amazon DocumentDB 無伺服器時，您的叢集可與佈建的叢集互換。您可以擁有叢集，其中某些執行個體使用無伺服器，並佈建一些執行個體。

確認您想要的區域和引擎版本支援 DocumentDB 無伺服器。請參閱 [DocumentDB 無伺服器的需求和限制](docdb-serverless-limitations.md)。

若要在其中新增無伺服器執行個體的 Amazon DocumentDB 叢集，請遵循與 相同的程序[建立 Amazon DocumentDB 叢集](db-cluster-create.md)。唯一的差別是也必須提供 `ServerlessV2ScalingConfiguration`引數。

`ServerlessV2ScalingConfiguration` 引數指定 DocumentDB 無伺服器執行個體的擴展容量範圍。它包含套用至叢集中所有 DocumentDB 無伺服器執行個體的最小和最大 DocumentDB 容量單位 (DCU) 值：
+ `MinCapacity` 值指定最小擴展容量。
+ `MaxCapacity` 值指定最大擴展容量。

如需擴展的詳細資訊，請參閱[Amazon DocumentDB 無伺服器擴展組態](docdb-serverless-scaling-config.md)。

------
#### [ Using the AWS 管理主控台 ]

下列 AWS 管理主控台 組態範例示範如何建立 DocumentDB 無伺服器叢集。

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   **叢集**資料表隨即出現。

1. 選擇**建立**。

   **建立 Amazon DocumentDB 叢集**頁面隨即出現。

1. 在建立 Amazon DocumentDB 叢集頁面上的**叢集類型**區段中，選擇**執行個體型叢集** （這是預設選項）。

1. 在**叢集組態**區段中：

   1. 針對**叢集識別符**，輸入唯一名稱，例如 **myserverlesscluster**。請注意，無論如何輸入叢集名稱，主控台都會將所有叢集名稱變更為小寫。

   1. 針對**引擎版本**，選擇 **5.0.0 **（這是預設選項）。

1. 在**叢集儲存組態**區段中，選擇 **Amazon DocumentDB Standard** （這是預設選項）。
**注意**  
此類別中的另一個選項是 **Amazon DocumentDB I/O 最佳化**。若要進一步了解任一選項，請參閱 [Amazon DocumentDB 叢集儲存組態](db-cluster-storage-configs.md)

1. 在**執行個體組態**區段中：

   1. 選擇**無伺服器****資料庫執行個體類別**。

   1. 針對**一般複本執行個體的數量**，選擇 **3** （這是預設選項）。

   1. 在**容量範圍**區段中，保留**最小值 DCUs**和**最大值 DCUs**的預設值。如需設定這些參數的資訊，請參閱 [Amazon DocumentDB 無伺服器執行個體限制](docdb-serverless-instance-limits.md)。  
![\[無伺服器資料庫叢集的組態表單，其中包含執行個體類別、複本執行個體和容量範圍的欄位。\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/instance-config-serverless.png)

1. 在**連線**區段中，保留**不連線至 EC2 運算資源**的預設設定。

1. 在**身分驗證**區段中，輸入主要使用者的使用者名稱，然後選擇**自我管理**。輸入密碼，然後進行確認。

   如果您改為選擇 **中的受管 AWS Secrets Manager**，請參閱 [使用 Amazon DocumentDB 和 進行密碼管理 AWS Secrets Manager](docdb-secrets-manager.md) 以取得詳細資訊。

1. 將所有其他選項保留為預設值，然後選擇**建立叢集**。

------
#### [ Using the AWS CLI ]

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊或組態參數。

若要使用 建立與 DocumentDB 無伺服器執行個體相容的叢集 AWS CLI，請參閱 [使用 建立叢集 AWS CLI](db-cluster-create.md#db-cluster-create-cli)。

在您的`create-db-cluster`命令中包含下列其他參數：

```
--serverless-v2-scaling-configuration 
     MinCapacity=minimum_capacity,MaxCapacity=maximum_capacity
```

範例：

```
aws docdb create-db-cluster \
      --db-cluster-identifier sample-cluster \
      --engine docdb \
      --engine-version 5.0.0 \
      --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16 \
      --master-username user-name \
      --master-user-password password
```

------

## 新增 Amazon DocumentDB 無伺服器執行個體
<a name="docdb-serverless-adding-instance"></a>

若要新增 DocumentDB 無伺服器執行個體，請遵循 中的相同程序[將 Amazon DocumentDB 執行個體新增至叢集](db-instance-add.md)，務必將 db.serverless 指定為執行個體類別。

### 使用 新增無伺服器執行個體 AWS 管理主控台。
<a name="w2aac41c17b7b5"></a>

若要使用主控台新增 DocumentDB 無伺服器執行個體，請參閱[將 Amazon DocumentDB 執行個體新增至叢集](db-instance-add.md)並選擇**使用 AWS 管理主控台**標籤。

### 使用 新增無伺服器執行個體 AWS CLI
<a name="w2aac41c17b7b7"></a>

若要使用 新增 DocumentDB 無伺服器執行個體 AWS CLI，請參閱[將 Amazon DocumentDB 執行個體新增至叢集](db-instance-add.md)並選擇**使用 AWS CLI**標籤。

使用下列執行個體類別 CLI 引數：

```
--db-instance-class db.serverless
```

範例：

```
aws docdb create-db-instance \
      --db-cluster-identifier sample-cluster \
      --db-instance-identifier sample-instance \
      --db-instance-class db.serverless \
      --engine docdb
```

# 遷移至 Amazon DocumentDB 無伺服器
<a name="docdb-serverless-migrating"></a>

**Topics**
+ [將現有的 DocumentDB 叢集遷移至無伺服器](#w2aac41c19b5)
+ [從 MongoDB 遷移至 DocumentDB 無伺服器](#w2aac41c19b7)

## 將現有的 DocumentDB 叢集遷移至無伺服器
<a name="w2aac41c19b5"></a>

### 升級叢集的引擎版本
<a name="w2aac41c19b5b3"></a>

如果您的佈建叢集執行的是不支援 DocumentDB Serverless 的較低引擎版本，您必須先將叢集升級至支援的引擎版本。如需詳細資訊，請參閱[Amazon DocumentDB 就地主要版本升級](docdb-mvu.md)。

### 將佈建叢集遷移至 DocumentDB 無伺服器
<a name="docdb-serverless-migrate-cluster"></a>

若要切換佈建叢集以使用 DocumentDB 無伺服器，請遵循下列步驟：

1. 檢查佈建叢集的引擎版本是否需要升級，才能與 DocumentDB Serverless 搭配使用。請參閱 [DocumentDB 無伺服器的需求和限制](docdb-serverless-limitations.md)。
**注意**  
如果佈建叢集執行的引擎版本不適用於 DocumentDB Serverless，請升級叢集的引擎版本。請參閱 [Amazon DocumentDB 就地主要版本升級](docdb-mvu.md)。

1. 設定叢集的擴展組態。如需選擇擴展組態的詳細資訊，請參閱 [選擇 DocumentDB 無伺服器叢集的擴展容量範圍](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)。若要修改叢集的擴展組態，請參閱 [檢視和修改叢集的擴展容量範圍組態](docdb-serverless-managing.md#docdb-serverless-range-config)。

1. 設定任何其他叢集屬性，以考量來自 的 DocumentDB 無伺服器需求和限制[DocumentDB 無伺服器的需求和限制](docdb-serverless-limitations.md)。

1. 將一或多個 DocumentDB 無伺服器執行個體新增至叢集。請遵循 [新增 Amazon DocumentDB 無伺服器執行個體](docdb-serverless-create-cluster.md#docdb-serverless-adding-instance) 中的程序。
**注意**  
在某些情況下，您可能已在叢集中擁有一或多個佈建的讀取器執行個體。若是如此，您可以選擇將其中一個讀取器轉換為 DocumentDB 無伺服器執行個體，而不是建立新的執行個體。若要執行此作業，請依照 [變更執行個體的類別](db-instance-classes.md#db-instance-class-changing) 中的程序進行。

1. （選用） 執行容錯移轉操作，讓 DocumentDB 無伺服器執行個體成為叢集寫入器。請參閱 [Amazon DocumentDB 容錯移轉](failover.md)。

1. （選用） 將任何剩餘的佈建 Amazon DocumentDB 執行個體轉換為 DocumentDB 無伺服器執行個體 （請參閱[變更執行個體的類別](db-instance-classes.md#db-instance-class-changing))，或從叢集中移除執行個體 （請參閱）[刪除 Amazon DocumentDB 執行個體](db-instance-delete.md)。

------
#### [ Using the AWS 管理主控台 ]

下列 AWS 管理主控台 組態範例顯示使用執行 Amazon DocumentDB 5.0.0 的 Amazon DocumentDB 佈建叢集的遷移程序，這不需要引擎版本升級，即可開始使用 DocumentDB 無伺服器。叢集名為 `sample`，開頭為三個名為 `sample`、 `sample2`和 的佈建執行個體`sample3`。在此範例中，這三個執行個體將被三個無伺服器執行個體取代。

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   **叢集**資料表隨即出現。

1. 在**叢集**表格中，選取您要新增無伺服器執行個體之叢集的核取方塊。

1. 選擇 **Actions (動作)**，然後選擇 **Add instances (新增執行個體)**。

1. 在**新增執行個體**對話方塊中，針對您要建立的每個新**無伺服器**執行個體，在**資料庫執行個體類別**區段中選取無伺服器。

1. 對於**無伺服器容量設定**，請根據對話方塊中的容量描述來設定擴展組態。

1. （選用） 若要新增另一個執行個體，請選擇**新增執行個體**。繼續新增執行個體，直到您達到所需的新執行個體數量為止。

   在此範例中，會建立三個新的無伺服器執行個體。

1. 選擇**建立**。

   建立執行個體需要幾分鐘才能完成。您可以使用 主控台或 AWS CLI 檢視執行個體的狀態。如需詳細資訊，請參閱[監控 Amazon DocumentDB 叢集的狀態](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-cluster_status.html)。

1. 返回**叢集**資料表，選取所有三個原始佈建執行個體的核取方塊。

1. 選擇**動作**，然後選擇**刪除**。

在刪除期間，會自動執行容錯移轉，將剩餘的其中一個執行個體提升為寫入器。幾分鐘後，刪除程序即完成。現有叢集現在包含三個 DocumentDB 無伺服器執行個體 （如**大小**欄所定義）。

------
#### [ Using the AWS CLI ]

下列 AWS CLI 組態範例顯示使用執行 Amazon DocumentDB 5.0.0 的 Amazon DocumentDB 佈建叢集的遷移程序，這不需要引擎版本升級，即可開始使用 DocumentDB 無伺服器。叢集名為 `sample`，開頭為三個名為 `sample`、 `sample2`和 的佈建執行個體`sample3`。在此範例中，這三個執行個體將被三個無伺服器執行個體取代。叢集名為 `sample-cluster`，開頭為兩個名為 `sample-provisioned-instance-1`和 的佈建執行個體`sample-provisioned-instance-2`，一個寫入器執行個體和一個讀取器執行個體。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊或組態參數。

使用 `aws docdb describe-db-clusters`操作來判斷叢集的狀態。下列程式碼會尋找叢集的狀態，`sample-cluster`並將結果輸出至資料表：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

新增叢集的擴展組態：

```
aws docdb modify-db-cluster \
    --db-cluster-identifier sample-cluster \
    --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16
```

新增無伺服器執行個體。在此範例中，`sample-serverless-instance-2`會新增名為 `sample-serverless-instance-1`和 的新無伺服器執行個體：

```
aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-1 \
    --db-instance-class db.serverless \
    --engine docdb

aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-2 \
    --db-instance-class db.serverless \
    --engine docdb
```

輸入以下內容以等待無伺服器執行個體可用，然後再繼續：

```
aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-1

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-2
```

執行容錯移轉，讓新`sample-serverless-instance-1`執行個體成為叢集寫入器：

```
aws docdb failover-db-cluster \
    --db-cluster-identifier sample-cluster \
    --target-db-instance-identifier sample-serverless-instance-1
```

容錯移轉需要幾秒鐘才能完成，之後 sample-serverless-instance-1 會成為叢集寫入器。使用以下輸入進行驗證：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-2   |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-1   |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

最後，刪除原始佈建的執行個體：

```
aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-1

aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-2
```

------

## 從 MongoDB 遷移至 DocumentDB 無伺服器
<a name="w2aac41c19b7"></a>

您可以將 MongoDB 資料庫遷移至 DocumentDB 無伺服器，就像佈建的 Amazon DocumentDB 一樣。如需詳細資訊，請參閱[遷移至 Amazon DocumentDB](docdb-migration.md)。

# 管理 Amazon DocumentDB 無伺服器
<a name="docdb-serverless-managing"></a>

## 檢視和修改叢集的擴展容量範圍組態
<a name="docdb-serverless-range-config"></a>

`ServerlessV2ScalingConfiguration` 引數指定 DocumentDB 無伺服器執行個體的擴展容量範圍。它由套用至叢集中所有 DocumentDB 無伺服器執行個體的最小和最大 DocumentDB 容量單位 (DCU) 值組成。
+ **`MinCapacity`** — 叢集中任何 DocumentDB 無伺服器執行個體的最低擴展容量。
+ **`MaxCapacity`** — 叢集中任何 DocumentDB 無伺服器執行個體的最大擴展容量。

**注意**  
下列擴展組態修改需要重新啟動執行個體，以反映新的 `MinCapacity`和 `MaxCapacity`值：  
`MaxCapacity` 值的任何變更
從較高的`MinCapacity`值將值變更為 1.0 或更低
從較低的`MinCapacity`值將值變更為大於 1.0

如需擴展組態以及如何選取適當擴展容量限制的詳細資訊，請參閱 [Amazon DocumentDB 無伺服器擴展組態](docdb-serverless-scaling-config.md)。

------
#### [ Using the AWS 管理主控台 ]

下列 AWS 管理主控台 組態範例示範如何檢視和編輯 DocumentDB 無伺服器叢集的擴展組態設定。

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   **叢集**資料表隨即出現。

1. 在**叢集**表格中，選取您要修改擴展容量之叢集的核取方塊。

1. 選擇 **Actions (動作)**，然後選擇 **Modify (修改)**。

   **修改叢集**對話方塊隨即出現。

1. 找到**無伺服器容量設定**區段，並根據對話方塊中的容量描述設定擴展組態 (**容量範圍**)。

   如需擴展和容量範圍的詳細資訊，請參閱[Amazon DocumentDB 無伺服器擴展組態](docdb-serverless-scaling-config.md)。

1. 選擇 **Continue** (繼續)。

1. 在 **Scheduling of modifications** (修改排程) 中，選擇 **Apply immediately** (立即套用)。

1. 選擇**修改叢集**。

1. 修改完成後，每個無伺服器執行個體都應重新啟動。若要將寫入器無法使用情況降至最低，請執行下列操作序列：

   1. 重新啟動每個無伺服器讀取器執行個體。

      1. 選取讀取器執行個體，選擇**動作**，然後選擇**重新啟動**。

      1. 等待執行個體狀態回到**可用**。

   1. 執行容錯移轉至重新啟動的無伺服器執行個體。

      1. 選取叢集，選擇**動作**，然後選擇**容錯移轉**。

      1. 等待容錯移轉操作完成。

   1. 重新啟動剩餘的無伺服器執行個體。

      1. 選取剩餘的執行個體，選擇**動作**，然後選擇**重新啟動**。

      1. 等待執行個體狀態回到**可用**。

------
#### [ Using the AWS CLI ]

下列 AWS CLI 組態範例顯示目前的擴展組態。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊或組態參數。

您可以使用 `describe-db-clusters` AWS CLI 命令來檢視叢集目前的擴展組態：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[0].ServerlessV2ScalingConfiguration'
```

以下是此命令的輸出：

```
{
    "MinCapacity": 0.5,
    "MaxCapacity": 16.0
}
```

您可以使用 `modify-db-cluster`命令修改叢集的擴展組態：

```
aws docdb modify-db-cluster \
    --db-cluster-identifier sample-cluster \
    --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=32
```

完成後，每個無伺服器執行個體都應重新啟動。為了盡量減少寫入器無法使用，我們可以執行下列操作序列：

```
aws docdb reboot-db-instance \
    --db-instance-identifier sample-serverless-instance-reader

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-reader

aws docdb failover-db-cluster \
   --db-cluster-identifier sample-cluster \
   --target-db-instance-identifier sample-serverless-instance-reader

aws docdb reboot-db-instance \
    --db-instance-identifier sample-serverless-instance-writer

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-writer

aws docdb failover-db-cluster \
   --db-cluster-identifier sample-cluster \
   --target-db-instance-identifier sample-serverless-instance-writer
```

------

## 檢視和修改無伺服器讀取器的提升層
<a name="docdb-serverless-promo-tier"></a>

對於包含多個 DocumentDB 無伺服器執行個體或佈建和無伺服器執行個體混合的叢集，請注意每個無伺服器執行個體的提升層設定。此設定控制無伺服器執行個體比佈建執行個體的行為更多。

對於佈建的執行個體，選擇層 0–15 只會決定 Amazon DocumentDB 在容錯移轉操作期間選擇要提升寫入器的讀取器執行個體順序。不過，對於無伺服器執行個體，層編號也會判斷執行個體是否擴展以符合寫入器執行個體的容量，還是根據自己的工作負載獨立擴展。第 0 層或第 1 層中的無伺服器讀取器執行個體，其容量至少與寫入器執行個體一樣高。如此一來，它們就可以在容錯移轉時從寫入器執行個體接管。如果寫入器執行個體是佈建執行個體，Amazon DocumentDB 會估計同等的 DocumentDB 無伺服器容量。它使用該估計值作為無伺服器讀取器執行個體的最低容量。

第 2-15 層中的 DocumentDB 無伺服器讀取器執行個體在其最小容量上沒有相同的限制。當它們處於閒置狀態時，可以縮減至叢集容量範圍中指定的 DocumentDB 容量單位 (DCU) 最小值。

------
#### [ Using the AWS 管理主控台 ]

下列 AWS 管理主控台 組態範例示範如何檢視和修改 DocumentDB 無伺服器執行個體讀取器的促銷層設定。

1. 登入 [AWS 管理主控台](https://console.aws.amazon.com/docdb/home?region=us-east-1)並開啟 Amazon DocumentDB 主控台。

   每個執行個體的提升方案會顯示在 的**提升方案**欄中 AWS 管理主控台。

1. 在導覽窗格中，選擇**叢集**。
**提示**  
如果畫面左側沒有出現導覽窗格，請選擇頁面左上角的功能表圖示 (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/zh_tw/documentdb/latest/developerguide/images/docdb-menu-icon.png))。

   **叢集**資料表隨即出現。

1. 在**叢集**表格中，選取您要修改提升層之執行個體的核取方塊。

1. 選擇 **Actions (動作)**，然後選擇 **Modify (修改)**。

   **修改執行個體**對話方塊隨即出現。

1. 找到**容錯移轉**區段，並將**提升層**設定為所需的層級。

1. 選擇 **Continue** (繼續)。

1. 在 **Scheduling of modifications** (修改排程) 中，選擇 **Apply immediately** (立即套用)。

1. 選擇 **Modify instance (修改執行個體)**。

------
#### [ Using the AWS CLI ]

下列 AWS CLI 組態範例顯示目前的擴展組態。

在下列範例中，將每個*使用者輸入預留位置*取代為您自己的資訊或組態參數。

您可以使用 `describe-db-clusters` AWS CLI 命令來檢視叢集中所有執行個體的提升層：

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[0].DBClusterMembers' \
    --output table
```

以下是此命令的輸出：

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-serverless-instance-2   |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-1   |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

您可以使用 `modify-db-instance`命令修改特定執行個體的提升層：

```
aws docdb modify-db-instance \
    --db-instance-identifier sample-serverless-instance-2 \
    --promotion-tier 3
```

------

# Amazon DocumentDB 無伺服器執行個體限制
<a name="docdb-serverless-instance-limits"></a>

對於 DocumentDB 無伺服器執行個體，每個執行個體的下列限制取決於執行個體目前的擴展容量：
+ 執行個體記憶體 (GiB)
+ 連線 （全部）
+ 游標限制
+ 開啟交易
+ 連線 （作用中）

下表說明無伺服器執行個體的每個執行個體限制如何相對於執行個體目前的擴展容量進行擴展。

請注意，限制值會根據叢集的`MinCapacity`擴展組態是否已設定為大於兩 (2) 個而不同。如果 `MinCapacity` 設定為小於或等於 2，則游標限制、開啟交易和連線 （作用中） 的限制值會限制為較低的最大值。（上限的技術原因是支援縮減至「閒置」狀態。如需詳細資訊，請參閱[閒置狀態 (0.5 DCUs)](docdb-serverless-how-it-works.md#docdb-serverlerss-idle-state)。

**db.serverless 執行個體會在 MinCapacity ≤1 時限制**


| 目前容量 (DCU) | 執行個體記憶體 (GiB) | 連線 （全部） | 游標限制 | 開啟交易 | 連線 （作用中） | 
| --- | --- | --- | --- | --- | --- | 
|  0.5  |  1  |  250  |  6  |  12  |  39  | 
|  1  |  2  |  500  |  12  |  24  |  79  | 
|  2  |  4  |  1000  |  24  |  48  |  173  | 
|  4  |  8  |  2000  |  48  |  96  |  416  | 
|  8  |  16  |  4000  |  96  |  192  |  1071  | 
|  16  |  32  |  8000  |  132  |  264  |  1550  | 
|  32  |  64  |  16000  |  132  |  264  |  1550  | 
|  64  |  128  |  32000  |  132  |  264  |  1550  | 
|  128  |  256  |  60000  |  132  |  264  |  1550  | 
|  256  |  512  |  60000  |  132  |  264  |  1550  | 

**db.serverless 執行個體會在 MinCapacity >1 時限制**


| 目前容量 (DCU) | 執行個體記憶體 (GiB) | 連線 （全部） | 游標限制 | 開啟交易 | 連線 （作用中） | 
| --- | --- | --- | --- | --- | --- | 
|  1.5  |  3  |  7250  |  18  |  36  |  124  | 
|  2  |  4  |  1000  |  24  |  48  |  173  | 
|  4  |  8  |  2000  |  48  |  96  |  416  | 
|  8  |  16  |  4000  |  96  |  192  |  1071  | 
|  16  |  32  |  8000  |  192  |  384  |  2709  | 
|  32  |  64  |  16000  |  384  |  768  |  4500  | 
|  64  |  128  |  32000  |  768  |  1536  |  4500  | 
|  128  |  256  |  60000  |  1536  |  3072  |  4500  | 
|  256  |  512  |  60000  |  3072  |  6144  |  4500  | 

您可以使用下列 CloudWatch 指標，監控和警示每個執行個體限制的 。如需 Amazon DocumentDB CloudWatch 指標的詳細資訊，請參閱[使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。


| 資源 | CloudWatch 限制指標 | CloudWatch 用量指標 （最多 1 分鐘） | CloudWatch 用量指標 | 
| --- | --- | --- | --- | 
| 執行個體記憶體 | - | - | FreeableMemory | 
| 連線 （全部） | DatabaseConnectionsLimit | DatabaseConnectionsMax | DatabaseConnections | 
| 游標 | DatabaseCursorsLimit | DatabaseCursorsMax | DatabaseCursors | 
| 交易 | TransactionsOpenLimit | TransactionsOpenMax | TransactionsOpen | 

# Amazon DocumentDB 無伺服器擴展組態
<a name="docdb-serverless-scaling-config"></a>



**Topics**
+ [選擇 DocumentDB 無伺服器叢集的擴展容量範圍](#docdb-serverless-scaling-capacity-choosing)
+ [選擇 DocumentDB 無伺服器叢集`MinCapacity`的設定](#docdb-serverless-scaling-mincapacity-choosing)
+ [選擇 DocumentDB 無伺服器叢集`MaxCapacity`的設定](#docdb-serverless-scaling-maxcapacity-choosing)
+ [避免記憶體不足錯誤](#docdb-serverless-scaling-mem-errors)
+ [為什麼我的無伺服器執行個體沒有縮減規模？](#docdb-serverless-scaling-down)

## 選擇 DocumentDB 無伺服器叢集的擴展容量範圍
<a name="docdb-serverless-scaling-capacity-choosing"></a>

在將任何 DocumentDB 無伺服器執行個體新增至 Amazon DocumentDB 叢集之前，叢集也必須設定 `ServerlessV2ScalingConfiguration` 參數。

`ServerlessV2ScalingConfiguration` 參數包含兩個值，定義叢集中任何無伺服器執行個體的無伺服器擴展容量範圍：
+ **`MinCapacity`** — 叢集中任何 DocumentDB 無伺服器執行個體的最低擴展容量。
+ **`MaxCapacity`** — 叢集中任何 DocumentDB 無伺服器執行個體的最大擴展容量。

## 選擇 DocumentDB 無伺服器叢集`MinCapacity`的設定
<a name="docdb-serverless-scaling-mincapacity-choosing"></a>

總是為 選擇 0.5 很吸引人`MinCapacity`。該值可讓執行個體在完全閒置時縮減至最小容量，同時保持作用中狀態。但是，依據您使用該叢集的方式及您設定的其他設定，不同的最小容量可能是最有效的。在選擇最小容量設定時，請考慮下列因素：
+ DocumentDB 無伺服器執行個體的擴展率取決於其目前的容量。目前的容量越高，則擴充規模就越快。如果您需要執行個體快速擴展到非常高的容量，請考慮將最小容量設定為擴展速率符合您需求的值。
+ 如果您通常會修改執行個體的執行個體類別，預期工作負載特別高或低，您可以使用該體驗來粗略估計同等的 DocumentDB 無伺服器容量範圍。若要判斷佈建 Amazon DocumentDB 執行個體類型的記憶體大小，請參閱 [執行個體限制](limits.md#limits.instance)。

  例如，假設您在叢集的工作負載較低時，使用`db.r6g.xlarge`執行個體類別。該執行個體類別有 32 GiB 的記憶體。因此，您可以指定 16 `MinCapacity`的 來設定可縮減到大約相同容量的無伺服器執行個體。這是因為每個 DCU 對應大約 2 GiB 的記憶體。您可以指定較低的值，讓執行個體進一步縮減，以防您的`db.r6g.xlarge`執行個體有時未充分利用。
+ 如果您的應用程式在執行個體的緩衝區快取中有特定數量的資料時最有效率地運作，請考慮指定記憶體大小足以容納經常存取資料的最小 DCU 設定。否則，當無伺服器執行個體縮減至較低的記憶體大小時，會從緩衝區快取移出部分資料。然後，當執行個體向上擴展時，資訊會隨著時間重新讀回緩衝區快取。如果將資料帶回緩衝區快取的 I/O 量很大，選擇較高的最小 DCU 值可能會更有效。如需詳細資訊，請參閱[執行個體大小調整](best_practices.md#best_practices-instance_sizing)。
+ 如果您的 DocumentDB 無伺服器執行個體大部分時間以特定容量執行，請考慮指定低於該基準的最小容量設定，但不要太低。當目前的容量未大幅低於所需的容量時，無伺服器執行個體可以有效地估計擴展的程度和速度。
+ 如果您的佈建工作負載對於 T3 或 T4g 等小型執行個體類別的記憶體需求太高，請選擇提供與 R5 或 R6g 執行個體相當之記憶體的最低 DCU 設定。
+ 特別是，我們建議將下列最低`MinCapacity`限度與指定的功能搭配使用 （這些建議可能會有所變更）：
  + 績效詳情 — 2 DCUs
  + 全域叢集 — 8 DCUs （僅適用於主要叢集 AWS 區域)
+ 在 Amazon DocumentDB 中，複寫發生在儲存層，因此讀取器容量不會直接影響複寫。不過，對於獨立擴展的 DocumentDB 無伺服器讀取器執行個體，請確定最小容量足以在寫入密集期間處理工作負載，以避免查詢延遲。如果提升層 2–15 中的讀取器執行個體遇到效能問題，請考慮增加叢集的最小容量。如需變更讀取器執行個體是否與寫入器一起擴展或獨立擴展的詳細資訊，請參閱 [檢視和修改無伺服器讀取器的提升層](docdb-serverless-managing.md#docdb-serverless-promo-tier)。

  如果您有具有 DocumentDB 無伺服器讀取器執行個體的叢集，當讀取器的提升層不是 0 或 1 時，讀取器不會與寫入器執行個體一起擴展。在這種情況下，設定較低的最小容量可能會導致過多的複寫延遲。這是因為讀取器可能沒有足夠的容量，無法在資料庫繁忙時套用寫入器的變更。我們建議您將最小容量設定為代表與寫入器執行個體相當記憶體和 CPU 數量的值。
+ DocumentDB 無伺服器執行個體從其最小容量擴展到其最大容量所需的時間，取決於其最小和最大 DCU 值之間的差異。當執行個體目前的容量較大時，DocumentDB 無伺服器會以較大的增量擴展，而不是從較小的容量啟動執行個體。因此，如果您指定相對較大的最大容量，且執行個體花費大部分時間接近該容量，請考慮增加最小 DCU 設定。如此一來，閒置的執行個體可以更快地擴展到最大容量。
+ 某些執行個體限制取決於無伺服器執行個體的目前容量，例如連線限制、游標限制和開放交易限制。如果執行個體目前的容量很小，則限制也會相對較小。如果這些限制是將您的無伺服器執行個體縮減至其`MinCapacity`值時的問題，請考慮增加`MinCapacity`至較高的值。如需詳細資訊，請參閱[Amazon DocumentDB 無伺服器執行個體限制](docdb-serverless-instance-limits.md)。
+ 此外，如果 `MinCapacity` 設定為小於或等於 1.0 DCUs例如作用中連線限制、游標限制和開放交易限制，則某些執行個體限制會限制為較低的最大值。如果這些上限限制不足以滿足您的工作負載，請使用至少 1.5 個 DCUs`MinCapacity`的值。如需詳細資訊，請參閱[Amazon DocumentDB 無伺服器執行個體限制](docdb-serverless-instance-limits.md)。

如需如何修改叢集擴展組態的說明，請參閱 [管理 Amazon DocumentDB 無伺服器](docdb-serverless-managing.md)。

## 選擇 DocumentDB 無伺服器叢集`MaxCapacity`的設定
<a name="docdb-serverless-scaling-maxcapacity-choosing"></a>

總是為 DocumentDB 無伺服器容量上限設定選擇一些高值很吸引人。較大的最大容量可讓執行個體在執行密集型工作負載時擴展最多。較低的值可避免未預期的收費可能性。依據您使用該叢集的方式及您設定的其他設定，最有效的值可能高於或低於您最初想象的值。在選擇最大容量設定時，請考慮下列因素：
+ 最大容量必須至少與最小容量相同。您可將最小和最大容量設定為相同。但是，在這種情況下，容量永遠不會擴展或縮小。因此，除了在測試情況下，對最小和最大容量使用相同的值並不合適。
+ 最大容量必須至少為 1.0 DCUs且最多必須為 256 DCUs。
+ 我們建議您監控無伺服器執行個體的擴展和資源用量。如果您的無伺服器執行個體經常擴展到最大容量並達到資源限制 （例如，當`DCUUtilization`指標為 100.0 時），建議您選取較高的`MaxCapacity`值。如需詳細資訊，請參閱[監控 Amazon DocumentDB 無伺服器](docdb-serverless-monitoring.md)。
+ 如果您通常會修改佈建執行個體的執行個體類別，預期工作負載特別高或低，您可以使用該體驗來估計同等的 DocumentDB 無伺服器容量範圍。若要判斷佈建 Amazon DocumentDB 執行個體的記憶體大小，請參閱 [執行個體限制](limits.md#limits.instance)。

  例如，假設您在叢集具有高工作負載時使用`db.r6g.4xlarge`執行個體類別。該執行個體類別有 128 GiB 的記憶體。因此，您可以指定最大 DCU 設定 64，以設定可擴展到大約相同容量的無伺服器執行個體。這是因為每個 DCU 對應大約 2 GiB 的記憶體。您可以指定更高的值，讓執行個體進一步擴展，以防您的`db.r6g.4xlarge`執行個體有時沒有足夠的容量來有效處理工作負載。
+ 如果您的資料庫用量有預算上限，請選擇保持在該上限內的值，即使您的所有無伺服器執行個體始終以最大容量執行。請記住，當您的叢集中有 n 個無伺服器執行個體時，叢集隨時可以使用的理論無伺服器容量上限是叢集最大 DCU 設定的 n 倍。(實際消耗量可能會減少，例如，若某些讀取器獨立於寫入器擴展。)
+ 如果您使用無伺服器讀取器執行個體從寫入器執行個體卸載一些唯讀工作負載，您可能可以選擇較低的最大容量設定。這樣做是為了反映每個讀取器執行個體不需要像叢集只包含單一執行個體一樣高地擴展。
+ 假設您想要防止因資料庫參數設定錯誤或應用程式中的效率低查詢而造成的過度使用。於這種情況下，您可透過選擇低於您可設定的絕對最高容量設定來避免意外過度使用。
+ 若因實際使用者活動所引起的峯值很少，但確實發生，您可在選擇最大容量設定時考慮這些情況。若優先順序是讓應用程式以完整的效能和可擴展性持續執行，您可指定一個高於正常用量下所觀察到的最大容量設定。若應用程式可在活動極端高峯期間以縮減的輸送量執行，則可選擇稍低的最大容量設定。確保您選擇的設定仍具有足夠的記憶體和 CPU 資源，以保持應用程式的執行。
+ 如果您在叢集中開啟會增加每個執行個體記憶體用量的設定，請在決定最大 DCU 值時考慮該記憶體。這類設定包括績效詳情和全域叢集的設定。請確定最大 DCU 值允許無伺服器執行個體在使用這些功能時擴展到足以處理工作負載的程度。如需結合低最大 DCU 設定和施加記憶體負荷的 Amazon DocumentDB 功能所造成的問題疑難排解資訊，請參閱 [避免記憶體不足錯誤](#docdb-serverless-scaling-mem-errors)（下方）。
+ 特別是，我們建議將下列最低`MaxCapacity`限度與指定的功能搭配使用 （這些建議可能會有所變更）：
  + 在具有大型資料磁碟區的叢集上建立無伺服器執行個體 – 2 個 DCUs（這包括建立無伺服器執行個體作為叢集還原的一部分）。
+ 某些執行個體限制取決於執行個體目前的容量，例如連線限制、游標限制和開放交易限制。選擇工作負載`MaxCapacity`的值時，請務必謹記這些執行個體限制，以避免其中一個限制造成瓶頸。如需詳細資訊，請參閱[Amazon DocumentDB 無伺服器執行個體限制](docdb-serverless-instance-limits.md)。

如需如何修改叢集擴展組態的說明，請參閱 [管理 Amazon DocumentDB 無伺服器](docdb-serverless-managing.md)。

## 避免記憶體不足錯誤
<a name="docdb-serverless-scaling-mem-errors"></a>

如果其中一個 DocumentDB 無伺服器執行個體持續達到容量上限，Amazon DocumentDB 會將執行個體設定為**不相容參數**的狀態，以指出此條件。雖然執行個體具有**不相容參數**狀態，但某些操作會遭到封鎖。例如，您無法升級引擎版本。如需 Amazon DocumentDB 執行個體狀態的詳細資訊，請參閱[監控 Amazon DocumentDB 執行個體的狀態](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-instance_status.html)。

一般而言，您的執行個體會在因為out-of-memory錯誤而頻繁重新啟動時進入此狀態。當這種類型的重新啟動發生時，Amazon DocumentDB 會記錄 事件。若要檢視資源事件，請參閱 [檢視 Amazon DocumentDB 事件](managing-events.md#viewing-events)。由於開啟 Performance Insights 等設定而造成額外負荷，因此可能會發生異常高的記憶體使用量。它也可以來自執行個體上的繁重工作負載，或來自管理與大量結構描述物件相關聯的中繼資料。

如果記憶體壓力變得較低，使得執行個體不常達到最大容量，Amazon DocumentDB 會自動將執行個體狀態變更為可用。

如要從此狀況復原，您可進行下列部分或全部動作：
+ 透過變更叢集的最小 DocumentDB 容量單位 (DCU) 值，提高無伺服器執行個體的容量下限。如此可避免閒置資料庫縮減規模至記憶體容量少於叢集中啟用功能所需的容量問題。變更叢集的 DCU 設定後，重新啟動無伺服器執行個體。這樣做會評估 Amazon DocumentDB 是否可以將狀態重設回可用狀態。
+ 透過變更叢集的最大 DCU 值，提高無伺服器執行個體的容量上限。如此可避免繁忙的資料庫無法擴充規模至具足夠記憶體的容量，以滿足叢集和資料庫工作負載中所開啟功能的問題。變更叢集的 DCU 設定後，重新啟動無伺服器執行個體。這樣做會評估 Amazon DocumentDB 是否可以將狀態重設回可用狀態。
+ 請關閉需要記憶體額外負荷的組態設定。例如，假設您已開啟績效詳情等功能，但不使用該功能。如果是這樣，您可以將其關閉。或者，您可以調整更高叢集的最小和最大容量值，以考慮這些類型的功能所使用的記憶體。如需有關選擇最小和最大容量設定的指導方針，請參閱 [選擇 DocumentDB 無伺服器叢集的擴展容量範圍](#docdb-serverless-scaling-capacity-choosing)。
+ 減少執行個體上的工作負載。例如，您可以將讀取器執行個體新增至叢集，將唯讀查詢的負載分散到更多執行個體。

## 為什麼我的無伺服器執行個體沒有縮減規模？
<a name="docdb-serverless-scaling-down"></a>

在某些情況下，DocumentDB 無伺服器不會縮減至最小容量，即使資料庫沒有負載也一樣。這種情況可能是由於下列原因而發生：
+ Performance Insights 可以增加資源用量，並防止資料庫縮減至最小容量。重要功能如下所示：
+ 如果讀取器執行個體未縮減至最低規模，且容量維持與寫入器執行個體相同或更高，請檢查讀取器執行個體的優先順序層。第 0 層或第 1 層中的 DocumentDB 無伺服器讀取器執行個體，其容量至少與寫入器執行個體一樣高。將讀取器的優先順序方案變更為 2 或更高，以便其可以獨立縱向擴展和縮減，與寫入器無關。如需詳細資訊，請參閱[Amazon DocumentDB 無伺服器擴展](docdb-serverless-how-it-works.md#docdb-serverless-scaling)。
+ 繁重的資料庫工作負載會增加資源使用量。
+ 大型資料庫磁碟區會增加資源使用量。Amazon DocumentDB 使用記憶體和 CPU 資源進行叢集管理。Amazon DocumentDB 需要更多 CPU 和記憶體來管理資料庫磁碟區的叢集。如果叢集的容量下限低於叢集管理所需的最小容量，則您的叢集將不會縮減至容量下限。
+ 背景維護活動可以定期增加資源用量。

如果資料庫仍未縮減規模至設定的最小容量，請停止並重新啟動資料庫，以回收任何可能已隨時間建立的記憶體片段。停止和啟動資料庫會導致停機，因此我們建議您謹慎執行此動作。

# 監控 Amazon DocumentDB 無伺服器
<a name="docdb-serverless-monitoring"></a>

若要進一步了解 Amazon DocumentDB 中的監控，請參閱 [監控 Amazon DocumentDB](monitoring_docdb.md)。

**Topics**
+ [記憶體不足：不相容參數狀態](#w2aac41c27b7)
+ [DocumentDB Serverless 的 Amazon CloudWatch 指標](#w2aac41c27b9)
+ [使用績效詳情監控 DocumentDB 無伺服器效能](#w2aac41c27c11)

## 記憶體不足：不相容參數狀態
<a name="w2aac41c27b7"></a>

如果其中一個無伺服器執行個體持續達到容量上限，Amazon DocumentDB 會將執行個體設定為不相容參數的狀態，以指出此條件。如需詳細資訊，請參閱[避免記憶體不足錯誤](docdb-serverless-scaling-config.md#docdb-serverless-scaling-mem-errors)。

## DocumentDB Serverless 的 Amazon CloudWatch 指標
<a name="w2aac41c27b9"></a>

若要進一步了解如何搭配 Amazon DocumentDB 使用 CloudWatch，請參閱 [使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。

您可以在 CloudWatch 中檢視無伺服器執行個體，以使用 `ServerlessDatabaseCapacity` 指標監控每個執行個體耗用的容量。您也可以監控所有標準 DocumentDB CloudWatch 指標，例如 `DatabaseConnections`和 查詢。如需您可以為 Amazon DocumentDB 監控的 CloudWatch 指標完整清單，請參閱 [使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。下列 CloudWatch 執行個體層級指標對於監控您了解 DocumentDB 無伺服器執行個體如何向上和向下擴展非常重要。所有這些指標每秒計算一次。如此一來，您就可以監控無伺服器執行個體的目前狀態。您可以設定警示，以便在任何無伺服器執行個體接近容量相關指標的閾值時通知您。您可決定最小和最大容量設定是否合適，或者是否需要進行調整。您可決定將精力集中於最佳化您資料庫效率之處。
+ **`ServerlessDatabaseCapacity`** — 做為執行個體層級指標，它會報告目前執行個體容量所代表的 DCUs 數量。做為叢集層級指標，代表叢集中所有 DocumentDB 無伺服器執行個體`ServerlessDatabaseCapacity`的值平均值。
+ **`DCUUtilization.`** — 此指標是 DocumentDB Serverless 的新指標。此值以百分比表示。其計算方式為`ServerlessDatabaseCapacity`指標值除以叢集的最大 DCU 值。請考慮下列指導方針來解譯此指標並採取行動：
  + 如果此指標接近 的值`100.0`，則執行個體已盡可能向上擴展。考慮增加叢集的最大 DCU 設定。如此一來，寫入器和讀取器執行個體都可以擴展到更高的容量。
  + 假設唯讀工作負載會導致讀取器執行個體接近 `DCUUtilization`的 `100.0`，而寫入器執行個體並未接近其最大容量。在此情況下，請考慮將其他讀取器執行個體新增至叢集。如此一來，您可以將工作負載的唯讀部分分散到更多執行個體，以減少每個讀取器執行個體的負載。
  + 假設您正在執行生產應用程式，其中效能和可擴展性是主要考慮因素。在這種情況下，您可以將叢集的最大 DCU 值設定為高數字。您的目標是讓`DCUUtilization`指標一律低於 100.0。使用高最大 DCU 值，您可以確信有足夠的空間，以防資料庫活動發生意外尖峰。您僅需為實際使用的資料庫容量付費。
+ **`CPUUtilization`** — 此指標的解譯方式 DocumentDB 與佈建執行個體中的解譯方式不同。對於 DocumentDB 無伺服器，此值是以目前使用的 CPU 數量計算的百分比，除以叢集最大 DCU 值下可用的 CPU 容量。Amazon DocumentDB 會自動監控此值，並在執行個體持續使用高比例的 CPU 容量時擴展無伺服器執行個體。

  如果此指標接近 的值`100.0`，則執行個體已達到其 CPU 容量上限。考慮增加叢集的最大 DCU 設定。如果此指標接近讀取器執行個體`100.0`上的 值，請考慮將其他讀取器執行個體新增至叢集。如此一來，您可以將工作負載的唯讀部分分散到更多執行個體，以減少每個讀取器執行個體的負載。
+ **`FreeableMemory`** — 此值代表將 DocumentDB 無伺服器執行個體擴展至其最大容量時可用的未使用記憶體數量。對於目前容量低於最大容量的每個 DCU，此值會增加約 2 GiB。因此，此指標在盡可能地縱向擴展執行個體之前不會接近零。

  如果此指標接近零值，則執行個體已盡可能向上擴展，並接近其可用記憶體的限制。考慮增加叢集的最大 DCU 設定。如果此指標在讀取器執行個體上接近零的值，請考慮將其他讀取器執行個體新增至叢集。如此一來，工作負載的唯讀部分就可以分散到更多執行個體，減少每個讀取器執行個體的記憶體用量。
+ **`TempStorageIops`** — 在連接至執行個體的本機儲存上完成的 IOPS 數量。其包括讀取和寫入的 IOPS。此指標表示計數，且每秒測量一次。這是 DocumentDB Serverless 的新指標。如需詳細資訊，請參閱[使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。
+ **`TempStorageThroughput`** — 與執行個體相關聯的本機儲存體往返傳輸的資料量。此指標表示位元組，且每秒測量一次。這是 DocumentDB Serverless 的新指標。如需詳細資訊，請參閱[使用 CloudWatch 監控 Amazon DocumentDB](cloud_watch.md)。

一般而言，大多數的 DocumentDB 無伺服器執行個體擴展都是由記憶體用量和 CPU 活動造成。`TempStorageIops` 和 `TempStorageThroughput`指標可協助您診斷極少數情況下，執行個體與本機儲存裝置之間傳輸的網路活動會導致非預期的容量增加。如要監控其他網路活動，您可使用以下現有指標：
+ `NetworkReceiveThroughput`
+ `NetworkThroughput`
+ `NetworkTransmitThroughput`
+ `StorageNetworkReceiveThroughput`
+ `StorageNetworkThroughput`
+ `StorageNetworkTransmitThroughput`

### DocumentDB 無伺服器 CloudWatch 指標如何套用至您的 AWS 帳單
<a name="w2aac41c27b9c13"></a>

 AWS 帳單上的 DocumentDB 無伺服器費用是根據您可以監控的相同`ServerlessDatabaseCapacity`指標來計算。如果您僅在一小時中使用 DocumentDB 無伺服器容量，則計費機制可能與此指標的計算 CloudWatch 平均值不同。若系統問題造成 CloudWatch 指標在短時間內無法使用，其亦可能會有所不同。因此，與從`ServerlessDatabaseCapacity`平均值自行計算數字時相比，您可能會在帳單上看到略有不同的 DCU 小時值。

### DocumentDB 無伺服器指標的 Amazon CloudWatch CLI 命令範例
<a name="w2aac41c27b9c15"></a>

下列 AWS CLI 範例示範如何監控與 DocumentDB Serverless 相關的最重要 CloudWatch 指標。在每個案例中，將 `--dimensions` 參數的`Value=`字串取代為您自己的 DocumentDB 無伺服器執行個體的識別符。

下列 Linux 範例顯示執行個體的最小、最大和平均容量值，在一小時內每 10 分鐘測量一次。Linux 日期命令會指定相對於目前日期和時間的開始和結束時間。`--query` 參數中的 `sort_by` 函數依據 `Timestamp` 欄位依時間順序對結果進行排序。

```
aws cloudwatch get-metric-statistics \
    --metric-name "ServerlessDatabaseCapacity" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下列 Linux 範例示範監控叢集中執行個體的容量。它測量執行個體的最小、最大和平均容量使用率。在三個小時內每小時進行一次測量。這些範例使用代表 DCUs 上限百分比的`DCUUtilization`指標，而不是`ServerlessDatabaseCapacity`代表固定數量DCUs。如此一來，您就不需要知道容量範圍內最小和最大 DCU 值的實際數字。您可看到從 0 到 100 的百分比。

```
aws cloudwatch get-metric-statistics \
    --metric-name "DCUUtilization" \
    --start-time "$(date -d '3 hours ago')" \
    --end-time "$(date -d 'now')" \
    --period 3600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下列 Linux 範例執行與先前測量類似的測量。於此狀況下，測量適用於 `CPUUtilization` 指標。在 1 小時內每 10 分鐘進行一次測量。數字代表使用之可用 CPU 的百分比，以執行個體最大容量設定的可用 CPU 資源為基礎。

```
aws cloudwatch get-metric-statistics \
    --metric-name "CPUUtilization" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

下列 Linux 範例執行與先前測量類似的測量。於此狀況下，測量適用於 `FreeableMemory` 指標。在 1 小時內每 10 分鐘進行一次測量。

```
aws cloudwatch get-metric-statistics \
    --metric-name "FreeableMemory" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

## 使用績效詳情監控 DocumentDB 無伺服器效能
<a name="w2aac41c27c11"></a>

您可以使用 Performance Insights 來監控 DocumentDB 無伺服器執行個體的效能。如需有關績效詳情的程序，請參閱 [使用績效詳情進行監控](performance-insights.md)。

下列新的績效詳情計數器適用於 DocumentDB 無伺服器執行個體：
+ **`os.general.serverlessDBCapacity`** — DCUs 中執行個體的目前容量。此值對應至執行個體的 `ServerlessDatabaseCapacity` CloudWatch 指標。
+ **`os.general.dcuUtilization`** — 目前容量超出最大設定容量的百分比。此值對應至執行個體的 `DCUUtilization` CloudWatch 指標。
+ **`os.general.maxConfiguredDcu`** — 您為此 DocumentDB 無伺服器執行個體設定的容量上限。它以 DCUs為單位。
+ **`os.general.minConfiguredDcu`** — 您為此 DocumentDB 無伺服器執行個體設定的最小容量。它以 DCUs為單位。

如需績效詳情計數器的完整清單，請參閱 [計數器指標的績效詳情](performance-insights-counter-metrics.md)。

在績效詳情中顯示 DocumentDB 無伺服器執行個體的 vCPU 值時，這些值代表根據執行個體 DCU 值的預估值。在預設的一分鐘間隔中，任何小數 vCPU 值皆會無條件進位至最接近的非負整數。若為較長的時間間隔，顯示的 vCPU 值為每分鐘整數 vCPU 值的平均值。