Bulut veritabani servisleri, veritabani motorunu bir bulut saglayicinin isletip yonettigi hizmet modelidir. Sunucu kurulumu, yama, yedekleme ve yuksek erisilebilirlik gibi isler saglayiciya devredilir; siz semaya, sorgulara ve uygulamaya odaklanirsiniz. Bu yazida uc yaygin yonetilen iliskisel servisi karsilastiriyoruz: Google Cloud SQL, Azure SQL ve Amazon RDS.

Ilgili icerik: Bu makale bir alt konudur. Genis cerceve icin Veritabani Turleri Rehberi'ne goz atabilir; motor secimini derinlestirmek icin PostgreSQL Nedir?, MySQL Nedir? ve Microsoft SQL Server (MS SQL) Nedir? yazilarini okuyabilirsiniz.

Yonetilen Veritabani Nedir?

Yonetilen (managed) veritabani, altyapi ve isletim sorumlulugunun buyuk kismini saglayiciya birakan bir dagitim bicimidir. Kendi sunucunuzda veritabani calistirmak (self-managed) size tam kontrol verir ama isletim yukunu de sirtlar. Yonetilen serviste ise saglayici; donanim saglama, isletim sistemi ve motor yamalari, otomatik yedekleme, izleme ve genellikle otomatik yuk devretme (failover) gibi gorevleri ustlenir.

Bu modelin ozu paylasilan sorumlulukdur: saglayici altyapinin dayanikliligindan sorumludur, siz ise sema tasarimi, indeksler, sorgu performansi, erisim yetkileri ve verinin dogrulugundan sorumlu kalirsiniz.

Uc Servise Genel Bakis

Google Cloud SQL

Cloud SQL, Google Cloud'un yonetilen iliskisel veritabani servisidir. MySQL, PostgreSQL ve SQL Server motorlarini destekler. Otomatik yedekleme, noktaya donus (point-in-time recovery), okuma replikasi ve yuksek erisilebilirlik yapilandirmasi sunar. Google'in daginik olceklenen Cloud Spanner servisinden farkli olarak, Cloud SQL klasik tek-yazici iliskisel motorlari yonetir.

Azure SQL

Azure SQL, Microsoft'un SQL Server motoru etrafinda kurulu bulut ailesidir. Baslica iki bicimi vardir: Azure SQL Database (tam yonetilen, mantiksal veritabani duzeyinde hizmet) ve Azure SQL Managed Instance (SQL Server ornegiyle yuksek uyumluluk isteyen tasima senaryolari icin). Ayrica sanal makinede SQL Server calistirma (IaaS) secenegi de vardir; bu tam yonetilen sayilmaz.

Amazon RDS

Amazon RDS (Relational Database Service), AWS'nin yonetilen iliskisel veritabani servisidir. MySQL, PostgreSQL, MariaDB, Oracle ve SQL Server motorlarini destekler. Bunlara ek olarak AWS, MySQL ve PostgreSQL ile uyumlu Amazon Aurora adinda bulut-yerlisi bir motor da sunar; Aurora, RDS'in yonetim duzlemi uzerinden isletilir ama depolama mimarisi farklidir.

OzellikCloud SQLAzure SQLAmazon RDS
SaglayiciGoogle CloudMicrosoft AzureAWS
Desteklenen motorlarMySQL, PostgreSQL, SQL ServerSQL Server tabanli (Database / Managed Instance)MySQL, PostgreSQL, MariaDB, Oracle, SQL Server
Bulut-yerlisi ek motorAyri servis: Cloud SpannerHyperscale katmaniAmazon Aurora
Okuma replikasiVarVarVar
Otomatik yedek + PITRVarVarVar

Dagitim Modelleri: Ornek mi, Sunucusuz mu?

Uc servis de temelde ayrilmis kaynak (provisioned) modelinde calisir: belirli CPU, bellek ve depolama secersiniz. Bunun yaninda talebe gore olceklenen esnek secenekler bulunur. Ornegin Azure SQL Database'de sunucusuz (serverless) hesaplama katmani, kullanima gore otomatik olceklenir ve bosta duraklayabilir. Amazon Aurora'nin da otomatik kapasite ayarlayan bir yapilandirmasi vardir.

  • Ayrilmis (provisioned): Ongorulebilir, surekli yuk icin uygundur; kapasiteyi siz belirlersiniz.
  • Esnek / sunucusuz: Degisken ya da kesintili yukte maliyeti kullanima yaklastirir; sik duraklamalarda soguk baslama gecikmesi olabilir.
  • Yuksek erisilebilirlik: Bolge ici yedekli (multi-AZ / zone-redundant) yapilandirmalar yuk devretme suresini kisaltir.

