Firestore の料金

このドキュメントでは、Firestore の料金の詳細について説明します。

米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。

料金の概要

Firestore を使用すると、以下の項目に対し課金されます。

  • 読み取り、書き込み、削除を行うドキュメントの数
  • 集約クエリにより照合されたインデックス エントリの数。クエリにより照合されたインデックス エントリのバッチ(1,000 個まで)ごとに 1 回のドキュメントの読み取りとして課金されます。
  • データベースにより使用されるストレージの容量(メタデータとインデックスのオーバーヘッドを含む)。
  • ネットワーク帯域幅の使用量

ストレージと帯域幅の使用量はギビバイト(GiB)単位で計算されます(1 GiB は 230 バイト)。課金はすべて日単位で発生します。

この後の各セクションでは、Firestore の使用に伴う請求の仕組みについて詳しく説明します。

無料の割り当て

Firestore では、(default) データベースを無料で使い始められるように、無料の割り当てが用意されています。無料の割り当ての容量は以下のとおりです。 割り当てがさらに必要な場合は、Google Cloud プロジェクトに対する課金を有効にする必要があります。

割り当ては日単位で適用され、太平洋時間の午前 0 時頃にリセットされます。

無料割り当ての対象となるのは (default) データベースのみです。

無料枠 割り当て
保存データ 1 GiB
ドキュメントの読み取り 50,000/日
ドキュメントの書き込み 20,000/日
ドキュメントの削除 20,000/日
送信データ転送 10 GiB/月

次のオペレーションと機能には、無料の使用量は含まれていません。次の機能を使用するには、課金を有効にする必要があります。

  • 名前付き(デフォルト以外の)データベースの使用
  • TTL の削除
  • PITR データ
  • データのバックアップ
  • 復元オペレーション

これらの機能に対する課金の詳細については、ストレージ料金をご覧ください。

ロケーション別料金

次の表は、Firestore の利用ロケーションごとに、読み取り、書き込み、削除、保存にかかる料金を示しています。

米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。

名前付きデータベースの無料割り当てなし

名前付き(デフォルト以外)のデータベースを作成するには、課金を有効にする必要があります。

名前付きデータベースの作成や削除に追加料金はかかりませんが、これらのデータベースは無料の割り当ての対象にはなりません。代わりに、これらの名前付きデータベースの使用量に対して課金されます。

読み取り、書き込み、削除

Firestore で実行するドキュメントの読み込み、書き込み、削除のオペレーションごとに課金が発生します。

書き込みと削除の料金はシンプルです。書き込みの場合、set オペレーションまたは update オペレーションを実行するたびに書き込み 1 件としてカウントされます。

読み取りの課金については注意すべき点があります。以下のセクションでは、これらの点について詳しく説明します。

集約クエリ

count()sum()avg()などの集約クエリでは、クエリにより照合されたインデックス エントリのバッチ(1,000 個まで)ごとに 1 回のドキュメントの読み取りとして課金されます。照合するインデックス エントリが 0 個の集約クエリでも、1 回のドキュメントの読み取りの最低料金が発生します。

たとえば、0~1,000 個のインデックス エントリを照合する count() オペレーションは、1 回のドキュメントの読み取りとして課金されます。1,500 個のインデックス エントリを照合する 1 回の count() オペレーションは、2 回のドキュメントの読み取りとして課金されます。

クエリ結果をリッスンする

Firestore ではクエリの結果をリッスンでき、クエリの結果が変化した時点でリアルタイムの更新を取得できます。

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

モバイル SDK とウェブ SDK のリスナーに対する課金は、オフラインの永続性が有効かどうかによっても異なります。

  • オフラインの永続性が有効で、リスナーが 30 分以上切断された場合(たとえばユーザーがオフラインになった場合)、新しいクエリを発行した場合と同様に読み取り料金が課金されます。

  • オフラインの永続性が無効になっている場合は、リスナーが切断されて再接続するたびに、新しいクエリを発行した場合と同様に読み取り料金が課金されます。

大きな結果セットを管理する

