Load Balancer (Yük Dengeleme) Nedir, Nasıl Çalışır?

Load Balancer (Yük Dengeleme) Nedir, Nasıl Çalışır?

Kısaca

Yük dengeleyici, gelen trafiği birden çok sunucuya akıllıca dağıtarak hem hızı artırır hem de tek bir sunucu çökse bile hizmetin ayakta kalmasını sağlar. Round-robin, least connections gibi yöntemlerle isteği en uygun sunucuya yönlendirir; sağlık kontrolleriyle arızalı sunucuyu otomatik devre dışı bırakır.

  • Tek sunucunun arızası tüm siteyi düşürmez; trafik sağlam sunuculara kayar.
  • Katman 4 (hızlı, IP/port) ve Katman 7 (içerik bazlı, akıllı) olmak üzere iki katmanda çalışır.
  • Nginx ve HAProxy gibi yazılım çözümleriyle ekonomik biçimde yüksek erişilebilirlik kurulur.

Load Balancer (yük dengeleyici), gelen ağ trafiğini birden çok sunucuya dağıtan bir sistemdir. Tek bir sunucunun karşılayamayacağı yoğun trafiği birden fazla sunucuya yayarak hem performansı artırır hem de bir sunucu arızalandığında hizmetin kesintisiz sürmesini sağlar. Modern, yüksek erişilebilir (high availability) mimarilerin temel yapı taşıdır. Bu yazıda load balancer’ın ne olduğunu, hangi katmanlarda ve hangi yöntemlerle çalıştığını, ne zaman gerektiğini ve dikkat edilmesi gereken noktaları adım adım açıklıyoruz.

Yük dengeleme mimarisi, birden çok sunucu ve bunları yöneten bir dağıtım katmanı gerektirir. Tek bir güçlü makine yerine, orta seviye birkaç makineyi koordine ederek hem daha esnek hem de daha dayanıklı bir altyapı elde edersiniz.

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

Load balancer, kullanıcı ile sunucular arasında bir “trafik polisi” gibi konumlanır. Kullanıcı tarayıcısına alan adını yazdığında istek doğrudan bir sunucuya değil, önce load balancer’a ulaşır. Load balancer bu isteği, belirlenen bir yönteme göre arkadaki sunuculardan (havuz / backend pool) birine yönlendirir. Sunucu yanıtı oluşturur, yanıt yine load balancer üzerinden kullanıcıya geri döner. Kullanıcı bu sürecin hiçbir aşamasının farkında olmaz; gözünde tek bir adres ve tek bir hizmet vardır.

İşin kalbinde sağlık kontrolü (health check) bulunur. Load balancer, havuzdaki her sunucuya düzenli aralıklarla “ayakta mısın?” sorusunu gönderir. Bir sunucu yanıt vermez veya hata dönerse, load balancer onu sessizce havuzdan çıkarır ve trafiği yalnızca sağlıklı sunuculara akıtır. Sunucu tekrar normale döndüğünde havuza geri alınır. Bu mekanizma sayesinde tek bir sunucunun çökmesi tüm hizmeti durdurmaz; ziyaretçi çoğu zaman bir aksaklık olduğunu bile anlamaz.

Mail hosting 1 ay ücretsiz

Sağlık kontrolleri iki türlüdür. Aktif kontrol, load balancer’ın belirli aralıklarla sunucuya istek atıp yanıtı denetlemesidir. Pasif kontrol ise gerçek kullanıcı trafiğini izleyerek, art arda hata dönen sunucuyu işaretlemesidir. Olgun kurulumlar genellikle ikisini birlikte kullanır.

Katman 4 ve Katman 7 Yük Dengeleme

Load balancer’lar OSI modelinin farklı katmanlarında çalışabilir ve bu seçim, yöntemden bile önce gelir.

Katman 4 (Transport): Trafiği yalnızca IP adresi ve port numarasına bakarak yönlendirir; paketin içeriğini açıp incelemez. Bu yüzden çok hızlıdır ve düşük gecikme sunar. Ancak yalnızca “port açık mı” sorusunu yanıtlayabilir; arkadaki uygulamanın gerçekten sağlıklı çalışıp çalışmadığını bilemez.

Katman 7 (Application): İstemci bağlantısını sonlandırır, HTTP istek satırını ve başlıklarını okur, kurallara göre karar verir ve seçtiği sunucuya yeni bir bağlantı açar. Böylece URL yoluna göre yönlendirme (path-based routing), alan adına göre yönlendirme (host-based routing), çerez ve başlık kuralları, istek yeniden yazma ve TLS sonlandırma gibi akıllı işlevler mümkün olur. Karşılığında biraz daha fazla işlem yükü getirir.

Özellik Katman 4 Katman 7
Karar kriteri IP adresi + port URL, başlık, çerez, içerik
Hız Çok yüksek, düşük gecikme Yüksek, biraz daha fazla yük
Sağlık kontrolü Temel (port açık mı) Uygulama düzeyinde (sayfa gerçekten yanıt veriyor mu)
İçerik bazlı yönlendirme Hayır Evet (örn. /api ayrı, /blog ayrı sunucuya)
SSL sonlandırma Sınırlı Tam destek
Tipik kullanım Yüksek hacimli TCP/UDP trafiği Web siteleri, API’ler, mikroservisler

