Load balancing nedir; Türkçe karşılığı yük dengeleme olan load balancing, gelen ağ trafiğini sunucular arasında paylaştırma işlemine verilen isimdir. Böylelikle iş yükünü birden fazla sunucuya dağıtarak sitelerin, uygulamaların ve diğer hizmetlerin performansını ve güvenliğini artırabilmektedir. Load balancing işlemi ile sisteme gelen kullanıcılar, sunucu grubu olarak adlandırılan sunucular arasında eşit veya belirli bir kural çerçevesinde dağıtılmaktadır. Uygulama ve veri tabanı sunucuları arasında gerçekleştirilebilen bu işlemlere ise load balancer adı verilmektedir.
Load balancing işleminin kullanılmadığı durumda tek bir sunucuya bağlantı gerçekleştirilmektedir. Eğer bağlanılan bu sunucu üzerinde bir sıkıntı oluşursa internet sitesine erişim sağlanamaz. Çok sayıda kişinin de internet sitesine erişim sağlaması durumunda da sorun yaşanabilmektedir.Böylece internet sitesinde meydana gelmesi muhtemel olan yavaşlamalar ile siteye erişim sağlanamamaktadır. Böyle durumların yaşanmaması için load balancing işleminin yapılması gereklidir.
Load Balancing ile Hangi Trafik Türleri Dengelenebilir?
Load balancerların dengeleme oluşturdukları trafik türleri 4 tanedir. Bu trafik türleri şunlardır:
- HTTP: HTTP dengeleme işleminde gelen istekler standart olan HTTP tekniklerine dayanarak yönlendirilmektedir.
- HTTPS: HTTPS dengeleme işlemlerinde ise aynı HTTP dengeleme işlemlerinde olduğu gibi süreç ilerler. İki dengeleme işlemlerindeki tek fark HTTPS işlemlerinde bulunan şifreleme sürecidir.
- TCP: TCP dengeleme işlemleri HTTP ve HTTPS kullanmayan uygulamalarda gerçekleşir.
- UDP: Yakın bir dönemde bazı load balancerlar tarafından DNS gibi UDP kullanan internet protokolleri için load balancing desteği eklendi.
Load Balancing Nasıl Çalışır?
Load balancing çalışma sistemi basit bir yapıya sahiptir. İki aşamadan oluşan çalışma sisteminde load balancing işleminin isteği sunucuya iletmesi iki aşamadan oluşmaktadır. İlk aşamada sunucuların isteğe uygun biçimde cevap verip veremeyeceklerinin kontrolü gerçekleşiyor. Daha sonrasında ise daha önceden belirlenen kurallar çerçevesinde iletim tamamlanarak sunucular arasından seçim yapılıyor.
Load Balancing Algoritmaları
Yük dengeleme algoritmaları, trafiğin hangi backend sunucusuna iletileceğini belirler. Bu noktada, en sık kullanılan algoritmalar şunlardır:
Round Robin: Sunucuların sıralı olarak seçildiği ve bu sıralamalar ile trafiğin belirlendiği algoritmalardır. Load balancer, bu algoritmada istek için listesindeki ilk sunucuyu seçer ve sıra ile listenin alt tarafına doğru devam eder. Daha sonra Load balancer listenin sonuna ulaştığında tekrar en başa dönerek işlemi tekrar eder.
Least Connection: Adından da anlaşılabileceği gibi, bu algoritmada load balancer en az bağlantıya sahip olan sunucuyu seçer. Trafiğin daha uzun oturumlar ile sonuçlandığı durumlarda least connection algoritması önerilir.
Source IP Hash: Bu algoritmada, load balancer istemcinin IP adresini, hangi sunucunun isteği alacağını belirlemek için kullanılmaktadır. Bu algoritma ile belirlenen bir ziyaretçinin sürekli olarak aynı sunucuya bağlanması sağlanabilmektedir
Load Balancing Neden Kullanılmalı?
Load balancing ile sunucu sürekliliği ve erişilebilirlik en üst noktaya çıkar. Bu sayede, sunucular her zaman kullanıcılar hazır bir şekilde olur. Aynı zamanda dönem bazlı yaşanabilecek trafik artışı durumlarında gecikme ve erişim problemleri yaşanmaz. Bu sayede kullanıcı deneyiminde gelişmeler gerçekleşir. Böylece kullanıcılar için en uygun uygulama ve sunuculara yönlendirme yapar.
Donanım Tabanlı Load Balancing
Gelenel olarak yüksek performanslı cihazlı olan donanım tabanlı load balancerlar, farklı uygulamalardan gelen büyük miktarlardaki trafiği son derece güvenli bir şekilde işler. Aynı zamanda yerleşik sanallaştırma özellikleri ile aynı donanım ile birçok load balancer kullanılabilmektedir. Ayrıca multi-tenant mimarilerde kullanımı daha esnek olur ve daha fazla izolasyon sağlar.
Yazılımsal Load Balancing
Yazılım tabanlı load balancerlar, hem donanımların yerini tutar hem de daha fazla işlevsellik ve esneklik sağlar. Çalışabildiği sunucular ise Hypervisor, container ve Linux bare-metal sunucularıdır. Özelleştirilmeyle birçok farklı kullanım senaryolarında kullanılabilmektedir. Donanımsal load balancerlara kıyasla, yazılımsal load balancerlar hem alandan hem de donanım giderlerinden tasarruf sağlar.
Load Balancing ve Güvenlik
Load balancerlar, bulut sistemlerinde üst düzey güvenlik sağlar. Aynı zamanda off -loading özellikleri sayesinde sunuculara yapılabilen DDoS saldırılarının önüne geçebilmektedir. Herhangi bir DDoS saldırısında, bulunan yük şirket sunucusundan bulut sunucusuna aktarılmaktadır. Günümüzde, birçok siber saldırı DDoS şeklinde yapılıyor ve bu saldırıların sayısı gün geçtikçe artıyor. DDoS saldırılarını önlemek için geliştirilen siber savunma donanımları oldukça pahalıdır. Off-load özellikleri ile yazılımsal load balancerlar oldukça verimli ve daha az maliyetli bir şekilde sunucu güvenliğini sağlar.
Load balancing nedir? bloğumuzu beğendiyseniz konuyla ilgili Statik IP Nedir? bloğumuzu okuyabilirsiniz.
HTTP, HTTPS, TCP, UDP protokolleri dengelenebilmektedir.
Evet, load balancer ile birçok DDoS saldırılarının önüne geçebilirsiniz.
Round robin, Least connection ve Source IP Hash load balancer algoritmaları arasında yer almaktadır.