Firestore には、多数の結果を返すクエリを管理する際に役立ついくつかの機能があります。

  • カーソル。長期実行クエリを再開できます。
  • ページトークン。クエリ結果のページを設定できます。
  • 上限。取得する結果の数を指定します。
  • オフセット。一定数のドキュメントをスキップできます。

カーソル、ページトークン、および上限を使用する場合、追加コストは発生しません。これらの機能は実際に必要なドキュメントだけを読み取るので、コストを節約できます。

一方、オフセットを含むクエリを送信すると、スキップされるドキュメントごとに読み取り料金が課金されます。たとえば、クエリで 10 件分のオフセットを使用している場合、このクエリが 1 つのドキュメントを返すと、11 回の読み取りとして課金されます。このような追加コストが発生することから、可能な場合は常にオフセットではなくカーソルを使用してください。

ドキュメントの読み取り以外のクエリ

コレクション ID リストのリクエストなど、ドキュメントの読み取り以外のクエリは 1 回のドキュメント読み取りとして課金されます。完全な結果セットを取得するために複数のリクエストが必要な場合(ページ分けを使用している場合など)、リクエストごとに 1 回ずつ課金されます。

クエリの最小費用

クエリが結果を返さない場合でも、実行するクエリごとに 1 回の読み取り分の最小費用が発生します。

Firestore セキュリティ ルール

モバイル ライブラリおよびウェブ クライアント ライブラリで、Firestore セキュリティ ルールexists()get()getAfter() を使用して 1 つ以上のドキュメントをデータベースから読み取ると、以下のように追加の読み取り料金が課金されます。

  • Firestore セキュリティ ルールを評価するために必要な読み取りに対する課金が発生します。

    たとえば、ルールで 3 つのドキュメントを参照しているが、Firestore がルールを評価するために読み取る必要があるドキュメントが 2 つだけの場合、2 回の従属ドキュメントの読み取りに対する課金が発生します。

    ルールで従属ドキュメントを複数回参照している場合でも、従属ドキュメントごとに 1 回の読み取りとしてのみ課金されます。

  • ルールの評価は、リクエストごとに 1 回のみ課金されます。

    その結果、ドキュメントを 1 つずつ読み取るよりも複数ドキュメントを一度に読み取る方が、必要となるリクエスト数が少なくなり、最終的なコストが低くなる可能性があります。

  • クエリの結果をリッスンする場合、以下のすべての状況においてルール評価に対する課金が発生します。

    • クエリを発行する場合。
    • クエリ結果の更新ごと。
    • ユーザーのデバイスがオフラインになり、その後オンラインになる場合。
    • ルールを更新する場合。
    • ルールで従属ドキュメントを更新する場合。

データベース ストレージ サイズ

Firestore に保存するデータの容量(ストレージ オーバーヘッドを含む)に対して課金されます。オーバーヘッドの容量には、メタデータ、自動インデックス、および複合インデックスが含まれます。

Firestore に保存されている各ドキュメントには、次のメタデータが必要です。

  • ドキュメント ID(コレクション ID とドキュメント名を含む)。
  • 各フィールドの名前と値。Firestore はスキーマレスなので、ドキュメント内の各フィールドの名前とフィールド値を一緒に保存しておく必要があります。
  • ドキュメントを参照するすべての単一フィールドと複合インデックス。各インデックス エントリには、コレクション ID、任意の数のフィールド値(インデックスの定義によって異なる)、ドキュメント名が含まれます。

ストレージ費用は GiB/月単位で、毎日計算されます。Firestore では、データベース サイズが毎日測定されます。サンプル ポイントの1か月平均をとってデータベースのストレージ サイズを計算します。この平均値にストレージの単価(GiB-月)を掛けます。

Firestore ストレージの計算方法については、ストレージ サイズの計算をご覧ください。

PITR データ

PITR を有効にすると、PITR データのストレージに対して課金されます。ほとんどのお客様は、PiTR データ ストレージの全体的な費用がデータベースのストレージ費用と同程度になります。

