Sử dụng ví dụ thực tế này về ứng dụng trò chuyện cơ bản để đánh giá chi phí và mức sử dụng Cloud Firestore của bạn. Đây không phải là ước tính chính xác, nhưng nó có thể giúp bạn hiểu rõ hơn về cách tính phí sử dụng Cloud Firestore của bạn.
Tổng quan: Chi phí theo mức độ sử dụng
Để minh họa chi phí điển hình, 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 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 danh sách, đọc tin nhắn và gửi tin nhắn. Đối với ví dụ này, chúng tôi đang sử dụng giá cho đa khu vực Bắc Mỹ (cụ thể là nam5
).
giả định
Xem xét các giả định sau về việc sử dụng và lưu trữ dữ liệu:
- 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 của mình bằng cách sử dụng ước tính sơ bộ về Người dùng hoạt động hàng ngày (DAU). Đây là những người dùng tích cực 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 phần 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 DAU chiếm 10% tổng số lượt cài đặt ứng dụng.
- Kích thước tài liệu tương đối nhỏ. Xem bảng bên dưới để biết 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 ví dụ chỉ được lưu trữ trong khoảng thời gian ba tháng. Để giải thích cho các hoạt động xóa, các phép tính bên dưới hiển thị một lần xóa hàng ngày cho mỗi lần ghi hàng ngày.
- Các ướ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 phải tất cả. Chúng tôi đã hạch toán phần lớn chi phí của ứ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ư cũng như đầu ra cho các tác vụ người dùng thường xuyê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 chi phí bổ sung, tùy thuộc vào cấu trúc ứng dụng và nhu cầu dữ liệu của bạn. Sử dụng ví dụ này để hướng dẫn tính toán của bạ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í của Cloud Firestore.
Để biết chi tiết về các hoạt động theo nhiệm vụ của người dùng, hãy xem phần Phân tích: Mức sử dụng được tính phí theo nhiệm vụ của người dùng .
Bé 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,10/tháng | |||||
Tổng số 400 nghìn lượt đọc hàng ngày | = | 50 nghìn lượt đọc miễn phí + (350 nghìn lượt đọc ở mức 0,06 đô la/100 nghìn) | = | 3,5 * 0,06 đô la | |
0,21 USD / ngày * 30 = 6,30 USD | |||||
Tổng cộng 100 nghìn lượt viết hàng ngày | = | 20K ghi miễn phí + (80K ghi ở mức 0,18 USD/100K) | = | 0,8 * 0,18 đô la | |
0,14 USD / ngày * 30 = 4,20 USD | |||||
Tổng cộng 100 nghìn lượt xóa hàng ngày | = | 20K lượt xóa miễn phí + (80K lượt xóa ở mức 0,02 USD/100K) | = | 0,8 * 0,02 đô la | |
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/tháng | |||||||
20KB/DAU xuất ra hàng ngày * 5K DAU | = | 100 MB lưu lượng truy cập hàng ngày * 30 | = | 3GB truy cập mạng hàng tháng | |||
3 GB đầu ra miễn phí = 1 miễn phí | |||||||
15KB dung lượng tin nhắn hàng ngày / Dung lượng DAU + 3KB / cài đặt 2 | = | 45KB dung lượng lưu trữ / DAU * 5K DAU | = | 225 MB dung lượng lưu trữ hàng ngày / DAU * 30 | = | Sử dụng dung lượng lưu trữ hàng tháng 6,75GB | |
Bộ nhớ miễn phí 1GB + (5,75 * 0,18 USD) = 1,04 USD / tháng |
1 10GB dung lượng truy cập mạng hàng tháng là miễn phí đối với Cloud Firestore.
2 Vì giả định của chúng tôi là 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/tháng
Chi phí Đọc/Ghi | |||||
---|---|---|---|---|---|
Tổng chi phí hàng tháng = $261,90/tháng | |||||
Tổng số 8 triệu lượt đọc hàng ngày | = | 50 nghìn lượt đọc miễn phí + (7,95 triệu lượt đọc ở mức 0,06 đô la/100 nghìn) | = | 79,5 * 0,06 đô la | |
4,77 USD / ngày * 30 = 143,10 USD | |||||
Tổng số 2M viết hàng ngày | = | 20K ghi miễn phí + (1,98 triệu ghi ở mức 0,18 USD/100K) | = | 19,8 * 0,18 đô la | |
3,56 USD / ngày * 30 = 106,80 USD | |||||
Tổng số 2 triệu lượt xóa hàng ngày | = | 20 nghìn lượt xóa miễn phí + (1,98 triệu lượt xóa ở mức 0,02 USD/100 nghìn) | = | 19,8 * 0,02 đô la | |
0,40 USD / ngày * 30 = 12,00 USD |
Chi phí lưu trữ/mạng | |||||||
---|---|---|---|---|---|---|---|
Tổng chi phí hàng tháng = $30,12/tháng | |||||||
20KB/DAU xuất ra hàng ngày * 100K DAU | = | 2GB lưu lượng truy cập hàng ngày * 30 | = | 60GB truy cập mạng hàng tháng | |||
10 GB đầu ra miễn phí + (50GB đầu ra * 0,12 USD/GB) = 6,00 USD / tháng | |||||||
15KB dung lượng tin nhắn hàng ngày / Dung lượng DAU + 3KB / cài đặt 1 | = | 45KB dung lượng lưu trữ / DAU * 100K DAU | = | 4,5GB dung lượng lưu trữ hàng ngày / DAU * 30 | = | Dung lượng lưu trữ hàng tháng 135GB | |
Bộ nhớ miễn phí 1GB + (134GB * 0,18 USD/GB) = 24,12 USD / tháng |
1 Vì giả định của chúng tôi là 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
Chi phí Đọc/Ghi | |||||
---|---|---|---|---|---|
Tổng chi phí hàng tháng = Tổng cộng: $2637,90/tháng | |||||
Tổng số 80 triệu lượt đọc hàng ngày | = | 50 nghìn lượt đọc miễn phí + (79,95 triệu lượt đọc ở mức 0,06 đô la/100 nghìn) | = | 799,5 * 0,06 đô la | |
47,97 USD / ngày * 30 = 1439,10 USD | |||||
Tổng cộng 20 triệu lượt viết hàng ngày | = | 20 nghìn lượt ghi miễn phí + (19,98 triệu lượt ghi ở mức 0,18 USD/100 nghìn) | = | 199,8 * 0,18 đô la | |
35,96 USD / ngày * 30 = 1078,80 USD | |||||
Tổng số 20 triệu lượt xóa hàng ngày | = | 20 nghìn lượt xóa miễn phí + (19,98 triệu lượt xóa ở mức 0,02 USD/100 nghìn) | = | 199,8 * 0,02 đô la | |
4,00 USD / ngày * 30 = 120,00 USD |
Chi phí lưu trữ/mạng | |||||||
---|---|---|---|---|---|---|---|
Tổng chi phí hàng tháng = $313,62/tháng | |||||||
20KB / DAU xuất ra hàng ngày * 1 triệu DAU | = | 20GB dung lượng truy cập hàng ngày * 30 | = | 600GB truy cập mạng hàng tháng | |||
10 GB đầu ra miễn phí + (590GB đầu ra * 0,12 USD/GB) = 70,80 USD / tháng | |||||||
15KB dung lượng tin nhắn hàng ngày / Dung lượng DAU + 3KB / cài đặt 1 | = | 45KB dung lượng lưu trữ / DAU * 1 triệu DAU | = | 45GB dung lượng lưu trữ hàng ngày / DAU * 30 | = | Dung lượng lưu trữ hàng tháng 1350GB | |
(Bộ nhớ miễn phí 1GB) + (1349GB * 0,18 USD/GB) = 242,82 USD / tháng |
1 Vì giả định của chúng tôi là 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 Cloud Firestore đáng xem xét là bạn chỉ trả tiền cho những gì bạn sử dụng. Do đó, hóa đơn của bạn có thể tăng và giảm theo số lượng DAU của bạn.
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 ví dụ của chúng tôi, cấu trúc dữ liệu như sau:
-
users/{userId}
- Bản ghi người dùng -
groups/{groupId}
— 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.
-
lưu trữ dữ liệu
Để tính toán chi phí lưu trữ để 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:
Bộ sưu tậ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 |
các nhóm | 0,5KB | 1,5KB |
tin nhắn | 0,25KB | 0,75KB |
*Tính toán kích thước này bao gồm các chỉ mục cho các trường thông báo, nhưng giả sử tính năng lập chỉ mục bị vô hiệu hóa đối với nội dung thông báo.
Ứng dụng này cũng chỉ lưu trữ các tin nhắn có thời hạn tối đa ba 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 kích thước lưu trữ .
hoạt động
Người dùng thường hoàn thành các tác vụ phổ biến sau 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à xem 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 được đăng.
- Đọc tin nhắn trong cuộc trò chuyện: Người dùng chọn cuộc trò chuyện từ màn hình chính và đọc tin nhắn gần đây từ cuộc trò chuyện.
- Gửi tin nhắn đến cuộc trò chuyện: Người dùng gửi tin nhắn đến cuộc trò chuyện (nhóm hoặc trực tiếp).
Tổng số hoạt động ướ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
- Số lần viết: (10 * 2) = 20 lần viết/người dùng/ngày
- Đầu ra mạng : (50 * 0,25KB) + (30 * 0,25KB) = 20KB/người dùng/ngày
- Lưu trữ : (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à bảng phân tích chi phí vận hành, lưu trữ và kết nối mạng trong ứng dụng.
Xem danh sách các 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ần đọ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 mỗi người dùng có 125 lượt đọc 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ể 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, đượ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ần đọc tài liệu.
Đọc tin nhắn trong một cuộc trò chuyện
Người dùng nhấp vào chuỗi trò chuyện từ 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 cho mỗi lần họ mở màn hình chính), dẫn đến tổng số lượt đọc mỗi người dùng là 250 lần mỗi ngày. Chúng tôi cũng có thể giới hạn truy vấn của mình đối với các thư mới kể từ lần tìm nạp cuối cùng:
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, điều này có nghĩa là chỉ 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ử rằng 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ẽ có hai lần ghi tài liệu: một lần ghi vào tập hợp con messages
của cuộc trò chuyện và một lầ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.
Lưu ý rằng chi phí đọc những tin nhắn này đã được tính trong các hành trình khác, vì vậy tổng số dưới đây chỉ xem xét chi phí viết 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 ứng dụng hoặc quản trị viên, bạn có thể muốn tạo báo cáo từ dữ liệu ứng dụng của mình. Ví dụ: bạn có thể muốn theo dõi số lượng thư hàng ngày được gửi bởi người dùng của mình. Bạn có thể thực hiện điều này với tập 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 chẳng hạn như count()
, bạn sẽ bị tính phí một lần đọc tài liệu cho mỗi lô gồm tối đa 1.000 mục nhập chỉ mục khớp với truy vấn. Chạy tổng hợp hàng ngày này sẽ thêm các khoản phí hàng tháng sau:
Bé 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 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/giá 100.000 lượt đọ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 chỉ mục phù hợp với 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/giá 100.000 lượt đọ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 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 chỉ mục khớp với mỗi lần đọ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/100000 lượt đọc giá = 0,18 đô la mỗi tháng
Lợi ích đi kèm: Dịch vụ miễn phí cho ứng dụng của bạn
Mặc dù các hoạt động, dung lượng lưu trữ và băng thông mạng của Cloud Firestore đều được coi là mức sử dụng phải trả 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 xem xét các dịch vụ miễn phí sau đây khi bạn so sánh Cloud Firestore với các tùy chọn cơ sở dữ liệu khác:
- Truy cập máy khách trực tiếp: Cloud Firestore được truy cập trực tiếp từ mã máy khách 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 xây dựng và chạy máy chủ API để kết nối máy khách di động của mình với cơ sở dữ liệu.
- Cân bằng tải: Vì Cloud Firestore tự động thay đổi 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 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ủ của Google Cloud, cung cấp 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à an toàn với Xác thực Firebase . Xác thực Firebase tích hợp trực tiếp với Cloud Firestore, do đó 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 miễn phí các sản phẩm Firebase khác, bao gồm Thử nghiệm A/B, Phân tích, Phân tích sự cố, 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à giá Firebase .