Load Balancer Nedir? Yük Dengeleyici Nasıl Çalışır?
Bir uygulamanın tek bir sunucu üzerinde çalıştığı mimaride, sunucu ne kadar güçlü olursa olsun belirli bir kapasite sınırı vardır. Trafik arttıkça CPU, memory, network veya application kaynakları tükenebilir. Sunucu tamamen kullanılamaz hale geldiğinde ise hizmetin tamamı durabilir.
Bu problemi yalnızca daha güçlü bir sunucu satın alarak çözmek uzun vadede yeterli değildir.
Modern altyapılar bunun yerine uygulamanın birden fazla sunucu veya instance üzerinde çalıştırıldığı ve kullanıcı trafiğinin bu kaynaklar arasında dağıtıldığı yatay ölçekleme modelini kullanır.
Bu mimarinin merkezindeki bileşen load balancer - yük dengeleyici olarak adlandırılır.
Load balancer, istemcilerden gelen ağ veya uygulama trafiğini birden fazla backend sunucu, instance, container veya uygulama endpoint'i arasında belirlenmiş kurallara göre dağıtan altyapı bileşenidir.
Ancak load balancing yalnızca "trafiği eşit dağıtmak" anlamına gelmez.
Modern bir load balancer:
- Backend sistemlerin sağlık durumunu kontrol eder.
- Arızalı sistemleri trafik havuzundan çıkarır.
- Yeni backend kaynaklarını havuza dahil eder.
- TLS bağlantılarını yönetebilir.
- HTTP host ve path bilgisine göre routing yapabilir.
- Session persistence sağlayabilir.
- Bakım sırasında bağlantıları kontrollü şekilde boşaltabilir.
- Multi-region veya multi-site trafik yönetiminin bir parçası olabilir.
Bu nedenle load balancer performans bileşeni olmanın yanında yüksek erişilebilirlik, ölçeklenebilirlik ve iş sürekliliği mimarisinin temel katmanlarından biridir.
Bu rehberde load balancer'ın ne olduğunu, nasıl çalıştığını, L4 ve L7 farkını, load balancing algoritmalarını, health check, session persistence, TLS termination, GSLB, Kubernetes ve yüksek erişilebilirlik mimarisindeki rolünü detaylı olarak ele alıyoruz.
Kısaca Load Balancer Nedir?
Load balancer, gelen kullanıcı veya sistem trafiğini bir backend havuzundaki sağlıklı kaynaklar arasında dağıtarak tek bir kaynağın aşırı yüklenmesini önlemeye, kapasiteyi ölçeklendirmeye ve hizmet erişilebilirliğini artırmaya yardımcı olan trafik yönetimi katmanıdır.
Backend kaynakları şunlar olabilir:
- Fiziksel sunucular
- Sanal makineler
- Cloud instance'ları
- Kubernetes Pod'ları
- Container workload'ları
- API servisleri
- Farklı veri merkezlerindeki uygulama ortamları
Kullanıcı çoğu zaman bu kaynakların hiçbirini doğrudan görmez.
Kullanıcı tek bir hostname veya IP üzerinden servise erişir. Load balancer arka planda isteğin hangi backend tarafından karşılanacağını belirler.
Load Balancer Ne İşe Yarar?
Load balancer'ın temel amacı mevcut backend kapasitesini kullanıcı trafiğine güvenilir ve kontrollü biçimde sunmaktır.
Başlıca kullanım amaçları:
- Tek sunucuya aşırı yük binmesini engellemek
- Uygulamayı yatay olarak ölçeklendirmek
- Arızalı backend'lere trafik gönderilmesini önlemek
- Bakım sırasında kesintiyi azaltmak
- Yeni application sürümlerini kontrollü dağıtmak
- Birden fazla veri merkezi veya region arasında trafik yönetmek
- TLS sertifika yönetimini merkezileştirmek
- Application routing kurallarını merkezi hale getirmek
Load Balancer Neden Gereklidir?
Tek Sunucu Kapasitesi Sınırlıdır
Her sunucunun:
- CPU
- Memory
- Disk I/O
- Network
- Connection
- Application thread
kapasitesi sınırlıdır.
Load balancer sayesinde uygulama kapasitesi yeni backend kaynakları eklenerek yatay biçimde artırılabilir.
Sunucu Arızaları Kaçınılmazdır
Donanım, işletim sistemi veya application seviyesinde sorun oluşabilir.
Health check kullanan load balancer sağlıksız backend'i trafik havuzundan çıkararak yeni istekleri diğer kaynaklara gönderebilir.
Bakım Kesintisi Azaltılabilir
Bir backend güncelleneceği zaman trafik havuzundan kontrollü şekilde çıkarılabilir.
Diğer backend'ler kullanıcı trafiğini karşılamaya devam eder.
Yatay Ölçekleme Mümkün Hale Gelir
Dikey ölçeklemede mevcut sunucu daha güçlü hale getirilir.
Yatay ölçeklemede ise yeni backend kaynakları eklenir.
Load balancer bu kapasitenin kullanıcıya tek bir hizmet gibi sunulmasını sağlar.
Load Balancer Nasıl Çalışır?
Load balancer gelen bağlantı veya isteği kabul eder, uygun backend havuzunu belirler, sağlıklı kaynaklar arasından routing algoritmasına göre bir hedef seçer ve trafiği bu hedefe iletir.
Basitleştirilmiş süreç:
- Kullanıcı uygulamanın hostname veya IP adresine bağlanır.
- Bağlantı load balancer katmanına ulaşır.
- Load balancer uygun backend pool'u belirler.
- Health check sonucuna göre sağlıksız backend'ler seçim dışı bırakılır.
- Load balancing algoritması uygun backend'i seçer.
- Trafik backend'e iletilir.
- Backend yanıtı kullanıcıya döner.
- Load balancer metrikleri ve sağlık durumunu izlemeye devam eder.
Load Balancer Her Zaman Reverse Proxy midir?
Hayır. Birçok Layer 7 load balancer reverse proxy modeliyle çalışır ancak bütün load balancer mimarileri teknik olarak reverse proxy değildir.
Proxy tabanlı bir modelde istemci bağlantısı load balancer üzerinde sonlandırılır ve load balancer backend'e ayrı bir bağlantı kurar.
Bunun dışında:
- NAT tabanlı forwarding
- Direct server return
- Layer 4 flow forwarding
- Anycast tabanlı trafik dağıtımı
gibi farklı mimariler de kullanılabilir.
Bu nedenle reverse proxy ve load balancer kavramları örtüşebilir ancak tamamen eş anlamlı değildir.
Load Balancing Algoritmaları Nelerdir?
Load balancing algoritması, yeni bir bağlantı veya isteğin hangi sağlıklı backend'e yönlendirileceğini belirleyen seçim yöntemidir.
Round Robin
İstekler backend'lere sırayla dağıtılır.
Basit ve öngörülebilir bir yöntemdir.
Backend kapasitesi ve request süresi birbirine yakın olduğunda etkili olabilir.
Weighted Round Robin
Backend'lere farklı ağırlıklar atanır.
Daha yüksek kapasiteye sahip sunucu daha fazla trafik alabilir.
Least Connections
Yeni bağlantı o anda daha az aktif bağlantıya sahip backend'e gönderilir.
Özellikle connection sürelerinin birbirinden farklı olduğu workload'larda Round Robin'e göre daha dengeli sonuç üretebilir.
Weighted Least Connections
Aktif bağlantı sayısının yanında backend kapasitesi de dikkate alınır.
Least Response Time
Desteklenen implementasyonlarda backend response time ve aktif bağlantı sayısı gibi performans metrikleri birlikte kullanılabilir.
Bu algoritma her load balancer ürününde aynı biçimde bulunmayabilir.
IP Hash
Client IP bilgisi kullanılarak belirli bir backend tercih edilir.
Session persistence için kullanılabilir.
Ancak backend havuzunun değişmesi veya hedef backend'in kullanılamaz hale gelmesi durumunda kullanıcının başka bir backend'e yönlendirilmesi gerekebilir.
Consistent Hash
Hash tabanlı routing'in backend havuzu değiştiğinde mümkün olduğunca az bağlantının farklı hedefe taşınmasını amaçlayan varyasyonıdır.
Cache ve sharding benzeri kullanım senaryolarında değerli olabilir.
Doğru Load Balancing Algoritması Nasıl Seçilir?
En iyi load balancing algoritması yoktur. Doğru seçim uygulamanın connection süresi, backend kapasitesi, session modeli ve trafik davranışına bağlıdır.
| Senaryo | Değerlendirilebilecek Algoritma |
|---|---|
| Benzer backend kapasitesi ve kısa request'ler | Round Robin |
| Farklı backend kapasitesi | Weighted Round Robin |
| Uzun süren connection'lar | Least Connections |
| Backend performansı sürekli değişiyor | Response-time-aware algoritmalar |
| Belirli client'ın aynı backend'i tercih etmesi gerekiyor | Hash veya session persistence |
Health Check Nedir?
Health check, load balancer'ın backend'in trafik almaya uygun olup olmadığını belirlemek için gerçekleştirdiği sağlık kontrolüdür.
Health check şu seviyelerde yapılabilir:
- TCP port kontrolü
- HTTP request
- HTTPS request
- Belirli application endpoint'i
- Özel service health protokolü
Örneğin:
/health
endpoint'i yalnızca web server'ın açık olduğunu değil, application'ın kritik bağımlılıklarının çalıştığını da doğrulayabilir.
Active ve Passive Health Check Arasındaki Fark Nedir?
Active Health Check
Load balancer düzenli aralıklarla backend'e bağımsız test request'leri gönderir.
Belirlenen sayıda başarısız kontrolden sonra backend havuz dışına alınabilir.
Passive Health Check
Load balancer gerçek kullanıcı trafiğinde oluşan:
- Connection failure
- Timeout
- HTTP error
gibi sinyalleri değerlendirerek backend'in sağlığını tahmin eder.
İleri seviye mimariler iki yaklaşımı birlikte kullanabilir.
Health Check Ayarları Neden Kritik?
Çok agresif health check konfigürasyonu geçici yavaşlamayı kalıcı arıza gibi yorumlayabilir.
Çok gevşek health check ise bozuk backend'e uzun süre trafik gönderilmesine neden olabilir.
Ayarlanması gereken parametreler arasında:
- Check interval
- Timeout
- Healthy threshold
- Unhealthy threshold
- HTTP status code
- Health endpoint davranışı
bulunur.
Connection Draining Nedir?
Connection draining, trafik havuzundan çıkarılan bir backend'e yeni bağlantı gönderilmesini durdururken mevcut bağlantıların kontrollü biçimde tamamlanmasına izin veren mekanizmadır.
Örneğin bir uygulama sunucusu bakım için kapatılacaksa:
- Backend draining durumuna alınır.
- Yeni request'ler diğer backend'lere gönderilir.
- Mevcut aktif request veya connection'ların tamamlanması beklenir.
- Backend güvenli şekilde kapatılır.
Bu yaklaşım deployment ve bakım sırasında kullanıcıya yansıyan hataları azaltabilir.
Session Persistence - Sticky Session Nedir?
Session persistence, aynı kullanıcının birbirini takip eden isteklerinin mümkün olduğunca aynı backend'e yönlendirilmesini sağlayan trafik yönetimi yöntemidir.
Kullanılabilecek yöntemler:
- Cookie-based persistence
- Source IP affinity
- Hash-based routing
Sticky session özellikle session state'in application server memory'sinde tutulduğu legacy uygulamalarda gerekebilir.
Sticky Session Kullanmanın Dezavantajı Nedir?
Session persistence load balancing esnekliğini azaltabilir ve bazı backend'lerin diğerlerinden daha fazla yük almasına neden olabilir.
Örneğin çok sayıda kullanıcı aynı NAT gateway arkasından geliyorsa IP tabanlı persistence büyük trafik grubunu aynı backend'e yönlendirebilir.
Modern cloud-native uygulamalarda mümkün olduğunda session state'in:
- Database
- Distributed cache
- External session store
gibi paylaşımlı bir sistemde tutulması daha esnek scaling sağlayabilir.
Böylece backend'ler mümkün olduğunca stateless hale getirilebilir.
Layer 4 ve Layer 7 Load Balancer Arasındaki Fark Nedir?
L4 load balancer taşıma katmanı bilgilerine göre trafik yönlendirirken L7 load balancer HTTP gibi application protocol bilgilerini inceleyerek daha ayrıntılı routing kararları verebilir.
| Kriter | Layer 4 | Layer 7 |
|---|---|---|
| OSI katmanı | Transport | Application |
| Temel bilgi | IP, port, protocol | Host, URL, header, cookie ve application verisi |
| Protocol örnekleri | TCP, UDP | HTTP, HTTPS, gRPC |
| Content-based routing | Sınırlı | Gelişmiş |
| TLS inspection | Genellikle passthrough veya sınırlı | TLS termination ile mümkün olabilir |
| İşlem yükü | Genellikle daha düşük protocol parsing yükü | Daha fazla application-layer işleme |
Layer 7 Load Balancer ile Neler Yapılabilir?
L7 load balancer HTTP request bilgisini inceleyebildiği için:
- Hostname bazlı routing
- Path bazlı routing
- Header bazlı routing
- Cookie bazlı routing
- Redirect
- HTTP response manipulation
- TLS termination
gibi gelişmiş trafik politikaları uygulanabilir.
Örneğin:
api.example.comtrafiği API sunucularına/imagestrafiği media backend'lerine/checkouttrafiği ödeme servislerine
gönderilebilir.
Internal ve External Load Balancer Arasındaki Fark Nedir?
External Load Balancer
İnternet veya dış ağlardan gelen trafiği karşılayan load balancer'dır.
Web siteleri, public API'ler ve müşteri uygulamalarında kullanılabilir.
Internal Load Balancer
Yalnızca private network içindeki sistemler tarafından erişilebilir.
Örneğin:
- Frontend ile backend servisleri
- Kurumsal API'ler
- Database proxy katmanı
- Internal microservice endpoint'leri
arasında trafik yönetmek için kullanılabilir.
Local ve Global Load Balancing Arasındaki Fark Nedir?
Local load balancing aynı lokasyon veya region içindeki backend'ler arasında trafik dağıtır. Global load balancing ise birden fazla veri merkezi, cloud region veya coğrafi lokasyon arasında trafik yönlendirir.
Global trafik yönetimi şu kriterleri kullanabilir:
- Kullanıcının coğrafi konumu
- Network latency
- Region health
- Backend kapasitesi
- Routing policy
- Compliance veya data residency gereksinimi
GSLB - Global Server Load Balancing Nedir?
GSLB, kullanıcı trafiğini farklı veri merkezleri veya region'lardaki servis endpoint'leri arasında sağlık, konum, latency veya politika bilgisine göre yönlendiren global trafik yönetimi yaklaşımıdır.
GSLB:
- DNS tabanlı
- Anycast tabanlı
- Global proxy tabanlı
farklı mimarilerle uygulanabilir.
DNS tabanlı tasarımlarda failover süresi DNS TTL ve resolver cache davranışından etkilenebilir.
Bu nedenle "GSLB arıza anında her zaman anında failover yapar" varsayımı doğru değildir.
Load Balancer ile High Availability Arasındaki İlişki Nedir?
Load balancer, birden fazla application instance'ın tek bir hizmet olarak sunulmasını sağladığı için High Availability mimarisinin temel bileşenlerinden biridir.
Ancak yalnızca backend sunucuları yedeklemek yeterli değildir.
HA mimarisinde:
- Load balancer
- Backend sunucular
- Network
- Storage
- Database
- DNS
- Power
gibi bağımlılıklar birlikte değerlendirilmelidir.
Load Balancer'ın Kendisi Single Point of Failure Olabilir mi?
Evet. Tek bir load balancer kullanılıyorsa bu cihaz veya servis kendisi Single Point of Failure haline gelebilir.
Kritik yapılarda load balancer katmanı da yedekli tasarlanmalıdır.
Kullanılabilecek modeller:
- Active-passive
- Active-active
- Multi-zone load balancer
- Anycast tabanlı dağıtım
- Cloud provider managed HA
Active-Active ve Active-Passive Load Balancer Farkı Nedir?
Active-Passive
Bir load balancer aktif olarak trafik taşırken ikincisi standby durumda bekler.
Ana bileşen kullanılamaz hale geldiğinde standby sistem devreye alınır.
Active-Active
Birden fazla load balancer aynı anda trafik taşıyabilir.
Bu model:
- Ek kapasite
- Daha iyi kaynak kullanımı
- Bileşen arızasına karşı dayanıklılık
sağlayabilir.
Ancak state synchronization ve routing tasarımı daha karmaşık olabilir.
Load Balancer ile Disaster Recovery Arasındaki İlişki Nedir?
Disaster Recovery senaryosunda sistemleri ikinci lokasyonda başlatmak yeterli değildir. Kullanıcı trafiğinin yeni ortama nasıl yönlendirileceği de recovery planının parçasıdır.
Failover sırasında:
- Application
- Database
- DNS
- Firewall
- Load balancer
- Certificate
- Routing
bağımlılıklarının doğru sırayla devreye alınması gerekir.
Bu mimariyi daha geniş açıdan DRaaS Nedir? rehberimizde ele alıyoruz.
TLS Termination Nedir?
TLS termination, istemci ile kurulan şifreli TLS bağlantısının load balancer üzerinde sonlandırılmasıdır.
Bu modelde load balancer:
- TLS handshake'i gerçekleştirir.
- Sertifikayı kullanıcıya sunar.
- Şifreli trafiği çözer.
- Backend'e yeni bağlantı kurar.
Avantajları:
- Merkezi certificate management
- Backend CPU üzerindeki TLS yükünün azalması
- L7 routing uygulanabilmesi
- WAF gibi application security kontrollerinin kullanılabilmesi
TLS Passthrough ve Re-Encryption Nedir?
TLS Passthrough
Load balancer şifreli bağlantıyı çözmeden doğrudan backend'e aktarır.
End-to-end TLS termination backend üzerinde yapılır.
TLS Re-Encryption
İstemci TLS bağlantısı load balancer'da sonlandırılır ancak load balancer backend'e yeni bir TLS bağlantısı kurar.
Böylece hem L7 kontrolü uygulanabilir hem backend bağlantısı şifreli tutulabilir.
Client IP Load Balancer Arkasında Nasıl Korunur?
Proxy tabanlı mimaride backend sunucu doğrudan kullanıcı IP'si yerine load balancer IP'sini görebilir.
Gerçek client bilgisinin backend'e taşınması için:
- X-Forwarded-For
- Forwarded header
- PROXY Protocol
- Source IP preservation
gibi yöntemler kullanılabilir.
Bu bilgi:
- Security logging
- Rate limiting
- Fraud detection
- Geo-based policy
için kritik olabilir.
Timeout ve Retry Ayarları Neden Önemlidir?
Load balancer timeout ve retry politikaları yanlış tasarlanırsa küçük bir backend problemi tüm sistemde daha büyük kaynak tüketimine dönüşebilir.
Önemli timeout türleri:
- Connection timeout
- Request timeout
- Response timeout
- Idle timeout
- Keepalive timeout
Aşırı agresif retry politikaları bozuk backend'e tekrar tekrar trafik göndererek retry storm oluşturabilir.
Bu nedenle timeout ve retry değerleri application davranışına göre planlanmalıdır.
Load Balancer ile CDN Arasındaki Fark Nedir?
Load balancer backend compute kaynakları arasında trafik dağıtır. CDN ise içeriği dağıtık edge lokasyonlarından kullanıcıya yakın biçimde sunmaya odaklanır.
| Kriter | Load Balancer | CDN |
|---|---|---|
| Ana amaç | Backend trafik dağıtımı | İçeriği kullanıcıya yakın sunmak |
| Temel hedef | Availability ve capacity | Latency ve origin offload |
| Cache | Temel fonksiyon değildir | Temel fonksiyonlardan biridir |
| Backend health check | Yaygın | Ürüne göre değişir |
İki teknoloji genellikle birlikte kullanılır.
Kullanıcı isteği önce CDN edge noktasına ulaşabilir. Cache'de bulunmayan dinamik trafik origin altyapısındaki load balancer'a iletilebilir.
CDN mimarisini detaylı olarak CDN Nedir? rehberimizde ele alıyoruz.
Load Balancer ile WAF Arasındaki Fark Nedir?
Load balancer trafiği backend kaynaklar arasında dağıtırken Web Application Firewall - WAF - HTTP trafiğini application security kurallarına göre analiz eder ve gerektiğinde engeller.
WAF:
- SQL injection
- Cross-site scripting
- Malicious request pattern
- Bot veya rate-limit politikaları
gibi application-layer risklerine karşı kontrol sağlayabilir.
Bazı ürünlerde WAF ve load balancing aynı platform üzerinde entegre sunulabilir ancak mantıksal görevleri farklıdır.
Load Balancer ile Firewall Aynı Şey midir?
Hayır. Firewall trafiğin güvenlik politikalarına göre geçip geçemeyeceğini belirler. Load balancer ise izin verilen trafiğin hangi backend'e gönderileceğini belirler.
Production mimarisinde ikisi birlikte kullanılabilir.
Load Balancer ile API Gateway Arasındaki Fark Nedir?
Load balancer temel olarak trafik dağıtımı ve availability'ye odaklanırken API Gateway API lifecycle ve application-level policy yönetimine daha fazla odaklanır.
API Gateway özellikleri:
- Authentication
- API key yönetimi
- Rate limiting
- Quota
- Request transformation
- API versioning
olabilir.
Modern mimarilerde API Gateway arkasında ayrıca load balancer kullanılabilir.
Load Balancer DDoS Koruması Sağlar mı?
Load balancer yüksek trafik hacmini birden fazla backend'e dağıtarak belirli kapasite artışlarını yönetebilir ancak tek başına kapsamlı DDoS koruması değildir.
Büyük DDoS saldırılarında:
- Network kapasitesi
- Anycast scrubbing
- Rate limiting
- CDN
- WAF
- Dedicated DDoS mitigation
gibi ilave katmanlar gerekebilir.
DDoS savunmasının detayları için DDoS Saldırıları Nedir? rehberini inceleyebilirsiniz.
Load Balancer Siber Güvenlik Açısından Neden Kritik?
Load balancer internet-facing bir entry point haline gelebilir.
Bu nedenle:
- Management interface erişimi
- TLS configuration
- Certificate management
- Software patching
- Access control
- Audit logging
- Admin account security
kritik güvenlik alanlarıdır.
İnternete açık servislerin daha geniş risk modeli için Saldırı Yüzeyi Nedir? rehberi tamamlayıcıdır.
Donanım, Yazılım ve Managed Load Balancer Arasındaki Fark Nedir?
| Kriter | Donanım Tabanlı | Yazılım Tabanlı | Managed Cloud |
|---|---|---|---|
| Kontrol | Yüksek | Yüksek | Sağlayıcı sınırları içinde |
| İlk yatırım | Yüksek olabilir | Daha düşük olabilir | CAPEX ihtiyacı düşük |
| Operasyon | Kurum yönetir | Kurum yönetir | Altyapı katmanının önemli bölümünü sağlayıcı yönetir |
| Ölçekleme | Fiziksel kapasiteye bağlı | Altyapıya bağlı | Servis limitleri ve sağlayıcı mimarisine bağlı |
| Özelleştirme | Yüksek | Yüksek | Ürüne göre sınırlı olabilir |
"Cloud load balancer sonsuz ve anlık ölçeklenir" şeklindeki varsayım doğru değildir.
Cloud load balancer'ların da:
- Service quota
- Scaling behavior
- Connection limit
- Regional dependency
gibi mimari sınırları bulunabilir.
Kubernetes'te Load Balancing Nasıl Çalışır?
Kubernetes Service kaynakları değişken Pod'ların önüne stabil bir service endpoint koyar ve desteklenen mimarilerde trafik backend Pod'lara dağıtılır.
Kubernetes tarafında:
- ClusterIP
- NodePort
- LoadBalancer
Service türleri bulunur.
External HTTP routing tarafında ise:
- Ingress
- Gateway API
gibi katmanlar kullanılabilir.
Kubernetes networking mimarisinin detaylarını Kubernetes Nedir? rehberimizde ele alıyoruz.
Microservice Mimarisinde Load Balancing Nasıl Kullanılır?
Mikroservis ortamlarında load balancing iki farklı trafik tipinde kullanılabilir:
North-South Traffic
Kullanıcı veya dış sistemden cluster veya application ortamına gelen trafiktir.
East-West Traffic
Mikroservislerin kendi aralarındaki trafiktir.
Büyük microservice ortamlarında east-west trafik:
- Service discovery
- Client-side load balancing
- Service mesh
gibi farklı yöntemlerle yönetilebilir.
Client-Side ve Server-Side Load Balancing Farkı Nedir?
Server-Side Load Balancing
İstemci tek bir load balancer endpoint'ine bağlanır ve backend seçimini load balancer yapar.
Client-Side Load Balancing
İstemci veya application library mevcut backend listesini bilir ve hedef seçimini kendisi yapar.
Microservice ve service mesh ortamlarında bu model belirli kullanım senaryolarında tercih edilebilir.
Load Balancer Metrikleri Nelerdir?
Load balancer observability yalnızca backend'in up veya down durumunu izlemekten ibaret değildir.
Takip edilebilecek KPI'lar:
- Requests per second
- Connections per second
- Active connections
- Backend healthy host count
- Backend unhealthy host count
- P50 response time
- P95 response time
- P99 response time
- 4xx error rate
- 5xx error rate
- Connection error rate
- TLS handshake errors
- Bytes in / out
- Backend saturation
Load Balancer Kapasitesi Nasıl Planlanır?
Kapasite planlamasında yalnızca request sayısı yeterli değildir.
Şunlar birlikte değerlendirilmelidir:
- Peak requests per second
- Concurrent connections
- Average connection duration
- New connections per second
- Payload boyutu
- TLS handshake hacmi
- Backend response time
- WebSocket veya long-lived connection kullanımı
- Gelecekteki trafik büyümesi
WebSocket Trafiğinde Load Balancer Kullanılabilir mi?
Evet.
Ancak WebSocket bağlantıları uzun süre açık kalabildiği için:
- Idle timeout
- Connection limit
- Health check
- Session davranışı
- Graceful shutdown
ayrı değerlendirilmelidir.
Bu tür workload'larda yalnızca request per second metriğine bakmak yeterli değildir.
Load Balancer Kurarken Hangi Sorular Sorulmalıdır?
- Trafik TCP, UDP, HTTP, HTTPS veya gRPC mi?
- L4 mü L7 routing mi gerekiyor?
- Peak request ve connection sayısı nedir?
- Backend'ler aynı kapasitede mi?
- Health check hangi application durumunu test etmeli?
- Session persistence gerekiyor mu?
- Application stateless hale getirilebilir mi?
- TLS nerede terminate edilecek?
- Backend'e yeniden TLS uygulanacak mı?
- Client IP backend'e taşınmalı mı?
- Connection draining süresi ne olmalı?
- Multi-zone redundancy gerekiyor mu?
- Multi-region veya DR failover gerekiyor mu?
- WAF ve DDoS koruması hangi katmanda olacak?
- Logging ve monitoring nasıl yapılacak?
Load Balancer Tasarımında Sık Yapılan Hatalar
1. Tek Load Balancer Kullanmak
Backend'ler yedekli olsa bile tek load balancer yeni bir Single Point of Failure oluşturabilir.
2. Health Check'i Yalnızca Port Kontrolü Yapmak
Port açıkken application işlevsel olmayabilir.
3. Çok Agresif Health Check Kullanmak
Geçici latency artışı gereksiz failover yaratabilir.
4. Sticky Session'a Gereğinden Fazla Güvenmek
Backend arızalandığında session yine başka sunucuya taşınabilir.
5. Connection Draining Kullanmamak
Maintenance sırasında aktif request'ler kesilebilir.
6. TLS Kapasitesini Hesaba Katmamak
Yüksek TLS handshake hacmi önemli CPU tüketimi oluşturabilir.
7. Backend Kapasitesini Eşit Varsaymak
Farklı sunucu konfigürasyonlarında weighted algoritmalar gerekebilir.
8. Monitoring'i Yalnızca Uptime ile Sınırlamak
Backend latency ve error rate bozulurken servis teknik olarak "up" görünebilir.
9. Load Balancer'ı DDoS Çözümü Sanmak
Büyük volumetric saldırılar için ilave network security kapasitesi gerekir.
10. DR Senaryosunda Trafik Yönlendirmeyi Unutmak
DR sunucuları çalışsa bile kullanıcı trafiği yeni ortama ulaşamıyorsa recovery tamamlanmış sayılmaz.
Load Balancer, CDN ve DR Birlikte Nasıl Çalışır?
Büyük ölçekli web mimarisinde trafik yolu şu şekilde olabilir:
- Kullanıcı DNS üzerinden uygulama endpoint'ini çözer.
- Trafik CDN veya edge katmanına ulaşır.
- Cache hit varsa içerik edge'den döner.
- Dinamik request origin altyapısına iletilir.
- Load balancer request'i sağlıklı backend'e gönderir.
- Production region kullanılamıyorsa global trafik yönetimi DR region'a geçebilir.
Bu nedenle CDN, load balancer ve DR birbirinin alternatifi değil, farklı katmanlarda çalışan tamamlayıcı bileşenlerdir.
Carrier-Neutral Veri Merkezi Load Balancing İçin Neden Önemlidir?
Load balancing application sunucuları arasındaki trafik dağılımını çözer ancak kullanıcı ile veri merkezi arasındaki network kalitesini tek başına çözmez.
Carrier-neutral veri merkezi:
- Birden fazla ISP kullanımı
- Route çeşitliliği
- Operatör bağımlılığının azaltılması
- Farklı network path'leri
sağlayabilir.
Konunun detayları için Carrier-Neutral Veri Merkezi Nedir? rehberimizi inceleyebilirsiniz.
Hybrid Cloud Ortamında Load Balancer Nasıl Konumlandırılır?
Hybrid architecture'da backend'ler:
- Private cloud
- Public cloud
- On-premises
- Colocation
ortamlarına dağıtılmış olabilir.
Bu durumda trafik yönetimi yalnızca load balancer kararı değildir.
Network latency, route kalitesi ve cloud bağlantısı da önemlidir.
Kritik cloud bağlantıları için Direct Cloud Access Nedir? rehberi tamamlayıcıdır.
Ixpanse ile Yüksek Erişilebilirlik ve Trafik Yönetimi
Yüksek erişilebilirlik mimarisi yalnızca load balancer kurmaktan oluşmaz.
Compute, network, storage, connectivity, monitoring ve disaster recovery katmanlarının birlikte değerlendirilmesi gerekir.
Ixpanse'in Özel Bulut altyapısı, kontrollü ve ölçeklenebilir application ortamlarının oluşturulması için özel cloud altyapısı sunar.
Fiziksel altyapı ihtiyacı bulunan yapılarda Sunucu Barındırma hizmeti, carrier-neutral bağlantı seçenekleri ve 20KW+ raf güç kapasitesiyle kurumsal altyapıları destekler.
Network tarafında Ankara IX, Direct Internet Access, Cloud Interconnect ve yönetilen nokta bağlantıları gibi bağlantı seçenekleri sunar.
Uygulama ve altyapının sürekli izlenmesi için Yönetilen Hizmetler kapsamında 7/24 monitoring, sanal sunucu ve replikasyon yönetimi gibi operasyon katmanları değerlendirilebilir.
Bölgesel kesinti veya altyapı kaybına karşı iş sürekliliği gerektiğinde load balancing mimarisi DRaaS ve trafik failover tasarımıyla birlikte ele alınmalıdır.
Kurumunuzun high availability, private cloud, trafik yönetimi ve network mimarisini değerlendirmek için Ixpanse uzman ekibiyle iletişime geçebilirsiniz.
Sonuç
Load balancer, uygulama trafiğini birden fazla sağlıklı backend kaynak arasında yöneten ve modern yüksek erişilebilirlik mimarisinin temel trafik yönetimi katmanını oluşturan sistemdir.
- Load balancer yalnızca trafiği eşit dağıtmaz, backend health durumunu da dikkate alabilir.
- Her load balancer reverse proxy değildir.
- Round Robin, Least Connections, weighted ve hash tabanlı algoritmalar farklı workload'lar için kullanılabilir.
- Health check kalitesi failover davranışını doğrudan etkiler.
- Connection draining bakım ve deployment sırasında aktif bağlantıların korunmasına yardımcı olur.
- Sticky session gerekli olabilir ancak stateless application tasarımı genellikle daha kolay ölçeklenir.
- L4 ve L7 load balancer farklı trafik bilgilerine göre karar verir.
- TLS termination, passthrough ve re-encryption farklı güvenlik modelleri sunar.
- Load balancer'ın kendisi de yedekli tasarlanmalıdır.
- GSLB farklı veri merkezleri ve region'lar arasında trafik yönetebilir.
- Load balancer DDoS korumasının yerine geçmez.
- Kubernetes ve microservice ortamlarında load balancing farklı katmanlarda uygulanabilir.
- DR senaryosunda kullanıcı trafiğinin recovery ortamına yönlendirilmesi kurtarma planının parçasıdır.
Load balancer seçerken sorulması gereken soru yalnızca:
"Trafiği kaç sunucuya dağıtabilir?"
değildir.
Daha doğru soru:
"Backend arızası, trafik artışı, deployment, network problemi veya veri merkezi kesintisi yaşandığında kullanıcı trafiğini hangi kurallarla ve ne kadar güvenilir biçimde yönetebilir?"
olmalıdır.
Load Balancer Hakkında Sıkça Sorulan Sorular
Load balancer nedir?
Load balancer, gelen ağ veya uygulama trafiğini birden fazla sağlıklı backend sunucu veya application instance arasında yönlendiren trafik yönetimi bileşenidir.
Yük dengeleyici nedir?
Yük dengeleyici, load balancer teriminin Türkçe karşılığıdır ve kullanıcı trafiğinin birden fazla sistem arasında dağıtılmasını sağlar.
Load balancer nasıl çalışır?
Load balancer gelen bağlantıyı kabul eder, sağlıklı backend'leri belirler, seçilen load balancing algoritmasına göre uygun hedefi seçer ve trafiği bu backend'e iletir.
Load balancer ile reverse proxy aynı şey midir?
Hayır. Birçok L7 load balancer reverse proxy olarak çalışır ancak L4 forwarding, NAT veya farklı trafik iletim modelleri kullanan load balancer mimarileri de bulunur.
Round Robin nedir?
Round Robin, yeni istekleri backend sunuculara sırayla dağıtan basit load balancing algoritmasıdır.
Least Connections nedir?
Least Connections, yeni bağlantıyı o anda daha az aktif bağlantıya sahip backend'e yönlendiren load balancing algoritmasıdır.
IP Hash nedir?
IP Hash, istemci IP bilgisinden üretilen hash değerini backend seçmek için kullanan ve session persistence amacıyla kullanılabilen load balancing yöntemidir.
Health check nedir?
Health check, load balancer'ın bir backend sistemin trafik almaya uygun durumda olup olmadığını belirlemek için yaptığı sağlık kontrolüdür.
Connection draining nedir?
Connection draining, backend havuzdan çıkarılırken yeni trafik gönderimini durdurup mevcut aktif bağlantıların kontrollü şekilde tamamlanmasına izin veren mekanizmadır.
Sticky session nedir?
Sticky session veya session persistence, aynı kullanıcının takip eden isteklerinin mümkün olduğunca aynı backend'e yönlendirilmesini sağlayan trafik politikasıdır.
L4 load balancer nedir?
Layer 4 load balancer IP adresi, port ve transport protocol gibi ağ bilgilerini kullanarak TCP veya UDP trafiğini yönlendirir.
L7 load balancer nedir?
Layer 7 load balancer HTTP host, path, header veya cookie gibi application-layer bilgilerini kullanarak gelişmiş routing yapabilir.
Internal load balancer nedir?
Internal load balancer yalnızca private network içinde erişilebilen servisler arasında trafik dağıtmak için kullanılan load balancer'dır.
GSLB nedir?
GSLB - Global Server Load Balancing, farklı veri merkezi veya region'lardaki servisler arasında sağlık, coğrafya, latency veya politika bilgisine göre global trafik yönetimi sağlar.
TLS termination nedir?
TLS termination, istemcinin şifreli bağlantısının load balancer üzerinde sonlandırılması ve backend trafiğinin load balancer tarafından yeniden oluşturulmasıdır.
TLS passthrough nedir?
TLS passthrough, load balancer'ın şifreli bağlantıyı çözmeden backend'e ilettiği ve TLS termination işleminin backend üzerinde yapıldığı modeldir.
Load balancer DDoS koruması sağlar mı?
Load balancer belirli trafik artışlarını backend'lere dağıtabilir ancak kapsamlı DDoS savunması için CDN, network mitigation, rate limiting, WAF ve ek güvenlik katmanları gerekebilir.
Load balancer ile CDN farkı nedir?
Load balancer backend kaynaklar arasında trafik dağıtırken CDN içeriği dağıtık edge lokasyonlarından kullanıcıya yakın biçimde sunmaya ve origin yükünü azaltmaya odaklanır.
Load balancer ile firewall aynı şey midir?
Hayır. Firewall trafiğin güvenlik politikalarına göre geçip geçemeyeceğini belirler. Load balancer izin verilen trafiğin hangi backend'e yönlendirileceğini belirler.
Load balancer ile API Gateway farkı nedir?
Load balancer ağırlıklı olarak trafik dağıtımı ve availability sağlar. API Gateway ise authentication, rate limiting, API policy ve lifecycle yönetimi gibi application-level fonksiyonlara odaklanır.
Load balancer yüksek erişilebilirlik sağlar mı?
Load balancer birden fazla backend arasında failover sağlayarak yüksek erişilebilirliğe katkı verir ancak load balancer katmanının kendisinin de yedeklenmesi gerekir.
Kubernetes load balancer kullanır mı?
Evet. Kubernetes Service kaynakları üzerinden cluster içi trafik dağıtımı yapılabilir ve desteklenen altyapılarda Service type LoadBalancer kullanılarak harici load balancer entegrasyonu kurulabilir.
Küçük bir web sitesi için load balancer gerekli midir?
Her zaman değil. Tek sunucunun kapasitesi ve kabul edilebilir kesinti süresi yeterliyse ek karmaşıklık gereksiz olabilir. Yüksek availability veya büyüme ihtiyacı oluştuğunda load balancing değerlendirilmelidir.
Kaç sunucudan itibaren load balancer gerekir?
Sabit bir sayı yoktur. İki backend bile kesinti toleransı düşük kritik bir uygulamada load balancer kullanımını anlamlı hale getirebilir.
Ixpanse load balancing mimarisini nasıl destekler?
Ixpanse, Private Cloud, Colocation, Ankara IX, Managed Services ve DRaaS gibi altyapı ve operasyon katmanlarıyla load balancing kullanılan yüksek erişilebilir uygulama mimarilerinin compute, connectivity, monitoring ve iş sürekliliği gereksinimlerini destekler.