Sylbek Cloud Support >> Home    Cloud Support: English Cloud Support: Deutsch

Azure Virtual Desktop, Kostenoptimierung

Durch den Einsatz von Azure Virtual Desktop (AVD) mit Windows 10/11 Enterprise Multi-Session können Sie Geld sparen. Durch die Optimierung von AVD können Sie diese Kosten halbieren.


Author: erstellt am 23.08.2023


Kosten für Azure Virtual Desktop (AVD) reduzieren
Bild: techcommunity.microsoft.com


Azure VM Kosten-Optimierung

Wenn die Microsoft Azure Virtual Machine (VM) läuft, wird sie auf Stundenbasis abgerechnet. Sie zahlen nur für die Anzahl der Stunden, die Ihre VM nach ihrer Erstellung läuft.

Wie Sie vielleicht bereits wissen, kostet es weiterhin Geld, wenn Sie eine VM nur einfach herunterfahren. In dem Fall hat die VM den Status 'Beendet' (eng. Stopped). Um Kosten zu sparen können Sie die VM auf Azure Portal stoppen, dann hat sie den Status 'Beendet (Zuordnung aufgehoben)' (Eng. Stopped (Deallocated)).
Microsoft bietet eine einfache Einstellung, um eine VM für eine fixe Zeit automatisch zu stoppen. Suchen Sie auf der VM-Seite nach 'Automatisch herunterfahren'.

In diesem Beitrag geht es um viel mehr, nämlich um dynamische Ausschaltung (Deallocated) von Azure Virtual Desktop (AVD) wenn keine Benutzer mehr daran arbeiten. Für eine persönliche AVD finden Sie im Netz genug Informationen wie Sie so eine VM ausschalten.
Für pooled AVD ist nichts bzw. kaum was zu finden. Dieser Beitrag zeigt Ihnen, wie Sie eine Multisession AVD bei Nichtnutzung automatisch ausschalten können, sodass keine Kosten mehr dafür entstehen.

Das automatische Ausschalten von AVD macht nur dann Sinn, wenn die Benutzer sie bei Bedarf einfach einschalten können. Das geht natürlich und dazu gibt es bereits gute Anleitung von Microsoft siehe VM bei Verbindung starten.

Vorbereitungen an Windows 10/11

Auf Windows 10 oder 11 werden Einstellungen vorgenommen die AVD ausschalten, falls keine aktiven Benutzer mehr arbeiten. Diese Erkennung macht am besten jede AVD. Hier wird gezeigt wie Sie das direkt einstellen. Das können Sie natürlich auch über GPO oder Intune für mehrere VMs machen.

Gruppenrichtlinie bearbeiten
Lokale Gruppenrichtlinien >> Computerkonfiguration >> Administrative Vorlagen >> Windows-Komponenten >> Remotedesktopdienste >> Remotedesktop-Sitzungshost >> Sitzungszeitlimits. Aktivieren Sie 'Zeitlimit für aktive Sitzungen der Remotedesktopdienste festlegen, die sich aber im Leerlauf befinden' und wählen Sie eine Zeit ein z.B. 1h.
Die anderen Sitzungszeitlimits können aktiviert werden, sind aber hierfür keine Voraussetzung.

Aufgabenplanung
Damit wird z.B. ab 17 Uhr gesucht ob die Anzahl der aktiven Benutzer 0 ist, wenn Ja, wird AVD nach 2 Minuten Warnung herunterfahren. Dabei werden die Benutzer mit getrennter Sitzung nicht gezählt.
Wenn Nein, dann prüft das Batch-Skript jede Stunde in den nächsten 12 Stunden, ob AVD heruntergefahren werden kann.
Für die Einstellung siehe Bilder 1 und 2. Mit dieser Aufgabe wird eine CMD-Datei mit diesem Inhalt ausgeführt:

  

Diese Einstellungen können Sie eintragen sowohl an pooled AVD Multisession, genutzt von mehreren Benutzern als auch an persönlicher AVD, genutzt von nur einem Benutzer.

M365 Azure Support - Aufgabenplanung Erstellung
Bild 1: Aufgabenplanung Erstellung


AVD Support - Aufgabenplanung Trigger
Bild 2: Aufgabenplanung Trigger



Azure Portal Einstellungen

Nachdem die VMs heruntergefahren sind, entweder per Script wie bei AVD oder manuell, werden solche VMs per Azure Automation-Konten (eng. Automation Account) gestoppt (Deallocated) sodass keine Kosten mehr anfallen.

Dazu Automation-Konten erstellen, am besten danach suchen und Ressource standardmässig erstellen, siehe Bild 3.

Danach Automation-Konten überprüfen bzw. bearbeiten wie folgt:

Module
Überprüfen Sie ob die Module A.Accounts und Az.Compute verfügbar sind. Sollte das nicht der Fall dann >> Module hinzufügen >> Aus Katalog durchsuchen.

Identität
Überprüfen Sie ob der Status 'Ein' ist, ggf einstellen dann >> Azure-Rollenzuweisungen >> Rollenzuweisung hinzufügen >> Bereich: Abonnement >> Rolle: 'Desktop Virtualization Power On Off Contributor' hinzufügen

