Zobacz przykładowy cennik Cloud Firestore

Aby oszacować wykorzystanie i koszty Cloud Firestore, skorzystaj z tego przykładu podstawowej aplikacji do czatu. Nie jest to dokładna prognoza, ale może pomóc w lepszym zrozumieniu sposobu naliczania opłat za korzystanie z usługi Cloud Firestore.

Omówienie: koszty według poziomu wykorzystania

Aby zilustrować typowe koszty, weź pod uwagę przykładową aplikację do czatu, w której użytkownicy mogą inicjować czaty z co najmniej 2 uczestnikami. Użytkownicy mogą wyświetlać 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 dla nam5).

Założenia

Rozważ te założenia dotyczące użytkowania i przechowywania danych:

  • Liczba aktywnych użytkowników dziennie to 10% łącznej liczby instalacji aplikacji. Możesz oszacować koszty dzienne, korzystając z przybliżonej liczby aktywnych użytkowników dziennie. Są to użytkownicy, którzy aktywnie otwierają Twoją aplikację i korzystają z niej w danym dniu. Zazwyczaj stanowią oni niewielką część łącznej liczby instalacji aplikacji. W poniższych obliczeniach szacowaliśmy liczbę aktywnych użytkowników dziennie jako 10% łącznej liczby instalacji aplikacji.
  • Dokumenty są stosunkowo małe. Szczegółowe informacje o rozmiarze dokumentu według typu znajdziesz w tabeli poniżej.
  • Dane są przechowywane tylko przez 3 miesiące. Wiadomości w tym przykładzie aplikacji do czatu są przechowywane tylko przez 3 miesiące. Aby uwzględnić operacje usuwania, obliczenia poniżej pokazują dzienne usuwanie dla każdego dziennego zapisu.
  • Te szacowane koszty obejmują 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ście dla najczęściej wykonywanych przez użytkowników zadań opisanych w tym przewodniku. W zależności od struktury aplikacji i potrzeb związanych z danymi może być jednak konieczne uwzględnienie dodatkowych kosztów. Podczas obliczeń możesz się kierować tym przykładem, ale bardziej szczegółowe informacje o kosztach Cloud Firestore znajdziesz na stronie z cenami.

Szczegółowe informacje o operacjach według czynności użytkownika znajdziesz w sekcji Podział: obciążone użycie według czynności użytkownika.

Mały
(50 tys. instalacji)

W przypadku 50 tys. instalacji aplikacji (5000 aktywnych użytkowników dziennie): 12,14 USD miesięcznie.

Koszty odczytu/zapisu
Łączny koszt miesięczny = 11,10 USD/miesiąc
Łączna liczba odczytów dziennie: 400 tys. = 50 tys. bezpłatnych odczytów + (350 tys. odczytów po 0,06 tys. za 100 tys.) = 3,5 * 0,06 USD
0,21 USD / dzień * 30 = 6,30 USD
 
100 tys. zapisów dziennie =   20 tys. bezpłatnych zapisó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. bezpłatnych usunięć + (80 tys. usunięć po 0,02 USD/100 tys.) = 0,8 * 0,02 USD
0,02 zł/dzień * 30 = 0,60 zł
Koszty miejsca na dane i sieci
Łączny koszt miesięczny = 1,04 USD/miesiąc
20 KB / DAU dziennie * 5000 DAU =   100 MB danych wychodzących dziennie * 30 = 3 GB sieciowego ruchu wychodzącego miesięcznie
3 GB bezpłatnego ruchu wychodzącego = bezpłatnie1
 
15 KB miejsca na dzienne wiadomości / DAU + 3 KB miejsca / instalacja2 =   45 KB miejsca na dane / liczba aktywnych użytkowników dziennie * 5000 DAUs = 225 MB miejsca dziennie / DAU * 30 = 6,75 GB miesięcznego wykorzystania miejsca na dane
1 GB bezpłatnego miejsca na dane + (5,75 * 0,18 USD) = 1,04 USD miesięcznie

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

Średnie
(1 mln instalacji)

Za 1 000 000 instalacji aplikacji (100 tys. aktywnych użytkowników dziennie): 292,02 USD miesięcznie.

Koszty odczytu/zapisu
Łączny koszt miesięczny = 261,90 USD/miesiąc
8 mln odczytów dziennie = 50 tys. bezpłatnych wyświetleń + (7,95 mln wyświetleń przy cenie 0,06 USD/100 tys.) = 79,5 * 0,06 USD
4,77 USD/dzień * 30 = 143,10 USD
 
2 mln zapisów dziennie = 20 tys. bezpłatnych zapisów + (1,98 mln zapisów przy cenie 0,18 USD/100 tys.) =   19,8 * 0,18 USD
3,56 zł / dzień * 30 = 106,80 zł
 
