Cloud Computing

Windows Azure Network ve NLB Kullanımı

 

Bu makalemizin içeriğinde birden fazla terime değinecek olmamız ve örnek bir senaryoya göre ilerleyecek olmamızdan dolayı başlığı atmakta biraz zorlandım. Aşağıdaki resimdeki örnekte olduğu gibi bir yapıyı oluşturma adımlarına makalemizde yer vereceğiz.

clip_image002

Şeklimizde görüldüğü gibi Bulut üzerinde iki adet web sunucumuz ve bu sunucuların önünde bir Load Balancer var. Biz bir web sitesine sürekli erişim sağlama ve olağanüstü durumda sorun yaşanmaması için yedekli bir yapıyı konu alan örneğimizi bulut üzerinde gerçekleştireceğiz. Windows Azure ne işe yarar, Windows Azure üzerinde nasıl Hesap oluşturulur ve Windows Azure üzerinde nasıl sanal makine oluşturulur gibi konulara portalımızda ki makale ve seri webcastlar ile yanıt vermiş durumdayız. Biz burada biraz daha Network, LoadBalancer, Farm oluşturma, Yedekli yapı kurma gibi konulara eğileceğiz. Makalemizin ilerleyen adımlarında açıklama yapılması gereken konularda açıklama yaparak ilerleyeceğim.

Yukarıdaki yapıyı oluşturmak için adım adım ilerleyip bu adımların sonunda bu yapıyı elde etmek durumundayız. Şimdi biz ilk olarak Network kısmına giriş yapalım. Azure üzerinde oluşturacağınız sanal makinalara ip vermek zorunluluğumuz yok. Azure normalde her makineye local ve dışarıdan erişim sağlamak adına global ip verip bizim işlerimizi yapmamıza olanak sağlıyor. Biz şeklimize bakacak olursak birbiriyle load balance yapacak aynı ortamda olacak ve birbiri ile konuşacak bir yapı kuracağız. Bu nedenle networkten alınacak ipye kadar kendim sınırları belirlemek istiyorum. Ayrıca bu şekilde Sanal makinelerin belirlediğimiz bir ip havuzundan çalışmasının nasıl gerçekleşeceğine de değinmiş olacağız.

Login işleminden sonra “Network” menüsüne giriş yapalım. Bu ekranda yer alan “CREATE A VIRTUAL NETWORK” linkine tıklayalım.

clip_image004

Açılan ekranda networkümüz için bir isim vermemiz gerekmektedir. İsim verildikten sonra bulutta muhafaza edileceği bölgeyi seçmemiz gerekmektedir. Bu seçimi de yaptıktan sonra ortamımız daha önce hiçbir işlem yapılmamış olduğu için temiz bir ortam ve bizimde bir Affinity Group oluşturmamız gerekmekte ve bu affinity groupa isim vermemiz gerekmektedir. Bu kısmı tamamlamadan önce affinity group nedir bunu biraz açmak istiyorum.

Affinity Group : Windows Azure ortamında birlikte çalışması gereken sanal sunucuların performansını arttırmak ve birbirleri ile hızlı iletişim kurması adına aynı datacenter üzerinde bir gruplama yapmaktır. Bizde örneğimizde iki adet web sunucusu arasında yük dengelemesi yapacak olmamız ve yüksek erişilebilirlik sağlayacağımız için bir affinity group tanımlaması yapıyoruz.

Bu işlemlerden sonra bir sonraki ekrana ilerleyelim.

clip_image006

Network ismi verip bir affinity group tanımlaması yaptığımıza göre artık bir ip ve subnet aralığı belirlememiz gerekmektedir. Gerekli tanımlamayı yapalım.

clip_image008

Bizim havuzumuz 10.0.0.0 olan networkten dağıtsın ve çok geniş alan dağıtmasın bu nedenle 10.0.0.0/29 olan blok bize yeterli olacaktır. Bu ekranda yapılan seçime göre sizin kaç ip’ye sahip olup bu ipleri dağıtabileceğiniz online olarak hesaplanıp karşınıza getirilmektedir. Bu ekranda DNS tanımlama imkânına sahibiz.

Azure üzerinde otomatik olarak Dns sunucuları belirlenip buradan isim çözümleme hizmeti almamız sağlanmaktadır. Ben burada bir sanal makine oluşturacağım oradan DNS hizmeti vereceğim veya Google Dns kullanacağım gibi değişik yapılanmalara girmeniz durumunda buradaki DNS kısmında tanımlayabilirsiniz. Bu işlemi sonradan network kısmına giriş yaparak değişiklik yapmak yolu ile sonradan da yapabilirsiniz. ikonuna tıklayarak network oluşturma işlemimizi tamamlayalım.

