BurtiNETBlog
Sunucu Yönetimi

Load Balancer Nedir?

Mertcan Selek4 dk okumaGüncellendi:
Load Balancer Nedir?
İçindekiler

Web siteniz veya uygulamanız büyüdükçe, tek bir sunucu gelen tüm trafiği karşılayamaz hale gelir; yoğun anlarda site yavaşlar, hatta çöker. İşte burada load balancer (yük dengeleyici) devreye girer. Bu rehberde load balancer'ın ne olduğunu, nasıl çalıştığını, hangi algoritmaları ve türleri kullandığını ve ne zaman ihtiyaç duyacağınızı anlatıyoruz.

Load Balancer Nedir?

Load balancer (yük dengeleyici), gelen ağ ve uygulama trafiğini birden çok sunucuya eşit şekilde dağıtan bir sistemdir. Amacı, tek bir sunucunun aşırı yüklenmesini önlemek, trafiği dengeli dağıtarak hem performansı hem de erişilebilirliği artırmaktır. İstemci cihazlar ile arka uç (backend) sunucular arasında bir köprü gibi konumlanır ve gelen her isteği uygun bir sunucuya yönlendirir.

Bir sunucu çökse bile load balancer trafiği ayakta kalan diğer sunuculara yönlendirmeye devam eder; bu yüzden yüksek erişilebilirlik (high availability) mimarilerinin temel taşıdır.

Load Balancer Nasıl Çalışır?

Load balancer, istemciden gelen isteği alır, arka uçtaki sunuculardan hangisinin bu isteği karşılayacağına karar verir ve isteği o sunucuya yönlendirir. Bu süreç boyunca bağlantıyı yönetir ve sunucuların sağlık durumunu (health check) izler — yanıt vermeyen bir sunucuyu otomatik olarak devre dışı bırakır. Bu yönüyle aynı zamanda bir ters proxy (reverse proxy) görevi de görür.

Load balancer çalışma şeması: istemcilerden gelen isteklerin tek yük dengeleyiciden geçip birden çok sunucuya dağıtılması

Örnek olarak iki sunucu kurup sitenizi her ikisine bağladığınızı düşünün. Gelen isteklerin yoğunluğuna göre load balancer, istekleri bu iki sunucu arasında paylaştırır; biri yoğunken diğerine yönlendirerek yükü dengeler.

Load Balancing Algoritmaları

Load balancer'ın "hangi isteği hangi sunucuya göndereceğine" karar vermesini sağlayan yöntemlere load balancing algoritması denir. En yaygın kullanılanlar:

AlgoritmaNasıl ÇalışırUygun Olduğu Durum
Round Robinİstekleri sırayla, sunuculara teker teker dağıtırSunucular benzer kapasitedeyse
Least ConnectionsO an en az aktif bağlantısı olan sunucuya yönlendirirUzun süren oturumlar/değişken yük
Weighted Round RobinGüçlü sunuculara ağırlık verip daha fazla istek gönderirSunucu kapasiteleri farklıysa
IP Hashİstemcinin IP'sine göre hep aynı sunucuya yönlendirirOturum sürekliliği (session) gerektiğinde
Least Response TimeEn hızlı yanıt veren sunucuyu seçerYanıt süresi kritik uygulamalar

Katman 4 (L4) ve Katman 7 (L7) Load Balancer Farkı

Load balancer'lar OSI modelinin hangi katmanında çalıştığına göre ikiye ayrılır:

L4 (Transport)L7 (Application)
Neye bakarIP ve port (TCP/UDP)İçerik: URL, başlık, çerez
HızÇok hızlı, düşük gecikmeBiraz daha yavaş (içerik incelenir)
EsneklikSınırlıYüksek (içeriğe göre yönlendirme)
Örnek kullanımHam TCP trafiği dağıtımı/api ve /blog'u farklı sunuculara yönlendirme

Modern web uygulamalarının çoğu, içeriğe göre akıllı yönlendirme yapabildiği için L7 load balancer kullanır.

Load Balancer Avantajları

  • Performans: Yükü dağıtarak sunucuların daha hızlı ve verimli çalışmasını sağlar.
  • Yüksek erişilebilirlik: Bir sunucu çökse bile site, ayakta kalan sunucular üzerinden çalışmaya devam eder.
  • Ölçeklenebilirlik: Trafik arttığında load balancer'ın arkasına kolayca yeni sunucu ekleyebilirsiniz.
  • Daha fazla trafik kapasitesi: Tek sunucunun kaldıramayacağı istek hacmini karşılayabilirsiniz.
  • Güvenlik: Ek bir katman olarak kötü niyetli trafiği tespit etmeyi ve filtrelemeyi kolaylaştırır.
  • Maliyet verimliliği: Birden çok orta ölçekli sunucuyu verimli kullanmak, tek dev sunucudan genelde daha ekonomiktir.

Load Balancer Türleri

  • Sunucu Yük Dengeleme: Gelen istekleri yoğunluğa göre sunucular arasında dağıtır — en temel kullanımdır.
  • Sanal Yük Dengeleme: Yazılım ve donanım yük dengelemenin birleşimidir; sanal makine üzerinde özel yük dengeleme sağlar.
  • Bulut Tabanlı Yük Dengeleme: Bulut sağlayıcısının sunduğu hizmettir (HTTP, dahili, ağ yükü dengeleme gibi seçeneklerle).
  • Konteyner Yük Dengeleme: Yalıtılmış uygulama örnekleri arasında dengeleme yapar; Kubernetes gibi konteyner orkestrasyon sistemleriyle çalışır.
  • Donanım Tabanlı Yük Dengeleme: Özel fiziksel cihazlar üzerinde çalışır; yüksek kapasiteli ama maliyetli çözümdür.
  • Yazılım Tabanlı Yük Dengeleme: Sanal makineler ve sunucular üzerinde çalışır; donanım tabanlıdan daha esnek ve ekonomiktir.

Popüler Load Balancer Çözümleri

  • Nginx: Hem web sunucusu hem de L7 load balancer olarak yaygın kullanılan, yazılım tabanlı güçlü bir çözüm.
  • HAProxy: Yüksek performanslı, L4/L7 destekleyen, kurumsal ortamlarda tercih edilen açık kaynak yük dengeleyici.
  • Bulut load balancer'ları: AWS ELB/ALB, Google Cloud Load Balancing, Cloudflare Load Balancing gibi yönetilen servisler.

Load Balancer'a Ne Zaman İhtiyaç Duyarsınız?

  • Tek sunucu yoğun saatlerde yetersiz kalıyor, site yavaşlıyor veya çöküyorsa.
  • Kesintisiz hizmet (high availability) sunmanız gerekiyorsa — bir sunucu arızalansa bile site ayakta kalmalı.
  • Trafiğiniz dalgalı ve hızlı ölçeklenmeniz gerekiyorsa.
  • Bakım/güncelleme sırasında sunucuları tek tek devre dışı bırakıp siteyi kesintisiz tutmak istiyorsanız.

Sık Sorulan Sorular

Load balancer ile reverse proxy aynı şey mi?

Benzer ama aynı değildir. Reverse proxy, istekleri arka uç sunucu(lar)a ileten bir aracıdır; load balancer ise özellikle birden çok sunucu arasında yük dağıtımına odaklanır. Nginx gibi araçlar her iki görevi de yapabilir.

Küçük bir web sitesi için load balancer gerekir mi?

Genellikle hayır. Düşük-orta trafikli bir site tek sunucuda sorunsuz çalışır. Load balancer, trafik tek sunucunun kapasitesini zorladığında veya kesintisiz erişilebilirlik kritik olduğunda gereklidir.

Round Robin ile Least Connections arasındaki fark nedir?

Round Robin istekleri sırayla eşit dağıtır; sunucuların anlık yükünü dikkate almaz. Least Connections ise o an en az aktif bağlantısı olan sunucuyu seçer, bu yüzden uzun süren oturumların olduğu uygulamalarda daha dengeli bir dağıtım sağlar.

Load balancer tek başına güvenlik sağlar mı?

Tek başına tam bir güvenlik çözümü değildir, ancak ek bir katman olarak kötü niyetli trafiği tespit etmeyi kolaylaştırır ve genellikle SSL sonlandırma, rate limiting gibi güvenlik özellikleriyle birlikte kullanılır.

Load balancer'ın arkasına kaç sunucu ekleyebilirim?

Pratikte kullandığınız çözümün kapasitesine bağlıdır, ancak load balancer'ların en büyük avantajı yatay ölçeklenebilirliktir: ihtiyaç arttıkça arka uca yeni sunucular ekleyerek kapasiteyi kolayca büyütebilirsiniz.

İlgili yazılar