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 của bạn. Đây không phải là mức ướ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í cho mức sử dụng Cloud Firestore của bạn.
Tổng quan: Chi phí theo cấp sử dụng
Để minh hoạ chi phí điển hình, 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 từ 2 người tham gia trở lên. Người dùng có thể xem danh sách các cuộc trò chuyện đang diễn ra, đọc và gửi tin nhắn. Trong ví dụ này, chúng ta sẽ sử dụng giá cho khu vực Bắc Mỹ (cụ thể là nam5
).
Các giả định
Hãy cân nhắc những giả định sau đây về mức sử dụng và việc 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 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 cụ thể. Thông thường, đây chỉ 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 dưới đây, chúng tôi ước tính số người dùng hoạt độ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 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 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 ví dụ, 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 thao tác, bộ nhớ người dùng và thông báo, cũng như lưu lượng truy cập ra 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 định giá để biết giải thích kỹ lưỡng hơn về chi phí Cloud Firestore.
Để biết thông tin chi tiết về các thao tác theo tác 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 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,10 USD/tháng | |||||
Tổng cộng 400 nghìn lượt đọc mỗi ngày | = | 50K lượt đọc miễn phí + (350K lượt đọc với giá 0,06 USD/100K) | = | 3,5 * 0,06 USD | |
0,21 USD / ngày * 30 = 6,3 USD | |||||
Tổng cộng 100.000 lượt ghi mỗi ngày | = | 20.000 lượt ghi miễn phí + (80.000 lượt ghi với giá 0,18 USD/100.000 lượt ghi) | = | 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.000 | = | 20.000 lượt xoá miễn phí + (80.000 lượt xoá với giá 0,02 USD/100.000) | = | 0,8 * 0,02 USD | |
0,02 USD / ngày * 30 = 0,60 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 hằng ngày * 5.000 DAU | = | 100 MB dữ liệu truyền ra mỗi ngày * 30 | = | 3 GB lưu lượng truyền dữ liệu ra khỏi mạng mỗi tháng | |||
3 GB dữ liệu truyền ra miễn phí = Miễn phí1 | |||||||
15 KB dung lượng lưu trữ tin nhắn hằng ngày / 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 dung lượng lưu trữ 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 truyền dữ liệu ra khỏi mạng hằng tháng không tính phí đối với Cloud Firestore.
2 Vì chúng tôi giả định rằng số người dùng hoạt độ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 tính đế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 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 = 2.619.000 VND/tháng | |||||
Tổng cộng 8 triệu lượt đọc mỗi ngày | = | 50.000 lượt đọc miễn phí + (7.950.000 lượt đọc với giá 0,06 USD/100.000 lượt đọc) | = | 79,5 * 0,06 USD | |
4,77 USD / ngày * 30 = 143,10 USD | |||||
Tổng cộng 2 triệu lượt ghi mỗi ngày | = | 20.000 lượt ghi miễn phí + (1.980.000 lượt ghi với giá 0,18 USD/100.000 lượt ghi) | = | 19,8 * 0,18 USD | |
$3,56 / ngày * 30 = $106,80 | |||||
Tổng cộng 2 triệu lượt xoá mỗi ngày | = | 20.000 lượt xoá miễn phí + (1.980.000 lượt xoá với giá 0,02 USD/100.000 lượt xoá) | = | 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 lưu lượng truyền dữ liệu hằng ngày * 100.000 DAU | = | 2 GB dữ liệu xuất hằng ngày * 30 | = | 60 GB lưu lượng truyền dữ liệu ra khỏi mạng mỗi tháng | |||
10 GB dữ liệu truyền ra miễn phí + (50 GB dữ liệu truyền ra * 0,12 USD/GB) = 6 USD / tháng | |||||||
15 KB dung lượng lưu trữ tin nhắn hằng ngày / DAU + 3 KB dung lượng lưu trữ / lượt cài đặt1 | = | Bộ nhớ 45 KB / Số người dùng hoạt động hằng ngày * 100.000 số người dùng hoạt động hằng ngày | = | 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ớ 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 hoạt độ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 tính đế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 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: 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 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.000 lượt ghi miễn phí + (19.980.000 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,80 USD | |||||
Tổng số lượt xoá hằng ngày là 20 triệu | = | 20.000 lượt xoá miễn phí + (19.980.000 lượt xoá với giá 0,02 USD/100.000 lượt xoá) | = | 199,8 * 0,02 USD | |
4 đô la Mỹ / ngày * 30 = 120 đô la Mỹ |
Chi phí lưu trữ/mạng | |||||||
---|---|---|---|---|---|---|---|
Tổng chi phí hằng tháng = 3.136.200 VND/tháng | |||||||
20 KB / DAU lưu lượng xuất hằng ngày * 1 triệu DAU | = | 20 GB dữ liệu xuất hằng ngày * 30 | = | 600 GB lưu lượng truyền dữ liệu ra khỏi mạng mỗi tháng | |||
10 GB dữ liệu xuất miễn phí + (590 GB dữ liệu xuất * 0,12 USD/GB) = 70,80 USD / tháng | |||||||
15 KB dung lượng lưu trữ tin nhắn hằng ngày / DAU + 3 KB dung lượng lưu trữ / lượt cài đặt1 | = | 45 KB bộ nhớ / 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à 1350 GB | |
(Bộ nhớ miễn phí 1 GB) + (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 hoạt độ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 tính đế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ỉ thanh toán cho những gì bạn sử dụng. Do đó, hoá đơn của bạn có thể tăng hoặc giảm theo số lượng người dùng hoạt động hằng ngày.
Phân tích: Mức sử dụng được 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ủa chúng ta, cấu trúc dữ liệu sẽ 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 truyề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 này cũng chỉ lưu trữ những tin nhắn có thời gian 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í lưu trữ, hãy xem bài viết 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 các 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 các 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 đã đă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 cá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 3 tác vụ điển hình 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
- Ghi: (10 * 2) = 20 lượt ghi / người dùng / ngày
- Dữ liệu truyền 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 tác vụ của người dùng để xem nội dung mô tả đầy đủ và thông tin chi tiết về các hoạt động, bộ nhớ và chi phí 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 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ể 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, 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 mới 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 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 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ỗi lần mở màn hình chính một lần), 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 đố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ử 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 tin nhắn mới, nên điều này có nghĩa là bạn chỉ truy xuất được 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 một 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ẽ gây ra hai thao tác ghi tài liệu: một thao tác ghi vào tập hợp con messages
của cuộc trò chuyện và một thao tá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à các 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 vào các hành trình khác, vì vậy, tổng chi phí 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 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, có lẽ 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 lưu giữ số lượng tin nhắn mà người dùng gửi mỗi 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 mà 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 đây:
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): 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 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ầ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 thư mới/người dùng = 1.000.000 tài liệu thư mới mỗi ngày
1.000.000 tài liệu được tính / 1.000 lượt khớp chỉ mục cho mỗi lần đọ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 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/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ầ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/100.000 giá lượt đọc = 0,18 USD mỗi tháng
Lợi ích đi kèm: Các 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 phải trả thêm phí. Hãy cân nhắc các dịch vụ sau đây không mất phí khi bạn 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 của bạn bằng cách sử dụ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ột máy chủ API để kết nối các ứng dụng di động với cơ sở dữ liệu.
- Cân bằng 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 của bạn, nên bạn không cần chạy một 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 các máy chủ Google Cloud, mang đến thời gian hoạt động hơn 99% mỗi tháng.
- Xác thực: Xác thực không giới hạn người dùng 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 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 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 Firebase và giá của Firebase.