clip_image010

Ekranımızda görüldüğü gibi Web-Affinity isimli Affinity gruba dâhil olan Web-Network isminde bir network yapımız oluşturuldu.

clip_image012

Affinity Group nedir öğrendik ve oluşturduk. Bu aşamadan sonra storage account oluşturmak durumundayız. Normalde bir sanal makine oluşturduğumuzda bir storage account tanımlaması yapmamışsak otomatik olarak sanal makine bir storage accountuna atanmaktadır. Biz bir account oluşturursak makinalarımızı direk olarak burada oluşturma imkânına sahibiz. Bu hesapların birden fazla yöneticisi olan yapılarda yetkilendirilme açısından sağladığı kolaylıkta önemlidir.

Storage Account: Windows Azure platformu temel olarak bize sunucu ve yer sağlayan bulut bilişim hizmetidir. Bu hizmet temel olarak hosted services ve storage sunmaktadır. Storage account’ da azure platformu üzerinden size sunulan veri alanlarını yönetmek için kullandığınız hesaptır. Çünkü sistem size birden çok role sunmaktadır.

Storage Account oluşturmak için Storage tabına gelelim ve açılan ekranda “CREATE STORAGE ACCOUNT” linkine tıklayalım.

clip_image014

Açılan ekranda storage account hesabımıza bir url belirleyelim. Bu url ile erişim sağlayabiliriz. Bunun için Microsoft tarafından geliştirilen Azure Storage Explorer yazılımını ücretsiz olarak kullanabiliriz. Bu program ile birlikte VHD disklerimize erişebilir, download edebilir, silebilir veya farklı işlemler gerçekleştirebiliriz. Dilersek bu accountu bir affinity gruba bağlayabiliriz. Bizim bir Affinity group tanımlamamız olduğu için bu gruba bağlıyoruz. Biz testimizde aynı affinity group ve network ortamını kullanıyoruz. Fakat farklı bölgeleri kapsayan bir cluster yapımız olsaydı “Enable GEo-Replication” seçeneği işaretli durumda olsa oluşacak bir sorunda farklı bir ortamda sanal makinelerimiz ve datalarımız ayağa kalkacaktı. Bu seçeneği de açıklamış olduk.

clip_image016

Şu anda Storage Account oluşmuş durumda.

clip_image018

Kendimize özel olarak bir network kullanacağımız için bu tanımlamayı yaptık, bu işlem sırasında makineleri aynı kabin içinde tutup hızlı iletişim sağlaması için aynı affinity group içerisine dâhil ettik. Sonrasında makinelerin kontrolünü rahat sağlamak için storage account tanımladık. Sıra geldi sanal makine oluşturma işlemine. Bu işlem için “VIRTUAL MACHINES” tabına gelelim ve “CREATE VIRTUAL MACHINE” linkine tıklayalım.

clip_image020

Karşımıza gelen ekrandaki bilgileri doldurarak ve sonrasında “CREATE A VIRTUAL MACHINE” hızlı bir sanal makine oluşturma imkânına sahibiz. Biz seçenekleri biraz daha özelleştirip irdeleyeceğimiz için From Gallerylinkine tıklayacağız.

clip_image022

Öncelikle 1. Ekranda bizden kurulacak olan işletim sistemini seçmemiz beklenmektedir. Gördüğünüz gibi platformda çok sayıda Microsoft ve Linux uygulamasını barındıran sanal makine şablonları var. Bizde burası için şablon ekleyerek kendi şablonumuzu kullanma imkânına sahibiz. Biz Server 2012 Datacenter işletim sistemini seçelim ve sonrasında à ok işaretini tıklayalım.

clip_image024

Sanal makinemize kurulacak olan işletim sistemini seçtikten sonraki ekranımızda kurulaca olan versiyonun tarihini seçebiliriz biz burayı varsayılan değerde bırakıyoruz. Sanal makinemiz için bir isim belirliyoruz. Biz iki serverleden oluşan NLB ve IIS cluster  yapacağımız için bu serverimize “webserver001” isimini veriyoruz.

