料金

Cloud Pub/Sub の料金は下記に基づいて計算されます。

  • メッセージの取り込みと配信
  • シーク関連メッセージのストレージ: スナップショットと保持された確認済みメッセージ

メッセージの取り込みと配信

2019 年 6 月 21 日までの料金表

データ量は、pull、push、パブリッシュの各オペレーションのメッセージ データと属性データを使用して計算されます。メッセージの取り込みと配信の料金は、月単位の送受信されたデータ量に応じて計算されます。

1 か月あたりのデータ量 TiB あたりの料金
最初の 10 GB $0.00
次の 50 TiB $60
次の 100 TiB $50
150 TiB 超 $40
米ドル以外の通貨でお支払いの場合は、Google Cloud Platform SKU に記載されている該当通貨での料金が適用されます。料金は TiB(240 バイト、約 1.01 兆バイト)単位です。

例: メッセージの取り込みと配信

ここでは、予想されるオペレーションの総費用について例をあげて説明します。たとえば、アプリケーションで 2 つのサブスクリプションがあるトピックに 1,024 KB のメッセージを 1 MiB/秒でパブリッシュするとします。サブスクライバーが常時稼働し、Cloud 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 となり、$60/TiB の階層が該当しますので料金は $444.36 になります。

請求対象となる最小データ量

リクエスト(メッセージではありません)ごとに請求対象となるデータ最小量は 1 KB のデータです。たとえば、100 個のパブリッシュ リクエストがあり、それぞれのリクエストに 500 バイトのメッセージがある場合、実際のデータ量は 50 KB になりますが、請求対象のデータ量は 1 KB/request x 100 requests = 100 KB になります。ただし、100 個すべてのメッセージが 1 つのパブリッシュ リクエストでパブリッシュされた場合、請求対象のデータ量は実際のデータ量(50 KB)に等しくなります。

プロジェクト間での請求

複数のプロジェクトで Cloud Pub/Sub を使用している場合、Cloud Pub/Sub の料金は、リクエストされたリソース(たとえば、サブスクリプション)を含むプロジェクトに課金されます。たとえば、プロジェクト A のサービス アカウントに、プロジェクト B(請求先アカウント B)のサブスクリプションに対するサブスクライバー アクセスが付与されているとします。この場合、サービス アカウント A がサブスクリプションから取得するデータの料金は請求先アカウント B に課金されます。サブスクリプションがプロジェクト A に含まれている場合は、サブスクリプションがプロジェクト B 内のトピックに関連付けられていても、サブスクリプションから取得されるデータの料金はアカウント A に課金されます。

2019 年 6 月以降のメッセージ配信の料金

メッセージのパブリッシュまたは配信の料金は TiB あたり $40 で、階層はありません。また、リージョン内の下りデータに対する料金が導入されました。インターネットの下り料金と GCP リージョン間でのインターネット配信の料金は、ゾーンの下りと Google サービスへの下りを除き、Compute Engine のネットワーク料金と同様です。Cloud Pub/Sub の使用に対するゾーンの下り料金は発生しません。Google サービスへの下りは下り料金の対象となります。たとえば、1 MiB のメッセージを us-west1 にパブリッシュし、europe-west1 のサブスクライバーに配信すると、2 つの SKU 間で合計 3 MiB の料金が課金されます。基本的なメッセージ配信で 2 MiB(パブリッシュと配信に 1 MiB ずつ)とアメリカ大陸から EMEA へのリージョン間のデータ配信で 1 MiB が課金対象になります。

この変更に対する備えとして、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;

シーク関連メッセージのストレージ

料金

以下の場合、メッセージのストレージ料金が $0.27/GiB/月のレートで請求されます。

  • シークを使用して確認済みメッセージを再処理できるようするために、サブスクリプションが確認済みメッセージを保持するように構成されている。この場合、保持される確認済みメッセージのストレージ料金が発生します。
  • サブスクリプションのスナップショットが作成されている。この場合、スナップショットの未確認メッセージが保存され、その分のメッセージのストレージ料金が発生します。

