Tìm hiểu về việc thanh toán cho cơ sở dữ liệu theo thời gian thực

Firebase lập hoá đơn cho dữ liệu bạn lưu trữ trong cơ sở dữ liệu của mình và tất cả mạng đầu ra lưu lượng truy cập tại lớp phiên (lớp 5) của mô hình OSI. Phí bộ nhớ là 5 USD/GB/tháng, được đánh giá hằng ngày. Vị trí không ảnh hưởng đến hoạt động thanh toán của cơ sở dữ liệu. Lưu lượng truy cập đi bao gồm chi phí kết nối và mã hoá từ tất cả các thao tác với cơ sở dữ liệu và dữ liệu được tải xuống thông qua các lần đọc cơ sở dữ liệu. Cả hai việc đọc và ghi cơ sở dữ liệu có thể làm phát sinh chi phí kết nối trên hoá đơn của bạn. Tất cả lưu lượng truy cập đến và đi từ cơ sở dữ liệu của bạn, bao gồm cả các thao tác bị từ chối bởi bảo mật dẫn đến chi phí có thể lập hoá đơn.

Một số ví dụ phổ biến về lưu lượng truy cập có tính phí bao gồm:

  • Đã tải dữ liệu xuống: Khi khách hàng nhận dữ liệu từ cơ sở dữ liệu của bạn, Firebase tính phí dữ liệu tải xuống. Thông thường, trang này chiếm phần lớn nhưng đó không phải là yếu tố duy nhất trong hoá đơn của bạn.
  • Mức hao tổn giao thức: Một số lưu lượng truy cập bổ sung giữa máy chủ và ứng dụng là cần thiết để thiết lập và duy trì một phiên. Tuỳ thuộc vào cơ sở giao thức, lưu lượng truy cập này có thể bao gồm: hao tổn giao thức, hao tổn WebSocket và hao tổn tiêu đề HTTP. Mỗi khi một kết nối được thiết lập, mức hao tổn này, kết hợp với bất kỳ mã hoá SSL nào đều góp phần vào chi phí kết nối. Mặc dù đây không phải là cho một yêu cầu, thì đó có thể là một phần đáng kể trong hoá đơn của bạn nếu tải trọng của bạn nhỏ hoặc bạn thường xuyên kết nối ngắn.
  • Chi phí mã hóa SSL: Có chi phí liên quan đến việc SSL chi phí mã hoá cần thiết cho các kết nối an toàn. Trung bình, chi phí này khoảng 3, 5KB cho cái bắt tay ban đầu và khoảng hàng chục byte cho tiêu đề bản ghi TLS trên mỗi thư gửi đi. Đối với hầu hết các ứng dụng, đây là một phần nhỏ trên hoá đơn. Tuy nhiên, tỷ lệ này nếu trường hợp cụ thể của bạn yêu cầu nhiều bắt tay SSL. Ví dụ: thiết bị không hỗ trợ vé phiên TLS có thể yêu cầu một số lượng lớn các bắt tay kết nối SSL.
  • Dữ liệu trên bảng điều khiển của Firebase: Mặc dù đây thường không phải là trong chi phí của Cơ sở dữ liệu theo thời gian thực, Firebase tính phí dữ liệu mà bạn đọc và ghi từ bảng điều khiển của Firebase.

Ước tính mức sử dụng đã tính phí

Để xem mức sử dụng dữ liệu và kết nối với Cơ sở dữ liệu theo thời gian thực hiện tại, hãy xem Tác dụng trong bảng điều khiển của Firebase. Bạn có thể kiểm tra mức sử dụng so với thanh toán hiện tại trong một khoảng thời gian nhất định, 30 ngày qua hoặc 24 giờ qua.

Firebase hiển thị số liệu thống kê về việc sử dụng cho các chỉ số sau:

  • Kết nối: Số lượng kết nối đồng thời, hiện đang mở, theo thời gian thực các kết nối tới cơ sở dữ liệu của bạn. Điều này bao gồm các báo cáo theo thời gian thực sau kết nối: WebSocket, cuộc thăm dò ý kiến kéo dài và sự kiện do máy chủ HTML gửi. Có không bao gồm các yêu cầu RESTful.
  • Bộ nhớ: Lượng dữ liệu được lưu trữ trong cơ sở dữ liệu của bạn. Điều này không bao gồm Firebase lưu trữ hoặc lưu trữ dữ liệu thông qua các sản phẩm khác của Firebase.
  • Tệp đã tải xuống: Tất cả byte đã được tải xuống từ cơ sở dữ liệu của bạn, bao gồm cả giao thức và chi phí mã hoá.
  • Tải: Biểu đồ này cho biết lượng cơ sở dữ liệu đang được sử dụng, xử lý trong khoảng thời gian 1 phút nhất định. Bạn có thể thấy các vấn đề về hiệu suất khi cơ sở dữ liệu của bạn đạt 100%.

