Ten praktyczny przykład podstawowej aplikacji do obsługi czatu pozwoli Ci ocenić poziom aktywności (Cloud Firestore). i kosztach. Nie jest to dokładna wartość, ale może pomóc lepiej dowiedz się, jak są naliczane opłaty za wykorzystanie Cloud Firestore.
Omówienie: koszty według poziomu wykorzystania
Aby przedstawić typowe koszty, przejrzyj przykładową aplikację do obsługi czatu,
rozpoczynanie czatów z co najmniej 2 uczestnikami. Użytkownicy mogą zobaczyć swoje aktywne konta
czaty na liście, czytanie i wysyłanie wiadomości. W tym przykładzie
używając ceny dla wielu regionów Ameryki Północnej (konkretnie 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. Dostępne opcje oszacuj dzienne koszty na podstawie przybliżonej liczby aktywnych użytkowników dziennie (liczba aktywnych użytkowników dziennie). Są to użytkownicy, którzy aktywnie otwierają Twoją aplikację i korzystają z niej na danym dnia, co zwykle stanowi niewielki podzbiór wszystkich aplikacji. instalacji. W poniższych obliczeniach liczba aktywnych użytkowników dziennie to 10% łączną liczbę instalacji aplikacji.
- Dokumenty są stosunkowo małe. Zapoznaj się z tabelą poniżej. zestawienie rozmiaru dokumentu według typu.
- Dane są przechowywane tylko przez 3 miesiące. Wiadomości na przykładowym czacie są przechowywane tylko przez 3 miesiące. Aby uwzględnić usunięcie operacji, poniższe obliczenia pokazują dzienne usunięcie 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 operacje, przechowywanie użytkowników i wiadomości oraz ruch wychodzący związany z użytkownikiem, który najczęściej opisane w tym przewodniku. Być może jednak trzeba będzie wziąć pod uwagę dodatkowych kosztów w zależności od struktury aplikacji i potrzeb związanych z danymi. Użyj tej przykład, który pomoże Ci w obliczeniach, ale zapoznaj się z cennikiem. aby uzyskać dokładniejsze wyjaśnienia kosztów usługi Cloud Firestore.
Podział operacji według zadań użytkownika znajdziesz tutaj: Podział: Rozliczane wykorzystanie według zadania użytkownika.
Mały
(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 przy 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. 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/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łatnej przestrzeni dyskowej + (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 liczba aktywnych użytkowników dziennie stanowią 10% wszystkich aplikacji
instalacji,
to łączna liczba użytkowników, którzy zainstalowali Twoją aplikację.
Średnie
(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/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 przy zapisach w cenie 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/100 tys. USD) | = | 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łatnej przestrzeni dyskowej + (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, to łączna liczba 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/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 przy zapisach w cenie 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ęcznie |
1 Zakładamy, że liczba aktywnych użytkowników dziennie stanowią 10% łącznej liczby instalacji aplikacji, to łączna liczba użytkowników, którzy zainstalowali Twoją aplikację.
Zaletą modelu rozliczeniowego Cloud Firestore, który warto wziąć pod uwagę, jest to, że płacić za to, z czego korzystasz. W efekcie Twój rachunek może się zwiększać lub zmniejszać wraz ze Liczba 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żytkownikagroups/{groupId}
– czaty z co najmniej 2 użytkownikamimessages/{messageId}
– każda wiadomość na czacie.
Miejsce na dane
Aby obliczyć koszty przechowywania danych z aplikacji, zastosuj się do tych wskazówek: 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 |
*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ż wiadomości nie starsze niż 3 miesiące, aby obniżyć koszty przechowywania danych.
Więcej informacji na temat obliczania kosztów miejsca na dane znajdziesz w sekcji Jak obliczać ilość miejsca na dane
Operacje
Użytkownicy zwykle wykonują w aplikacji te typowe czynności:
- Wyświetlanie listy czatów: użytkownicy otwierają ekran główny aplikacji. i wyświetlić listę czatów (grupowych i bezpośrednich) posortowaną według opublikowano wiadomość.
- Czytanie wiadomości na czacie:użytkownicy wybierają czaty na czacie. ekranu i czytać ostatnie wiadomości z czatów.
- Wysyłanie wiadomości na czacie:użytkownicy wysyłają wiadomości do czatu. (grupowej lub bezpośredniej).
Łączna szacowana liczba operacji przykładowej aplikacji w Cloud Firestore dla 3 obszarów typowe zadania użytkownika są następujące:
- 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 zadanie użytkownika, aby zobaczyć pełny opis i zestawienie operacji. miejsca na dane i koszty sieci w aplikacji.
Wyświetlanie listy czatów
Ekran główny aplikacji wczytuje 25 ostatnich czatów, które są wysyłane opłaty za 25 odczytów dokumentów. Zakładamy, że aktywny użytkownik otwiera aplikację 5 razy dziennie, co daje łącznie 125 odczytów na użytkownika dziennie. Jednak bardziej efektywne takie jak poniżej, mogą ograniczyć to obciążenie.
W poniższym przykładzie ograniczamy zapytanie do nowych czatów, używając sygnatury czasowej każdego udanego pobrania, zapisanej przez aplikację:
db.collection('groups') .where('participants', 'array-contains', 'user123') .where('lastUpdated', '>', lastFetchTimestamp) .orderBy('lastUpdated', 'desc') .limit(25)
Załóżmy, że przy każdym sprawdza aplikację. 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 zobaczyć ostatnie. wiadomości, wczytując przy początkowym wczytywaniu 50 najnowszych wiadomości.
Załóżmy, że typowy użytkownik wykonuje to działanie 5 razy dziennie (raz na za każdym razem, gdy otwierają ekran główny. Łączna liczba użytkowników odczytów 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 ze wszystkich czatów. Od jeśli zapytanie nie pobiera nowych wiadomości, to oznacza do 30 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 dwa zapisy dokumentu: jeden zapis w
messages
podkolekcja czatu i jeden zapis w czacie
dokument nadrzędny, aby zaktualizować sygnaturę czasową lastUpdated
i inne
metadanych.
Pamiętaj, że koszt czytania tych wiadomości został uwzględniony w innych podróży, więc poniższe sumy uwzględniają tylko koszt zapisu.
Rozliczane za wykorzystanie zadań administracyjnych
Jako właściciel lub administrator aplikacji prawdopodobnie chcesz generować raporty
do danych aplikacji. Możesz na przykład sprawdzać dzienną liczbę
liczbę wiadomości wysłanych przez użytkowników. Możesz to osiągnąć za pomocą
count()
– agregacja danych
messages
grupa kolekcji.
W przypadku zapytań agregujących, takich jak count()
, naliczana jest opłata za 1 przeczytany dokument
dla każdej grupy maksymalnie 1000 wpisów indeksu pasujących do zapytania. Uruchamiam
agregacja dzienna dodaje te opłaty miesięczne:
Mały
(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
Średnie
(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ą
Choć operacje Cloud Firestore, miejsce na dane i przepustowość sieci są już potrzebne jest uznawane za płatne wykorzystanie, otrzymujesz także wiele innych korzyści bez za dodatkowe koszty. Możesz skorzystać z tych bezpłatnych usług, porównaj Cloud Firestore z innymi opcjami baz danych:
- Bezpośredni dostęp klienta: dostęp do Cloud Firestore uzyskuje się bezpośrednio z za pomocą naszych natywnych pakietów SDK. Oznacza to, że nie trzeba tworzyć i uruchomić serwer API, aby połączyć klienty mobilne z bazą danych.
- Równoważenie obciążenia: funkcja Cloud Firestore skaluje się automatycznie ruchu do bazy danych, nie musisz uruchamiać systemu równoważenia obciążenia.
- Czas działania serwera: bazy danych Cloud Firestore działają na serwerach Google Cloud, zapewnia ponad 99% miesięcznej dostępności.
- 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łasnych uwierzytelniania.
- Powiadomienia push: wysyłaj wiadomości i powiadomienia przy użyciu Cloud Messaging.
- Inne usługi Firebase: możesz bezpłatnie zintegrować inne usługi Firebase, takich jak Testy A/B, Analytics, Crashlytics, Monitorowanie wydajności, oraz Zdalna konfiguracja. Dowiedz się więcej o innych usługach Firebase. i cennik Firebase.