Zobacz przykładowy cennik Cloud Firestore

Skorzystaj z tego rzeczywistego przykładu podstawowej aplikacji do czatowania, aby ocenić wykorzystanie i koszty Cloud Firestore. Nie jest to dokładny szacunek, ale może pomóc Ci lepiej zrozumieć, w jaki sposób rozliczane jest korzystanie z Cloud Firestore.

Przegląd: Koszty według poziomu wykorzystania

Aby zilustrować typowe koszty, rozważ przykładową aplikację do czatowania, w której użytkownicy mogą inicjować czaty z dwoma lub większą liczbą uczestników. Użytkownicy mogą przeglądać swoje aktywne czaty na liście, czytać wiadomości i wysyłać wiadomości. W tym przykładzie używamy cen dla wielu regionów Ameryki Północnej (w szczególności nam5 ).

Założenia

Rozważ następujące założenia dotyczące użytkowania i przechowywania danych:

  • Dzienna liczba aktywnych użytkowników (DAU) to 10% wszystkich instalacji aplikacji. Możesz oszacować swoje dzienne koszty, korzystając z szacunkowej liczby dziennych aktywnych użytkowników (DAU). Są to użytkownicy, którzy aktywnie otwierają Twoją aplikację i korzystają z niej w danym dniu, co zazwyczaj stanowi niewielki podzbiór całkowitej liczby instalacji aplikacji. W poniższych obliczeniach oszacowaliśmy liczbę DAU na 10% całkowitej liczby instalacji aplikacji.
  • Rozmiary dokumentów są stosunkowo małe. Poniższa tabela zawiera zestawienie rozmiaru dokumentu według typu.
  • Dane są przechowywane tylko przez trzy miesiące. Wiadomości w przykładowej aplikacji do czatu są przechowywane tylko przez okres trzech miesięcy. Aby uwzględnić operacje usuwania, poniższe obliczenia pokazują codzienne usuwanie dla każdego codziennego zapisu.
  • Te szacunki kosztów odzwierciedlają większość kosztów przykładowej aplikacji, ale nie wszystkie. Większość kosztów aplikacji uwzględniliśmy, obliczając operacje, miejsce na dane użytkowników i wiadomości oraz wyjścia w przypadku najczęstszych zadań użytkowników opisanych w tym przewodniku. Jednak może być konieczne wzięcie pod uwagę dodatkowych kosztów, w zależności od struktury aplikacji i potrzeb w zakresie danych. Skorzystaj z tego przykładu, aby poprowadzić swoje obliczenia, ale zapoznaj się ze stroną z cenami , aby uzyskać dokładniejsze wyjaśnienia kosztów Cloud Firestore.

Aby zapoznać się z podziałem operacji według zadań użytkownika, zobacz sekcję Podział: Rozliczane użycie według zadań użytkownika .

Mały
(50 tys. instalacji)

Za 50 000 instalacji aplikacji (5000 aktywnych użytkowników dziennie): 12,14 USD/miesiąc

Koszty odczytu/zapisu
Całkowity koszt miesięczny = 11,10 USD/miesiąc
Łącznie 400 tys. odczytów dziennie = 50 tys. odczytów bezpłatnie + (350 tys. odczytów przy cenie 0,06 USD/100 tys.) = 3,5 * 0,06 USD
0,21 USD / dzień * 30 = 6,30 USD
Łącznie 100 tys. zapisów dziennie = 20 tys. zapisów bez kosztów + (80 tys. zapisów po 0,18 USD/100 tys.) = 0,8 * 0,18 USD
0,14 USD / dzień * 30 = 4,20 USD
Łącznie 100 tys. usunięć dziennie = 20 tys. usunięć bezpłatnych + (80 tys. usunięć po cenie 0,02/100 tys. USD) = 0,8 * 0,02 USD
0,02 USD / dzień * 30 = 0,60 USD
Koszty przechowywania/sieci
Całkowity koszt miesięczny = 1,04 USD/miesiąc
20 KB / DAU dziennego ruchu wychodzącego * 5 tys. DAU = 100 MB dziennego ruchu wyjściowego * 30 = 3 GB miesięcznego ruchu wychodzącego z sieci
3 GB bezpłatne wyjście = bezpłatne 1
15 KB dziennego przechowywania wiadomości / DAU + 3 KB przechowywania / instalacja 2 = 45 KB pamięci / DAU * 5 tys. DAU = 225 MB dziennej pamięci / DAU * 30 = 6,75 GB miesięcznego wykorzystania pamięci
1 GB bezpłatnej pamięci masowej + (5,75 * 0,18 USD) = 1,04 USD / miesiąc

