ÇözümPark'a hoş geldiniz. Oturum Aç | Üye Ol
 
Ana Sayfa Makale Video Forum Dosyalar Etkinlik Hizmetlerimiz Biz Kimiz

Cloud Computing

Azure PowerShell ile Scale Set VM Oluşturma

Azure üzerinde neden scale set vm kullanmalıyız? Bu makalemize soru cümlesi ile başlamak istedim. Çünkü Azure üzerinde bir vm kurmak artık çok basit. Bu soruya en güzel cevap e-ticaret siteleri. E-ticaret sitelerinin belirli günlerde yani bu black Friday veya başka bir kampanya günlerinde e-ticaret sitesine yapılan yoğun giriş isteklerinden dolayı sistemin gelen isteklere geç cevap vermesi hatta bu istekleri bir süre sonra karşılayamaz olması durumundan sistemin tamamen erişilmez olması gibi sonuçlar doğurabilir.

Bu noktada Azure üzerinde scale sets vm konumlandırdığınızda vm ‘leri otomatik olarak yatay veya dikey şekilde ölçeklendirebiliyoruz. Bu ölçeklendirme yapılırken bu sunuculardaki yük dengeleme işlemlerini de Azure Load Balancer veya Application Gateway ile sağlayabiliyoruz.

Scale sets, aynı VM’ leri bir küme olarak dağıtmanızı ve yönetmenizi kolaylaştırır. Azure portalı, Azure PowerShell veya Azure CLI kullanarak Linux veya Windows sanal sunucuları için scale sets oluşturabilirsiniz. Bu makalemizde de Azure PowerShell ile scale set vm oluşturmayı göreceğiz.

Ayrıca scale set işlemlerini Python veya Node.js gibi SDK'larla veya doğrudan REST API kullanarak da oluşturabilir ve yönetebilirsiniz.

clip_image002

Resim 01

Genel itibariyle scale set vm’ leri ne amaçla kullanmamız gerektiğinden bahsettik. Artık işlemlere Azure PowerShell başlayabiliriz.

Login-AzureRmAccount

Komutu ile Azure aboneliğimizde owner yetkisine sahip olan bir kullanıcı hesabı ile giriş yapıyoruz.

clip_image003

Resim 02

Bende birden fazla abonelik olduğundan işlem yapacağım aboneliği seçmem gerekiyor. Bunun içinse mevcutta sahip olduğum tüm aboneliklerin listesini görmek için:

 

Get-AzureRmSubscription

Komutunu yazıyorum.

clip_image005

Resim 03

Abonelik listesi geldikten sonra hangi abonelik içerisinde çalışacaksam Select-AzureRmSubscription -SubscriptionName "Visual Studio Enterprise"

Komutunu yazarak, abonelik seçimimi gerçekleştiriyorum.

clip_image007

Resim 04

Artık seçmiş olduğumuz abonelik içerisinde çalışmaya hazırız.

Subsctiption id, resource group name, scale set name ve region değerlerini giriyoruz.

$mySubscriptionId = (Get-AzureRmSubscription)[2].Id

$myResourceGroup = "rg-vmss"

$myScaleSet = "utss"

$myLocation = "West Europe"

 

clip_image009

Resim 05

$vmcred = Get-Credential

Oluşturacağımız vm’ e ait login bilgilerini giriyoruz.

clip_image010

Resim 06

 

Sonrasında scale set vm’ imizi oluşturmak için aşağıdaki komut satırını çalıştırıyoruz.

 

New-AzureRmVmss -Credential $vmcred -ResourceGroupName $myResourceGroup -VMScaleSetName $myScaleSet -Location $myLocation -VirtualNetworkName "utvnet" -SubnetName "default" -PublicIpAddressName "utnlb01" -LoadBalancerName "utnlb"

 

Yaklaşık olarak 3 dakika içerisinde vm scale set kurulumumuz tamamlanıyor.

clip_image012

Resim 07

clip_image014

Resim 08

clip_image016

Resim 09

clip_image018

Resim 10

