了解 Azure Cosmos DB 帐单

适用对象: 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 元(500,000 * 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/秒的吞吐量,则预配的总吞吐量将为 1,200 RU/秒。

  • 需支付 1,200/100 x 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 小时 x 31 天),如果 500 小时的预配吞吐量为 1,200 RU/秒,其余 244 小时的预配吞吐量为 22,200 RU/秒,则月度帐单将显示:500 x 0.612 元/小时 + 244 x 11.322 元/小时 =  3068.57 元/月。

计费示例:具有共享(预配)吞吐量模式的容器

  • 如果在“中国东部 2”区域创建包含两个 Azure Cosmos 数据库(其中含有一组在数据库级别共享吞吐量的容器)的 Azure Cosmos DB 帐户,并且这两个容器分别预配了 50K RU/秒和 70K RU/秒的吞吐量,则预配的总吞吐量将为 120K RU/秒。

  • 需支付 1200 x 0.051 元 = 61.2 元/小时。

  • 如果需要更改吞吐量,且每个数据库的预配吞吐量增加了 10K RU/秒,同时还向第一个数据库添加了新容器,共享吞吐量数据库的专用吞吐量模式为 15K RU /秒,则预配的总体容量为 155K RU/秒(60K RU/秒 + 80K RU/秒 + 15K RU/秒)。

  • 此时需支付:1,550 x 0.051 元 = 79.05 元/小时。

  • 假设一个月为 744 小时,如果 300 小时的预配吞吐量为 120,000 RU/秒,其余 444 小时的预配吞吐量为 155,000 RU/秒,则月度帐单将显示:300 x 61.2 元/小时 + 444 x 79.05 元/小时 = 18,360 元 + 35,098.2  元 = 53,458.2 元/月。

异地复制的计费示例

可随时向 Azure Cosmos 数据库帐户添加/删除中国 Azure 区域。 对于为不同 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 的数据。 假定向 Azure Cosmos DB 帐户添加 3 个区域(中国东部、中国北部 2 和中国东部 2),每个区域都具有相同的存储和吞吐量。 则月度帐单为(假定一个月 31 天)。 帐单情况如下:

项目 使用情况(月) 费率 每月成本
中国北部容器的吞吐量帐单 10K RU/秒 * 24 * 31 每 100 RU/秒每小时 0.051 元 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 1,932 元
总计 17,753.6 元

此外,假定每月从中国北部的容器中传出 100 GB 数据,将数据复制到中国东部、中国北部 2 和中国东部 2。 则需要按数据传输速率为导出部分付费。

计费示例:多区域 Azure Cosmos DB 帐户,多个区域写入

假定创建位于中国北部的 Azure Cosmos 容器。 创建容器时,指定的吞吐量为 10K RU/秒,本月可存储 1 TB 的数据。 假定添加 3 个区域(中国东部、中国北部 2 和中国东部 2),每个区域的存储和吞吐量都相同,并且你希望能够写入到与 Azure Cosmos DB 帐户关联的所有区域中的容器。 则月度帐单(假定一个月 31 天)情况如下:

项目 使用情况(月) 费率 每月成本
中国北部容器的吞吐量帐单(所有区域都可写入) 10K RU/秒 * 24 * 31 每 100 RU/秒每小时 0.102 元 7589 元
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 小时]:

  • 创建了包含 3 个区域(中国北部、中国东部和中国北部 2)的 Azure Cosmos DB 帐户,其中的所有区域都可写入

  • 创建共享吞吐量为 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 小时内总预配吞吐量的变化情况:

Real life example

将按以下方式计算月度总帐单(假定一个月为 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 个其他区域的吞吐量帐单:中国东部、中国北部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
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
3,140.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/s。
  • 在第 11 个小时,你需要支付的有效吞吐量为 1600 RU/s - 1000 RU/s = 600 RU/s,因为这是该小时内最高的 RU/s。 该小时内的吞吐量为 6 个单位的 100 RU/s,因此总吞吐量成本为 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/s 成本为: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 中的成本优化: