定價

Pub/Sub 服務費用的計算依據如下:

  • 訊息擷取與傳送
  • 搜尋功能有關的訊息儲存作業:快照與保留的已確認訊息

訊息擷取與傳送

傳送訊息的費用

系統會根據擷取和傳送訊息作業每月所傳輸的資料量計費,前 10 GB 的用量免費。超出免費用量之後,擷取或傳送訊息的費用為每 TiB $40 美元。

訊息使用的資料量為下列各項的總和:

  • 編碼訊息內文字串的位元組數
  • 每個屬性的鍵值大小及屬性值
  • 計為 20 個位元組的時間戳記
  • message_id 字串的大小
  • 額外的選用欄位,像是與搶先體驗內容相關聯的欄位,或與限制存取 API 相關聯的欄位

無論訊息大小為何,系統會以至少 1,000 個位元組來評估每個發布、推送或提取要求。也就是說,如果訊息小於 1000 個位元組,在單一要求內批次處理多則訊息較為經濟實惠。

您僅須針對發布要求和使用提取、streamingPull 或推送作業傳遞的資料支付擷取和傳送費用。其他作業完全免費。

如果您使用美元以外的貨幣付款,系統將按照 Google Cloud SKU 頁面上列出的相應貨幣價格計費。費用計算單位為 TiB (240 個位元組,約為 1.01 兆位元組)。

資料地區輸出費

GCP 地區之間的網際網路輸出及訊息傳送費用,與 Compute Engine 網路費率相同,但下列狀況除外:

  • 使用 Pub/Sub 無須支付區域輸出費。
  • 輸出至 Google 產品無法免除輸出費。

舉例來說,一則 1 MiB 的訊息在 us-west1 中發布並傳送給位於 europe-west1 的訂閱者,這項作業會產生兩個不同 SKU 的費用:

  • 2 MiB 的「訊息傳送基本費用」(1 MiB 的發布及傳送)
  • 1 MiB 的「由美洲傳送至 EMEA 地區間資料費用」

如要瞭解用量,請將帳單資料匯出至 BigQuery。您為帳單帳戶設定匯出後,就可使用下列查詢瞭解自己的使用情形:

SELECT TIMESTAMP_TRUNC(usage_start_time, day) as usage_date,
  sku.description,
  usage.unit,
  sum(usage.amount) as egress_volume
FROM `BILLING_EXPORT_TABLE`
WHERE
  _PARTITIONTIME >= TIMESTAMP("2019-01-01")
  AND service.description = "Cloud Pub/Sub"
  AND (sku.description like "Internet data%"
      OR sku.description like "Inter-region data%")
GROUP BY usage_date, sku.description, usage.unit;

示例:擷取與傳送訊息

為了說明可能的整體作業成本,我們假設有一個應用程式以每秒 1 MiB 的速率,發布 1024 KB 的訊息至有兩個訂閱項目的主題。假定訂閱者能夠應付這樣的速率:Pub/Sub 以每秒 1 MiB 的速率進行擷取,以每秒 2 MiB 的速率進行傳送,總資料傳輸速率為每秒 3 MiB。一個月 (30 日) 期間的總資料用量為 3 MiB/second x 3600 seconds/hour x 24 hours/day x 30 days/month x 1 month/(2^20 MiB/TiB) = 7.416 TiB。減去前面 10 GB (免費) 後,資料用量為 7.406 TiB,落在每 TiB $40 美元的方案範圍,因此需支付 $296.24 美元。

跨專案計費

如果您跨專案使用 Pub/Sub,則 Pub/Sub 費用將計入包含所要求資源的專案:

  • 發布費用將計入包含主題的專案。
  • 訂閱費用將計入包含訂閱項目的專案。

舉例來說,如果訂閱項目存在於「A」專案中,則從該訂閱項目提取資料的費用將會計入「A」專案,即使該訂閱項目附加於「B」專案中的某個主題。

