Xem ví dụ về giá của Cloud Firestore

Hãy sử dụng ví dụ thực tế này về một ứng dụng trò chuyện cơ bản để đánh giá mức sử dụng và chi phí Cloud Firestore. Đây không phải là số liệu ước tính chính xác, nhưng có thể giúp bạn hiểu rõ hơn về cách tính phí sử dụng Cloud Firestore.

Tổng quan: Chi phí theo mức sử dụng

Để minh hoạ các chi phí thông thường, hãy xem xét một ứng dụng trò chuyện mẫu, trong đó người dùng có thể bắt đầu cuộc trò chuyện với 2 người tham gia trở lên. Người dùng có thể xem các cuộc trò chuyện đang diễn ra của họ trong danh sách, đọc tin nhắn và gửi tin nhắn. Trong ví dụ này, chúng tôi đang sử dụng giá cho nhiều khu vực tại Bắc Mỹ (cụ thể là nam5).

Các giả định

Hãy xem xét các giả định sau về việc sử dụng và lưu trữ dữ liệu:

  • Số người dùng hoạt động hằng ngày (DAU) là 10% tổng số lượt cài đặt ứng dụng. Bạn có thể ước tính chi phí hằng ngày bằng cách sử dụng số liệu ước tính sơ bộ về Số người dùng hoạt động hằng ngày (DAU). Đây là những người dùng chủ động mở và sử dụng ứng dụng của bạn vào một ngày nhất định. Đây thường là một nhóm nhỏ trong tổng số lượt cài đặt ứng dụng của bạn. Đối với các phép tính bên dưới, chúng tôi ước tính số người dùng hoạt động hằng ngày (DAU) là 10% tổng số lượt cài đặt ứng dụng.
  • Kích thước tài liệu tương đối nhỏ. Hãy xem bảng dưới đây để biết thông tin chi tiết về kích thước tài liệu theo loại.
  • Dữ liệu chỉ được lưu trữ trong 3 tháng. Các tin nhắn trong ứng dụng trò chuyện mẫu chỉ được lưu trữ trong khoảng thời gian 3 tháng. Để tính đến các thao tác xoá, các phép tính bên dưới hiển thị hoạt động xoá hằng ngày cho mỗi lần ghi hằng ngày.
  • Các chi phí ước tính này phản ánh phần lớn chi phí của ứng dụng mẫu, chứ không phải tất cả chi phí. Chúng tôi đã tính phần lớn chi phí của một ứng dụng bằng cách tính toán các hoạt động, dung lượng lưu trữ của người dùng và thông báo, cũng như số lượt chuyển ra của những công việc mà người dùng thường thực hiện nhất được nêu trong hướng dẫn này. Tuy nhiên, bạn có thể cần tính đến các chi phí bổ sung, tuỳ thuộc vào cấu trúc và nhu cầu dữ liệu của ứng dụng. Hãy sử dụng ví dụ này để biết cách tính toán. Tuy nhiên, hãy tham khảo trang giá để biết thêm thông tin giải thích kỹ lưỡng về chi phí của Cloud Firestore.

Để biết thông tin chi tiết về hoạt động theo tác vụ của người dùng, hãy xem phần Phân tích: Mức sử dụng được lập hoá đơn theo tác vụ của người dùng.

Nhỏ
(50 nghìn lượt cài đặt)

Đối với 50.000 lượt cài đặt ứng dụng (5.000 người dùng hoạt động hằng ngày): 12,14 USD/tháng

Chi phí đọc/ghi
Tổng chi phí hằng tháng = 11,1 USD/tháng
Tổng cộng 400 nghìn lượt đọc hằng ngày =   50.000 lượt đọc miễn phí + (350.000 lượt đọc với giá 0,06 USD/100 nghìn) =   3,5 * $0,06
0,21 USD / ngày * 30 = 6,3 USD
 
Tổng cộng 100 nghìn lượt ghi mỗi ngày =   20.000 lượt viết không tốn phí + (80.000 lượt viết với giá 0,18 USD/100.000 USD) =   .8 * $0,18
0,14 USD / ngày * 30 = 4,2 USD
 