2 mln usuwanych plików dziennie =   20 tys. bezpłatnych usunięcia + (1,98 mln usunięcia przy cenie 0,02 USD/100 tys.) = 19,8 * 0,02 USD
0,40 zł / dzień * 30 = 12 zł
Koszty miejsca na dane i sieci
Łączny koszt miesięczny = 30,12 USD/miesiąc
20 KB / DAU dziennie * 100 tys. DAU = 2 GB ruchu wychodzącego dziennie * 30 = 60 GB sieciowego ruchu wychodzącego miesięcznie
10 GB bezpłatnego ruchu wychodzącego + (50 GB ruchu wychodzącego * 0,12 USD/GB) = 6,00 USD / miesiąc
 
15 KB miejsca na dzienne wiadomości / DAU + 3 KB miejsca / instalacja1 = 45 KB miejsca na dane / DAU * 100 tys. DAU =   4,5 GB miejsca na dane dziennie / liczba aktywnych użytkowników dziennie * 30 = 135 GB miejsca na dane miesięcznie
1 GB bezpłatnego miejsca na dane + (134 GB * 0,18 USD/GB = 24,12 USD miesięcznie)

1 Zgodnie z naszym założeniem, że DAU stanowią 10% łącznej liczby instalacji aplikacji, ta liczba uwzględnia łączną liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Duży
(10 mln instalacji)

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

Koszty odczytu/zapisu
Łączny koszt miesięczny = 2637,90 USD/miesiąc
80 mln odczytów dziennie = 50 tys. bezpłatnych wyświetleń + (79,95 mln wyświetleń przy cenie 0,06 USD/100 tys.) = 799,5 * 0,06 USD
47,97 USD / dzień * 30 = 1439,10 USD
 
20 mln zapisów dziennie = 20 tys. bezpłatnych zapisów + (19,98 mln zapisów przy cenie 0,18 USD/100 tys.) = 199,8 * 0,18 zł
35,96 zł / dzień * 30 = 1078,80 zł
 
20 mln usunięcia dziennie =   20 tys. bezpłatnych usunięcia + (19,98 mln usunięcia przy cenie 0,02 USD/100 tys.) = 199,8 * 0,02 USD
4 zł / dzień * 30 = 120 zł
Koszty miejsca na dane i sieci
Łączny koszt miesięczny = 313,62 USD/miesiąc
20 KB / DAU dziennego ruchu wychodzącego * 1 mln DAU = 20 GB ruchu wychodzącego dziennie * 30 = 600 GB sieciowego ruchu wychodzącego miesięcznie
10 GB bezpłatnego ruchu wychodzącego + (590 GB ruchu wychodzącego * 0,12 USD/GB) = 70,80 USD miesięcznie
 
15 KB miejsca na dzienne wiadomości / DAU + 3 KB miejsca / instalacja1 = 45 KB miejsca na dane / liczba aktywnych użytkowników dziennie * 1 mln aktywnych użytkowników dziennie = 45 GB miejsca na dane dziennie / DAU * 30 =   1350 GB miejsca na dane miesięcznie
(1 GB bezpłatnego miejsca na dane) + (1349 GB * 0,18 USD/GB) = 242,82 USD miesięcznie

1 Zgodnie z naszym założeniem, że DAU stanowią 10% łącznej liczby instalacji aplikacji, ta liczba uwzględnia łączną liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Zaletą modelu rozliczeniowego Cloud Firestore, który warto wziąć pod uwagę, jest to, że płacisz tylko za to, z czego korzystasz. W związku z tym Twój rachunek może się zwiększać lub zmniejszać wraz z liczbą aktywnych użytkowników dziennie.

Zestawienie: Rozliczane wykorzystanie według zadania użytkownika

W przypadku przykładowej aplikacji do czatu struktura danych wygląda tak:

  • users/{userId} – rekordy użytkownika
  • groups/{groupId} – czaty między co najmniej 2 użytkownikami
    • messages/{messageId} – każda wiadomość na czacie.

Miejsce na dane

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

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

* To obliczenie rozmiaru obejmuje indeksy pól wiadomości, ale zakłada, że indeksowanie jest wyłączone w przypadku treści wiadomości.

Aplikacja przechowuje tylko wiadomości sprzed maksymalnie 3 miesięcy, aby obniżyć koszty przechowywania.

Więcej informacji o obliczaniu kosztów miejsca na dane znajdziesz w artykule Obliczanie rozmiaru miejsca na dane.

Operacje

Użytkownicy zwykle wykonują w aplikacji te typowe czynności:

Łączna liczba operacji Cloud Firestore w przypadku przykładowej aplikacji w przypadku 3 typowych zadań użytkownika:

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

Łączne wykorzystanie według czynności użytkownika

Wybierz każdą czynność użytkownika, aby zobaczyć pełny opis i zestawienie operacji, kosztów przechowywania i kosztów sieci w aplikacji.

Wyświetlanie listy czatów

