Autobase ile kurulan üç sunuculu yüksek erişilebilir PostgreSQL kümesi

Autobase ile Yüksek Erişilebilir PostgreSQL Ortamı Kurulumu: Production’a Almadan Önce Dikkat Edilmesi Gerekenler

Autobase ile Patroni, etcd ve PgBouncer tabanlı yüksek erişilebilir bir PostgreSQL ortamı kurarken varsayılan ayarlarda değiştirilmesi gerekenler: senkron replikasyon, yedekleme, güvenlik duvarı, locale ve testler.

Kasım 2, 2026

Autobase, yüksek erişilebilir (HA) PostgreSQL ortamlarını kendi sunucularınıza veya bulut hesabınıza otomatik olarak kuran ve yöneten açık kaynak bir otomasyon platformudur. Patroni, etcd, PgBouncer, HAProxy ve pgBackRest gibi bileşenleri tek bir Ansible akışıyla, birbiriyle uyumlu biçimde kurar. Ancak varsayılan ayarlar her ortama uygun değildir: senkron replikasyon, yedekleme ve güvenlik duvarı varsayılan olarak kapalı gelir. Bu yazıda, Autobase ile kurulan yüksek erişilebilir bir ortamı production’a (üretim ortamına) almadan önce nelere dikkat ettiğimizi anlatıyoruz.

Aryasoft olarak yüksek erişilebilir PostgreSQL ortamı kurulumlarında Autobase’i kullanıyoruz. Elle kurulan ortamların tipik riskleri, yani sunucular arasında farklılaşan yapılandırmalar, tutarsız zaman aşımı ayarları ve atlanan adımlar, tekrarlanabilir bir otomasyonla büyük ölçüde ortadan kalkıyor. Otomasyon ise doğru kararların yerini tutmuyor; bu kararları bu yazıda tek tek ele alıyoruz. Bilgiler Autobase 2.11.0 sürümüne ve resmi dokümantasyonuna dayanıyor.

PostgreSQL Yüksek Erişilebilirlik

Yüksek erişilebilir PostgreSQL ortamınızı production'a hazır kuralım

Aryasoft'un kıdemli PostgreSQL uzmanları Autobase ile yüksek erişilebilir PostgreSQL ortamınızı tasarlar, kurar, failover ve geri yükleme testlerini yapar ve tüm kararları yazılı olarak teslim eder.

Bize Ulaşın

Kısaca: Autobase Nedir?

Konu Özet
Ne yapar? Yüksek erişilebilir PostgreSQL ortamlarını kurar ve yaşam döngüsünü yönetir: kurulum, failover, yedekleme ve geri yükleme, sürüm yükseltme, ölçeklendirme.
Altyapı Ansible tabanlı otomasyon. Web arayüzü (Console), komut satırı (Docker imajı veya Ansible Collection) ya da GitOps ile kullanılır.
Lisans Otomasyon çekirdeği MIT lisanslı açık kaynak; Console arayüzü ayrı ve tescilli bir lisansa tabidir.
PostgreSQL sürümleri 10’dan 18’e kadar; varsayılan PostgreSQL 18.
İşletim sistemleri Debian 11–13, Ubuntu 22.04–26.04, Rocky Linux, AlmaLinux ve Oracle Linux 8–10, CentOS Stream 9–10 (x86_64 ve arm64)
Ortamlar Kendi sunucularınız (fiziksel veya sanal) ve AWS, Azure, GCP, DigitalOcean, Hetzner Cloud
Kurulum süresi Dokümantasyona göre yaklaşık 10–15 dakika

Autobase’in Kurduğu Bileşenler

Yüksek erişilebilir bir PostgreSQL ortamı tek bir yazılımdan oluşmaz. Autobase, aşağıdaki parçaları birbirine bağlı ve tutarlı ayarlarla kurar:

