Yönetilen bir veritabanının kullanışlı olmayı bırakıp bir duvar olmaya başladığı belirli bir an vardır. Kademenin sunmadığı bir eklenti istersiniz. Gerçek sorgu planını görmek ve work_mem'i ayarlamak istersiniz. Bir superuser istersiniz. Yönetilen bir hizmet, ta ki o şeyin sahibi olmanız gerekene kadar harika bir varsayılandır — ve sonra tam root'lu bir VPS dürüst cevaptır.
Bu sayfa, kendi PostgreSQL veya Redis'inizi doğru çalıştırmak ve paylaşımlı bir kutunun nerede doğru tercih olduğu ve nerede olmadığı konusunda açık olmak hakkında.
Bir veritabanının gerçekte ihtiyacı olan şey
Veritabanları, bir oyun sunucusunun umursamadığı iki şeyi umursar: çalışma kümesi için bellek ve disk I/O'su. Kabaca şekli:
- Tek uygulama — bir Postgres (veya Redis) örneği artı bir arka uç hizmeti. Çalışma kümesi genellikle 1.7-2 GB'dir. Small ($8) bunu dramasız kaldırır.
- Birkaç uygulama veya gerçek üretim eşzamanlılığı — daha fazla bağlantı, daha büyük önbellekler, arka plan işleri. Medium ($12) size alan verir.
- Başka makinelerin ulaşması gerekiyor — sabit, yönlendirilebilir bir adres istersiniz, yani bir özel-IPv4 planı (Small-IP $16 ve üzeri). Aşağıda daha fazlası.
Redis daha da hafiftir — bellek-bağımlıdır, o yüzden planı veri kümenize artı ek yüke göre boyutlandırın ve işiniz biter. Postgres, biraz ince ayarı ödüllendirenidir.
Self-host etmenin asıl nedeni: kontrol
Bir VPS'in yerini hak ettiği yer burası. Kendi kutunuzda şunları alırsınız:
postgresql.conf'un tamamı —shared_buffers,work_mem,max_connections, WAL ayarları, hepsi, bir satıcının varsayılanları yerine iş yükünüze göre ayarlanmış.- Herhangi bir eklenti. Gömmeler ve anlamsal arama için
pgvector, coğrafi içinPostGIS, zaman serileri içinTimescaleDB,pg_cron,pg_stat_statements— ihtiyacınız olanı kurun. Yönetilen kademeler sıkça eklenti listesini kısıtlar veya onu daha yüksek bir planın arkasına koyar. - Superuser ve altındaki OS. Veri dizinini taşıyabilir, çekirdeği ayarlayabilir,
pg_dump'ı kendi programınıza göre çalıştırabilir ve isterseniz başka bir kutuya akış çoğaltması kurabilirsiniz.
Bunların hiçbiri sizin için önemli değilse, yönetilen bir veritabanı gerçekten gayet iyidir ve onu kullanmalısınız. Bu sayfa, önemli olduğu durum içindir.
Paylaşımlı bir kutunun yanlış araç olduğu yer
Açık olmak gerekirse: paylaşımlı-vCPU bir VPS, ağır OLTP için yapılmamıştır — saniyede yüzlerce işlem, gecikmeye kritik yazmalar. O iş yükü garantili disk I/O'su ve istikrarlı bir saatle var olur veya ölür ve paylaşımlı planlar ikisini de vaat etmez. Bu sizseniz, özel donanım istersiniz ve p99 gecikmenizin ikimizi de utandırmasını izlemektense bunu size şimdi söylemeyi tercih ederiz.
Çok daha yaygın durum için — tek bir uygulamanın arkasındaki bir veritabanı, dahili bir araç, bir analiz deposu, bir önbellek — paylaşımlı bir plan tam olarak doğrudur.
Yedeklemeler isteğe bağlı değildir
Self-host etmek, yedeklemelerin sizin işiniz olduğu anlamına gelir ve tek kural şudur: onlara ihtiyaç duymadan önce yapın. Postgres için, mantıksal yedeklemeler için bir cron üzerinde pg_dump veya gerçekten önemsediğiniz her şeyde nokta-zamana kurtarma için WAL arşivleme. Dökümleri kutunun dışına gönderin — nesne depolamaya veya başka bir sunucuya — böylece ölü bir disk yedeklemeleri de götürmesin. En az bir kez bir geri yüklemeyi test edin. Hiç geri yüklemediğiniz bir yedekleme, bir yedekleme değil bir umuttur.
Diğer sunucuların bağlanmasına izin vermek
Veritabanı yalnızca aynı kutudaki bir uygulamaya hizmet ediyorsa, onu localhost'a bağlayın ve işiniz bitti — açığa çıkaracak bir şey yok. Başka bir makinenin girmesi gereken an, iki şey değişir:
- Sabit, yönlendirilebilir bir adrese ihtiyacınız var — bu bir özel-IPv4 planıdır (Small-IP $16, Medium-IP $20). NAT planları bir adres paylaşır ki bu giden için uygun ama diğer sunucuların çevirdiği bir veritabanı olmak için değil.
- Onu sıkı güvenlik duvarıyla korursunuz. 5432'yi (veya 6379'u) yalnızca ihtiyaç duyan belirli IP'lere açın, asla
0.0.0.0/0'a değil ve TLS zorunlu kılın. Herkese açık internette açık bir Postgres portu dakikalar içinde bulunur.
Plan seçme
| Kurulum | Plan |
|---|---|
| Tek uygulama arkasında DB, yalnızca localhost | Small ($8) |
| Birkaç uygulama / üretim eşzamanlılığı | Medium ($12) |
| Diğer sunucuların bağlanması gerekiyor | Small-IP ($16) / Medium-IP ($20) |
| Ağır OLTP, saniyede yüzlerce TPS | özel donanım, paylaşımlı VPS değil |
Çoğu self-hosted veritabanı Small üzerinde başlar ve daha fazla uygulama veya harici istemci aldıkça Medium'a veya bir özel-IP planına büyür.
Neden burada
Tam root, bunun aşağıya kadar sizin veritabanınız olduğu anlamına gelir — her yapılandırma satırı, her eklenti, kendi yedekleme programınız, neyi kurmanıza izin verildiğine karar veren bir kademe yok. Ödeme kripto (Base, Ethereum veya Polygon üzerinde USDC veya USDT), KYC yok, belge yok. Ödemeden yaklaşık 60 saniye sonra root ve birkaç dakika sonra Postgres bağlantı kabul ediyor olabilir.
Dürüst özet: kontrol istediğinizde — eklentiler, ince ayar, superuser — ve iş yükünüz ılımlı olduğunda self-host edin. Küçükten ortaya bir uygulamanın veritabanı için, paylaşımlı bir plan doğru araçtır. Gecikmeye kritik OLTP'nin saniyede yüzlerce TPS'i için değildir ve bunu söyleriz. Hazır mısınız? Bir plan seçin.
Yorumlar
Henüz yorum yok. İlk olun.