Υπάρχει μια συγκεκριμένη στιγμή όπου μια managed βάση δεδομένων παύει να είναι βολική και αρχίζει να είναι τοίχος. Θέλετε ένα extension που η βαθμίδα δεν προσφέρει. Θέλετε να δείτε το πραγματικό query plan και να ρυθμίσετε το work_mem. Θέλετε έναν superuser. Μια managed υπηρεσία είναι μια εξαιρετική προεπιλογή μέχρι τη στιγμή που χρειάζεται να κατέχετε το πράγμα — και τότε ένα VPS με πλήρες root είναι η έντιμη απάντηση.
Αυτή η σελίδα αφορά το να τρέχετε τον δικό σας PostgreSQL ή Redis σωστά, και να είστε σαφείς για το πού ένα κοινόχρηστο box είναι η σωστή επιλογή και πού όχι.
Τι χρειάζεται πραγματικά μια βάση δεδομένων
Οι βάσεις δεδομένων νοιάζονται για δύο πράγματα που ένας game server δεν νοιάζεται: μνήμη για το working set και disk I/O. Το πρόχειρο σχήμα:
- Μία εφαρμογή — ένα instance Postgres (ή Redis) συν μια υπηρεσία backend. Το working set είναι συνήθως 1,7-2 GB. Το Small ($8) το χειρίζεται χωρίς δράμα.
- Λίγες εφαρμογές, ή πραγματική production ταυτοχρονία — περισσότερες συνδέσεις, μεγαλύτερα caches, εργασίες παρασκηνίου. Το Medium ($12) σας δίνει το περιθώριο.
- Άλλες μηχανές χρειάζεται να τη φτάσουν — θέλετε μια σταθερή, δρομολογήσιμη διεύθυνση, οπότε ένα πακέτο αποκλειστικού IPv4 (Small-IP $16 και πάνω). Περισσότερα παρακάτω.
Το Redis είναι ακόμη ελαφρύτερο — είναι memory-bound, οπότε ορίστε το μέγεθος του πακέτου στο dataset σας συν το overhead και τελειώσατε. Το Postgres είναι αυτό που ανταμείβει λίγο tuning.
Ο πραγματικός λόγος για self-host: έλεγχος
Εδώ ένα VPS κερδίζει τη θέση του. Στο δικό σας box αποκτάτε:
- Ολόκληρο το
postgresql.conf—shared_buffers,work_mem,max_connections, ρυθμίσεις WAL, όλα, ρυθμισμένα στο φορτίο εργασίας σας αντί για τις προεπιλογές ενός κατασκευαστή. - Οποιοδήποτε extension.
pgvectorγια embeddings και σημασιολογική αναζήτηση,PostGISγια γεωχωρικά,TimescaleDBγια time series,pg_cron,pg_stat_statements— εγκαταστήστε ό,τι χρειάζεστε. Οι managed βαθμίδες συχνά περιορίζουν τη λίστα extensions ή την κλειδώνουν πίσω από ένα υψηλότερο πακέτο. - Superuser και το OS από κάτω του. Μπορείτε να μετακινήσετε το data directory, να ρυθμίσετε το kernel, να τρέξετε
pg_dumpστο δικό σας πρόγραμμα, και να στήσετε streaming replication σε ένα άλλο box αν το θέλετε.
Αν τίποτα από αυτά δεν σας ενδιαφέρει, μια managed βάση δεδομένων είναι γνήσια εντάξει και θα πρέπει να χρησιμοποιήσετε μία. Αυτή η σελίδα είναι για την περίπτωση που σας ενδιαφέρει.
Πού ένα κοινόχρηστο box είναι το λάθος εργαλείο
Ας το πούμε ευθέως: ένα VPS κοινόχρηστου vCPU δεν είναι φτιαγμένο για βαρύ OLTP — εκατοντάδες συναλλαγές το δευτερόλεπτο με εγγραφές κρίσιμες σε latency. Αυτό το φορτίο ζει ή πεθαίνει στο εγγυημένο disk I/O και ένα σταθερό ρολόι, και τα κοινόχρηστα πακέτα δεν υπόσχονται κανένα. Αν αυτό είστε εσείς, θέλετε αποκλειστικό hardware, και προτιμάμε να σας το πούμε τώρα παρά να παρακολουθήσουμε το p99 latency σας να ντροπιάζει και τους δύο μας.
Για την πολύ πιο κοινή περίπτωση — μια βάση δεδομένων πίσω από μία εφαρμογή, ένα εσωτερικό εργαλείο, ένα analytics store, ένα cache — ένα κοινόχρηστο πακέτο είναι ακριβώς το σωστό.
Τα backups δεν είναι προαιρετικά
Το self-hosting σημαίνει ότι τα backups είναι δική σας δουλειά, και ο ένας κανόνας είναι: κάντε τα πριν τα χρειαστείτε. Για το Postgres, pg_dump σε cron για λογικά backups, ή WAL archiving για point-in-time recovery σε οτιδήποτε πραγματικά σας ενδιαφέρει. Στείλτε τα dumps εκτός του box — σε object storage ή άλλον server — ώστε ένας νεκρός δίσκος να μην πάρει μαζί του και τα backups. Δοκιμάστε μια επαναφορά τουλάχιστον μία φορά. Ένα backup που δεν έχετε ποτέ επαναφέρει είναι ελπίδα, όχι backup.
Αφήνοντας άλλους servers να συνδεθούν
Αν η βάση δεδομένων εξυπηρετεί μόνο μια εφαρμογή στο ίδιο box, δέστε την στο localhost και τελειώσατε — τίποτα να εκθέσετε. Τη στιγμή που μια άλλη μηχανή χρειάζεται είσοδο, δύο πράγματα αλλάζουν:
- Χρειάζεστε μια σταθερή, δρομολογήσιμη διεύθυνση — αυτό είναι ένα πακέτο αποκλειστικού IPv4 (Small-IP $16, Medium-IP $20). Τα πακέτα NAT μοιράζονται μια διεύθυνση, που είναι εντάξει για εξερχόμενα αλλά όχι για να είστε μια βάση δεδομένων που άλλοι servers καλούν.
- Το βάζετε σε firewall σκληρά. Ανοίξτε το 5432 (ή 6379) μόνο στα συγκεκριμένα IPs που το χρειάζονται, ποτέ στο
0.0.0.0/0, και απαιτήστε TLS. Ένα ανοιχτό port Postgres στο δημόσιο διαδίκτυο βρίσκεται σε λεπτά.
Επιλογή πακέτου
| Εγκατάσταση | Πακέτο |
|---|---|
| DB πίσω από μία εφαρμογή, μόνο localhost | Small ($8) |
| Λίγες εφαρμογές / production ταυτοχρονία | Medium ($12) |
| Άλλοι servers πρέπει να συνδεθούν | Small-IP ($16) / Medium-IP ($20) |
| Βαρύ OLTP, εκατοντάδες TPS | αποκλειστικό hardware, όχι κοινόχρηστο VPS |
Οι περισσότερες self-hosted βάσεις δεδομένων ξεκινούν σε Small και μεγαλώνουν σε Medium ή ένα πακέτο αποκλειστικού IP καθώς αναλαμβάνουν περισσότερες εφαρμογές ή εξωτερικούς clients.
Γιατί εδώ
Το πλήρες root σημαίνει ότι είναι η βάση δεδομένων σας, μέχρι κάτω — κάθε γραμμή config, κάθε extension, το δικό σας πρόγραμμα backup, καμία βαθμίδα να αποφασίζει τι σας επιτρέπεται να εγκαταστήσετε. Η πληρωμή είναι crypto (USDC ή USDT σε Base, Ethereum ή Polygon), χωρίς KYC, χωρίς έγγραφα. Root σε περίπου 60 δευτερόλεπτα μετά την πληρωμή, και μπορείτε να έχετε το Postgres να δέχεται συνδέσεις μερικά λεπτά αργότερα.
Η έντιμη ανακεφαλαίωση: self-host όταν θέλετε έλεγχο — extensions, tuning, superuser — και όταν το φορτίο σας είναι μέτριο. Για τη βάση δεδομένων μιας μικρής-έως-μέτριας εφαρμογής, ένα κοινόχρηστο πακέτο είναι το σωστό εργαλείο. Για εκατοντάδες TPS OLTP κρίσιμου σε latency, δεν είναι, και θα το πούμε. Έτοιμοι; Επιλέξτε ένα πακέτο.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.