Yük dengeleyici nedir?
Yük dengeleyici (load balancer), gelen istekleri birden fazla sunucuya dağıtarak hiçbirinin aşırı yüklenmesini engelleyen sistemdir. Hem performansı hem de erişilebilirliği artırır: bir sunucu arızalanırsa trafik otomatik olarak sağlıklı sunuculara yönlendirilir ve hizmet kesintisiz sürer.
Yazılım (Nginx, HAProxy) ya da donanım olarak çalışabilir; bulut sağlayıcılar da yönetilen yük dengeleyici hizmeti sunar. Tek sunucuya sığmayan siteler ve yüksek erişilebilirlik gerektiren uygulamalar için temel bileşendir.
Nasıl çalışır?
İstemciler yük dengeleyicinin adresine bağlanır. Yük dengeleyici, bir algoritmaya göre isteği arkadaki sunuculardan birine iletir. Aynı zamanda sunucuların sağlığını düzenli aralıklarla kontrol eder ve yanıt vermeyenleri havuzdan geçici olarak çıkarır.
Yaygın dağıtım algoritmaları:
- Round robin: istekler sırayla sunuculara dağıtılır.
- En az bağlantı: o anda en az bağlantısı olan sunucu seçilir.
- IP özeti: aynı istemci hep aynı sunucuya gider.
- Ağırlıklı dağıtım: güçlü sunuculara daha fazla istek verilir.
Oturum bilgisi sunucuda tutuluyorsa istemcinin aynı sunucuya yönlenmesini sağlayan yapışkan oturum (sticky session) kullanılabilir.
Sunucu ve hosting ortamında
Birden fazla web sunucusu çalıştıran yapılarda yük dengeleyici TLS sonlandırmayı da üstlenebilir; böylece sertifika yönetimi tek noktada olur. Veritabanı gibi paylaşılan bileşenlerin ve oturum verisinin tüm sunucular tarafından erişilebilir olması gerekir, aksi halde dengeleme beklenmedik sorunlar yaratır.
Yük dengeleyicinin kendisi de tek hata noktası olabilir; kritik yapılarda yedekli (aktif-pasif veya aktif-aktif) kurulum yapılır. Sağlık kontrolleri uygulamanın gerçek durumunu yansıtacak şekilde yazılmalıdır.
Nasıl uygulanır?
- Uygulamanın gerçek sağlığını gösteren bir sağlık kontrolü uç noktası tanımlayın.
- Oturum verisini merkezi bir depoda (örneğin ortak önbellek) tutun veya yapışkan oturum kullanın.
- Arka uç sunucuları yalnızca yük dengeleyiciden erişilebilir yapın.
- Yük dengeleyiciyi yedekli kurarak tek hata noktasını önleyin.
- Gerçek istemci IP bilgisini başlıkla uygulamaya iletin.
- Yeni sürümleri sunucuları kademeli devreye alarak (rolling) yayınlayın.
Sık yapılan hatalar
- Yalnızca portun açık olup olmadığına bakan yüzeysel sağlık kontrolü kullanmak.
- Oturum verisini sunucu yerelinde tutup kullanıcıları rastgele oturumdan düşürmek.
- Yük dengeleyiciyi yedeksiz bırakmak.
- Arka uç sunucuları doğrudan internete açık bırakmak.
Sık sorulan sorular
Yük dengeleyici ne işe yarar?
İstekleri birden çok sunucuya dağıtarak performansı artırır ve bir sunucu arızalandığında hizmetin devam etmesini sağlar.
Yük dengeleyici ile ters vekil arasındaki fark nedir?
Yük dengeleyici istekleri birden çok sunucuya dağıtmaya odaklanır. Ters vekil ise tek ya da çok sunucunun önünde durup önbellekleme, TLS sonlandırma ve gizleme gibi işlevler de sunar. Birçok yazılım ikisini birlikte yapar.
Yük dengeleyici DDoS’a karşı korur mu?
Yükü dağıtarak bir ölçüde dayanıklılık sağlar, ancak büyük dağıtık saldırılar için tek başına yeterli değildir. Bu tür durumlarda CDN ve ağ düzeyinde koruma gerekir.
Bu terimin geçtiği rehberler
- HAProxy ile TCP yük dengeleme ve sağlık kontrolleriHAProxy ile TCP yük dengeleme kurun: frontend ve backend tanımı, sağlık kontrolleri, istatistik sayfası, yapılandırma doğrulama ve arka uç sunucu devre dışı kalma testi.
- CDN veya ters vekil arkasında gerçek istemci IP adresini alma (Nginx ve Apache)CDN veya ters vekil arkasında Nginx ve Apache günlüklerinde, PHP ve güvenlik araçlarında gerçek istemci IP adresini görmek için realip ve remoteip modüllerini güvenli biçimde yapılandırın.
İlgili terimler
- AnycastAynı IP adresinin birden çok konumda duyurulduğu ve trafiğin en yakın konuma yönlendirildiği ağ yönlendirme yöntemi.
- ARP zehirlenmesi (ARP spoofing)Yerel ağda sahte ARP yanıtlarıyla trafiği saldırganın cihazına yönlendirerek dinleme veya değiştirme yapan saldırı.
- BGPİnternetteki ağların birbirine yol bilgisi duyurmasını sağlayan yönlendirme protokolü.
- CDN (İçerik dağıtım ağı)İçeriği kullanıcıya yakın sunuculardan sunan, dünya çapında dağıtık ağ.
- DHCPAğdaki cihazlara IP adresi, ağ geçidi ve DNS bilgilerini otomatik dağıtan protokol.
- DKIME-postayı dijital imzalayarak içeriğin değişmediğini ve gönderenin doğruluğunu kanıtlayan yöntem.