Wenn die Cloud-Kosten überhandnehmen Kostenkontrolle ist (fast) keine Hexerei

Autor / Redakteur: Anna Kobylinska und Filipe Pereira Martins* / Elke Witmer-Goßner

Die elastische Skalierbarkeit der Cloud hat eine dunkle Kehrseite: die Kostenblase. Denn viele Dienste starten automatisch, die Preise summieren sich schnell auf und die Ausgaben laufen ganz plötzlich aus dem Ruder. Wer seine Cloud-Kosten in den Griff bekommen möchte, braucht hierzu geeignete Tools.

Firmen zum Thema

Kostenoptimierung durch elastische Skalierbarkeit von Diensten ist ein Versprechen, das Cloud-Anbieter – aus den unterschiedlichsten Gründen – nicht immer halten können.
Kostenoptimierung durch elastische Skalierbarkeit von Diensten ist ein Versprechen, das Cloud-Anbieter – aus den unterschiedlichsten Gründen – nicht immer halten können.
(Bild: unpict – adobe.stock.com)

Nutzungsabhängige Abrechnungsmodelle können einem Unternehmen im Nullkommanichts eine beachtliche finanzielle Belastung aufbürden. Ein klassisches Beispiel stellen Web-Anwendungen dar, deren laufende Kosten vorrangig externe Nutzer verursachen, ob legitime Web-Besucher oder heimtückische Bots. DDoS-Attacken gegen Cloud-Dienste haben schon vielen Unternehmen hart zugesetzt, doch sie sind bei Weitem nicht die einzige Quelle böser Überraschungen.

Auch unternehmensinterne Nutzer, die neue Cloud-Dienste unter Zeitdruck unkontrolliert starten, können die Kostenspirale, wenn auch unbeabsichtigt, ankurbeln. Diese sogenannte „Schatten-IT“ kommt meist nicht freiwillig ans Licht. Hinzu kommt auch noch der Umstand, dass Cloud-Anbieter im Endeffekt von etwaigen Kostenpannen profitieren, solange sie ihre arglosen Kunden nicht allzu zu stark verärgern.

Zurechtskaliert: Kostenoptimierung durch „Rightsizing“ einer laufenden Instanz optimiert, laut Gartner, den Prozentsatz der Auslastung.
Zurechtskaliert: Kostenoptimierung durch „Rightsizing“ einer laufenden Instanz optimiert, laut Gartner, den Prozentsatz der Auslastung.
(Bild: Gartner)

Wer schon mal auf einer riesigen Cloud-Rechnung sitzen geblieben ist, möchte seine Cloud-Kosten künftig unter Kontrolle halten. Zum Glück gelingt das mit geeigneten Tools. Verstecktes Potenzial für Kostenoptimierungen gibt es in Hülle und Fülle: ungenutzte Ressourcen, überprovisionierte Dienste, teure Leistungsabzüge im Falle von Unterprovisionierung, ungenutzte Rabattmodelle und dergleichen andere Unstimmigkeiten. Je schneller die Cloud-Nutzer ihre Fehlentscheidungen korrigieren, umso mehr gibt es für sie zu gewinnen. Segment.io beispielsweise, Anbieter der gleichnamigen Datenplattform für Customer-Intelligence, hat es vorgemacht. Das cloud-native Unternehmen konnte mit einer Handvoll Maßnahmen eine Million US-Dollar an Einsparungen auf der eigenen AWS-Rechnung realisieren – Jahr für Jahr.

Mehrere Cloud-Accounts: Vor- und Nachteile

Eine der größten Herausforderungen im Zusammenhang mit der Verwaltung von Kosten der Public Cloud besteht in der korrekten Zuordnung von Ausgaben zu ihren „Verursachern“. Cloud-Anbieter wie AWS bieten Unternehmen die Möglichkeit, einzelne Ressourcen mit Tags zu kennzeichnen, um sie konkreten IT-Projekten oder Teams für Zwecke der Kostenkontrolle zuzuordnen. Dank Tagging lassen sich die Kosten verschiedener Bauteile einer konkreten Anwendungsausführung abschätzen und überwachen. Doch ohne geeignete Tools und Prozesse bringen solche Maßnahmen nur zusätzliche Komplexität mit sich, die dann in Chaos ausarten kann.

Die Umsetzung effektiven Taggings für Abrechnungszwecke fällt den meisten Organisationen nicht leicht, da sich die benötigten Ressourcen und Dienste einer Bereitstellung bedarfsgetrieben immer wieder ändern. Viele Unternehmen müssen zudem wohl oder übel mehrere Cloud-Konten innerhalb einer Cloud-Plattform verwalten. Dieser Sachbestand lässt sich zum Teil auf Akquisitionen zurückführen, zum Teil aber auch auf die Handlungsbefugnis einzelner Abteilungen, die unabhängig voneinander die gerade benötigten Dienste für sich ungefragt in Anspruch nehmen und hierzu einfach neue Benutzerkonten einrichten. Diese geraten meist schnell wieder in Vergessenheit, während die Dienste kostenpflichtig vor sich hinlaufen. Die linke Hand weiß nicht, was die rechte tut – so entsteht die gefürchtete Schatten-IT, die oft über mehrere Jahre lange ihr teures „Schattendasein“ so vor sich hinfristet.

Wer also mehrere AWS-Konten ohne „Verschnitt“ der Ressourcenverschwendung betreiben möchte, kommt nicht umhin, eine effiziente Methode der Überwachung von Cloud-Diensten zu implementieren.

Das Prinzip von Teile und Herrsche

Erfolgt eine Kosten-Segmentierung koordiniert nach Plan, kann sie sogar von Vorteil sein. Eine saubere Dienste-Isolation kann die Kostenabrechnung überschaubar(er) gestalten und nebenbei zur verbesserten Sicherheit beitragen. Kosten-Segmentierung hilft nachweislich, Best Practices in der Softwareentwicklung und beim Einsatz von Infrastructure as Code zu erzwingen. Segment.io, Inc. hat es vorgemacht.

Das Unternehmen hat für seine verschiedenen AWS-Accounts die Erstellung von Detailberichten angefordert, das sogenannte AWS Billing CSV. Amazon schreibt die gewünschte CSV-Datei täglich auf den S3-Speicher. Segment.io nutzt dann ein Tool namens AWS Detailed Billing von Heroku, um die Daten in eine Redshift-Datenbank einzuspeisen.

Um seine detaillierten AWS-Metriken aus dem täglichen CSV-Detailbericht interpretieren zu können, kennzeichnet das Segment.io alle betreffenden Ressourcen mit den sogenannten Kostenzuordnungs-Tags. Das zuständige Team hat diese Informationen all den wichtigsten Kostenstellen eines jeden Workloads erst einmal manuell zugewiesen. Damit auch neu provisionierte Cloud-Dienste automatisch getaggt werden können, musste eine passende Lösung her.

Konfigurationsbeispiel für die Provisionierung automatisch getaggter Cloud-Ressourcen via Terraform.
Konfigurationsbeispiel für die Provisionierung automatisch getaggter Cloud-Ressourcen via Terraform.
(Bild: Terraform/Autoren)

Die Bereitstellung neuer Cloud-Ressourcen erfolgt bei Segment.io unter Verwendung von HashiCorps Terraform. Ein eigens hierfür erstellter Checker prüft bei Segment.io jede einzelne Cloud-Konfigurationsdatei auf die Einhaltung interner Vorgaben für das Vorhandensein der zugehörigen Kostenzuordnungs-Tags. Das Schöne an dieser Lösung ist die Fähigkeit, mit deklarativen Konfigurationsdateien in HCL (Hashicorp Configuration Language) mehrere hundert Cloud-Umgebungen anzusteuern, von AWS über GCP, Microsoft Azure, VMware bis hin zu beliebigen Kubernetes-Bereitstellungen.

Bereits bei seinen ersten Versuchen, seine Cloud-Kosten zu den betreffenden „Verursachern“ zurückzuverfolgen, stieß Segment.io bei Setzen der Tags bald an die Grenzen seiner AWS-Bereitstellung. Denn einige Cloud-Ressourcen, darunter AWS ECS und EBS, unterstützen gar keine Kostenzuordnungs-Tags. Die Cloud-Verantwortlichen von Segment.io mussten eine eigene Lösung entwickeln, um die Kosten laufender Arbeitslasten auf Container-Ebene, statt auf Instanzebene einschätzen zu können. Mit den AWS-Diensten CloudWatch, Kinesis Firehose, Redshift und DynamoDB mit Terraform konnten sie sich dann doch um die Einschränkungen der AWS-Architektur herumarbeiten.

