

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

# 預估 DynamoDB 資料表的隨需容量成本
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity"></a>

*Moinul Al-Mamun，Amazon Web Services*

## 總結
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-summary"></a>

[Amazon DynamoDB](https://aws.amazon.com/dynamodb/) 是 NoSQL 交易資料庫，即使在 PB 規模下也能提供單一位數毫秒延遲。此 Amazon Web Services (AWS) 無伺服器產品因其一致的效能和可擴展性而廣受歡迎。 您不需要佈建基礎基礎設施。您的單一資料表最多可增長至 PB。

使用隨需容量模式時，您需要為應用程式在資料表上執行的資料讀取和寫入支付每個請求的費用。AWS 費用是以每月累積的讀取請求單位 (RRUs) 和寫入請求單位 WRUs) 為基礎。DynamoDB 會在一個月內持續監控資料表的大小，以判斷您的儲存費用。它支援使用point-in-time-recovery(PITR) 進行連續備份。DynamoDB 會在一個月內持續監控已啟用 PITR 的資料表大小，以判斷您的備份費用。

若要預估專案的 DynamoDB 成本，請務必計算產品生命週期的不同階段會耗用多少 RRU、WRU 和儲存體。對於粗略成本估算，您可以使用 [AWS 定價計算器](https://calculator.aws/#/createCalculator/DynamoDB)，但必須為資料表提供大約數量RRUs、WRUs和儲存需求。這些在專案開始時可能很難預估。AWS 定價計算器不會考慮資料成長率或項目大小，也不會分別考慮基底資料表和全域次要索引 (GSIs讀取和寫入次數。若要使用 AWS 定價計算器，您必須估計所有這些層面，以假設 WRU、RRU 和儲存體大小的 ballpark 數字，以取得您的成本估算。

此模式提供一種機制和可重複使用的 Microsoft Excel 範本，可針對隨需容量模式預估基本的 DynamoDB 成本因素，例如寫入、讀取、儲存、備份和復原成本。它比 AWS 定價計算器更精細，並獨立考慮基礎資料表和 GSIs要求。它也會考慮每月項目資料成長率，並預測三年的成本。

## 先決條件和限制
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-prereqs"></a>

**先決條件**
+ DynamoDB 和 DynamoDB 資料模型設計的基本知識
+ DynamoDB 定價、WRU、RRU、儲存以及備份和復原的基本知識 （如需詳細資訊，請參閱[隨需容量定價](https://aws.amazon.com/dynamodb/pricing/on-demand/))
+ 了解 DynamoDB 中的資料、資料模型和項目大小
+ DynamoDB GSIs的知識

**限制**
+ 範本提供您近似的計算，但不適用於所有組態。若要取得更準確的預估值，您必須測量基礎資料表和 GSIs 中每個項目的個別項目大小。
+ 為了獲得更準確的預估，您必須考慮平均月份中每個項目的預期寫入次數 （插入、更新和刪除） 和讀取次數。
+ 此模式支援根據固定的資料成長假設，估計未來幾年的寫入、讀取、儲存和備份和復原成本。

## 工具
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-tools"></a>

**AWS 服務**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) 是一項全受管 NoSQL 資料庫服務，可提供快速、可預期且可擴展的效能。

**其他工具**
+ [AWS 定價計算器](https://calculator.aws/#/createCalculator/DynamoDB)是一種 Web 型規劃工具，可用來建立 AWS 使用案例的預估值。

## 最佳實務
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-best-practices"></a>

為了協助降低成本，請考慮下列 DynamoDB 設計最佳實務。
+ [分割區索引鍵設計](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-uniform-load.html) – 使用高基數分割區索引鍵來均勻分配負載。
+ [相鄰清單設計模式](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-adjacency-graphs.html) – 使用此設計模式來管理一對多和多對多關係。
+ [稀鬆索引](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes-general-sparse-indexes.html) – 對 GSI 使用稀鬆索引。在您建立 GSI 時，指定一個分割區索引鍵和 (選用) 一個排序索引鍵。只有在基本資料表中包含對應 GSI 分割區索引鍵的項目才會出現在稀疏索引中。這有助於保持 GSI 更小。
+ [索引過載](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-gsi-overloading.html) – 使用相同的 GSI 對各種類型的項目編製索引。
+ [GSI 寫入碎片](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes-gsi-sharding.html) – 明智地進行碎片以跨分割區分佈資料，以實現高效、更快的查詢。
+ [大型項目](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-use-s3-too.html) – 僅將中繼資料儲存在表內，將 Blob 儲存在 Amazon S3 中，並將參考保留在 DynamoDB 中。將大型項目分解為多個項目，並使用排序索引鍵有效率地編製索引。

如需更多設計最佳實務，請參閱《Amazon DynamoDB [開發人員指南](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html)》。

## 史詩
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-epics"></a>

### 從 DynamoDB 資料模型擷取項目資訊
<a name="extract-item-information-from-your-dynamodb-data-model"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 取得項目大小。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | 資料工程師 | 
| 預估寫入成本。 | 若要在隨需容量模式中預估寫入成本，您必須先測量一個月將耗用多少 WRUs。因此，您需要考慮下列因素：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html)如需詳細資訊，請參閱*其他資訊*一節。 | 資料工程師 | 
| 預估讀取成本。 | 若要在隨需模式中預估讀取成本，您必須先測量一個月將耗用多少 RRUs。因此，您需要考慮下列因素： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | 資料工程師、應用程式開發人員 | 
| 估算儲存體大小和成本。 | 首先，根據資料表中的項目大小估計每月平均儲存需求。然後將儲存體大小乘以 AWS 區域的每 GB 儲存體價格，以計算儲存體成本。 如果您已輸入用於估算寫入成本的資料，則不需要再次輸入它來計算儲存體大小。否則，若要估計儲存體大小，您需要考慮下列因素： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | 資料工程師 | 

### 在 Excel 範本中輸入項目和物件資訊
<a name="enter-the-item-and-object-information-in-the-excel-template"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 從附件區段下載 Excel 範本，並針對您的使用案例資料表進行調整。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html) | 資料工程師 | 
| 在 Excel 範本中輸入資訊。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity.html)在範本中，有三個項目或實體：資訊、中繼資料和關係。有兩個 GSIs。針對您的使用案例，如果您需要更多項目，請建立新的資料列。如果您需要更多 GSIs，請複製現有的 GSI 區塊，然後貼上以視需要建立任意數量的 GSI 區塊。然後調整 SUM 和總計資料欄計算。 | 資料工程師 | 

## 相關資源
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-resources"></a>

**參考**
+ [Amazon DynamoDB 隨需容量定價](https://aws.amazon.com/dynamodb/pricing/on-demand/)
+ [DynamoDB 的 AWS 定價計算器](https://calculator.aws/#/createCalculator/DynamoDB)
+ [使用 DynamoDB 進行設計和架構的最佳實務](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices.html)
+ [DynamoDB 入門](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html)

**指南和模式**
+ [使用 Amazon DynamoDB 建立資料模型](https://docs.aws.amazon.com/prescriptive-guidance/latest/dynamodb-data-modeling/)
+ [Amazon DynamoDB 資料表的預估儲存成本](https://apg-library.amazonaws.com/content/9b74399d-9655-47ee-b9b3-de46b65bc4e3)

## 其他資訊
<a name="estimate-the-cost-of-a-dynamodb-table-for-on-demand-capacity-additional"></a>

**寫入成本計算範例**

DynamoDB 資料模型設計顯示產品的三個項目，平均項目大小為 4 KB。當您將新產品新增至 DynamoDB 基礎資料表時，它會耗用項目數量 \$1 （項目大小/1 KB 寫入單位） = 3 \$1 (4/1) = 12 WRU。在此範例中，針對寫入 1 KB，產品會耗用 1 個 WRU。 

**讀取成本計算範例**

若要取得 RRU 估算，請考慮每個項目一個月讀取的平均次數。例如，資訊項目將平均讀取一個月 10 次，中繼資料項目將讀取兩次，而關係項目將讀取五次。在範例範本中，所有元件的總 RRU = 每月建立的新元件數量 \$1 每個元件每月 RRU = 1，000 萬 \$1 17 RRU = 每月 1.700 萬 RRU。

每個月都會新增新事物 （元件或產品將會新增，且產品總數將會隨著時間成長。因此，RRU 需求也會隨著時間增加。
+ 第一個月的 RRU 使用量將為 1.7 億。
+ 第二個月，RRU 使用量將為 2 \$1 1.7 億 = 3.4 億。
+ 第三個月的 RRU 使用量將為 3 \$1 1.7 億 = 5.1 億。

下圖顯示每月 RRU 用量和成本預測。

![\[RRU 消耗的增加量比成本更陡峭。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/1797b48f-a183-4f25-811f-44921c3a48ee/images/3505bfc8-694d-4acc-8585-cd71258fa315.png)


請注意，圖表中的價格僅供說明之用。若要為您的使用案例建立準確的預測，請查看 AWS 定價頁面，並在 Excel 工作表中使用這些價格。

**儲存、備份和復原成本計算範例**

DynamoDB 儲存、備份和還原全部會彼此連線。備份會直接與儲存體連線，而復原則會直接與備份大小連線。隨著資料表大小的增加，對應的儲存、備份和還原成本將按比例增加。

*儲存體大小和成本*

儲存成本會根據您的資料成長率隨時間增加。例如，假設基礎資料表和 GSIs 中元件或產品的平均大小為 11 KB，每月會將 1，000 萬個新產品新增至您的資料庫資料表。在這種情況下，您的 DynamoDB 資料表大小將增長 (11 KB \$1 1000 萬）/1024/1024 = 每月 105 GB。在第一個月，您的資料表儲存大小將為 105 GB，第二個月將為 105 \$1 105 = 210 GBs，以此類推。
+ 第一個月，您的 AWS 區域的儲存成本為每 GB 105 GB \$1 儲存價格。 
+ 第二個月的儲存成本將是您所在區域的每 GB 210 GB \$1 儲存價格。
+ 第三個月的儲存成本將是您所在區域的每 GB 315 GB \$1 儲存價格。

如需未來三年的儲存大小和成本，請參閱*儲存大小和預測*一節。

*備份成本*

備份成本會根據您的資料成長率隨時間增加。當您使用point-in-time-recovery(PITR) 開啟連續備份時，連續備份費用是以每月平均儲存 GB 為基礎。在日曆月中，平均備份大小將與您的資料表儲存大小相同，但實際大小可能略有不同。隨著每個月都會新增新產品，總儲存大小和備份大小會隨著時間增加。例如，第一個月的平均備份大小 105 GB 可能會增加到第二個月的 210 GB。
+ 對於您的 AWS 區域，第一個月的備份成本為每 GB 105 GB/月 \$1 連續備份價格。 
+ 第二個月的備份成本將是 210 GB-月 \$1 您區域每 GB 的連續備份價格。
+ 第三個月的備份成本為 315 GB/月 \$1 您所在區域的每 GB 連續備份價格。
+ 和 ，以此類推

備份成本包含在*儲存體大小和成本預測*區段的圖表中。

*復原成本*

當您在啟用 PITR 的情況下進行連續備份時，復原操作費用會根據還原的大小而定。每次還原時，您都會根據 GB 的還原資料付費。如果您的資料表大小很大，而且您在一個月內執行多次還原，則其成本很高。

為了預估還原成本，此範例假設您每個月在月底執行一次 PITR 復原。此範例使用每月平均備份大小作為該月的還原資料大小。對於第一個月，平均備份大小為 105 GB，對於月底的復原，還原資料大小為 105 GB。第二個月會是 210 GBs以此類推。

復原成本會根據您的資料成長率隨時間增加。
+ 對於您的 AWS 區域，第一個月的復原成本將為每 GB 105 GB \$1 還原價格。 
+ 第二個月的復原成本將是 210 GB \$1 還原價格，每個 GB 的 區域。
+ 第三個月的復原成本將為 315 GB \$1 還原價格，每個 GB 的 區域。

如需詳細資訊，請參閱 Excel 範本中的儲存、備份和復原索引標籤，以及下一節中的圖表。

*儲存體大小和成本預測*

在範本中，實際計費儲存體大小的計算方式是將標準資料表類別的每月免費方案減去 25 GB。在工作表中，您會看到預測圖表分為每月值。

下列範例圖表預測未來 36 個日曆月的每月儲存大小，包括 GB、計費儲存成本、隨需備份成本和復原成本。所有成本都是 USD。從圖表中，顯然儲存、備份和復原成本會隨著儲存大小的增加而按比例增加。

![\[儲存體大小超過三千，而成本不到一千。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/1797b48f-a183-4f25-811f-44921c3a48ee/images/fd9f06d0-bc9c-4b4e-8cbd-3e527fe09e88.png)


請注意，圖表中使用的價格僅供說明之用。若要為您的使用案例建立準確的價格，請查看 AWS 定價頁面，並在 Excel 範本中使用這些價格。

## 附件
<a name="attachments-1797b48f-a183-4f25-811f-44921c3a48ee"></a>

若要存取與本文件相關聯的其他內容，請解壓縮下列檔案： [attachment.zip](samples/p-attach/1797b48f-a183-4f25-811f-44921c3a48ee/attachments/attachment.zip)