Có một khoảnh khắc cụ thể khi một cơ sở dữ liệu có quản lý ngừng tiện lợi và bắt đầu trở thành một bức tường. Bạn muốn một extension mà cấp đó không cung cấp. Bạn muốn xem query plan thực và tinh chỉnh work_mem. Bạn muốn một superuser. Một dịch vụ có quản lý là một lựa chọn mặc định tuyệt vời cho tới đúng lúc bạn cần sở hữu cái đó — và rồi một VPS với toàn quyền root là câu trả lời trung thực.
Trang này nói về việc chạy PostgreSQL hoặc Redis của riêng bạn đúng cách, và nói rõ nơi một cỗ máy dùng chung là lựa chọn đúng và nơi không phải.
Một cơ sở dữ liệu thực sự cần gì
Các cơ sở dữ liệu quan tâm đến hai thứ mà một máy chủ game không: bộ nhớ cho tập làm việc và I/O đĩa. Hình dạng đại khái:
- Một ứng dụng — một instance Postgres (hoặc Redis) cộng một dịch vụ backend. Tập làm việc thường là 1.7-2 GB. Small ($8) xử lý nó không kịch tính.
- Vài ứng dụng, hoặc đồng thời production thực — nhiều kết nối hơn, cache lớn hơn, các công việc nền. Medium ($12) cho bạn dư địa.
- Các máy khác cần tới nó — bạn muốn một địa chỉ ổn định, định tuyến được, nên một gói IPv4 riêng (Small-IP $16 trở lên). Nói thêm bên dưới.
Redis còn nhẹ hơn — nó bị ràng buộc bởi bộ nhớ, nên chọn kích cỡ gói theo tập dữ liệu của bạn cộng chi phí phụ và bạn xong. Postgres là cái tưởng thưởng cho một chút tinh chỉnh.
Lý do thật sự để tự host: kiểm soát
Đây là chỗ một VPS xứng đáng có mặt. Trên cỗ máy của riêng bạn, bạn có:
- Toàn bộ
postgresql.conf—shared_buffers,work_mem,max_connections, cài đặt WAL, tất cả, được tinh chỉnh cho khối lượng công việc của bạn thay vì các mặc định của một nhà cung cấp. - Bất kỳ extension nào.
pgvectorcho embedding và tìm kiếm ngữ nghĩa,PostGIScho không gian địa lý,TimescaleDBcho chuỗi thời gian,pg_cron,pg_stat_statements— cài cái bạn cần. Các cấp có quản lý thường hạn chế danh sách extension hoặc chặn nó sau một gói cao hơn. - Superuser và OS bên dưới nó. Bạn có thể chuyển thư mục dữ liệu, tinh chỉnh kernel, chạy
pg_dumptheo lịch của riêng bạn, và thiết lập streaming replication tới một cỗ máy khác nếu bạn muốn.
Nếu không điều nào trong đó quan trọng với bạn, một cơ sở dữ liệu có quản lý thực sự ổn và bạn nên dùng một cái. Trang này dành cho trường hợp nó quan trọng.
Nơi một cỗ máy dùng chung là công cụ sai
Nói thẳng: một VPS vCPU dùng chung không được xây dựng cho OLTP nặng — hàng trăm giao dịch mỗi giây với các thao tác ghi nhạy độ trễ. Khối lượng công việc đó sống chết theo I/O đĩa được bảo đảm và một xung nhịp ổn định, và các gói dùng chung không hứa cái nào. Nếu đó là bạn, bạn muốn phần cứng riêng, và chúng tôi thà nói với bạn bây giờ còn hơn xem độ trễ p99 của bạn làm cả hai xấu hổ.
Cho trường hợp phổ biến hơn nhiều — một cơ sở dữ liệu sau một ứng dụng, một công cụ nội bộ, một kho phân tích, một cache — một gói dùng chung là hoàn toàn đúng.
Sao lưu không phải là tùy chọn
Tự host nghĩa là sao lưu là việc của bạn, và quy tắc duy nhất là: làm chúng trước khi bạn cần. Với Postgres, pg_dump trên một cron cho sao lưu logic, hoặc lưu trữ WAL để khôi phục về một thời điểm cho bất cứ gì bạn thực sự quan tâm. Chuyển các bản dump ra khỏi cỗ máy — tới object storage hoặc một máy chủ khác — để một đĩa chết không mang theo cả các bản sao lưu. Kiểm tra một lần khôi phục ít nhất một lần. Một bản sao lưu bạn chưa bao giờ khôi phục là một hy vọng, không phải một bản sao lưu.
Cho các máy chủ khác kết nối
Nếu cơ sở dữ liệu chỉ phục vụ một ứng dụng trên cùng cỗ máy, gắn nó vào localhost và bạn xong — không có gì để phơi. Khoảnh khắc một máy khác cần vào, hai điều thay đổi:
- Bạn cần một địa chỉ ổn định, định tuyến được — đó là một gói IPv4 riêng (Small-IP $16, Medium-IP $20). Các gói NAT chia sẻ một địa chỉ, ổn cho đi ra nhưng không ổn để làm một cơ sở dữ liệu mà các máy chủ khác gọi vào.
- Bạn tường lửa nó thật chặt. Mở 5432 (hoặc 6379) chỉ cho các IP cụ thể cần nó, không bao giờ cho
0.0.0.0/0, và yêu cầu TLS. Một cổng Postgres mở trên internet công cộng bị tìm ra trong vài phút.
Chọn gói
| Thiết lập | Gói |
|---|---|
| DB sau một ứng dụng, chỉ localhost | Small ($8) |
| Vài ứng dụng / đồng thời production | Medium ($12) |
| Các máy chủ khác phải kết nối vào | Small-IP ($16) / Medium-IP ($20) |
| OLTP nặng, hàng trăm TPS | phần cứng riêng, không phải một VPS dùng chung |
Hầu hết các cơ sở dữ liệu tự host bắt đầu trên Small và lớn lên thành Medium hoặc một gói IP riêng khi chúng gánh thêm nhiều ứng dụng hoặc client bên ngoài.
Vì sao ở đây
Toàn quyền root nghĩa là nó là cơ sở dữ liệu của bạn, suốt đến tận đáy — mọi dòng cấu hình, mọi extension, lịch sao lưu của riêng bạn, không có cấp nào quyết định bạn được phép cài gì. Thanh toán là crypto (USDC hoặc USDT trên Base, Ethereum, hoặc Polygon), không KYC, không giấy tờ. Root trong khoảng 60 giây sau thanh toán, và bạn có thể có Postgres nhận kết nối vài phút sau.
Tóm tắt trung thực: tự host khi bạn muốn kiểm soát — extension, tinh chỉnh, superuser — và khi khối lượng công việc của bạn vừa phải. Cho cơ sở dữ liệu của một ứng dụng nhỏ-đến-vừa, một gói dùng chung là công cụ đúng. Cho hàng trăm TPS OLTP nhạy độ trễ, thì không, và chúng tôi sẽ nói vậy. Sẵn sàng chưa? Chọn một gói.
Bình luận
Chưa có bình luận nào. Hãy là người đầu tiên.