Eines der verwirrensten Dinge die ich bei AWS gefunden habe war die Rechnungsstellung. Es gibt Werkzeuge, die helfen sollten, die Details der Rechnung zu verstehen. Aber gerade am Anfang sind die eher furchterregend. Sie wirken eher willkürlich und in keinem Fall konsistent.
Mein Kunde betreibt drei Zonen mit ungefähr 50 EC2 Instanzen. Ein paar zeitbasierte Instanzen helfen in den Hauptstoßzeiten die Last zu verteilen. Ein paar der Instanzen sind auch “reserviert”.
On-Demand (Auf Abruf) Instanzen sind virtuelle Maschinen, die immer laufen sobald man den “Start”-Knopf gedrückt hat. Man zahlt den vollen Preis dafür, was für eine t2.large Instanz ungefähr 80 US Dollar beträgt.
Wenn man sich aber sicher ist, dass man die Instanz für ein Jahr benötigt, kann man sie aber auch für ca. 58 USD haben. Dafür muss man sie aber auch für ein Jahr bezahlen, egal ob man sie dann tatsächlich benötigt oder nicht.
Wenn man die gesamten Kosten sogar im voraus bezahlt, kann man sich sogar mehr sparen. Die Differenz ist allerdings nur 29% zu 34%. Das ist dann nicht so viel wenn man “nur” 50 Instanzen hat und sich etwas flexibilität bewahren möchte.
Selbstverständlich kann man sich auch Instanzen für drei Jahre im voraus reservieren, dann könnte man sich bis zu 50% sparen. Aber… drei Jahre! Da kann eine ganze Menge passieren. Und wenn man sich auf 10 Instanzen á 40 USD festlegt… wow. Man muss sich da schon sehr sicher sein, und ich bezweifle, dass sich irgendein Startup so sicher sein kann.
Reservierungen können die Kosten auf einen vernünftigen Preis halten. Falls Ihnen jemand erzählt hat Amazon Webservices wäre günstig, dann hatte er sicher auch Reservierungen im Hinterkopf.
In userem Fall reservierten wir alle Instanzen, die absolut überlebensnotwendig für unser Angebot ist. Wir benutzen “On-Demand” für alles, was skaliert wenn wir mehr Power brauchen.
Es gibt einige hilfreiche Werkzeuge in der “Rechnungsseite” um unbenutzte reservierte Instanzen zu identifizieren. Zum Beispiel gibt es den “Reserved Instances Utilization Report” (Reservierte Instanzen Benutzungsreport).
Reservierte Instanzen (Screenshot)
Wie man auf den obigen Bild sehen kann, gibt es hier eine gestoppte reservierte Instanz. Die “Use Rate” (Benutzungsanteil) geht gegen Ende Februar ziemlich nach unten. Der Bericht besagt, es wären lediglich 50%. Wir nutzen die Instanz nicht für Auto-Scaling, also wie kann es bei 50% liegen? Der Grund ist, wir haben zwei Instanzen diesen Typs und wir nutzen eben nur eine.
In der Tabelle unter dem Diagram sehen wir, wie viel wir einsparen. je mehr reservierte Instanzen wir haben, so mehr können wir einsparen. Falls man aber nicht aufpasst, kann man aber auch alle Vorteile der Reservierung verlieren indem man die falschen Instanz-Typen einschaltet.
Falsche Instanz-Typen? Yap: eine Reservierung ist nur gültig, wenn die Instanz genau in den Reservierungs-Typ hat aber auch in der gleichen Region läuft, in der reserviert wurde.
Aber dieser Bericht ist nicht der Einzige, der beim Überwachen hilft.
Es gibt noch einen anderen Bericht, “Daily Costs” (Tägliche Kosten). Es ist eine Art Break-Down Bericht von den Beträgen, die man täglich für EC2 ausgibt.
In diesem Bild sieht man, wie wir fast 1600 USD am ersten Tag des Monats ausgeben, während alle anderen Tage mit lediglich 270 USD auskommen. Wie ist das möglich?
Dieser Bericht brachte mich ganz schön zum grübeln. Wie ich herausgefunden habe, wird am ersten Tag zunächst alle Reservierungen berechnet (zu den “On-Demand”-Instanzen). Das ist natürlich OK so, denn man muss die Instanzen ja in jedem Fall bezahlen. Ich hatte dann natürlich erwartet, das die anderen Tage lediglich die “On-Demand”-Instanzen beinhalteten.
Aber nein. Als der Monat fortschritt, würden die Tageskosten der reservierten Instanzen vom ersten des Monats weggenommen und dem jeweiligen Tag des Monats hinzugerechnet werden. Die unbenutzten reservierten Instanzen würden aber weiterhin am ersten Tag berechnet bleiben. Mit anderen Worten: falls man alle seine reservierten Instanzen benutzt, müsste am Monatsende der erste Tag ungefähr so aussehen wie alle anderen Tage. Falls das nicht der Fall ist, würde man einen deutlichen Peak am Monatsersten sehen, so wie das hier der Fall ist.
Wir nutzten nicht alle Reservierungen. Die Tageskosten waren 80 USD: Dann korrigierten wir unseren Fehler und plötzlich hatten wir 100 USD Tageskosten. Das war zunächst erstmal erschreckend! Bis ich dann verstand, dass die Reservierungskosten vom Monatsersten umverteilt wurden.
Ein anderer, großartiger Bericht ist der Instanzen Nutzungsbericht.
Falls Sie die Gruppierung mit “Kaufoption” einstellen, können Sie sehen wie viel Sie für Reserviert versus “On-Demand”-Instanzen ausgeben. Oben kann man sehen, wie wenig wir für Reservierungen bis Mitte-Februar ausgeben. Wir haben unseren Fehler korrigiert und dann mehr Reservierungen durchgeführt.
Die tatsächlichen Kosten am Anfang des Monats waren höher als man in diesem Diagram sehen kann. Der Grund war, dass man nur sieht was man tatsächlich benutzt, und nicht, was die tatsächlichen Kosten verursacht. Am Monatsanfang konnte man eben nicht die zusätzlichen Kosten der unbenutzten Instanzen sehen.
Später haben wir dann fast alle Reservierungen auch genutzt. Das ist dann ein aussagekräftigerer Bericht. Generell sollte man die Anzahl der reservierten Instanzen x 24 Stunden für die Benutzung jeden Tag sehen.
Wenn man zum Beispiel 10 reservierte Instanzen hat, sollte man also 240 Stunden Benutzung sehen. Wenn man diese Zahl nicht sieht, hat man nicht alles genutzt was man reserviert hat.
In unserem Fall konnten wir die Anzahl der “On-Demand”-EC2 Instanzen deutlich senken, weil wir einige große reservierten Maschinen wieder verwendet haben, die sonst heruntergefahren wären.
Reservierungen helfen. Je “sicherer” man über seine Umgebung ist, um so mehr kann man auch einsparen. Aber eine Übersicht zu behalten, das ist hart.
Was man unbedingt wissen muss: die Berichte aktualisieren sich dynamisch. Mein Rat ist, die Berichte gerade am Anfang täglich anzusehen. Das hat mir geholfen, zu verstehen, wie sich was verändert.
Auch die “Benutzungsberichte” zu prüfen ist enorm wichtig. Solange man alles nutzt, was man bezahlt, ist man meistens schon auf der sicheren Seite.
Und letztlich: es gilt eine Balance zwischen “für immer behalten”, “ich brauch das bestimmt für ein Jahr” und “Flexiblität” zu finden. Wie bei fast allem in Leben, kostet Flexibilität einfach immer etwas mehr.
Tags: #aws #amazon web services #EC2