Bileşen Görevi Autobase varsayılanı
Patroni Kümenin durumunu yönetir; primary arızalandığında bir replikayı otomatik olarak primary yapar. Her zaman kurulur
etcd veya Consul Dağıtık yapılandırma deposu (DCS). Kümenin lideri konusunda tüm sunucuların aynı kararı vermesini sağlar. etcd
PgBouncer Bağlantı havuzu. Çok sayıda uygulama bağlantısını az sayıda veritabanı bağlantısına indirger. Kurulur (port 6432)
HAProxy Yazma trafiğini primary’ye, okuma trafiğini replikalara yönlendirir. Kapalı; seçilen şemaya göre açılır
vip-manager / keepalived Uygulamaların bağlandığı sanal IP adresini yönetir. İsteğe bağlı; bulut ortamlarında kullanılamaz
pgBackRest veya WAL-G Fiziksel yedekleme, WAL arşivleme ve belirli bir ana geri dönüş (PITR). Kapalı

Doğru Mimariyi Seçin: Üç Kurulum Şeması

Autobase üç farklı mimari sunar. İlk karar, uygulamalarınızın kümeye nasıl bağlanacağıdır.

Şema Uygulama nasıl bağlanır? Ne zaman tercih edilir?
1. Yalnızca yüksek erişilebilirlik Sanal IP (vip-manager) veya doğrudan sunucu adresi Tek bir yazma adresi yeterliyse ve okuma yükünü dağıtma ihtiyacı yoksa
2. Yük dengelemeli Bulutta sağlayıcının yük dengeleyicisi; kendi sunucularınızda HAProxy portları: 5000 (yazma), 5001 (tüm replikalar), 5002 (senkron replika), 5003 (asenkron replikalar) Raporlama ve okuma yoğun iş yüklerini replikalara dağıtmak istiyorsanız
3. Consul ile servis keşfi primary.<küme>.service.consul gibi DNS adları Birden fazla veri merkeziniz varsa ve uygulamalar kendi lokasyonundaki replikayı kullanmalıysa

Yük dengelemeli şemanın değerini alabilmek için uygulamanın okuma sorgularını ayrı bir adrese gönderebilmesi gerekir. Bu yetenek uygulamada yoksa replikalar yalnızca yedek sunucu olarak kalır; mimari kararı uygulama ekibiyle birlikte verin.

Uyarı

Sanal IP tabanlı çözümler (vip-manager ve keepalived) bulut ortamlarında çalışmaz. AWS, Azure veya GCP’de kurulum yapıyorsanız bağlantı adresini sağlayıcının yük dengeleyicisi veya Consul DNS ile çözün. Bu kararı kurulumdan sonra değiştirmek, uygulama bağlantı ayarlarının da değişmesi demektir.

Production’a Almadan Önce Kontrol Ettiğimiz 10 Nokta

Autobase’in varsayılanları hızlı bir başlangıç için tasarlanmıştır. Aşağıdaki tablo, production kurulumlarında her seferinde gözden geçirdiğimiz ayarları ve gerekçelerini özetliyor.

# Konu Varsayılan Önerimiz
1 DCS sunucu sayısı ve yeri Inventory’de tanımlanan sunucular 3 veya 5 etcd üyesi; mümkünse veritabanından ayrı sunucularda ve farklı arıza alanlarında
2 Senkron replikasyon Kapalı Veri kaybı toleransı sıfırsa synchronous_mode açık
3 Yedekleme Kapalı (WAL arşivleme yapılmaz) pgBackRest açık, kümeden ayrı bir depoya
4 Güvenlik duvarı Kapalı (firewalld ve ufw devre dışı bırakılır) Ağ güvenlik duvarında yalnızca gerekli portlar açık
5 Locale en_US.UTF-8 Türkçe veri için Türkçe sıralama kuralları
6 Bağlantı havuzu PgBouncer, session modu, havuz boyutu 100 İş yüküne göre mod ve havuz boyutu
7 Bellek ayarları shared_buffers belleğin %25’i, work_mem 64 MB Bağlantı sayısıyla birlikte yeniden hesaplanır
8 TLS sertifikası Kendinden imzalı, 10 yıl geçerli Gerekiyorsa kurumsal sertifika otoritesinden sertifika
9 Parolalar Otomatik üretilmez Güçlü parolalar, şifreli değişken dosyasında
10 Failover ve geri yükleme testi Yapılmaz Canlıya almadan önce planlı switchover, arıza senaryosu ve geri yükleme