例: サブスクリプションでの確認済みメッセージの保持

ここでは、上記のメッセージ取り込みの例で 1 つのサブスクリプションを確認済みメッセージを保持するように構成した場合について考えます。

  • サブスクリプションのトピックでは安定的に 1 MiB/秒の速度でデータを受信します。
  • サブスクライバーはサブスクリプションのデータに対応します。通信速度は 1 MiB/秒で、新しいメッセージ バックログの量はごくわずかです。
  • サブスクリプションの確認済みメッセージの保持期間は 7 日間です。
  • 確認済みメッセージの量は、1MiB/second x 3600 seconds/hour x 24 hours/day = 86.4 GiB/day の割合で増加します。
  • 7 日後に、確認済みメッセージの保持期限が切れ始めます。保持された確認済みメッセージの総量は 7 days x 86.4 GiB/day = 605GiB となります。
この量のメッセージの月額ストレージ料金の合計は、約 605 GiB-month x $0.27/GiB-month = $163 となります。

例: スナップショット メッセージのストレージ料金

スナップショット メッセージのストレージ料金は、スナップショットのトピックに新たにパブリッシュされたメッセージの分の追加料金と、作成時に 1 回だけ発生する料金の合計額です。ここでは、確認済みメッセージを保持しているサブスクリプションのスナップショットについて考えます。スナップショットを作成したサブスクリプションには未確認メッセージのバックログが存在しないため、スナップショットの保持期間は、その前に削除されない限り 7 日間となります。最初の 1 分間にパブリッシュされたデータ(60 MiB)は 7 日間保持され、さらに次の 1 分間にパブリッシュされたデータが 7 日間保持されるというように繰り返されます。スナップショットの保持期限が切れると、バックログのサイズは 605 GiB になり、ストレージ使用量は 1/2 x 605 GiB x 7 days = 2118 GiB-days で、1 か月が 30 日とすると料金は 2118 GiB-days x (1/30 months/day) x $0.27/GiB-month = $19 となります。したがって、スナップショットの保持は確認済みメッセージの保持よりも費用対効果が高くなる傾向があります。

例: バックログが存在するサブスクリプションのスナップショット

スナップショットを作成する際に、サブスクリプションに未確認メッセージのバックログが存在する場合は、そのバックログを 7 日間保持する場合と同等の料金が 1 回だけ発生します。たとえば、サブスクリプションに未確認メッセージのバックログが 10 GiB あるとします。この場合、スナップショット作成時に 1 回だけ発生する料金は、10 GiB x 7 days / 30 days/month x 0.27/GiB-month = $0.63 です。

リソース ロケーションの制限への影響

メッセージ ストレージ ポリシーの適用により、GCP リージョンから外へのデータ送信が必要になる場合、リージョン下り(ネットワーク)料金が加算される可能性があります。たとえば、メッセージが以下のように処理されるケースが考えられます。

  • リージョン A でパブリッシュされる
  • リージョン B のストレージに転送される
  • リージョン C のサブスクライバー クライアントに配信される

この場合、次のような課金が発生します。

  • トピックを含むプロジェクトは、リージョン A からリージョン B へのネットワーク下りトラフィックに対して課金されます。
  • サブスクリプションを含むプロジェクトは、リージョン B からリージョン C へのネットワーク下りトラフィックに対して課金されます。

トピックを含むプロジェクトは、メッセージがパブリッシュされたリージョンとは異なるリージョンに保管される場合に(実際にリージョン B がリージョン A とは異なるので)下り料金が発生します。サブスクリプションを含むプロジェクトは、パブリッシュされたメッセージがサブスクライバー クライアントがあるリージョンとは異なるリージョンに保管される場合に(リージョン C がリージョン B とは異なるので)下り料金が発生します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Pub/Sub ドキュメント