Olceklenme: Dikey ve Yatay

Iliskisel veritabanlarinda olceklenmenin iki temel yolu vardir. Dikey olceklenme (scale up), ornege daha fazla CPU, bellek veya daha hizli disk vermektir; uygulamasi basit ama tek bir makinenin sinirina takilir. Yatay olceklenme (scale out) ise yuku birden fazla dugume dagitir. Klasik tek-yazici motorlarda yatay olceklenme cogunlukla okuma tarafinda, yani okuma replikalari ile saglanir.

Uc serviste de okuma replikalari, okuma agirlikli is yuklerini birincil (primary) dugumden ayirmanizi saglar. Yazma islemleri hala tek birincil dugume gider; bu yuzden yazma tarafini olceklemek, replikadan cok daha zordur. Cok yuksek yazma hacmi ve yatay dagitim gerektiginde, Amazon Aurora gibi bulut-yerlisi motorlar veya Cloud Spanner gibi daginik sistemler gundeme gelir.

Baglanti Havuzu (Connection Pooling)

Yonetilen veritabanlarinda es zamanli baglanti sayisi sinirlidir ve her baglanti bellek tuketir. Ozellikle PostgreSQL'de cok sayida kisa omurlu baglanti performansi dusurebilir. Bu yuzden uygulama ile veritabani arasina bir baglanti havuzu koymak yaygin bir uygulamadir. Saglayicilar bunun icin yonetilen secenekler sunabilir; alternatif olarak PgBouncer gibi arac katmanlari kullanilir.

Izleme ve Gozlemlenebilirlik

Yonetilen servisler, temel metrikleri (CPU, bellek, disk, baglanti sayisi, IOPS) saglayicinin izleme paneline aktarir. Bunun uzerine yavas sorgu gunlugu ve sorgu performansi analiz araclari eklenir. Uretimde en degerli sinyaller genellikle sunlardir:

  • CPU ve bellek kullanimi: Surekli yuksekse dikey buyume veya sorgu iyilestirmesi gerekir.
  • Baglanti sayisi: Sinira yaklasiyorsa baglanti havuzu devreye girmelidir.
  • Replikasyon gecikmesi: Okuma replikalarinin ne kadar geride oldugunu gosterir.
  • Yavas sorgular: En cok kaynak tuketen sorgular indeks veya sema iyilestirmesinin adayidir.

Goc: Mevcut Veritabanini Tasima

Var olan bir veritabanini yonetilen bir servise tasirken iki temel yaklasim vardir. Kucuk veya kisa kesintiye tolerans gosteren sistemlerde mantiksal yedek alip (or. pg_dump / mysqldump) hedefte geri yuklemek yeterlidir. Kesinti penceresinin dar olmasi gereken sistemlerde ise saglayicilarin sundugu goc araclari, kaynaktan hedefe surekli replikasyon kurarak son kesintiyi kisaltir.

Yuksek Erisilebilirlik ve Yedekleme

Uc serviste de temel dayaniklilik ozellikleri benzer bir mantikla calisir: otomatik yedekler, islem gunlugu (transaction log) tabanli noktaya donus kurtarma ve okuma replikalari. Yuksek erisilebilirlik icin genellikle ikinci bir bolge/kullanilabilirlik alani icinde bekleyen (standby) bir kopya tutulur ve arizada ona gecilir.

Baglanti ve Ornek Kod

Yonetilen bir servise baglanmak, motor acisindan kendi sunucunuza baglanmaktan farksizdir; degisen sey ag/kimlik katmanidir. Asagida PostgreSQL uyumlu bir ornege standart istemciyle baglanma ornegi var (Cloud SQL, Azure ve RDS uzerinde ayni motor icin gecerlidir).

sql
-- Ornek: yeni tablo ve basit sorgu (motor: PostgreSQL)
CREATE TABLE musteri (
  id        BIGSERIAL PRIMARY KEY,
  ad        TEXT NOT NULL,
  eposta    TEXT UNIQUE NOT NULL,
  olusturma TIMESTAMPTZ NOT NULL DEFAULT now()
);

SELECT ad, eposta
FROM musteri
WHERE olusturma >= now() - INTERVAL '30 days'
ORDER BY olusturma DESC;
bash
# psql ile yonetilen bir PostgreSQL ornegine baglanma
# host degeri saglayiciya gore degisir (Cloud SQL / Azure / RDS uc noktasi)
psql "host=DB_HOST port=5432 dbname=uygulama user=app_user sslmode=require"