Runbook
Runbook erstellen >> Name: (z.B. RB-Deallocate-stopped-VMs), Runbooktyp: PowerShell, Laufzeitversion: 5.1
Nach der Erstellung Runbook namens 'RB-Deallocate-stopped-VMs >> Bearbeiten >> im Portal bearbeiten und unteren Inhalt hinzufügen:

  

Testen über >> Testbereich >> Starten >> Schliessen >> Veröffentlichen.

Zeitpläne
Damit erfolgreich getestete Runbook z.B. stündlich nach heruntergefahrenen VMs sucht, müssen Sie einen Zeitplan erstellen wie folgt:
Runbook namens RB-Deallocate-stopped-VMs doppelklicken >> Mit Zeitplan verknüpfen >> Zeitplan >> Zeitplan hinzufügen >> Neuer Zeitplan, Name: (z.B. Each1hour), Startzeit: (z.B 00:30), Wiederholt: 1 Stunde >> Erstellen >> OK.

Aktivitätsprotokoll
Wenn eine VM durch diesen Skript gestoppt (deallocated) wird, ist dies im Aktivitätsprotokoll der entsprechenden VM zu sehen, siehe Bild 4. Darin auch protokolliert, dass AVD vom Benutzer über den üblichen Client (Windows Virtual Desktop) gestartet wurde.

Azure Support - Automation-Konten erstellen
Bild 3: Azure Automation-Konten erstellen




AVD Support - Aktivitätsprotokoll
Bild 4: VM Aktivitätsprotokoll



Weitere Optimierungen

Durch diesen kompakten Runbook Script werden alle VMs in allen Ressourcengruppen gesucht die heruntergefahren sind bzw. sich im Zustand 'PowerState/stopped' befinden, um sie dann in Status 'Beendet (Zuordnung aufgehoben)' zu versetzen.

Die Lösung mit stündlichem Zeitplan ist für Sie vielleicht zu ungenau, da es im Durchschnitt eine halbe Stunde dauert, bis die VMs 'richtig' abgeschaltet sind. Es gibt 2 Alternativen um Automation-Konten zu steuern.

Mit Azure Monitor Warnungsregel (eng. alert rule), die anspringen sobald VM herunterfährt. Dazu gibt es noch die Möglichkeit Email-Benachrichtigung zu senden. Warnung und Benachrichtigungen kosten etwas, auch wenn es nicht viel ist.

Eine bessere Alternative ist Webhooks. Damit kann die VM selbst das Herunterfahren ankündigen durch eine Aufruf auf Webhook-URL. Mit dabei können Parameter mitgeschickt wie z.B. Computernamen. Der Ablauf mit Webhooks ist etwas komplex, aber er ist individuell anpassbar und Sie erhalten eine effektive Lösung.
Auf Windows Ebene können weitere Optimierungen vorgenommen werden, wie:
Während des Herunterfahrens wird eine Warnung (2 Minuten, siehe oben) angezeigt. Wenn sich ein Benutzer während dieser Zeit anmeldet, kann der Shutdown abgebrochen werden (shutdown /a).

Anstatt der vorgeschlagenen Zeit ab 17 Uhr (Bild. 2) kann auch eine dynamische Zeit eingestellt werden, die startet mit dem Computer hochfahren. Beispielsweise durch folgende Einstellungen in der Aufgabenplanung >> Beim Start >> 1 Stunde Verzögerung >> 1 Stunde Wiederholung >> Dauer 1 Tag.

Bitte beachten Sie, dass weitere Kosten für Datenträger oder öffentliche IP-Adressen bestehen. Dynamische IP-Adresse kann dadurch ändern. Um das zu verhindern wandeln Sie dynamische IP-Adresse zu statisch.

Wir haben beim Kunden in AVD-Pools verschiedene dieser Lösungen im Einsatz. Ersparnis bei grösseren Netzwerken ist aufs Jahr gerechnet enorm. Für Fragen oder Verbesserungsvorschläge sind wir sehr dankbar, bitte nutzen Sie dafür unteres Kontaktformular.





Kontakt und Support
☏ +49 721 66980 610


Schreiben Sie uns,
eine Antwort können Sie am gleichen bzw. nächsten Arbeitstag erwarten.



Ihre Nachricht




Kennenlernen und Austausch
Wir würden uns freuen, wenn Sie (direkt hier) eine Zeit auswählen für ein kostenloses Online-Meeting über Microsoft Teams. Wir können beispielsweise darüber sprechen, wie Sie Ihre M365 Lizenzen optimieren und Kosten senken können.

Kunden-Support
Wir unterstützen Sie gerne bei Fragen zu Microsoft 365 und Azure. Sie können auf unseren Support zu fairen Preisen zählen, zwischen 70-90 EUR pro Stunde. Gerne nutzen wir Ihr Ticketsystem oder unser Jira ServiceDesk, siehe Beispielticket.

Sie werden von Security-Experten betreut, die ihre Microsoft Kompetenzen ständig erweitern und durch Herstellerzertifikate nachweisen. Dies ist für uns ein MUSS, um den Kundensupport auf höchstem Niveau und auf dem neuesten Stand der Technik zu halten.


Copyright Copyright 2003 - 2024  Sylbek Cloud Support
Deine IP 3.236.145.153, deine Auflösung , unsere Zeit