請求レポートについて理解する

このページでは、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 回の読み取りとして課金されます。また、ドキュメントに変更があったために結果セットから除外される場合も、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 のサポートまでお問い合わせください。