Aşağıda her birini gerekçesiyle açıklıyoruz.

1. DCS: Tek sayıda üye, ayrı sunucu, ayrı disk

etcd, kümenin “beynidir”: hangi sunucunun primary olduğuna o karar verir. Karar alabilmesi için üyelerin çoğunluğunun (quorum) ayakta olması gerekir. Bu yüzden üye sayısı tek olmalıdır: 3 üye bir arızaya, 5 üye iki arızaya dayanır.

Autobase dokümantasyonu üç öneride bulunur: DCS verisini PostgreSQL verisinden ayrı bir diskte (mümkünse SSD) tutun, DCS kümesini veritabanı sunucularından ayrı sunuculara kurun ve tüm DCS üyelerini tek bir veri merkezine yerleştirmeyin. Küçük ortamlarda etcd’nin veritabanı sunucularıyla aynı makinede çalışması mümkündür; ancak yoğun bir veritabanı, etcd’nin zamanında yanıt vermesini engelleyerek gereksiz failover’lara yol açabilir.

2. Senkron replikasyon: Veri kaybı toleransınızı belirleyin

Autobase, performans nedeniyle senkron replikasyonu varsayılan olarak kapalı kurar. Bu durumda primary beklenmedik şekilde kapanırsa, replikaya henüz ulaşmamış son işlemler kaybolabilir. Patroni bu riski sınırlamak için 1 MB’tan fazla geride kalan bir replikayı primary yapmaz (maximum_lag_on_failover), ancak riski sıfırlamaz.

Ayar Veri kaybı riski Bedeli
Asenkron (varsayılan) Failover anında son işlemler kaybolabilir En yüksek yazma performansı
synchronous_mode: true Onaylanan her işlem en az bir replikada vardır Her commit, replikanın yanıtını bekler
synchronous_mode_strict: true Senkron replika yoksa yazma kabul edilmez Replika arızasında yazma işlemleri durur

Finans ve ödeme sistemleri gibi veri kaybının kabul edilemediği ortamlarda senkron modu öneriyoruz. Strict modu ise yalnızca en az iki replikanın bulunduğu kümelerde kullanıyoruz; aksi halde tek bir replika arızası uygulamayı durdurur.

3. Yedekleme: Varsayılan olarak kapalı

Bu, gözden kaçırıldığında en pahalıya mal olan ayardır. Ne pgBackRest ne WAL-G kurulmamışsa Autobase arşiv komutunu boş bir komut olarak ayarlar; yani WAL arşivlenmez ve belirli bir ana geri dönüş mümkün olmaz. Replikasyon yedeğin yerini tutmaz: primary’de yanlışlıkla silinen bir tablo, saniyeler içinde tüm replikalardan da silinir.

pgbackrest_install: true ile pgBackRest’i açın ve yedekleri kümenin dışındaki bir depoya yönlendirin: ayrı bir yedek sunucusu, S3 uyumlu nesne depolama, Azure Blob veya Google Cloud Storage. Dokümantasyondaki örnek takvim; pazar günleri tam, diğer günler fark (differential) ve dört saatte bir artımlı (incremental) yedektir. Saklama süresini kurumunuzun RPO hedefine ve mevzuat yükümlülüklerine göre belirleyin.

Kritik

Yedeklemeyi açmadan production’a alınan bir PostgreSQL ortamı, ilk mantıksal hatada (yanlış bir DELETE, hatalı bir uygulama sürümü) veriyi geri getiremez. Kurulumun kabul kriterlerine bir geri yükleme testini mutlaka ekleyin.

4. Güvenlik duvarı: Ağ katmanında kapatın

Autobase varsayılan olarak işletim sistemi güvenlik duvarını açmaz ve firewalld ile ufw’yi devre dışı bırakır. Bu, ağ güvenliğinin başka bir katmanda sağlandığını varsayar. Kurumsal ortamlarda bu katman genellikle ağ güvenlik duvarı veya bulut güvenlik gruplarıdır. Hangisini kullanırsanız kullanın, yalnızca gerekli portları ve yalnızca gerekli kaynaklara açın:

