Hãy sử dụng ví dụ thực tế 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 cấp sử dụng
Để minh hoạ các chi phí thông thường, hãy xem xét một ví dụ về ứng dụng nhắn tin, trong đó 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 trong 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 giá cho nhiều khu vực ở Bắc Mỹ (cụ thể là nam5
).
Giả định
Hãy cân nhắc các giả định sau đây về mức sử dụng và bộ nhớ 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 cụ thể. Đây 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 dưới đây, chúng tôi ước tính số người dùng hằng ngày 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 để 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 ba 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 ba tháng. Để tính đến các thao tác xoá, phép tính dưới đây cho thấy một lượt xoá hằng ngày cho mỗi lượt 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, nhưng không phải tất cả. Chúng tôi đã tính đến 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, bộ nhớ người dùng và thông báo cũng như lưu lượng truy cập 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 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 tính toán, nhưng hãy tham khảo trang giá để biết thêm thông tin chi tiết về chi phí Cloud Firestore.
Để biết thông tin chi tiết về các hoạt động theo tác vụ của người dùng, hãy xem phần Chi tiết: Mức sử dụng đã tính phí theo tác vụ của người dùng.
Nhỏ
(50.000 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 số lượt đọc hằng ngày là 400 nghìn | = | 50.000 lượt đọc miễn phí + (350.000 lượt đọc với giá 0,06 USD/100.000 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 | = | 20K lượt ghi không tính phí + (80K lượt ghi với giá 0,18 USD/100K) | = | 0,8 * 0,18 đô la Mỹ | |
0,14 USD / ngày * 30 = 4,2 USD | |||||
Tổng số lượt xoá hằng ngày là 100 nghìn | = | 20.000 lượt xoá không tính phí + (80.000 lượt xoá với mức phí 0,02 USD/100.000 lượt) | = | 0,8 * 0,02 đô la | |
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 đi hằng ngày * 5.000 DAU | = | 100 MB lưu lượng truy cập đi hằng ngày * 30 | = | 3 GB lưu lượng truy cập mạng hàng tháng | |||
3 GB dữ liệu truy cập ra không tính phí = Không tính phí1 | |||||||
15 KB dung lượng lưu trữ thông báo hằng ngày / DAU + 3 KB dung lượng lưu trữ / lượt cài đặt2 | = | 45 KB bộ nhớ / DAU * 5.000 DAU | = | 225 MB dung lượng lưu trữ hằng ngày / Số người dùng hoạt động hằng ngày * 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 Cloud Firestore được miễn phí 10 GB lưu lượng truy cập mạng ra ngoài mỗi tháng.
2 Vì chúng tôi giả định rằng số người dùng hằng ngày 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,90 USD/tháng | |||||
Tổng số lượt đọc hằng ngày là 8 triệu | = | 50.000 lượt đọc không tính phí + (7,95 triệu lượt đọc với mức phí 0,06 USD/100.000 lượt đọc) | = | 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.000 lượt ghi miễn phí + (1,98 triệu lượt ghi với giá 0,18 USD/100.000 lượt ghi) | = | 19,8 * 0,18 đô la Mỹ | |
3,56 USD / ngày * 30 = 106,8 USD | |||||
Tổng số lượt xoá hằng ngày là 2 triệu | = | 20.000 lượt xoá không tính phí + (1,98 triệu lượt xoá với mức phí 0,02 USD/100.000 lượt) | = | 19,8 * 0,02 đô la Mỹ | |
0,40 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 lưu lượng truy cập đi hằng ngày * 100.000 DAU | = | 2 GB lưu lượng truy cập đi hằng ngày * 30 | = | Lưu lượng truy cập mạng đầu ra 60 GB/tháng | |||
10 GB dữ liệu đầu ra không tính phí + (50 GB dữ liệu đầu ra * 0,12 USD/GB) = 6 USD / tháng | |||||||
Dung lượng lưu trữ tin nhắn hằng ngày là 15 KB / DAU + dung lượng lưu trữ 3 KB / lượt cài đặt1 | = | 45 KB bộ nhớ / DAU * 100.000 DAU | = | 4,5 GB dung lượng lưu trữ hằng ngày / số người dùng hằng ngày * 30 | = | Mức sử dụng bộ nhớ hằng tháng là 135 GB | |
1 GB bộ nhớ miễn phí + (134 GB * 0,18 USD/GB) = 24,12 USD / tháng |
1 Vì chúng tôi giả định rằng số người dùng hằng ngày 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): 2.951,52 USD
Chi phí đọc/ghi | |||||
---|---|---|---|---|---|
Tổng chi phí hằng tháng = Tổng cộng: 2.637,90 USD/tháng | |||||
Tổng cộ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 mức phí 0,06 USD/100.000 lượt đọc) | = | 799,5 * 0,06 USD | |
47,97 USD / ngày * 30 = 1.439,1 USD | |||||
Tổng số lượt ghi hằng ngày là 20 triệu | = | 20.000 lượt ghi miễn phí + (19,98 triệu lượt ghi với giá 0,18 USD/100.000 lượt ghi) | = | 199,8 * 0,18 USD | |
35,96 USD / ngày * 30 = 1.078,8 USD | |||||
Tổng số lượt xoá hằng ngày là 20 triệu | = | 20.000 lượt xoá không tính phí + (19,98 triệu lượt xoá với mức phí 0,02 USD/100.000 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 lưu lượng truy cập đi hằng ngày * 1 triệu DAU | = | 20 GB lưu lượng truy cập ra ngoài hằng ngày * 30 | = | Lưu lượng truy cập mạng đầu ra 600 GB mỗi tháng | |||
10 GB lưu lượng truy cập ra ngoài không tính phí + (590 GB lưu lượng truy cập ra ngoài * 0,12 USD/GB) = 70,8 USD / tháng | |||||||
Dung lượng lưu trữ tin nhắn hằng ngày là 15 KB / DAU + dung lượng lưu trữ 3 KB / lượt cài đặt1 | = | 45 KB bộ nhớ / DAU * 1 triệu DAU | = | 45 GB bộ nhớ hằng ngày / số người dùng hằng ngày * 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ì chúng tôi giả định rằng số người dùng hằng ngày 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 đáng cân nhắc của mô hình thanh toán Cloud Firestore là bạn chỉ phải thanh toá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.
Thông tin chi tiết: Mức sử dụng đã tính phí theo tác vụ của người dùng
Đối với ứng dụng trò chuyện mẫu, cấu trúc dữ liệu như sau:
users/{userId}
– Bản ghi 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 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 trong quá trình 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 |
*Kích thước tính toán này bao gồm các chỉ mục cho các trường thư, 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 dụng cũng chỉ lưu trữ những tin nhắn có thời gian lưu trữ 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 phí bộ nhớ, 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 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à thấy danh sách cuộc trò chuyện (nhóm và trực tiếp) được sắp xếp theo tin nhắn gần đây nhất được đăng.
- Đọ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 cho cuộc trò chuyện: Người dùng gửi tin nhắn cho 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 3 nhiệm vụ phổ biến 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,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 tác vụ của người dùng để xem nội dung mô tả đầy đủ và bảng chi tiết về các hoạt động, dung lượng lưu trữ 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 tải 25 cuộc trò chuyện gần đây nhất, tính 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 125 lượt đọc 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ể làm giảm tải này.
Trong ví dụ bên dưới, chúng ta giới hạn truy vấn ở 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 do ứng dụng lưu trữ:
db.collection('groups') .where('participants', 'array-contains', 'user123') .where('lastUpdated', '>', lastFetchTimestamp) .orderBy('lastUpdated', 'desc') .limit(25)
Giả sử trung bình có 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ỉ gây ra 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 cuộc trò chuyện trên màn hình chính để xem các 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ột lần mỗi khi họ mở màn hình chính), dẫn đến tổng cộng 250 lượt đọc 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 ở 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ử 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 điều này có nghĩa là chỉ có 30 thư được truy xuất/ngày.
Gửi tin nhắn đến 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 họ 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 đã gửi sẽ khiến hai tệp được ghi: một tệp ghi vào bộ sưu tập con messages
của cuộc trò chuyện và một tệp 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 các 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 tính phí cho các tác 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 tính 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()
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í 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 được truy vấn so khớp. Việc chạy quy trình 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.000 lượt cài đặt)
Đối với 50.000 lượt cài đặt ứng dụng (5.000 người dùng hằng ngày): 0,0009 USD/tháng
5.000 người dùng đang hoạt động * 10 thư mới/người dùng = 50.000 tài liệu thư mới/ngày
50.000 tài liệu được tính / 1.000 kết quả trùng khớp trong chỉ mục cho mỗi lượt đọc = 50 lượt đọ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 lượt đọc = 0,0009 đô la 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 thư mới/người dùng = 1.000.000 tài liệu thư mới/ngày
1.000.000 tài liệu được tính / 1.000 kết quả trùng khớp với chỉ mục cho mỗi lượt đọ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 lượt đọc = 0,018 đô la 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 USD
1.000.000 người dùng đang hoạt động * 10 thư mới/người dùng = 10.000.000 tài liệu thư mới/ngày
10.000.000 tài liệu được tính / 1.000 kết quả trùng khớp với chỉ mục cho mỗi lượt đọ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 lượt đọc = 0,18 đô la mỗi tháng
Các lợi ích có trong gói: Dịch vụ miễn phí cho ứng dụng của bạn
Mặc dù các hoạt động Cloud Firestore, bộ nhớ và băng thông mạng đề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 tốn thêm chi phí. Hãy cân nhắc các dịch vụ sau đây mà bạn không phải trả phí khi so sánh Cloud Firestore với các lựa chọn cơ sở dữ liệu khác:
- Truy cập trực tiếp vào ứng dụng: Cloud Firestore được truy cập trực tiếp từ mã ứng dụng 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 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.
- Phân tải: Vì Cloud Firestore tự động mở rộng quy mô để hỗ trợ lưu lượng truy cập vào cơ sở dữ liệu, nên bạn không cần phải chạy bộ 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 trên 99% mỗi tháng.
- Xác thực: Xác thực số lượng 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 để 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 Cloud Messaging.
- Các sản phẩm Firebase khác: Tích hợp các sản phẩm Firebase khác 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 Firebase khác và mức giá của Firebase.