Scale set vm’ i oluşturma işlemi tamamlandı. Şimdi auto scale özelliğini aktif etmek için aşağıdaki komutu çalıştırıyoruz. Aşağıdaki komut içerisinde yeni bir auto scale kuralı oluşturarak, cpu kullanımı %70 olduğunda ve bu kullanım oranı 5 dakika boyunca devam ettiğinde scale set içerisindeki vm sayısını 3’e çıkarmak için gerekli olan ayarları gerçekleştiriyor.

$myRuleScaleOut = New-AzureRmAutoscaleRule -MetricName "Percentage CPU" -MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet -TimeGrain 00:01:00 -MetricStatistic "Average" -TimeWindow 00:05:00 -Operator "GreaterThan" -Threshold 70 -ScaleActionDirection "Increase" –ScaleActionScaleType "ChangeCount" -ScaleActionValue 3 -ScaleActionCooldown 00:05:00

 

clip_image020

Resim 11

Scale out kuralını yazmış olduk. Kullanılan kaynak tüketimi düştüğünde scale set içerisindeki vm sayısının eski haline dönebilmesi için yeni bir kural yazıyoruz. Bu kural içerisinde CPU kullanımı %30 altında olduğunda ve 5 dakika boyunca sürdüğünde scale set içerisindeki vm sayısı 1’e düşürüyor.

$myRuleScaleIn = New-AzureRmAutoscaleRule -MetricName "Percentage CPU" -MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet -Operator "LessThan" -MetricStatistic "Average" -Threshold 30 -TimeGrain 00:01:00 -TimeWindow 00:05:00 -ScaleActionCooldown 00:05:00 -ScaleActionDirection "Decrease" –ScaleActionScaleType "ChangeCount" -ScaleActionValue 1

 

clip_image022

Resim 12

Scale set kurallarını oluşturduktan sonra scale set profilini oluşturmamız gerekiyor. Bunun için aşağıdaki komut satırını çalıştırıyoruz. Profili belirlerken scale set içerisinde olması gereken en az vm sayısı ve en fazla olması gereken vm sayısını belirtip, yukarıda belirttiğimiz kurallara göre bu profilin çalışacağını belirtiyoruz.

$myScaleProfile = New-AzureRmAutoscaleProfile -DefaultCapacity 2 -MaximumCapacity 10 -MinimumCapacity 2 -Rule $myRuleScaleOut,$myRuleScaleIn -Name "autoprofile"

 

clip_image024

Resim 13

Oluşturmuş olduğumuz scale set profilini uygulamak için aşağıdaki komutunu çalıştırarak profil atamasını gerçekleştiriyoruz.

Add-AzureRmAutoscaleSetting -Location $myLocation -Name "autosetting" -ResourceGroup $myResourceGroup -TargetResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet -AutoscaleProfile $myScaleProfile

 

Scale set olarak oluşturduğumuz vm’ e rdp veya powershell ile uzak bağlantıları sağlamak için Azure Load Balancer üzerinde oluşturulan NAT kurallarını listeleyerek bağlantıyı sağlayabiliyoruz.

$lb = Get-AzureRmLoadBalancer -ResourceGroupName "rg-vmss" -Name "utnlb"

 

Get-AzureRmLoadBalancerInboundNatRuleConfig -LoadBalancer $lb | Select-Object Name,Protocol,FrontEndPort,BackEndPort

 

Get-AzureRmPublicIpAddress -ResourceGroupName "rg-vmss" -Name utnlb01 | Select IpAddress

 

clip_image026

Resim 14

clip_image028

Resim 15

Artık scale set olarak oluşturduğumuz vm’ i kullanabiliriz. Bu makalemizde Azure üzerinde neden scale set vm konumlandırmalıyız konusunu ve scale set vm’ in PowerShell kullanılarak nasıl oluşturulabileceğinden bahsetmiş olduk. Umarım faydalı bir makale olmuştur. Bir sonraki makalemizde görüşmek üzere.

 

 

Tarih : 27 Ocak 2019 Pazar 22:51 Yayınlayan: Umit SEYHAN

Yorumlar

Henuz Yorum Yok
Kimliksiz yorumlar seçilemez kılınmış durumdadır.

Yazar: Umit SEYHAN

http://www.unifytech.com.tr http://www.umit-seyhan.com

Bu Kategori

Hızlı aktarma

Etiketler