我想最大限度地降低我在 Amazon DynamoDB 中的成本,但我不确定该怎么做。
简短描述
首先,使用 AWS 定价计算器估算您的 DynamoDB 成本。
然后,采取以下措施来最大限度地降低 DynamoDB 成本:
- 选择正确的容量模式和表访问权限。
- 使用最大吞吐量。
- 缩小全局二级索引的大小。
- 将您的应用程序配置为使用 Query 操作。
- 使用生存时间 (TTL) 删除旧数据。
- 使用 AWS 拥有的密钥进行静态加密。
- 将大型对象存储在 Amazon Simple Storage Service (Amazon S3) 中。
- 使用简短的属性名称。
- 使用成本分配标签。
- 使用 AWS Budgets 和 AWS Cost Explorer 成本管理服务。
DynamoDB 会对读取、写入并将数据存储在 DynamoDB 表中进行收费。DynamoDB 还会对您开启的其他功能收费。全局表和流等可选功能根据其各自的单位计费。根据您选择的实例类型,DynamoDB Accelerator (DAX) 按小时计费。
解决方法
选择正确的容量模式和表类
为了处理对表的读写操作,DynamoDB 有两种容量模式,它们具有特定的计费选项,即按需和预调配。确保根据您的需求选择正确的容量模式。按需容量模式适用于不可预测的工作负载。对于可预测的工作负载,使用预调配或预调配自动扩缩。对于稳定的工作负载,您也可以使用预留容量。
根据您的表类向您收取读写请求单位和存储费。因此,请确保使用正确的表类来满足您的需求。
使用最大吞吐量
对按需表使用最大吞吐量。最大吞吐量可以优化您的吞吐量成本,帮助减少过度使用并保护下游服务。
缩小全局二级索引的大小
要减小全局二级索引的大小,请使用 KEYS_ONLY 或 INCLUDES,而不是 ALL。减少后,使用的读取和写入容量单位较少。
将您的应用程序配置为使用 Query 操作
Scan 操作会扫描整个表或二级索引,然后筛选出结果值。为了缩短响应时间和降低成本,请配置您的表和索引,让您的应用程序使用 Query 操作。
使用 TTL 删除旧数据
如果您需要删除旧数据,请使用 TTL。
使用 AWS 拥有的密钥进行静态加密
根据您的用例,您可以使用 AWS 拥有的密钥进行静态加密。AWS 拥有的密钥包含在内,不收取额外费用。但是,AWS 托管式密钥和客户自主管理型密钥可能会产生 AWS Key Management Service (AWS KMS) 费用。如果您使用全局表,则这些表会调用 AWS KMS 进行复制写入,并可能导致 AWS KMS 费用。
在 Amazon S3 中存储大型对象
如果您存储大型对象,则将其存储在 Amazon S3 中,并将 S3 URL 存储在 DynamoDB 中。
使用简短的属性名称
属性名称会影响项的总大小。为了最大限度地降低成本,请使用较短的属性名称。长属性名称会增加存储成本以及使用的写入和读取容量单位的数量。
使用成本分配标签
要快速查看您的 DynamoDB 成本,请使用成本分配标签。
使用 AWS Budgets 和 AWS Cost Explorer 成本管理服务
使用 AWS Budgets 在 AWS 上设置特定时期的自定义支出计划。如果您的费用或使用量超过或预计将超过支出限额,则您会收到提醒。
使用 AWS Cost Explorer 成本管理服务,分析您账户的资源使用情况和一段时间内的成本。有关更多信息,请参阅了解 AWS 账单和使用情况报告的最佳实践。
相关信息
DynamoDB 按需和预调配容量
Amazon DynamoDB 定价
使用 AWS 进行成本优化
活动系列: AWS 成本优化