适用对象:
NoSQL
MongoDB
Cassandra
Gremlin
表
Azure Cosmos DB 是完全托管的云原生数据库服务,仅针对数据库操作和消耗的存储收费,因而简化了计费。 与本地或 IaaS 托管的替代方案相比,无需额外的许可费、硬件、使用成本或设施成本。 若想使用 Azure Cosmos DB 的多区域功能,与现有本地或 IaaS 解决方案相比,数据库服务可显着降低成本。
数据库操作:数据库操作的收费方式取决于所使用的 Azure Cosmos DB 帐户的类型。
- 预配的吞吐量:按给定小时内的最大预配吞吐量(增量为 100 RU/秒)以小时来计费。
- 无服务器:每小时按数据库操作消耗的请求单位总数计费。
存储:给定小时内数据和索引所消耗的存储总量(以 GB 为单位)按统一费率计费。
有关最新定价信息,请参阅定价页。
本文通过一些示例来帮助你了解每月帐单上的详细信息。 若存在以下情况,则示例中显示的数字可能会有所不同:Azure Cosmos DB 容器预配的吞吐量不同;容器跨多个区域;或在一个月内在不同时期运行。 本文中的所有示例都基于定价页中显示的定价信息计算账单。
注释
计费按每个小时计算,而不是按 60 分钟的持续时间计算。 定价和计算因所使用的区域而异。有关最新定价信息,请参阅 Azure Cosmos DB 定价页。
计费示例
计费示例 - 容器上预配的吞吐量(整月)
假设在容器上配置吞吐量为 1,000 RU/秒,并且其存在时间为 24 小时 * 31 天 = 总计 744 小时。
容器每小时存在的 1,000 RU/秒是 10 个每小时 100 RU/秒(即 1,000/100 = 10)。
将每小时 10 个单位乘以 0.051 元(每小时 100 RU/秒)的成本 = 每小时 0.51 元。
将每小时 0.51 元乘以月份的小时数等于 0.51 * 24 小时 * 31 天 = 当月的 610.1 元。
每月账单总额将显示7,440个单位(共100个 RU),这将花费610.1元。
计费示例 - 容器上预配的吞吐量(不足一个月)
假设创建一个预配吞吐量为 2,500 RU/秒的容器。容器在一个月内存在 24 小时(例如,在创建容器后 24 小时将其删除)。
则帐单上会显示 600 个单位(2,500 RU/秒/100 RU/秒/单位* 24小时)。 成本为30.6元(600元 * 0.051元/单位)。
本月总账单为30.6元。
计费示例 - 无服务器容器
假设我们创建了一个无服务器容器。
一个多月来,我们发出的数据库请求总共使用了 500,000 个请求单位。 费用为人民币1.18元(50万 * 人民币2.36/百万)。
本月总账单为1.18元。
存储大小变化时的计费率
存储容量按一个月内每小时的最大数据存储量(以 GB 为单位)计费。 例如,如果前半个月使用了 100 GB 的存储空间,而后半个月使用了 50 GB 的存储空间,则该月将按 75 GB 的等效存储空间进行计费。
容器或一组容器活动时间在一小时内的计费率
将对容器或数据库存在的每小时按统一费率进行收费,而无论使用量是多少,也无论容器或数据库使用时间是否不足一个小时。 例如,如果创建一个容器或数据库,然后在 5 分钟后删除它,那么帐单显示 1 个小时的费用。
容器或数据库上预配的吞吐量纵向扩展/缩减时的计费率
如果在上午 9:30 将预配的吞吐量从 400 RU/秒增加到 1,000 RU/秒,然后在上午 10:45 将预配的吞吐量重新减少到 400 RU/秒,则将收取两小时 1,000 RU/秒的费用。
如果在上午 9:30 将某个容器或一组容器的预配吞吐量从 100K RU/秒增加到 200K RU/秒,然后在上午 10:45 将预配的吞吐量重新减少到 100K RU/秒,则将收取两小时 200K RU/秒的费用。
计费示例:多个容器,每个容器都采用专用的预配吞吐量模式
如果您在中国东部 2 区创建一个 Azure Cosmos DB 帐户,并且拥有两个分别设置了 500 RU/秒和 700 RU/秒预配吞吐量的容器,则总预配吞吐量为 1200 RU/秒。
你将被收取 1,200/100 * 0.051 元 = 0.612 元/小时。
如果需要更改吞吐量,且每个容器的容量增加了 500 RU/秒,同时还以 20,000 RU/秒创建了新的无限容器,则预配的总体容量为 22,200 RU/秒(1,000 RU/秒 + 1,200 RU/秒 + 20,000 RU/秒)。
然后,帐单将更改为:0.051 x 222 元 = 11.322 元/小时。
在 744 小时(24 小时 * 31 天)的月份中,如果预配的吞吐量为 500 小时,则为 1,200 RU/秒,其余 244 小时的预配吞吐量为 22,200 RU/秒, 每月帐单显示:500 x 0.612 元/小时 + 244 x 11.322 元/小时 = CNY3068.57 元/月。
计费示例:具有共享(预配)吞吐量模式的容器
如果在中国东部 2 中创建一个 Azure Cosmos DB 帐户,其中包含两个 Azure Cosmos 数据库(一组容器在数据库级别共享吞吐量),预配吞吐量分别为 50-K RU/秒和 70-K RU/秒,则总预配吞吐量为 120 K RU/秒。
你将被收取 1200 x 0.051 元 = 61.2 元/小时。
如果需要更改吞吐量,且每个数据库的预配吞吐量增加了 10K RU/秒,同时还向第一个数据库添加了新容器,共享吞吐量数据库的专用吞吐量模式为 15K RU /秒,则预配的总体容量为 155K RU/秒(60K RU/秒 + 80K RU/秒 + 15K RU/秒)。
然后,帐单将更改为:1,550 * 0.051 元 = 79.05 元/小时。
在 744 小时内,如果预配的吞吐量为 300 小时,则为 120-K RU/秒,其余 444 小时的预配吞吐量为 155-K RU/秒, 每月帐单将显示:300 x 61.2 元/小时 + 444 x 79.05 元/小时 = 18,360 元 + 35,098.2 元 = 53,458.2 元/月。
异地复制的计费示例
可以随时在中国境内将 Azure 区域添加或移除到您的 Azure Cosmos 数据库帐户中。 为各种 Azure Cosmos 数据库和容器配置的吞吐量将在与 Azure Cosmos 数据库帐户关联的每个 Azure 区域中保留。 如果在 Azure Cosmos 数据库帐户内配置的所有数据库和容器的预配吞吐量(RU/秒)的总和为 T,并且与数据库帐户关联的 Azure 区域数为 N,那么该 Azure Cosmos 数据库帐户在某一小时内的总预配吞吐量为 T x N RU/秒。单写入区域的预配吞吐量每 100 RU/秒的费用为 0.051 元/小时,而具有多个可写区域(多区域写入配置)的预配吞吐量每 100 RU/秒的费用为 0.102 元/小时(请参阅 定价页)。 无论是单个写入区域还是多个写入区域,Azure Cosmos DB 都支持从任何区域读取数据。
计费示例:多区域 Azure Cosmos DB 帐户,单个区域写入
假设在中国北部有一个 Azure Cosmos 容器。 创建容器时,指定的吞吐量为 10K RU/秒,本月可存储 1 TB 的数据。 假设将三个区域(中国东部、中国北部 2 和中国东部 2)添加到 Azure Cosmos DB 帐户,每个区域具有相同的存储和吞吐量。 您的每月账单总额(假设一个月有 31 天)。 帐单情况如下:
物品 | 使用情况(月) | 费率 | 每月成本 |
---|---|---|---|
中国北部集装箱吞吐量账单 | 10K RU/秒 * 24 * 31 | 每 100 RU/秒每小时 0.051 元 | CNY 3,794.4 元 |
其他 3 个区域的吞吐量账单 - 中国东部、中国北部 2 和中国东部 2 | 3 * 10K RU/秒 * 24 * 31 | 100 RU/秒每小时 0.051 元 | 11,383.2 元 |
中国北地区的集装箱存储账单 | 250 GB | 2.576 元/GB | 644 元 |
其他 3 个区域的存储帐单 - 中国东部、中国北部 2 和中国东部 2 | 3 * 250 GB | 2.576 元/GB | CNY 1,932 |
总计 | 17,753.6 元 |
我们还假设您每月从中国北部的容器传出 100 GB 的数据,以将数据复制至中国东部、中国北部 2 和中国东部 2。 则需要按数据传输速率为导出部分付费。
计费示例:多区域 Azure Cosmos DB 帐户,多个区域写入
假设您在中国北部创建一个 Azure Cosmos DB 容器。 创建容器时,指定的吞吐量为 10K RU/秒,本月可存储 1 TB 的数据。 假设添加三个区域(中国东部、中国北部 2 和中国东部 2),每个区域具有相同的存储和吞吐量,并且希望能够写入与 Azure Cosmos DB 帐户关联的所有区域中的容器。 每月帐单总额(假设一个月内有 31 天),如下所示:
物品 | 使用情况(月) | 费率 | 每月成本 |
---|---|---|---|
中国北部容器的吞吐量账单(所有区域都是可写的) | 10K RU/秒 * 24 * 31 | 每 100 RU/秒 每小时 0.102 元 | CNY7589 |
另外 3 个区域的吞吐量计费 - 中国东部、中国北部 2 和中国东部 2(所有区域均为可写) | 3 * 10K RU/秒 * 24 * 31 | 每 100 RU/秒每小时 0.102 元 | 22,766.4 元 |
中国北地区的集装箱存储账单 | 250 GB | 人民币2.576元/GB | 644 元 |
其他 3 个区域的存储帐单 - 中国东部、中国北部 2 和中国东部 2 | 3 * 250 GB | 2.576 元/GB | 1,932 元 |
总计 | 32,931.4 元 |
假设您每月从中国北部的容器中导出 100 GB 的数据,将数据复制到中国东部、中国北部 2 和中国东部 2。 则需要按数据传输速率为导出部分付费。
计费示例:包含多区域写入的 Azure Cosmos DB 帐户,数据库级别的吞吐量,其中包括某些容器的专用吞吐量模式
我们来看看以下示例,示例中包含一个多区域 Azure Cosmos DB 帐户,其中的所有区域都可写入(多个写入区域配置)。 为简单起见,假定存储大小保持不变,且不会更改,此处不考虑存储大小,从而简化示例。 当月预配的吞吐量因以下情况而异(假设为 31 天或 744 小时):
[0-100 小时]:
我们创建了三个区域 Azure Cosmos DB 帐户(中国北部、中国东部、中国北部 2),其中所有区域都是可写的
创建共享吞吐量为 10K RU/秒的数据库 (D1)
创建共享吞吐量为 30k RU/秒的数据库 (D2)
创建专用吞吐量为 20K RU/秒的容器 (C1)
[101-200 小时]:
将数据库 (D1) 纵向扩展到 50K RU/秒
将数据库 (D2) 纵向扩展到 70K RU/秒
删除容器 (C1)
[201-300 小时]:
- 再次创建专用吞吐量为 20K RU/秒的容器 (C1)
[301-400 小时]:
从 Azure Cosmos DB 帐户中删除 1 个区域(可写入的区域的数量现为 2 个)
将数据库 (D1) 缩小到 10K RU/秒
将数据库 (D2) 纵向扩展到 80K RU/秒
再次删除容器 (C1)
[401-500 小时]:
将数据库 (D2) 缩小到 10K RU/秒
再次创建专用吞吐量为 20K RU/秒的容器 (C1)
[501-700 小时]:
将数据库 (D1) 纵向扩展到 20K RU/秒
将数据库 (D2) 纵向扩展到 100K RU/秒
再次删除容器 (C1)
[701-744 小时]:
- 将数据库 (D2) 缩小到 50K RU/秒
直观地显示了当月 744 小时内预配的总吞吐量更改,如下图所示:
每月账单总额(假设每月 31 天/744 小时)将按如下所示计算:
小时数 | RU/秒 | 物品 | 使用时间(小时) | 成本 |
---|---|---|---|---|
[0-100] | D1:10K D2:30K C1:20K |
中国北部容器的吞吐量账单(所有区域都是可写的) | D1: 10K RU/sec/100 * CNY0.102 * 100 hours = CNY1,020 D2: 30 K RU/sec/100 * CNY0.102 * 100 hours = CNY3,060 C1: 20 K RU/sec/100 *CNY0.102 * 100 hours = CNY2,040 |
6,120 元 |
另外 2 个区域的吞吐量账单:中国东部、中国北部 2(所有区域都是可写的) | (2 + 1) * (60 K RU/sec /100 * CNY0.102) * 100 hours = CNY18,360 |
18,360 元 | ||
[101-200] | D1:50K D2:70K C1: -- |
中国北部容器的吞吐量账单(所有区域都是可写的) | D1: 50 K RU/sec/100 * CNY0.102 * 100 hours = CNY5,100 D2: 70 K RU/sec/100 * CNY0.102 * 100 hours = CNY7,140 |
12,240 元 |
另外 2 个新增区域的吞吐量计费:中国东部、中国北部 2(所有区域均可写入) | (2 + 1) * (120 K RU/sec /100 * CNY0.102) * 100 hours = CNY36,720 |
36,720 元 | ||
[201-300] | D1:50K D2:70K C1:20K |
中国北部容器吞吐量账单(所有区域均可写入) | D1: 50 K RU/sec/100 * CNY0.102 * 100 hours = CNY5,100 D2: 70 K RU/sec/100 * CNY0.102 * 100 hours = CNY7,140 C1: 20 K RU/sec/100 *CNY0.102 * 100 hours = CNY2,040 |
14,280 元 |
另外 2 个区域的吞吐量账单:中国东部、中国北部 2(所有区域都是可写的) | (2 + 1) * (140 K RU/sec /100 * CNY0.102) * 100 hours = CNY42,840 |
人民币42,840元 | ||
[301-400] | D1:10K D2:80K C1: -- |
中国北部容器的吞吐量计费(所有区域均可写入) | D1: 10K RU/sec/100 * CNY0.102 * 100 hours = CNY1,020 D2: 80 K RU/sec/100 * CNY0.102 * 100 hours = CNY8,160 |
9,180 元 |
另外 2 个区域的吞吐量计费:中国东部、中国北部 2(所有区域均可写入) | (1 + 1) * (90 K RU/sec /100 * CNY0.102) * 100 hours = CNY18,360 |
18,360 元 | ||
[401-500] | D1:10K D2:10K C1:20K |
中国北部容器的吞吐量账单(所有区域都是可写的) | D1: 10K RU/sec/100 * CNY0.102 * 100 hours = CNY1,020 D2: 10K RU/sec/100 * CNY0.102 * 100 hours = CNY1,020 C1: 20 K RU/sec/100 *CNY0.102 * 100 hours = CNY2,040 |
4,080 元 |
中国东方区、中国北方区2(所有地区都可以写入)的额外吞吐量账单 | (1 + 1) * (40 K RU/sec /100 * CNY0.102) * 100 hours = CNY8,160 |
人民币 8,160 元 | ||
[501-700] | D1:20K D2:100K C1: -- |
中国北部容器的吞吐量账单(所有区域都是可写的) | D1: 20 K RU/sec/100 * CNY0.102 * 200 hours = CNY4,080 D2: 100 K RU/sec/100 * CNY0.102 * 200 hours = CNY20,400 |
CNY 24,480 元 |
针对另外2个区域的吞吐量账单:中国东部地区、中国北部2区(所有区域均可写入) | (1 + 1) * (120 K RU/sec /100 * CNY0.102) * 200 hours = CNY8,160 |
8,160 元 | ||
[701-744] | D1:20K D2:50K C1: -- |
中国北部容器的吞吐量账单(所有区域都是可写的) | D1: 20 K RU/sec/100 *CNY0.102 * 44 hours = CNY896.7 D2: 50 K RU/sec/100 *CNY0.102 * 44 hours = CNY2,244 |
CNY3140.7 |
另外 2 个区域的吞吐量账单:中国东部、中国北部 2(所有区域都是可写的) | (1 + 1) * (70 K RU/sec /100 * CNY0.102) * 44 hours = CNY6,283.2 |
6,283.2 元 | ||
每月总成本 | 212,403.9 元 |
Azure Cosmos DB 免费层帐户的计费示例
使用 Azure Cosmos DB 免费层,你将在帐户中获得每秒前 1000 RU 的免费吞吐量和 25 GB 的免费存储(适用于帐户级别)。 超过 1000 RU/s 和 25 GB 的任何 RU/s 和存储都将按定价页面的常规定价费率计费。 在账单上,你看不到免费的 1000 RU/s 和 25 GB 的费用或行项,而只会看到超过免费层涵盖范围的吞吐量和存储。 有关详细信息,请参阅如何创建免费层帐户一文。
计费示例 - 具有预配吞吐量的容器或数据库
- 假定在免费层帐户中创建了一个数据库或容器,并预配了 1000 RU/s 的吞吐量和 25 GB 的存储。
- 你的帐单不会显示有关此资源的任何费用。 每小时成本和每月成本将为 0 美元。
- 现在,假定在同一帐户中添加了另一个数据库或容器,并将其预配为 400 RU/s 的吞吐量和 10 GB 的存储。
- 现在帐单将显示 400 RU/s 吞吐量和 10 GB 存储的费用。
计费示例 - 具有自动缩放吞吐量的容器
小窍门
使用自动缩放时,可以设置的入口点缩放范围为 100 - 1000 RU/秒。 如果要使用自动缩放,并保持免费层级帐户完全免费,请创建一个具有此缩放范围的容器,或一个最多包含 25 个容器的共享吞吐量数据库。 以下示例演示了当预配吞吐量高于 100 - 1000 RU/秒缩放范围时的计费方式。
- 假设在免费层帐户中,我们创建一个启用自动缩放功能的容器,最大吞吐量为 4000 RU/s。 此资源将自动在 400-4000 RU/s 吞吐量之间缩放。
- 假设在第 1-10 小时内,资源的吞吐量缩放至 1000 RU/s。 在第 11 个小时,该资源纵向扩展到 1600 RU/s,然后在该小时内又缩减到 1000 RU/s。
- 在 1 到 10 小时内,将按吞吐量计费 0 元,因为免费层涵盖 1000 RU/秒。
- 在第 11 个小时,你需要支付的有效吞吐量为 1600 RU/s - 1000 RU/s = 600 RU/s,因为这是该小时内最高的 RU/s。 这一小时为 100 RU/秒的 6 个单位,因此该小时的总吞吐量成本将为 6 个单位 * 0.123 元 = 0.738 元。
- 超出前 25 GB 以外的任何存储都将按标准存储费率计费。
计费示例 - 多区域单个写入区域帐户
- 假设我们在免费层帐户中创建一个具有 1200 RU/s 吞吐量和 10 GB 存储的数据库或容器。 我们将帐户复制到 3 个区域。我们有单写入区域帐户。
- 如果不使用免费层,我们共需要支付 3 * 1200 RU/s = 3600 RU/s 吞吐量和 3 * 10 GB = 30 GB 存储的费用。
- 使用免费层折扣后,在扣除 1000 RU/s 的吞吐量和 25 GB 的存储后,我们需要支付 2600 RU/s(26 个单位)的有效预配吞吐量(按单一写入区域费率计费)和 5 GB 的存储。
- RU/秒的每月成本为:26 单位 * 0.051 元 * 24 小时 * 31 天 = 986.55 元。 存储的每月成本为:5 GB * 2.576 /GB = 12.88 元。 总成本为986.55元 +12.88元 = 999.43元。
注释
如果各区域的吞吐量或存储单价不同,则免费层的 1000 RU/s 吞吐量和 25 GB 存储将反映创建帐户所在区域的费率。
计费示例 - 多区域多写入区域帐户
此示例反映了在 2019 年 12 月 1 日之后创建的帐户的多区域写入定价。
- 假设我们在免费层帐户中创建一个具有 1200 RU/s 吞吐量和 10 GB 存储的数据库或容器。 我们将帐户复制到 3 个区域。我们有一个多写入区域帐户。
- 如果不使用免费层,我们共需要支付 3 * 1200 RU/s = 3600 RU/s 吞吐量和 3 * 10 GB = 30 GB 存储的费用。
- 使用免费层折扣后,在扣除 1000 RU/s 的吞吐量和 25 GB 的存储后,我们需要支付 2600 RU/s(26 个单位)的有效预配吞吐量(按多个写入区域费率计费)和 5 GB 的存储。
- RU/s 的每月成本为:26 单位 * 0.102 元 * 24 小时 * 31 天 = 1,973.09 元。 存储的每月成本为:5 GB * 2.576 /GB = 12.88 元。 总成本为 1,973.09 元 + 12.88 元 = 1,985.97 元。
主动估算每月帐单
我们来看看另一个示例,介绍希望在月末之前主动估算帐单的情况。 可按如下方式估算帐单:
存储成本
- 平均记录大小 (KB) = 1
- 记录数 = 100,000,000
- 总存储 (GB) = 100
- 每 GB 每月成本 = 2.576 元
- 预计每月存储成本 = 257.6 元
吞吐量成本
操作类型 | 请求数/秒 | 平均值RU/请求 | 所需 RU |
---|---|---|---|
写入 | 100 | 5 | 500 |
读取 | 400 | 1 | 400 |
总计 RU/秒:500 + 400 = 900 小时成本:900/100 * 0.051元 = 0.459元 预计每月吞吐量成本(假设为31天):0.459元 * 24 * 31 = 341.50元
每月总成本
每月总成本 = 存储每月成本 + 每月吞吐量总成本 = 257.6 元 + 341.50 元 = 599.1 元
区域不同定价可能有所不同。 有关最新定价,请参阅定价页面。
后续步骤
接下来,可通过以下文章了解 Azure Cosmos DB 中的成本优化:
- 详细了解 Azure Cosmos DB 定价模型如何对客户而言更具经济效益
- 详细了解开发和测试优化
- 详细了解如何优化吞吐量成本
- 详细了解如何优化存储成本
- 详细了解如何优化读取和写入成本
- 详细了解如何优化查询成本
- 详细了解如何优化多区域 Azure Cosmos DB 帐户的成本
- 尝试为迁移到 Azure Cosmos DB 进行容量规划? 可以使用有关现有数据库群集的信息进行容量规划。
- 如果只知道现有数据库群集中的 vCore 和服务器数量,请阅读使用 vCore 或 vCPU 估算请求单位
- 若知道当前数据库工作负载的典型请求速率,请阅读使用 Azure Cosmos DB 容量计划工具估算请求单位