さまざまなシナリオでの Firestore Enterprise エディションの料金の理解に役立つ例を次に示します。
クエリの料金の例
シナリオ: クエリは、100 点のドキュメントを含むコレクション内のフィールド username を値 ilovefirebase でフィルタします。各ドキュメントのサイズは 2 KiB です。値 ilovefirebase を持つ username は 1 つしかないとします。同じクエリが 100 万回実行されます。
| アクティビティ | Standard エディション(自動インデックス付きクエリ) | Enterprise エディション(インデックス付きクエリ) | Enterprise エディション(インデックスなしコレクションのスキャン) |
| インデックス作成ステータス | ユーザー名の検索に自動作成されたインデックスを使用します。 | ユーザー名フィールドで手動でインデックスを作成した後。 | インデックスを使用しません。200 KiB のユーザー コレクション全体をスキャンします。 |
| クエリあたりの読み取りユニット数 | 費用は 1 回の読み取りごとに発生します。 | 費用は 2 個の読み取りユニット(インデックス スキャン用に 1 個、ドキュメントの読み取り用に 1 個)で発生します。 | 費用は 50 個の読み取りユニットで発生します(2KiB のドキュメント 100 個 = 合計 200 KiB のスキャン。200 KiB / ユニットあたり 4 KiB = 50 ユニット)。 |
| 合計費用(100 万件のクエリあたり) | 100 万件のクエリあたり $0.30(100 万読み取りユニットあたり $0.30 で 1 回の読み取り)。 | 100 万クエリあたり $0.10(100 万読み取りユニットあたり $0.05 で 2 個の読み取りユニット)。 | 100 万件のクエリあたり $2.50(100 万件あたり $0.05 で 50 個の読み取りユニット)。 |
費用差額の概要
- インデックス付きクエリ: Enterprise エディションで同じクエリを実行すると、ユーザー名フィールドにインデックスが手動で作成されるため、100 万件あたり $0.10 の費用が発生します。
- インデックスなしのコレクション スキャン クエリ: Enterprise エディションのインデックスなしのコレクション スキャン クエリの費用は 100 万件あたり$2.50 です。これは、Standard エディションの同等の自動インデックス付き読み取りの $0.30 よりも大幅に高くなっています。これは、インデックスなしでクエリを実行すると、パフォーマンスが低下し、実行コストが高くなる可能性があることを示しています。
- 費用のメリット: 100 万読み取りユニットあたり $0.10 は、Standard エディションのインデックス付き読み取り費用の 3 分の 1 です。これは、クエリが最適化されている場合、Enterprise 読み取りユニットの基本料金が低いことを示しています。
リアルタイム料金の例
料金の詳細については、リアルタイム料金をご覧ください。
シナリオ 1: 100 万のクライアントが、コレクション内の最新の投稿 10 件をクエリします(タイムスタンプでインデックス登録)。各投稿のサイズは 6 KiB です。これらの投稿のうち 2 つが後で更新され、リアルタイムの更新がクライアントに push されます。
| アクティビティ | Firestore Standard エディション | Firestore Enterprise エディション | 特長 |
| 料金モデル | 初回クエリとリアルタイム更新の両方で、ドキュメントの読み取りごとに課金されます。 | 初回クエリは、読み取りユニット(4 KiB トランシェ)を使用して課金されます。
リアルタイム更新では、別のリアルタイム更新 SKU が使用されます。 |
Enterprise は読み取りユニットの料金を利用して、初回読み取りの料金を抑えます。 |
| 初回読み取り(それぞれ 6 KiB のドキュメントを含む 10 件の投稿の初回同期) | クライアントごとに 10 回の読み取りが発生します(ドキュメントのサイズは関係ありません)。 | クライアントごとに21 個の読み取りユニットが発生します。
(10 件の投稿のインデックス スキャンに対して 1 個の読み取りユニット) (20 個の読み取りユニット: 6 KiB ドキュメントあたり 2 個の読み取りユニット × 10 件のドキュメント) |
Enterprise はより多くのユニット(21 対 10)を消費しますが、ユニットの料金ははるかに低くなります。 |
| 初回読み取り費用(100 万回あたり) | 10 回の読み取り × 100 万あたり $0.30 で 100 万クライアント: $3.00。 | 21 個の読み取りユニット * 100 万あたり $0.05 で 100 万クライアント: $1.05。 | Enterprise エディションでは、初回読み取りの料金が 4 分の 1 になります。 |
| リアルタイム更新(6 KiB ドキュメントに対して 2 回の更新) | 2 回の読み取りが発生します(2 つの更新されたドキュメント)。 | 4 個のリアルタイム アップデート ユニットが発生します(6 KiB のドキュメントあたり 2 個のリアルタイム アップデート ユニット × 2 個のリアルタイム アップデート)。 | Enterprise では、リアルタイム更新が専用の SKU に分離されています。 |
| リアルタイム費用(100 万クライアントあたり) | 2 回の読み取り × 100 万あたり $0.30 で 100 万クライアント: $0.60 | 4 個のリアルタイム ユニット × 100 万あたり $0.30 で 100 万クライアント = $1.20。 | この特定の更新シナリオでは、Enterprise エディションのリアルタイム コストが高くなります。 |
| 合計費用 | $3.60($3.00 +$0.60)。 | $2.25($1.05 + $1.20)。 | このシナリオでは、大きなドキュメント(6 KiB)と大量のデータが関係するため、Enterprise の方が安価($2.25 対 $3.60)になります。 |
Enterprise エディションのリアルタイム リッスン クエリの追加料金の例
以下の費用は、us-central1 の料金(100 万読み取りユニットあたり $0.05、100 万リアルタイム更新ユニットあたり $0.30)を使用して計算されています。
| シナリオ(クライアント、ドキュメント サイズ) | フェーズ 1: 初回クエリ(同期)の詳細 | フェーズ 1: 初回クエリ消費量 | 費用の例 | フェーズ 2: リアルタイム更新の詳細 | フェーズ 2: リアルタイム更新の消費量 | 費用の例 |
| 1 クライアント、2 KiB のドキュメント | クエリは、それぞれ 2 KiB の 10,000 個のシーケンシャル ドキュメントのインデックスなしコレクション スキャンを実行します。 | 5,000 読み取りユニット | $0.00025($0.05/100 万に基づいて計算) | クライアントが、リアルタイム更新を使用して合計 1,000 個のドキュメントを受信します。各ドキュメントのサイズは 2 KiB です。 | 1,000 リアルタイム更新ユニット | $0.003($0.30/100 万に基づいて計算) |
| 1,000 クライアント、2 KiB のドキュメント | 1,000 のクライアントがそれぞれ、それぞれ 2 KiB のシーケンシャル ドキュメント 10,000 個のインデックスなしコレクション スキャンを行うクエリを実行します。 | 500 万読み取りユニット | $0.25($0.05/100 万に基づいて計算) | 1,000 のクライアントが、リアルタイム更新を使用して合計 1,000 個のドキュメントを受信します。各ドキュメントは 2KiB です。 | 100 万リアルタイム更新ユニット | $0.30($0.30/100 万に基づいて計算) |
| 1,000 クライアント、6 KiB のドキュメント | 1,000 個のクライアントがそれぞれ、それぞれ 6 KiB のシーケンシャル ドキュメント 10,000 個のインデックスなしコレクション スキャンを行うクエリを実行します。 | 1,500 万読み取りユニット | $0.75($0.05/100 万に基づいて計算) | 1,000 のクライアントがそれぞれ、リアルタイム更新を使用して合計 1,000 個のドキュメントを受信します。各ドキュメントのサイズは 6 KiB です。 | 200 万リアルタイム更新ユニット | $0.60($0.30/100 万に基づいて計算) |