Ekran główny aplikacji wczytuje 25 najnowszych czatów, co powoduje obciążenie za 25 oczytań dokumentów. Załóżmy, że aktywny użytkownik otwiera aplikację 5 razy dziennie, co daje łącznie 125 odczytów na użytkownika dziennie. Jednak bardziej efektywne zapytania, takie jak to poniżej, mogą zmniejszyć to obciążenie.

W przykładzie poniżej ograniczamy zapytanie do nowych czatów, używając sygnatury czasowej każdego udanego pobrania zapisanego 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 średnio 10 aktualizowanych czatów. To zapytanie powoduje tylko 10 odczytań dokumentu.

Czytanie wiadomości na czacie

Użytkownicy klikają wątki czatu na ekranie głównym, aby wyświetlić najnowsze wiadomości. Podczas pierwszego wczytania wyświetlane są 50 najnowszych wiadomości.

Załóżmy, że typowy użytkownik wykonuje tę czynność 5 razy dziennie (raz za każdym razem, gdy otwiera ekran główny), co daje łącznie 250 wyświetleń na użytkownika dziennie. Od ostatniego pobierania możemy też ograniczyć zapytanie do nowych wiadomości:

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 we wszystkich czatach. Ponieważ zawęziłaś/zawęziło się do pobierania nowych wiadomości, oznacza to, że pobieranych wiadomości będzie tylko 30 na dzień.

Wysyłanie wiadomości na czacie

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

Każda wysłana wiadomość spowoduje 2 zapisy dokumentu: jeden do podzbioru messages czatu i jeden do dokumentu nadrzędnego czatu w celu zaktualizowania sygnatury czasowej lastUpdated i innych metadanych.

Pamiętaj, że koszt odczytu tych wiadomości został uwzględniony w innych ścieżkach, więc podsumowania poniżej uwzględniają tylko koszt zapisu.

Rozliczane za wykorzystanie zadań administracyjnych

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

W przypadku zapytań zbiorczych, takich jak count(), naliczamy opłatę za 1 odczytany dokument dla każdej grupy maksymalnie 1000 wpisów indeksu pasujących do zapytania. Wykonywanie tej codziennej agregacji powoduje dodatkowe opłaty miesięczne:

Mały
(50 tys. instalacji)

Za 50 tys. instalacji aplikacji (5000 DAUs): 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 dokumentów / 1000 pasujących indeksów na opłatę za odczyt = 50 odczytów

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

1500 wyświetleń miesięcznie * 0,06 / 100 tys. wyświetleń = 0,0009 USD miesięcznie

Średnie
(1 mln instalacji)

W przypadku 1 mln instalacji aplikacji (100 tys.aktywnych użytkowników dziennie): 0,018 USD/miesiąc

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

1 000 000 dokumentów zliczanych / 1000 pasujących indeksów na opłatę za odczyt = 1000 odczytów

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

30 000 wyświetleń miesięcznie * 0,06 zł/100 tys. wyświetleń = 0,018 zł miesięcznie

Duży
(10 mln instalacji)

W przypadku 10 mln instalacji aplikacji (1 mln aktywnych użytkowników dziennie): 0,18 zł.

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 dokumentów zliczanych / 1000 pasujących indeksów na opłatę za odczyt = 10 000 odczytów

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

300 000 wyświetleń miesięcznie * 0,06 / 100 000 wyświetleń = 0,18 zł miesięcznie

Korzyści: bezpłatne usługi dla Twojej aplikacji

Chociaż operacje, miejsce na dane i przepustowość sieci Cloud Firestore są uważane za płatne wykorzystanie, otrzymujesz też wiele innych korzyści bez dodatkowych kosztów. Porównując Cloud Firestore z innymi bazami danych, weź pod uwagę te bezpłatne usługi:

  • Bezpośredni dostęp klienta: dostęp do usługi Cloud Firestore uzyskuje się bezpośrednio z kodu klienta za pomocą naszych natywnych pakietów SDK. Oznacza to, że nie musisz tworzyć ani uruchamiać serwera interfejsu API, aby połączyć klientów mobilnych z bazą danych.
  • Równoważenie obciążenia: usługa Cloud Firestore skaluje się automatycznie, aby obsługiwać ruch do bazy danych, więc nie musisz uruchamiać systemu równoważenia obciążenia.
  • Czas pracy serwera: bazy danych Cloud Firestore działają na serwerach Google Cloud, zapewniając ponad 99% dostępności miesięcznie.
  • Uwierzytelnianie: w prosty i bezpieczny sposób uwierzytelnij nieograniczoną liczbę użytkowników za pomocą Firebase Authentication. Firebase Authentication 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 usługi Firebase: bezpłatnie integruj inne usługi Firebase, w tym Testy A/B, Analytics, Crashlytics, Monitorowanie wydajności i Zdalną konfigurację. Dowiedz się więcej o innych usługach Firebase i cenach Firebase.