Catch up on highlights from Firebase at Google I/O 2023. Learn more

ดูตัวอย่างราคา Cloud Firestore

ใช้ตัวอย่างแอปแชทพื้นฐานในโลกแห่งความเป็นจริงเพื่อประเมินการใช้งานและค่าใช้จ่ายของ Cloud Firestore นี่ไม่ใช่ค่าประมาณที่แน่นอน แต่สามารถช่วยให้คุณเข้าใจได้ดีขึ้นว่ามีการเรียกเก็บเงินจากการใช้งาน Cloud Firestore ของคุณอย่างไร

ภาพรวม: ค่าใช้จ่ายตามระดับการใช้งาน

เพื่อแสดงค่าใช้จ่ายทั่วไป ให้พิจารณาตัวอย่างแอปแชท ซึ่งผู้ใช้สามารถเริ่มต้นการแชทกับผู้เข้าร่วมตั้งแต่สองคนขึ้นไป ผู้ใช้สามารถดูการสนทนาที่ใช้งานอยู่ในรายการ อ่านข้อความ และส่งข้อความ สำหรับตัวอย่างนี้ เรากำลังใช้การกำหนดราคาสำหรับหลายภูมิภาคในอเมริกาเหนือ (โดยเฉพาะ nam5 )

สมมติฐาน

พิจารณาสมมติฐานต่อไปนี้เกี่ยวกับการใช้งานและการจัดเก็บข้อมูล:

  • ผู้ใช้ที่ใช้งานรายวัน (DAUs) คือ 10% ของการติดตั้งแอพทั้งหมด คุณสามารถประเมินค่าใช้จ่ายรายวันของคุณโดยใช้ค่าประมาณคร่าวๆ ของผู้ใช้ที่ใช้งานรายวัน (DAUs) ผู้ใช้เหล่านี้คือผู้ใช้ที่เปิดและใช้แอปของคุณอย่างแข็งขันในวันที่กำหนด ซึ่งโดยปกติจะเป็นส่วนย่อยเล็กน้อยของการติดตั้งแอปทั้งหมดของคุณ สำหรับการคำนวณด้านล่าง เราประมาณ DAU เป็น 10% ของจำนวนการติดตั้งแอปทั้งหมด
  • ขนาดเอกสารค่อนข้างเล็ก ดู ตารางด้านล่าง สำหรับรายละเอียดขนาดเอกสารตามประเภท
  • ข้อมูลถูกเก็บไว้เพียงสามเดือน ข้อความในแอปแชทตัวอย่างจะถูกเก็บไว้เป็นระยะเวลาสามเดือนเท่านั้น เพื่ออธิบายการดำเนินการลบ การคำนวณด้านล่างแสดงการลบรายวันสำหรับการเขียนรายวันทุกครั้ง
  • การประมาณการค่าใช้จ่ายเหล่านี้สะท้อนถึงค่าใช้จ่ายจำนวนมากของแอปตัวอย่าง แต่ไม่ใช่ทั้งหมด เราได้คำนวณค่าใช้จ่ายส่วนใหญ่ของแอปด้วยการคำนวณการดำเนินการ ผู้ใช้และที่จัดเก็บข้อความ และขาออกสำหรับงานของผู้ใช้ที่พบบ่อยที่สุดตามที่ระบุไว้ในคู่มือนี้ อย่างไรก็ตาม คุณอาจต้องคำนึงถึงค่าใช้จ่ายเพิ่มเติม ทั้งนี้ขึ้นอยู่กับโครงสร้างแอปและความต้องการข้อมูลของคุณ ใช้ตัวอย่างนี้เพื่อเป็นแนวทางในการคำนวณของคุณ แต่โปรดดูที่ หน้าราคา สำหรับคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับค่าใช้จ่ายของ Cloud Firestore

สำหรับรายละเอียดของการดำเนินการตามงานของผู้ใช้ โปรดดูที่ส่วน รายละเอียด: การใช้งานที่เรียกเก็บเงินตามงานของผู้ใช้

เล็ก
(ติดตั้ง 50k)

สำหรับการติดตั้งแอป 50,000 ครั้ง (ผู้ใช้ที่ใช้งานรายวัน 5,000 ราย): $12.14/เดือน

ค่าใช้จ่ายในการอ่าน/เขียน
ค่าใช้จ่ายรายเดือนทั้งหมด = $11.10/เดือน
อ่านทั้งหมด 400K ต่อวัน = อ่าน 50K ไม่มีค่าใช้จ่าย + (อ่าน 350K ที่ 0.06 USD/100K) = 3.5 * 0.06 ดอลลาร์
0.21 USD / วัน * 30 = 6.30 USD
การเขียนทั้งหมด 100K ต่อวัน = การเขียนแบบไม่มีค่าใช้จ่าย 20K + (การเขียน 80K ที่ $0.18/100K) = .8 * 0.18 ดอลลาร์
0.14 USD / วัน * 30 = 4.20 USD
ลบทั้งหมด 100K รายวัน = 20K ลบโดยไม่มีค่าใช้จ่าย + (80K ลบที่ 0.02 USD/100K) = .8 * 0.02 ดอลลาร์
0.02 USD / วัน * 30 = 0.60 USD
ต้นทุนการจัดเก็บ / เครือข่าย
ค่าใช้จ่ายรายเดือนทั้งหมด = $1.04/เดือน
20KB / DAU ของข้อมูลออกรายวัน * 5K DAU = ทางออกรายวัน 100MB * 30 = 3GB รายเดือนของเครือข่ายขาออก
3 GB ทางออกที่ไม่มีค่าใช้จ่าย = ไม่มีค่าใช้จ่าย 1
พื้นที่จัดเก็บข้อความรายวัน 15KB / พื้นที่เก็บข้อมูล DAU + 3KB / ติดตั้ง 2 = พื้นที่เก็บข้อมูล 45KB / DAU * 5K DAU = พื้นที่เก็บข้อมูลรายวัน 225MB / DAU * 30 = การใช้พื้นที่เก็บข้อมูล 6.75GB ต่อเดือน
พื้นที่เก็บข้อมูลฟรี 1GB + (5.75 * 0.18 USD) = 1.04 USD / เดือน

1 10GB ของข้อมูลขาออกของเครือข่ายรายเดือนไม่มีค่าใช้จ่ายสำหรับ Cloud Firestore
2 เนื่องจากสมมติฐานของเราคือ DAU คือ 10% ของการติดตั้งแอปทั้งหมด ตัวเลขนี้จึงคิดเป็นจำนวนผู้ใช้ทั้งหมดที่ติดตั้งแอปของคุณ

ปานกลาง
(การติดตั้ง 1M)

สำหรับการติดตั้งแอป 1,000,000 ครั้ง (ผู้ใช้ที่ใช้งานรายวัน 100,000 คน): $292.02/เดือน

ค่าใช้จ่ายในการอ่าน/เขียน
ค่าใช้จ่ายรายเดือนทั้งหมด = $261.90/เดือน
อ่านทั้งหมด 8M ต่อวัน = อ่าน 50K ไม่มีค่าใช้จ่าย + (อ่าน 7.95M ที่ 0.06 USD/100K) = 79.5 * 0.06 ดอลลาร์
$4.77 / วัน * 30 = $143.10
การเขียนทั้งหมด 2M ต่อวัน = การเขียนแบบไม่มีค่าใช้จ่าย 20K + (การเขียน 1.98M ที่ $0.18/100K) = 19.8 * 0.18 ดอลลาร์
$3.56 / วัน * 30 = $106.80
ลบทั้งหมด 2M ต่อวัน = การลบ 20K โดยไม่มีค่าใช้จ่าย + (การลบ 1.98M ที่ 0.02 USD/100K) = 19.8 * 0.02 USD
0.40 USD / วัน * 30 = 12.00 USD
ต้นทุนการจัดเก็บ / เครือข่าย
ค่าใช้จ่ายรายเดือนทั้งหมด = $30.12/เดือน
20KB / DAU ของข้อมูลออกรายวัน * 100K DAU = 2GB ของการส่งออกรายวัน * 30 = เครือข่ายขาออกรายเดือน 60GB
10 GB ข้อมูลออกที่ไม่มีค่าใช้จ่าย + (ข้อมูลออก 50GB * $0.12/GB) = $6.00 / เดือน
พื้นที่จัดเก็บข้อความรายวัน 15KB / พื้นที่เก็บข้อมูล DAU + 3KB / ติดตั้ง 1 = พื้นที่เก็บข้อมูล 45KB / DAU * 100K DAU = พื้นที่เก็บข้อมูลรายวัน 4.5GB / DAU * 30 = การใช้พื้นที่เก็บข้อมูล 135GB ต่อเดือน
พื้นที่เก็บข้อมูล 1GB แบบไม่มีค่าใช้จ่าย + (134GB * 0.18 USD/GB) = 24.12 USD/เดือน

1 เนื่องจากสมมติฐานของเราคือ DAU คือ 10% ของการติดตั้งแอปทั้งหมด ตัวเลขนี้คิดเป็นจำนวนผู้ใช้ทั้งหมดที่ติดตั้งแอปของคุณ

ใหญ่
(การติดตั้ง 10M)

สำหรับการติดตั้งแอป 10,000,000 ครั้ง (ผู้ใช้ที่ใช้งานรายวัน 1,000,000 คน): $2951.52

ค่าใช้จ่ายในการอ่าน/เขียน
ค่าใช้จ่ายรายเดือนทั้งหมด = ทั้งหมด: $2637.90/เดือน
อ่านทั้งหมด 80M ต่อวัน = อ่าน 50K ไม่มีค่าใช้จ่าย + (อ่าน 79.95M ที่ 0.06 USD/100K) = 799.5 * 0.06 ดอลลาร์
$47.97 / วัน * 30 = $1439.10
การเขียนทั้งหมด 20M ต่อวัน = การเขียนแบบไม่มีค่าใช้จ่าย 20K + (การเขียน 19.98M ที่ $0.18/100K) = 199.8 * 0.18 USD
$35.96 / วัน * 30 = $1078.80
ลบทั้งหมด 20M ต่อวัน = การลบ 20K โดยไม่มีค่าใช้จ่าย + (การลบ 19.98M ที่ 0.02 USD/100K) = 199.8 * 0.02 USD
$4.00 / วัน * 30 = $120.00
ต้นทุนการจัดเก็บ / เครือข่าย
ค่าใช้จ่ายรายเดือนทั้งหมด = $313.62/เดือน
20KB / DAU ของข้อมูลออกรายวัน * 1M DAU = 20GB ของการส่งออกรายวัน * 30 = เครือข่ายขาออกรายเดือน 600GB
10 GB ข้อมูลออกที่ไม่มีค่าใช้จ่าย + (ข้อมูลออก 590GB * $0.12/GB) = $70.80 / เดือน
พื้นที่จัดเก็บข้อความรายวัน 15KB / พื้นที่เก็บข้อมูล DAU + 3KB / ติดตั้ง 1 = พื้นที่เก็บข้อมูล 45KB / DAU * 1M DAU = พื้นที่เก็บข้อมูลรายวัน 45GB / DAU * 30 = การใช้พื้นที่เก็บข้อมูล 1350GB ต่อเดือน
(พื้นที่เก็บข้อมูลฟรี 1GB) + (1349GB * 0.18 USD/GB) = 242.82 USD/เดือน

1 เนื่องจากสมมติฐานของเราคือ DAU คือ 10% ของการติดตั้งแอปทั้งหมด ตัวเลขนี้คิดเป็นจำนวนผู้ใช้ทั้งหมดที่ติดตั้งแอปของคุณ

ข้อดีของรูปแบบการเรียกเก็บเงินของ Cloud Firestore ที่ควรพิจารณาคือคุณจ่ายเฉพาะสิ่งที่คุณใช้เท่านั้น เป็นผลให้ใบเรียกเก็บเงินของคุณอาจเพิ่มขึ้นและลดลงตามจำนวน DAU ของคุณ

รายละเอียด: การใช้งานที่เรียกเก็บเงินตามงานของผู้ใช้

สำหรับแอปแชทตัวอย่างของเรา โครงสร้างข้อมูลจะเป็นดังนี้:

  • users/{userId} — บันทึกผู้ใช้
  • groups/{groupId} — แชทระหว่างผู้ใช้ 2 คนขึ้นไป
    • messages/{messageId} — แต่ละข้อความในแชท

การจัดเก็บข้อมูล

ในการคำนวณต้นทุนการจัดเก็บสำหรับการจัดเก็บข้อมูลของแอพ ให้ใช้สมมติฐานต่อไปนี้เกี่ยวกับขนาดเอกสาร:

ของสะสม ขนาดเอกสาร (ระหว่างทาง) ขนาดเอกสาร (บนดิสก์)*
ผู้ใช้ 1KB 3KB
กลุ่ม 0.5KB 1.5KB
ข้อความ 0.25KB 0.75KB

*การคำนวณขนาดนี้รวมดัชนีสำหรับช่องข้อความ แต่ถือว่าการจัดทำดัชนีถูกปิดใช้งานสำหรับเนื้อหาข้อความ

นอกจากนี้ แอปยังเก็บเฉพาะข้อความที่มีอายุไม่เกิน 3 เดือน เพื่อลดค่าใช้จ่ายในการจัดเก็บ

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการคำนวณต้นทุนพื้นที่จัดเก็บ โปรดดูที่ การทำความเข้าใจการคำนวณขนาดพื้นที่เก็บ ข้อมูล

การดำเนินงาน

โดยทั่วไปแล้วผู้ใช้จะทำงานทั่วไปต่อไปนี้ให้เสร็จสิ้นในแอป:

  • ดูรายการแชท: ผู้ใช้เปิดหน้าจอหลักของแอพและดูรายการแชท (กลุ่มและโดยตรง) เรียงลำดับตามข้อความล่าสุดที่โพสต์
  • อ่านข้อความในแชท: ผู้ใช้เลือกแชทจากหน้าจอหลักและอ่านข้อความล่าสุดจากแชท
  • ส่งข้อความไปยังแชท: ผู้ใช้ส่งข้อความไปยังแชท (กลุ่มหรือโดยตรง)

การดำเนินการโดยประมาณทั้งหมดของแอปตัวอย่างใน 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 รายการที่ตรงกับการสืบค้น การเรียกใช้การรวมรายวันนี้จะเพิ่มค่าบริการรายเดือนต่อไปนี้:

เล็ก
(ติดตั้ง 50k)

สำหรับการติดตั้งแอป 50,000 ครั้ง (5,000 DAUs): $0.0009/เดือน

ผู้ใช้ที่ใช้งานอยู่ 5,000 ราย * 10 ข้อความใหม่ต่อผู้ใช้ = เอกสารข้อความใหม่ 50,000 ฉบับต่อวัน

นับเอกสารได้ 50,000 ฉบับ / ดัชนี 1,000 รายการต่อค่าอ่าน = 50 ครั้ง

50 อ่านต่อวัน * 30 วัน = 1,500 อ่านต่อเดือน

อ่าน 1,500 ครั้งต่อเดือน * .06/100,000 อ่านราคา = 0.0009 USD ต่อเดือน

ปานกลาง
(การติดตั้ง 1M)

สำหรับการติดตั้งแอป 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 ครั้งต่อเดือน * .06/100,000 อ่านราคา = 0.018 USD ต่อเดือน

ใหญ่
(การติดตั้ง 10M)

สำหรับการติดตั้งแอป 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 Authentication การรับรองความถูกต้องของ Firebase ผสานรวมกับ Cloud Firestore โดยตรง คุณจึงไม่ต้องเรียกใช้บริการตรวจสอบสิทธิ์ของคุณเอง
  • การแจ้งเตือนแบบพุช: ส่งข้อความและการแจ้งเตือนด้วย Cloud Messaging
  • ผลิตภัณฑ์ Firebase อื่นๆ: ผสานรวมผลิตภัณฑ์ Firebase อื่นๆ โดยไม่มีค่าใช้จ่าย รวมถึงการทดสอบ A/B, การวิเคราะห์, Crashlytics, การตรวจสอบประสิทธิภาพ และการกำหนดค่าระยะไกล เรียนรู้เพิ่มเติมเกี่ยวกับ ผลิตภัณฑ์ Firebase อื่นๆ และ ราคา Firebase