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

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

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

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

สมมติฐาน

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

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

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

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

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

ค่าใช้จ่ายในการอ่าน/เขียน
ค่าใช้จ่ายรายเดือนทั้งหมด = $11.10/เดือน
อ่านทั้งหมด 400K ต่อวัน = 50K ไม่มีค่าใช้จ่ายในการอ่าน + (350K อ่านที่ $0.06/100K) = 3.5 * $0.06
$0.21 / วัน * 30 = $6.30
100K เขียนรายวันทั้งหมด = 20K ไม่มีค่าใช้จ่ายในการเขียน + (80K เขียนที่ $0.18/100K) = .8 * $0.18
$0.14 / วัน * 30 = $4.20
ลบทั้งหมด 100K ต่อวัน = 20,000 ลบโดยไม่มีค่าใช้จ่าย + (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 เนื่องจากสมมติฐานของเราคือ DAU คิดเป็น 10% ของการติดตั้งแอปทั้งหมด ตัวเลขนี้จึงรวมเอาจำนวนผู้ใช้ทั้งหมดที่ติดตั้งแอปของคุณ

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

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

ค่าใช้จ่ายในการอ่าน/เขียน
ค่าใช้จ่ายรายเดือนทั้งหมด = $261.90/เดือน
การอ่านรายวันทั้งหมด 8 ล้านครั้ง = 50,000 อ่านฟรี + (7.95 ล้านอ่านที่ $0.06/100K) = 79.5 * $0.06
$4.77 / วัน * 30 = $143.10
การเขียนรายวันทั้งหมด 2 ล้านครั้ง = 20,000 เขียนโดยไม่มีค่าใช้จ่าย + (1.98 ล้านเขียนที่ $0.18/100K) = 19.8 * $0.18
$3.56 / วัน * 30 = $106.80
ลบทั้งหมด 2 ล้านครั้งต่อวัน = 20,000 ลบโดยไม่มีค่าใช้จ่าย + (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 USD / เดือน
พื้นที่จัดเก็บข้อความรายวัน 15KB / พื้นที่จัดเก็บ DAU + 3KB / ติดตั้ง 1 = พื้นที่เก็บข้อมูล 45KB / DAU * 100K DAUs = พื้นที่เก็บข้อมูลรายวัน 4.5GB / DAU * 30 = การใช้งานพื้นที่เก็บข้อมูล 135GB ต่อเดือน
พื้นที่เก็บข้อมูลฟรี 1GB + (134GB * 0.18 เหรียญ/GB) = $24.12 / เดือน

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

ใหญ่
(ติดตั้ง 10 ล้านครั้ง)

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

ค่าใช้จ่ายในการอ่าน/เขียน
ค่าใช้จ่ายรายเดือนทั้งหมด = รวม: 2637 เหรียญสหรัฐ/เดือน
การอ่านรายวันทั้งหมด 80 ล้านครั้ง = 50K ไม่มีค่าใช้จ่ายในการอ่าน + (79.95M อ่านที่ $0.06/100K) = 799.5 * $0.06
$47.97 / วัน * 30 = $1439.10
การเขียนรายวันทั้งหมด 20 ล้านครั้ง = 20K ไม่มีค่าใช้จ่ายในการเขียน + (19.98 ล้านเขียนที่ $0.18/100K) = 199.8 * $0.18
$35.96 / วัน * 30 = $1078.80
ลบทั้งหมด 20 ล้านต่อวัน = 20,000 ลบโดยไม่มีค่าใช้จ่าย + (19.98 ล้านลบที่ $0.02/100K) = 199.8 * $0.02
$4.00 / วัน * 30 = $120.00
ต้นทุนการจัดเก็บ/เครือข่าย
ค่าใช้จ่ายรายเดือนทั้งหมด = $313.62/เดือน
20KB / DAU ของการส่งออกรายวัน * 1M 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 เนื่องจากสมมติฐานของเราคือ DAU คิดเป็น 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 เวลาล่าสุดที่อัปเดตและข้อมูลเมตาอื่น ๆ

โปรดทราบว่าค่าใช้จ่ายในการอ่านข้อความเหล่านี้ถูกนำมาพิจารณาในการเดินทางอื่นๆ ดังนั้นยอดรวมด้านล่างจึงพิจารณาเฉพาะค่าใช้จ่ายในการเขียนเท่านั้น

สิทธิประโยชน์ที่รวม: บริการฟรีสำหรับแอปของคุณ

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

  • การเข้าถึงไคลเอ็นต์โดยตรง: Cloud Firestore เข้าถึงได้โดยตรงจากโค้ดไคลเอ็นต์ของคุณโดยใช้ SDK ดั้งเดิมของเรา ซึ่งหมายความว่าคุณไม่จำเป็นต้องสร้างและเรียกใช้เซิร์ฟเวอร์ API เพื่อเชื่อมต่อไคลเอนต์มือถือของคุณกับฐานข้อมูล
  • การทำ โหลดบาลานซ์: เนื่องจาก Cloud Firestore จะปรับขนาดโดยอัตโนมัติเพื่อรองรับการรับส่งข้อมูลไปยังฐานข้อมูลของคุณ คุณจึงไม่ต้องเรียกใช้ตัวจัดสรรภาระงาน
  • เวลาทำงานของเซิร์ฟเวอร์: ฐานข้อมูล Cloud Firestore ทำงานบนเซิร์ฟเวอร์ Google Cloud โดยให้ เวลาทำงานต่อเดือนมากกว่า 99%
  • การ ตรวจสอบสิทธิ์: ตรวจสอบสิทธิ์ผู้ใช้ไม่จำกัดอย่างง่ายดายและปลอดภัยด้วย Firebase Authentication Firebase Authentication ผสานรวมกับ Cloud Firestore โดยตรง ดังนั้นคุณไม่จำเป็นต้องเรียกใช้บริการตรวจสอบสิทธิ์ของคุณเอง
  • การ แจ้งเตือนแบบพุช: ส่งข้อความและการแจ้งเตือนด้วย Cloud Messaging
  • ผลิตภัณฑ์ Firebase อื่นๆ: ผสานรวมผลิตภัณฑ์ Firebase อื่นๆ โดยไม่มีค่าใช้จ่าย รวมถึงการทดสอบ A/B, Analytics, Crashlytics, การตรวจสอบประสิทธิภาพ และการกำหนดค่าระยะไกล เรียนรู้เพิ่มเติมเกี่ยวกับ ผลิตภัณฑ์ Firebase อื่นๆ และการ กำหนดราคา Firebase