IIS Web Farm Load Balacing

Bugünlerde çok fazla karşılaştığım Web service kavramı üzerinde çalışırken, oluşturduğumuz Web Service hizmetini Publish etmenin ve bunu performanslı bir şekilde yerine getirmenin nasıl yapılacağına dair bir yazı paylaşayım istedim. Aşağıdaki yazıda Windows Server 2019 üzerinde IIS 10 kullanarak Web Farm Load Balancing nasıl yapılır, Session sunucular nasıl konumlanır ve bence en önemli konu olan Session State kavramı nedir bunlardan bahsetmek istiyorum. IIS Web Farm

Öncelikle topolojiden bahsedelim sonrasında topolojiyi simüle ederken kavramları açıklayalım istiyorum.

Yazıda kullanacağımız topoloji için 3 adet Windows server üzerinde IIS 10 kurulu, sunuculardan 1 tanesi ARR server rolü ile Load Balancing yani Manager rolü ile çalışırken diğer 2 sunucu da Session Host olarak yani servisleri yayınlamak için kullanılacak.

  1. Windows Server (ARR Server)
  2. Windows Server (Session)
  3. Windows Server (Session)

Kurulumlar ***

  1. IIS 10 Server Role (ARR Server)

Öncelikle Windows Server 2019 üzerine IIS 10 kurulumu yaparak başlıyoruz. Bunun için öncelikle;

Server Manager üzerinde Add roles and features ile başlıyoruz.

Sizin bu alanda birden fazla içerik görünecektir. Ben daha önce kurmuş olduğum için sadece yeni kurmak istediğim bir feature tanımı görünmektedir.

ARR 3.0 Kurulumu ***

Application Request Routing : The Official Microsoft IIS Site linki üzerinden ARR 3.0 uygulamasını download edip kurulumu gerçekleştirelim.

Bu ekranı da Next butonları ile tamamlayalım. Akabinde Application Request Routing içinde kullanacağımız URL Rewrite için URL Rewrite : The Official Microsoft IIS Site sayfasından URL Rewrite Module 2.1 modülünü yükleyelim.

Bu ekranları da Next butonu ile tamamlayalım.

Kurulumlar tamamlandığında yukarıdaki gibi iki tane daha modülün IIS Server içerisinde eklendiğini göreceksiniz. Ayrıca sol taraftaki menü altında Server Farms alanını da göreceksiniz .Kurulumlar bitti şimdi de konfigürasyon aşamasına geçelim.

NO: IIS server kurulumlarının diğer IIS Server olarak kullanılacak olan serverlar üzerinde de yüklenmesi gereklidir. Modüllerin yüklenmesine ihtiyacınız yoktur.

Konfigürasyon ***

Server Farm üzerinde sağ tıklayıp Create Server Farm seçeneği ile yeni bir Server Farm oluşturalım.

Session host olarak kullanacağımız Web Server sunucularının bilgilerini yazıp cluster içerisine ekliyoruz ve süreci tamamlıyoruz.

Bu en alttaki ekranda da görüldüğü gibi bir ekran olmalıdır. Web Server Farm konteyner ını oluşturduk. Artık otomatik olarak ARR server üzerine gelen istekler otomatik olarak Session host olan arkadaki web server olarak kullanılacak olan sunuculara yönlendirilecektir.

Artık Farm yapısı oluştuğundan birazda bu yapı içerisinde kullanacağımız kavramlar hakkında bilgi verelim. İlgili kurulumlar sonrasında aşağıdaki gibi bir ekranda Farm yapısı içinde kullanacağımız modüller mevcuttur.

Bunların haricinde de aşağıdaki gibi URL Rewrite modülü ve Session State modülleri kullanılmaktadır.

Caching : içeriklerin caching süresi ve nerede nasıl tutulacağını gösterir modüldür.

Health Test : Gerekli olan testlerin yapılması için kullanılan modül.

Load Balance : Sunucular arasında Load Balacing sürecinin nasıl işleneceğinin tanımlandığını gösterir ekrandır.

Monitoring and Management : Session Host sunuculara giden trafiği ve gelen Request sayıları ile alakalı bilgileri gösterir ekrandır.

Proxy : Proxy servis için gelen trafiği arkasındaki sunuculara dağıtarak web trafiğini hızlandıran bir kavramdır. Aşağıdaki gibi kullanabilirsiniz.

Routing Rules : Yönlendirmeler yapmak istendiğinde kullanılan alandır. Fakat Routing Rules alanı daha çok genelleme üzere çalışır. /İmages/* altındaki resimleri /templates/* gibi yönlendir tarzı. Biz genelde URL Rewrite modülünü kullanır advanced olarak bu işi yaparız.

Server Affinity : Affinity genel anlamda Yakınlık, Benzeşme olarak çevrilebilir. Web server yapılarında Session State kavramı vardır. Session sürecini tüm sunucularda kullanabilmek amacı ile Session State ya da Affinity kavramı kullanılır. Affinity modülü, session ID alan client için aynı zaman da bir tane Cookie oluşturur ve client ortamına gönderir. Böylece client bu cookie ile tüm session host sunucularına gider ve aynı session ID ile oturumunu farklı sunuculara da taşımış olur.

Süreç sonrasında tüm isteklerin ARR Server üzerine gönderilmesi gerektiği unutulmamalıdır. Session State ve URL Rewrite kavramlarını da farklı bir yazıda görelim. Önemli kavramlar olduğu için yeni bir yazı daha yararlı olacaktır.

Author: idelibalta

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir