Dieser Kurs lebt von Übungen am eigenen Konto. Wer Azure betreibt, lernt es nicht aus dem Text allein, sondern indem er Ressourcen anlegt, ansieht, ändert und wieder löscht. Das kostet Geld, wenn man es nachlässig macht, und fast nichts, wenn man ein paar Gewohnheiten hat. Diese Lektion legt sie fest, bevor die erste Ressource entsteht: welches Konto Sie nehmen, wie Sie Kosten begrenzen, wie jede Übung endet und wie Sie prüfen, ob in Ihrer Region Platz für eine Maschine ist.

Als Beispiel dient durchgehend die erfundene Nordlicht Reisen GmbH. Ihre Übungen sind deren Betriebsumgebung im Kleinen.

Vorwissen: Was ein Abonnement und eine Ressourcengruppe sind, steht in „AZ-900 kompakt“, Lektion 2.2. Wie Kosten entstehen, wie der Preisrechner funktioniert und wie ein Budget als Skript aussieht, lehrt K3, Lektion 3.1.2. Diese Lektion kürzt das auf das, was Sie für die Übungen dieses Kurses brauchen, und verweist dorthin. Die Kostenverwaltung als Prüfungsstoff kommt in Lektion 1.6.

Hinweis zu Namen im Portal: Das Azure-Portal heißt je nach Spracheinstellung anders. Dieser Kurs schreibt die Namen der Oberfläche englisch, wie Microsoft sie in der Dokumentation nennt (zum Beispiel Subscriptions, Cost Management + Billing, Usage + quotas), und erklärt sie beim ersten Auftreten. Steht Ihr Portal auf Deutsch, suchen Sie das Gleiche unter der deutschen Bezeichnung; die Suche oben im Portal findet beides.

Zwei Wege zum Übungskonto

Sie brauchen ein Abonnement, in dem Sie Ressourcen anlegen dürfen. Zwei Wege führen dorthin, und der Kurs funktioniert mit beiden.

Weg a: das Testkonto (Azure free account). Neue Kundinnen und Kunden, die Microsoft dafür zulässt, bekommen in den ersten 30 Tagen ein Guthaben von 200 US-Dollar in der Abrechnungswährung, das für jeden Dienst gilt, ausgenommen Käufe von Drittanbietern im Marketplace. Was Sie in den 30 Tagen nicht verbrauchen, verfällt. Danach und bis zu zwölf Monate nach der Anmeldung können Sie nur noch begrenzte Mengen einiger Dienste kostenlos nutzen, außerdem gibt es einige Dienste, die dauerhaft kostenlos sind. Wer vorher auf Pay-as-you-go umstellt, behält das restliche Guthaben bis zum Ende der 30 Tage.

Weg b: ein bezahltes Abonnement mit Budget und Warnung. Haben Sie schon ein Abonnement, etwa von der Arbeit, über Visual Studio oder als Studierende, nehmen Sie nie ein Produktivsystem. Legen Sie ein eigenes, leeres Abonnement für den Kurs an, oder wenigstens eine eigene Ressourcengruppe in einem Abonnement, in dem niemand produktiv arbeitet. Setzen Sie ein Budget mit Warnung (Abschnitt „Das Budget als zweite Sicherung“).

Weg a: Testkonto Weg b: bezahltes Abonnement
Kosten zuerst aus dem Guthaben von Anfang an nach Verbrauch
Ausgabenlimit standardmäßig an nicht verfügbar
Wenn es aufgebraucht ist Abonnement wird deaktiviert Es läuft weiter, Sie zahlen
Sicherung Guthaben und Limit Budget mit Warnung, Aufräumen
Gefahr Übungen brechen ab echte Rechnung

Die Tabelle verrät die Rangfolge der Gewohnheiten: Beim Testkonto schützt Sie Microsoft, bis das Guthaben leer ist. Beim bezahlten Abonnement schützen nur Sie selbst sich, durch Budget und Aufräumen.

Was das Testkonto tut: Guthaben, Freikontingent, Limit

Die Regeln des Testkontos in Kurzform, gelesen auf Microsoft Learn (Seiten unter „Weiterlesen“):

  • Das Guthaben läuft 30 Tage. Danach verfällt, was übrig ist.
  • Das Freikontingent gilt für bestimmte Dienste in bestimmten Mengen je Monat. Eine nicht genutzte Menge wandert nicht in den nächsten Monat. Als Beispiel nennt Microsoft drei Maschinengrößen, die bis zu 750 Stunden im Monat kostenlos laufen dürfen: B1S, B2pts v2 (ARM-basiert) und B2ats v2 (AMD-basiert). Die genaue und aktuelle Liste steht in den häufig gestellten Fragen zum Testkonto (FAQ). Prüfen Sie sie vor dem Start, bevor Sie sich auf eine Größe verlassen. Diese Lektion nennt sie nur als Beispiel.
  • Mehrere Instanzen sind erlaubt, solange die Summe im Limit bleibt: 750 Stunden lassen sich auf mehrere Maschinen verteilen.
  • Regionen: Solange Sie im Limit bleiben, dürfen Sie die kostenlosen Dienste in jeder Region anlegen, in der es sie gibt.
  • Free-Services-Seite: Microsoft empfiehlt, kostenlose Dienste über die Seite Free services im Portal anzulegen (oben im Portal nach „free services“ suchen). Legen Sie Ressourcen woanders an, ist die kostenlose Stufe nicht immer vorgewählt. Dann wählen Sie sie selbst.

Ob Sie im Limit sind, zeigt das Portal: Öffnen Sie Subscriptions, wählen Sie das Abonnement, das bei der Anmeldung für das Testkonto entstand, und lesen Sie die Seite. Dort steht der Bereich Top free services by usage mit einer Tabelle (Free services for 12 months): je Meter die Spalten Usage/Limit und Status. Mögliche Zustände sind „Not in use“, „Unlikely to Exceed“, „Exceeds on <Datum>“ und „Exceeded on <Datum>“. Die Daten erscheinen mit ein bis zwei Tagen Verzögerung, und nur für das Abonnement des Testkontos.

Das Ausgabenlimit (Spending limit)

Beim Testkonto ist das Ausgabenlimit standardmäßig an und gleich dem Guthaben. Es verhindert Ausgaben über das Guthaben hinaus. Drei Eigenschaften sind für die Praxis wichtig:

  • Sie können den Betrag nicht ändern. Entweder gilt ein Limit in Höhe des Guthabens, oder Sie entfernen es. Ein eigenes Limit gibt es nicht.
  • Beim Erreichen wird abgeschaltet. Sind die Ausgaben aufgebraucht, werden Ihre bereitgestellten Dienste für den Rest des Abrechnungszeitraums deaktiviert. Beim Testkonto werden Azure-Ressourcen aus dem Betrieb genommen, virtuelle Maschinen gestoppt und freigegeben (deallocated), und die Daten in Speicherkonten sind nur noch lesbar.
  • Es verhindert nicht alles. Manche externen Dienste aus dem Marketplace lassen sich nicht mit dem Guthaben bezahlen und können eigene Kosten verursachen, auch bei gesetztem Limit. Microsoft nennt Visual-Studio-Lizenzen, Microsoft Entra ID P1 oder P2, Supportpläne und die meisten Dienste von Drittmarken. Beim Anlegen so eines Dienstes warnt das Portal, dass er getrennt abgerechnet wird.

Wenn das Abonnement deaktiviert wird

Läuft das Guthaben aus oder sind die 30 Tage um, deaktiviert Azure das Abonnement, um Sie vor Ausgaben über Guthaben und Freikontingent hinaus zu schützen. Um weiterzumachen, stellen Sie auf Pay-as-you-go um. Das geht im Portal unter Subscriptions: Abonnement wählen, in der Befehlsleiste Upgrade subscription, Zahlungsmethode hinterlegen, Namen vergeben, Supportplan wählen, Upgrade. Danach haben Sie weiter zwölf Monate Zugang zu den kostenlosen Diensten und zahlen nur, was darüber hinausgeht.