Sistem administrator hesabı yerine bizden bir username belirlememizi istiyor. Sistem kurulu hale gelince bu ooluşturulan user Admin hakları ile sistem üzerinde işlem yapmaya başlıyor. User name ismini doldurduktan sonra bu usere complex bir parola belirliyoruz. Bu ekrandaki işlemleride tamamladığımıza göre bir sonraki adıma geçebiliriz. à ikonu ile sonraki ekrana ilerleyelim ve makinamızı yapılandırmaya devam edelim.

clip_image026

Daha önce bir servisimiz olmadığı için bu işlem sırasında otomatik bir cloud servis oluşturulacak. Makinamıza uzaktan erişebilmek adına bir Dns Name vermemiz gerekiyor. Bu Azure üzerinde benzersiz bir isim olmalıdır. Biz webserver001 ismini veriyoruz. Uzak erişimle bu isimden sistemimize bağlanabiliriz.

Network olarak sistemin otomatik network vermesini isteyebilirdik biz bunu istemediğimiz için makalemizin başında anlattığımız ve oluşturduğumuz networkü yani “Web Newtwork’ü” seçiyoruz. Bu sayede bizim belirlediğimiz aralıktan otomatik ip alacak.

Storage olarak oluşturulacak olan iki web serverin birbiri ile hızlı iletişime geçmesi adına oluşturduğumuz “webstorage005” isimli storage seçimini yapıyoruz.

Availability Set: Makinalarımızdan birinde bir sorun olması durumunda hizmetin kesilmemesi adına yapılacak olan sistem oluşturma yapısına verilecek olan isimdir. Bu işlemi biraz daha açmamız gerekmektedir dilerseniz bunu şekil ile inceleyerek biraz daha derinleştirelim.

Anlatımımıza şekil üzerinden devam ederek biraz daha geniş açıklama yapmış olalım.

clip_image028

Yukarıdaki şekil üzerinde göze batan iki terim bulunmaktadır. Öncelikle bunları ele alalım.

Fault Domain :Şekle bakacak olursak Sunucuların tutulduğu alan farklı rack kabinler üzerinde ise bu fault domain olarak adlandırılır. Rack üzerinde oluşacak donanımsal veya yazılımsal bir sorunda eğer arada bir availablity set yapısı var ise  ve en az iki sanal makine ile yapı meydana getirilmiş ise sistem sorun olmadan çalışmasını otomatik olarak diğer rack sürdürecektir.

Update Domain: Sistem üzerinde yapılacak olan bir yama v.s. güncellemesinden dolayı uygulamanın kesilmemesi adına sistem otomatik olarak şekildeki gibi sanal makinanın çalışmasını diğer müsait olan kısma kaydıracak ve sistemin aksamasının önü kesilecektir. Böylece dışarıdan gelen isteklerde bir kesinti olmadan bu istekler yanıtlanacak ve sistemin sürekliliği sağlanacaktır.

Evet bu işlemlerden sonra à işareti ile son kısma ilerleyebiliriz.

 clip_image030

Bu ekranımızda ise sistemimize uzaktan erişim için kullanılan portlar belirlenmektedir. Şu anda powershell ve rdp için standart portlar açık dıurumdadır. Bunları özelleştirebilir ve farklı uygulamalar için farklı portlar belirleyebiliriz. Biz bu şekilde bırakıp ile sanal makine oluşturmayı tamamlıyoruz.

clip_image032

Sanal makinamız oluşturulmaya başlandı.

clip_image034

Bu makinamız oluşturulurken şeklimizde yer alan senaryo için 2. Sanal makinamızı da oluşturmaya başlayabiliriz. Bundan sonraki sanal makine oluşturma adımları aynı olduğu için çok az açıklama yapacağım gerekli yerlerde bilgilendirme yapıyor olacağım.

clip_image036

Sanal makinamıza kurulacak olan işletim sistemini seçiyoruz. Diğer makine ile aynı özellikte olması için “Windows Server 2012 Datacenter” işletim sistemini seçip ilerliyoruz.

clip_image038

Bu makinamız 2. Makinamız olduğu için ismini “webserver002” olarak verip gerekli user tanımlamasını yapıp şifresini girerek bir sonraki adıma ilerliyoruz.

clip_image040

Cloud service olarak diğer sanal makinamız ile aynı servisi kullanacağımız için “webserver001” cloud servisini seçiyoruz. “webserver001” cloud servisini seçtiğimiz için otomatik olarak “web-network” seçimini yaptı. Bizi diğer sanal makinamız ile aynı network ve affinity group içine dâhil etti. Storage olarak makinamızı farklı storage üzerinde barındırabiliriz ama biz ortamımıza tek nokta üzerinden hâkim olmak için ““webstorage005”storage seçimini yapıyoruz. Diğer makinamızı oluştururken oluşturulan “ASWEBSERVER” isimli availability set seçimini yaparak bir sonraki ekrana ilerliyoruz.

