Online Magazine
Wie entstehen eigentlich Kosten in der Cloud?

Am Beispiel der Microsoft Azure Cloud lässt sich gut erläutern, wie Kosten in der Cloud überhaupt entstehen. Dabei ist wichtig zu verstehen, dass sich Kostenstrukturen und -erzeuger in der Cloud im Gegensatz zu on-premises Umgebungen grundlegend unterscheiden.
von Manuel Meyer

Grundsätzlich können in einer Cloud-Plattform 6 verschiedene Faktoren identifiziert werden, welche die Kosten beeinflussen:
- Das Beschaffungsmodell
- Die Art der Services
- Der verwendete Pricing Tier der Services (Dimensionierung)
- Die tatsächliche Verwendung von Services (Usage)
- Die geographische Lokation
- Die Menge der Daten, die verarbeitet werden (Bandbreite = Bandwidth)
Im folgenden Abschnitt werden diese 6 Faktoren im Detail erläutert.
Das Beschaffungsmodell
Wir nehmen die Azure Cloud als Beispiel. Die Services der Azure Cloud können über 3 verschiedene Wege bezogen werden:
- Enterprise Agreement
- Cloud Solution Provider
- Web Direct (Pay-as-you-go)
Ein Enterprise Agreement ist ein Gesamtvertrag mit Microsoft, der die Beschaffung sämtlicher Produkte und Dienste von Microsoft regelt. Das Enterprise Agreement ist die Option für grössere Firmen, die Produkte, Lizenzen, Dienstleistungen und Cloud-Services im grossen Stil von Microsoft beziehen und kommt deshalb für kleinere und mittlere Firmen oft nicht in Frage. Ein Enterprise Agreement benötigt immer auch eine gewisse Firmengrösse und eine monetäre sowie zeitliche Verpflichtung. Cloud-Dienstleistungen können über das Enterprise Agreement vergünstigt bezogen werden, wobei die Vergünstigung abhängig sind vom vereinbarten Umsatz.
Das Cloud-Solution-Provider-(CSP)-Modell kommt für alle Kunden in Frage, die für das Enterprise Agreement zu klein sind. Dabei werden die Cloud-Services von einem Partner bezogen, der die Abrechnung, Bereitstellung und den technischen Support übernimmt und die Kosten von Microsoft an den Kunden weiterverrechnet. Im CSP-Kostenmodell werden die Cloud-Dienste monatlich abgerechnet, eine zeitliche oder monetäre Verpflichtung gibt es nicht. Im CSP-Modell werden Cloud-Dienste ebenfalls vergünstigt bezogen, gegenüber dem Pay-as-you-go-Preis.
Das dritte und letzte Modell, Web Direct, wird auch als Pay-as-you-go bezeichnet. Damit ist gemeint, dass ein Kunde selbstständig Dienstleistungen von Microsoft bezieht, die üblicherweise über eine Kreditkarte direkt verrechnet werden. Der Vorteil an Pay-as-you-go ist, dass es wie bei CSP keine Verpflichtungen gibt. Der Nachteil ist, dass der teuerste, eigentlich der Listenpreis, bezahlt werden muss.
Die Art der Services, Pricing Tier & Usage
Jedes Produkt, das in der Cloud Kosten verursacht, kann einzeln verwaltet werden. In Azure werden diese Produkte als "Ressourcen" bezeichnet. Die Ressourcen können dabei in die beiden Cloud-Service-Typen "Infrastructure-as-a-Service (IaaS)" und "Platform-as-a-Service (PaaS)" eingeteilt werden. Bei IaaS wird Infrastruktur im Sinn von virtuellen Maschinen, Netzwerken und Storage-Lösungen verwendet. Dabei wird ein virtuelles Data Center in der Cloud erstellt, das vom Aufbau her einem klassischen On-Premises Data Center sehr ähnlich ist.
Bei Platform-as-a-Service (PaaS) werden Plattform-Dienste aus der Cloud bezogen, die grundsätzlich nur in der Cloud verfügbar und pro Cloud-Anbieter auch unterschiedlich implementiert sind. Beispiele dafür sind Datenbanken als Service, Container-Plattformen oder Plattformen für Web-Applikationen oder Data Analytics.
Da die Grundlage von IaaS Workloads virtuelle Maschinen sind, betrachten wir diese zuerst. In der Azure Cloud werden für virtuelle Maschinen die folgenden Positionen verrechnet:
- Compute-Leistung
- Lizenz des Betriebssystems
- Disk-Speicher
- Bandbreite
Die teuerste Position ist definitiv die Rechenleistung, also die Compute-Power. Diese ist direkt abhängig von der Grösse der virtuellen Maschine, wird auf Minutenbasis verrechnet und ist nur fällig, wenn die Maschine in Gebrauch, also nicht ausgeschaltet ist.
Dazu kommt, falls es sich um ein Windows-Betriebssystem handelt, die Lizenz für den Windows-Server, die ebenfalls im Minutenpreis inbegriffen ist.
Der nächste Posten ist der Speicherplatz, der für die Disks der virtuellen Maschine verwendet wird. Im Gegensatz zur Rechenleistung sind die Disks ein konstanter Kostenfaktor, unabhängig davon, ob die Maschine in Betrieb ist oder nicht. Der verrechnete Betrag hängt dabei von der Grösse und der Geschwindigkeit der verwendeten Speichermedien ab.
Die letzte Position, die bezahlt werden muss, ist die Bandbreite (Bandwidth). Sie ist abhängig vom Datenverkehr in, aus und zwischen den Microsoft Data Centers. Mehr zur Bandbreite folgt in einem separaten Abschnitt.
Wichtig zu erwähnen ist die Tatsache, dass es bei den Kosten eine riesige Bandbreite gibt. Die kleinste virtuelle Maschine mit einem Prozessorkern und 0.75 Gigabyte Arbeitsspeicher schlägt mit ungefähr 15 Dollar pro Monat zu buche, während die grösste Maschine mit dem passenden Übernamen «The Beast» und 416 Prozessorkernen bei 11 Terrabyte RAM mit 95’000 Dollar pro Monat verrechnet wird. Die Auswahl dieser Grösse, auch Pricing Tier genannt, ist unten abgebildet. Der Pricing Tier bestimmt neben dem Preis und der Leistung auch die Verfügbarkeit weiterer Features.
Pricing Tier am Beispiel einer virtuellen Maschine (Quelle: Azure Portal)
Bei Platform-as-a-Service (PaaS) besteht ein anderes Verrechnungsmodell. Bei der Verwendung eines Plattformdienstes müssen zwei Ansätze unterschieden werden: klassisches PaaS und Serverless Computing. Beim klassischen PaaS entscheidet der Nutzer, wie viel Leistung er einkaufen will. Dabei gibt es unterschiedliche Ausprägungen, wie diese Selektion getroffen werden kann. Aber allen Plattformdiensten ist gleich, dass es eine Vereinbarung "Preis gegen Leistung" gibt. Das bedeutet, dass zum Beispiel eine PaaS-Datenbank mit einer bestimmten Leistung eingekauft wird. Im Betrieb der Datenbank muss dann überwacht werden, wie viel Leistung die Datenbank tatsächlich braucht. Kommt die Datenbank an die Leistungsgrenze, muss nach oben skaliert werden. Im Gegensatz zu virtuellen Maschinen spielt es bei der Datenbank keine Rolle, ob sie "läuft" oder nicht. PaaS-Services können in der Regel auch nicht abgeschaltet werden. Das bedeutet, sie kosten Geld, bis sie gelöscht werden. Natürlich bieten die Möglichkeiten der Skalierung von Plattformdiensten ein grosses Einsparungspotenzial.
Ein grosser Nachteil von IaaS und dem PaaS-Modell besteht darin, dass es immer zu einer Überprovisionierung kommt. Der Nutzer muss ja entscheiden, wie viel Leistung er einkauft, unabhängig davon, wie viel Leistung die Workloads verwenden. Oder anders gesagt, sobald die virtuelle Maschine läuft oder der PaaS-Service gekauft ist, fallen die Kosten an. Unabhängig davon, ob Leistung verwendet wird oder nicht.
Beim Serverless Computing wird dieses Problem konzeptionell gelöst. Serverless-Dienste können in der Cloud erstellt werden, ohne dass dafür Kosten anfallen. Die Kosten fallen erst bei der Verwendung an. Ein Beispiel aus der Azure Cloud ist das Azure-Functions-Produkt. Azure Functions sind in Code programmierte Funktionen, die von einem Trigger ausgelöst werden und Logik ausführen. Functions können serverless betrieben werden, was bedeutet, dass für die Erstellung der Funktion keine Kosten anfallen und erst Kosten verrechnet werden, wenn die Funktion aufgerufen wird. Das heisst, im Serverless-Modell muss nur die tatsächlich verbrauchte und nicht die reservierte Leistung bezahlt werden. Somit ist Serverless Computing bezüglich der Kosten sehr effizient. Aber natürlich gibt es auch eine Kehrseite der Medaille, beispielsweise, dass Functions, die selten aufgerufen werden «einschlafen» und beim nächsten Aufruf erst mit einer Verzögerung reagieren.
Lokation
Die globalen Cloud Hyperscaler wie Microsoft oder AWS stellen ihre Infrastruktur über den Globus verteilt zur Verfügung. Das hat für uns als Nutzer*innen grosse Vorteile. Einerseits können regionale Compliance-Anforderungen erfüllt werden, andererseits können Workloads in die Nähe des Kunden gebracht werden.
Azure Regions (Quelle: azure.microsoft.com)
Die geographische Region hat aber auch einen Einfluss auf die Kostenstruktur. In der Azure Cloud, als Beispiel, haben alle Arten von Services ein regionales Preisschild. Interessant ist dabei die Tatsache, dass es massive Preisunterschiede zwischen den Regionen gibt. Eine gute Hilfestellung bietet dabei die Website www.azureprice.net. Sie bietet Kostenvergleiche zwischen den Regionen. So ist zum Beispiel ersichtlich, wo es eine bestimmte Maschinengrösse am günstigsten gibt. Oder es gibt ein Diagramm, das den Maschinenpreis pro Region angibt (siehe Bild unten).
Preise für virtuelle Maschinen nach Region (Quelle: www.azureprice.net)
Bandbreite
Zu guter Letzt kommen wir auf das Thema der Brandbreite zu sprechen. Im Gegensatz zu den bisher vorgestellten Kostenfaktoren, die eine klare Preisangabe haben, ist die Bandbreite etwas weniger gut fassbar.
Bei der Bandbreite (Bandwidth) sprechen wir von der Datenmenge, die in der Cloud umhertransportiert wird. Wir unterscheiden dabei drei verschiedene Richtungen. Der Ingress bezeichnet die Daten, die in das Cloud Data Center kopiert werden. Aus der Sicht einer Unternehmung kommt das einem Upload in die Cloud gleich. Beim Egress sprechen wir von Daten, die ein Cloud Data Center verlassen, aus Sicht einer Unternehmung ein Download. Der dritte Punkt sind die Daten, die zwischen Cloud Data Centers hin und her kopiert werden.
In der Azure Cloud ist der Ingress kostenlos, der Egress und der Inter-Region-Transfer müssen pro Gigabyte bezahlt werden. Mehr Informationen dazu gibt es in dieser Dokumentation.
Kommenden Montag erscheint passend zum Thema der Teil 2 des Artikels: "Kostenoptimierung in der Cloud"
