Hãy tham khảo ví dụ thực tế này về một ứng dụng trò chuyện cơ bản để ước tính Cloud Firestore mức sử dụng và chi phí của bạn. Đâ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ạ chi phí thông thường, hãy xem xét một ứng dụng trò chuyện mẫu, nơi người dùng có thể bắt đầu cuộc trò chuyện với hai hoặc nhiều người tham gia. Người dùng có thể xem các cuộc trò chuyện đang hoạt động của họ trong một danh sách, đọc tin nhắn và gửi tin nhắn. Trong ví dụ này, chúng ta sẽ sử dụng mức giá cho nhiều khu vực ở Bắc Mỹ (cụ thể là nam5).
Giả định
Hãy xem xét các giả định sau đây về mức sử dụng và lưu trữ dữ liệu:
- 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. Bạn có thể ước tính chi phí hằng ngày bằng cách ước tính sơ bộ 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, thường là một nhóm nhỏ trong tổng số lượt cài đặt ứng dụng. Đối với các phép tính bên dưới, chúng tôi ước tính DAU bằng 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 để 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. 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 dưới đây cho thấy một thao tác xoá hằng ngày cho mỗi thao tác ghi hằng ngày.
- Những chi phí ước tính này phản ánh phần lớn chi phí của ứng dụng mẫu, nhưng không phải tất cả. Chúng tôi đã tính toán phần lớn chi phí của một ứng dụng bằng cách tính toán các thao tác, bộ nhớ của người dùng và tin nhắn, cũng như lưu lượng dữ liệu đi cho các tác vụ thường xuyên nhất của người dùng được nêu trong hướng dẫn này. Tuy nhiên, bạn có thể cần phải 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 để hướng dẫn bạn tính toán, nhưng hãy tham khảo trang giá để biết nội dung giải thích chi tiết hơn về chi phí Cloud Firestore.
Để xem thông tin chi tiết về các hoạt động theo nhiệm vụ của người dùng, hãy xem phần Thông tin chi tiết: Mức sử dụng được tính phí theo nhiệm 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 số 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 mỗi ngày | = | 50 nghìn lượt đọc miễn phí + (350 nghìn lượt đọc với giá 0,06 USD/100 nghìn lượt đọc) | = | 3,5 * 0,06 USD | |
| 0,21 USD / ngày * 30 = 6,3 USD | |||||
| Tổng số lượt ghi hằng ngày là 100 nghìn | = | 20 nghìn lượt ghi miễn phí + (80 nghìn lượt ghi với giá 0,18 USD/100 nghìn lượt) | = | 0,8 * 0,18 USD | |
| 0,14 USD / ngày * 30 = 4,2 USD | |||||
| Tổng số lượt xoá hằng ngày là 100 nghìn | = | 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 lượt) | = | 0,8 * 0,02 USD | |
| 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 | |||||||
| 20 KB / DAU lưu lượng truy cập ra hằng ngày * 5.000 DAU | = | 100 MB dữ liệu đầu ra hằng ngày * 30 | = | 3 GB lưu lượng truy cập mạng đi ra mỗi tháng | |||
| 3 GB lưu lượng dữ liệu ra không tốn phí = Không tốn phí1 | |||||||
| Dung lượng lưu trữ tin nhắn hằng ngày là 15 KB / DAU + 3 KB dung lượng lưu trữ / lượt cài đặt2 | = | 45 KB dung lượng lưu trữ / DAU * 5.000 DAU | = | 225 MB 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ớ không tốn phí + (5,75 * 0,18 USD) = 1,04 USD / tháng | |||||||
1 10 GB lưu lượng truy cập mạng đi hằng tháng được miễn phí cho
Cloud Firestore.
2 Vì chúng tôi giả định rằng DAU chiếm 10% tổng số lượt cài đặt ứng dụng, nên con số này thể hiện 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 số 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 | |||||
| 8 triệu lượt đọc mỗi ngày | = | 50 nghìn lượt đọc miễn phí + (7,95 triệu lượt đọc với giá 0,06 USD/100 nghìn lượt) | = | 79,5 * 0,06 USD | |
| 4,77 USD / ngày * 30 = 143,1 USD | |||||
| Tổng số lượt ghi hằng ngày là 2 triệu | = | 20 nghìn lượt ghi không tốn phí + (1,98 triệu lượt ghi với giá 0,18 USD/100 nghìn lượt) | = | 19,8 * 0,18 USD | |
| 3,56 USD / ngày * 30 = 106,8 USD | |||||
| Tổng cộng 2 triệu lượt xoá hằng ngày | = | 20 nghìn lượt xoá không tốn phí + (1,98 triệu lượt xoá với giá 0,02 USD/100 nghìn lượt) | = | 19,8 * 0,02 USD | |
| 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 | |||||||
| 20 KB / DAU dữ liệu đầu ra hằng ngày * 100.000 DAU | = | 2 GB dữ liệu đầu ra hằng ngày * 30 | = | 60 GB dữ liệu mạng đi ra hằng tháng | |||
| 10 GB lưu lượng truy cập ra không tốn phí + (50 GB lưu lượng truy cập ra * 0,12 USD/GB) = 6 USD / tháng | |||||||
| Bộ nhớ lưu trữ tin nhắn hằng ngày 15 KB / DAU + bộ nhớ 3 KB / lượt cài đặt1 | = | 45 KB bộ nhớ / DAU * 100.000 DAU | = | 4,5 GB bộ nhớ 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ì chúng tôi giả định rằng DAU chiếm 10% tổng số lượt cài đặt ứng dụng, nên con số này thể hiện 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 số người dùng hoạt động hằng ngày): 2.951,52 USD
| Chi phí đọc/ghi | |||||
|---|---|---|---|---|---|
| Tổng chi phí hằng tháng = Tổng cộng: 2.637,9 USD/tháng | |||||
| 80 triệu lượt đọc mỗi ngày | = | 50.000 lượt đọc miễn phí + (79,95 triệu lượt đọc với giá 0,06 USD/100.000 lượt đọc) | = | 799,5 * 0,06 USD | |
| 47,97 USD / ngày * 30 = 1.439,10 USD | |||||
| Tổng số lượt ghi hằng ngày là 20 triệu | = | 20 nghìn lượt ghi không tốn phí + (19,98 triệu lượt ghi với giá 0,18 USD/100 nghìn lượt) | = | 199,8 * 0,18 USD | |
| 35,96 USD / ngày * 30 = 1.078,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 lượt) | = | 199,8 * 0,02 USD | |
| 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 | |||||||
| 20 KB / DAU dữ liệu đầu ra hằng ngày * 1 triệu DAU | = | 20 GB dữ liệu đầu ra hằng ngày * 30 | = | 600 GB lưu lượng truy cập mạng đi ra mỗi tháng | |||
| 10 GB lưu lượng truy cập ra không tốn phí + (590 GB lưu lượng truy cập ra * 0,12 USD/GB) = 70,8 USD / tháng | |||||||
| Bộ nhớ lưu trữ tin nhắn hằng ngày 15 KB / DAU + bộ nhớ 3 KB / lượt cài đặt1 | = | 45 KB dung lượng lưu trữ / DAU * 1 triệu DAU | = | 45 GB bộ nhớ hằng ngày / DAU * 30 | = | Mức sử dụng bộ nhớ hằng tháng là 1.350 GB | |
| (1 GB bộ nhớ không tốn phí) + (1.349 GB * 0,18 USD/GB) = 242,82 USD / tháng | |||||||
1 Vì chúng tôi giả định rằng DAU chiếm 10% tổng số lượt cài đặt ứng dụng, nên con số này thể hiện tổng số người dùng đã cài đặt ứng dụng của bạn.
Một lợi ích đáng cân nhắc của mô hình thanh toán Cloud Firestore là bạn chỉ phải trả tiền cho những gì bạn sử dụng. Do đó, hoá đơn của bạn có thể tăng và giảm theo số lượng người dùng hoạt động hằng ngày (DAU).
Bảng chi tiết: Mức sử dụng được tính phí theo nhiệm vụ của người dùng
Đối với ứng dụng trò chuyện trong ví dụ của chúng ta, 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ữ 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) | Kích thước tài liệu (trên đĩa)* |
|---|---|---|
| người-dùng | 1KB | 3KB |
| nhóm | 0,5 KB | 1,5 KB |
| tin nhắn | 0,25 KB | 0,75 KB |
*Cách tính kích thước này bao gồm cả 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ữ tin nhắn trong vòng 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 phần Tìm hiểu cách tính kích thước bộ nhớ.
Vận hành
Người dùng thường hoàn thành các thao tác 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 cuộc trò chuyện (nhóm và trực tiếp) được sắp xếp theo tin nhắn đăng gần đây nhất.
- Đọc tin nhắn trong cuộc trò chuyện: Người dùng chọn cuộc trò chuyện trên màn hình chính và đọc tin nhắn gần đây trong 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 các cuộc trò chuyện (nhóm hoặc trực tiếp).
Tổng số thao tác ước tính của ứng dụng mẫu trong Cloud Firestore cho ba tác vụ thông thường của người dùng như sau:
- Lượt đọc: (5 * 10) + (30) = 80 lượt đọc / người dùng / ngày
- Lượt ghi: (10 * 2) = 20 lượt ghi / người dùng / ngày
- Lưu lượng truy cập ra khỏi mạng: (50 * 0,25 KB) + (30 * 0,25 KB) = 20 KB / người dùng / ngày
- Bộ nhớ: (20 * 0,75 KB) = 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 nhiệm vụ của người dùng để xem nội dung mô tả đầy đủ và thông tin chi tiết về chi phí hoạt động, bộ nhớ 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 tải 25 cuộc trò chuyện gần đây nhất, 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 là 125 lượt đọc cho mỗi người dùng mỗi ngày. Tuy nhiên, các truy vấn hiệu quả hơn, chẳng hạn như truy vấn trong ví dụ sau, có thể giảm tải này.
Trong ví dụ bên dưới, chúng ta 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, đượ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 khi 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 chuỗi trò chuyện trên màn hình chính để xem tin nhắn gần đây, tải 50 tin nhắn gần đây nhất trong lần tải đầu tiên.
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ỗ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 ta cũng có thể giới hạn truy vấn của mình đối với 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ử 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 tin nhắn mới, nên số lượng tin nhắn được truy xuất chỉ là 30 tin nhắn/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 sau khi tham gia cuộc trò chuyện. Giả sử một người dùng đang hoạt động gửi khoảng 10 tin nhắn mỗi ngày.
Mỗi tin nhắn được gửi sẽ khiến hai tài liệu được ghi: một tài liệu được ghi vào bộ sưu tập con messages của cuộc trò chuyện và một tài liệu được ghi vào tài liệu mẹ 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 các thông báo này đã được tính vào 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 được tính phí cho các công việc của quản trị viên
Là chủ sở hữu hoặc quản trị viên ứng dụng, có thể bạn 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 cách tổng hợp count() nhóm tập hợp messages.
Đối với các truy vấn tổng hợp như count(), bạn sẽ bị tính phí một lượt đọc tài liệu cho mỗi lô có tối đa 1.000 mục nhập chỉ mục khớp với truy vấn. Việc chạy quy trình tổng hợp hằng ngày này sẽ làm phát sinh các khoản phí hằng tháng sau đây:
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 USD/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 kết quả khớp chỉ mục cho mỗi lần tính phí đọ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 số 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 kết quả khớp chỉ mục cho mỗi lần tính phí đọc = 1.000 lượt đọ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 số người dùng hoạt động hằng ngày): 0,18 USD
1.000.000 người dùng đang hoạt động * 10 tin nhắn mới cho 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 kết quả khớp chỉ mục cho mỗi lần tính phí đọc = 10.000 lượt đọ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/100.000 giá đọc = 0,18 USD mỗi tháng
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, bộ nhớ và băng thông mạng của Cloud Firestore đều được coi là mức sử dụng có tính phí, nhưng bạn cũng nhận được nhiều lợi ích khác mà không phải trả thêm phí. Hãy cân nhắc các dịch vụ không tố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 của ứng dụng: Cloud Firestore được truy cập trực tiếp từ mã ứng dụng của bạn 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 phải xây dựng và chạy một 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 quy mô để 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ơ sở dữ liệu Cloud Firestore hoạt động trên máy chủ Google Cloud, mang lại thời gian hoạt động hằng tháng trên 99%.
- 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à an toàn 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 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 Cloud Messaging.
- Các sản phẩm khác của Firebase: Tích hợp miễn phí các sản phẩm khác của Firebase, bao gồm cả Thử nghiệm A/B, Analytics, Crashlytics và Performance Monitoring. Tìm hiểu thêm về các sản phẩm khác của Firebase và giá của Firebase.