Yük dengeleme nedir?
Yük dengeleme, ağ trafiğini bir uygulamayı destekleyen bir kaynak havuzuna eşit olarak dağıtma yöntemidir. Modern uygulamalar milyonlarca kullanıcıyı eş zamanlı olarak işlemeli ve doğru metni, videoları, görüntüleri ve diğer verileri her kullanıcıya hızlı ve güvenilir bir şekilde döndürmelidir. Bu kadar yüksek miktarda trafiği işlemek için çoğu uygulamanın aralarında yinelenen veri bulunan birçok kaynak sunucusu vardır. Yük dengeleyici, kullanıcı ile sunucu grubu arasında görünmez bir kolaylaştırıcı görevi gören ve tüm kaynak sunucularının eşit şekilde kullanılmasını sağlayan bir cihazdır.
Yük dengelemenin avantajları nelerdir?
Yük dengeleme, uygulama sunucuları ile ziyaretçileri veya istemcileri arasındaki internet trafiğini yönlendirir ve kontrol eder. Sonuç olarak, bir uygulamanın erişilebilirliğini, ölçeklenebilirliğini, güvenliğini ve performansını iyileştirir.
Uygulama erişilebilirliği
Sunucu arızası veya bakımı, uygulamanın kapalı kalma süresini artırarak uygulamanızı ziyaretçiler için kullanılamaz hâle getirebilir. Yük dengeleyiciler, sunucu sorunlarını otomatik olarak tespit ederek ve istemci trafiğini mevcut sunuculara yönlendirerek sistemlerinizin hata toleransını artırır. Yük dengelemeyi kullanarak şu görevleri kolaylaştırabilirsiniz:
- Uygulama kesinti süresi olmadan uygulama sunucusu bakımını veya yükseltmelerini yürütme
- Yedekleme sitelerine otomatik olağanüstü durum kurtarma sağlama
- Durum denetimleri yapma ve kesinti sürelerine neden olabilecek sorunları önleme
Uygulama ölçeklenebilirliği
Ağ trafiğini birden fazla sunucu arasında akıllıca yönlendirmek için yük dengeleyicileri kullanabilirsiniz. Yük dengeleme aşağıdakileri gerçekleştirdiği için uygulamalarınız binlerce istemci isteğini işleyebilir:
- Herhangi bir sunucuda trafik darboğazlarını önler
- Gerekirse farklı sunucular ekleyebilmeniz veya kaldırabilmeniz için uygulama trafiğini tahmin eder
- Güvenle ölçekleyebilmeniz için sisteminize yedeklilik ekler
Uygulama güvenliği
Yük dengeleyiciler, internet uygulamalarınıza başka bir güvenlik katmanı eklemek için yerleşik güvenlik özellikleriyle birlikte gelir. Bunlar, saldırganların bir uygulama sunucusunu, sunucu arızasına neden olan milyonlarca eş zamanlı istekle doldurduğu dağıtılmış hizmet engelleme saldırılarıyla başa çıkmak için yararlı birer araçtır. Yük dengeleyiciler aşağıdakileri de yapabilir:
- Trafiği izleme ve kötü amaçlı içeriği engelleme
- Etkiyi en aza indirmek için saldırı trafiğini otomatik olarak birden fazla arka uç sunucusuna yönlendirme
- Ek güvenlik için trafiği bir grup ağ güvenlik duvarı üzerinden yönlendirme
Uygulama performansı
Yük dengeleyiciler, yanıt süresini artırarak ve ağ gecikme süresini azaltarak uygulama performansını iyileştirir. Aşağıdakiler gibi birkaç kritik görevi yerine getirirler:
- Uygulama performansını artırmak için yükü sunucular arasında eşit olarak dağıtma
- Gecikme süresini azaltmak için istemci isteklerini coğrafi olarak daha yakın bir sunucuya yönlendirme
- Fiziksel ve sanal bilgi işlem kaynaklarının güvenilirliğini ve performansını sağlama
Yük dengeleme algoritmaları nelerdir?
Yük dengeleme algoritması, farklı istemci isteklerinin her biri için en iyi sunucuyu belirlemek üzere yük dengeleyicinin izlediği kurallar kümesidir. Yük dengeleme algoritmaları iki ana kategoriye ayrılır.
Statik yük dengeleme
Statik yük dengeleme algoritmaları sabit kurallara uyar ve mevcut sunucu durumundan bağımsızdır. Aşağıda statik yük dengelemeye birkaç örnek verilmiştir.
Gidiş-dönüş yöntemi
Sunucular, istemciye istekleri nereye göndereceğini söyleyen IP adreslerine sahiptir. IP adresi hatırlanması zor olan uzun bir sayıdır. Etki Alanı Adı Sistemi, bu durumu kolaylaştırmak için web sitesi adlarını sunucularla eşler. Tarayıcınıza thinkwithwp.com yazdığınızda, istek önce IP adresimizi tarayıcınıza döndüren ad sunucumuza gider.
Gidiş-dönüş yönteminde, yetkili bir ad sunucusu, özel donanım veya yazılım yerine yük dengelemeyi gerçekleştirir. Ad sunucusu, sunucu grubundaki farklı sunucuların IP adreslerini sırayla veya gidiş-dönüş tarzında döndürür.
Ağırlıklı gidiş-dönüş yöntemi
Ağırlıklı gidiş-dönüş yük dengelemede, önceliklerine veya kapasitelerine göre her sunucuya farklı ağırlıklar atayabilirsiniz. Daha yüksek ağırlıklara sahip sunucular, ad sunucusundan daha fazla gelen uygulama trafiği alacaktır.
IP karma yöntemi
IP karma yönteminde, yük dengeleyici, istemci IP adresinde karma olarak adlandırılan matematiksel bir hesaplama gerçekleştirir. İstemci IP adresini bir sayıya dönüştürür, ardından bu sayı ayrı sunuculara eşlenir.
Dinamik yük dengeleme
Dinamik yük dengeleme algoritmaları, trafiği dağıtmadan önce sunucuların mevcut durumunu inceler. Aşağıda dinamik yük dengeleme algoritmalarına birkaç örnek verilmiştir.
En az bağlantı yöntemi
Bağlantı, istemci ve sunucu arasındaki açık bir iletişim kanalıdır. İstemci sunucuya ilk isteği gönderdiğinde, kimlik doğrulaması yapar ve birbirleri arasında etkin bir bağlantı kurarlar. En az bağlantı yönteminde, yük dengeleyici hangi sunucuların en az etkin bağlantıya sahip olduğunu kontrol eder ve bu sunuculara trafik gönderir. Bu yöntem, tüm bağlantıların tüm sunucular için eşit işlem gücü gerektirdiğini varsayar.
Ağırlıklı en az bağlantı yöntemi
Ağırlıklı en az bağlantı algoritmaları, bazı sunucuların diğerlerinden daha fazla etkin bağlantıyı işleyebileceğini varsayar. Bu nedenle, her sunucuya farklı ağırlıklar veya kapasiteler atayabilirsiniz ve yük dengeleyici, yeni istemci isteklerini kapasiteye göre en az bağlantıya sahip sunucuya gönderir.
En az yanıt süresi yöntemi
Yanıt süresi, sunucunun gelen istekleri işlemesi ve yanıt göndermesi için geçen toplam süredir. En az yanıt süresi yöntemi, en iyi sunucuyu belirlemek için sunucu yanıt süresini ve etkin bağlantıları birleştirir. Yük dengeleyiciler, tüm kullanıcılar için daha hızlı hizmet sağlamak üzere bu algoritmayı kullanır.
Kaynak tabanlı yöntem
Kaynak tabanlı yöntemde, yük dengeleyiciler geçerli sunucu yükünü analiz ederek trafiği dağıtır. Aracı adı verilen özel yazılım her sunucuda çalışır ve bilgi işlem kapasitesi ve bellek gibi sunucu kaynaklarının kullanımını hesaplar. Ardından, yük dengeleyici, trafiği ilgili sunucuya dağıtmadan önce boşta yeterli kaynak olup olmadığını öğrenmek için aracıyı kontrol eder.
Yük dengeleme nasıl çalışır?
Şirketlerin uygulamaları genellikle birden fazla sunucuda çalışır. Böyle bir sunucu düzenlemesine sunucu grubu denir. Uygulamaya yapılan kullanıcı istekleri önce yük dengeleyiciye gider. Yük dengeleyici daha sonra her isteği, işlemek üzere en uygun sunucu grubundaki tek bir sunucuya yönlendirir.
Yük dengeleme, bir restoranda bir yönetici tarafından yapılan iş gibidir. Beş garsonlu bir restoran düşünün. Müşterilerin garsonlarını seçmelerine izin verilseydi bir veya iki garson, diğerleri boştayken aşırı iş yükü altında kalabilirdi. Bu durumdan kaçınmak için restoran müdürü, müşterileri kendilerine hizmet etmek için en uygun garsonlara atar.
Yük dengeleme türleri nelerdir?
Yük dengelemeyi, trafiği yeniden yönlendirmek için istemci isteğinde yük dengeleyicinin kontrol ettiği unsura bağlı olarak üç ana kategoriye ayırabiliriz.
Uygulama yük dengelemesi
Karmaşık modern uygulamalar, tek bir uygulama işlevine ayrılmış birden fazla sunucuya sahip çeşitli sunucu gruplarına sahiptir. Uygulama yük dengeleyicileri, trafiği yönlendirmek için HTTP üst bilgileri veya SSL oturum kimlikleri gibi istek içeriklerine bakar.
Örneğin, bir e-ticaret uygulamasının bir ürün dizini, alışveriş sepeti ve ödeme işlevleri vardır. Uygulama yük dengeleyicisi, görüntü ve video içeren ancak açık bağlantıları sürdürmesi gerekmeyen sunuculara ürünlere göz atma istekleri gönderir. Karşılaştırma yaparak, birçok müşteri bağlantısını sürdürebilen ve sepet verilerini uzun süre kaydedebilen sunuculara alışveriş sepeti istekleri gönderir.
Ağ yük dengelemesi
Ağ yük dengeleyicileri, trafiği en iyi şekilde yönlendirmek için IP adreslerini ve diğer ağ bilgilerini inceler. Uygulama trafiğinin kaynağını izler ve birkaç sunucuya bir statik IP adresi atayabilirler. Ağ yük dengeleyicileri, sunucu yükünü dengelemek için daha önce açıklanan statik ve dinamik yük dengeleme algoritmalarını kullanır.
Küresel sunucu yük dengelemesi
Küresel sunucu yük dengelemesi, coğrafi olarak dağıtılmış birkaç sunucuda gerçekleşir. Örneğin, şirketler birden fazla veri merkezinde, farklı ülkelerde ve dünya çapında üçüncü taraf bulut sağlayıcılarında sunuculara sahip olabilir. Bu durumda, yerel yük dengeleyiciler bir bölge veya alan içindeki uygulama yükünü yönetir. Trafiği, coğrafi olarak istemciye daha yakın olan bir sunucu hedefine yönlendirmeye çalışırlar. Trafiği yalnızca sunucu arızası durumunda istemcinin coğrafi bölgesi dışındaki sunuculara yönlendirebilirler.
DNS yük dengelemesi
DNS yük dengelemesinde, ağ isteklerini etki alanınızdaki bir kaynak havuzuna yönlendirmek için etki alanınızı yapılandırırsınız. Bir etki alanı; bir web sitesi, posta sistemi, baskı sunucusu veya internet üzerinden erişilebilir hâle getirilen başka bir hizmete karşılık gelebilir. DNS yük dengelemesi, küresel çapta dağıtılmış bir kaynak havuzunda uygulama erişilebilirliğini korumak ve ağ trafiğini dengelemek için faydalıdır.
Yük dengeleme teknolojisi türleri nelerdir?
Yük dengeleyiciler iki türdedir: donanım yük dengeleyicisi ve yazılım yük dengeleyicisi.
Donanım yük dengeleyicileri
Donanım tabanlı yük dengeleyici, gigabaytlarca trafiği güvenli bir şekilde işleyebilen ve yüzlerce farklı sunucuya yönlendirebilen bir donanım cihazıdır. Bunu veri merkezlerinizde depolayabilir ve sanallaştırmayı kullanarak merkezi olarak yönetebileceğiniz birden fazla dijital veya sanal yük dengeleyici oluşturabilirsiniz.
Yazılım yük dengeleyicileri
Yazılım tabanlı yük dengeleyiciler, tüm yük dengeleme işlevlerini yerine getiren uygulamalardır. Bunları herhangi bir sunucuya yükleyebilir veya tam olarak yönetilen bir üçüncü taraf hizmeti olarak erişebilirsiniz.
Donanım dengeleyicilerinin yazılım yük dengeleyicileriyle karşılaştırılması
Donanım yük dengeleyicileri başlangıç yatırımı, yapılandırma ve sürekli bakım gerektirir. Özellikle yalnızca yoğun trafik artışlarını gidermek için bir tane satın alırsanız bunları tam kapasitede kullanmayabilirsiniz. Trafik hacmi aniden mevcut kapasitesinin ötesinde artarsa başka bir yük dengeleyici satın alıp kurana kadar bu durum kullanıcıları etkileyecektir.
Buna karşılık, yazılım tabanlı yük dengeleyiciler çok daha esnektir. Ölçeği kolayca azaltıp artırmak mümkündür ve modern bulut bilgi işlem ortamlarıyla daha uyumludur. Ayrıca kurulumu, yönetimi ve zaman içinde kullanımı daha az maliyetlidir.
AWS, yük dengeleme konusunda nasıl yardımcı olabilir?
Esnek Yük Dengeleme (ELB), gelen uygulama trafiğini AWS'de ve şirket içi kaynaklarda birden fazla hedefe ve sanal cihaza otomatik olarak dağıtan, tam olarak yönetilen bir yük dengeleme hizmetidir. Modern uygulamaları, karmaşık yapılandırmalar veya API ağ geçitleri olmadan isteği karşılayacak şekilde ölçeklendirebilirsiniz. ELB'yi kullanarak dört farklı türde yazılım yük dengeleyicisi kurabilirsiniz.
-
Uygulama Yük Dengeleyicisi, HTTP tabanlı istekler için trafiği yönlendirir.
-
Ağ Yük Dengeleyicisi, trafiği IP adreslerine göre yönlendirir. TCP ve Kullanıcı Veri Birimi Protokolü (UDP) tabanlı istekleri dengelemek için idealdir.
-
Ağ Geçidi Yük Dengeleyicisi, trafiği üçüncü taraf sanal cihazlara yönlendirir. Ağ güvenlik duvarı gibi üçüncü taraf bir cihazı ağ trafiğinize ölçeklenebilir ve yönetimi kolay bir şekilde eklemek için idealdir.
-
Klasik Yük Dengeleyici, trafiği diğer müşterilerle paylaştığınız tek, düz bir ağ olan Amazon EC2-Classic ağındaki uygulamalara yönlendirir.
Yük dengeleyiciyi gereksinimlerinize göre seçebilirsiniz. Örneğin, küresel bir böcek ilaçlama markası olan Terminix, %300 daha fazla iş hacmini idare etmek için Ağ Geçidi Yük Dengeleyicisi'ni kullanıyor. Spor yayınları için yapay zekâ temelli izleme teknolojisi sağlayan Second Spectrum, barındırma maliyetlerini %90 oranında azaltmak için AWS Load Balancer Controller'ı kullanıyor. Okullarda bilgisayar bilimlerine erişimi genişletmeyi hedefleyen kâr amacı gütmeyen bir kuruluş olan Code.org, çevrimiçi kodlama etkinlikleri sırasında trafikte %400 artışla etkin bir şekilde başa çıkmak için Uygulama Yük Dengeleyicisi'ni kullanıyor.
Hemen bir AWS hesabı oluşturarak yük dengelemeyi kullanmaya başlayın!