Dennoch ist die Lösung nicht narrensicher, denn aus der AWS-Konsole heraus ließe sich der Checker umgehen. Der Ansatz habe nichtdestotrotz schnell die erhofften Früchte getragen. Denn die Kosten korrekt getaggter Cloud-Ressourcen ließen sich aus Detailberichten sehr leicht extrahieren und aggregieren, sodass sich konkrete Korrekturmaßnahmen zeitnah einleiten ließen.

Geld, das vom Himmel fällt

Die AWS-Bereitstellung von Segment.io überspannt mehrere AWS-Accounts. Damit bestimmte Dienste aus einem AWS-Root-Account jene in einem anderen Account mit überwachen können, müssen sie dort eine passende Rolle annehmen dürfen. So können zum Beispiel die Handler von CloudWatch-Abonnements im AWS-Account mit dem internen Spitznamen „Ops“ eine Rolle im Account „Prod(uction)“ annehmen; diese erlaubt es ihnen, die AWS-Dienste Firehose (für die Nutzung von ECS) und/oder DynamoDB (für EBS) des anderen AWS-Kontos für Schreibzugriffe anzusprechen.

„Verteilte“ Bereitstellung: Segment.io nutzt zur Kostenkontrolle mehrere AWS-Accounts auf einer einzigen AWS-Abrechnung.
„Verteilte“ Bereitstellung: Segment.io nutzt zur Kostenkontrolle mehrere AWS-Accounts auf einer einzigen AWS-Abrechnung.
(Bild: Segment.io)

Den Entwicklern von Segment.io sind die Unzulänglichkeiten ihrer Lösung bewusst. So sei es dem Team zum Beispiel „nur“ gelungen, gerade einmal 80 Prozent der Kostenstellen abzudecken; eine vollständigere Sicht der Kostenstruktur ginge jedoch zu Lasten der Überschaubarkeit. Der Kompromiss habe sich aber bereits in barer Münze ausgezahlt. Dank der Optimierung der Cloud-Kosten falle dem Unternehmen pro Jahr eine Million US-Dollar quasi „vom Himmel“.

Tools zur Kostenkontrolle und -optimierung

Public-Cloud-Anbieter stellen ihren Nutzern zahlreiche native Tools bereit, um die Kostenkontrolle mehrerer Konten zu zentralisieren. Auf AWS können sich Unternehmen beim Verwalten von mehreren Konten mit den Diensten AWS Organizations und AWS Control Tower behelfen. Microsoft bietet die Dienste Azure Cost Management und Abrechnung sowie Azure Advisor Best Practice Recommendations.

Der Dienst AWS Organizations bietet Unternehmen die Möglichkeit, neue AWS Konten programmatisch zu erstellen und richtliniengesteuert von einer zentralen Stelle heraus zu verwalten. Unpraktisch ist es aber, dass sich einmal erstellte Accounts nicht direkt über den AWS Organizations-Service löschen lassen. Im Gegensatz zu AWS Organizations kann AWS Control Tower neue AWS-Konten gleich mit voreingestellten Infrastruktur-Bauelementen initialisieren. Dieser Ansatz gibt den Unternehmen zwar eine fein granulierte Kontrolle über die erstmalige Ressourcenprovisionierung, aber im Nachhinein nur geringe Flexibilität. Die Annahme der Unveränderlichkeit von Zugriffspraktiken beißt sich mit dem Konzept von AWS SSO und den Realitäten der Cloud-Bereitstellung.

AWS Organizations empfiehlt sich für Unternehmen, die den Nutzern ihrer AWS-Konten grundsätzlich über den Weg trauen, insbesondere, wenn sie ihre Softwareentwicklung per Infrastructure as Code betreiben. AWS Control Tower ist hingegen dann vorzuziehen, wenn starre Einschränkungen für AWS-Accounts erwünscht sind.

Ein Blick auf die Kosten der Multi-Cloud

Den Zugriff und die Zuweisung von Benutzerberechtigungen für alle Konten in AWS Organizations und AWS Control Tower können Unternehmen mit einem Dienst namens AWS SSO (AWS Single Sign-On) zentral kontrollieren. Dank der Integration von AWS SSO mit AWS Organizations und/oder Control Tower entfällt für Cloud-Nutzer das fehlerträchtige Jonglieren von mehreren Benutzeridentitäten.

Die Entsprechung auf Microsoft Azure nennt sich Azure Directory SSO (AD SSO, nicht zu verwechseln mit Microsoft Active Directory). AWS SSO unterstützt die automatische Bereitstellung (Synchronisierung) von Benutzer- und Gruppeninformationen aus Azure AD in AWS SSO unter Verwendung von SCIM v2.0. Microsoft distanziert sich von dieser SSO-Integration in Azure AD und empfiehlt stattdessen die AWS-IAM-Integration und den Einsatz von Richtlinien für bedingten Zugriff. Diese Integration soll es erlauben, cloud-übergreifende Zugriffe aus Microsoft Azure auf AWS-Ressourcen mittels IAM-Identitäten zu tätigen.

Beim Einsatz von AWS Control Tower ist es möglich, nach der Einrichtung von AWS SSO auch einfach auf Active Directory Federation Services (ADFS) umzustellen. Nach Abschluss der Konfiguration von ADFS lässt sich der Zugriff des SSO-Benutzers dann einfach über eine AWS Service Control Policy sperren.

Die „Multi-Cloudifizierung“ der Unternehmens-IT ist in vollem Gange. Der Trend hat inzwischen zahlreiche Drittanbieter von cloud-agnostischen Kostenoptimierungs-Werkzeugen auf den Plan gerufen. Denn die führenden Cloud-Anbieter sind anscheinend eher an Lockangeboten als an einer durchgängig nachvollziehbaren Preisgestaltung interessiert, von Kostensenkungsmaßnahmen ganz zu schweigen, zumal sie sich damit selbst schaden könnten.

Was sonst noch möglich ist

Cloud-übergreifende Zugriffe auf Infrastrukturressourcen reflektieren sich möglicherweise in allen beteiligten Clouds, weshalb sie stetig an Bedeutung gewinnen. Eine solche Lösung bietet seinen Kunden HPE. HPEs Portal GreenLake Central bringt die Private- und Public-Cloud von Microsoft Azure, AWS und GCP unter einen Hut. Unternehmen können sich über jeden Cloud-Service informieren, einen direkten Vergleich der verschiedenen Angebote anstellen, den Preis ermitteln, Compute-Instanzen oder ganze Cluster mit wenigen Klicks hochfahren und so ihre Multi-Cloud-Umgebung von einem Ort heraus ansteuern.

GreenLake Central gewährt den Nutzern kostensparende Einblicke in ihren Verbrauch der Cloud-Dienste. Es kann zum Beispiel ungenutzte Reservekapazitäten ausfindig machen und überdimensionierte Provisionierung in AWS, Azure oder GCP aufspüren. „Wir bewältigen das sogar in Echtzeit und wir können nach diesen Möglichkeiten für Kosteneinsparungen kontinuierlich suchen“, freut sich Erik Vogel, Global Vice President Customer Experience for HPE GreenLake bei HPE. Das sei „sehr schwierig“.

HPEs GreenLake Center erlaubt es den Verantwortlichen in Unternehmen, die verklausulierten Rechnungen von Amazon, Microsoft und Google leichter zu entziffern. Die HPE-Lösung ist kostenfrei, aber natürlich nicht ohne Eigennutz. Denn die gut informierten Nutzer können bei Interesse mit wenigen Klicks eine Testversion von HPEs Infrastrukturlösungen anfordern und dieses, wenn sie erst einmal auf den Geschmack gekommen sind, wie ein cloud-ähnliches Finanzierungsmodell vor Ort nutzen. Den Cloud-Anbietern ist so etwas natürlich ein Dorn im Auge.

Eine weitere Möglichkeit, die Kosten der Multi-Cloud in den Griff zu bekommen, besteht in der Verwendung von Drittanbieter-Tools wie CloudZero, welche beim Auftreten unerwarteter Änderungen ihrer Kostenstruktur Alarm schlagen, um einen manuellen Audit zu veranlassen.

Wer seine Cloud-Kosten also in den Griff bekommen möchte, muss strategisch vorgehen. Dank Multi-Cloud-fähiger Tools zur Kostenoptimierung können Unternehmen aber ihren bevorzugten Anbietern leicht(er) ein Schnäppchen schlagen.

* Das Autorenduo Anna Kobylinska und Filipe Pereira Martins arbeitet für McKinley Denali Inc. (USA).

(ID:47161940)