Tags: Azure, PowerShell, Virtualisierung
Microsoft bietet eine Vielzahl verschiedener Typen und Größen für virtuelle Maschinen auf Azure an. Nicht alle davon sind in jeder Region verfügbar. Man kann sich einen allgemeinen Überblick in der Dokumentation oder im Azure-Portal verschaffen. Wegen der flexiblen Filteroptionen ist aber PowerShell eine gute Alternative.
Die Instanzen für Azure-VMs unterscheiden sich in der Zahl der CPU-Kerne, der Größe des Arbeitsspeichers, der Kapazität der Betriebssystemlaufwerks sowie in der maximalen Zahl an Disks, die man an sie anhängen kann.
Kosten optimieren über minimale VM-Größe
Diese Faktoren bestimmen nicht nur die Leistung der virtuellen Maschine, sondern natürlich auch deren Preis. Neben den verschiedenen Plänen, mit denen sich die Kosten senken lassen, ist die Dimensionierung der VM maßgeblich für die zu erwartenden Ausgaben.
Der Einsatz von PowerShell für die Auswahl der passenden VM-Größe ist generell eine gute Option, aber besonders dann, wenn man die VM mit PowerShell anlegen möchte.
Mit Azure verbinden, Standorte ermitteln
Voraussetzung für die Nutzung von PowerShell ist die Installation des Az-Moduls und der anschließende Aufbau einer Verbindung (siehe dazu: PowerShell-Module für Azure installieren, Verbindung herstellen).
Anschließend ruft man eine Liste der Standorte ab, aus der man die gewünschte auf verfügbare Instanzgrößen abfragen kann. Dies erledigt der folgende Befehl:
Get-AzLocation | where DisplayName -like "*europe*" |
select DisplayName, Location
Dieses Beispiel filtert die Liste nach dem Begriff "europe".
Verfügbare Instanztypen anzeigen und filtern
Im nächsten Schritt fragt man die verfügbaren VM-Größen für den bevorzugten Ort ab:
Get-AzVMSize -Location "westeurope"
Die Ausgabe des Befehls ist eine sehr lange Liste und somit nicht besonders hilfreich. Der Einsatz von PowerShell empfiehlt sich vor allem wegen der Möglichkeiten, das Ergebnis zu filtern.
Zur Auswahl stehen folgende technische Kriterien:
- MaxDataDiskCount: maximal zulässige Zahl an Laufwerken
- MemoryInMB. RAM in MB
- NumberOfCores: Zahl der CPU-Kerne
- OSDiskSizeInMB: Größe des Laufwerks für das Betriebssystem
- ResourceDiskSizeInMB: Größe der Disk für temporäre Daten
Eine Abfrage könnte dann so aussehen:
Get-AzVMSize -Location "westeurope" |
where {$_.NumberOfCores -gt 4 -and $_.NumberOfCores -lt 16 -and $_.MemoryInMB -le 16384}
Dieser Befehl gibt alle Instanztypen aus, die mehr als 4 und weniger als 16 CPU-Kerne sowie mindestens 16 GB RAM enthalten.
Grundsätzlich kann man die Liste auch anhand der Instanznamen eingrenzen, wenn man weiß, was sich dahinter verbirgt:
Get-AzVMSize -Location "westeurope" | where name -like "Standard_A*"
Insgesamt sollte man auf diesem Weg schnell die passende VM-Größe finden lassen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Virtuelle Maschinen in Azure erstellen und verwalten mit PowerShell
- Spot, Reservierungen, Sparpläne: Kosten für Azure-VMs reduzieren
- Verfügbarkeit von Azure-VMs: SLA abhängig von Disk-Typ und Availability Set
- Updates für VM-Hosts in Azure: Geplante und ungeplante Wartung
- Gruppen in Azure Active Directory mit PowerShell verwalten
Weitere Links