

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

# 擴展 Amazon DocumentDB 叢集
<a name="db-cluster-manage-performance"></a>

Amazon DocumentDB 可讓您根據您的需求擴展叢集中的儲存和運算。本節說明如何使用儲存體擴展、執行個體擴展和讀取擴展來管理 Amazon DocumentDB 叢集和執行個體的效能和擴展。

**Topics**
+ [儲存體擴展](#db-cluster-manage-scaling-storage)
+ [執行個體擴展](#db-cluster-manage-scaling-instance)
+ [讀取擴展](#db-cluster-manage-scaling-reads)
+ [寫入擴展](#db-cluster-manage-scaling-writes)

## 儲存體擴展
<a name="db-cluster-manage-scaling-storage"></a>

Amazon DocumentDB 儲存會自動隨著叢集磁碟區中的資料進行擴展。隨著資料成長，叢集磁碟區儲存會以 10 GiB 的增量成長，最高可達 128 TiB。

## 執行個體擴展
<a name="db-cluster-manage-scaling-instance"></a>

您可以修改叢集中每個執行個體的執行個體類別，視需要擴展 Amazon DocumentDB 叢集。Amazon DocumentDB 支援數個針對 Amazon DocumentDB 最佳化的執行個體類別。

如需詳細資訊，請參閱[修改 Amazon DocumentDB 執行個體](db-instance-modify.md)。

## 讀取擴展
<a name="db-cluster-manage-scaling-reads"></a>

您可以在叢集中建立最多 15 個 Amazon DocumentDB 複本，以達成 Amazon DocumentDB 叢集的讀取擴展。每個 Amazon DocumentDB 複本會從叢集磁碟區傳回相同的資料，複本延遲最少，通常在主要執行個體寫入更新後不到 100 毫秒。隨著讀取流量的增加，您可以建立額外的 Amazon DocumentDB 複本，並直接連接到複本，以分配叢集的讀取負載。Amazon DocumentDB 複本不必與主要執行個體具有相同的執行個體類別。

如需詳細資訊，請參閱[將 Amazon DocumentDB 執行個體新增至叢集](db-instance-add.md)。

若要使用 Amazon DocumentDB 讀取擴展，建議您以複本集的形式連線至叢集，並使用驅動程式的內建讀取偏好設定功能，將讀取分散至複本執行個體。如需詳細資訊，請參閱 [以複本集的形式連線至 Amazon DocumentDB](connect-to-replica-set.md)。

## 寫入擴展
<a name="db-cluster-manage-scaling-writes"></a>

您可以增加叢集主要執行個體的大小，來擴展 Amazon DocumentDB 叢集的寫入容量。本節提供兩種方法，可根據您的需求調整叢集的主要執行個體。第一個選項旨在將應用程式影響降至最低，但需要更多步驟才能完成。第二個選項針對簡易性進行最佳化，因為它的步驟較少，但會對您的應用程式產生更多潛在的折衷影響。

視您的應用程式而定，您可以選擇最適合您的以下方法。如需可用執行個體大小和成本的詳細資訊，請參閱 [Amazon DocumentDB 定價](https://aws.amazon.com/documentdb/pricing/)頁面。

1. **針對高可用性和效能進行**最佳化：如果您以[複本集模式](connect-to-replica-set.md) （建議） 連線到叢集，您可以使用下列程序，在擴展主要執行個體時將對應用程式的影響降至最低。此方法可將影響降至最低，因為它使叢集維持在高可用性或高於高可用性的水準，而讀取擴展目標會作為執行個體新增至叢集，而不是就地更新。

   1. 將一或多個較大執行個體類型的複本新增至叢集 (請參閱[將 Amazon DocumentDB 執行個體新增至叢集](db-instance-add.md))。建議所有複本具有與主要執行個體類型相同或更大的執行個體類型。這樣可以避免不小心降低寫入效能，從容錯移轉到較小的執行個體類型。對大多數客戶而言，這表示將叢集中的執行個體數目暫時增加一倍，然後在擴展完成後移除較小的複本。

   1. 將所有新複本上的容錯移轉層設定為優先順序為零，確保較小執行個體類型的複本具有最高的容錯移轉優先順序。如需詳細資訊，請參閱[控制容錯移轉目標](failover.md#failover-target_control)。

   1. 初始化手動容錯移轉，將其中一個新複本升級為主要執行個體。如需詳細資訊，請參閱[測試容錯移轉](failover.md#failover-testing)。
**注意**  
這將導致您的叢集停機約 30 秒。請據此進行相應計劃。

   1. 從叢集中移除小於新主要執行個體類型的所有複本。

   1. 將所有執行個體的容錯移轉層設定回相同的優先順序 (通常，這表示會將它們設定回 1)。

   舉例來說，假設您的叢集目前包含三個 `r5.large` 執行個體 (一個主要和兩個複本)，而您想要擴展到 `r5.xlarge` 執行個體類型。若要執行這項操作，您必須先將三個 `r5.xlarge` 複本執行個體新增至叢集，然後將新 `r5.xlarge` 複本的容錯移轉層設定為零。接下來，您將啟動手動容錯移轉 (您的應用程式將停機約 30 秒)。容錯移轉完成後，您會從叢集中移除所有三個 `r5.large` 執行個體，使叢集擴展至 `r5.xlarge` 執行個體。

   為了協助最佳化成本，Amazon DocumentDB 執行個體會以一秒的增量計費，在建立、修改或刪除執行個體等計費狀態變更之後，最低收費為 10 分鐘。如需詳細資訊，請參閱最佳實務文件中的[成本最佳化](best_practices.md#best_practices-cost_optimization)。

1. **簡化最佳化** — 此方法可簡化最佳化。它不會擴展和收縮叢集，但可能會暫時降低您的讀取容量。

   變更複本的執行個體類別可能會導致該執行個體在幾秒鐘到不到 30 秒的短時間內沒有提供請求。如果您以[複本集模式](connect-to-replica-set.md) （建議） 連接到叢集，則這會在擴展操作期間將您的讀取容量減少一個複本 （例如，在 3 節點叢集中為 66% 的容量，或在 4 節點叢集中為 75% 的容量等）。

   1. 擴展叢集中的其中一個複本執行個體。如需詳細資訊，請參閱[管理執行個體類別](db-instance-classes.md)。

   1. 等待執行個體可用 （請參閱 [監控 Amazon DocumentDB 執行個體的狀態](monitoring_docdb-instance_status.md))。
**注意**  
這將導致您的叢集停機約 30 秒。請據此進行相應計劃。

   1. 繼續執行步驟 1 和 2，直到已逐一擴展所有複本執行個體。

   1. 啟動手動容錯移轉。這會將其中一個複本提升為主要執行個體。如需詳細資訊，請參閱[Amazon DocumentDB 容錯移轉](failover.md)。
**注意**  
這將對您的叢集產生長達 30 秒的停機時間，但通常需要的時間比這更短。請據此進行相應計劃。

   1. 擴展先前的主要 （現為複本） 執行個體。