Zobacz przykładowy cennik Cloud Firestore

Ten praktyczny przykład podstawowej aplikacji do obsługi czatu pozwala ocenić wykorzystanie i koszty Cloud Firestore. Nie jest to dokładne oszacowanie, ale może pomóc lepiej zrozumieć, jak naliczane są opłaty za wykorzystanie Cloud Firestore.

Omówienie: koszty według poziomu wykorzystania

Aby przedstawić typowe koszty, zobacz przykładową aplikację do obsługi czatu, w której użytkownicy mogą rozpoczynać czaty z co najmniej 2 uczestnikami. Użytkownicy widzą swoje aktywne czaty na liście, a także mogą czytać 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

Weź pod uwagę te założenia dotyczące wykorzystania i przechowywania danych:

  • Liczba aktywnych użytkowników dziennie to 10% łącznej liczby instalacji aplikacji. Możesz oszacować koszty dzienne na podstawie 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, co zwykle stanowi niewielki odsetek łą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. W tabeli poniżej znajdziesz podział rozmiaru dokumentu według typu.
  • Dane są przechowywane tylko przez 3 miesiące. Wiadomości w przykładowej aplikacji czatu są przechowywane tylko przez 3 miesiące. Aby uwzględnić operacje usuwania, poniższe obliczenia pokazują dzienne usuwanie każdego dziennego zapisu.
  • Te szacunkowe koszty odzwierciedlają większość kosztów przykładowej aplikacji, ale nie wszystkie. Uwzględniliśmy większość kosztów aplikacji, obliczając liczbę operacji, przechowywanie użytkowników i wiadomości oraz ruch wychodzący w przypadku najczęstszych zadań użytkownika opisanych w tym przewodniku. W zależności od struktury aplikacji i potrzeb związanych z danymi możesz jednak uwzględnić dodatkowe koszty. Posługuj się tym przykładem przy obliczeniach. Dokładniejsze informacje o kosztach Cloud Firestore znajdziesz na stronie z cennikiem.

Podział operacji według zadania użytkownika znajdziesz w sekcji Zestawienie: rozliczone wykorzystanie według zadania użytkownika.

Mała
(50 tys. instalacji)

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

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
 
Łącznie 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 USD / dzień * 30 = 0,60 USD
Koszty miejsca na dane i sieci
Łączny koszt miesięczny = 1,04 USD/miesiąc
20 KB / dzienna liczba aktywnych użytkowników dziennie * 5 tys. aktywnych użytkowników dziennie =   100 MB dziennego ruchu wychodzącego * 30 =   Miesięczny ruch wychodzący z sieci: 3 GB
3 GB bezpłatnego ruchu wychodzącego = bezpłatny1
 
15 KB miejsca na wiadomości dziennie / liczba aktywnych użytkowników dziennie + 3 KB miejsca na dane / instalacja2 =   45 KB miejsca na dane / liczba aktywnych użytkowników dziennie * 5 tys. aktywnych użytkowników dziennie =   225 MB miejsca na dane dziennie / liczba aktywnych użytkowników dziennie * 30 =   Miesięczne wykorzystanie miejsca na dane: 6,75 GB
1 GB bezpłatnego miejsca na dane + (5,75 * 0,18 USD) = 1,04 USD / miesiąc

1 10 GB miesięcznego ruchu wychodzącego z sieci nie wiąże się z opłatami w 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ę.

Średnia
(1 mln instalacji)

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

Koszty odczytu/zapisu
Łączny koszt miesięczny = 261,90 USD/miesiąc
8 mln odczytów dziennie =   50 tys.bezpłatnych odczytów + (7,95 mln odczytów przy 0,06 USD/100 tys.) =   79,5 * 0,06 USD
4,77 USD / dzień * 30 = 143,10 USD
 
Łącznie 2 mln zapisów dziennie =   20 tys.bezpłatnych zapisów + (1,98 mln zapisów przy 0,18 USD/100 tys.) =   19,8 * 0,18 USD
3,56 USD / dzień * 30 = 106,80 USD
 