Port Servis Kimin erişmesi gerekir?
5432 PostgreSQL Küme üyeleri, yönetim sunucuları
6432 PgBouncer Uygulama sunucuları
5000–5003 HAProxy (yük dengelemeli şema) Uygulama sunucuları
8008 Patroni REST API Küme üyeleri ve yük dengeleyiciler
2379, 2380 etcd Yalnızca küme üyeleri

Patroni REST API’si ve etcd portları, kümenin yönetim düzlemidir; bunları uygulama ağına veya internete açmayın.

5. Locale: Türkçe veriyi ilk günden doğru kurun

Autobase kümeyi varsayılan olarak en_US.UTF-8 locale’iyle oluşturur. Bu locale, Türkçe “i” ve “ı” harflerinde yanlış büyük/küçük harf dönüşümü yapar ve Türk alfabesine uygun sıralama vermez. Bir veritabanının locale ayarı sonradan değiştirilemediği için Türkçe veri tutacak sistemlerde bu kararı kurulumdan önce verin: postgresql_locale değişkenini buna göre ayarlayın veya uygulama veritabanlarını ICU tabanlı tr-TR sıralama kurallarıyla oluşturun. Konunun ayrıntılarını PostgreSQL Nedir? rehberimizde örneklerle anlattık.

6. PgBouncer: Havuz modunu uygulamaya göre seçin

PgBouncer varsayılan olarak session modunda ve veritabanı başına 100 bağlantılık havuzla kurulur. Session modu en uyumlu seçenektir, ancak her istemci bağlantısı, oturum boyunca bir veritabanı bağlantısını tutar. Kısa işlemler yapan çok sayıda istemciniz varsa transaction modu çok daha verimlidir; ancak oturum düzeyinde durum tutan özellikler (örneğin oturum boyunca geçerli SET komutları veya geçici tablolar) bu modda beklendiği gibi çalışmayabilir. Modu, uygulamanın davranışını test ederek seçin.

7. Bellek ayarları: Bağlantı sayısıyla birlikte hesaplayın

Autobase, shared_buffers değerini belleğin %25’i, effective_cache_size değerini %75’i olarak hesaplar; bu, PostgreSQL dokümantasyonunun önerisiyle uyumludur. Dikkat edilmesi gereken ayar work_mem‘dir: varsayılan 64 MB, tek bir sorgudaki her sıralama veya hash işlemi için ayrı ayrı kullanılabilir. max_connections varsayılan olarak 1000 olduğundan, yoğun anlarda toplam bellek kullanımı sunucunun kapasitesini aşabilir. Bu iki değeri, gerçek eşzamanlı bağlantı sayısına ve sorgu profiline göre birlikte boyutlandırın.

8. TLS: Sertifikanızı planlayın

Autobase bağlantıları şifrelemek için 10 yıl geçerli, kendinden imzalı bir sertifika üretir ve en düşük TLS sürümünü 1.2 olarak ayarlar. Şifreleme bu haliyle çalışır. İstemcilerin sunucu kimliğini doğrulaması gerekiyorsa (sslmode=verify-full), sertifikayı kurumunuzun sertifika otoritesinden alınmış bir sertifikayla değiştirin.

9. Parolalar: Değişken dosyasında düz metin bırakmayın

Autobase kullanıcı parolalarını otomatik üretmez; group_vars dosyasında siz tanımlarsınız. Bu dosyalar genellikle bir Git deposunda saklandığı için parolaları düz metin bırakmayın; Ansible Vault gibi bir şifreleme yöntemi veya kurumsal parola yöneticinizle yönetin.

10. Canlıya almadan önce test edin

Otomasyon ortamı kurar, ancak beklenen şekilde davrandığını kanıtlamaz. Kabul testlerimiz şunları içerir:

  • Planlı switchover: Lider değişikliğinin uygulama tarafında kaç saniyelik kesintiye yol açtığını ölçmek.
  • Arıza senaryosu: Primary sunucunun beklenmedik şekilde kapatılması ve otomatik failover’ın doğrulanması.
  • DCS arızası: Bir etcd üyesinin kapatılması ve kümenin çalışmaya devam etmesi.
  • Geri yükleme: pgBackRest yedeğinden ayrı bir sunucuya, belirli bir zamana geri dönüş.

Komut Satırından Kurulumun Ana Hatları

Autobase’i web arayüzüyle kullanabileceğiniz gibi, tüm bağımlılıkları içeren Docker imajıyla komut satırından da çalıştırabilirsiniz. Akış üç adımdan oluşur:

  1. Inventory dosyasını hazırlayın. Örnek dosyayı indirip sunucularınızı gruplara yerleştirin: [etcd_cluster] (DCS üyeleri), [master] (ilk primary), [replica] (replikalar), gerekiyorsa [balancers] (HAProxy) ve [pgbackrest] (yedek sunucusu).
  2. Değişkenleri belirleyin. group_vars/all.yml dosyasında yukarıdaki kararları tanımlayın: şema, senkron mod, yedekleme, locale, parolalar.
  3. Kurulumu çalıştırın.
curl -fsSL \
  https://raw.githubusercontent.com/autobase-tech/autobase/refs/tags/2.11.0/automation/inventory.example \
  --output ./inventory
mkdir -p ./group_vars
nano ./group_vars/all.yml

docker run --rm -it \
  -e ANSIBLE_SSH_ARGS="-F none" \
  -e ANSIBLE_INVENTORY=/project/inventory \
  -v $PWD:/project \
  -v $HOME/.ssh:/root/.ssh \
  autobase/automation:2.11.0 \
  ansible-playbook deploy_pgcluster.yml

Kararlarımızı yansıtan örnek bir group_vars/all.yml başlangıcı şöyle görünebilir:

postgresql_version: "18"
synchronous_mode: true
synchronous_mode_strict: false
pgbackrest_install: true
pgbouncer_install: true
ntp_enabled: true

Ortamınıza özgü değerleri (sunucu adresleri, yedek deposu, locale, parolalar) varsayılan değişkenler dosyasındaki açıklamalara göre ekleyin.

Kurulumdan Sonra: Bakım ve Sürüm Yükseltme

Autobase’in asıl değeri kurulumdan sonra ortaya çıkar. Günlük operasyonun en riskli işlemleri hazır ve kontrollü akışlar olarak gelir:

İşlem Autobase akışı Kesinti
Ara sürüm güncellemesi (18.1 → 18.2) update_pgcluster.yml: önce replikalar tek tek, sonra switchover ile primary güncellenir. Okumada kesinti yok (birden fazla replika varsa); yazmada yaklaşık 5–10 saniye
Ana sürüm yükseltmesi, yerinde (17 → 18) pg_upgrade.yml: ön kontrol, hard link ile yükseltme, hata durumunda otomatik geri dönüş Bağlantı havuzları yaklaşık 30–60 saniye bekletilir
Ana sürüm yükseltmesi, blue-green pg_logical_upgrade.yml: logical replication ile ayrı bir hedef küme; geçişten sonra ters replikasyonla geri dönüş imkânı Yazmada yaklaşık 10–15 saniye
Küme büyütme Inventory’ye yeni sunucu eklenerek replika veya yük dengeleyici eklenir Yok

Ara sürüm güncellemesi başlamadan önce Autobase güvenlik kontrolleri yapar: replikasyonun çalıştığını, gecikmenin 10 MB’ın altında olduğunu ve 15 saniyeden uzun süren işlem bulunmadığını doğrular. Ana sürüm yükseltmesinde ise önce, hiçbir şeyi değiştirmeyen ön kontrolü çalıştırmanızı öneriyoruz. PgBouncer kullanılmayan kümelerde trafik yeni primary’ye otomatik yönlendirilmez; bu durumda uygulamaların durdurulması ve bağlantı adresinin elle değiştirilmesi gerekir.

Not

Desteği sona eren bir sürümden çıkıyorsanız (örneğin PostgreSQL 14), sürüm seçimi ve yöntem karşılaştırması için PostgreSQL 14 destek sonu rehberimize göz atın.

Autobase Otomasyonun Yerini Neyin Tutmadığı