1 10 GB miesięcznego ruchu wychodzącego z sieci jest bezpłatne w przypadku Cloud Firestore.
2 Ponieważ zakładamy, że DAU stanowią 10% wszystkich instalacji aplikacji, liczba ta uwzględnia całkowitą liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Średni
(1 mln instalacji)

Za 1 000 000 instalacji aplikacji (100 000 aktywnych użytkowników dziennie): 292,02 USD/miesiąc

Koszty odczytu/zapisu
Całkowity koszt miesięczny = 261,90 USD/miesiąc
Łącznie 8 mln odczytów dziennie = 50 tys. odczytów bezpłatnie + (7,95 mln odczytów przy cenie 0,06 USD/100 tys.) = 79,5 * 0,06 USD
4,77 USD / dzień * 30 = 143,10 USD
Łącznie 2 miliony codziennych zapisów = 20 tys. zapisów bez kosztów + (1,98 mln zapisów po 0,18 tys. USD/100 tys.) = 19,8 * 0,18 USD
3,56 USD / dzień * 30 = 106,80 USD
Łącznie 2 mln usunięć dziennie = 20 tys. usunięć bezpłatnych + (1,98 mln usunięć przy cenie 0,02/100 tys. USD) = 19,8 * 0,02 USD
0,40 USD / dzień * 30 = 12,00 USD
Koszty przechowywania/sieci
Całkowity koszt miesięczny = 30,12 USD/miesiąc
20 KB / DAU dziennego ruchu wychodzącego * 100 tys. DAU = 2 GB dziennego ruchu wyjściowego * 30 = 60 GB miesięcznego ruchu wychodzącego z sieci
10 GB bezpłatnego ruchu wyjściowego + (50 GB ruchu wyjściowego * 0,12 USD/GB) = 6,00 USD miesięcznie
15 KB dziennego przechowywania wiadomości / DAU + 3 KB przechowywania / instalacja 1 = 45 KB pamięci / DAU * 100 tys. DAU = 4,5 GB dziennej przestrzeni dyskowej / DAU * 30 = 135 GB miesięcznego wykorzystania pamięci
1 GB bezpłatnej przestrzeni dyskowej + (134 GB * 0,18 USD/GB) = 24,12 USD miesięcznie

1 Ponieważ zakładamy, że DAU stanowią 10% wszystkich instalacji aplikacji, liczba ta uwzględnia całkowitą liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Duży
(10 mln instalacji)

Za 10 000 000 instalacji aplikacji (1 000 000 aktywnych użytkowników dziennie): 2951,52 USD

Koszty odczytu/zapisu
Całkowity koszt miesięczny = Razem: 2637,90 USD/miesiąc
Łącznie 80 milionów dziennych odczytów = 50 tys. odczytów bezpłatnie + (79,95 mln odczytów przy cenie 0,06 USD/100 tys.) = 799,5 * 0,06 USD
47,97 USD / dzień * 30 = 1439,10 USD
Łącznie 20 milionów zapisów dziennie = 20 tys. zapisów bez kosztów + (19,98 mln zapisów po cenie 0,18/100 tys. USD) = 199,8 * 0,18 USD
35,96 USD / dzień * 30 = 1078,80 USD
Łącznie 20 milionów usunięć dziennie = 20 tys. usunięć bezpłatnych + (19,98 mln usunięć przy cenie 0,02/100 tys. USD) = 199,8 * 0,02 USD
4,00 USD / dzień * 30 = 120,00 USD
Koszty przechowywania/sieci
Całkowity koszt miesięczny = 313,62 USD/miesiąc
20 KB / DAU dziennego ruchu wychodzącego * 1 mln DAU = 20 GB dziennego wyjścia * 30 = 600 GB miesięcznego ruchu wychodzącego z sieci
10 GB bezpłatnego ruchu wyjściowego + (590 GB ruchu wyjściowego * 0,12 USD/GB) = 70,80 USD miesięcznie
15 KB dziennego przechowywania wiadomości / DAU + 3 KB przechowywania / instalacja 1 = 45 KB pamięci / DAU * 1 mln DAU = 45 GB dziennej przestrzeni dyskowej / DAU * 30 = 1350 GB miesięcznego wykorzystania pamięci
(1 GB bezpłatnej przestrzeni dyskowej) + (1349 GB * 0,18 USD/GB) = 242,82 USD / miesiąc

1 Ponieważ zakładamy, że DAU stanowią 10% wszystkich instalacji aplikacji, liczba ta uwzględnia całkowitą liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Zaletą modelu rozliczeniowego Cloud Firestore, którą warto rozważyć, jest to, że płacisz tylko za to, z czego korzystasz. W rezultacie Twój rachunek może rosnąć i zmniejszać się wraz ze wzrostem liczby DAU.

