Zobacz przykładowy cennik Cloud Firestore

Użyj tego przykładu podstawowej aplikacji do obsługi czatu, aby oszacować wykorzystanie i koszty Cloud Firestore. 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ć na liście swoje aktywne czaty, czytać wiadomości i wysyłać wiadomości. W tym przykładzie używamy cen dla wielu regionów w Ameryce Północnej (szczególnie 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ą i korzystają z Twojej aplikacji w danym dniu. Zwykle jest to niewielka podgrupa wszystkich zainstalowań aplikacji. W ramach tych obliczeń szacowaliśmy DAU na 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ą codzienne 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ń kieruj się tym przykładem, ale aby uzyskać bardziej szczegółowe informacje o kosztach Cloud Firestore, odwiedź stronę z cennikiem.

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
400 tys. wyświetleń dziennie =   50 tys. bezpłatnych wyświetleń + (350 tys. wyświetleń po 0,06 USD/100 tys.) =   3,5 * 0,06 USD
0,21 zł / dzień * 30 = 6,30 zł
 
100 tys. zapisów dziennie =   20 tys. bezpłatnych operacji zapisu + (80 tys. operacji zapisu po 0,18 zł/100 tys.) =   0,8 * 0,18
0,14 USD / dzień * 30 = 4,20 USD
 
100 tysięcy usuwanych plików dziennie =   20 tys. usunięć bez opłat + (80 tys. usunięć po 0,02 zł/100 tys.) =   0,8 * 0,02 USD
0,02 USD / dzień * 30 = 0,60 USD
Koszty miejsca na dane i sieci
Łączny koszt miesięczny = 1,04 zł/miesiąc
20 KB / DAU dziennie * 5000 DAU =   100 MB danych wychodzących dziennie * 30 =   3 GB miesięcznego ruchu wychodzącego
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 na dane 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 dla Cloud Firestore.
2 Zgodnie z naszym założeniem DAUs stanowią 10% łącznej liczby instalacji aplikacji, a 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.usunięć bez opłat + (1,98 mln usunięć po 0,02 zł/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 USD miesięcznie
 
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 / DAU * 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)

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

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 miesięcznego ruchu wychodzącego z sieci
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 wysokość Twojego rachunku może się zwiększać i zmniejszać wraz z liczbą aktywnych użytkowników dziennie.

Szczegóły: rozliczenie wykorzystania według czynności użytkownika

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

  • users/{userId} – rekordy użytkowników
  • 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 tranzycie) 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 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:

  • Odczytania: (5 * 10) + (30) = 80 odczytań / użytkownik / 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 czytań na użytkownika dziennie. Bardziej wydajne zapytania, takie jak w następującym przykładzie, mogą jednak zmniejszyć to obciążenie.

W przykładzie poniżej ograniczamy zapytanie do nowych czatów, używając sygnatury czasowej każdego pomyślnego pobrania zapisanej 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 odczytań na użytkownika dziennie. Możemy też ograniczyć zapytanie do nowych wiadomości od 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 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 wykorzystanie w przypadku zadań administratora

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 zł/100 tys. wyświetleń = 0,0009 zł 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 Cloud Firestore, miejsce na dane i przepustowość sieci są uznawane za podlegające opłacie, 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: Cloud Firestore jest dostępny 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: uwierzytelnianie nieograniczonej liczby użytkowników w prosty i bezpieczny sposób za pomocą Firebase Authentication. Firebase Authenticationintegruje się bezpośrednio z Cloud Firestore, dzięki czemu 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 Firebasecenach Firebase.