Tổng cộng 100 nghìn lượt xoá hằng ngày =   20 nghìn lượt xoá không tốn phí + (80 nghìn lượt xoá với giá 0,02 USD/100 nghìn) =   0,8 * $0,02
0,02 USD / ngày * 30 = 0,6 USD
Chi phí lưu trữ/mạng
Tổng chi phí hằng tháng = 1,04 USD/tháng
20KB / DAU lưu lượng truy cập hằng ngày * 5.000 DAU =   100MB lưu lượng ra hằng ngày * 30 =   Mức sử dụng mạng hằng tháng là 3 GB
3 GB đầu ra không tốn phí = Không mất phí1
 
Dung lượng lưu trữ tin nhắn hằng ngày 15KB / Số người dùng hoạt động hằng ngày + 3KB bộ nhớ / lượt cài đặt2 =   45KB dung lượng lưu trữ / DAU * 5.000 DAU =   225MB bộ nhớ hằng ngày / DAU * 30 =   Mức sử dụng bộ nhớ hằng tháng là 6,75 GB
1 GB bộ nhớ miễn phí + (5,75 * 0,18 USD) = 1,04 USD / tháng

1 10 GB lưu lượng ra mạng hằng tháng trong Cloud Firestore sẽ không bị tính phí.
2 Vì giả định của chúng tôi là số người dùng hoạt động hằng ngày (DAU) chiếm 10% tổng số lượt cài đặt ứng dụng, nên con số này chiếm tổng số người dùng đã cài đặt ứng dụng của bạn.

Trung bình
(1 triệu lượt cài đặt)

Đối với 1.000.000 lượt cài đặt ứng dụng (100.000 người dùng hoạt động hằng ngày): 292,02 USD/tháng

Chi phí đọc/ghi
Tổng chi phí hằng tháng = 261,9 USD/tháng
Tổng cộng 8 triệu lượt đọc hằng ngày =   50.000 lượt đọc không mất phí + (7,95 triệu lượt đọc với giá 0,06 USD/100 nghìn) =   79,5 * 0,06 USD
4,77 USD / ngày * 30 = 143,1 USD
 
Tổng cộng 2 triệu lượt ghi mỗi ngày =   20.000 lượt viết không tốn phí + (1,98 triệu lượt viết với giá 0,18 USD/100.000 USD) =   19,8 * $0,18
3,56 USD / ngày * 30 = 106,8 USD
 
Tổng cộng 2 triệu lượt xoá hằng ngày =   20.000 lượt xoá không tốn phí + (1,98 triệu lượt xoá với giá 0,02 USD/100.000 USD) =   19,8 * $0,02
0,4 USD / ngày * 30 = 12 USD
Chi phí lưu trữ/mạng
Tổng chi phí hằng tháng = 30,12 USD/tháng
20KB / DAU lưu lượng truy cập hằng ngày * 100.000 DAU =   2GB lưu lượng ra hằng ngày * 30 =   Mức sử dụng mạng hằng tháng 60 GB
10 GB đầu ra không tốn phí + (đầu ra 50 GB * 0,12 USD/GB) = 6 USD / tháng
 
Dung lượng lưu trữ tin nhắn hằng ngày 15KB / DAU + 3KB bộ nhớ / lượt cài đặt1 =   45KB dung lượng lưu trữ / DAU * 100.000 DAU =   4,5 GB dung lượng lưu trữ hằng ngày / DAU * 30 =   Mức sử dụng bộ nhớ hằng tháng là 135 GB
1 GB bộ nhớ không tốn phí + (134 GB * 0,18 USD/GB) = 24,12 USD / tháng

1 Vì giả định của chúng tôi là số người dùng hoạt động hằng ngày (DAU) chiếm 10% tổng số lượt cài đặt ứng dụng, nên con số này chiếm tổng số người dùng đã cài đặt ứng dụng của bạn.

Lớn
(10 triệu lượt cài đặt)

Đối với 10.000.000 lượt cài đặt ứng dụng (1.000.000 người dùng hoạt động hằng ngày): 2951,52 đô la