PITR のストレージ費用は GiB/月単位で、毎日計算されます。Firestore では、データベース サイズが毎日測定されます。サンプル ポイントの1か月平均をとってデータベースのストレージ サイズを計算します。この平均値に PITR の単価(GiB-月)を掛けます。

たとえば、1 か月間のデータベースの平均サイズが 1 GiB で、PITR が 1 か月間有効になっている場合、課金対象の PITR データサイズも 1 GiB になります。

最低請求金額: PITR を有効にしてから 1 日以内に無効にしても、最大 1 日の PITR ストレージ料金が請求されることがあります。

データのバックアップと復元オペレーション

バックアップを有効にすると、データベース バックアップのストレージに対して課金されます。バックアップのストレージ サイズは、バックアップを作成したときのデータベースのストレージ サイズと同じです。

バックアップのストレージ費用は GiB/月単位で示されます。各バックアップが保持される日数も、1 か月平均をとって計算されます。各バックアップの費用は、バックアップのストレージ サイズにバックアップが保持されている月の割合を掛け、それに単価を掛けて算出されます。

復元オペレーションを実行すると、Firestore で復元オペレーション用のバックアップのサイズが測定されます。バックアップのサイズに復元オペレーションの単価(GiB)を掛けます。

ネットワーク帯域幅

以下のセクションで説明するように、Firestore のリクエストによって使用されるネットワーク帯域幅に対して課金が発生します。Firestore リクエストのネットワーク帯域幅の費用は、リクエストのレスポンスのサイズ、Firestore データベースのロケーション、レスポンスの送信先によって異なります。

Firestore は、シリアル化されたメッセージ形式に基づいてレスポンスのサイズを計算します。SSL オーバーヘッドなどのプロトコル オーバーヘッドは、ネットワーク帯域幅の使用量には含まれません。Firestore セキュリティ ルールによって拒否されたリクエストは、ネットワーク帯域幅の使用量にカウントされません。

これまでのネットワーク帯域幅の使用量を確認するには、Google Cloud コンソールを使用して課金データをファイルにエクスポートします。

一般的なネットワークの料金体系

Google Cloud Platform 内で発生したリクエスト(Google Compute Engine で実行中のアプリケーションからのリクエストなど)については、次の課金が発生します。

トラフィックの種類 価格
インバウンド データ転送 無料
リージョン内のデータ転送 無料
同一マルチリージョン内のリージョン間のデータ転送 無料
米国内のリージョン間のデータ転送(GiB あたり) $0.01(月ごとの最初の 10 GiB は無料です)
リージョン間のデータ転送(米国のリージョン間のトラフィックは除く) Google Cloud Platform 送信インターネット データ転送料金

米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。

インターネット データ転送速度

以下のインターネット データ転送に対して課金されます。

  • リージョン間の Google Cloud リクエスト(US リージョン間のトラフィックは除く)
  • Google Cloud 外部からのリクエスト(ユーザーのモバイル デバイスからのリクエストなど)

米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。

使用量のモニタリング

Firestore の使用状況をモニタリングする方法については、使用状況のモニタリングをご覧ください。

費用の管理

費用を管理するには、1 か月の予算とアラートを設定します。

Google Cloud の予算とアラート

Google Cloud では、すべての Google Cloud サービスに対する 1 か月の予算を設定できます。1 か月の予算を使用して、Firestore のネットワーク帯域幅の費用を含めて、Google Cloud の費用全体をモニタリングします。予算を設定すると、アラートを設定できます。これによって、費用が予算に近づくと、メール通知が送信されるようになります。

こちらの手順に沿って 1 か月の予算を設定し、Google Cloud コンソールでアラートを作成します。

料金の例

実際のサンプルアプリで Firestore の請求額がどのように発生するかを確認するには、Firestore の請求例をご覧ください。

次のステップ

カスタム見積もりをリクエストする

Google Cloud の従量制課金では、使用したサービスに対してのみ料金が発生します。カスタム見積もりをご希望の場合は、Google のセールスチームにお問い合わせください。
お問い合わせはこちら