Podział: użycie płatne według zadania użytkownika

W naszej przykładowej aplikacji do czatowania struktura danych jest następująca:

  • users/{userId} — Rekordy użytkowników
  • groups/{groupId} — Czaty pomiędzy 2 lub więcej użytkownikami
    • messages/{messageId} — Każda wiadomość na czacie.

Przechowywanie danych

Aby obliczyć koszty przechowywania danych aplikacji, zastosuj następujące założenia dotyczące rozmiarów dokumentów:

Kolekcja Rozmiar dokumentu (w transporcie) Rozmiar dokumentu (na dysku)*
użytkownicy 1 KB 3 KB
grupy 0,5 KB 1,5 KB
wiadomości 0,25 KB 0,75 KB

*To obliczenie rozmiaru uwzględnia indeksy pól wiadomości, ale zakłada, że ​​indeksowanie treści wiadomości jest wyłączone.

Aplikacja przechowuje również tylko wiadomości starsze niż trzy miesiące, aby obniżyć koszty przechowywania.

Więcej informacji na temat obliczania kosztów przechowywania można znaleźć w sekcji Omówienie obliczeń rozmiaru magazynu .

Operacje

Użytkownicy zazwyczaj wykonują w aplikacji następujące typowe zadania:

  • Zobacz listę czatów: Użytkownicy otwierają ekran główny aplikacji i widzą listę czatów (grupowych i bezpośrednich) uporządkowanych według ostatniej opublikowanej wiadomości.
  • Czytaj wiadomości na czacie: użytkownicy wybierają czaty na ekranie głównym i czytają najnowsze wiadomości z czatów.
  • Wyślij wiadomość na czat: Użytkownicy wysyłają wiadomości na czaty (grupowe lub bezpośrednie).