Chi phí đọc/ghi
Tổng chi phí hằng tháng = Tổng: 2637,9 USD/tháng
Tổng cộng 80 triệu lượt đọc hằng ngày =   50.000 lượt đọc không mất phí + (79,95 triệu lượt đọc với giá 0,06 USD/100 nghìn) =   799,5 * 0,06 USD
47,97 USD / ngày * 30 = 1.439,1 USD
 
Tổng cộng 20 triệu lượt ghi mỗi ngày =   20.000 lượt viết không tốn phí + (19,98 triệu lượt viết với giá 0,18 USD/100.000 USD) =   199,8 * $0,18
35,96 USD / ngày * 30 = 1078,8 USD
 
Tổng cộng 20 triệu lượt xoá hằng ngày =   20 nghìn lượt xoá không tốn phí + (19,98 triệu lượt xoá với giá 0,02 USD/100 nghìn) =   199,8 * $0,02
4 USD / ngày * 30 = 120 USD
Chi phí lưu trữ/mạng
Tổng chi phí hằng tháng = 313,62 USD/tháng
20KB / DAU lưu lượng truy cập hằng ngày * 1 triệu DAU =   20GB lưu lượng ra hằng ngày * 30 =   Mức sử dụng mạng hằng tháng 600 GB
10 GB đầu ra không tốn phí + (lượng đầu ra là 590 GB * 0,12 USD/GB) = 70,8 USD / tháng
 
Dung lượng lưu trữ tin nhắn hằng ngày 15KB / DAU + 3KB bộ nhớ / lượt cài đặt1 =   45KB dung lượng lưu trữ / DAU * 1 triệu người dùng hoạt động hằng ngày =   45GB dung lượng lưu trữ hằng ngày / Số người dùng hoạt động hằng ngày (DAU * 30) =   Mức sử dụng bộ nhớ hằng tháng là 1350 GB
(1 GB bộ nhớ miễn phí) + (1349 GB * 0,18 USD/GB) = 242,82 USD / tháng

1 Vì giả định của chúng tôi là số người dùng hoạt động hằng ngày (DAU) chiếm 10% tổng số lượt cài đặt ứng dụng, nên con số này chiếm tổng số người dùng đã cài đặt ứng dụng của bạn.

Một lợi ích của mô hình thanh toán trên Cloud Firestore là bạn chỉ cần trả tiền cho những gì mình sử dụng. Do đó, hoá đơn của bạn có thể tăng và giảm theo số người dùng hoạt động hằng ngày (DAU).

Thông tin chi tiết: Mức sử dụng được lập hoá đơn theo tác vụ của người dùng

Đối với ứng dụng nhắn tin mẫu, có cấu trúc dữ liệu như sau:

  • users/{userId} — Hồ sơ người dùng
  • groups/{groupId} — Cuộc trò chuyện giữa 2 người dùng trở lên
    • messages/{messageId} — Mỗi tin nhắn trong một cuộc trò chuyện.

Bộ nhớ dữ liệu

Để tính toán chi phí lưu trữ cho việc lưu trữ dữ liệu của ứng dụng, hãy áp dụng các giả định sau về kích thước tài liệu:

Thu thập Kích thước tài liệu (đang chuyển tiếp) Kích thước tài liệu (trên đĩa)*
người-dùng 1KB 3KB
nhóm 0,5KB 1,5KB
tin nhắn 0,25KB 0,75KB

*Cách tính kích thước này bao gồm chỉ mục cho các trường thông báo, nhưng giả định rằng tính năng lập chỉ mục bị tắt đối với nội dung thông báo.

Ứng dụng cũng chỉ lưu trữ các tin nhắn cũ tối đa 3 tháng để giảm chi phí bộ nhớ.

Để biết thêm thông tin về cách tính chi phí lưu trữ, hãy xem bài viết Tìm hiểu cách tính dung lượng lưu trữ.

Vận hành

Người dùng thường hoàn thành các tác vụ phổ biến sau đây trong ứng dụng:

