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 | $3,000 |
100 | 1 | $1,688 | $6,075 | $19,760 |
100 | 2 | $2,138 | $7,875 | $29,640 |
比较 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 订阅的吞吐量费用
在所有地区,Cloud Storage 订阅的费用为 每 TiB$50,用于从订阅中读取(订阅吞吐量)并向 Cloud Storage 写入数据。 Google Cloud当 Cloud Storage 订阅将文件写入存储分区时,可能会产生其他类型的额外费用。其中包括存储、检索和复制等费用。如需了解详情,请参阅 Cloud Storage 价格。Cloud Storage 订阅吞吐量前 10 GiB 不是免费的。
导入主题的吞吐量费用
在所有区域中,导入主题(适用于 Kinesis Data Streams)的成本为“每个 TiB 50 美元”,用于将数据注入 Pub/Sub(发布吞吐量)。 Google Cloud
将主题(适用于 Cloud Storage、Azure Event Hubs、AWS MSK 或 Confluent Cloud)导入到所有 Google Cloud 区域的 Pub/Sub 中(发布吞吐量)的费用为 每 TiB 80 美元。
当导入主题将数据注入 Pub/Sub 主题时,可能会产生其他类型的特定于来源的额外费用。这些费用包括从 AWS 向 Kinesis Data Streams 源发送数据的费用、从 Cloud Storage 源发送数据的 Cloud Storage 操作费用等。前 10 GiB 的导入主题吞吐量不是免费的。
消息量计算
消息的数据量是以下消息属性的大小之和:
- 编码的消息正文字符串的字节数
- 每个特性的键和值的大小
- 时间戳(20 个字节)
message_id
字符串的大小- 其他可选字段的大小,例如与抢先体验版 API 和其他访问受限 API 相关联的字段。
每个请求最低按 1 KB 计算,与请求中的消息大小无关。因此,对于小于 1 KB 的消息,在单个请求中对多条此类消息进行批处理的费用会更低。
存储费用
以下存储空间将按每月每 GiB $0.27 的费用收取:
- 主题配置为保留消息。在这种情况下,会对发布到主题的所有消息收取消息存储费用,但不超过所配置的消息保留时长。
- 订阅配置为保留已确认的消息。在此情况下,会对保留的已确认消息收取存储费用。
- 创建了订阅的快照。在此情况下,会对快照保留的消息收取消息存储费用。 此外,如果在创建快照时,订阅有积压的未确认消息,则会收取一次性费用,金额相当于将相应积压数据存储七天的费用。
某个订阅的消息保留时长配置为超过 1 天,且有超过 1 天历史记录的积压。在此情况下,会对存储超过 1 天的未确认消息收取存储费用。 对于已由订阅的主题保留的未确认消息(如果订阅的主题配置为保留消息),不会产生额外费用。
假设有一个未启用消息保留的主题,以及一个关联的订阅,其消息保留时长设置为默认的 7 天。 如果订阅者能够在发布后 1 天内处理消息,订阅所有者就不会因未确认的消息而被收取存储费用。但是,如果订阅方无法在前 24 小时内处理消息,则会针对在发布后保留超过 1 天的未确认消息收取存储费用。
假设一个主题的消息保留时长设置为 4 天,而关联订阅的消息保留时长设置为默认的 7 天。对于未确认的消息,如果保留时间少于 4 天,订阅所有者无需支付存储费用,因为这些消息已由主题保留。如果订阅者在消息发布 4 天后仍无法处理这些消息,则会向订阅方案所有者收取额外的 3 天费用。
保留单个订阅中已确认的消息为订阅所有者提供了最大的灵活性,但通常是最昂贵的存储机制。主题消息保留是费用最低的存储机制,因为针对主题保留的消息可以在附加到该主题的所有订阅上使用,而无需为每个订阅支付额外费用。如果这些消息已由主题保留,Pub/Sub 不会向订阅所有者收取保留未确认消息的费用。快照也可以是一种经济的选择,因为单个快照可以用于多个订阅。
请注意,如果主题的消息保留设置发生了更改,未确认消息的费用也可能会发生变化。例如,如果主题所有者停用消息保留,订阅者所有者可能会开始产生未确认消息的存储费用。
单条消息转换费用
UDF SMT 费用代表使用 Pub/Sub 主题 SMT 或 Pub/Sub 订阅 SMT 处理的数据总量。数据处理费用取决于输入消息大小和输出消息大小中的较大者。例如,如果 UDF SMT 将 5MB 的消息转换为 8MB 的消息,则数据处理费用将基于 8MB 计算。
在所有 Google Cloud 区域中,价格为每 TiB 40 美元。
数据传输费用
不同 Google Cloud 区域之间的互联网数据传输和消息传送费用与 VPC 网络费率一致,但有以下例外:
使用 Pub/Sub 无需支付可用区数据传输费用。
流向 Google 产品的出站流量不能免除数据传输费用。
您无需为传输到 Pub/Sub 的数据付费。 例如,如果发布者位于不同的区域或可用区,您必须为源服务支付数据传输费用,但无需支付入站数据传输费用。同样,如果发布者从 Amazon Web Service (AWS) 或私有数据中心发布,则您无需向 Pub/Sub 支付数据传输费用。
如果您使用导出订阅将数据写入目标(例如多区域 BigQuery 表、双区域或多区域 Cloud Storage 存储分区),数据传输费用仅在以下情况下才会产生:
在目标资源的区域之外发布:如果发布者将数据发送到多区域或双区域资源所涵盖区域以外的区域,则所有数据都需要支付数据传输费用。
优化路由:如果发布者将数据发送到目标资源所在的区域,则数据传输费用仅适用于 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 个分区的区域 Lite 主题相同的吞吐量,您需要一个容量单元为 40 的预留,其中 20 个用于发布吞吐量,20 个用于订阅吞吐量。
您可以随时更改预留的容量单元数。 不过,您需要为最近 24 小时内预配的最大容量付费。例如,如果您在周一上午 10 点将预留的容量从 40 个容量单元更改为 10 个容量单元,那么您需要在周二上午 10 点之前支付每小时 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 数据传输费用。不同区域之间的互联网出站流量和消息传送费用与 VPC 网络费率一致,但有以下例外: Google Cloud
对于订阅者与主题位于同一区域的区域 Lite 主题,不收取可用区数据传输费用。
流向 Google 产品的数据传输流量不能免除数据传输费用。
使用非美元货币付费
如果您使用非美元货币付费,请参阅 Google Cloud SKU 上以您的币种列出的价格。 其中列出的是每 TiB(2^40 字节,约为 1.1 万亿字节)数据的价格。