Veritabanı için VPS nasıl seçilir
Kendi VPS'inizdeki bir veritabanı, öngörülebilir bir fiyat ve ayarlara tam erişim demektir: istediğiniz sürümü kurabilir, eklentileri açabilir ve yedeklemeyi kendinize göre yapılandırabilirsiniz. Buluttaki yönetilen veritabanları daha rahattır, ancak aynı bellek miktarı için kat kat pahalıdır. Güncellemeleri ve yedekleri kendiniz takip etmeye hazırsanız, veritabanı sunucusu kendini hızla amorti eder.
Bellek çekirdeklerden daha önemli
Veritabanları sık kullanılan verileri RAM'de tutar: PostgreSQL shared_buffers ve dosya sistemi önbelleğinde, MySQL ve MariaDB InnoDB tampon havuzunda, Redis ise tamamen bellekte. Çalışma kümesi belleğe sığdığı sürece sorgular milisaniyeler içinde yanıt verir; sığmadığı anda her sorgu diske gider ve hız onlarca kat düşer. Bu yüzden önce aktif veri hacmini tahmin edin ve belleği payıyla alın:
- 5 GB'a kadar veri — blog, küçük bir mağaza, bot arka ucu: 2 GB RAM yeterli;
- 10–30 GB — CRM, kataloglu e-ticaret sitesi, analitik: en az 4 GB, tercihen 8 GB;
- 50 GB'tan fazla veya saniyede yüzlerce sorgu — en az 16 GB ve ayrılmış çekirdekler.
Çekirdekler paralel sorgular ve ağır raporlar için gereklidir. Tipik bir web yükü için 2 çekirdek yeterlidir; yukarıdaki tablo varsayılan olarak gigabayt bellek fiyatına göre sıralanmıştır — veritabanı için ana parametre budur.
Disk: yalnızca NVMe
Veritabanı sürekli küçük rastgele okuma ve yazma yapar, işlem günlüğü ise hızlı senkron yazma ister. HDD'lerde ve paylaşımlı ucuz SATA SSD'lerde bu, her kontrol noktasında gecikmelere ve «takılmalara» dönüşür. NVMe paketleri seçin ve mevcut veri hacminin üç katı yer ayırın: indeksler, WAL veya binlog günlükleri, geçici sıralama dosyaları ve yerel yedekler en az tabloların kendisi kadar yer kaplar.
PostgreSQL, MySQL veya Redis
- PostgreSQL — yeni projeler için çok yönlü seçim: katı işlemler, JSON, tam metin arama, PostGIS gibi eklentiler. Gereksinimlerle ilgili ayrıntılar PostgreSQL için VPS sayfasında.
- MySQL ve MariaDB — WordPress, Bitrix ve çoğu CMS için standart; küçük hacimlerde daha az bellek tüketir. Bkz. MySQL için VPS.
- Redis — önbellek, kuyruklar ve oturumlar; her şey bellekte tutulur, bu yüzden paketi belleğin miktarı belirler. Bkz. Redis için VPS.
Güvenlik ve yedekler
Veritabanı portunu asla internete açmayın: PostgreSQL (5432), MySQL (3306) ve Redis (6379) yalnızca 127.0.0.1 veya özel ağı dinlemelidir. Uygulama başka bir sunucudaysa ikisini WireGuard veya SSH tüneliyle bağlayın. Açık veritabanlarını tarayıcılar saatler içinde bulur ve fidye yazılımları verileri şifreler.
Aynı sunucudaki yedek, yedek değildir. Günlük döküm (pg_dump, mysqldump) veya sürekli günlük arşivleme ayarlayın ve bunu başka bir yere kopyalayın: nesne depolamaya ya da yedekler için ayrı bir VPS'e. Ayda bir kez kopyadan gerçekten geri yükleme yapılabildiğini kontrol edin.
Nerede barındırmalı
Veritabanını uygulamayla aynı veri merkezine koyun: ağdaki her fazladan 30–50 ms, sayfa başına sorgu sayısıyla çarpılır. Rusya vatandaşlarının kişisel verilerini saklıyorsanız 152-FZ yasasına göre veritabanı Rusya'da olmalıdır — bunun için Rusya'da VPS seçkisi var.