Kısa cevap
Küçük ve orta ölçekli bir işletme için doğru altyapı çoğu zaman ihtiyaca göre büyütülebilen bir VPS ya da bulut sunucu ile ilişkisel bir veritabanıdır; birçok iş uygulaması için PostgreSQL güçlü ve ücretsiz bir varsayılandır. Seçimde belirleyici olan işlemci gücünden çok yedekleme, izleme, güvenlik güncellemeleri ve bu işleri kimin yapacağıdır. Kişisel veri işleniyorsa sunucunun konumu KVKK açısından da önem taşır.
Yeni bir web sitesi, iş uygulaması ya da SaaS ürünü planlarken "nerede çalışacak, veri nerede duracak?" sorusu genellikle son ana bırakılır. Oysa bu karar; uygulamanın hızını, kesinti riskini, aylık maliyeti ve kişisel verilerle ilgili yükümlülükleri doğrudan etkiler.
Bu yazıda sunucu seçeneklerini, veritabanı türlerini ve altyapıda en sık atlanan konular olan yedekleme ile izlemeyi karşılaştırmalı olarak anlatıyoruz.
Sunucu seçenekleri nelerdir?
Uygulamanızı barındırmak için dört temel seçenek vardır. Aralarındaki fark, ne kadar kontrol size ait olduğu ve ne kadar işi sağlayıcının üstlendiğidir.
| Seçenek | Ne sunar? | Uygun olduğu durum | Dikkat edilecek nokta |
|---|---|---|---|
| Paylaşımlı hosting | Aynı sunucuyu çok sayıda siteyle paylaşırsınız | Basit tanıtım siteleri, küçük WordPress kurulumları | Kaynak sınırlı, özel yazılım çalıştırma esnekliği düşük |
| VPS (sanal sunucu) | Size ayrılmış sanal bir sunucu, tam yönetici erişimi | Özel uygulamalar, küçük ve orta SaaS ürünleri | Güncelleme, güvenlik ve yedek sizin sorumluluğunuzda |
| Bulut sunucu ve platformlar | Talebe göre büyüyüp küçülebilen kaynaklar, çok sayıda yönetilen servis | Değişken yük, hızlı büyüme, çok bölgeli yapı | Fiyatlandırma karmaşık, kullanım izlenmezse maliyet sürpriz yapabilir |
| Fiziksel (dedicated) sunucu | Donanımın tamamı size ait | Yüksek ve sabit yük, özel donanım ihtiyacı | Donanım arızası ve kapasite planlaması daha önemli hale gelir |
Çoğu işletme uygulaması için iyi yapılandırılmış bir VPS ya da bulut sunucu yeterli başlangıçtır. Yük arttığında sunucuyu büyütmek ya da veritabanını ayrı bir sunucuya taşımak mümkündür.
Yönetilen servis mi, kendi kurulumunuz mu?
Yönetilen servis (managed service), veritabanı ya da uygulama altyapısının kurulum, güncelleme, yedekleme ve yüksek erişilebilirlik gibi işlerinin sağlayıcı tarafından üstlenildiği hizmet modeli demektir. Kendi kurulumunuzda ise aynı veritabanını bir sunucuya kendiniz kurar ve yönetirsiniz.
- Yönetilen veritabanı daha pahalıdır ama otomatik yedek, belirli bir zamana geri dönme ve sürüm güncellemesi gibi işleri hazır sunar. Ekibinizde altyapıyla düzenli ilgilenecek kimse yoksa bu fark çoğunlukla ödemeye değer.
- Kendi kurulumunuz daha ucuz ve esnektir; buna karşılık yedeklerin gerçekten alındığını, geri dönülebildiğini ve güvenlik güncellemelerinin yapıldığını sizin ya da bakım ekibinizin takip etmesi gerekir.
Docker gibi konteyner araçları ve kendi sunucunuzda çalışan uygulama yönetim panelleri, kendi kurulum seçeneğini eskisine göre çok daha düzenli hale getirdi. Araç ne olursa olsun yedek ve izleme disiplini ayrıca kurulmalıdır.
PostgreSQL mi, MySQL mi, NoSQL mi?
Veritabanı seçimi, verinizin yapısına ve uygulamanın nasıl sorgu yapacağına göre yapılır. İş uygulamalarının büyük kısmında veri; müşteriler, siparişler, ürünler, faturalar gibi birbirine bağlı tablolardan oluşur ve bu yapı ilişkisel veritabanlarına doğal olarak uyar.
| Ölçüt | PostgreSQL | MySQL / MariaDB | NoSQL (ör. MongoDB) |
|---|---|---|---|
| Veri modeli | İlişkisel, güçlü JSON desteğiyle | İlişkisel | Doküman, anahtar-değer vb. |
| Tutarlılık ve işlemler | Güçlü, ACID | Güçlü, ACID (InnoDB) | Modele ve yapılandırmaya göre değişir |
| Gelişmiş özellikler | Satır düzeyi güvenlik, zengin indeks türleri, uzantılar | Yaygın barındırma desteği, geniş ekosistem | Esnek şema, yatay ölçekleme |
| Uygun olduğu iş | İş uygulamaları, SaaS, raporlama | Web siteleri, içerik yönetim sistemleri | Şeması sık değişen veri, çok yüksek yazma hacmi |
| Lisans | Açık kaynak (PostgreSQL License) | Açık kaynak (GPL) ve ticari sürüm | Ürüne göre değişir |
Yeni bir iş uygulaması için bizim varsayılan tercihimiz genellikle PostgreSQL'dir: ilişkisel veriyi sağlam tutar, JSON alanlarıyla esnek veriyi de taşıyabilir ve çoklu kiracı yapılarında satır düzeyi güvenlik gibi ek koruma katmanları sunar. MySQL, özellikle hazır içerik yönetim sistemleri ve yaygın barındırma ortamlarında hâlâ çok iyi bir seçenektir. NoSQL ise belirli bir ihtiyaç olduğunda (çok yüksek hacimli olay kaydı, şeması belirsiz veri) ilişkisel veritabanının yanına eklenen bir araç olarak daha anlamlıdır.
Sunucu kapasitesi nasıl belirlenir?
Kapasiteyi tahmin etmek için önce uygulamanın yükünü anlamak gerekir. Şu sorular iyi bir başlangıç noktasıdır:
- Aynı anda kaç kullanıcı aktif olacak, yoğun saatler ne zaman?
- Uygulama ağırlıklı olarak okuma mı yapıyor, yazma mı?
- Rapor, dışa aktarma, görsel işleme gibi ağır işler var mı?
- Veritabanı bir yılda ne kadar büyüyecek?
- Dosya ve görseller nerede saklanacak?
Kesin rakamlar ancak ölçümle ortaya çıkar. Bu yüzden makul bir başlangıç boyutu seçip izleme kurmak ve yükü gördükçe büyütmek, baştan büyük ve pahalı bir sunucu almaktan daha sağlıklıdır. Ağır işleri arka plan kuyruğuna taşımak ve sık okunan veriyi önbelleğe almak, donanım büyütmeden önce denenmesi gereken adımlardır.
Yedekleme nasıl yapılmalı?
Yedekleme, altyapıda en çok ertelenen ama kayıp yaşandığında en pahalıya patlayan konudur. Yaygın kabul gören 3-2-1 kuralı iyi bir çerçeve sunar: verinin en az üç kopyası, iki farklı ortamda, bir kopya da farklı bir konumda tutulur.
Veritabanı yedeklemesinde iki yöntem birlikte kullanılabilir:
- Mantıksal yedek: PostgreSQL'de
pg_dumpgibi araçlarla alınan, veritabanının içeriğini dışa aktaran yedekler. Taşıma ve kısmi geri dönüş için pratiktir. - Fiziksel yedek ve zamana geri dönme: Veritabanı dosyalarının ve işlem günlüklerinin (PostgreSQL'de WAL) arşivlenmesiyle, belirli bir ana geri dönmek mümkün olur. Yanlışlıkla silinen bir tabloyu silinmeden hemen önceki ana döndürmek için gereklidir.
En önemli kural: geri dönmeyi denenmemiş yedek, yedek sayılmaz. Belirli aralıklarla yedekten ayrı bir ortama geri yükleme yapıp uygulamanın çalıştığını doğrulamak gerekir. Yedekler de şifrelenmeli ve erişimi sınırlandırılmalıdır.
İzleme ve güvenlik için neler gerekli?
Bir sunucunun çalıştığını müşteriden duymak, izleme eksikliğinin en tipik belirtisidir. Temel bir izleme kurulumu şunları kapsamalıdır:
- Erişilebilirlik: Site ya da API dışarıdan düzenli aralıklarla kontrol edilir, cevap vermezse uyarı gider.
- Kaynak kullanımı: İşlemci, bellek ve disk doluluğu izlenir; disk dolması veritabanını durdurabilir.
- Uygulama hataları: Hata kayıtları merkezi bir yerde toplanır ve yeni hata türleri bildirilir.
- Sertifika ve alan adı: TLS sertifikasının ve alan adının süresi takip edilir.
Güvenlik tarafında ise veritabanını internete doğrudan açmamak, SSH erişimini anahtarla sınırlandırmak, güvenlik duvarında yalnızca gerekli portları açık tutmak ve işletim sistemi ile yazılım güncellemelerini düzenli yapmak temel adımlardır. Kullandığınız veritabanı sürümünün hâlâ desteklenip desteklenmediğini de takip edin; PostgreSQL topluluğu her ana sürümün ne zamana kadar güncelleme alacağını resmi sitesinde yayımlar.
Sunucu konumu ve KVKK
Kişisel veri işleyen bir uygulamada sunucunun hangi ülkede olduğu yalnızca hız meselesi değildir. Yurt dışında barındırılan sunuculara kişisel veri aktarımı, 6698 sayılı Kanun'un 9. maddesindeki şartlara tabidir. Türkiye'deki bir veri merkezinde barındırma bu yükü önemli ölçüde azaltır; yurt dışı tercih ediliyorsa uygun güvencelerin (ör. standart sözleşme) planlanması gerekir. Ayrıntılar için KVKK uyumlu yazılım geliştirme kontrol listemize bakabilirsiniz.
Altyapı kurulduktan sonra da düzenli bakım gerekir; bunun bir sözleşmede nasıl tanımlanacağını yazılım bakım ve destek sözleşmesi yazımızda anlattık. Sunucu, veritabanı ve yedekleme kurulumu için veritabanı ve altyapı hizmet sayfamıza göz atabilirsiniz.
Sık sorulan sorular
Küçük bir işletme için VPS mi, bulut mu daha uygun?
Yükü öngörülebilir olan çoğu küçük işletme uygulaması için tek bir VPS ekonomik ve yeterlidir. Yükün ani değiştiği, birden fazla bölgeye hizmet verilen ya da yönetilen servislere ihtiyaç duyulan projelerde bulut platformları daha esnektir. Hangi seçenek olursa olsun yedekleme ve izleme ayrıca planlanmalıdır.
PostgreSQL ücretsiz mi?
Evet, PostgreSQL açık kaynaklıdır ve PostgreSQL License ile ticari kullanım dahil ücretsiz kullanılabilir. Ücret ödenen kısım genellikle onu çalıştırdığınız sunucu ya da yönetilen veritabanı hizmetidir. Lisans maliyeti olmaması, özellikle SaaS ürünlerinde önemli bir avantajdır.
Veritabanı yedeği ne sıklıkla alınmalı?
Bu, ne kadar veri kaybını tolere edebileceğinize bağlıdır. Günlük yedek, bir günlük veri kaybını kabul etmek demektir; sipariş ve ödeme gibi kritik veriler için işlem günlüklerinin sürekli arşivlenmesiyle belirli bir ana geri dönülebilen yapı daha uygundur. Hangi sıklık seçilirse seçilsin, geri yükleme düzenli olarak test edilmelidir.
Veritabanı ile uygulama aynı sunucuda olabilir mi?
Küçük projelerde başlangıç için mümkündür ve maliyeti düşürür. Yük arttığında, güvenlik gereksinimleri yükseldiğinde ya da veritabanının ayrı ölçeklenmesi gerektiğinde ayrı sunucuya ya da yönetilen veritabanına taşımak gerekir. Bu geçişi kolaylaştırmak için bağlantı bilgilerini baştan ortam değişkenlerinde tutmak iyi bir alışkanlıktır.
Sunucumu Türkiye'de mi barındırmalıyım?
Kişisel veri işliyorsanız Türkiye'de barındırma, KVKK'nın yurt dışı aktarım şartlarıyla uğraşma ihtiyacını büyük ölçüde ortadan kaldırır ve Türkiye'deki kullanıcılar için gecikmeyi azaltabilir. Yurt dışı sağlayıcıların sunduğu servisler daha cazipse, aktarımın hukuki dayanağı ayrıca planlanmalıdır. Karar verirken hukuki yükümlülükleri ve teknik ihtiyaçları birlikte değerlendirmek gerekir.
Kaynaklar

AssistoTech Ekibi
İstanbul'da web, mobil, masaüstü, oyun, SaaS ve kurumsal yazılım geliştiren ekibiz. Bu yazı, kendi ürünlerimizde ve müşteri projelerinde edindiğimiz deneyime dayanır. Projeniz için bize yazın.




