ראה דוגמה לתמחור Cloud Firestore

השתמש בדוגמה האמיתית הזו של אפליקציית צ'אט בסיסית כדי לאמוד את השימוש והעלויות שלך ב-Cloud Firestore. זו לא אומדן מדויק, אבל זה יכול לעזור לך להבין טוב יותר כיצד מחויב השימוש שלך ב-Cloud Firestore.

סקירה כללית: עלויות לפי רמת שימוש

כדי להמחיש עלויות אופייניות, שקול אפליקציית צ'אט לדוגמה, שבה משתמשים יכולים ליזום צ'אטים עם שני משתתפים או יותר. משתמשים יכולים לראות את הצ'אטים הפעילים שלהם ברשימה, לקרוא הודעות ולשלוח הודעות. עבור דוגמה זו, אנו משתמשים בתמחור עבור האזור הרב-אזורי של צפון אמריקה (במיוחד nam5 ).

הנחות

שקול את ההנחות הבאות לגבי שימוש ואחסון נתונים:

  • משתמשים פעילים יומיים (DAUs) הם 10% מסך התקנות האפליקציה. אתה יכול להעריך את העלויות היומיות שלך באמצעות הערכה גסה של המשתמשים הפעילים היומיים שלך (DAUs). אלו הם המשתמשים שפותחים ומשתמשים באפליקציה שלך באופן פעיל ביום נתון, שהוא בדרך כלל תת-קבוצה קטנה מסך התקנות האפליקציה שלך. עבור החישובים שלהלן, הערכנו DAUs כ-10% מסך התקנות האפליקציה.
  • גדלי המסמכים קטנים יחסית. ראה את הטבלה שלהלן לפירוט של גודל המסמך לפי סוג.
  • הנתונים נשמרים רק לשלושה חודשים. ההודעות באפליקציית הצ'אט לדוגמה נשמרות לתקופה של שלושה חודשים בלבד. כדי לקחת בחשבון את פעולות המחיקה, החישובים שלהלן מציגים מחיקה יומית עבור כל כתיבה יומית.
  • הערכות עלויות אלו משקפות את עיקר העלויות של האפליקציה לדוגמה, אך לא את כולן. חשבנו על עיקר העלויות של אפליקציה על ידי חישוב פעולות, אחסון משתמש והודעות, ויציאה עבור משימות המשתמש השכיחות ביותר המתוארות במדריך זה. עם זאת, ייתכן שיהיה עליך לקחת בחשבון עלויות נוספות, בהתאם למבנה האפליקציה שלך ולצורכי הנתונים. השתמש בדוגמה זו כדי להנחות את החישובים שלך, אך עיין בדף התמחור להסברים יסודיים יותר על עלויות Cloud Firestore.

לפירוט של פעולות לפי משימת משתמש, עיין בסעיף פירוט: שימוש מחויב לפי משימות משתמש .

קָטָן
(50 אלף התקנות)

עבור 50,000 התקנות אפליקציה (5,000 משתמשים פעילים מדי יום): $12.14 לחודש

עלויות קריאה/כתיבה
עלות חודשית כוללת = $11.10 לחודש
סה"כ 400K קריאות יומיות = 50K קריאה ללא עלות + (350K קריאה ב-$0.06/100K) = 3.5 * $0.06
$0.21 ליום * 30 = $6.30
סה"כ 100,000 כתיבה יומית = 20K כתיבה ללא עלות + (80K כתיבה ב-$0.18/100K) = .8 * $0.18
$0.14 ליום * 30 = $4.20
100K מחיקות יומיות בסך הכל = 20K מחיקות ללא עלות + (80K מחיקות ב-$0.02/100K) = .8 * $0.02
$0.02 ליום * 30 = $0.60
עלויות אחסון/רשת
עלות חודשית כוללת = $1.04 לחודש
20KB / DAU של יציאה יומית * 5K DAUs = 100MB של יציאה יומית * 30 = יציאת רשת חודשית של 3GB
3 GB יציאה ללא עלות = ללא עלות 1
אחסון הודעות יומי של 15KB / DAU + 3KB אחסון / התקנה 2 = 45KB של אחסון / DAU * 5K DAUs = 225MB של אחסון יומי / DAU * 30 = 6.75GB שימוש חודשי באחסון
1GB אחסון ללא עלות + (5.75 * $0.18) = $1.04 לחודש

1 10GB של יציאת רשת חודשית ללא עלות עבור Cloud Firestore.
2 מכיוון שההנחה שלנו היא ש-DAUs הם 10% מסך התקנות האפליקציה, מספר זה מהווה את המספר הכולל של משתמשים שהתקינו את האפליקציה שלך.

