請求レポートについて

このページでは、Firestore 請求レポートを理解するうえで有用なヒントとリソースを紹介します。このページでは課金に関する疑問について、次の一般的な原因を取り上げます。

  • アプリを使用すること以外に費用が発生する要因には、インポート オペレーション、エクスポート オペレーション、コンソールの使用などがあります。
  • アプリ内で、リアルタイム更新、NoOps 書き込み、クエリ オフセットによって、予想よりも速い速度で使用量が増加する可能性があります。
  • コンソールで使用状況ダッシュボードを使用する際には、ダッシュボードと請求レポート間の相違に留意してください。

使用量のインポートとエクスポート

請求レポートを分析する際に、インポートとエクスポートのオペレーションに関連する費用を確認してください。これらのオペレーションは、Firestore 課金に計上される読み取りと書き込みのオペレーションを実行します。データをインポートおよびエクスポートする頻度によっては、これらのオペレーションが課金対象のオペレーションの重要なソースになる可能性があります。

コンソールの使用状況ダッシュボードには、インポートとエクスポートのオペレーションの読み取りと書き込みは反映されません。インポートおよびエクスポートのオペレーションと関連費用は、次の方法で表示できます。

請求ラベル

エクスポートとインポートのオペレーションでは、読み取りと書き込みのオペレーションに goog-firestoremanaged:exportimport ラベルが適用されます。エクスポートとインポートのオペレーションに関連する費用を表示するには、Cloud Billing レポートのページで、このラベルを使用します。

フィルタ メニューから goog-firestoremanaged ラベルにアクセス。

最近のオペレーションを一覧表示する

コンソールまたは gcloud を使用して、最近のインポートとエクスポートのオペレーションを表示できます。

Google Cloud Console

Google Cloud Console の Firestore インポート / エクスポート ページで、最近のエクスポートとインポート オペレーションを一覧表示できます。

[インポート / エクスポート] ページに移動

gcloud

実行中および最近完了したすべてのエクスポート / インポート オペレーションを表示するには、operations list コマンドを使用します。

gcloud firestore operations list

管理オペレーションの監査ログ

Firestore は、エクスポート オペレーション、インポート オペレーション、インデックス登録オペレーションの監査ログを書き込みます。Firestore 監査ロギングの情報をご覧ください。

コンソールの使用

Firebase コンソールおよび Cloud コンソールで Firestore データビューアによって行われた読み取りオペレーションは、Firestore の使用量として課金されます。Firestore ページを開くか更新すると、コンソールにドキュメントが読み込まれ、ページに入力されます。Firestore ページが開かれている限り、コンソールはリアルタイム クエリを使用して表示ドキュメントとコレクションを更新します。

使用状況の内訳を確認する場合は、Firestore のオペレーションの別のソースとしてコンソールの使用状況を考慮に入れます。請求レポートでは、コンソールのトラフィックとアプリケーション トラフィックを区別する方法はありません。

課金対象のオペレーション

料金情報に加えて、次のようなオペレーションについてアプリを確認します。これらのオペレーションにより、想定よりも速い速度で請求料金が増加する可能性があります。

  • リアルタイム アップデート

    クエリの結果をリッスンする場合、結果セット内のドキュメントが追加または更新されるたびに、1 回の読み取りとして課金されます。また、ドキュメントに変更があったために結果セットから除外される場合も、1 回の読み取りとして課金されます(これとは対照的に、ドキュメントが削除される場合、これは読み取りとして課金されません)。

    リアルタイム リスナーの範囲を確認します。非常に広範なクエリの結果をリッスンしたり、コレクション全体をリッスンしたりすると、必要以上に多くの読み取りオペレーションが発生する可能性があります。

  • NoOps の書き込みと NoOps の削除

    NoOps とは、ドキュメントを変更しないオペレーションです。ただし、NoOps の書き込みと削除には料金が発生します。

    削除オペレーションの場合は、所定のドキュメントが存在しない場合でも料金が発生します。

    書き込みオペレーションでオペレーションが変更されない場合は、引き続き料金が発生します。たとえば、ドキュメント フィールドで同じフィールド値を更新するオペレーションには料金が発生します。

  • クエリ オフセット

    クエリ オフセットでは、指定した数のクエリ結果がスキップされますが、スキップされた結果も課金対象となります。このような追加費用が発生することから、オフセットの代わりにカーソルを使用してください。

使用状況ダッシュボードの相違

Firebase コンソールと Cloud Console の Firestore 使用状況ダッシュボードには、使用状況の予想が表示されます。これらは使用量の急増を特定するのに役立ちます。ただし、ダッシュボードには、課金対象のオペレーションは正確には表示されません。課金される使用量はこれよりも多くなる可能性があります。一致しない場合は、請求レポートが使用状況ダッシュボードよりも優先されます。

使用状況ダッシュボードと請求対象の使用量の間に相違が生じるオペレーションには、次のものがあります。

  • インポートとエクスポートのオペレーション。これらのオペレーションで行われた読み取りと書き込みは、使用状況ダッシュボードに表示されません。
  • NoOps の検証のみの書き込み。ドキュメントの有無のみを検証する書き込みは、課金される読み取りオペレーションに反映されますが、書き込み使用状況ダッシュボードにはそれぞれ「UPDATE_NOOP」と「DELETE_NOOP」と表示されます。
  • NoOps の書き込み。フィールド値を変更しない更新や、削除されたドキュメントへの書き込みなど、データベースの変更につながらないオペレーションは、使用状況ダッシュボードに「UPDATE_NOOP」や「DELETE_NOOP」として表示される場合があります。「NOOP」と表示される場合でも、課金対象のオペレーションになります。
  • 折りたたまれた書き込み。同じドキュメントに複数の書き込みを連続して行う場合、使用状況ダッシュボードでは複数の書き込みがまとめて折りたたまれて 1 回としてカウントされる場合があります。使用量を請求する場合、各書き込みが別々にカウントされます。

    また、使用状況ダッシュボードは、サーバーのタイムスタンプ、数値の増分、配列ユニオン オペレーションなどのフィールド変換の場合も書き込みを折りたたみます。フィールド変換の場合、使用状況ダッシュボードは複数のオペレーションを 1 回のオペレーションとしてカウントします。

  • 0 件の結果を返すクエリ。0 件の結果を返すクエリについては、1 回の読み取りオペレーションに対する費用が発生します。この使用量は課金の対象になりますが、使用状況ダッシュボードには表示されません。
  • インデックス エントリの読み取りの読み取りオペレーション。この使用量は課金の対象になりますが、使用状況ダッシュボードには表示されません。 たとえば、集計クエリはインデックス エントリの読み取りに対して課金されますが、この使用量は使用状況ダッシュボードには表示されません。

次のステップ

請求レポートについて詳しくは、Cloud Billing のサポートまでお問い合わせください。