Eine Falle steht ausdrücklich in der Dokumentation: Haben Sie Ressourcen genutzt, die nicht kostenlos sind, und wird das Abonnement deshalb deaktiviert, werden diese Ressourcen nach der Umstellung wieder aktiv, und Sie zahlen für ihre Nutzung. Räumen Sie also vor der Umstellung auf, was Sie nicht mehr brauchen.

Ein Abonnement wird nicht nur durch leeres Guthaben deaktiviert. Auch eine überfällige Rechnung, ein erreichtes Kartenlimit oder eine Kündigung führen dazu. Nach dem Begleichen kann die Reaktivierung bis zu 24 Stunden dauern. Beim Testkonto ohne Umstellung ist das Ende der Kette eine andere: Entfernen Sie das Ausgabenlimit, wird aus dem Testabonnement am Ende des Testzeitraums ein Abonnement mit Pay-as-you-go-Preisen; Sie behalten das restliche Guthaben für die vollen 30 Tage.

Welche Ressourcen nach Zeit kosten

Für die Übungen genügt eine einfache Unterscheidung. Der Kurs nennt bei jeder Übung, was wovon betroffen ist, und nennt keine Beträge: Preise ändern sich, und sie hängen von Region und Stufe ab. Beträge schätzen Sie selbst im Preisrechner und auf der Preisseite des Dienstes, mit Datum, wie K3 es in Lektion 3.1.2 zeigt.

Kostet nach Zeit, solange es existiert Kostet praktisch nichts, solange es leer ist
virtuelle Maschinen (auch die Datenträger darunter) Ressourcengruppen
Load Balancer Standard virtuelle Netze und Subnetze
Azure Bastion Richtlinien- und Rollenzuweisungen
App-Service-Pläne Tags
Azure Backup und Site Recovery je geschützter Instanz
Log-Analytics-Daten (nach Menge)

Die rechte Spalte ist eine Faustregel, keine Garantie; die Lektionen sagen es bei der jeweiligen Übung genauer. Die linke Spalte trägt in den Lektionen den Hinweis „nach der Übung sofort löschen“. Eine vergessene Maschine ist der häufigste Grund für eine Überraschung auf der Rechnung. Beachten Sie auch: Beim Kontingent zählen beendete, aber nicht freigegebene Maschinen weiter. Dazu unten mehr.

Das Budget als zweite Sicherung

Ein Budget warnt, wenn die Kosten eine Schwelle erreichen. Es stoppt nichts. Kosten- und Nutzungsdaten stehen in der Regel nach 8 bis 24 Stunden bereit, und Budgets werden alle 24 Stunden gegen sie geprüft; die Benachrichtigung kommt normalerweise innerhalb einer Stunde nach der Prüfung. Zwischen einem Fehler und der Warnung kann also mehr als ein Tag liegen. Das ist der Grund, warum Aufräumen die erste Sicherung ist und das Budget nur die zweite.

Im Portal legen Sie ein Budget so an: Subscriptions, Abonnement wählen, im Menü Budgets, Add. Sie vergeben einen Namen, wählen den Zeitraum (monatlich, vierteljährlich oder jährlich) und den Betrag, dann auf der nächsten Seite Warnschwellen in Prozent mit E-Mail-Adresse. Nötig ist mindestens eine Schwelle, möglich sind bis zu fünf. Mit dem Feld Type wählen Sie zwischen Actual (angefallene Kosten) und Forecasted (vorhergesagte Kosten). Nehmen Sie azure-noreply@microsoft.com in die Liste sicherer Absender auf, sonst landet die Warnung im Spam.

Das Budget als Skript und die Kostenwerkzeuge im Einzelnen sind K3, Lektion 3.1.2, und in diesem Kurs Lektion 1.6. Für diese Lektion genügt: Wer Weg b geht, legt das Budget an, bevor die erste Übung läuft.

Ein Hinweis, den K3 ebenfalls nennt: Bei manchen Angeboten, etwa dem Testkonto oder Studierendenangeboten, können Budgets eingeschränkt sein. Dann bleibt beim Testkonto das Ausgabenlimit Ihre Sicherung. Lesen Sie die Meldung des Portals genau.

Aufräumen: jede Übung hat ihre Gruppe

Die wichtigste Gewohnheit dieses Kurses: Jede Übung legt ihre Ressourcen in eine eigene Ressourcengruppe rg-az104-<übung>, zum Beispiel rg-az104-konto. Am Ende löschen Sie genau diese Gruppe und prüfen, dass sie weg ist. Eine Ressourcengruppe ist der Behälter einer Übung; was darin liegt, verschwindet mit ihr (K3, Lektion 3.1.3).

Bash
az group create --name rg-az104-konto --location germanywestcentral --tags kurs=az104

Der Befehl ist wiederholbar: Gibt es die Gruppe schon, setzt er ihre Tags. Eine andere Region für eine vorhandene Gruppe lehnt er ab. Löschen:

Bash
az group delete --name rg-az104-konto --yes --no-wait

--yes spart die Rückfrage, --no-wait wartet nicht auf das Ende. Der Befehl löscht die Gruppe mit allem darin und lässt sich nicht rückgängig machen. Lesen Sie den Namen deshalb zweimal. Die Probe, dass sie weg ist:

Bash
az group wait --name rg-az104-konto --deleted
az group exists --name rg-az104-konto

az group wait --deleted hält an, bis die Gruppe gelöscht ist (Standardwerte: Abfrage alle 30 Sekunden, Höchstdauer 3600 Sekunden). az group exists gibt true oder false aus. Nach dem Löschen muss false dastehen.

Das Gleiche in Azure PowerShell (Az-Modul, dessen Einrichtung Lektion 0.2 zeigt):

PowerShell
New-AzResourceGroup -Name rg-az104-konto -Location germanywestcentral -Tag @{ kurs = 'az104' }
Remove-AzResourceGroup -Name rg-az104-konto -Force
Get-AzResourceGroup | Where-Object ResourceGroupName -eq 'rg-az104-konto'

Remove-AzResourceGroup fragt ohne -Force nach; mit -AsJob läuft das Löschen im Hintergrund. Die letzte Zeile gibt nach dem Löschen nichts aus, denn es gibt keine Gruppe mehr, auf die der Filter passt.

Was nicht mit der Gruppe verschwindet. Der Befehl löscht den Inhalt der Gruppe, sonst nichts. Dinge, die außerhalb der Gruppe leben, bleiben stehen: Benutzer und Gruppen im Verzeichnis, Rollenzuweisungen und Richtlinienzuweisungen auf höherer Ebene, Budgets, Sicherungstresore mit Daten. Jede Übung, die so etwas anlegt, nennt den Schritt zum Aufräumen ausdrücklich unter „Kosten und Aufräumen“. Wenn eine Lektion ihn nicht nennt, gilt: Sie haben nichts angelegt, was bleibt.

Regel für Sicherungen: Lösch-Befehle in diesem Kurs treffen nie etwas anderes als die Gruppe der Übung. Bevor Sie einen Namen einfügen, prüfen Sie ihn mit az account show und az group list, damit Sie im richtigen Abonnement und bei der richtigen Gruppe sind.

Kontingent und Regionen

Eine Maschine zu bestellen heißt nicht, dass sie auch startet. Zwei Dinge können es verhindern, und Azure prüft sie getrennt:

  • Das Kontingent (Quota) ist die Erlaubnis Ihres Abonnements, eine bestimmte Anzahl von vCPUs oder Maschinen anzulegen. Es gilt je Region und in zwei Stufen: Total Regional vCPUs und die vCPUs der jeweiligen Größenfamilie (etwa B-Familie). Eine neue Maschine darf keine der beiden Stufen überschreiten. Gezählt werden alle Kerne in Benutzung, auch die von beendeten, aber nicht freigegebenen Maschinen.
  • Die Kapazität ist der tatsächlich verfügbare Platz im Rechenzentrum der Region oder Zone. Auch bei genug Kontingent kann eine Bereitstellung scheitern, wenn die Größe dort gerade nicht verfügbar ist. Dann hilft eine andere Größe, Zone oder Region.

Prüfen Sie beides vor der ersten Maschine. Das Kontingent einer Region zeigt die CLI:

Bash
az vm list-usage --location germanywestcentral --output table

Die Ausgabe hat eine Zeile je Kontingent mit den Spalten Name, CurrentValue und Limit. Darin stehen unter anderem Total Regional vCPUs, die Anzahl der Maschinen und eine Zeile je Größenfamilie, zum Beispiel Standard B Family vCPUs. Die Zahlen sind bei jedem Abonnement anders. Das PowerShell-Gegenstück:

PowerShell
Get-AzVMUsage -Location germanywestcentral

Im Portal finden Sie dieselben Werte unter Subscriptions, Abonnement wählen, links unter Settings den Eintrag Usage + quotas; dort können Sie nach Region und Familie filtern. Reicht das Kontingent nicht, können Sie eine Erhöhung beantragen oder nicht mehr benötigte Maschinen löschen. Ein Limit von null bei einer Familie heißt: In dieser Region können Sie diese Größe nicht anlegen, bevor sich das ändert.

Ob eine Größe in der Region für Ihr Abonnement angeboten wird, zeigt az vm list-skus. Der Befehl berücksichtigt Einschränkungen auf Abonnementebene und liefert damit die genauesten Angaben:

Bash
az vm list-skus --location germanywestcentral --size Standard_B2 --output table

--size nimmt auch Teile des Namens. Mit --zone zeigt der Befehl nur Größen, die Verfügbarkeitszonen unterstützen, mit --all auch solche, die für Ihr Abonnement nicht verfügbar sind. Jeder Eintrag der Ausgabe hat eine Liste restrictions; sie ist leer, wenn nichts die Größe einschränkt. Die Gründe, die Azure für Einschränkungen nennt, sind NotAvailableForSubscription (hängt mit der Kapazität im Rechenzentrum zusammen) und QuotaId (Ihr Abonnement gehört nicht zu der Kontingentgruppe, die die Größe verlangt).

Ist die Größe im Beispiel nicht verfügbar oder das Kontingent null, nehmen Sie eine andere EU-Region und halten sie für den ganzen Kurs fest. Die Regionen, die Ihr Abonnement kennt, listet az account list-locations; welche Dienste wo angeboten werden, zeigt die Seite „Products available by region“ von Microsoft. Der Kurs nutzt als Beispiel germanywestcentral. Die Regionen der Übungen müssen Sie nicht raten: Wo eine Übung eine bestimmte Größe braucht, sagt sie es, und Sie prüfen sie mit den beiden Befehlen oben.

Kosten und Aufräumen

Diese Lektion legt außer einer leeren Ressourcengruppe nichts an.

  • Was nach Zeit kostet: nichts. Die Gruppe rg-az104-konto ist leer.
  • Preise: Wo eine Übung etwas anlegt, das kostet, verweist sie auf den Preisrechner und die Preisseite des Dienstes.
  • Aufräumen: az group delete --name rg-az104-konto --yes --no-wait, dann die Probe mit az group wait --deleted und az group exists.
  • Was bleibt: Wenn Sie ein Budget angelegt haben, bleibt es, denn es hängt am Abonnement, nicht an der Gruppe. Das ist gewollt: Es soll auch die nächsten Übungen überwachen.

Übung 1: Die Wegwerfgruppe

  1. Prüfen Sie, in welchem Abonnement Sie arbeiten, und legen Sie die Gruppe rg-az104-konto in germanywestcentral (oder Ihrer Region) mit dem Tag kurs=az104 an.
  2. Lesen Sie die Gruppe zurück: Name, Region, Tags.
  3. Löschen Sie die Gruppe und warten Sie, bis sie weg ist.
  4. Führen Sie die Probe aus.

So prüfen Sie es: Nach Schritt 2 zeigt die Gruppe genau ein Tag, kurs mit dem Wert az104. Nach Schritt 3 gibt az group exists --name rg-az104-konto false aus.

Lösung 1

Bash
az account show --query "{Name:name, Zustand:state}" --output table
az group create --name rg-az104-konto --location germanywestcentral --tags kurs=az104
az group show --name rg-az104-konto --query "{Name:name, Ort:location, Tags:tags}"
az group delete --name rg-az104-konto --yes --no-wait
az group wait --name rg-az104-konto --deleted
az group exists --name rg-az104-konto

Der erste Befehl gibt eine Tabelle mit einer Zeile aus: Name Ihres Abonnements und seinen Zustand. Beim Testkonto und bei einem aktiven Abonnement steht dort Enabled; steht Disabled da, ist das Abonnement deaktiviert, siehe oben. Der dritte Befehl gibt ein JSON-Objekt mit den drei Feldern aus. Der letzte Befehl gibt false aus.

Dasselbe in Azure PowerShell:

PowerShell
Get-AzContext
New-AzResourceGroup -Name rg-az104-konto -Location germanywestcentral -Tag @{ kurs = 'az104' }
Remove-AzResourceGroup -Name rg-az104-konto -Force
Get-AzResourceGroup | Where-Object ResourceGroupName -eq 'rg-az104-konto'

Gibt der Löschbefehl einen Fehler wie ScopeLocked, hängt an der Gruppe eine Sperre. Das lehrt Lektion 1.5. In dieser Übung sollte es keine geben.

Übung 2: Kontingent und Region

  1. Lesen Sie das Kontingent Ihrer Region: die Zeile Total Regional vCPUs und die Zeile der B-Familie.
  2. Prüfen Sie mit az vm list-skus, ob Standard_B2ats_v2 und Standard_B2s (oder eine andere Größe, die Sie für die Übungen planen) in Ihrer Region angeboten werden.
  3. Wenn nicht: Wählen Sie eine andere EU-Region und prüfen Sie dort dieselben Größen.
  4. Notieren Sie in einer Datei az104-konto.md Ihre Region, Ihr Abonnement (nur den Namen) und welchen Weg Sie gehen (a oder b).

So prüfen Sie es: Die Datei nennt eine Region, in der Ihre geplante Größe angeboten wird und in der Limit minus CurrentValue bei Total Regional vCPUs und bei der B-Familie mindestens die vCPUs einer solchen Maschine beträgt.

Lösung 2

Bash
az vm list-usage --location germanywestcentral --output table
az vm list-skus --location germanywestcentral --size Standard_B2 --output table

Die Tabelle des ersten Befehls hat die Spalten Name, CurrentValue und Limit. Gesucht sind die Zeilen Total Regional vCPUs und Standard B Family vCPUs. Rechnen Sie: Limit minus CurrentValue ist der freie Platz. Wie viele vCPUs eine Größe braucht, steht in der Beschreibung der Größe (die Seiten der Größenfamilien auf Microsoft Learn); gegen diese Zahl prüfen Sie, nicht gegen eine, die der Kurs vorgibt. Die Tabelle des zweiten Befehls enthält eine Zeile je passende Größe; ist eine Größe für Ihr Abonnement eingeschränkt, steht das in den Einschränkungen des Eintrags. Ob im Rechenzentrum gerade Kapazität frei ist, zeigt am Ende erst die Bereitstellung selbst.

Eine mögliche Datei:

Region: germanywestcentral (oder: <Ihre EU-Region>)
Abonnement: <Name des Abonnements>
Weg: a (Testkonto) / b (bezahltes Abonnement mit Budget)
Geprüft am: <Datum>: B-Größen verfügbar, Kontingent ausreichend.

Wer weder die Beispielgröße noch eine andere B-Größe in der Region findet, nimmt eine andere EU-Region, trägt sie in die Datei ein und nutzt sie für alle Übungen. Die Befehle sind in allen Regionen dieselben.

Was Sie jetzt können

  • Sie wählen Ihren Weg: Testkonto oder eigenes Abonnement mit Budget.
  • Sie wissen, was Guthaben, Freikontingent und Ausgabenlimit des Testkontos tun und was bei Ablauf geschieht.
  • Sie erkennen, welche Ressourcen nach Zeit kosten, und schätzen Beträge selbst mit dem Preisrechner.
  • Sie räumen jede Übung mit az group delete oder Remove-AzResourceGroup auf und prüfen, dass die Gruppe weg ist.
  • Sie wissen, was nicht mit der Gruppe verschwindet.
  • Sie prüfen Kontingent und Verfügbarkeit einer Größe und wählen bei Bedarf eine andere EU-Region.

Weiterlesen