Online Magazine
Wie geht Kostenoptimierung in der Cloud?

Ein grosser Vorteil von Cloud Computing ist die komplette Kostenübersicht. Es ist jederzeit ersichtlich, welche Ressourcen welche Kosten verursacht haben - bis auf den Tag oder sogar die Minute genau. Diese Kostentransparenz bietet Möglichkeiten zur Kostenoptimierung, welche es in einem On-Premises Data Center nicht gibt.
von Manuel Meyer

Die Möglichkeiten zur Kostenoptimierung können grob in folgende 6 Massnahmen eingeteilt werden, auf die ich in diesem Artikel eingehen möchte:
- Ressourcen löschen
- Ausschalten, falls möglich
- Herunterskalieren
- Automatisch skalieren
- Ressourcen reservieren
- Wiederverwendung von Lizenzen (Hybrid Benefit)
Der wichtigste Punkt ist aber, dass der Cloud Engineer sich mit den Konzepten und Verrechnungsmodellen der Cloud bis ins letzte Detail auskennt. Um in der Cloud wirklich Kosten zu sparen, müssen die Vorteile der Cloud auch ausgenutzt werden.
Dafür benötigt es einen Wechsel im Mindset. Viele der klassischen Data-Center-Ansätze führen in der Cloud nicht zum Erfolg. Cloud-Eigenschaften, wie die Elastizität (siehe Box), automatische Skalierung oder Compute-on-Demand müssen konzipiert und verwendet werden. Es muss zwingend ausgenutzt werden, dass im Cloud Computing die Rechner nur gemietet und nicht gekauft werden. Darum gibt es keine hohen Investitionskosten und die Betriebskosten gelten nur während dem Zeitraum der Miete.
Ressourcen löschen
Die effektivste und auch offensichtlichste Art, um Kosten zu sparen, ist nicht mehr verwendete Ressourcen zu löschen. Dabei geben wir die Compute- und Speicherkapazität zurück und verwenden nichts mehr. Obwohl das auf der Hand liegt, sei der Punkt hier erwähnt. In zu vielen Kundenprojekten erleben wir Umgebungen, in welchen Ressourcen vorhanden sind, die seit Jahren nicht mehr benötigt werden und unnötig Kosten verursachen. Um dies zu verhindern, ist eine konsequente Governance und regelmässige Überprüfungen der Azure Umgebung zwingend.
Ressourcen abschalten
Die zweite Möglichkeit, Kosten zu optimieren, besteht darin, Ressourcen abzuschalten. Ob eine Ressource überhaupt abgeschaltet werden kann, hängt von der Art der Ressource ab. Während PaaS-Dienste oft nicht abgeschaltet werden können, ist das bei IaaS-Workloads, also virtuellen Maschinen, möglich. Gerade wenn virtuelle Maschinen im Einsatz sind, auf welchen Mitarbeitende während Arbeitstagen arbeiten, dann bietet es sich an, diese in der Nacht und über das Wochenende nur bei Bedarf einzuschalten. Die Kostenersparnis ist massiv, die Kosten sinken auf ca. einen Drittel, wobei Urlaub beispielsweise noch nicht einmal eingerechnet ist. Das gleiche gilt für Testumgebungen, welche nur sporadisch während grösseren Testläufen im Einsatz sind.
Die Elastizität der Cloud
Eine Eigenschaft der Cloud ist, dass sie «elastisch» ist. Aber was bedeutet das genau? Elastisch bedeutet, dass sich die Leistung von Cloud-Lösungen an der Nachfrage orientieren kann. Dank der Cloud-Infrastruktur kann viel Leistung bezogen werden in dem Moment, in welchem viel Leistung gefragt ist. Dies kann sowohl täglich (in der Nacht reduzieren wir die Leistung), wöchentlich (Werktags wird tagsüber viel Leistung bereitgestellt), als auch saisonal (zu Black Friday fahren wir die Leistung hoch) eingesetzt werden. Der Clou an der Elastizität ist, dass sich direkt in den Kosten widerspiegelt. Im Gegensatz zum klassischen Data Center, in welchem Hardwarebeschaffungszyklen über mehrere Jahre geplant werden müssen, können die Kosten in der Cloud von Minute zu Minute optimiert werden. Das extreme Beispiel der Elastizität ist Compute-on-Demand, wenn Batch-Jobs für bspw. Tages-, Monats- oder Jahresabschlüsse ausgeführt werden. Die Compute-Ressourcen können exklusiv für die Ausführung dieser Jobs hochgefahren und nach vollständiger Berechnung wieder heruntergefahren werden. Wenn wir das Beispiel der «Beast»-VM mit 416 Cores nehmen und die VM jeden Werktag nur eine Stunde lang verwenden, dann fallen die Kosten von 95'000 Dollar pro Monat auf 2'550 Dollar pro Monat.
Herunterskalieren / Automatisch Skalieren
Wenn Ressourcen im Einsatz sind, welche nicht ausgeschaltet werden können, dann ist die Alternative, diese hoch- und herunter zu skalieren. Bei Plattform-as-a-Service Diensten ist die Skalierung jeweils in der Plattform eingebaut, während Infrastructure-as-a-Service Lösungen für Skalierung konzipiert werden müssen.
Bei der Skalierung wird zwischen manueller und automatischer Skalierung unterschieden. Die manuelle Skalierung bedeutet, dass entweder durch einen Benutzer oder durch einen externen Prozess eine Skalierung ausgelöst wird. Bei der automatischen Skalierung wird die Ressource mit Regeln konfiguriert, damit sie beim Eintritt gewisser Konstellationen von sich aus skalieren kann.
Natürlich muss hier auch die Serverless Computing Variante erwähnt werden. Falls möglich können Workloads mit Serverless Computing Angeboten um- oder neu gebaut werden, um die Kosteneffiezienz zu erhöhen.
Ressourcen reservieren
Da Cloud Computing die Möglichkeit bietet, virtuelle Maschinen zu mieten, anstatt dass diese angeschafft werden müssen, bringt dies eine enorme Flexibilität mit sich.
Bei vielen Kunden laufen jedoch Lösungen in der Cloud, welche diese Flexibilität nicht benötigen. Hier kommt das Prinzip der "Reservations" zum Zug. Mit "Reservations" kann Compute- oder Speicherleistung in einem Cloud-Data-Center reserviert werden. Am Beispiel der Azure Cloud funktioniert es so, dass sich ein Kunde gegenüber Microsoft verpflichtet, eine vereinbarte Leistung für den Zeitraum von einem oder drei Jahren zu reservieren. Diese Verpflichtung, welche auf der Cloud-Anbieter Seite die Planbarkeit erleichtert, wird mit einer Vergünstigung für den Kunden belohnt. Die Vergünstigungen bewegen sich dabei nach offiziellen Angaben im Rahmen von 30 bzw. 60 Prozent für 1-jährige bzw. 3-jährige "Reservations". Der Abschluss einer Reservation unterliegt gewissen Bedingungen, wie zum Beispiel eine Strafzahlung, die fällig wird, wenn eine Reservation zurückgegeben werden muss.
Wiederverwendung von Lizenzen (Hybrid Benefit)
Der letzte Punkt, welcher zur Kostenoptimierung betrachtet werden kann, ist der sogenannte Hybrid Benefit. Beim Hybrid Benefit können Softwarelizenzen aus dem On-Premises Data Center in die Cloud umgezogen werden.
In der Azure Cloud gibt es den Hybrid Benefit für das Betriebssystem (Windows Server) und für die Datenbank (SQL Server). Da diese Lizenzen für Cloud-Maschinen im Minutenpreis inbegriffen sind, reduzieren sich die Kosten, wenn eine bestehende Lizenz verwendet wird.
Hybrid Benefit ist auch ein Anreizsystem für die Migration in die Cloud. Für jede virtuelle Maschine, welche im On-Premises Data Center lizensiert ist, kann mit dem Hybrid Benefit eine virtuelle Maschine in der Cloud vergünstigt bezogen werden.
Zusammenfassend lässt sich folgendes sagen: Enorm wichtig beim Cost Management in der Cloud ist, die Kostentreiber der Cloud zu verstehen und die Einsparungsmöglichkeiten zu kennen. In der Praxis erleben wir täglich, dass die klassischen Data-Center-Konzepte eins-zu-eins auf die Cloud übertragen werden. Dies führt dazu, dass viele der Vorteile von Cloud Computing nicht ausgenutzt werden können.
Manuel Meyers Beitrag zum Thema "Wie entstehen eigentlich Kosten in der Cloud?" findest du hier.
