

# 了解 DynamoDB 中的 AWS 账单和使用情况报告的最佳实践
<a name="bp-understanding-billing"></a>

 本文档解释了与 DynamoDB 相关的费用的 `UsageType` 账单代码。

AWS 提供了包含所用服务的数据的成本和使用情况报告（CUR）。您可以使用 AWS 成本和使用情况报告 以 CSV 格式将账单报告发布到 Amazon S3。设置 CUR 时，您可以选择按小时、天或月细分时间段，也可以选择是否要按资源 ID 对使用情况进行细分。有关生成 CUR 的更多详细信息，请参阅[创建成本和使用情况报告](https://docs.aws.amazon.com/cur/latest/userguide/creating-cur.html)

在 CSV 导出中，您将找到每行列出的相关属性。以下是可能包含的属性的示例：
+ **lineitem/UsageStartDate：**用 UTC 表示的行项目的开始日期和时间（含该日期和时间）。
+ **lineitem/UsageEndDate：**用 UTC 表示的对应行项目的结束日期和时间（不含该日期和时间）。
+ **lineitem/ProductCode：**对于 DynamoDB 来说，这将是“AmazonDynamoDB”
+ **lineitem/UsageType：**使用类型的特定描述代码，如本文档所列举
+ **lineItem/Operation：**为费用提供上下文的名称，例如产生费用的操作名称（可选）。
+ **lineitem/ResourceId：**产生使用量的资源的标识符。如果 CUR 包含按资源 ID 划分的明细，则可用。
+ **lineitem/UsageAmount：**在指定时间段内产生的用量。
+ **lineitem/UnblendedCost：**此用量的成本。
+ **lineitem/LineItemDescription：**行项目的文字描述。

有关 CUR 数据字典的更多信息，请参阅[成本和使用情况报告（CUR）2.0](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html)。请注意，确切的名称因上下文而异。

`UsageType` 是一个字符串，包含值 `ReadCapacityUnit-Hrs`、`USW2-ReadRequestUnits`、`EU-WriteCapacityUnit-Hrs`、或 `USE1-TimedPITRStorage-ByteHrs` 等。每种使用类型都以可选的区域前缀开头。如果没有，则表示 us-east-1 区域。如果有，则下表将简短的计费区域代码与传统的区域代码和名称对应起来。

例如，名为 `USW2-ReadRequestUnits` 的使用表示在 us-west-2 中消耗的读取请求单位。


****  

| 账单区域代码 | 区域代码 | 区域名称 | 
| --- | --- | --- | 
| AFS1 | af-south-1 | 非洲（开普敦） | 
| APE1 | ap-east-1 | 亚太地区（香港） | 
| APN1 | ap-northeast-1 | 亚太地区（东京） | 
| APN2 | ap-northeast-2 | 亚太地区（首尔） | 
| APN3 | ap-northeast-3 | 亚太地区（大阪） | 
| APS1 | ap-southeast-1 | 亚太地区（新加坡） | 
| APS2 | ap-southeast-2 | 亚太地区（悉尼） | 
| APS3 | ap-south-1 | 亚太地区（孟买） | 
| APS4 | ap-southeast-3 | 亚太地区（雅加达） | 
| APS5 | ap-south-2 | 亚太地区（海得拉巴） | 
| APS6 | ap-southeast-4 | 亚太地区（墨尔本） | 
| CAN1 | ca-central-1 | 加拿大（中部） | 
| EU | eu-west-1 | 欧洲地区（爱尔兰） | 
| EUC1 | eu-central-1 | 欧洲地区（法兰克福） | 
| EUC2 | eu-central-2 | 欧洲（苏黎世） | 
| EUN1 | eu-north-1 | 欧洲地区（斯德哥尔摩） | 
| EUS1 | eu-south-1 | 欧洲地区（米兰） | 
| EUS2 | eu-south-2 | 欧洲（西班牙） | 
| EUW1 | eu-west-1 | 欧洲地区（爱尔兰） | 
| EUW2 | eu-west-2 | 欧洲地区（伦敦） | 
| EUW3 | eu-west-3 | 欧洲地区（巴黎） | 
| ILC1 | Il-central-1 | 以色列（特拉维夫） | 
| MEC1 | me-central-1 | 中东（阿联酋） | 
| MES1 | me-south-1 | 中东（巴林） | 
| SAE1 | sa-east-1 | 南美洲（圣保罗） | 
| USE1（默认） | us-east-1 | 美国东部（弗吉尼亚州北部） | 
| USE2 | us-east-2 | 美国东部（俄亥俄州） | 
| UGE1 | us-gov-east-1 | US Government East | 
| UGW1 | us-gov-west-1 | US Government West | 
| USW1 | us-west-1 | 美国西部（北加利福尼亚） | 
| USW2 | us-west-2 | 美国西部（俄勒冈州） | 

在以下各节中，我们在计算 DynamoDB 的费用时使用 `REG-UsageType` 模式，其中 REG 指定使用量发生的区域，usageType 是费用类型的代码。例如，如果您在 CSV 文件中看到 `USW1- ReadCapacityUnit-Hrs` 的行项目，则表示在 US-West-1 中使用了预置读取容量。在这种情况下，清单会显示为 `REG-ReadCapacityUnit-Hrs`。

**Topics**
+ [吞吐能力](#bp-understanding-billing.throughput)
+ [流](#bp-understanding-billing.streams)
+ [仓储服务](#bp-understanding-billing.storage)
+ [备份与还原](#bp-understanding-billing.backup)
+ [数据传输](#bp-understanding-billing.datatransfer)
+ [CloudWatch Contributor Insights](#bp-understanding-billing.cw)
+ [DynamoDB Accelerator (DAX)](#bp-understanding-billing.dax)

## 吞吐能力
<a name="bp-understanding-billing.throughput"></a>

**预置容量读取和写入**

在预置容量模式下创建 DynamoDB 表时，您可以指定应用程序所需的读取和写入容量。使用类型取决于您的表类（标准或标准-不频繁访问）。您可以根据每秒的消耗率预置读取和写入，但费用是根据预置容量按小时计费的。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-ReadCapacityUnit-Hrs | RCU 小时数 | 小时 | 使用“标准”表类在预置容量模式下进行读取的费用。 | 
| REG-IA-ReadCapacityUnit-Hrs  | RCU 小时数 | 小时 | 使用“标准 - IA”表类在预置容量模式下进行读取的费用。 | 
| REG-WriteCapacityUnit-Hrs | WCU 小时数 | 小时 | 使用“标准”表类在预置容量模式下进行写入的费用。 | 
| REG-IA-WriteCapacityUnit-Hrs  | WCU 小时数 | 小时 | 使用“标准 - IA”表类在预置容量模式下进行写入的费用。 | 

**预留容量读取和写入**

通过预留容量，您可以支付一次性预付费用并承诺在一段时间内支付最低预置用量级别的费用。预留容量按折扣小时费率计费。对于您预置的超出预留容量的任何容量，将按照标准的预置容量费率收费。预留容量可用于使用标准表类的 DynamoDB 表上的单区域、预置读取和写入容量单位（RCU 和 WCU）。1 年期和 3 年期预留容量均使用相同的 SKU 进行计费。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-HeavyUsage:dynamodb.read | RCU 小时数 | 预付费，然后按月付费 | 预留容量读取费用：一次性预付费和每月初月度费用，涵盖当月所有折扣承诺 RCU 小时数。将有匹配的零成本 REG-ReadCapacityUnit-Hrs 行项目。 | 
| REG-HeavyUsage:dynamodb.write | WCU 小时数 | 预付费，然后按月付费 | 预留容量写入费用：一次性预付费和每月初月度费用，涵盖当月所有折扣承诺 WCU 小时数。将有匹配的零成本 REG-WriteCapacityUnit-Hrs 行项目。 | 

**按需容量读取和写入**

在按需容量模式下创建 DynamoDB 表时，您只需为应用程序执行的读取和写入付费。读取和写入请求的价格取决于您的表类。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-ReadRequestUnits | RRUs | 单位 | 在按需容量模式下使用“标准”表类进行读取的费用。 | 
| REG-IA-ReadRequestUnits | RRUs | 单位 | 在按需容量模式下使用“标准 - IA”表类进行读取的费用。 | 
| REG-WriteRequestUnits | WRU | 单位 | 在按需容量模式下使用“标准”表类进行写入的费用。 | 
| REG-IA-WriteRequestUnits | WRU | 单位 | 在按需容量模式下使用“标准 - IA”表类进行写入的费用。 | 

**全局表读取和写入**

DynamoDB 根据每个副本表上使用的资源对全局表的使用收费。对于预置全局表，全局表的写入请求以复制的 WCU (rwCu) 而不是标准 WCU 来衡量，对全局表中全局二级索引的写入以 WCU 来衡量。对于按需全局表，写入请求以复制的 WRU (rwRU) 而不是标准 WRU 来衡量。复制而消耗的 rWCU 或 rWRU 数量取决于您使用的全局表的版本。定价取决于您的表类。

对全局二级索引（GSI）的写入按标准写入单位（WCU 和 WRU）计费。读取请求和数据存储的计费方式与单区域表相同。

 如果您添加表副本以在新区域中创建或扩展全局表，则 DynamoDB 会按恢复的数据（GB）对已添加区域中的表恢复进行收费。已恢复的数据按照 REG-RestoreDataSize-Bytes 收费。详情请参阅[DynamoDB 的备份和还原](Backup-and-Restore.md)。跨区域复制和向包含数据的表中添加副本也会产生数据传输费用。

 当您为 DynamoDB 全局表选择按需容量模式时，您只需为应用程序在每个副本表上使用的资源付费。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-ReplWriteCapacityUnit-Hrs | rWCU 小时数 | 小时 | 全局表、预置、“标准”表类。 | 
| REG-IA-ReplWriteCapacityUnit-Hrs | rWCU 小时数 | 小时 | 全局表、预置、“标准 - IA”表类。 | 
| REG-ReplWriteRequestUnits  | rWRU | 单位 | 全局表、按需、“标准”表类。 | 
| REG-IA-ReplWriteRequestUnits | rWRU | 单位 | 全局表、按需、“标准 - IA”表类。 | 

## 流
<a name="bp-understanding-billing.streams"></a>

DynamoDB 有两种流技术，DynamoDB Streams 和 Kinesis。每个都有单独的定价。

DynamoDB Streams 按读取请求单位对读取数据收取费用。每个 `GetRecords` API 调用都按流读取请求计费。对于由 AWS Lambda 因 DynamoDB 触发器而调用或者 DynamoDB 全局表因复制而调用的 `GetRecords` API 调用，您无需付费。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-Streams-RequestsCount | 计数 | 单位 | DynamoDB Streams 的读取请求单位。 | 

Amazon Kinesis Data Streams 按更改数据捕获单元收取费用。DynamoDB 针对每个写入收取一个更改数据捕获单元的费用（最多 1 KB）。大于 1 KB 的项目需要额外的更改数据捕获单元。您只需为应用程序执行的写入付费，而不必管理表上的吞吐能力。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-ChangeDataCaptureUnits-Kinesis | CDC 单位 | 单位 | Kinesis Data Streams 的更改数据捕获单元。 | 

## 仓储服务
<a name="bp-understanding-billing.storage"></a>

DynamoDB 通过将数据的原始字节大小加上数据的原始字节大小加上按项目的存储开销（这取决于您启用的功能）来衡量计费数据的大小。

**注意**  
使用 `DescribeTable` 时，CUR 中的存储使用量值将高于存储值，因为 `DescribeTable` 不包括每个项目的存储开销。

存储按小时计算，但按月定价，按小时费用的平均值计算。

尽管存储 `UsageType` 将 `ByteHrs` 作为后缀，但 CUR 中的存储使用量以 GB 为单位，按月 GB 定价。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-TimedStorage-ByteHrs | GB | Month | 对于“标准”表类的表，您的 DynamoDB 表和索引使用的存储量。 | 
| REG-IA-TimedStorage- ByteHrs | GB | Month | 对于“标准 - IA”表类的表，您的 DynamoDB 表和索引使用的存储量。 | 

## 备份与还原
<a name="bp-understanding-billing.backup"></a>

DynamoDB 提供两种类型的备份：时间点故障恢复（PITR）备份和按需备份。用户还可以从这些备份恢复到 DynamoDB 表中。以下费用包括备份和恢复。

备份存储费用是在当月的第一天产生的，整个月内会随着备份的添加或删除进行相应调整。有关更多信息，请参阅 [Understanding Amazon DynamoDB On-demand Backups and Billing](https://repost.aws/articles/AR74LYumctRa-t7Z87uwKrlw) 博客


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-TimedBackupStorage-ByteHrs | GB | Month | 按需备份 DynamoDB 表和本地二级索引所使用的存储。 | 
| TimedPITRStorage-ByteHrs | GB | Month | 时间点故障恢复（PITR）备份使用的存储。只要启用了 PITR，DynamoDB 会在整个月中持续监控您的启用 PITR 的表的大小，确定您存储的备份费用和账单。 | 
| REG-RestoreDataSize-Bytes | GB | 大小 | 从 DynamoDB 备份中恢复的数据总大小（包括表数据、本地二级索引和全局二级索引），以 GB 为单位。 | 

### AWS Backup
<a name="bp-understanding-billing.aws-backup"></a>

AWS Backup 是一项完全托管的备份服务，有助于轻松地在云中以及本地集中管理和自动执行跨 AWS 服务的数据备份。AWS Backup 按存储（热存储或冷存储）、恢复活动和跨区域数据传输收费。以下 `UsageType` 费用显示在“AWSBackup”产品代码下，而不是“AmazonDynamoDB”下。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-WarmStorage- ByteHrs-DynamoDB | GB | Month | 整个月中 DynamoDB 备份使用的存储由 AWS Backup 管理，以 GB/月为单位。 | 
| REG-CrossRegion-WarmBytes-DynamoDB | GB | 大小 | 传输到不同 AWS 区域中的同一个账户或不同 AWS 账户的数据。在将备份从一个区域复制到另一区域时，会产生跨区域传输费用。费用始终计入从中传输数据的账户。 | 
| REG-Restore-WarmBytes-DynamoDB | GB | 大小 | 从热存储中恢复的数据总大小，以 GB 为单位。 | 
| REG-ColdStorage-ByteHrs-DynamoDB | GB | Month | 整个月中 DynamoDB 备份使用的冷存储由 AWS Backup 管理，以 GB/月为单位。 | 
| REG-Restore-ColdBytes-DynamoDB | GB | Month | 从冷存储中恢复的数据总大小，以 GB 为单位。 | 

### 导出和导入
<a name="bp-understanding-billing.export-import"></a>

 您可以将数据从 DynamoDB 导出到 Amazon S3 或将数据从 Amazon S3 导入新的 DynamoDB 表。

尽管 `UsageType` 使用 `Bytes` 作为后缀，但 CUR 中的导出和导入使用量是以 GB 计量和定价的。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-ExportDataSize-Bytes | GB | 大小 | 将数据导出到 S3 的费用。DynamoDB 按指定导出创建时间点的 DynamoDB 基表大小（表数据和本地二级索引）对您导出的数据收费。 | 
| REG-ImportDataSize-Bytes | GB | 大小 | 从 S3 导入数据的费用。大小是根据 Amazon S3 中数据的未压缩对象大小计算得出的。使用 GSI 导入到表不会产生额外费用。 | 
| REG-IncrementalExportDataSize-Bytes | GB | 大小 | 为产生增量导出而从连续备份中处理的数据大小的费用。 | 

## 数据传输
<a name="bp-understanding-billing.datatransfer"></a>

数据传输活动可能显示为与 DynamoDB 服务相关联。DynamoDB 不对入站数据传输收费，也不对同一 AWS 区域内 DynamoDB 与其它 AWS 服务之间的数据传输收费（换言之，即每 GB 0 美元）。跨 AWS 区域（例如在美国东部 [弗吉尼亚州北部] 区域的 DynamoDB 和欧洲地区 [爱尔兰] 区域的 Amazon EC2 之间）传输的数据将对传输双方收费。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-DataTransfer-In-Bytes | GB | 单位 | 从互联网传输到 DynamoDB 的数据 | 
| REG-DataTransfer-Out-Bytes | GB | 单位 | 从 DynamoDB 传输到互联网的数据。 | 

## CloudWatch Contributor Insights
<a name="bp-understanding-billing.cw"></a>

CloudWatch Contributor Insights for DynamoDB 是一款诊断工具，可用于识别 DynamoDB 表中最常访问和最常受限制的键。以下 `UsageType` 费用显示在“AmazonCloudWatch”产品代码下，而不是“AmazonDynamoDB”下。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-CW:ContributorEventsManaged | 处理的事件 | 单位 | 处理的 DynamoDB 事件数量。例如，对于启用了 CloudWatch Contributor Insights 的表，每当读取或写入项目时，它都算作一个事件。如果该表具有排序键，则会产生两个事件的费用。 | 
| REG-CW:ContributorRulesManaged | 规则计数 | Month | 当您启用 CloudWatch Contributor Insights 时，DynamoDB 会创建规则来识别最常访问和最常受限制的键。这笔费用产生自针对为记录 CloudWatch Contributor Insights 而配置的每个实体（表和 GSI）所添加的规则。 | 

## DynamoDB Accelerator (DAX)
<a name="bp-understanding-billing.dax"></a>

DynamoDB Accelerator（DAX）根据为服务选择的实例类型按小时计费。以下费用是指预置的 DynamoDB Accelerator 实例。以下 `UsageType` 费用显示在“AmazonDAXh”产品代码下，而不是“AmazonDynamoDB”下。


****  

| UsageType | 单位 | 粒度 | 说明 | 
| --- | --- | --- | --- | 
| REG-NodeUsage:dax-<INSTANCETYPE> | 节点小时数 | 小时 | 特定实例类型的每小时使用量。从节点启动到终止，按消耗的节点小时数计费。消耗的节点小时不足一小时，将按一小时计费。DAX 对 DAX 集群中的每个节点收费。如果您的集群包含多个节点，则会在账单报告中看到多个行项目。 | 

实例类型将是以下列表中的一个值。有关节点类型的详细信息，请参阅 [Nodes](DAX.concepts.cluster.md#DAX.concepts.nodes)。
+ r3.2xlarge、r4.8xlarge 或 r5.8xlarge
+ r3.4xlarge、r4.large 或 r5.large
+ r3.8xlarge、r4.xlarge 或 r5.xlarge
+ r3.2xlarge、r5.12xlarge 或 t2.medium
+ r3.4xlarge、r4.large 或 r5.large
+ r3.xlarge、r5.16xlarge 或 t2.small
+ r4.16xlarge、r5.24xlarge 或 t3.medium
+ r4.2xlarge、r5.2xlarge 或 t3.small
+ r4.4xlarge 或 r5.4xlarge