Firestore の料金
このドキュメントでは、Firestore の料金の詳細について説明します。また、Firestore での利用額を制限およびモニタリングする方法についても説明します。
米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。
料金の概要
Firestore を使用すると、以下の項目に対し課金されます。
- 読み取り、書き込み、削除するドキュメントの数。
- データベースにより使用されるストレージの容量(メタデータとインデックスのオーバーヘッドを含む)。
- ネットワーク帯域幅の使用量。
ストレージと帯域幅の使用量はギガバイト(GiB)単位で計算されます(1 GiB は 230 バイト)。課金はすべて日単位で発生します。
この後の各セクションでは、Firestore の使用に伴う請求の仕組みについて詳しく説明します。
ロケーション別料金
次の表は、Firestore の利用ロケーションごとに、読み取り、書き込み、削除、保存にかかる料金を示しています。
米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。
読み取り、書き込み、削除
Firestore で実行するドキュメントの読み込み、書き込み、削除のオペレーションごとに課金が発生します。
書き込みと削除の料金はシンプルです。書き込みの場合、set
オペレーションまたは update
オペレーションを実行するたびに書き込み 1 件としてカウントされます。
読み取りの課金については注意すべき点があります。以下のセクションでは、これらの点について詳しく説明します。
クエリ結果をリッスンする
Firestore ではクエリの結果をリッスンでき、クエリの結果が変化した時点でリアルタイムの更新を取得できます。
クエリの結果をリッスンする場合、結果セット内のドキュメントが追加または更新されるたびに、1 回の読み取りとして課金されます。また、ドキュメントに変更があったために結果セットから除外される場合も、1 回の読み取りとして課金されます(これとは対照的に、ドキュメントが削除される場合、これは読み取りとして課金されません)。
また、リスナーが 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、任意の数のフィールド値(インデックスの定義によって異なる)、ドキュメント名が含まれます。
Firestore ストレージの計算方法については、ストレージ サイズの計算をご覧ください。データベースにより使用されているストレージ容量は、Cloud Console の App Engine の割り当ての詳細ページで確認できます。
ネットワーク帯域幅
以下のセクションで説明するように、Firestore のリクエストによって使用されるネットワーク帯域幅に対して課金が発生します。Firestore リクエストのネットワーク帯域幅の費用は、リクエストのレスポンスのサイズ、Firestore データベースのロケーション、レスポンスの送信先によって異なります。
Firestore は、シリアル化されたメッセージ形式に基づいてレスポンスのサイズを計算します。SSL オーバーヘッドなどのプロトコル オーバーヘッドは、ネットワーク帯域幅の使用量には含まれません。Firestore セキュリティ ルールによって拒否されたリクエストは、ネットワーク帯域幅の使用量にカウントされません。
これまでのネットワーク帯域幅の使用量を確認するには、Cloud Console を使用して課金データをファイルにエクスポートします。
一般的なネットワークの料金体系
Google Cloud Platform 内で発生したリクエスト(Google Compute Engine で実行中のアプリケーションからのリクエストなど)については、次の課金が発生します。
トラフィックの種類 | 料金 |
---|---|
上り(内向き) | 無料 |
リージョン内の下り(外向き) | 無料 |
同一マルチリージョン内のリージョン間の下り(外向き) | 無料 |
US 内のリージョン間の下り(外向き)(GiB あたり) | $0.01(月ごとの最初の 10 GiB は無料です) |
リージョン間の下り(US リージョン間のトラフィックは除く) | Google Cloud Platform インターネット下り(外向き)料金 |
米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。
インターネット下り(外向き)料金
以下のインターネット下り(外向き)に対して課金されます。
- リージョン間の Google Cloud リクエスト(US リージョン間のトラフィックは除く)
- Google Cloud 外部からのリクエスト(ユーザーのモバイル デバイスからのリクエストなど)
米ドル以外の通貨でお支払いの場合は、Cloud Platform SKU に記載されている該当通貨の料金が適用されます。
使用量のモニタリング
Firestore の日次使用量は、App Engine の [割り当て] ページで確認できます。
費用の管理
費用を管理するには、1 か月の予算とアラートを設定します。
Google Cloud の予算とアラート
Google Cloud では、すべての Google Cloud サービスに対する 1 か月の予算を設定できます。1 か月の予算を使用して、Firestore のネットワーク帯域幅の費用を含めて、Google Cloud の費用全体をモニタリングします。予算を設定すると、アラートを設定できます。これによって、費用が予算に近づくと、メール通知が送信されるようになります。
App Engine 費用上限の計算対象となるコストは、1 か月の予算の計算対象にもなります。
下記の手順に沿って、Cloud Console で 1 か月の予算を設定し、アラートを作成してください。
App Engine の費用上限
App Engine では、App Engine のほか、Datastore や Firestore のデータベースなど App Engine 関連のリソースに、1 日あたりの費用上限を設定できます。上限はおおよその値です。リソース使用量の急増にも対応できるように設定してください。1 日の費用の上限を超えると、無料の使用量上限の範囲外のすべての Firestore オペレーションが失敗します。
料金の例
実際のサンプルアプリで Firestore の請求額がどのように発生するかを確認するには、Firestore の請求例をご覧ください。
次のステップ
- Firestore のドキュメントを読む。
- Firestore を使ってみる。
- 料金計算ツールを試す。
- Firestore のソリューションとユースケースについて学習する。