Dùng ví dụ thực tế này về một ứng dụng trò chuyện cơ bản để đánh giá Cloud Firestore của bạn mức sử dụng và chi phí. Đây không phải là số liệu ước tính chính xác, nhưng có thể giúp bạn nắm rõ hơn tìm hiểu 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 mà người dùng có thể
bắt đầu trò chuyện với hai người tham gia trở lên. Người dùng có thể thấy trạng thái
cuộc trò chuyện trong danh sách, đọc tin nhắn và gửi tin nhắn. Đối với ví dụ này, chúng tôi
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 (Số người dùng hoạt động hằng ngày). Đây là những người dùng tích cực mở và sử dụng ứng dụng của bạn trên một ứng dụng ngày. Đây thường là một phần nhỏ trong tổng số ứng dụng của bạn cài đặt. Theo 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 bên dưới để xem bảng 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. Tin nhắn trong cuộc trò chuyện mẫu ứng dụng chỉ được lưu trữ trong khoảng thời gian ba tháng. Để giải thích cho việc xoá thì các phép tính bên dưới sẽ hiển thị một lượt xoá hằng ngày cho mỗi lượt ghi hằng ngày.
- Những ước tính chi phí này phản ánh phần lớn chi phí của ứng dụng mẫu, nhưng không tất cả. 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 hoạt động, lưu trữ người dùng và tin nhắn cũng như đầu ra của người dùng thường xuyên nhất. các nhiệm vụ được nêu trong hướng dẫn này. Tuy nhiên, bạn có thể cần phải tính đến 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. Sử dụng bản thảo này ví dụ để hướng dẫn bạn tính toán, nhưng hãy tham khảo trang giá để xem nội dung giải thích kỹ lưỡng hơn về chi phí Cloud Firestore.
Để biết bảng chi tiết về hoạt động theo tác vụ của người dùng, hãy xem Thông tin chi tiết: Mức sử dụng được lập hoá đơn theo việc cần làm 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 nghìn lượt đọc ở mức $0,06/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 miễn phí + (80 nghìn viết ở mức $0,18/100 nghìn) | = | .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.000 lượt xoá miễ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 | |
1GB bộ nhớ không tố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 không mất phí đối với
Cloud Firestore.
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ố ứng dụng
lượt cài đặt, điều này
số tài khoản cho 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 miễn phí + (7,95 triệu lượt đọc ở mức 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 miễn phí + (1,98 triệu viết ở mức 0,18 đô la/100 nghìn) | = | 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á miễn phí + (1,98 triệu lượt xoá ở mức 0,02 USD/100 nghìn) | = | 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 lưu lượng ra không tốn phí + (Lượng 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 | |
1GB bộ nhớ không tốn phí + (134GB * 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 tỷ lệ này số tài khoản cho 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 miễn phí + (79,95 triệu lượt đọc ở mức 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 miễn phí + (19,98 triệu viết ở mức $0,18/100K) | = | 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.000 lượt xoá miễn phí + (19,98 triệu lượt xoá ở mức 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 lưu lượng ra không tốn phí + (Dữ liệu đầu ra 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 tỷ lệ này số tài khoản cho tổng số người dùng đã cài đặt ứng dụng của bạn.
Lợi ích của mô hình thanh toán Cloud Firestore đáng cân nhắc là bạn chỉ trả cho những gì bạn sử dụng. Do đó, hoá đơn của bạn có thể tăng lên và giảm bớt khi 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ùnggroups/{groupId}
— Cuộc trò chuyện giữa 2 người dùng trở lênmessages/{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 phương pháp sau giả định 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 |
*Việc tính toán kích thước này bao gồm chỉ mục cho các trường tin nhắn, nhưng giả định rằng tính năng lập chỉ mục đang tắt đối với nội dung thư.
Ứng dụng cũng chỉ lưu trữ các tin nhắn tối đa là 3 tháng, để giảm chi phí lưu trữ.
Để biết thêm thông tin về cách tính chi phí lưu trữ, hãy xem 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:
- Xem danh sách cuộc trò chuyện: Người dùng mở màn hình chính của ứng dụng và xem danh sách các cuộc trò chuyện (theo nhóm và trực tiếp) được sắp xếp theo thứ tự gần đây nhất đã đăng bài viết.
- Đọc tin nhắn trong cuộc trò chuyện: Người dùng chọn cuộc trò chuyện trong nhà và đọc tin nhắn gần đây từ các cuộc trò chuyện.
- Gửi tin nhắn đến một cuộc trò chuyện: Người dùng gửi tin nhắn đến một cuộc trò chuyện (theo nhóm hoặc trực tiếp).
Tổng số hoạt động ước tính của ứng dụng ví dụ trong Cloud Firestore cho ba sau đây là các tác vụ thông thường của người dùng:
- 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 mô tả đầy đủ và chi tiết về các hoạt động, bộ nhớ và chi phí 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, gây ra tính phí cho 25 lượt đọc tài liệu. Giả sử rằng 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 là 125 lượt đọc cho mỗi người dùng mỗi ngày. Tuy nhiê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 mỗi lần tìm nạp thành công đượ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ần đọ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 tin nhắn, đang tải 50 thông báo 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 khi họ mở màn hình chính), dẫn đến tổng cộng 250 số lượt đọc trên 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 của mình ở các tin nhắn 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. Từ bạn đã giới hạn truy vấn để tìm nạp tin nhắn mới, điều này có nghĩa là chỉ còn 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ẽ cho phép hai tài liệu ghi: một lần ghi vào
messages
bộ sưu tập con cuộc trò chuyện và một lần ghi vào cuộc trò chuyện
tài liệu gốc để cập nhật dấu thời gian lastUpdated
và các
siêu dữ liệu.
Lưu ý rằng chi phí đọc các thư 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ỉ tính đến 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
dữ liệu của ứng dụng. Ví dụ: bạn có thể muốn theo dõi số lượng
số lượng tin nhắn mà người dùng của bạn đã gửi. Bạn có thể thực hiện việc này bằng một
count()
dữ liệu tổng hợp 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ẽ phải trả phí cho một lượt đọc tài liệu
cho mỗi lô gồm tối đa 1.000 mục nhập chỉ mục phù hợp với truy vấn. Chạy tác vụ này
phương pháp tổng hợp hằng ngày sẽ cộng 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/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ù các hoạt động của Cloud Firestore, bộ nhớ và băng thông mạng đều là được coi là hoạt động sử dụng có tính phí, bạn cũng được hưởng nhiều lợi ích khác mà không tốn phí chi phí bổ sung. Cân nhắc sử dụng các dịch vụ miễn phí sau đây giống như bạn so sánh Cloud Firestore với các tuỳ chọn cơ sở dữ liệu khác:
- Quyền truy cập trực tiếp của khách hàng: Bạn có thể truy cập trực tiếp vào Cloud Firestore từ mã ứng dụng khách bằng các SDK gốc của chúng tôi. Điều này có nghĩa là bạn không cần tạo 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ợ vào cơ sở dữ liệu của mình, bạn không phải chạy trình cân bằng tải.
- Thời gian hoạt động của máy chủ: Cơ sở dữ liệu Cloud Firestore hoạt động trên các máy chủ Google Cloud, cung cấp thời gian hoạt động hơn 99% 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 Firebase Authentication. Firebase Authentication tích hợp trực tiếp với Cloud Firestore nên bạn không cần phải tự chạy dịch vụ xác thực.
- Thông báo đẩy: Gửi tin nhắn và thông báo bằng Cloud Messaging.
- Các sản phẩm khác của Firebase: Tích hợp các sản phẩm Firebase khác mà không mất phí, bao gồm 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 Firebase và mức giá của Firebase.