Jeder der rund 140 Dienste in AWS verfügt über eine eigene Kostenstruktur. Anwender können daher bei einer komplexen Cloud-Infrastruktur schnell den Überblick über entstehende Kosten verlieren. Amazon bietet daher mehrere Tools, die über anfallende Kosten vorab oder während der Nutzung informieren.
AWS erweitert seine in Regionen, Availability-Zonen, Datacenter, Edge Locations und lokale Edge-Caches aufgeteilte globale Infrastruktur stetig und passt sie der Nachfragesituation an, bzw. ist dieser idealerweise immer voraus.
Amazon profitiert von Skaleneffekten
AWS stellt daher heute jeden Tag so viel neue Server-Kapazität bereit, wie amazon.com im Geschäftsjahr 2003/2004 insgesamt nutzte (der Online-Händler verzeichnete damals 7 Mrd. USD Jahresumsatz).
Zuletzt wies Amazon.com 7 Mrd. USD Gewinn aus und gibt AWS-Skaleneffekte bei Einkauf und Produktion seiner Commodity-Hardware (AWS installiert darauf übrigens den Xen-Hypervisor) auch an Kunden weiter.
Wer das nicht glaubt, googelt nach „AWS-Preisreduzierungen“ oder schaut in die erwähnten AWS-Blogs unter der Kategorie Price Reduction nach. Hier ein Beispiel für SQL-Server Standard-Edition on EC2.
Einen Überblick über AWS-Preise erreicht man ausgehend von der Kosten-Portal-Seite mit einem Klick auf Service-Preise. Das Portal leitet aber bei Bedarf auch weiter zur Portalseite für Kosten-Optimierung und zu weiteren Ressourcen für den wirtschaftlichen Betrieb von AWS, welche diverse Whitepapers („How AWS Pricing Works“, „Introduction to Cloud Economics“, „Busiss Value of AWS“) oder Berichte von Analysten umfassen.
Beispiel AWS S3
Schaut man sich exemplarisch die Preise für den Speicherdienst S3 an, den ältesten AWS-Service, dann wird schnell klar, dass nicht nur die Preis- und Abrechnungsmodelle bei jedem Dienst variieren. Hier unterscheiden sich nicht nur die Plattform- deutlich von den Infrastruktur-Services, sondern auch pro Dienst sind verschiedene Kostenfaktoren zu berücksichtigen.
Abgerechnet wird aber immer nach Verbrauch. Bei S3 sind das zum Beispiel:
- Speicherpreis für das S3-Bucket/Monat, abhängig von Region und Speicherklasse, gestaffelt nach Erste 50 TB, Nächste 450 TB und mehr als 500 TB.
- Anforderungspreise über die S3-REST-API gestaffelt nach PUT-, COPY-, POST- und LIST-Anforderungen oder GET, SELECT-Anforderungen in Abhängigkeit von Region und S3-Speicherklasse.
- S3-Storage-Management-Preise gestaffelt nach Inventory, Analytics und Object-Tagging, ebenfalls abhängig von Region und Speicherklasse.
- Datenübertragung in die Cloud, bzw. das S3-Bucket (immer kostenlos) und aus der Cloud, gestaffelt nach 1GB/Monat, nächste 9,9999 TB/Monat, nächste 40 TB/Monat, nächste 100 TB/Monat und Mehr als 150 TB/Monat.
- Hinzu kommen gesonderte Datenübertragungspreise, wenn ein Benutzer die Objekte in einem S3-Bucket nicht über die S3-API, sondern über das AWS-eigene Content-Delivery-Netzwerk AWS CloudFront abruft.
Das kleine Kostenstrukturbeispiel soll nur illustrieren, dass allein die Kostenberechnung und Abschätzung einigen Aufwand verursacht, zumal S3 ja auch nur ein Dienst unter vielen ist, die in ein typisches AWS-Deployment (fehlertolerante Webseite, DR-Multi-Region-Failover, HPC) involviert sind.
Zunehmend intransparenter wird die Angelegenheit, je mehr Plattform-Services eingebunden sind, auch wenn AWS immer verlässlich nach Verbrauch abrechnet, also nach dem Pay-as-you-go-Prinzip.
AWS Cost Calculator
Provisioniert der Nutzer komplexe Anwendungsszenarien, die sich aus zahlreichen Diensten zusammensetzen, dann wird eine Kostenabschätzung zunehmend schwierig, vom Kosten-Management ganz abgesehen.
Abhilfe schafft hierbei unter anderem der AWS Cost Calculator. Wie man am S3-Endpunkt in der URL des Services erkennt, ist das Angebot selbst Server-los auf Basis einer statische Website auf S3 gehostet und kann auch genutzt werden, ohne ein AWS-Konto zu haben oder in AWS angemeldet zu sein.
Das Tool verwendet man, indem man die vom Cost Calculator auf der rechten Seite bereitgestellten Customer-Samples analysiert, wie etwa die „komplett kostenlose Marketing Website“, die serverless ohne EC2-Instanzen auskommt.
Da die Kosten von Region zu Region variieren, wählt man links oben zunähst die gewünschte Region aus und wechselt dann zum Reiter Voraussichtliche Monatsrechnung. Das Ergebnis lässt sich mit der gleichnamigen Schaltfläche auch nach CSV exportieren. Die Samples reichen von der erwähnten kostenlosen Marketing Website über Free Website on AWS bis zu Large Application.
Wer bereits ein Projekt vor Augen hat, gewinnt konkretere Einsichten, wenn er mit einem Klick auf Reset all von Grund auf startet und dann schön der Reihe nach mit Hilfe der links aufgeführten Services sein Beispiel-Szenario aufbaut.
In der Regel beginnt man mit EC2-Instanzen (virtuellen Maschinen), also Amazon EC2. Im Arbeitsbereich rechts davon gewinnt der Nutzer dann recht schnell einen Überblick über die mit EC2-Instanzen verknüpften Kosten.
Neben den Instanzen an sich sind das beispielsweise EBS-Volumes, elastische IP-Adressen, Datenübertragungskosten oder ein Load Balancer. Der Cost Calculator legt viel schneller offen, was der gewünschte Instanz-Typ kostet und welche Rabatte sich durch die Art des Kaufs (On Demand, Reserved Instances) und das Nutzungsprofil (100 %, 50 %) ergeben, als die zugehörige EC2-Produkseite.
Kosten für EC2-Instanzen berechnen
Hierzu fügt man mit zum Beispiel im Abschnitt Berechnen: Amazon EC2-Instances mit dem grünen Plus-Symbol eine neue Zeile hinzu, gibt eine Beschreibung ein, wählt die Anzahl der Instanzen, das Nutzungsprofil und dann in der letzten Spalte Fakturierungsoption, die Kaufart. Normalerweise wird jede Ressource in AWS On Demand gekauft und berechnet.
EC2-Instanzen, also virtuelle Maschinen als Grundlage nahezu aller weiterer AWS-Services, haben die Besonderheit, dass man sie nicht nur On Demand, sondern auch im Voraus (Reserved Instances), geplant in Voraus (Scheduled RI), Dedidziert (Dedizierte Instanzen oder Dedizierte Server) und auch zu einem deutlich rabattierten Preis am Spot-Markt erwerben kann. Dieser ergibt sich durch Angebot und Nachfrage, wobei man dort explizit ein Gebot abgeben muss.
Klickt man in das vorletzte Feld Typ, dann erhält man einen unmittelbaren Preisvergleich der einzelnen Instanz-Typen und Betriebssysteme. Hierbei offenbart sich auch eine enorme Preisbandbreite.
Sie reicht von 0,008 USD pro Stunde Reserved (60 % Einsparung gegenüber On Demand bei 100 % Nutzung) für eine t2micro-Linux-Instanz bis zu 31,24 USD pro Stunde für einen Windows Enterprise SQL-Server auf Basis einer h1.16xlarge-Instanz mit 64 virtuellen Kernen, 256 GB RAM und 10Gb/s Netzwerk-Anbindung.
Der AWS TCO-Calculator hingegen erlaubt Unternehmen vor der Migration in die Cloud einen Vergleich zwischen einer On Premise bereit gestellten Infrastruktur (frei wählbare Anzahl physischer oder virtuelle Server, Datenbanken und Storage) mit einem vergleichbaren Cloud-Setup in AWS.
Kostenkontrolle
Neben den genannten Tools stellt AWS noch viele andere Dienste und Werkzeuge zur Kostenkontrolle, Kostenanalyse und für das Kosten-Management zur Verfügung, wie etwa der schon erwähnte Kosten-Explorer im Billing-Dashboard.
Dieser liefert auf Knopfdruck detaillierte Berichte über die im gewählten Zeitraum erfolgte AWS-Ressourcen-Nutzung, die sich auch als CSV exportieren lassen. Man kann wahlweise vorgefertigte Berichte wie etwa
- Monthly costs by service
- Monthly costs by linked account
- Monthly EC2 running hours costs and usage
- Daily costs, AWS Marketplace
und eine Reihe weiterer Vorlagen verwenden oder mit New report selbst Berichte erstellen.
Es gibt aber auch verwaltete Dienste in AWS, die sich zur Kostenoptimierung eignen, wie der Trusted Advisor. Das Online-Analyse und Optimierungstool überprüft die Ressourcen im eigenen Konto nach Verbesserungsmöglichkeiten in den Bereichen Cost Optimization, Performance, Security, Fault Tolerance und Service-Limits, ist aber leider kostenpflichtig.