Całkowite szacowane operacje przykładowej aplikacji w Cloud Firestore dla trzech typowych zadań użytkownika są następujące:

  • Odczyty: (5 * 10) + (30) = 80 odczytów / użytkownika / dzień
  • Zapisy: (10 * 2) = 20 zapisów / użytkownik / dzień
  • Wyjście sieciowe : (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB / użytkownika / dzień
  • Pamięć : (20 * 0,75 KB) = 15 KB / użytkownik / dzień

Całkowite wykorzystanie według zadania użytkownika

Wybierz każde zadanie użytkownika, aby wyświetlić pełny opis i zestawienie kosztów operacji, przechowywania i sieci w aplikacji.

Zobacz listę czatów

Na ekranie głównym aplikacji ładuje się 25 ostatnich czatów, pobierając opłaty za 25 odczytów dokumentów. Załóżmy, że aktywny użytkownik otwiera aplikację 5 razy dziennie, co daje łącznie 125 odczytów na użytkownika każdego dnia. Jednak bardziej wydajne zapytania, takie jak te w poniższym przykładzie, mogą zmniejszyć to obciążenie.

W poniższym przykładzie ograniczamy zapytanie do nowych czatów, korzystając ze znacznika czasu każdego pomyślnego pobrania przechowywanego przez aplikację:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

Załóżmy, że za każdym razem, gdy użytkownik sprawdza aplikację, jest aktualizowanych średnio 10 czatów. To zapytanie powoduje tylko 10 odczytów dokumentów.

Czytaj wiadomości na czacie

Użytkownicy klikają wątki czatu na ekranie głównym, aby zobaczyć najnowsze wiadomości, ładując 50 najnowszych wiadomości w początkowym ładowaniu.

Załóżmy, że typowy użytkownik wykonuje tę czynność 5 razy dziennie (raz przy każdym otwarciu ekranu głównego), co daje w sumie 250 odczytów na użytkownika każdego dnia. Możemy również ograniczyć nasze zapytanie do nowych wiadomości od czasu ostatniego pobrania:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

Załóżmy, że użytkownik otrzymuje około 30 wiadomości dziennie na wszystkich czatach. Ponieważ ograniczyłeś zapytanie do pobrania nowych wiadomości, oznacza to zaledwie 30 pobranych wiadomości dziennie.

Wyślij wiadomość na czacie

Użytkownicy mogą wysyłać wiadomości do innych uczestników czatu. Załóżmy, że aktywny użytkownik wysyła około 10 wiadomości dziennie.

Każda wysłana wiadomość spowoduje dwa zapisy dokumentów: jeden zapis w podkolekcji messages czatu i jeden zapis w dokumencie nadrzędnym czatu w celu zaktualizowania znacznika czasu lastUpdated i innych metadanych.

Należy pamiętać, że koszt przeczytania tych wiadomości został uwzględniony w pozostałych podróżach, zatem poniższe sumy uwzględniają jedynie koszt zapisu.

Rozliczane wykorzystanie zadań administracyjnych

Jako właściciel lub administrator aplikacji prawdopodobnie chcesz generować raporty na podstawie danych aplikacji. Możesz na przykład chcieć codziennie rejestrować liczbę wiadomości wysłanych przez użytkowników. Można to osiągnąć za pomocą agregacji count() grupy gromadzenia messages .

W przypadku zapytań agregujących, takich jak count() , naliczana jest opłata za jeden odczytany dokument za każdą partię maksymalnie 1000 wpisów indeksu pasujących do zapytania. Uruchomienie tej dziennej agregacji powoduje dodanie następujących opłat miesięcznych:

Mały
(50 tys. instalacji)

Za 50 000 instalacji aplikacji (5000 DAU): 0,0009 USD/miesiąc

5000 aktywnych użytkowników * 10 nowych wiadomości na użytkownika = 50 000 nowych dokumentów wiadomości dziennie

50 000 zliczonych dokumentów / 1000 dopasowań indeksowych na opłatę za odczyt = 50 odczytów

50 odczytów dziennie * 30 dni = 1500 odczytów miesięcznie

1500 odczytów miesięcznie * 0,06/100 000 odczytów cena = 0,0009 USD miesięcznie

Średni
(1 mln instalacji)

Za 1 000 000 instalacji aplikacji (100 000 aktywnych użytkowników dziennie): 0,018 USD/miesiąc

100 000 aktywnych użytkowników * 10 nowych wiadomości na użytkownika = 1 000 000 nowych dokumentów wiadomości dziennie

1 000 000 zliczonych dokumentów / 1000 dopasowań indeksu na opłatę za odczyt = 1000 odczytów

1000 odczytów dziennie * 30 dni = 30 000 odczytów miesięcznie

30 000 odczytów miesięcznie * 0,06/100 000 odczytów cena = 0,018 USD miesięcznie

Duży
(10 mln instalacji)

Za 10 000 000 instalacji aplikacji (1 000 000 aktywnych użytkowników dziennie): 0,18 USD

1 000 000 aktywnych użytkowników * 10 nowych wiadomości na użytkownika = 10 000 000 nowych dokumentów wiadomości dziennie

10 000 000 zliczonych dokumentów / 1000 dopasowań indeksowych na opłatę za odczyt = 10 000 odczytów

10 000 odczytów dziennie * 30 dni = 300 000 odczytów miesięcznie

300 000 odczytów miesięcznie * .06/100000 cena odczytu = 0,18 USD miesięcznie

Zawarte korzyści: Bezpłatne usługi dla Twojej aplikacji

Chociaż operacje Cloud Firestore, pamięć masowa i przepustowość sieci są uznawane za użytkowanie płatne, otrzymujesz także szereg innych korzyści bez dodatkowych kosztów. Porównując Cloud Firestore z innymi opcjami baz danych, rozważ następujące usługi, które są bezpłatne:

  • Bezpośredni dostęp do klienta: Dostęp do Cloud Firestore można uzyskać bezpośrednio z kodu klienta za pomocą naszych natywnych pakietów SDK. Oznacza to, że nie musisz budować i uruchamiać serwera API, aby połączyć klientów mobilnych z bazą danych.
  • Równoważenie obciążenia: ponieważ Cloud Firestore skaluje się automatycznie, aby obsługiwać ruch do Twojej bazy danych, nie musisz uruchamiać modułu równoważenia obciążenia.
  • Czas pracy serwera: bazy danych Cloud Firestore działają na serwerach Google Cloud, oferując ponad 99% miesięcznego czasu pracy .
  • Uwierzytelnianie: Uwierzytelniaj nieograniczoną liczbę użytkowników w prosty i bezpieczny sposób dzięki uwierzytelnianiu Firebase . Uwierzytelnianie Firebase integruje się bezpośrednio z Cloud Firestore, więc nie musisz uruchamiać własnej usługi uwierzytelniania.
  • Powiadomienia push: wysyłaj wiadomości i powiadomienia za pomocą Cloud Messaging .
  • Inne produkty Firebase: integruj inne produkty Firebase bez żadnych kosztów, w tym testy A/B, analitykę, Crashlytics, monitorowanie wydajności i zdalną konfigurację. Dowiedz się więcej o innych produktach Firebase i cenach Firebase .