Autobase, kurulum ve bakım işlemlerindeki insan hatasını büyük ölçüde azaltır. Ancak bazı kararlar ve sorumluluklar her zaman ekibinizde kalır:

  • Mimari kararlar: RPO ve RTO hedefleri, veri merkezi yerleşimi, senkron replikasyon tercihi.
  • İzleme ve alarm: Replikasyon gecikmesi, disk doluluğu, yedekleme başarısı, işlem numarası yaşı (wraparound) ve yavaş sorgular için alarmlar.
  • Performans: Sorgu ve indeks optimizasyonu, autovacuum ayarları, kapasite planlaması.
  • Düzenli tatbikat: Failover ve geri yükleme testlerinin periyodik olarak tekrarlanması.

Aryasoft ile Yüksek Erişilebilir PostgreSQL Ortamı Kurulumu

Aryasoft’un yalnızca kıdemli uzmanlardan oluşan ekibi, yüksek erişilebilir PostgreSQL ortamlarını Autobase ile uçtan uca kurar: mimari tasarım, DCS yerleşimi, senkron replikasyon ve yedekleme kararları, güvenlik sıkılaştırması, failover ve geri yükleme testleri. Tüm kararlar ve test sonuçları yazılı olarak teslim edilir. Kurulumdan sonra ortamınızın düzenli takibini istiyorsanız, uzaktan veritabanı yöneticisi (Remote DBA) hizmetini de içeren yönetilen veritabanı hizmetlerimizi inceleyebilirsiniz.

Sıkça Sorulan Sorular

Otomasyon çekirdeği MIT lisanslı açık kaynak bir projedir ve komut satırından ücretsiz kullanılabilir. Web arayüzü (Console) ise ayrı ve tescilli bir lisansa tabidir; kullanım koşulları için projenin lisans sayfasını inceleyin.
Production için en az bir primary ve bir replika gerekir; okuma trafiğinde kesinti olmadan güncelleme yapabilmek için iki replika öneriyoruz. etcd için üç üye, tek bir arızaya dayanabilen en küçük yapıdır.
Evet. Autobase; AWS, Azure, GCP, DigitalOcean ve Hetzner Cloud’da sunucuları ve yük dengeleyiciyi kendisi oluşturabilir. Bulut ortamlarında sanal IP çözümleri (vip-manager, keepalived) çalışmadığı için bağlantı adresi sağlayıcının yük dengeleyicisiyle verilir.
Autobase, inventory’de çalışan bir PostgreSQL olduğunu belirtmenize olanak tanır (postgresql_exists). Yine de mevcut bir production sunucusunu kümeye dahil etmeden önce tam yedek almanızı ve işlemi bir kopyası üzerinde denemenizi öneriyoruz.
Patroni, failover kararını veren küme yöneticisidir. Autobase ise Patroni’yi, etcd’yi, bağlantı havuzunu, yük dengeleyiciyi ve yedekleme araçlarını birlikte kuran ve bunların bakım işlemlerini otomatikleştiren platformdur.

Kaynaklar

Bu yazıdaki bilgiler Kasım 2026’da Autobase 2.11.0 dokümantasyonu ve kaynak koduyla karşılaştırıldı. Varsayılan değerler yeni sürümlerde değişebilir; kurulumdan önce kullandığınız sürümün değişkenler dosyasını kontrol edin.

  1. Autobase: GitHub deposu
  2. Autobase: varsayılan değişkenler (defaults/main.yml)
  3. Autobase dokümantasyonu: Architecture
  4. Autobase dokümantasyonu: Requirements
  5. Autobase dokümantasyonu: Recommendations
  6. Autobase dokümantasyonu: Your Own Machines
  7. Autobase dokümantasyonu: Backup
  8. Autobase dokümantasyonu: Upgrades
  9. Patroni dokümantasyonu
  10. etcd: FAQ (küme boyutu ve quorum)
  11. PostgreSQL dokümantasyonu: Resource Consumption
  12. PgBouncer: Features (havuz modları)

PostgreSQL Yüksek Erişilebilirlik

Kesintiye dayanıklı PostgreSQL ortamları kuralım

Aryasoft’un kıdemli PostgreSQL ekibi yüksek erişilebilir ortamınızı Autobase ile tasarlar ve kurar, failover ile geri yükleme testlerini yapar ve tüm kararları yazılı olarak teslim eder.

4.7/5