Bizi takip edin:

Microsoft Azure Schedule Start – Stop

Azure kaynaklarını yönetirken dikkat edilmesi gereken en önemli hususlardan biri maliyet yönetimidir. Azure kullanım raporu oluşturulduğunda muhtemelen maliyeti en yüksek kaynaklar sanal makineler olacaktır. Azure sanal makinelerini kullanım saatlerine, günlerine göre otomatik olarak başlatmak ve durdurmak sanal makine maliyetlerinde deallocate olduğu saate göre önemli düzeyde tasarruf sağlayabilir.

Sanal makinelerin her zaman çalışır durumda olması gerekip gerekmediği veya bazı sanal makinelerin işletim maliyetinden tasarruf etmek için belirli bir programda durdurulup durdurulamayacağı değerlendirilmelidir.

Azure sanal makinelerini planlı olarak başlatmak için Automation Account’tan, durdurmak için ise Azure’un yerleşik olarak sunduğu ‘auto-shutdown’ özelliğinden veya yine Automation Account’tan faydalanılabilir. Bu makalede Azure Portal üzerinden etiketler ve PowerShell Runbook kullanılarak Azure sanal makinelerinin planlı olarak başlatılması ve durdurulması anlatılacaktır.

Sanal Makinelere Etiket Atamak

Bu makalede başlama ve durdurma zamanı planlanacak sanal makineleri tanımlamak için Azure etiket özelliğinden faydalanılacaktır. Öte yandan örneğin belirli bir subscription veya kaynak grubu altındaki tüm sanal makineler için bir planlama yapılabilir.

Birden çok sanal makineye etiket atamak için Azure Portal’ı kullanmak hızlı ve kolay bir yoldur. Resim 1’de görüldüğü üzere sanal makineler seçilip ve etiket ata butonuna tıklanarak, istenilen etiket seçilen sanal makinelere kolaylıkla atanabilir. 

Ardından sanal makinelere atanacak isim ve değer belirlenir. Değer olarak sanal makineler için planlanan açılış ve kapanış saatleri girilebilir.

Automation Account Oluşturmak

Runbook’ları çalıştırmak için bir Automaiton Account’a ve Azure Run As hesabına gereksinim duyulur. Automation Accuont’u oluştururken ‘Create Azure Run As account’ seçeneği ‘Yes’ olarak seçilmelidir. 

Run As Account: Azure Otomasyonundaki Run As hesapları, Otomasyon çalışma kitaplarını ve diğer Otomasyon özelliklerini kullanarak Azure Resource Manager veya Azure klasik dağıtım modelindeki kaynakları yönetmek için kimlik doğrulaması yapılmasını sağlar.

Automation Account Runbook Oluşturmak

Runbook içerisine, otomatize edilecek sanal makinelerin seçileceği PowerShell komutları yazılacaktır.

 Ardından oluşturulan Run As hesabı ve oluşturduğumuz sanal makine etiketleri ile Resim 5 ve Resim 6 da görüldüğü üzere belirlenen sanal makinelerin açılış ve kapanış komutları yazılabilir ve runbook yayınlanabilir. Sanal makinelere atanan etiketler sayesinde, sanal makinelerin çekilmesi işlemi uygulanırken verimli bir filtreleme uygulanmış olacaktır.

Kod Blokları

## Azure Run As hesabı bilgisini almak 

$Connection = Get-AutomationConnection -Name ‘AzureRunAsConnection’

## Azure Run As hesabını var olan oturuma eklemek

Add-AzureRMAccount -ServicePrincipal -Tenant $Connection.TenantID -ApplicationId $Connection.ApplicationId -CertificateThumbprint $Connection.CertificateThumbprint

## Etiket değeri 08:00 olan sanal makineleri almak

$VMs = Get-AzureRMVM | Where-Object {$_.Tags.AcilisSaati -eq ’08:00′}

## Sanal makineleri başlatmak

$VMs | Start-AzureRMVM

## Azure Run As hesabı bilgisini almak 

$Connection = Get-AutomationConnection -Name ‘AzureRunAsConnection’

## Azure Run As hesabını var olan oturuma eklemek

Add-AzureRMAccount -ServicePrincipal -Tenant $Connection.TenantID -ApplicationId $Connection.ApplicationId -CertificateThumbprint $Connection.CertificateThumbprint

## Etiket değeri 17:00 olan sanal makineleri almak

$VMs = Get-AzureRMVM | Where-Object {$_.Tags.KapanisSaati -eq ’17:00′}

## Sanal makineleri durdurmak

$VMs | Stop-AzureRMVM -Force

Runbook’ların Test Edilmesi

Runbook’ları test etmek için publish etmeden önce Test pane butonu tıklanarak kodlar çalıştıralabilir. Kod sonucu output olarak hiçbir hata olmadan işlemin tamamlandığını gösterir vaziyette olmalıdır. Ardından gidip sanal makinelerin durumuna bakıldığında komutların başarılı şekilde çalıştığı görülebilir.

Runbook’ların Çalışma Zamanlarını Belirleme

Runbook’ları oluşturup, çalışmalarını test edip, Azure üzerinde yayınladıktan sonra geriye onların istenilen zamanlarda çalışacak şekilde planlanması kalmaktadır. Bu da Automation Account’un ‘schedule’ özelliğini kullanarak yapılabilmektedir. Bunun için ilk önce istenilen zamana uygun schedule oluşturulmalıdır. Daha sonra bu schedule ile yayınlanmış runbook’u linklemek gerekmektedir.

Schedule Oluşturma

Automation Account ‘shared resources’ altında schedule butonu tıklanarak bir schedule eklenebilir.

Schedule eklerken recurring seçeneği seçilerek schedule’ın belirlenen zamanlarda tekrarlı olarak çalışması sağlanabilir.

Daha sonra schedule listesinde oluşturulan schedule’lar görünecektir.

Runbook’lara Schedule Ekleme

Schedule’lar ve runbook’lar oluşturulduktan sonra geriye kalan adım runbookların belirlenen zamanlarda çalışmasını sağlayacak schedule’lar ile bağlanmasını sağlamaktır. İstenilen runbook’un overview sekmesinde bulunan Link to Schedule butonuna tıklanarak istenilen schedule seçilebilir.

Ardından aşağıda göründüğü gibi istenilen schedule seçilebilir.

Dikkat Edilmesi Gerekenler

Otomasyon maliyet olarak çok önemli bir tasarruf sağlayabilir. Ancak aşağıdaki konulara dikkat edilmelidir.

  • 7/24 çalışması gereken sanal makinelere filtreleme sağlanan etiketlerden birinin atanmaması gereklidir.
  • Aynı şekilde etiket seçerken daha önce kritik sanal makinelerden birine atanmadığından emin olmak önemlidir.
  • Bağlı kaynakların, açılıp kapanırken belli bir sırada olması gerekiyorsa farklı etiketler, runbooklar ve schedule’lar atamak gerekebilir. Örneğin; uygulama barındıran bir sunucu ile veritabanı içeren bir sunucu sırasıyla açılıp kapatılmalıdır.
  • Runbook yayınlandıktan sonra start butonuna basılırsa, sanal makineleri açmak için yazılan komutlar ise makineler direk olarak kapalıysa açılacak, sanal makineleri kapatmak için yazılan komutlar ise makineler açıksa kapanacaktır. Runbookların kontrol dahilinde çalıştırılması önemlidir.

Özet

Bu makalede, Azure sanal makinelerinin başlatılması ve durdurulmasını belirli bir zamanlamaya göre otomatikleştirmeyi sağlayan runbook için etiketlerin ve automation accountun nasıl kullanılabileceği anlatıldı. Aşağıdaki süreçler adım adım aktarıldı:

  • Sanal makinelere etiket atamak,
  • Runbook’ları oluşturmak, test etmek ve yayınlamak,
  • Schedule oluşturmak,
  • Schedule ve yayınlanan runbook’ları bağlamak.
Önceki İçerik

Azure Functions ile back-end API’lar Geliştirmek

Sonraki İçerik

Azure Application Security Group Nedir?

Start typing to see you are looking for.