Cloud Cost Sense

Google Cloud Pub/Sub の費用:throughput、保持、リージョン転送

Publish・delivery byte、subscription 数、request batching、message retention、リージョン間 data transfer から Pub/Sub の費用を見積もります。

Publish と delivery の throughput を分けて計算する

Pub/Sub は topic に publish した byte と各 subscription から delivery した byte に課金します。Encoded message size、attribute、月間 message 数、各 message を受け取る subscription 数を整理してください。一つの stream を三つの subscription に届けると publish 経路は一つ、delivery 経路は三つになるため、topic 数より subscriber fan-out が費用を左右する場合があります。

Pub/Sub は message が小さくても publish、push、pull request ごとに最低 1,000 byte を算定します。Latency 要件が許せば小さな message を batch し、payload だけでなく attribute も含めます。変わり得る単価を固定せず、公式の最新料金ページで rate と無料枠を確認してください。

Backlog、replay、retention storage を加える

Subscriber が通常 message を acknowledge する時間と、障害中の最大 backlog を見積もります。Topic retention、acknowledge 済み message の保持、snapshot、含まれる期間を超えた未確認 message には storage 料金が発生し得ます。Retention の設定期間そのものを平均保存量とせず、backlog と保持パターンから byte-hour を計算します。

Topic retention は接続されたすべての subscription の replay に使えますが、subscription ごとに acknowledge 済み message を保持すると保存が重複します。必要な recovery point だけを選び、古い snapshot を削除し、最も古い未確認 message の age を監視してください。Redelivery は処理も繰り返すため、consumer を idempotent にして acknowledgement を調整します。

リージョン、filter、downstream 費用をモデル化する

Publisher、message の保存場所、subscriber の region を記録します。Message が region 境界を越えるたびに data transfer 料金が発生する場合があり、複数の遠隔 subscriber への delivery は経路ごとに課金されます。信頼性と data residency が許せば producer と consumer を互換性のある場所に置き、message storage policy を確認してください。

Filter で除外された message にも throughput 料金がかかるため、広い stream を filter の多い subscription に送るより upstream routing が安い場合があります。Subscriber compute、logging、retry、dead-letter 処理、BigQuery や Cloud Storage など destination の費用も加えます。通常、fan-out 増加、consumer 遅延のケースを比較してください。

Workflow 費用に Secret Manager の rotation notification を含める