Guvenlik ve Erisim Yonetimi

Uc saglayici da veritabanini kendi kimlik ve ag katmanlariyla butunlestirir. Ortak iyi uygulamalar sunlardir:

  • Ag yalitimi: Veritabanini ozel aga koyun; genel erisimi kapatin veya IP izin listesiyle daraltin.
  • Sifreleme: Beklemede (at rest) ve aktarimda (in transit) sifrelemeyi acik tutun.
  • En az yetki: Uygulama kullanicilarina yalnizca ihtiyac duyduklari yetkileri verin.
  • Kimlik entegrasyonu: Saglayicinin kimlik hizmetiyle (IAM / Entra ID) merkezi erisim yonetimi kullanin.
  • Denetim: Baglanti ve sorgu denetim gunluklerini etkinlestirin.

Maliyet Nasil Olusur?

Yonetilen veritabani maliyeti tek bir kalem degildir; birkac bilesenin toplamidir. Kesin fiyatlar saglayici, bolge, motor ve zamanla degistigi icin burada rakam vermiyoruz; bunun yerine hangi kalemleri hesaba katmaniz gerektigini siralayacagiz.

Maliyet kalemiAciklama
HesaplamavCPU ve bellek (ayrilmis ornek boyutu veya sunucusuz kullanim).
DepolamaAyrilan disk boyutu ve turu ( or. SSD); genellikle GB basina aylik.
Yedekleme depolamaOtomatik/manuel yedeklerin kapladigi alan.
Ag cikisiBolge disina veya internete giden veri transferi.
LisansOracle/SQL Server gibi motorlarda lisans dahil olabilir veya ayri gelebilir.

Servis Kilitlenmesi (Vendor Lock-in)

Yonetilen servisin kolayligi, bir olcude saglayiciya baglanma riski getirir. Bu riski, tasinabilirligi yuksek motorlar secerek azaltabilirsiniz. Ornegin standart PostgreSQL veya MySQL uzerinde kalirsaniz, uc saglayici arasinda gocmek gorece kolaydir. Aurora gibi bulut-yerlisi motorlar performans avantaji sunabilir ama tasinabilirligi bir miktar azaltabilir.

Servis Nasil Secilir?

  • Zaten bir bulutta calisiyorsaniz, aginizi ve kimlik yonetiminizi basitlestirmek icin ayni saglayicinin veritabani servisi cogunlukla mantiklidir.
  • Motor kararliysa: SQL Server agirlikli bir kurumsal yapida Azure SQL dogal secimdir; Oracle gerekiyorsa Amazon RDS Oracle destekler.
  • Acik kaynak motor (PostgreSQL/MySQL/MariaDB) uc saglayicida da mevcuttur; secim cogu zaman ekosistem ve maliyete iner.
  • Degisken yuk icin sunucusuz/esnek secenekleri; ongorulebilir yuk icin ayrilmis ornekleri degerlendirin.

Haber Siteleri Icin Pratik Notlar

Haber sitelerinde okuma trafigi yazma trafiginden cok daha yuksektir; ziyaretciler icerigi okur, editorler ise gorece seyrek yazar. Bu profil, okuma replikalari ve onbellek (cache) katmaniyla cok iyi ortusur: birincil dugum yayin ve editoryal islemleri gorurken, replikalar okuma yukunu tasir. Ani trafik siciramalarinda (or. buyuk bir haberin yayilmasi) esnek/sunucusuz secenekler kapasiteyi hizla yukseltmeye yardimci olabilir.

  • Okumayi olcekleyin: Onbellek + okuma replikasi ile birincil dugumu koruyun.
  • Yedegi test edin: Yayin kesintisi pahaliya mal olur; kurtarma tatbikatini ihmal etmeyin.
  • Bolge secimi: Okuyucularinizin cogunlugunun bulundugu bolgeye yakin dagitim gecikmeyi azaltir.

Sikca Sorulanlar

Yonetilen servis kendi sunucumdan daha mi guvenli?

Saglayici altyapi guvenligi ve yamalar gibi kalemleri ustlenir, bu da yuku azaltir. Ancak sema, yetkiler ve erisim politikasi hala sizin sorumlulugunuzdadir. Yanlis yapilandirilmis bir erisim listesi, yonetilen serviste de risk yaratir.

Verimi baska saglayiciya tasiyabilir miyim?

Standart motorlarda (PostgreSQL, MySQL, MariaDB) mantiksal yedek alip hedef serviste geri yuklemek yaygin bir yontemdir. Tescilli, bulut-yerlisi motorlarda goc daha fazla planlama gerektirir.