clip_image042

Bu ekranımızda yine sanal makinamıza dışarıdan erişim sağlayacak programlar için port ayarları gösteriliyor. Bunları özelleştirebileceğimiz gibi farklı yazılımların kullanabilmesi için farklı port ataması da yapabilmekteyiz. Bu kısma şu an dokunmuyoruz ama biz yapımızda NLB uygulaması gerçekleştireceğimiz için iki sanal makinanın önceki tek bağlantı noktası ile aynı portu kullanamayacak olmasından dolayı bu ekranda bazı işlemler gerçekleştireceğiz. Bu işlemi ilerleyen adımlarda biraz daha açarak genişlemesine ele alacağız. ile işlemimizi tamamlayalım.

clip_image044

Şu anda bu sanal makinamızda oluşturuldu. Aşağıdaki ekranımızda görüldüğü üzere sanal makinalarımız farklı update ve fault domainler üzerine alındı. Yani bu senaryoda hizmet kesintisi olmadan çalışabilecek bir mimari meydana geldi.

clip_image046

Artık sanal makinalarımıza bağlanabiliriz. “Connect” butonuna tıklayalım. İnen dosyamızı uzak masaüstü bağlantısı ile birlikte açalım.

clip_image048

Açılan ekranımızda “Bağlan” butonuna tıklayalım.

clip_image050

Gerekli kullanıcı adı bilgilerini ve şifresini girip bağlantıyı sağlayalım. Burada sanal makinaya bağlanırken kullanıcı adımızın önüne tam dns ismimizi girmemiz gerekmektedir.

clip_image052

Gelen sertifika güvenlik uyarısını “Evet” ile geçelim.

clip_image054

Şu anda sanal makinamıza bağlandık. Bizim belirlemiş olduğumuz network bloğundan ip aldığını görebiliyoruz.

clip_image056

Diğer makinamız üzerinden bu makinamıza erişim sağlayabilmek adına gerekli firewall ayarlarını aktif edelim.

clip_image058

“Connect” ile diğer sanal makinamıza bağlanalım.

clip_image060

Bu makinamızın da Uzak Masaüstü Bağlantısı ile açılmasını sağlayalım.

clip_image062

Bağlan butonuna tıklayalım.

clip_image064

Gerekli dns ismi \ kullanıcı adı ve şifremizi girelim.

clip_image066

Gelen sertifika uyarısını “Evet” ile geçelim.

clip_image068

Bu sanal makinamızın da belirlediğimiz bloktan ip aldığını görebiliyoruz. Gerekli ağ geçidi bilgisi Azure platform tarafından otomatik olarak sağlandığı için nete erişim sorunu çekmiyoruz.

clip_image070

Webserver 001 makinamıza webserver002 makinamızdan sorunsuzca erişim sağlayabiliyoruz.

clip_image072

Webserver002 sanal makinamızdan webserver001 makinamıza da sorunsuzca erişim sağlayabiliyoruz.

clip_image074

Buraya kadar olan adımları sorunsuzca yapılandırdığımıza göre load balance ve yüksek erişilebilirlik testi için iki sanal makinamız üzerinde iis rollerini kuralım. Bu kısımları adım adım işlemeyeceğim. IIS konusunda bilgisi olmayan arkadaşlar portalımızda yer alan iis makalelerine aşağıdaki link üzerinden erişim sağlayabilirler.

http://www.cozumpark.com/blogs/windows_server/archive/2012/07/15/windows-server-2012-_31013101_s-8-kurulum-ve-zellikleri-b-l-m-_3101_.aspx

http://www.cozumpark.com/blogs/windows_server/archive/2012/07/29/windows-server-2012-_31013101_s-8-kurulum-ve-zellikleri-b-l-m-_31013101_.aspx

 

IIS rolümüzü seçip kurulumu tamamlayalım.

clip_image076

Webserver002 makinamız içinde aynı işlemi başlatalım. Kurulum adımları sonrasında iki sanal makinamızı yeniden başlatalım ve tekrardan bu makinalara uzak masaüstü bağlantısı yapalım.

clip_image078

Şu anda 10.0.0.4 olan makinamızda iis sorunsuzca çalıştı.

clip_image080