Yük Dengeleme Yöntemleri (Algoritmalar)

Hangi katmanda çalışırsa çalışsın, load balancer isteği bir kurala göre dağıtır. En yaygın yöntemler şunlardır:

  • Round-robin: İstekleri sunuculara sırayla, tek tek dağıtır. Basit ve adildir; sunucular benzer güçteyse iyi çalışır.
  • Weighted round-robin (ağırlıklı): Daha güçlü sunucuya daha fazla istek gönderir. Farklı kapasitedeki makineleri aynı havuzda kullanmaya olanak tanır.
  • Least connections (en az bağlantı): O an en az meşgul olan, yani en az aktif bağlantıya sahip sunucuya yönlendirir. İstek süreleri değişkense round-robin’den daha dengelidir.
  • IP hash: Kullanıcının IP adresinden bir değer üretip aynı kullanıcıyı hep aynı sunucuya gönderir. Bu, oturum yapışkanlığı (session stickiness) sağlar.

Hangi yöntemin uygun olduğu, uygulamanın oturum yönetimine ve trafik desenine bağlıdır. Oturum bilgisi sunucunun belleğinde tutuluyorsa IP hash veya yapışkan oturum gerekir; oturum bir veritabanında ya da Redis gibi merkezi bir depoda tutuluyorsa round-robin rahatça kullanılabilir.

Yazılım ve Donanım/Bulut Load Balancer

Load balancing iki ana biçimde uygulanır.

Yazılım tabanlı çözümler (Nginx, HAProxy gibi) standart sunucular üzerinde çalışır; ekonomik, esnek ve çoğu senaryo için fazlasıyla yeterlidir. Açık kaynak olmaları, lisans maliyeti olmadan kurulup yapılandırılmalarını sağlar. Birçok proje, sunucularının önüne bir Nginx veya HAProxy load balancer koyarak yüksek erişilebilirliği düşük maliyetle elde eder.

Donanım ve bulut load balancer’ları ise çok yüksek trafik ve kurumsal ölçek için kullanılır. Donanım cihazları özel olarak bu işe ayrılmış kutu çözümlerdir; bulut load balancer’lar ise altyapı sağlayıcısının yönetilen bir hizmeti olarak sunulur. Yönetim kolaylığı sunarlar fakat maliyetleri ve sağlayıcıya bağımlılıkları daha yüksektir.

Yazılım (Nginx/HAProxy) Donanım/Bulut
Maliyet Düşük (açık kaynak) Yüksek
Esneklik Çok yüksek, tam yapılandırma Sağlayıcıya bağlı
Kurulum Kendi sunucunuzda Hazır / yönetilen
Ölçek Küçük-orta-büyük çoğu proje Çok büyük kurumsal trafik
Uygunluk VPS ve sunucu kurulumları Devasa, küresel dağıtım

SSL/TLS Sonlandırma ve Load Balancer

HTTPS kullanan sitelerde şifreleme işlemi CPU tüketir. Load balancer’da SSL sonlandırma yapıldığında, şifre çözme işi load balancer katmanında bir kez halledilir; arkadaki sunuculara trafik şifresiz (HTTP) ya da kurum içi yeniden şifrelenmiş olarak iletilir. Bu, uygulama sunucularının üzerindeki yükü azaltır ve sertifika yönetimini tek noktada toplar. SSL sertifikanızı load balancer üzerinde tutmak, çok sunuculu kurulumlarda her sunucuda ayrı sertifika yönetmekten çok daha pratiktir.

Yük Dengelemenin Faydaları

  • Performans: Yük birden çok sunucuya dağılır, yanıt süreleri kısalır, yoğun saatlerde site yavaşlamaz.
  • Erişilebilirlik (HA): Bir sunucu çökse bile hizmet kesintisiz devam eder; tek nokta arızası ortadan kalkar.
  • Ölçeklenebilirlik: Trafik arttıkça havuza yeni sunucu eklemek yeterlidir; mimariyi baştan kurmak gerekmez.
  • Bakım kolaylığı: Bir sunucu güncelleme veya bakıma alınırken diğerleri trafiği karşılar; kesintisiz bakım mümkün olur.
  • Esneklik: Farklı içerik türlerini (statik, dinamik, API) farklı sunuculara yönlendirerek kaynakları verimli kullanabilirsiniz.

Load Balancer Ne Zaman Gerekir?

Her proje gün birinde load balancer’a ihtiyaç duymaz. Tek bir bulut sunucu ya da güçlü bir VPS, küçük ve orta ölçekli siteler için çoğu zaman yeterlidir. Şu durumlarda yük dengelemeyi düşünmek mantıklıdır:

  • Trafiğiniz tek sunucunun karşılayabileceği eşiği aştığında ve site yoğun saatlerde yavaşladığında.
  • Kesintisizlik (yüksek erişilebilirlik) iş açısından kritikse; e-ticaret, ödeme, kurumsal uygulamalar gibi.
  • Trafiğiniz dönemsel ya da kampanya odaklı zirveler yaşıyorsa ve esnek ölçeklenmeniz gerekiyorsa.
  • Bakım ve güncellemeleri kesintiye yol açmadan yapmak istiyorsanız.