如果「A」專案中的某個授權服務帳戶消費了來自「B」專案中某個訂閱項目的訊息,則從該訂閱項目提取資料的費用將會計入「B」專案。

定價

如為下列情況,訊息儲存費為每月每 GiB $0.27 美元:

  • 訂閱項目設為保留已確認的訊息,以利用搜尋功能重新處理訊息。在這種情況下,會針對保留的已確認訊息收取儲存費。
  • 建立訂閱項目的快照。在這種情況下,會針對儲存快照的未確認訊息收取訊息儲存費。如果訂閱項目在快照建立時有待處理的未確認訊息,則會收取一次性費用,金額相當於儲存待處理工作七天的費用。

相較於保留所有已確認的訊息,使用快照來保留用於回覆的訊息,可能更為經濟實惠,因為單一快照可以在多個訂閱項目中使用。快照的計費資料量通常不大,資料量會隨著快照的存在時間慢慢增加。設為保留已確認訊息的訂閱項目,會保留固定一段時間的訊息資料 (穩定狀態下),但可能更加便利。

示例:保留已確認訊息的訂閱項目

假設主題具有一個訂閱項目和下列特性: - 這個主題以每秒 1 MiB 的穩定速率收到資料。- 訂閱者跟上訂閱項目資料傳輸速率,以每秒 1 MiB 的速率使用資料,而新的訊息待處理工作可忽略不計。- 訂閱項目已設為將已確認訊息保留 7 天。

在這項設定中,已確認訊息量的成長情形為:1 MiB/second x 3600 seconds/hour x 24 hours/day = 86.4 GiB/day

7 天後,保留的已確認訊息開始過期,儲存的已確認訊息總量達到穩定值:7 days x 86.4 GiB/day = 605 GiB。儲存這些訊息量的總月費約為 605 GiB-month x $0.27/GiB-month = $163

示例:快照訊息儲存費

快照訊息儲存費包含發布至快照主題訊息的增量費用,以及建立時的ㄧ次性費用。以保留已確認訊息的訂閱項目快照為例:除非提前刪除快照,否則快照的生命週期為七天,因為用於建立快照的訂閱項目並沒有待處理的未確認訊息。第一分鐘發布的資料 (60 MiB) 會儲存 7 天又 1 分鐘,第二分鐘發布的資料會儲存 7 天又 2 分鐘,依此類推。在快照過期時,這種情況產生的待處理資料大小為 605 GiB,總計使用 1/2 x 605 GiB x 7 days = 2118 GiB-days 的儲存空間,一個月 (30 日) 費用則為 2118 GiB-days x (1/30 months/day) x $0.27/GiB-month = $19。因此,快照可能比保留已確認訊息更具成本效益。

示例:含待處理工作的訂閱項目快照

如果訂閱項目在快照建立時有待處理的未確認訊息,則會收取一次性費用,金額相當於儲存待處理工作整整七天的費用。舉例來說,假設訂閱項目包含 10 GiB 未確認訊息的待處理工作,在建立快照時收取的一次性費用為 10 GiB x 7 days / 30 days/month x 0.27/GiB-month = $0.63

資源位置限制的影響

如果訊息儲存空間政策強制要求資料離開某個 Google Cloud 地區,可能會導致地區輸出 (網路) 費增加。假設訊息經歷下列程序:

  • 在「A」地區發布
  • 轉送至「B」地區儲存
  • 傳送至位於「C」地區的訂閱者用戶端

在這種情況下:

  • 系統會向包含主題的專案收取從「A」地區輸出至「B」地區的網路費。
  • 系統會向包含訂閱項目的專案收取從「B」地區輸出至「C」地區的費用。

如果已發布訊息的儲存地區不同於該訊息的發布地區,系統才會向包含主題的專案收取輸出費 (也就是「B」和「A」實際上是兩個不同的地區);只有在已發布訊息的儲存地區不同於訂閱者用戶端的所在地區時 (即「C」和「B」為不同地區),系統才會向包含訂閱項目的專案收取輸出費。