Pub/Sub 价格
Pub/Sub 的费用包含三个组成部分:
- 发布和传送消息的吞吐量成本
- 与跨 Google Cloud 可用区或区域边界的吞吐量相关的数据传输费用
- 快照、主题保留的消息和订阅保留的确认消息的存储费用
Pub/Sub 服务费用基于使用情况(发布、传送或存储的字节数)收取。
相比之下,Pub/Sub Lite 的吞吐量和存储费用则基于预留容量。
两项服务的数据传输费用均基于使用量,而不是预留容量。
前提条件
阅读本文档之前,您需要了解 Pub/Sub 或 Pub/Sub Lite 的架构,以及每种产品的常用术语。如需了解详情,请参阅 Pub/Sub 架构。
价格示例
下表比较了北美地区示例负载的 Pub/Sub 和 Pub/Sub Lite 系统的月度费用。此示例假设消息存储期为 24 小时,Pub/Sub 精简版资源利用率为 50%,并且 Pub/Sub 采用的是拉取或推送订阅类型。其他类型的订阅可能会产生额外费用。
发布吞吐量(MiBps) | 订阅数量 | 可用区级精简版主题 | 区域级精简版主题 | Pub/Sub |
---|---|---|---|---|
10 | 1 | $169 | 608 美元 | $2,000 |
10 | 2 | $214 | 788 美元 | $3000 |
100 | 1 | $1688 | 6,075 美元 | $19760 |
100 | 2 | $2138 | 7,875 美元 | $29640 |
比较 Pub/Sub 和 Pub/Sub Lite 的费用时,请考虑两种产品之间的功能差异。如需了解详情,请参阅选择 Pub/Sub 或 Pub/Sub Lite。
Pub/Sub 服务价格
此部分的价格详情仅适用于 Pub/Sub,不适用于 Pub/Sub Lite。本部分包含以下主题:
吞吐量费用
吞吐量是指在一定时间间隔内向 Pub/Sub 主题写入的字节总数(发布吞吐量),或者从主题订阅中读取的字节总数(订阅吞吐量)。
每个日历月,结算账号的 Message Delivery Basic SKU 前 10 GiB 的吞吐量免费。之后,在所有 Google Cloud 区域的价格均为 每 TiB$40。但是,如果您使用的是导入主题或导出订阅,请阅读下一部分。
BigQuery 订阅的吞吐量费用
在所有 Google Cloud 区域中,BigQuery 订阅的费用为“每 TiB 50 美元”,用于从订阅读取(订阅吞吐量)并向 BigQuery 写入数据。不会产生额外的 BigQuery 数据注入费用。但是,其他类型的 BigQuery 费用(例如存储和数据提取费用)仍会产生。如需了解详情,请参阅 BigQuery 价格。 BigQuery 订阅吞吐量前 10 GiB 不免费。
Cloud Storage 订阅的吞吐量费用
在所有 Google Cloud 区域,Cloud Storage 订阅的费用为 每 TiB$50,用于从订阅中读取(订阅吞吐量)并向 Cloud Storage 写入数据。当 Cloud Storage 订阅将文件写入存储桶时,可能会产生其他类型的额外费用。其中包括存储、检索和复制等费用。如需了解详情,请参阅 Cloud Storage 价格。前 10 GiB 的 Cloud Storage 订阅吞吐量不是免费的。
导入主题的吞吐量费用
导入主题(适用于 Kinesis Data Streams)的费用为所有 Google Cloud 区域的 每 TiB 50 美元,用于将数据注入 Pub/Sub(发布吞吐量)。
导入主题(适用于 Cloud Storage)的费用为 每 TiB 80 美元,适用于将数据注入 Pub/Sub(发布吞吐量)的所有 Google Cloud 区域。
当导入主题将数据注入 Pub/Sub 主题时,可能会产生其他类型的特定于来源的额外费用。这些费用包括从 AWS 向 Kinesis Data Streams 源发送数据的费用、从 Cloud Storage 源发送数据的 Cloud Storage 操作费用等。前 10 GiB 的导入主题吞吐量不是免费的。
消息量计算
消息的数据量是以下消息属性的大小之和:
- 编码的消息正文字符串的字节数
- 每个特性的键和值的大小
- 时间戳(20 个字节)
message_id
字符串的大小- 其他可选字段的大小,例如与抢先体验版 API 和其他访问受限 API 相关联的字段。
每个请求最低按 1 KB 计算,与请求中的消息大小无关。因此,对于小于 1 KB 的消息,在单个请求中对多条此类消息进行批处理的费用会更低。
存储费用
订阅中未确认的消息最长可以免费存储一天。
在以下四种情况下,Pub/Sub 存储不免费。以下存储服务的费用为每月每 GiB $0.27:
- 主题配置为保留所有消息。在这种情况下,会对发布到主题的所有消息收取消息存储费用。
- 订阅配置为保留已确认的消息。在此情况下,会对保留的已确认消息收取存储费用。
- 创建了订阅的快照。在此情况下,会对快照的未确认消息收取消息存储费用。
订阅配置为保留未确认的消息超过 1 天,并且订阅积压消息的存在时间超过 1 天。在此情况下,会对发布后 1 天内保留的未确认消息收取存储费用。 请注意,对于已根据主题保留期限保留的未确认消息,不会产生额外费用。
假设某主题没有主题保留设置,而关联的订阅保留设置为默认的 7 天。 如果订阅者能够在发布后 1 天内处理消息,订阅所有者将不会被收取未确认消息的存储费用。但是,如果订阅者无法在前 24 小时内处理未确认的消息,则会针对发布后保留超过 1 天的未确认消息收取存储费用。
假设某主题的主题保留设置为 4 天,关联的订阅的保留设置为默认的 7 天。订阅所有者不会为在发布后 4 天内保留的未确认消息支付存储费用,因为这些消息已由主题保留。如果订阅者在发布 4 天后无法处理消息,订阅所有者将被额外收取 3 天的费用(除非订阅者能够在 7 天之前处理消息)。
注意:如果在创建快照时,订阅有积压的未确认消息,则会收取一次性费用,金额相当于将相应积压数据存储七天的费用。
保留单个订阅中已确认的消息为订阅所有者提供了最大的灵活性,但通常是最昂贵的存储机制。主题保留是费用最低的存储机制,因为针对主题保留的消息可以在附加到该主题的所有订阅上使用,而无需为每个订阅支付额外费用。如果这些消息已经通过主题保留功能保留,我们将不会向订阅所有者收取保留的未确认消息的费用。快照也可以是一种经济的选择,因为单个快照可以用于多个订阅。
请注意,如果主题保留设置发生了更改,未确认消息的费用也可能会发生变化。例如,如果主题所有者停用消息保留,订阅所有者可能会开始因未确认的消息而产生存储费用。
数据传输费用
不同 Google Cloud 区域之间的互联网数据传输和消息传送费用与 VPC 网络费率一致,但有以下例外:
- 使用 Pub/Sub 无需支付可用区数据传输费用。
- 流向 Google 产品的出站流量不能免除数据传输费用。
- 您无需为传输到 Pub/Sub 的数据付费。 例如,如果发布商位于不同的区域或可用区,您必须为源服务支付数据传输费用,但无需支付入站数据传输费用。同样,如果发布者从 Amazon Web Service (AWS) 或私有数据中心发布,则您无需向 Pub/Sub 支付数据传输费用。
每次消息跨越区域边界时,您都需要支付数据传输费用。如果您在一个区域内的多个订阅者与消息存储位置的地区不同,则您需要单独支付数据传输费用,以传送到每个订阅者。
由于消息存储政策而产生的数据传输费用
如果消息存储政策强制数据离开某 Google Cloud 区域,则可能会产生额外的区域数据传输费用。例如,假设有一条消息包含以下事件:
- 发布于 A 区域中
- 路由到 B 区域中加以存储
- 传送到 C 区域中的订阅者客户端
在这种情况下,结算情况如下所示:
- 将对包含主题的项目收取从 A 区域到 B 区域的数据传输费用。
- 将对包含订阅的项目收取从 B 区域到 C 区域的数据传输费用。
仅当所发布消息的存储区域与发布区域不同(即 B 与 A 实际上是两个不同的区域)时,才会对包含主题的项目收取数据传输费用。仅当所发布消息的存储区域与订阅者客户端所在的区域不同时,才会对包含订阅的项目收取数据传输费用(C 与 B 不同)。
过滤出的消息费用
Pub/Sub 会自动确认与过滤条件不匹配的消息,但您仍然会产生这些消息的吞吐量费用。过滤出的消息不会产生数据传输费用。
Pub/Sub 服务自动确认的消息中至少有 1000 字节不需要付费。消息传送费用以这些消息中的字节数为基础计算,与消息规模无关。
跨项目 Pub/Sub 计费
如果您在多个项目中使用 Pub/Sub,Pub/Sub 的费用会计入包含所请求资源的项目中:
- 发布费用计入包含主题的项目中。
- 订阅费用计入包含订阅的项目中。
例如,如果订阅在项目 A 中,则会对项目 A 收取从订阅中拉取数据的相关费用,即使该订阅关联的主题属于项目 B 也是如此。
如果项目 A 中的授权服务账号使用了项目 B 中某个订阅的消息,则会对项目 B 收取从订阅中拉取数据的相关费用。
Pub/Sub Lite 服务价格
以下价格详情仅适用于 Pub/Sub Lite,不适用于 Pub/Sub。除非另有说明,否则这些详细信息适用于区域 Lite 主题和区域 Lite 主题。其中包括以下各部分:
吞吐量费用
吞吐量是指在一定时间间隔内向 Pub/Sub Lite 主题写入的字节总数(发布吞吐量),或者从主题的订阅中读取的字节总数(订阅吞吐量)。
Pub/Sub Lite 的吞吐量费用是根据预配或预留的吞吐量容量收取的,而不是根据实际吞吐量 (MiBps) 或结算周期内的总字节数 (MiB/月) 收取的。吞吐量容量以容量单元为单位预配和计价。您可以使用精简版预留为同一区域中的一个或多个主题预配吞吐量容量。
下表显示了 Pub/Sub Lite 系统的吞吐量和存储费用。
精简版预留的吞吐量
精简版预留是一种在一个区域中的一个或多个主题之间预留和共享吞吐量容量的方式。区域级 Pub/Sub 精简版主题必须有精简版预留。
Lite 预留的吞吐量容量以容量单元为单位。您只能为预留配置整数容量单位。不同的操作需要不同的容量单元才能达到相应的吞吐量,如下表所示:
所需容量单位数 | 可用区级精简版主题 | 区域级精简版主题 |
---|---|---|
1 MiBps 的发布吞吐量 | 1 个容量单元 | 4 个容量单元 |
1 MiBps 的订阅吞吐量 | 0.5 个容量单位 | 2 个容量单元 |
一个预留中所有精简版主题的分区数量不得大于预留的容量单位数量。
计算使用预留的单个主题的吞吐量容量费用
下一部分可帮助您计算使用预留的精简版单个区域主题的吞吐量容量的费用:
- 主题类型 = 可用区级精简版主题
- 主题数量 = 1
- 分区数量 = 5
- 发布吞吐量峰值 = 5 MiBps
- 发布吞吐量所需的容量单元数 = 5
- 订阅吞吐量峰值 = 10 MiBps
- 订阅吞吐量所需的容量单元数 = 5
- 所需的总容量单元数 = 5+5 = 10
- 在北美使用 10 个容量单位的费用 = $45/月
要获得与包含 5 个分区的区域精简版主题相同的吞吐量,您需要一个容量单元为 40 的预留,其中 20 用于发布吞吐量,20 用于订阅吞吐量。
您可以随时更改预留中的容量单元数。 不过,您需要为最近 24 小时内预配的最大容量付费。例如,如果您在周一上午 10:00 将预留的容量从 40 个容量单元更改为 10 个容量单元,则您需要在周二上午 10:00 之前支付每小时 40 个容量单元的费用,在之后需要支付每小时 10 个容量单元的费用。
请注意,预留的容量可用于与预留在同一区域中的任何主题的发布和订阅吞吐量。如需详细了解预留,请参阅创建和管理精简版预留。
未使用精简版预留时的吞吐量
本部分仅适用于区域 Lite 主题。
您可以选择不使用预留,而是为单个主题预留发布和订阅吞吐量容量。在这种情况下,您需要为当前预留的容量付费,而不必为正常运行的 24 小时期间内的最高容量付费。
请注意,无预留的配置容量必须介于以下限制:
- 4 到 16 MiBps(相当于 4 到 16 个容量单元),以用于每个分区的发布。
- 4 到 32 MiBps(相当于 2 到 16 个容量单元),以用于每个分区的订阅。
计算单个主题的吞吐量容量费用(不含预留)
下一部分将帮助您计算不使用预留的精简版单区域主题的吞吐量容量费用:
- 主题类型 = 可用区级精简版主题
- 主题数量 = 1
- 分区数量 = 4
- 发布吞吐量峰值 = 16 MiBps
- 发布吞吐量所需的容量单元数 = 16
- 订阅吞吐量峰值 = 16 MiBps
- 订阅吞吐量所需的容量单元数 = 8
- 所需的总容量单元数 = 16+8 = 24
- 在北美地区,24 个容量单位每月费用 = $108
存储费用
与 Lite 吞吐量一样,您需要为主题的存储容量付费。 Pub/Sub Lite 按您在一个月内预配的最大存储量收费。每个分区必须至少有 30 GiB 的存储容量。
区域级精简版主题会将数据存储在一个区域内的两个可用区中,而可用区级精简版主题仅会将数据存储在一个可用区中。 区域 Lite 主题会为发布的每字节消息使用两字节的存储空间。因此,发布到区域级精简版主题的每个字节的存储费用是可用区级主题的两倍。
如需估算 Pub/Sub Lite 系统的存储容量,请参阅下列清单:
确定您需要存储消息的时间长度。
如需估算所需的总存储空间,请将每个分区的预期平均吞吐量乘以存储消息所需的时间长度。例如,如果要在区域 Lite 主题的 10 个分区中每秒发布 40 MiB 的消息并将消息保留一天,请预配 3375 GiB 的存储空间(相当于 40 MiBps * 每小时 3600 秒 * 一天 24 小时 * 1 GiB/1024 MiB)。在北美,存储费用为 135 美元(相当于 3375 GiB * 24 小时/天 * 30 天/月 * $0.04/GiB-月-区域)。对于区域级精简版主题,由于数据存储在两个可用区中,存储费用会翻倍,达到 270 美元。
考虑不均匀的键分布。
所有分区都分配了相同的存储容量。如果您希望某些分区具有比其他分区更大的卷,请为所有分区预配最大的分区所需的存储空间。
消息量计算
在计算吞吐量和存储空间所需的消息大小时,每条消息至少使用 256 字节。如果消息超过 256 字节,则消息的大小为以下各项之和:
- 编码的消息正文字符串的字节数
- 每个特性的键和值的字节数
- 排序键的字节数
- 事件时间戳(12 个字节)
数据传输费用
只有当您的订阅方位于与主题所在的区域或可用区不同时,才会产生 Pub/Sub Lite 数据传输费用。不同 Google Cloud 区域之间的互联网出站流量和消息传送费用与 VPC 网络费率一致,但有以下例外:
对于订阅者与主题位于同一区域的区域精简版主题,不收取区域数据传输费用。
流向 Google 产品的数据传输流量不能免除数据传输费用。
使用非美元货币付费
如果您使用非美元货币付费,请参阅 Google Cloud SKU 上以您的币种列出的价格。其中列出的是每 TiB(2^40 字节,约为 1.1 万亿字节)数据的价格。