Tổng số hoạt động ước tính của ứng dụng mẫu trong Cloud Firestore cho 3 tác vụ thông thường của người dùng như sau:

  • Số lượt đọc: (5 * 10) + (30) = 80 lượt đọc / người dùng / ngày
  • Số lượt ghi: (10 * 2) = 20 lượt ghi / người dùng / ngày
  • Lưu lượng truy cập mạng: (50 * 0,25KB) + (30 * 0,25KB) = 20KB / người dùng / ngày
  • Bộ nhớ: (20 * 0,75KB) = 15 KB / người dùng / ngày

Tổng mức sử dụng theo tác vụ của người dùng

Chọn từng tác vụ của người dùng để xem nội dung mô tả đầy đủ và thông tin chi tiết về chi phí vận hành, lưu trữ và kết nối mạng trong ứng dụng.

Xem danh sách cuộc trò chuyện

Màn hình chính của ứng dụng sẽ tải 25 cuộc trò chuyện gần đây nhất, làm phát sinh phí cho 25 lượt đọc tài liệu. Giả sử một người dùng đang hoạt động mở ứng dụng 5 lần mỗi ngày, tổng cộng có 125 lượt đọc trên mỗi người dùng mỗi ngày. Tuy nhiên, các truy vấn hiệu quả hơn, như truy vấn trong ví dụ sau, có thể làm giảm tải này.

Trong ví dụ bên dưới, chúng tôi giới hạn truy vấn đối với các cuộc trò chuyện mới bằng cách sử dụng dấu thời gian của mỗi lần tìm nạp thành công và được ứng dụng lưu trữ:

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

Giả sử có trung bình 10 cuộc trò chuyện được cập nhật mỗi lần người dùng kiểm tra ứng dụng. Truy vấn này chỉ phát sinh 10 lượt đọc tài liệu.

Đọc tin nhắn trong cuộc trò chuyện

Người dùng nhấp vào các chuỗi trò chuyện từ màn hình chính để xem các tin nhắn gần đây, đồng thời tải 50 tin nhắn gần đây nhất trong lần tải ban đầu.

Giả sử người dùng thông thường thực hiện hành động này 5 lần mỗi ngày (một lần cho mỗi lần họ mở màn hình chính), dẫn đến tổng cộng 250 lượt đọc cho mỗi người dùng mỗi ngày. Chúng tôi cũng có thể giới hạn truy vấn đối với các thư mới kể từ lần tìm nạp gần đây nhất:

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

Giả sử rằng một người dùng nhận được khoảng 30 tin nhắn mỗi ngày trên tất cả các cuộc trò chuyện. Vì bạn đã giới hạn truy vấn để tìm nạp thư mới, nên việc này sẽ chỉ chuyển đổi 30 thư được truy xuất/ngày.

Gửi tin nhắn đến một cuộc trò chuyện

Người dùng có thể gửi tin nhắn cho những người tham gia khác khi họ đang trò chuyện. Giả sử một người dùng đang hoạt động gửi khoảng 10 thư mỗi ngày.

Mỗi tin nhắn được gửi sẽ có 2 bản ghi tài liệu: một bản ghi vào bộ sưu tập con messages của cuộc trò chuyện, một bản ghi vào tài liệu gốc của cuộc trò chuyện để cập nhật dấu thời gian lastUpdated và siêu dữ liệu khác.

Xin lưu ý rằng chi phí đọc những thông báo này đã được tính trong các hành trình khác, vì vậy, tổng số bên dưới chỉ xem xét chi phí ghi này.

Mức sử dụng đã lập hóa đơn cho các nhiệm vụ của quản trị viên

Là chủ sở hữu hoặc quản trị viên ứng dụng, bạn có thể muốn tạo báo cáo từ dữ liệu của ứng dụng. Ví dụ: bạn có thể muốn theo dõi số lượng tin nhắn mà người dùng gửi hằng ngày. Bạn có thể thực hiện việc này bằng dữ liệu tổng hợp count() của nhóm bộ sưu tập messages.

Đối với các truy vấn tổng hợp như count(), bạn sẽ bị tính phí cho một lần đọc tài liệu cho mỗi lô,tối đa 1.000 mục nhập chỉ mục khớp với truy vấn đó. Việc chạy tính năng tổng hợp hằng ngày này sẽ thêm các khoản phí hằng tháng sau:

Nhỏ
(50 nghìn lượt cài đặt)