Tối ưu hoá việc sử dụng

Bạn có thể áp dụng một số phương pháp hay nhất để tối ưu hoá việc sử dụng cơ sở dữ liệu và chi phí băng thông.

  • Sử dụng SDK gốc: Bất cứ khi nào có thể, hãy sử dụng SDK tương ứng với nền tảng của ứng dụng thay vì API REST. SDK vẫn mở kết nối, giảm chi phí mã hoá SSL thường tăng lên API REST.
  • Kiểm tra lỗi: Nếu chi phí băng thông của bạn cao đột ngột, hãy xác minh rằng ứng dụng của bạn không đồng bộ hoá nhiều dữ liệu hơn hoặc đồng bộ hoá thường xuyên hơn so với ban đầu dự định. Để xác định vấn đề, hãy dùng công cụ trình phân tích tài nguyên để đo lường hoạt động đọc và bật tính năng ghi nhật ký gỡ lỗi trong Android, Mục tiêu-C, và Web SDK. Kiểm tra nền và quy trình đồng bộ hoá trong ứng dụng của bạn để đảm bảo mọi thứ đều đang hoạt động như dự định.
  • Giảm kết nối: Nếu có thể, hãy cố gắng tối ưu hoá kết nối băng thông. Các yêu cầu REST nhỏ và thường xuyên có thể tốn nhiều chi phí hơn so với một yêu cầu kết nối liên tục bằng cách sử dụng SDK gốc. Nếu bạn sử dụng API REST, hãy cân nhắc việc duy trì HTTP hay sự kiện do máy chủ gửi, giúp giảm chi phí do bắt tay SSL.
  • Sử dụng vé phiên TLS: Giảm chi phí hao tổn mã hoá SSL khi tiếp tục bằng cách cấp Vé phiên giao dịch TLS (Bảo mật tầng truyền tải). Điều này đặc biệt hữu ích nếu bạn cần kết nối an toàn và thường xuyên vào cơ sở dữ liệu.
  • Truy vấn lập chỉ mục: Lập chỉ mục dữ liệu của bạn giảm tổng băng thông bạn dùng cho các truy vấn, điều này mang lại lợi ích gấp đôi giúp giảm chi phí và tăng hiệu suất của cơ sở dữ liệu. Sử dụng công cụ trình phân tích tài nguyên để tìm các truy vấn chưa được lập chỉ mục trong cơ sở dữ liệu của bạn.
  • Tối ưu hoá trình nghe: Thêm truy vấn để giới hạn dữ liệu mà bạn nghe hoạt động trả về và sử dụng trình nghe chỉ tải bản cập nhật cho dữ liệu xuống — cho ví dụ: on() thay vì once(). Ngoài ra, hãy đặt người nghe dưới dạng để hạn chế lượng dữ liệu đồng bộ hoá.
  • Giảm chi phí lưu trữ: Chạy công việc dọn dẹp định kỳ và giảm mọi bản sao trong cơ sở dữ liệu của bạn.
  • Sử dụng quy tắc: Ngăn chặn mọi hoạt động trái phép, có thể gây tốn kém trên cơ sở dữ liệu của bạn. Ví dụ: việc sử dụng Quy tắc bảo mật cơ sở dữ liệu theo thời gian thực Firebase có thể giúp tránh được tình huống nơi người dùng độc hại liên tục tải xuống toàn bộ cơ sở dữ liệu của bạn. Tìm hiểu thêm về bằng Quy tắc cơ sở dữ liệu theo thời gian thực của Firebase.

Kế hoạch tối ưu hoá tốt nhất cho ứng dụng tuỳ thuộc vào trường hợp sử dụng cụ thể của bạn. Mặc dù đây không phải là danh sách đầy đủ tất cả các phương pháp hay nhất, nhưng bạn có thể thêm lời khuyên và mẹo từ các chuyên gia Firebase trên Kênh Slack hoặc trên Stack Overflow.