Łącznie 2 mln usunięć dziennie =   20 tys.bezpłatnych usunięć + (1,98 mln usunięć po 0,02 USD/100 tys.) =   19,8 * 0,02 USD
0,40 USD / dzień * 30 = 12 USD
Koszty miejsca na dane i sieci
Łączny koszt miesięczny = 30,12 USD/miesiąc
20 KB / dzienna liczba aktywnych użytkowników dziennie * 100 tys. aktywnych użytkowników dziennie =   2 GB dziennego ruchu wychodzącego * 30 =   Miesięczny ruch wychodzący z sieci: 60 GB
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 wiadomości dziennie / liczba aktywnych użytkowników dziennie + 3 KB miejsca na dane / instalacja1 =   45 KB miejsca na dane / liczba aktywnych użytkowników dziennie * 100 tys. aktywnych użytkowników dziennie =   4,5 GB miejsca na dane dziennie / liczba aktywnych użytkowników dziennie * 30 =   135 GB miesięcznie na wykorzystanie miejsca
1 GB bezpłatnego miejsca na dane + (134 GB * 0,18 USD/GB) = 24,12 USD / miesiąc

1 Zakładamy, że liczba aktywnych użytkowników dziennie stanowią 10% łącznej liczby instalacji aplikacji, więc 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 = łącznie: 2637,90 USD/miesiąc
80 mln odczytów dziennie =   50 tys.bezpłatnych odczytów + (79,95 mln odczytów przy 0,06 USD/100 tys.) =   799,5 * 0,06 USD
47,97 USD / dzień * 30 = 1439,10 USD
 
Łącznie 20 mln zapisów dziennie =   20 tys.bezpłatnych zapisów + (19,98 mln zapisów po 0,18 USD/100 tys.) =   199,8 * 0,18 USD
35,96 PLN / dzień * 30 = 1078,80 PLN
 
Łącznie 20 mln usunięć dziennie =   20 tys.bezpłatnych usunięć + (19,98 mln usunięć po 0,02/100 tys.USD) =   199,8 * 0,02 USD
4,00 USD / dzień * 30 = 120 USD
Koszty miejsca na dane i sieci
Łączny koszt miesięczny = 313,62 USD/miesiąc
20 KB / dzienna liczba aktywnych użytkowników dziennie * 1 mln aktywnych użytkowników dziennie =   20 GB dziennego ruchu wychodzącego * 30 =   Miesięczny ruch wychodzący z sieci: 600 GB
10 GB bezpłatnego ruchu wychodzącego + (590 GB ruchu wychodzącego * 0,12 USD/GB) = 70,80 USD / miesiąc
 
15 KB miejsca na wiadomości dziennie / liczba aktywnych użytkowników dziennie + 3 KB miejsca na dane / 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 / liczba aktywnych użytkowników dziennie * 30 =   Miesięczne wykorzystanie miejsca na dane (1350 GB)
(1 GB bezpłatnego miejsca na dane) + (1349 GB * 0,18 USD/GB) = 242,82 USD / miesiąc

1 Zakładamy, że liczba aktywnych użytkowników dziennie stanowią 10% łącznej liczby instalacji aplikacji, więc ta liczba uwzględnia łączną liczbę użytkowników, którzy zainstalowali Twoją aplikację.

Zaletą modelu rozliczeniowego Cloud Firestore 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 naszej przykładowej aplikacji do obsługi czatu struktura danych wygląda tak:

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

Miejsce na dane

Aby obliczyć koszty przechowywania danych z 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 1KB 3KB
grupy 0,5 KB 1,5 KB
wiadomości 0,25 KB 0,75 KB

*Ta metoda obliczania rozmiaru uwzględnia indeksy pól wiadomości, ale przy założeniu, że indeksowanie treści wiadomości jest wyłączone.

Aplikacja przechowuje również tylko wiadomości sprzed maksymalnie 3 miesięcy, co pozwala 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:

Szacowana łączna liczba operacji z przykładowej aplikacji w Cloud Firestore dla 3 typowych zadań użytkownika jest taka:

  • Odczyty: (5 * 10) + (30) = 80 odczytów na użytkownika/dzień
  • Zapisy: (10 * 2) = 20 zapisów / użytkownik / dzień
  • Ruch wychodzący z sieci: (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB na użytkownika/dzień
  • Miejsce na dane: (20 * 0,75 KB) = 15 KB na użytkownika/dzień

Łączne wykorzystanie według działania użytkownika

Wybierz każde zadanie użytkownika, aby zobaczyć pełny opis i zestawienie kosztów operacji, miejsca na dane i sieci w aplikacji.

Wyświetlanie listy czatów

Ekran główny aplikacji wczytuje 25 ostatnich czatów, co wiąże się z opłatami 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 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ę, pojawia się średnio 10 zaktualizowanych czatów. To zapytanie wywołuje tylko 10 odczytów dokumentów.

Czytanie wiadomości na czacie

Użytkownicy mogą klikać wątki czatu na ekranie głównym, aby wyświetlić najnowsze wiadomości i wczytać 50 ostatnich wiadomości przy wczytywaniu początkowym.

Załóżmy, że typowy użytkownik wykonuje to działanie 5 razy dziennie (raz na każde otwarcie ekranu głównego), co daje łącznie 250 odsłon dziennie na użytkownika. 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 ze wszystkich czatów. Ponieważ zapytanie zostało ograniczone do pobierania nowych wiadomości, przekłada się to na zaledwie 30 pobranych wiadomości dziennie.

Wysyłanie wiadomości na czacie

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

Każda wysłana wiadomość spowoduje 2 zapisy dokumentu: jeden zostanie zapisany w podkolekcji messages czatu, a drugi w dokumencie nadrzędnym 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 sumy poniżej uwzględniają tylko koszt zapisu.

Rozliczane za wykorzystanie zadań administracyjnych

Jako właściciel lub administrator aplikacji pewnie chcesz generować raporty na podstawie danych o aplikacji. Możesz na przykład sprawdzać dzienną liczbę wiadomości wysyłanych przez użytkowników. Aby to zrobić, użyj agregacji count() dla grupy kolekcji messages.

W przypadku zapytań agregujących, takich jak count(),naliczana jest opłata za 1 odczytany dokument dla każdej grupy maksymalnie 1000 wpisów indeksu pasujących do zapytania. Po uruchomieniu tej agregacji dziennej zostaną doliczone te opłaty miesięczne:

Mała
(50 tys. instalacji)

W przypadku 50 tys.instalacji aplikacji (5000 dziennie aktywnych użytkowników dziennie): 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 dopasowań indeksu na opłatę za odczyt = 50 odczytów

50 odczytów dziennie * 30 dni = 1500 odczytów na miesiąc

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

Średnia
(1 mln instalacji)

W przypadku 1 mln 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 dokumentów / 1000 dopasowań indeksu na opłatę za odczyt = 1000 odczytów

1000 odczytów dziennie * 30 dni = 30 000 odczytów na miesiąc

30 000 odczytów miesięcznie * 0,06/100 000 ceny odczytu = 0,018 USD za miesiąc

Duży
(10 mln instalacji)

W przypadku 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 dokumentów / 1000 dopasowań indeksu 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 * 0,06/100 000 ceny odczytu = 0,18 USD za miesiąc

Korzyści: bezpłatne usługi związane z aplikacją

Operacje, miejsce na dane i przepustowość sieci w Cloud Firestore to płatne wykorzystanie, ale masz też dostęp do wielu innych korzyści bez dodatkowych kosztów. Przy porównywaniu Cloud Firestore z innymi opcjami baz danych rozważ te bezpłatne usługi:

  • Bezpośredni dostęp klienta: dostęp do Cloud Firestore jest możliwy bezpośrednio z poziomu kodu klienta za pomocą naszych natywnych pakietów SDK. Oznacza to, że nie musisz tworzyć i uruchamiać serwera API, aby połączyć klienty mobilne z bazą danych.
  • Równoważenie obciążenia: Cloud Firestore skaluje się automatycznie, aby obsługiwać ruch do bazy danych, więc nie musisz uruchamiać systemu równoważenia obciążenia.
  • Dostępność serwera: bazy danych Cloud Firestore działają na serwerach Google Cloud, co zapewnia czas działania ponad 99% miesięcznie.
  • Uwierzytelnianie: w prosty i bezpieczny sposób uwierzytelnij nieograniczoną liczbę użytkowników 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: możliwość wysyłania wiadomości i powiadomień za pomocą Komunikacji w chmurze.
  • Inne usługi Firebase: możesz bezpłatnie zintegrować inne usługi Firebase, takie jak Testy A/B, Analytics, Crashlytics, Monitorowanie wydajności czy Zdalna konfiguracja. Dowiedz się więcej o innych usługach Firebase i cenach Firebase.