App Hosting wymaga projektu w abonamencie Blaze z płatnością według wykorzystania. W przypadku tego abonamentu Twój projekt ma te bezpłatne limity dla usług Google Cloud wywoływanych przez App Hosting:
| Usługa | Funkcja | Bezpłatne | Płatne (za wykorzystanie powyżej bezpłatnych limitów) |
|---|---|---|---|
| App Hosting | przepustowość dla ruchu wychodzącego, | 10 GiB miesięcznie | 0,15 USD za GiB w pamięci podręcznej 0,20 USD za GiB danych nieznajdujących się w pamięci podręcznej |
| Artifact Registry | Miejsce na dane | 0,5 GB miesięcznie | 0,10 USD za GB miesięcznie za ponad 0,5 GB |
| Ruch wychodzący | Bezpłatne | Pełną listę cen ruchu wychodzącego znajdziesz w cenniku Artifact Registry. | |
| Cloud Run | CPU | 180 tys. sekund pracy vCPU | 0,00002400 USD za sekundę pracy vCPU |
| Pamięć | 360 tys. GiB-s | 0,00000250 USD / GiB-s | |
| Żądania | 2 mln żądań | 0,40 USD za milion żądań | |
| Cloud Build | Minuty kompilacji | 2500 minut kompilacji | 0,006 USD / minuta kompilacji |
| Cloud Logging | Miejsce na logi | 50 GiB na projekt miesięcznie | 0,50 USD/GiB |
| Przechowywanie logów | Bez opłat przez 30 dni | 0,01 USD/GiB/miesiąc za logi przechowywane przez ponad 30 dni | |
| Secret Manager | Aktywne wersje obiektów tajnych | 6 wersji miesięcznie | 0,06 USD za wersję na lokalizację |
| Operacje dostępu | 10 000 operacji miesięcznie | 0,03 USD za 10 000 operacji | |
| Powiadomienia o rotacji | 3 rotacje miesięcznie | 0,05 USD za rotację | |
| Cloud Storage1 | Standardowe miejsce na dane2 | 5 GB-miesiąc | 0,020 USD za GB miesięcznie |
| Operacje klasy A2 | 5000 | 0,0050 USD za 1000 operacji | |
| Operacje klasy B2 | 50 000 | 0,0004 USD za 1000 operacji | |
| Przenoszenie danych2 | 100 GB z Ameryki Północnej do każdego miejsca docelowego transferu danych Google Cloud (z wyjątkiem Australii i Chin) | 0,02 USD/GB w Ameryce Północnej, 0,02 USD/GB w Europie, 0,08 USD/GB w Azji, |
1Cloud Storage jest używany tylko podczas wdrażania z lokalnego źródła za pomocą interfejsu wiersza poleceń Firebase lub przez przesłanie skompresowanego archiwum w konsoli Firebase.
2Cloud Storage Limity Always Free dotyczą backendów App Hosting tylko w regionie US-CENTRAL1.
Bezpłatne wykorzystanie jest agregowane w projektach według konta rozliczeniowego i resetowane co miesiąc. Opłaty są naliczane tylko za wykorzystanie powyżej limitów.
Obliczanie kosztów
Projekt Firebase App Hosting zacznie generować koszty, gdy przekroczysz bezpłatne limity abonamentu Blaze z płatnością według wykorzystania. Opłaty są naliczane za te elementy zamówienia Firebase App Hosting:
Przepustowość dla ruchu wychodzącego bez pamięci podręcznej odnosi się do danych przesyłanych bezpośrednio z serwerów pierwotnych usługi Firebase App Hosting w celu realizacji żądań użytkowników. Serwery pierwotne znajdują się między usługą Cloud Run backendu App Hosting a Cloud CDN. Dzieje się tak, gdy żądane treści nie są jeszcze przechowywane w pamięci podręcznej Cloud CDN (czyli nie są zapisane w pamięci podręcznej). W rezultacie serwer pierwotny musi pobrać dane i wysłać je do użytkownika.
Ten proces wiąże się z kosztami z 2 głównych powodów:
- Wypełnianie pamięci podręcznych Cloud CDN: gdy użytkownik żąda treści, które nie są przechowywane w pamięci podręcznej, uruchamia to proces pobierania tych danych z serwera pierwotnego i zapisywania ich kopii w pamięci podręcznej Cloud CDN na potrzeby przyszłych żądań. Ten początkowy transfer danych ze źródła do CDN wpływa na ogólny koszt.
- Przesyłanie danych do użytkownika: gdy treści są dostępne (bezpośrednio z źródła lub z sieci CDN po początkowym wypełnieniu pamięci podręcznej), muszą zostać przesłane do urządzenia użytkownika w żądanym miejscu docelowym. To przesyłanie danych również wpływa na koszty.
Przepustowość dla ruchu wychodzącego z pamięci podręcznej odnosi się do danych przesyłanych w gibibajtach z pamięci podręcznych Cloud CDN na urządzenie użytkownika w żądanym miejscu docelowym.
Wskazówki dotyczące optymalizacji wydajności za pomocą Cloud CDN znajdziesz w artykule o zapisywaniu treści aplikacji w pamięci podręcznej.
Będziemy też naliczać opłaty za korzystanie z usług Google Cloud, których używa Twój backend:
- Cloud Run
- Cloud Build
- Artifact Registry
- Secret Manager
- Cloud Logging
- Cloud Storage
Dokładne pułapy cenowe tych elementów zamówienia znajdziesz na naszej stronie z cenami.
Przykłady rozliczeń
Koszt uruchomienia dynamicznej aplikacji internetowej w App Hosting może się znacznie różnić w zależności od czynników takich jak ruch, ustawienia środowiska wykonawczego i rozmiar odpowiedzi. Koszty w naszym przykładzie są oparte na pewnych założeniach dotyczących tych czynników.
Ruch i rozmiar odpowiedzi
Gdy aplikacja osiągnie miesięczny bezpłatny limit, każda wizyta w witrynie będzie wiązać się z kosztami. Te koszty nie są stałe. Zależą od takich czynników jak liczba żądań w tle wywoływanych przez każdą wizytę, moc obliczeniowa potrzebna do utworzenia odpowiedzi i rozmiar odpowiedzi. Niektóre żądania są po prostu droższe od innych. Na przykład wyświetlenie strony z dużą liczbą obrazów lub złożonych danych będzie prawdopodobnie kosztować więcej niż wyświetlenie prostego pliku HTML. Podobnie dynamiczne generowanie strony na serwerze jest zwykle droższe niż wyświetlanie wersji z pamięci podręcznej z sieci CDN.
Aby skutecznie oszacować koszty aplikacji, weź pod uwagę kilka kluczowych danych:
- Żądania na wizytę: ile pojedynczych żądań wywołuje typowa wizyta użytkownika? (Pamiętaj, że jedno „wczytanie strony” zwykle wiąże się z wieloma żądaniami dotyczącymi zasobów, takich jak obrazy, pliki CSS i JavaScript).
- Średni rozmiar odpowiedzi: jaki jest typowy rozmiar danych wysyłanych z powrotem w przypadku każdego żądania?
- Średni czas oczekiwania na odpowiedź: ile czasu średnio zajmuje aplikacji odpowiedź na żądanie?
Możesz oszacować te wartości, sprawdzając logi żądań aplikacji w konsoli Google Cloud. W naszych przykładowych obliczeniach kosztów zakładamy, że:
| Charakterystyka ruchu | |
|---|---|
| ~Płatne żądania na pojedynczą wizytę | 10 |
| Średni rozmiar odpowiedzi (KiB) | 400 |
| Średni czas oczekiwania na odpowiedź (ms) | 1000 |
| Współczynnik trafień w pamięci podręcznej | 50% |
Ustawienia środowiska wykonawczego
| Cloud Run – ustawienia1 | |
|---|---|
| Limit CPU (vCPU) | 1 |
| Limit pamięci (MiB) | 512 |
| Równoczesność (żądania) | 80 |
| minInstances | 0 |
| maxInstances | 100 |
1 Są to wartości domyślne podane przez App Hosting. Możesz sprawdzić konfigurację Cloud Run dla każdego wdrożenia, wyświetlając szczegóły wersji Cloud Run. Na karcie Wdrożenia w konsoli Firebase najedź kursorem na wdrożenie i kliknij menu z 3 kropkami, a następnie wybierz „Wyświetl wersję Cloud Run”.
Inne założenia
| Wykorzystanie w projekcie | |
|---|---|
| Metoda wdrażania | GitHub |
| Liczba kompilacji miesięcznie | 20 |
| Minuty na kompilację | 8 |
| Przechowywanie logów | < 30 dni |
| Wersje obiektów tajnych | < 6 wersji |
| Rozmiar obrazu w Artifact Registry (MB) | 380 |
Przykładowy rachunek
Przy tych założeniach możemy oszacować następujące koszty w tym przykładowym scenariuszu. Przy 10 tys. wizyt praktycznie nie ma kosztów. Zaczynają się one pojawiać dopiero przy milionie wizyt, gdzie wizyta to żądanie wysłane do aplikacji przez użytkownika.
| SKU | Cena | Jednostka | Poziom bezpłatny | Wykorzystanie 10 tys. wizyt | Koszt 10 tys. wizyt | 1 mln wizyt | Koszt 1 mln wizyt |
|---|---|---|---|---|---|---|---|
| Cloud Run – procesor | 0,00 USD |
vCPU-sekunda | 180 000,00 |
1250 |
0,00 USD |
125000 |
0,00 USD |
| Cloud Run – pamięć | 0,00 USD |
GiB-s | 360 000,00 |
625 |
0,00 USD |
62500 |
0,00 USD |
| Cloud Run – prośby | 0,40 zł |
M żądań SSR | 2,00 |
0,05 |
0,00 USD |
5 |
1,20 USD |
| Cloud Build – minuty kompilacji | 0,006 USD |
minuta kompilacji | 2500,00 |
160 |
0,00 USD |
160 |
0,00 USD |
| Artifact Registry – miejsce na dane | 0,10 USD |
GiB (przechowywane) | 0,50 |
0,6 |
0,03 PLN |
0,6 |
0,03 PLN |
| App Hosting – przepustowość dla ruchu wychodzącego bez pamięci podręcznej | 0,20 USD |
GiB | 10 |
2 |
0,00 USD |
200 |
39,00 USD |
| App Hosting – przepustowość dla ruchu wychodzącego z pamięci podręcznej | 0,15 USD |
GiB | 2 |
0,00 USD |
200 |
29,25 USD |
|
| Secret Manager – aktywne wersje obiektów tajnych | 0,06 USD |
wersje | 6,00 |
6,00 |
0,00 USD |
6,00 |
0,00 USD |
| Secret Manager – operacje dostępu | 0,03 USD |
10 tys. operacji | 1,0 |
0,10 |
0,00 USD |
5,00 |
0,12 USD |
| Secret Manager – powiadomienia o rotacji | 0,05 USD |
rotacje | 3,00 |
0,00 |
0,00 USD |
0,00 |
0,00 USD |
| Cloud Logging – miejsce na dane logowania | 0,50 USD |
GiB | 50 |
0,50 |
0,00 USD |
50 |
0,00 USD |
| Cloud Logging – przechowywanie logów | 0,03 PLN |
GiB/miesiąc | 30 dni | 0,00 USD |
0,00 USD |
||
| Łącznie | 0,01 USD |
69,58 zł |
Obliczenia
| SKU | Jednostka | Jak obliczyć wykorzystanie |
|---|---|---|
| Cloud Run – procesor | vCPU-sekunda | vCPU-sekundy = vCPU na instancję * średni czas oczekiwania na odpowiedź na żądanie * liczba wizyt * rozliczane żądania na wizytę / liczba żądań równoczesnych |
| Cloud Run – pamięć | GiB-s | GiB-sekundy = GiB na instancję * średni czas oczekiwania na odpowiedź na żądanie * liczba wizyt * rozliczane żądania na wizytę / liczba żądań równoczesnych |
| Cloud Run – prośby | M żądań SSR | Liczba żądań SSR w milionach = (liczba wizyt * liczba rozliczanych żądań na wizytę / 1 mln) * (1 – współczynnik trafień w pamięci podręcznej) |
| Cloud Build – minuty kompilacji | minuta kompilacji | minuty kompilacji = liczba kompilacji * minuty na kompilację |
| Artifact Registry – miejsce na dane 1 | GiB (przechowywane) | GiB (przechowywane) = 2 * rozmiar obrazu |
| App Hosting – przepustowość bez pamięci podręcznej | GiB | GiB niepobrane z pamięci podręcznej= (1 – współczynnik trafień w pamięci podręcznej) * (liczba wizyt * rozliczane żądania na wizytę * przepustowość dla ruchu wychodzącego na żądanie) |
| App Hosting – przepustowość pamięci podręcznej | GiB | GiB w pamięci podręcznej = współczynnik trafień w pamięci podręcznej * (liczba wizyt * rozliczane żądania na wizytę * przepustowość dla ruchu wychodzącego na żądanie) |
1 App Hosting automatycznie czyści starsze obrazy w Artifact Registry, zachowując obrazy z udanych kompilacji z ostatnich 14 dni (i zawsze zachowując co najmniej 5 ostatnich udanych kompilacji oraz kompilację aktywną). Zobacz zasady czyszczenia kompilacji.