Đối với 50.000 lượt cài đặt ứng dụng (5.000 DAU): $0,0009/tháng

5.000 người dùng đang hoạt động * 10 tin nhắn mới cho mỗi người dùng = 50.000 tài liệu tin nhắn mới mỗi ngày

50.000 tài liệu được tính / 1.000 chỉ mục khớp với mỗi lần đọc = 50 lần đọc

50 lượt đọc mỗi ngày * 30 ngày = 1.500 lượt đọc mỗi tháng

1.500 lượt đọc mỗi tháng * 0,06/100.000 giá đọc = 0,0009 USD mỗi tháng

Trung bình
(1 triệu lượt cài đặt)

Đối với 1.000.000 lượt cài đặt ứng dụng (100.000 người dùng hoạt động hằng ngày): 0,018 USD/tháng

100.000 người dùng đang hoạt động * 10 tin nhắn mới cho mỗi người dùng = 1.000.000 tài liệu tin nhắn mới mỗi ngày

1.000.000 tài liệu được tính / 1.000 lần khớp chỉ mục cho mỗi lần đọc = 1.000 lần đọc

1.000 lượt đọc mỗi ngày * 30 ngày = 30.000 lượt đọc mỗi tháng

30.000 lượt đọc mỗi tháng * 0,06/100.000 giá đọc = 0,018 USD mỗi tháng

Lớn
(10 triệu lượt cài đặt)

Đối với 10.000.000 lượt cài đặt ứng dụng (1.000.000 người dùng hoạt động hằng ngày): $0,18

1.000.000 người dùng đang hoạt động * 10 tin nhắn mới trên mỗi người dùng = 10.000.000 tài liệu tin nhắn mới mỗi ngày

10.000.000 tài liệu được tính / 1.000 lần khớp chỉ mục cho mỗi lần đọc = 10.000 lần đọc

10.000 lượt đọc mỗi ngày * 30 ngày = 300.000 lượt đọc mỗi tháng

300.000 lượt đọc mỗi tháng * 0,06/100000 giá đọc = 0,18 USD mỗi tháng

Các lợi ích đi kèm: Các dịch vụ không tính phí cho ứng dụng của bạn

Mặc dù hoạt động, bộ nhớ và băng thông mạng trong Cloud Firestore đều được coi là mức sử dụng có thể tính phí, nhưng bạn cũng được hưởng nhiều lợi ích khác mà không mất thêm chi phí. Hãy cân nhắc các dịch vụ miễn phí sau đây khi bạn so sánh Cloud Firestore với các lựa chọn cơ sở dữ liệu khác:

  • Quyền truy cập trực tiếp vào ứng dụng: Bạn có thể truy cập vào Cloud Firestore ngay từ mã ứng dụng của mình bằng SDK gốc của chúng tôi. Điều này có nghĩa là bạn không cần xây dựng và chạy máy chủ API để kết nối ứng dụng di động với cơ sở dữ liệu.
  • Cân bằng tải: Vì Cloud Firestore tự động điều chỉnh tỷ lệ để hỗ trợ lưu lượng truy cập vào cơ sở dữ liệu của bạn, nên bạn không cần phải chạy trình cân bằng tải.
  • Thời gian hoạt động của máy chủ: Các cơ sở dữ liệu trong Cloud Firestore hoạt động trên các máy chủ của Google Cloud, mang lại hơn 99% thời gian hoạt động hằng tháng.
  • Xác thực: Xác thực người dùng không giới hạn một cách đơn giản và bảo mật bằng tính năng Xác thực Firebase. Tính năng Xác thực Firebase tích hợp trực tiếp với Cloud Firestore nên bạn không cần chạy dịch vụ xác thực của riêng mình.
  • Thông báo đẩy: Gửi tin nhắn và thông báo bằng Giải pháp gửi thông báo qua đám mây.
  • Các sản phẩm khác của Firebase: Tích hợp các sản phẩm khác của Firebase mà không mất phí, bao gồm cả Thử nghiệm A/B, Analytics, Crashlytics, Giám sát hiệu suất và Cấu hình từ xa. Tìm hiểu thêm về các sản phẩm khác của Firebasemức giá của Firebase.