

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

# 從 Neo4j 遷移到 Neptune 時佈建基礎設施
<a name="migration-provisioning-infrastructure"></a>

Amazon Neptune 叢集是為了在三個維度中進行擴展而建置的：儲存體、寫入容量和讀取容量。以下各節討論遷移時要考慮的特定選項。

## 佈建儲存體
<a name="migration-provisioning-storage"></a>

任何 Neptune 叢集的儲存體都是自動佈建的，您的部分沒有任何管理負荷。隨著叢集的儲存體需求增加，它會以 10 GB 區塊動態調整大小。因此，不需要估計和佈建或過度佈建儲存體來處理未來的資料成長。

## 佈建寫入容量
<a name="migration-provisioning-write-capacity"></a>

Neptune 會提供單一寫入器執行個體，其可以垂直擴展為 [Neptune 定價頁面](https://aws.amazon.com/neptune/pricing/)上提供的任何執行個體大小。讀取資料和寫入資料至寫入器執行個體時，所有交易都符合 ACID 規範，而資料隔離如 [Neptune 中的交易隔離層級](transactions-neptune.md) 中所定義。

為寫入器執行個體選擇最佳大小需要執行載入測試，以確定工作負載的最佳執行個體大小。您可以[修改資料庫執行個體類別](manage-console-instances-modify.md)，隨時調整 Neptune 內的任何執行個體大小。您可以根據並行性和平均查詢延遲來估計起始執行個體大小，如下面 [佈建叢集時估計最佳的執行個體大小](#migration-provisioning-instance-sizing) 所述。

## 佈建讀取容量
<a name="migration-provisioning-read-capacity"></a>

建置 Neptune 是為了水平擴展 （方法是在叢集內新增最多 15 個僅供讀取複本，或在 [Neptune 全球資料庫](neptune-global-database.md)中新增更多的僅供讀取複本) 僅供讀取複本執行個體，並將其垂直擴展至 [Neptune 定價頁面](https://aws.amazon.com/neptune/pricing/)上提供的任何執行個體大小。所有 Neptune 僅供讀取複本執行個體都會使用相同的基礎儲存磁碟區，從而以最小的延遲啟用資料的透明複寫。

除了啟用 Neptune 叢集內讀取請求的水平擴展之外，僅供讀取複本也可做為寫入器執行個體的容錯移轉目標，以啟用高可用性。如需如何確定叢集中僅供讀取複本的適當數量和放置位置的建議，請參閱 [Amazon Neptune 基本操作準則](best-practices-general-basic.md)。

對於無法預測其連線能力和工作負載的應用程式，Neptune 也支援[自動擴展功能](manage-console-autoscaling.md)，其可根據您指定的準則自動調整 Neptune 複本的數量。

若要確定僅供讀取複本執行個體的最佳大小和數量，需要執行載入測試以確定其必須支援的讀取工作負載特性。您可以[修改資料庫執行個體類別](manage-console-instances-modify.md)，隨時調整 Neptune 內的任何執行個體大小。您可以根據並行性和平均查詢延遲來估計起始執行個體大小，如[下節](#migration-provisioning-instance-sizing)所述。

## 使用 Neptune Serverless 視需要自動擴展讀取器和寫入器執行個體
<a name="migration-provisioning-serverless"></a>

雖然能夠估計預期工作負載所需的運算容量通常很有幫助，但您可以設定 [Neptune Serverless](neptune-serverless.md) 功能，以自動擴增和縮減讀取和寫入容量。這可協助您滿足尖峰需求，同時也會在需求減少時自動縮減回來。

## 佈建叢集時估計最佳的執行個體大小
<a name="migration-provisioning-instance-sizing"></a>

估計最佳執行個體大小需要知道 Neptune 中的平均查詢延遲、工作負載執行時間，以及正在處理的並行查詢數目。執行個體大小的粗略估計值可以計算為平均查詢延遲乘以並行查詢數目。這會提供您處理工作負載所需之並行執行緒的平均數目。

Neptune 執行個體中的每個 vCPU 都可以支援兩個並行查詢執行緒，因此將執行緒除以 2 可提供所需的 vCPU 數目，然後這些 vCPU 可與 [Neptune 定價頁面](https://aws.amazon.com/neptune/pricing/)上的適當執行個體大小相互關聯。例如：

```
Average Query Latency:         30ms (0.03s)
Number of concurrent queries:  1000/second

Number of threads needed:      0.03 x 1000 = 30 threads
Number of vCPUs needed:        30 / 2 = 15 vCPUs
```

將此數目與執行個體中的 vCPU 數目相互關聯，我們發現我們得到了一個粗略的估計，即 `r5.4xlarge` 將是要為此工作負載嘗試的建議執行個體。這個估計是粗略的，只是為了提供執行個體大小選擇的初始指引。任何應用程式都應該進行調整適當大小的練習，以確定適合工作負載的執行個體數目和類型。

記憶體需求以及處理需求也應納入考慮。當查詢正在存取的資料在主記憶體緩衝集區快取中可用時，Neptune 的效能最佳。佈建足夠的記憶體也可大幅降低 I/O 成本。

您可以在 [調整 Neptune 資料庫叢集中資料庫執行個體的大小](feature-overview-db-clusters.md#feature-overview-sizing-instances) 頁面上找到有關調整 Neptune 叢集中執行個體大小的其他詳細資訊和指引。