כדי להשתמש ב-App Hosting, צריך פרויקט בתוכנית התמחור Blaze בתשלום לפי שימוש. בתוכנית התמחור הזו, לפרויקט יש את המגבלות הבאות ללא עלות למוצרי Google Cloud שמופעלים על ידי App Hosting:
| מוצר | תכונה | ללא עלות | חיוב (על שימוש מעבר למגבלות ללא עלות) |
|---|---|---|---|
| App Hosting | רוחב הפס לנתונים יוצאים | 10GiB לחודש | $0.15 לכל GiB במטמון 0.20$ ל-GiB שלא נשמר במטמון |
| Artifact Registry | אחסון | 0.5GB לחודש | 0.10$ ל-GB לחודש, מעל 0.5GB |
| תעבורת נתונים יוצאת (egress) | ללא תשלום | לרשימה המלאה של מחירי תעבורת הנתונים היוצאת, ראו את המחירון של Artifact Registry | |
| Cloud Run | CPU | 180,000 שניות של vCPU | 0.00002400$ לשניית vCPU |
| זיכרון | 360,000 GiB-seconds | 0.00000250$ לכל GiB לשנייה | |
| Requests | 2 מיליון בקשות | 0.40$ למיליון בקשות | |
| Cloud Build | דקות בנייה | 2,500 דקות build | $0.006 לדקת build |
| Cloud Logging | אחסון של רישום ביומן | 50GiB לפרויקט לחודש | $0.50/GiB |
| שמירת יומנים | ללא עלות למשך 30 ימים | 0.01$ ל-GiB לחודש ליומנים שנשמרים יותר מ-30 ימים | |
| Secret Manager | גרסאות פעילות של סודות | 6 גרסאות בחודש | 0.06$ לגרסה לכל מיקום |
| פעולות גישה | 10,000 פעולות בחודש | 0.03$ לכל 10,000 פעולות | |
| התראות על רוטציה | 3 רוטציות בחודש | 0.05$ לכל סיבוב | |
| Cloud Storage1 | Standard Storage2 | 5GB לחודש | 0.020$ לכל GB לחודש |
| פעולות מקטגוריה Class A2 | 5,000 | 0.0050$ לכל 1,000 פעולות | |
| פעולות מסוג Class B2 | 50,000 | 0.0004$ לכל 1,000 פעולות | |
| העברת נתונים2 | 100GB מצפון אמריקה לכל יעד של העברת נתונים ב-Google Cloud (לא כולל אוסטרליה וסין) | 0.02$ לכל GB בצפון אמריקה 0.02$ ל-GB באירופה 0.08$ לכל GB באסיה |
השדה 1Cloud Storage משמש רק כשפורסים ממקור מקומי באמצעות ה-CLI של Firebase או כשמעלים ארכיון דחוס במסוף Firebase.
2Cloud Storage המכסות של "תמיד בחינם" חלות על קצוות עורפיים של App Hosting ב-US-CENTRAL1 בלבד.
השימוש ללא עלות נצבר בפרויקטים לפי החשבון לחיוב, ומתאפס מדי חודש. החיוב הוא רק על שימוש מעבר למגבלות.
חישוב עלויות
בפרויקט Firebase App Hosting נצברות עלויות אחרי שחורגים מהמכסות ללא עלות של תוכנית התמחור Blaze בתשלום לפי שימוש. החיוב הוא על הפריטים הבאים ב-Firebase App Hosting:
רוחב פס לנתונים יוצאים שלא נשמרו במטמון מתייחס לנתונים שמועברים ישירות משרתי המקור של שירות Firebase App Hosting כדי למלא את בקשות המשתמשים. שרתי המקור ממוקמים בין שירות Cloud Run של קצה עורפי של App Hosting לבין Cloud CDN. זה קורה כשהתוכן המבוקש לא מאוחסן במטמון של Cloud CDN (כלומר, הוא לא נשמר במטמון). לכן, שרת המקור צריך לאחזר את הנתונים ולשלוח אותם למשתמש.
התהליך הזה כרוך בעלויות משתי סיבות עיקריות:
- אכלוס המטמון של Cloud CDN: כשמשתמש מבקש תוכן שלא נשמר במטמון, מופעל תהליך לאחזור הנתונים האלה משרת המקור ושמירת עותק במטמון של Cloud CDN לבקשות עתידיות. ההעברה הראשונית הזו של נתונים מהמקור ל-CDN תורמת לעלות הכוללת.
- העברת נתונים למשתמש הקצה: אחרי שהתוכן זמין (ישירות מהמקור או מה-CDN אחרי האכלוס הראשוני של המטמון), צריך להעביר אותו למכשיר של משתמש הקצה ביעד המבוקש. גם העברת הנתונים הזו תורמת לעלות.
רוחב פס לנתונים יוצאים במטמון מתייחס לנתונים שמועברים בגיביבייטים מהמטמונים של Cloud CDN למכשיר של משתמש הקצה ביעד המבוקש.
במאמר שמירת תוכן של אפליקציות במטמון מוסבר איך לשפר את הביצועים באמצעות Cloud CDN.
בנוסף, תחויבו על השימוש במוצרי Google Cloud הבסיסיים שבהם משתמש הקצה העורפי:
- Cloud Run
- Cloud Build
- Artifact Registry
- Secret Manager
- Cloud Logging
- Cloud Storage
אפשר לראות את המחירים המדויקים של הפריטים האלה בדף התמחור.
דוגמאות לחיובים
העלות של הפעלת אפליקציית אינטרנט דינמית ב-App Hosting יכולה להשתנות מאוד בהתאם לגורמים כמו תנועה, הגדרות זמן ריצה וגודל התגובה. העלויות בדוגמה שלנו מבוססות על הנחות מסוימות לגבי הגורמים האלה.
גודל התנועה והתגובה
אחרי שהאפליקציה תגיע למכסה החודשית החינמית, כל ביקור באתר יהיה כרוך בעלויות. העלויות האלה לא קבועות, והן תלויות בגורמים כמו מספר הבקשות ברקע שכל ביקור מפעיל, כוח המחשוב שנדרש כדי ליצור את התגובה וגודל התגובה. יש בקשות שפשוט עולות יותר מאחרות. לדוגמה, סביר להניח שהעלות של הצגת דף עם הרבה תמונות או נתונים מורכבים תהיה גבוהה יותר מהעלות של הצגת קובץ HTML פשוט. באופן דומה, יצירת דף באופן דינמי בשרת בדרך כלל יקרה יותר מהצגת גרסה שנשמרה במטמון מ-CDN.
כדי להעריך ביעילות את עלויות האפליקציה, כדאי להביא בחשבון כמה מדדים עיקריים:
- בקשות לכל ביקור: כמה בקשות נפרדות מופעלות בביקור טיפוסי של משתמש? (חשוב לזכור ש "טעינת דף" אחת כוללת בדרך כלל הרבה בקשות בסיסיות לנכסים כמו תמונות, CSS ו-JavaScript).
- גודל תגובה ממוצע: מה הגודל הטיפוסי של הנתונים שנשלחים בחזרה לכל בקשה?
- זמן אחזור ממוצע של תגובה: כמה זמן לוקח לאפליקציה להגיב לבקשה, בממוצע?
אפשר להעריך את הערכים האלה על ידי בדיקת יומני הבקשות של האפליקציה במסוף Google Cloud. הדוגמאות שלנו לחישובי עלויות מבוססות על ההנחות הבאות:
| מאפייני התנועה | |
|---|---|
| ~בקשות שחויבו לכל ביקור בודד | 10 |
| גודל תגובה ממוצע (KiB) | 400 |
| זמן אחזור ממוצע של תגובה (באלפיות השנייה) | 1000 |
| שיעור המציאה במטמון (cache hit) | 50% |
ההגדרות של סביבת זמן הריצה
| Cloud Run הגדרות1 | |
|---|---|
| מגבלת מעבד (vCPU) | 1 |
| מגבלת הזיכרון (MiB) | 512 |
| בו-זמניות (בקשות) | 80 |
| minInstances | 0 |
| maxInstances | 100 |
1 אלה ערכי ברירת המחדל שסופקו על ידי App Hosting. כדי לבדוק את ההגדרות האישיות של Cloud Run בכל השקה, אפשר להציג את פרטי הגרסה של Cloud Run. בכרטיסייה Rollouts במסוף Firebase, מעבירים את העכבר מעל השקה ולוחצים על סמל האפשרויות הנוספות (3 נקודות), ואז על View Cloud Run revision.
הנחות אחרות
| שימוש בפרויקט | |
|---|---|
| שיטת הפריסה | GitHub |
| מספר גרסאות build בחודש | 20 |
| דקות לכל גרסה | 8 |
| שמירת יומנים | פחות מ-30 ימים |
| גרסאות של סודות | פחות מ-6 גרסאות |
| גודל התמונה ב-Artifact Registry (MB) | 380 |
חשבון לדוגמה
בהתאם להנחות האלה, אנחנו יכולים להסיק את העלויות הבאות בתרחיש לדוגמה. ברמה של 10,000 ביקורים אין כמעט עלויות, ועלויות משמעותיות מתחילות להצטבר ברמה של מיליון ביקורים, כאשר ביקור הוא בקשה לאפליקציה שלכם שבוצעה על ידי משתמש.
| SKU | מחיר | היחידה | מסלול ללא עלות | 10,000 ביקורים | עלות של 10,000 ביקורים | שימוש במיליון ביקורים | עלות של מיליון ביקורים |
|---|---|---|---|---|---|---|---|
| Cloud Run – מעבד (CPU) | $0.00 |
vCPU second | 180,000.00 |
1250 |
$0.00 |
125000 |
$0.00 |
| Cloud Run – זיכרון | $0.00 |
GiB לשנייה | 360,000.00 |
625 |
$0.00 |
62500 |
$0.00 |
| Cloud Run – בקשות | $0.40 |
בקשות SSR במיליונים | 2.00 |
0.05 |
$0.00 |
5 |
$1.20 |
| Cloud Build – דקות build | $0.006 |
דקת build | 2,500.00 |
160 |
$0.00 |
160 |
$0.00 |
| Artifact Registry – אחסון | $0.10 |
GiB (מאוחסן) | 0.50 |
0.6 |
$0.01 |
0.6 |
$0.01 |
| App Hosting – רוחב הפס לנתונים יוצאים שלא נשמרו במטמון | $0.20 |
GiB | 10 |
2 |
$0.00 |
200 |
$39.00 |
| App Hosting – רוחב הפס לנתונים יוצאים שנשמרו במטמון | $0.15 |
GiB | 2 |
$0.00 |
200 |
$29.25 |
|
| Secrets Manager – גרסאות פעילות של סודות | $0.06 |
גרסאות | 6.00 |
6.00 |
$0.00 |
6.00 |
$0.00 |
| Secrets Manager – פעולות גישה | $0.03 |
10,000 פעולות | 1.0 |
0.10 |
$0.00 |
5.00 |
$0.12 |
| Secrets Manager – התראות על רוטציה | $0.05 |
סבבים | 3.00 |
0.00 |
$0.00 |
0.00 |
$0.00 |
| Cloud Logging – אחסון של רישום ביומן | 0.50$ |
GiB | 50.00 |
0.50 |
$0.00 |
50.00 |
$0.00 |
| Cloud Logging – שמירת יומנים | $0.01 |
GiB לחודש | 30 ימים | $0.00 |
$0.00 |
||
| סה"כ | 0.04 ש"ח |
$69.58 |
חישובים
| מק"ט | יחידה | איך מחשבים את השימוש |
|---|---|---|
| Cloud Run – מעבד (CPU) | vCPU second | vCPU seconds = vCPU per instance * average response latency per request * # of visits * billed requests per visit / # of concurrent requests |
| Cloud Run – זיכרון | GiB לשנייה | שניות GiB = GiB לכל מכונה * זמן אחזור ממוצע לתגובה לכל בקשה * מספר הביקורים * בקשות לחיוב לכל ביקור / מספר הבקשות המקבילות |
| Cloud Run – בקשות | בקשות SSR במיליונים | M בקשות SSR = (מספר הביקורים * בקשות לחיוב לכל ביקור / מיליון) * (1 - שיעור המציאה במטמון) |
| Cloud Build – דקות build | דקת build | דקות build = מספר ה-builds * דקות לכל build |
| Artifact Registry – אחסון 1 | GiB (מאוחסן) | GiB (מאוחסן) = 2 * גודל התמונה |
| App Hosting – רוחב פס ללא שמירה במטמון | GiB | Uncached GiB= (1 - cache-hit rate) * (# of visits * billed requests per visit * רוחב הפס לנתונים יוצאים per request) |
| App Hosting – רוחב פס במטמון | GiB | GiB במטמון = שיעור המציאה במטמון * (מספר הביקורים * בקשות לחיוב לכל ביקור * רוחב הפס לנתונים יוצאים לכל בקשה) |
1 App Hosting מנקה באופן אוטומטי תמונות ישנות יותר ב-Artifact Registry, ושומר תמונות מגרסאות build מוצלחות ב-14 הימים האחרונים (ותמיד שומר לפחות את 5 גרסאות ה-build המוצלחות האחרונות, בנוסף לגרסת ה-build הפעילה). מדיניות ניקוי build