استخدم هذا المثال الواقعي لتطبيق الدردشة الأساسي لقياس استخدام Cloud Firestore وتكاليفه. هذا ليس تقديرًا دقيقًا ، ولكنه يمكن أن يساعدك على فهم كيفية فوترة استخدامك لـ Cloud Firestore بشكل أفضل.
نظرة عامة: التكاليف حسب مستوى الاستخدام
لتوضيح التكاليف النموذجية ، ضع في اعتبارك مثالاً لتطبيق دردشة ، حيث يمكن للمستخدمين بدء محادثات مع اثنين أو أكثر من المشاركين. يمكن للمستخدمين رؤية محادثاتهم النشطة في قائمة ، وقراءة الرسائل ، وإرسال الرسائل. في هذا المثال ، نستخدم التسعير لمنطقة أمريكا الشمالية المتعددة (على وجه التحديد nam5
).
الافتراضات
ضع في اعتبارك الافتراضات التالية حول الاستخدام وتخزين البيانات:
- المستخدمون النشطون يوميًا (DAUs) يمثلون 10٪ من إجمالي عمليات تثبيت التطبيق. يمكنك تقدير تكاليفك اليومية باستخدام تقدير تقريبي للمستخدمين النشطين يوميًا (DAUs). هؤلاء هم المستخدمون الذين يفتحون تطبيقك ويستخدمونه بنشاط في يوم معين ، والذي يكون عادةً مجموعة فرعية صغيرة من إجمالي عمليات تثبيت التطبيق. بالنسبة للحسابات أدناه ، قدرنا وحدات DAU بنسبة 10٪ من إجمالي عدد عمليات تثبيت التطبيق.
- أحجام المستندات صغيرة نسبيًا. انظر الجدول أدناه للحصول على تفاصيل حجم الوثيقة حسب النوع.
- يتم تخزين البيانات لمدة ثلاثة أشهر فقط. يتم تخزين الرسائل في مثال تطبيق الدردشة لمدة ثلاثة أشهر فقط. لحساب عمليات الحذف ، تُظهر الحسابات أدناه حذفًا يوميًا لكل كتابة يومية.
- تعكس تقديرات التكلفة هذه الجزء الأكبر من تكاليف التطبيق النموذجي ، ولكن ليس جميعها. لقد أخذنا في الاعتبار الجزء الأكبر من تكاليف التطبيق من خلال حساب العمليات وتخزين المستخدم والرسائل والخروج لمهام المستخدم الأكثر تكرارًا الموضحة في هذا الدليل. ومع ذلك ، قد تحتاج إلى مراعاة التكاليف الإضافية ، اعتمادًا على بنية التطبيق واحتياجات البيانات. استخدم هذا المثال لتوجيه حساباتك ، لكن ارجع إلى صفحة التسعير للحصول على تفسيرات أكثر شمولاً لتكاليف Cloud Firestore.
لتقسيم العمليات حسب مهمة المستخدم ، راجع قسم : الاستخدام المفوتر حسب مهمة المستخدم .
صغير
(50 ألف تثبيت)
بالنسبة إلى 50000 عملية تثبيت للتطبيق (5000 مستخدم نشط يوميًا): 12.14 دولارًا أمريكيًا في الشهر
قراءة / كتابة التكاليف | |||||
---|---|---|---|---|---|
إجمالي التكلفة الشهرية = 11.10 دولارًا أمريكيًا في الشهر | |||||
إجمالي عدد القراءات اليومية 400 ألف | = | 50 ألف قراءة بدون تكلفة + (350 ألف قراءة بسعر 0.06 دولار / 100 ألف دولار) | = | 3.5 * 0.06 دولار | |
0.21 دولار أمريكي / يوم * 30 = 6.30 دولار أمريكي | |||||
100 ألف عمليات كتابة يومية | = | 20 ألف يكتب بلا تكلفة + (80 ألف يكتب بسعر 0.18 دولار / 100 ألف) | = | .8 * 0.18 دولار | |
0.14 دولار أمريكي / يوم * 30 = 4.20 دولار أمريكي | |||||
100 ألف محذوف يومي إجمالي | = | 20 ألف عملية حذف بدون تكلفة + (80 ألف حذف عند 0.02 دولار / 100 ألف دولار) | = | .8 * 0.02 دولار | |
0.02 دولار أمريكي / يوم * 30 = 0.60 دولار أمريكي |
تكاليف التخزين / الشبكات | |||||||
---|---|---|---|---|---|---|---|
إجمالي التكلفة الشهرية = 1.04 دولارًا أمريكيًا في الشهر | |||||||
20KB / DAU من الخروج اليومي * 5K DAUs | = | 100 ميغا بايت من الخروج اليومي * 30 | = | 3 جيجا بايت خروج شهري للشبكة | |||
3 جيجا بايت خروج بدون تكلفة = بدون تكلفة 1 | |||||||
15 كيلو بايت تخزين يومي للرسائل / DAU + 3 كيلو بايت تخزين / تثبيت 2 | = | تخزين 45 كيلوبايت / DAU * 5K DAU | = | 225 ميغا بايت من التخزين اليومي / DAU * 30 | = | 6.75 جيجا بايت سعة تخزين شهرية | |
1 جيجا تخزين بدون تكلفة + (5.75 * 0.18 دولار) = 1.04 دولار في الشهر |
1 10 غيغابايت من الخروج الشهري للشبكة بدون تكلفة لـ Cloud Firestore.
2 نظرًا لأننا نفترض أن DAUs تمثل 10٪ من إجمالي عمليات تثبيت التطبيق ، فإن هذا الرقم يمثل العدد الإجمالي للمستخدمين الذين قاموا بتثبيت تطبيقك.
واسطة
(مليون عملية تثبيت)
بالنسبة إلى 1،000،000 عملية تثبيت للتطبيق (100،000 مستخدم نشط يوميًا): 292.02 دولارًا أمريكيًا في الشهر
قراءة / كتابة التكاليف | |||||
---|---|---|---|---|---|
إجمالي التكلفة الشهرية = 261.90 دولارًا أمريكيًا في الشهر | |||||
إجمالي 8 مليون قراءة يومية | = | 50 ألف قراءة بدون تكلفة + (7.95 مليون قراءة عند 0.06 دولار / 100 ألف) | = | 79.5 * 0.06 دولار | |
4.77 دولارًا أمريكيًا / يوم * 30 = 143.10 دولارًا أمريكيًا | |||||
2M إجمالي عمليات الكتابة اليومية | = | 20 ألف يكتب بلا تكلفة + (1.98 مليون يكتب بسعر 0.18 دولار / 100 ألف) | = | 19.8 * 0.18 دولار | |
3.56 دولار / يوم * 30 = 106.80 دولار | |||||
إجمالي 2 مليون عملية حذف يومية | = | 20 ألف عملية حذف بدون تكلفة + (1.98 مليون حذف عند 0.02 دولار / 100 ألف) | = | 19.8 * 0.02 دولار | |
0.40 دولارًا أمريكيًا / يوم * 30 = 12.00 دولارًا أمريكيًا |
تكاليف التخزين / الشبكات | |||||||
---|---|---|---|---|---|---|---|
إجمالي التكلفة الشهرية = 30.12 دولارًا أمريكيًا في الشهر | |||||||
20KB / DAU من الخروج اليومي * 100K DAUs | = | 2 جيجا بايت خروج يومي * 30 | = | 60 جيجا خروج شهري للشبكة | |||
10 غيغابايت خروج بدون تكلفة + (50 غيغابايت خروج * 0.12 USD / غيغابايت) = 6.00 دولارات في الشهر | |||||||
15 كيلو بايت تخزين يومي للرسائل / DAU + 3 كيلو بايت تخزين / تثبيت 1 | = | تخزين 45 كيلوبايت / DAU * 100K DAU | = | 4.5 جيجا بايت من التخزين اليومي / DAU * 30 | = | 135 جيجابايت من سعة التخزين الشهرية | |
1 غيغابايت من مساحة التخزين بدون تكلفة + (134 غيغابايت * 0.18 USD / غيغابايت) = 24.12 دولارًا في الشهر |
1 نظرًا لافتراضنا أن DAUs تمثل 10٪ من إجمالي عمليات تثبيت التطبيق ، فإن هذا الرقم يمثل العدد الإجمالي للمستخدمين الذين قاموا بتثبيت تطبيقك.
كبير
(10 ملايين تثبيت)
بالنسبة إلى 10000000 عملية تثبيت للتطبيق (مليون مستخدم نشط يوميًا): 2951.52 دولارًا أمريكيًا
قراءة / كتابة التكاليف | |||||
---|---|---|---|---|---|
إجمالي التكلفة الشهرية = الإجمالي: 2637.90 دولارًا أمريكيًا في الشهر | |||||
80 مليون قراءة يومية | = | 50 ألف قراءة بدون تكلفة + (79.95 مليون قراءة عند 0.06 دولار / 100 ألف) | = | 799.5 * 0.06 دولار | |
47.97 دولارًا أمريكيًا / يوم * 30 = 1439.10 دولارًا أمريكيًا | |||||
20 مليون يكتب يوميا | = | 20 ألف يكتب بلا تكلفة + (19.98 مليون يكتب بسعر 0.18 دولار / 100 ألف) | = | 199.8 * 0.18 دولار | |
35.96 دولارًا أمريكيًا / يوم * 30 = 1078.80 دولارًا أمريكيًا | |||||
20 مليون حذف يومي إجمالي | = | 20 ألف عملية حذف بدون تكلفة + (19.98 مليون حذف عند 0.02 دولار / 100 ألف) | = | 199.8 * 0.02 دولار | |
4.00 دولارات في اليوم * 30 = 120.00 دولارًا |
تكاليف التخزين / الشبكات | |||||||
---|---|---|---|---|---|---|---|
إجمالي التكلفة الشهرية = 313.62 دولارًا أمريكيًا في الشهر | |||||||
20KB / DAU من الخروج اليومي * 1M DAUs | = | 20 جيجا بايت من الخروج اليومي * 30 | = | 600 جيجا بايت خروج شهري للشبكة | |||
10 غيغابايت خروج بدون تكلفة + (590 غيغابايت خروج * 0.12 USD / غيغابايت) = 70.80 دولارًا في الشهر | |||||||
15 كيلو بايت تخزين يومي للرسائل / DAU + 3 كيلو بايت تخزين / تثبيت 1 | = | تخزين 45 كيلو بايت / DAU * 1M DAUs | = | 45 جيجا بايت من التخزين اليومي / DAU * 30 | = | 1350 جيجابايت من سعة التخزين الشهرية | |
(1 غيغابايت من مساحة التخزين بدون تكلفة) + (1349 غيغابايت * 0.18 USD / غيغابايت) = 242.82 دولارًا في الشهر |
1 نظرًا لافتراضنا أن DAUs تمثل 10٪ من إجمالي عمليات تثبيت التطبيق ، فإن هذا الرقم يمثل العدد الإجمالي للمستخدمين الذين قاموا بتثبيت تطبيقك.
من مزايا نموذج فوترة Cloud Firestore الجديرة بالاعتبار أنك تدفع فقط مقابل ما تستخدمه. نتيجة لذلك ، قد تنمو فاتورتك وتتقلص مع عدد DAU الخاص بك.
الانهيار: الاستخدام المفوتر حسب مهمة المستخدم
بالنسبة لتطبيق الدردشة الخاص بنا ، تكون بنية البيانات كما يلي:
-
users/{userId}
- سجلات المستخدم -
groups/{groupId}
- الدردشات بين 2 أو أكثر من المستخدمين-
messages/{messageId}
- كل رسالة في الدردشة.
-
مخزن البيانات
لحساب تكاليف التخزين لتخزين بيانات التطبيق ، قم بتطبيق الافتراضات التالية حول أحجام المستندات:
مجموعة | حجم المستند (قيد النقل) | حجم المستند (على القرص) * |
---|---|---|
المستخدمين | 1 كيلوبايت | 3 كيلوبايت |
مجموعات | 0.5 كيلو بايت | 1.5 كيلوبايت |
رسائل | 0.25 كيلو بايت | 0.75 كيلو بايت |
* يتضمن حساب الحجم هذا فهارس لحقول الرسائل ، لكنه يفترض أن الفهرسة معطلة لمحتوى الرسالة.
يقوم التطبيق أيضًا بتخزين الرسائل التي يصل عمرها إلى ثلاثة أشهر فقط ، وذلك لتقليل تكاليف التخزين.
لمزيد من المعلومات حول حساب تكاليف التخزين ، راجع فهم حسابات حجم التخزين .
عمليات
يكمل المستخدمون عادةً المهام الشائعة التالية في التطبيق:
- انظر قائمة الدردشات: يفتح المستخدمون الشاشة الرئيسية للتطبيق ويشاهدون قائمة المحادثات (الجماعية والمباشرة) مرتبة حسب أحدث رسالة منشورة.
- قراءة الرسائل في الدردشة: يختار المستخدمون الدردشات من الشاشة الرئيسية ويقرؤون الرسائل الأخيرة من الدردشات.
- إرسال رسالة إلى الدردشة: يرسل المستخدمون رسائل إلى الدردشات (جماعية أو مباشرة).
إجمالي العمليات المقدرة للتطبيق كمثال في Cloud Firestore لمهام المستخدم النموذجية الثلاث كما يلي:
- يقرأ: (5 * 10) + (30) = 80 قراءة / مستخدم / يوم
- يكتب: (10 * 2) = 20 يكتب / مستخدم / يوم
- خروج الشبكة : (50 * 0.25 كيلو بايت) + (30 * 0.25 كيلو بايت) = 20 كيلو بايت / مستخدم / يوم
- التخزين : (20 * 0.75 كيلو بايت) = 15 كيلو بايت / مستخدم / يوم
إجمالي الاستخدام حسب مهمة المستخدم
حدد كل مهمة مستخدم للاطلاع على وصف كامل وتفصيل للعمليات والتخزين وتكاليف الشبكات في التطبيق.
انظر قائمة الدردشات
تُحمِّل الشاشة الرئيسية للتطبيق آخر 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
وبيانات التعريف الأخرى.
لاحظ أنه تم احتساب تكلفة قراءة هذه الرسائل في الرحلات الأخرى ، لذا فإن الإجماليات الواردة أدناه تأخذ في الاعتبار تكلفة الكتابة هذه فقط.
الفوائد المضمنة: خدمات مجانية لتطبيقك
في حين أن عمليات Cloud Firestore والتخزين وعرض النطاق الترددي للشبكة تعتبر جميعها استخدامًا قابلًا للفوترة ، فإنك تحصل أيضًا على مجموعة متنوعة من المزايا الأخرى دون أي تكلفة إضافية. ضع في اعتبارك الخدمات التالية بدون تكلفة عند مقارنة Cloud Firestore بخيارات قاعدة البيانات الأخرى:
- الوصول المباشر للعميل: يتم الوصول إلى Cloud Firestore مباشرة من رمز العميل الخاص بك باستخدام حزم SDK الأصلية الخاصة بنا. هذا يعني أنك لست بحاجة إلى إنشاء وتشغيل خادم API لتوصيل عملاء الجوال بقاعدة البيانات.
- موازنة التحميل: نظرًا لأن Cloud Firestore يتوسع تلقائيًا لدعم حركة المرور إلى قاعدة البيانات الخاصة بك ، فلن تضطر إلى تشغيل موازن التحميل.
- وقت تشغيل الخادم: تعمل قواعد بيانات Cloud Firestore على خوادم Google Cloud ، مما يوفر وقت تشغيل شهريًا يزيد عن 99٪ .
- المصادقة: مصادقة عدد غير محدود من المستخدمين ببساطة وأمان باستخدام مصادقة Firebase . تتكامل مصادقة Firebase مباشرةً مع Cloud Firestore حتى لا تحتاج إلى تشغيل خدمة المصادقة الخاصة بك.
- دفع الإخطارات: أرسل الرسائل والإشعارات من خلال خدمة المراسلة السحابية .
- منتجات Firebase الأخرى: ادمج منتجات Firebase الأخرى مجانًا ، بما في ذلك اختبار A / B والتحليلات و Crashlytics ومراقبة الأداء والتكوين عن بُعد. تعرف على المزيد حول منتجات Firebase الأخرى وأسعار Firebase .