בינוני
(מיליון התקנות)

עבור 1,000,000 התקנות אפליקציה (100,000 משתמשים פעילים מדי יום): $292.02 לחודש

עלויות קריאה/כתיבה
עלות חודשית כוללת = $261.90 לחודש
8 מיליון קריאה יומית בסך הכל = 50K קריאה ללא עלות + (7.95M קריאה ב-$0.06/100K) = 79.5 * $0.06
$4.77 ליום * 30 = $143.10
2 מיליון כתיבה יומית בסך הכל = 20K כתיבה ללא עלות + (1.98M כתיבה ב-$0.18/100K) = 19.8 * $0.18
$3.56 ליום * 30 = $106.80
2 מיליון מחיקות יומיות בסך הכל = 20K מחיקות ללא עלות + (1.98 מיליון מחיקות ב-$0.02/100K) = 19.8 * $0.02
$0.40 ליום * 30 = $12.00
עלויות אחסון/רשת
עלות חודשית כוללת = $30.12 לחודש
20KB / DAU של יציאה יומית * 100K DAUs = 2GB של יציאה יומית * 30 = יציאת רשת חודשית של 60GB
יציאה 10 GB ללא עלות + (יציאה של 50GB * $0.12/GB) = $6.00 לחודש
אחסון הודעות יומי של 15KB / DAU + 3KB אחסון / התקנה 1 = 45KB של אחסון / DAU * 100K DAUs = 4.5GB של אחסון יומי / DAU * 30 = 135GB שימוש חודשי באחסון
1GB אחסון ללא עלות + (134GB * $0.18/GB) = $24.12 לחודש

1 מכיוון שההנחה שלנו היא ש-DAUs הם 10% מסך התקנות האפליקציה, מספר זה מהווה את המספר הכולל של משתמשים שהתקינו את האפליקציה שלך.

גָדוֹל
(10 מיליון התקנות)

עבור 10,000,000 התקנות אפליקציה (1,000,000 משתמשים פעילים מדי יום): $2951.52

עלויות קריאה/כתיבה
עלות חודשית כוללת = סה"כ: $2637.90 לחודש
80 מיליון קריאה יומית בסך הכל = 50K קריאה ללא עלות + (79.95M קריאה ב-$0.06/100K) = 799.5 * $0.06
$47.97 ליום * 30 = $1439.10
20 מיליון כתיבה יומית בסך הכל = 20K ללא עלות כתיבה + (19.98M כתיבה ב-$0.18/100K) = 199.8 * $0.18
$35.96 ליום * 30 = $1078.80
20 מיליון מחיקות יומיות בסך הכל = 20K מחיקות ללא עלות + (19.98 מיליון מחיקות ב-$0.02/100K) = 199.8 * $0.02
$4.00 ליום * 30 = $120.00
עלויות אחסון/רשת
עלות חודשית כוללת = $313.62 לחודש
20KB / DAU של יציאה יומית * 1 מיליון DAUs = 20GB של יציאה יומית * 30 = יציאת רשת חודשית של 600GB
יציאה 10 GB ללא עלות + (יציאה של 590GB * $0.12/GB) = $70.80 לחודש
אחסון הודעות יומי של 15KB / DAU + 3KB אחסון / התקנה 1 = 45KB של אחסון / DAU * 1M DAUs = 45GB של אחסון יומי / DAU * 30 = 1350GB שימוש חודשי באחסון
(1GB אחסון ללא עלות) + (1349GB * $0.18/GB) = $242.82 לחודש

1 מכיוון שההנחה שלנו היא ש-DAUs הם 10% מסך התקנות האפליקציה, מספר זה מהווה את המספר הכולל של משתמשים שהתקינו את האפליקציה שלך.

יתרון של מודל החיוב של Cloud Firestore ששווה לשקול הוא שאתה משלם רק על מה שאתה משתמש בו. כתוצאה מכך, החשבון שלך עשוי לגדול ולהצטמצם עם ספירת ה-DAU שלך.

פירוט: שימוש מחויב לפי משימת משתמש

עבור אפליקציית הצ'אט לדוגמה שלנו, מבנה הנתונים הוא כדלקמן:

  • users/{userId} - רשומות משתמש
  • groups/{groupId} — צ'אטים בין 2 משתמשים או יותר
    • messages/{messageId} — כל הודעה בצ'אט.

אחסון נתונים

כדי לחשב את עלויות האחסון לאחסון נתוני האפליקציה, יש ליישם את ההנחות הבאות לגבי גדלי מסמכים:

אוסף גודל מסמך (במעבר) גודל מסמך (על דיסק)*
משתמשים 1KB 3KB
קבוצות 0.5KB 1.5KB
הודעות 0.25KB 0.75KB

*חישוב גודל זה כולל אינדקסים עבור שדות ההודעה, אך מניח שהאינדקס מושבת עבור תוכן ההודעה.

האפליקציה גם מאחסנת רק הודעות בנות עד שלושה חודשים, כדי להוזיל את עלויות האחסון.

למידע נוסף על חישוב עלויות אחסון, ראה הבנת חישובי גודל אחסון .

פעולות

משתמשים בדרך כלל ממלאים את המשימות הנפוצות הבאות באפליקציה:

  • ראה את רשימת הצ'אטים: משתמשים פותחים את מסך הבית של האפליקציה ורואים רשימה של צ'אטים (קבוצתיים וישירים) לפי ההודעה האחרונה שפורסמה.
  • קריאת הודעות בצ'אט: משתמשים בוחרים בצ'אטים ממסך הבית וקוראים הודעות אחרונות מצ'אטים.
  • שליחת הודעה לצ'אט: משתמשים שולחים הודעות לצ'אטים (קבוצתיים או ישירים).

סך הפעולות המשוערות של האפליקציה לדוגמה ב-Cloud Firestore עבור שלוש משימות המשתמש האופייניות הן כדלקמן:

  • קריאות: (5 * 10) + (30) = 80 קריאות / משתמש / יום
  • כותבים: (10 * 2) = 20 כותבים / משתמש / יום
  • יציאה מהרשת : (50 * 0.25KB) + (30 * 0.25KB) = 20KB למשתמש ליום
  • אחסון : (20 * 0.75KB) = 15 KB למשתמש ליום

שימוש כולל לפי משימת משתמש

בחר כל משימת משתמש כדי לראות תיאור מלא ופירוט של עלויות התפעול, האחסון והרשת באפליקציה.

ראה את רשימת הצ'אטים

מסך הבית של האפליקציה טוען את 25 הצ'אטים האחרונים, תוך חיובים עבור 25 קריאות מסמכים. נניח שמשתמש פעיל פותח את האפליקציה 5 פעמים ביום, בסך הכל 125 קריאות למשתמש בכל יום. עם זאת, שאילתות יעילות יותר, כמו זו שבדוגמה הבאה, יכולות להפחית עומס זה.

בדוגמה למטה, אנו מגבילים את השאילתה לצ'אטים חדשים באמצעות חותמת זמן של כל אחזור מוצלח, המאוחסנת על ידי האפליקציה:

db.collection('groups')
  .where('participants', 'array-contains', 'user123')
  .where('lastUpdated', '>', lastFetchTimestamp)
  .orderBy('lastUpdated', 'desc')
  .limit(25)

נניח שיש בממוצע 10 צ'אטים מעודכנים בכל פעם שהמשתמש בודק את האפליקציה. שאילתה זו גורמת ל-10 קריאות מסמכים בלבד.

קרא הודעות בצ'אט

משתמשים לוחצים על שרשורי צ'אט ממסך הבית כדי לראות הודעות אחרונות, תוך שהם טוענים את 50 ההודעות האחרונות בטעינה הראשונית.

נניח שהמשתמש הטיפוסי מבצע את הפעולה הזו 5 פעמים ביום (פעם אחת בכל פעם שהוא פותח את מסך הבית), מה שמוביל לסך של 250 קריאות למשתמש בכל יום. אנו יכולים גם להגביל את השאילתה שלנו להודעות חדשות מאז זמן האחזור האחרון:

db.collection('groups')
  .doc('group234')
  .collection('messages')
  .where('sentTime', '>', lastFetchTimestamp)
  .orderBy('sentTime', 'desc')
  .limit(50)

נניח שמשתמש מקבל כ-30 הודעות ביום בכל הצ'אטים. מכיוון שהגבלת את השאילתה כדי להביא הודעות חדשות, זה מתורגם ל-30 הודעות אוחזרו בלבד ליום.

שלח הודעה לצ'אט

משתמשים יכולים לשלוח הודעות למשתתפים אחרים ברגע שהם בצ'אט. נניח שמשתמש פעיל שולח בערך 10 הודעות ביום.

כל הודעה שנשלחה תגרום לשתי כתיבת מסמכים: כתיבה אחת לאוסף messages של הצ'אט וכתיבה אחת למסמך האב של הצ'אט כדי לעדכן את חותמת הזמן lastUpdated ומטא נתונים אחרים.

שימו לב שעלות קריאת ההודעות הללו נלקחה בחשבון בנסיעות האחרות, כך שהסיכומים להלן מתייחסים רק לעלות הכתיבה הזו.

שימוש מחויב למשימות מנהל

כבעלים של אפליקציה או כמנהל אפליקציה, אתה כנראה רוצה להפיק דוחות מנתוני האפליקציה שלך. לדוגמה, ייתכן שתרצה לשמור ספירה יומית של מספר ההודעות שנשלחו על ידי המשתמשים שלך. אתה יכול להשיג זאת באמצעות צבירה count() של קבוצת איסוף messages .

עבור שאילתות צבירה כגון count() , תחויב במסמך אחד שנקרא עבור כל אצווה של עד 1,000 כניסות אינדקס המותאמות לשאילתה. הפעלת הצבירה היומית הזו מוסיפה את החיובים החודשיים הבאים:

קָטָן
(50 אלף התקנות)

עבור 50,000 התקנות אפליקציה (5,000 DAUs): $0.0009 לחודש

5,000 משתמשים פעילים * 10 הודעות חדשות למשתמש = 50,000 מסמכי הודעה חדשים ליום

50,000 מסמכים נספרו / 1,000 התאמות אינדקס לכל טעינת קריאה = 50 קריאות

50 קריאות ביום * 30 ימים = 1,500 קריאה בחודש

1,500 קריאה בחודש * 0.06/100,000 מחיר קריאה = $0.0009 לחודש

בינוני
(מיליון התקנות)

עבור 1,000,000 התקנות אפליקציה (100,000 משתמשים פעילים מדי יום): $0.018 לחודש

100,000 משתמשים פעילים * 10 הודעות חדשות למשתמש = 1,000,000 מסמכי הודעה חדשים ביום

1,000,000 מסמכים נספרו / 1,000 התאמות אינדקס לכל טעינת קריאה = 1,000 קריאות

1,000 קריאה ביום * 30 יום = 30,000 קריאה בחודש

30,000 קריאה בחודש * 0.06/100,000 מחיר קריאה = $0.018 לחודש

גָדוֹל
(10 מיליון התקנות)

עבור 10,000,000 התקנות אפליקציה (1,000,000 משתמשים פעילים מדי יום): $0.18

1,000,000 משתמשים פעילים * 10 הודעות חדשות למשתמש = 10,000,000 מסמכי הודעה חדשים ביום

10,000,000 מסמכים נספרו / 1,000 התאמות אינדקס לכל טעינת קריאה = 10,000 קריאות

10,000 קריאה ביום * 30 ימים = 300,000 קריאה בחודש

300,000 קריאה בחודש * .06/100000 מחיר קריאה = 0.18 $ לחודש

הטבות כלולות: שירותים ללא עלות עבור האפליקציה שלך

בעוד שפעולות Cloud Firestore, אחסון ורוחב פס רשת נחשבים כולם לשימוש שניתן לחיוב, אתה מקבל גם מגוון יתרונות אחרים ללא עלות נוספת. שקול את השירותים הבאים ללא עלות כאשר אתה משווה את Cloud Firestore לאפשרויות אחרות של מסד נתונים:

  • גישה ישירה ללקוח: גישה ישירה ל-Cloud Firestore מקוד הלקוח שלך באמצעות ערכות ה-SDK המקוריות שלנו. המשמעות היא שאינך צריך לבנות ולהפעיל שרת API כדי לחבר את הלקוחות הניידים שלך למסד הנתונים.
  • איזון עומסים: מכיוון ש-Cloud Firestore משתנה באופן אוטומטי כדי לתמוך בתנועה למסד הנתונים שלך, אינך צריך להפעיל מאזן עומסים.
  • זמן פעילות שרת: מסדי נתונים של Cloud Firestore פועלים על שרתי Google Cloud, ומציעים למעלה מ-99% זמן פעולה חודשי .
  • אימות: אימות משתמשים ללא הגבלה בצורה פשוטה ומאובטחת עם אימות Firebase . אימות Firebase משתלב ישירות עם Cloud Firestore כך שאינך צריך להפעיל שירות אימות משלך.
  • הודעות דחיפה: שלח הודעות והתראות עם הודעות ענן .
  • מוצרי Firebase אחרים: שלב מוצרי Firebase אחרים ללא עלות, כולל בדיקות A/B, Analytics, Crashlytics, ניטור ביצועים ותצורה מרחוק. למידע נוסף על מוצרים אחרים של Firebase ועל תמחור Firebase .