10.0.0.5 olan sanal makinamızda da sorun yok iis sorunsuzca açıldı. Buraya kadar olan kısımları tamamlamış olduk bundan sonraki adımlarda NLB kısmını aktif edeceğiz. Bu işlem sırasında testin olumlu olup olmadığını anlamak adına iis sayfalarının içine makinaların ip adreslerini ekliyorum durumu daha net gözlemleyebilelim.

clip_image082

Webserver001 isimli sanal makinamızın özelliklerine girelim ve “ENDPOINT” kısmını açalım. Burada Load-Balance kısmında bir yapılandırmanın olmadığını görmekteyiz. Biz iis üzerinde bir load balance işlemi yapacağımız için 80 portu için bu işlemi gerçekleştirmek durumundayız. Bu nedenle “Add” butonuna tıklayalım.

clip_image084

Açılan ekranımızda daha önce oluşturulmuş olan bir endpoint noktamız olmadığı için “ADD STANDALONE ENDPOINT” seçimini yapmak durumundayız. Bu işlemi tamamladıktan sonra diğer sanal makinamız üzerinde bu işlemi yapmayacak bu adımdan sonra bir endpoint noktamız oluşacağı için bu endpoint noktasını seçiyor olacağız. à tıklayarak ilerleyelim.

clip_image086

Burada kullanacak olduğumuz http 80 numaralı portu seçelim ve bu portu load balance yapımızda kullanacağımız için “CREATE A LOAD BALANCED SET” kutusunu işaretleyelim. Bu şekilde bir sanal NLB oluşturmuş oluyoruz ve diğer sanal makinamızı az sonra bu yapının içine alacağız.

clip_image088

“CREATE A LOAD BALANCED SET” seçimini yaptığımız için bu NLB yapısına ait nitelik ekranı geldi bu ekranda bu yapıya bir isim verip işlemimizi butonu ile tamamlıyoruz.

clip_image090

Şu anda webserver001 isimli makinamızda endpoint özelliklerine bakacak olursak 80 portunda bizim belirlemiş olduğumuz ismi WEBNLB olan Load Balancer’in aktif olduğunu görmekteyiz.

clip_image092

Bu işlemden sonra webserver002 isimli makinamızın da endpoint ekranında 80 portu olarak NLB olarak ayarladığımız WEBNLB mimarisini göstermemiz gerekmektedir. “ADD” butonuna tıklayalım.

clip_image094

Biz webserver001 makinamız için ENDPOINT yapısı oluşturmamız sebebi ile bu makinamızda bu endpoint yapısını seçebilmekteyiz. Seçimimizi yapıp sonraki ekrana geçebiliriz.

clip_image096

Bu ekranımızda butonu ile işlemlerimizi tamamlayabiliriz.

clip_image098

Şu anda webserver002 isimli sanal makinamız içinde WEBNLB isimli load balancer’in aktif olduğunu görebiliyoruz. Buraya kadar olan işlemlerimiz şu anda tamamlandı ve test aşamasına geldik.

clip_image100

Yukarıda bir kısımda iis makinalarımızda yer alan iis sayfalarında test işleminde yanılmamak adına ip adreslerini iis sayfası içerisine eklediğimizi belirtmiştik. Şu anda aşağıdaki webserver002 makinamız için oluşan durumu görebiliyoruz.

clip_image102

Webserver01 isimli sanal makinamızdaki iis sunucusu üzerinde yine aynı işlemi gerçekleştirdik.

clip_image104

Bizin NLB ismimiz webserver001.cloudapp.net olduğundan iki makinaya dns ismi veya ip üzerinden gitmek yerine NLB ismi üzerinden gidiyoruz. İlk açışımızda 10.0.0.5 ip adresine sahip sanal makinamız üzerinden bize yanıt verildi.

clip_image106

Diğer denememizde 10.0.0.4 sanal makinamızdan bize yanıt verildi.

clip_image108

Bu yapıda iis üzerindeki yüke göre NLB yapısı bizi durumu müsait olan makinaya yönlendiriyor. Sanal makinalarımızdan birinde sorun olması durumunda NLB bizi hizmet kesintisine uğratmadan diğer sanal makine üzerindeki IIS platformuna gönderecektir.

Bu makalemizde azure üzerinde yer alan birden fazla farklı bileşene aynı anda bir örnek üzerinden yer vermeye ve kendimce sizlere anlatmaya çalıştım.

Umarım yararlı olmuştur. Bir başka makalede görüşmek dileği ile.

Rıza ŞAHAN

www.rizasahan.com

İlgili Makaleler

Bir yanıt yazın

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

Başa dön tuşu