Yüksek erişilebilir bir kurulum için en az iki sunucu ve önlerinde bir dağıtım katmanı gerekir. Sunucuların aynı veri merkezinde, düşük gecikmeli bir ağda bulunması performans açısından önemlidir. Alastyr’ın İzmir’deki kendi veri merkezi, N+1 yedekli altyapısı ve AS3188 bağımsız ağıyla 40 Gbit yedekli omurga üzerinde, çoklu sunucu ve yük dengeleme senaryoları için sağlam bir zemin sunar.

Dikkat Edilmesi Gereken Noktalar

Load balancer doğru kurulmadığında kendisi bir tek nokta arızasına dönüşebilir. Bu yüzden kritik kurulumlarda load balancer’ın kendisi de yedeklenir (örneğin iki load balancer arasında yük devri / failover). Ayrıca oturum yönetimi baştan planlanmalı; aksi halde kullanıcılar her istekte farklı sunucuya düşüp oturumlarının koptuğunu görebilir. SSL sertifikası, sağlık kontrolü aralıkları ve zaman aşımı değerleri de uygulamanın davranışına göre ayarlanmalıdır.

Sıkça Sorulan Sorular

Load balancer ne zaman gerekir?

Tek sunucu trafiği karşılayamadığında, site yoğun saatlerde yavaşladığında veya kesintisizlik (yüksek erişilebilirlik) iş açısından kritik olduğunda gerekir. Küçük siteler için tek güçlü bir sunucu genellikle yeterlidir.

Nginx load balancer olur mu?

Evet. Nginx, yaygın ve güçlü bir yazılım load balancer’dır; HAProxy ile birlikte en çok tercih edilen açık kaynak çözümlerdendir. Lisans maliyeti olmadan kurulup yapılandırılabilir.

Katman 4 ile Katman 7 yük dengeleme arasındaki fark nedir?

Katman 4 yalnızca IP ve porta bakarak çok hızlı yönlendirir ama içeriği görmez. Katman 7 ise URL, başlık ve çerez gibi uygulama bilgilerine bakar; içerik bazlı yönlendirme ve gerçek uygulama sağlık kontrolü yapabilir, karşılığında biraz daha fazla işlem yükü getirir.

Oturumlar bozulur mu?

Round-robin’de kullanıcı her istekte farklı sunucuya düşebileceğinden oturum kopabilir. IP hash veya yapışkan oturum (sticky session) ile ya da oturumu Redis gibi merkezi bir depoda tutarak bu sorun çözülür.

SSL nerede sonlandırılır?

Genellikle load balancer katmanında sonlandırılır; şifre çözme tek noktada yapılır, arka sunuculara trafik HTTP olarak veya kurum içi yeniden şifrelenmiş iletilir. Bu, uygulama sunucularının yükünü azaltır ve sertifika yönetimini tek yerde toplar.

Kaç sunucuya ihtiyacım var?

Yüksek erişilebilirlik için en az iki sunucu gerekir. Sayı, trafiğinize ve dayanıklılık hedefinize göre artırılır; havuza istediğiniz zaman yeni sunucu ekleyebilirsiniz.

Sağlık kontrolü (health check) nedir?

Load balancer’ın havuzdaki sunuculara düzenli aralıklarla istek atıp ayakta olup olmadıklarını denetlemesidir. Yanıt vermeyen sunucu otomatik olarak havuzdan çıkarılır, normale dönünce geri alınır. Böylece arıza ziyaretçiye yansımaz.

Round-robin mi yoksa least connections mı kullanmalıyım?

Sunucular benzer güçteyse ve istekler kısa sürüyorsa round-robin yeterlidir. İstek süreleri değişkense veya bazı bağlantılar uzun sürüyorsa, en az meşgul sunucuya yönlendiren least connections daha dengeli sonuç verir.

Load balancer’ın kendisi çökerse ne olur?

Yanlış kurulduğunda load balancer tek nokta arızasına dönüşebilir. Bu yüzden kritik kurulumlarda load balancer da yedeklenir; iki load balancer arasında yük devri (failover) kurularak biri çökse bile hizmet devam eder.

Yüksek Erişilebilir Mimariler İçin Sağlam Zemin

Load balancing ve çoklu sunucu kurulumları için, İzmir’deki kendi veri merkezimizde ayrılmış kaynaklı VPS ve sunucu çözümleri. N+1 yedekli altyapı, 40 Gbit yedekli omurga, 7/24 destek.

VPS/Sunucu Çözümleri →

Türkiye'nin En Çok Tavsiye Edilen Domain, Hosting ve Bulut Servis Sağlayıcısı
İnternet sitesi Alastyr İnternet Sitesi
Yazı oluşturuldu 506

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön