Automatisierung zur Kostenoptimierung in der Microsoft Azure Cloud
Isernhagen, 12.06.2025 (PresseBox) - In der Cloud zu arbeiten bietet viele Vorteile, bringt aber auch Herausforderungen mit sich, insbesondere in Bezug auf die Kosten. Virtuelle Maschinen (VMs) verursachen laufende Kosten, auch wenn sie nicht aktiv genutzt werden. Eine Möglichkeit zur Optimierung ist die Automatisierung des Startens und Stoppens von VMs mit Azure Automation Runbooks um die Ressourcen anschließend freizugeben (wodurch die laufenden Kosten gesenkt werden). In diesem Beitrag zeigen wir, wie das effizient umgesetzt werden kann.
Was sind Runbooks?
Runbooks in Azure Automation ermöglichen es, Prozesse zu automatisieren, ohne dass manuelle Eingriffe notwendig sind. Dies ist besonders hilfreich, wenn Systeme mit geschäftskritischen Anwendungen wie SAP betroffen sind, die vor dem Herunterfahren geordnet gestoppt werden müssen. Bei Runbooks kann man zudem noch sehr feinjustierte Zeitpläne hinterlegen, zu denen Systeme hoch und runtergefahren werden sollen, Ausnahmen definieren (wie zum Beispiel Patchwochenenden) etc.
Wie richte ich ein Runbook ein?
1. Azure Automation Konto einrichten: Falls nicht bereits vorhanden, muss ein
Azure Automation Konto erstellt werden. (vgl. Grafik 1&2)
2. Runbook erstellen: In der Azure Automation Umgebung kann ein neues
Runbook als PowerShell- oder Python-Skript angelegt werden. (vgl. Grafik 4&5)
Connect-AzAccount -Identity
$subscriptions = Get-AzSubscription
Select-AzSubscription -SubscriptionId $subscriptionId
$subscriptions | Select-Object SubscriptionName, SubscriptionId
$script="/bin/bash /opt/powercycler01/azshutdown.sh"
$command = Invoke-AzVMRunCommand -ResourceGroupName $resourceGroupName -VMName $vmNameAPP -CommandId "RunShellScript" -ScriptString $script -asJob
do { #Warten bis die Services beendet sind und die VM runtergefahren wurde
Start-Sleep -Seconds 10
$statuses = ((Get-AzVM -ResourceGroupName $resourceGroupName -Name $vmNameAPP -Status).Statuses | ForEach-Object {$_.Code})
} while (($statuses -match ("running")))
Stop-AzVM -ResourceGroupName $resourceGroupName -Name $vmNameDB -Force
3. Berechtigungen konfigurieren: Das Runbook benötigt die entsprechenden Rollen und Berechtigungen oder muss den gegebenen Ressourcen zugewiesen werden, um VMs starten und stoppen zu können.
4. Skripte für geordnetes Herunterfahren: Falls eine VM geschäftskritische Anwendungen wie SAP hostet, muss das Skript sicherstellen, dass die Dienste zuerst gestoppt werden, bevor die Maschine heruntergefahren wird. In diesem Fall obliegt dies der azshutdown.sh. Der Inhalt dieser Datei wird hier nicht gezeigt, da dies komplett systemabhängig (Betriebssystem, SAP-Anwendung, …) ist und nicht generalisiert werden kann. Hier können beliebige Operationen auf dem Betriebssystem ausgeführt werden.
5. Zeitpläne definieren: Mithilfe von Zeitplänen kann das Runbook so konfiguriert
werden, dass es automatisch zu bestimmten Zeiten läuft. (vgl. Grafik 5)
Nach der Implementierung wird überprüft, ob die Automatisierung wie gewünscht
funktioniert. Hierfür können die Ausgaben der Runbooks direkt in der Cloud abgerufen
werden, aber auch Azure spezifische Monitoring Lösungen eingesetzt werden.
Fazit
Durch die Nutzung von Azure Automation Runbooks lassen sich Cloud-Kosten optimieren, indem ungenutzte VMs automatisch gestoppt werden. Besonders bei geschäftskritischen Anwendungen wie SAP ist es wichtig, dass das Herunterfahren kontrolliert erfolgt, bevor die virtuelle Maschine gestoppt wird. Mit einer durchdachten Automatisierung lassen sich Betriebskosten senken und gleichzeitig eine hohe Verfügbarkeit sicherstellen. Durch Runbooks ist dieses flexibel auf verschiedene virtuelle Maschinen anpassbar, sodass produktive Umgebungen eine höhere Verfügbarkeit als zum Beispiel Testumgebungen genießen, welche man beispielsweise nur bei Bedarf mittels Runbook starten und stoppen könnte, ohne einen Zeitplan zu hinterlegen.
Haben Sie bereits Automatisierungen mit Azure Runbooks umgesetzt? Bei Rückfragen zu den gezeigten Anwendungen stehen wir gerne bereit. Einfach an[email protected]schreiben. Unser IT-Infrastruktur-Team meldet sich anschließend bei Ihnen! Leistungen darüber hinaus finden Sie in unseremPortfolio.

