Grundlagen der Rechnungsstellung und Kostenoptimierung

LEITFADEN FÜR DIE ERSTEN SCHRITTE

Einführung

Wenn Sie die Cloud zum Hosten Ihrer Anwendungen und Systeme verwenden, ist es wichtig zu verstehen, wie das Abrechnungsmodell funktioniert und wie Sie Ihre Kosten optimieren können. Die Cloud ermöglicht es Ihnen, feste Ausgaben (wie Rechenzentren und physische Server) gegen variable Ausgaben zu tauschen und nur für die Ressourcen zu zahlen, die Sie verbrauchen. Abhängig von der Art der von Ihnen verwendeten Ressource gibt es eine Reihe verschiedener Abrechnungsdimensionen. Diese können von der Dauer der Ausführung einer Ressource über die Anzahl der gespeicherten, übertragenen oder verarbeiteten Daten bis hin zur Anzahl der durchgeführten API-Aufrufe reichen.

  • Der erste Schritt, um Ihre Abrechnung zu verstehen, besteht darin, zu sehen, über welche Ressourcen Sie verfügen und was deren Betrieb kostet. Das AWS-Abrechnungs-Dashboard in der AWS-Managementkonsole zeigt einen allgemeinen Überblick über Ihre aktuellen monatlichen Kosten sowie eine Prognose, die auf den aktuell laufenden Ressourcen basiert. Wenn Sie mit der Konsole noch nicht vertraut sind, empfehlen wir Ihnen, das Tutorial Erste Schritte mit der AWS-Managementkonsole zu lesen. Rechnungsinformationen gelten als vertraulich. Daher hat zunächst nur der Root-Benutzer eines AWS-Kontos Zugriff auf diesen Bereich der Konsole. Wenn Sie das Abrechnungs-Dashboard nicht sehen können, müssen Sie den Zugriff an Ihren AWS-IAM-Benutzer delegieren. Hier ist ein Beispiel für das Abrechnungs-Dashboard, das zeigt, welche Dienste derzeit genutzt werden und was sie kosten:

    Das Abrechnungs-Dashboard bietet Ihnen zwar einen Überblick und eine allgemeine Aufschlüsselung der Kosten, aber vielleicht möchten Sie sich die Kosten genauer ansehen. Dies kann mithilfe des AWS Cost Explorer erfolgen. Auf diese Weise können Sie sehen, welche Dienste in Anspruch genommen wurden und wie viel jeweils zu Ihren monatlichen Ausgaben beigetragen hat. Es gibt auch ein Diagramm, das die verschiedenen Werte anzeigt, und Sie können es verwenden, um nach einer Reihe von verschiedenen Dimensionen zu filtern, z. B. nach Region oder Dienstleistung. Hier ist ein Beispiel für das Abrechnungs-Dashboard:

  • Ja! Dies sollte eines der ersten Dinge sein, die Sie bei der Erstellung eines neuen AWS-Kontos einrichten. Folgen Sie den Anweisungen im Amazon-CloudWatch-Benutzerhandbuch, um eine Benachrichtigung einzurichten, die auf den geschätzten Gesamtkosten basiert. Je nach Bedarf können Sie zusätzliche Benachrichtigungen auf der Grundlage einer Reihe von Metriken oder Dimensionen einrichten.

  • Das kostenlose AWS-Kontingent bietet Kunden die Möglichkeit, AWS Services bis zu bestimmten Grenzwerten für jeden Service kostenlos zu erkunden und auszuprobieren. Das kostenlose Kontingent besteht aus drei verschiedenen Angebotstypen: einem 12-monatigen kostenlosen Kontingent, einem stets kostenlosen Angebot und Testversionen mit kurzer Laufzeit. Services mit einem kostenlosen 12-Monats-Kontingent ermöglichen Kunden, das Produkt innerhalb bestimmter Grenzen ein Jahr lang ab Erstellen des Kontos kostenlos zu nutzen. Services mit einem stets kostenlosen Angebot können von allen Kunden bis zu einem festgelegten Limit genutzt werden, so lange sie AWS-Kunden sind. Services mit einer kurzfristigen Testphase können für einen bestimmten Zeitraum oder bis zu einem einmaligen Limit genutzt werden, je nach gewähltem Service. Um zu sehen, welche Ressourcen für das kostenlose Kontingent Sie derzeit nutzen und wie viel davon Sie jeweils nutzen, öffnen Sie das Dashboard für das kostenlose Kontingent im Bereich Abrechnung Ihres AWS-Kontos. Hier ist ein Beispiel dafür, was Sie sehen werden:

    Wenn Sie noch kein Konto eingerichtet haben oder AWS zum ersten Mal verwenden, empfehlen wir Ihnen, sich mit der AWS-Managementkonsole vertraut zu machen und die Informationen zum Einrichten Ihrer AWS-Umgebung zu lesen.

  • Services auf AWS werden in der Regel nach Verbrauch abgerechnet, der auf verschiedenen Dimensionen basiert, z. B. der Dauer der Ausführung der Ressource, der Menge der verarbeiteten oder übertragenen Daten und der Anzahl der Anfragen. Für einige Dienste gibt es ein kostenloses Kontingent und Ihre monatlichen Kosten hängen von der Kombination der Dienste ab, die Sie nutzen.

    Wenn Sie nach einer Lösung mit festen, vorhersehbaren Kosten suchen, ist Amazon Lightsail ein Service, der benutzerfreundliche Virtual-Private-Server (VPS)-Instances, Container, Speicher, Datenbanken und mehr zu einem kostengünstigen monatlichen Preis bietet. Folgen Sie zum Beispiel diesem Tutorial zur Bereitstellung einer WordPress-Website auf Amazon Lightsail.

  • Sie können Ihre monatliche Rechnung auf verschiedene Weise reduzieren. Diese reichen von der Optimierung der von Ihnen verwendeten Instance- oder Datenbankmengen oder -größen über die Migration von lizenzierten Datenbanken zu Open-Source-Varianten, der automatischen Auf- und Abskalierung je nach Bedarf oder der Umstellung Ihrer Services auf AWS Lambda oder andere Serverless-Services, die bei Nichtnutzung auf null herunterskaliert werden. Eine weitere Möglichkeit besteht darin, Umgebungen und Ressourcen, die nicht genutzt werden, rund um die Uhr auszuschalten. Ein Beispiel: Eine Woche hat insgesamt 168 Stunden. Wenn die Entwickler die Entwicklungsumgebung nur während der Bürozeiten (8–18 Uhr [10 Stunden]) an sieben Tagen in der Woche nutzen, würden Sie durch die Abschaltung 98 Stunden pro Woche (ca. 58,33 %) einsparen. Um diese Lösung zu implementieren, können Sie sich den Instance Scheduler in AWS ansehen, um Instances und Datenbanken automatisch nach einem Zeitplan auszuschalten.
     
    In den folgenden Abschnitten werden spezifische Szenarien für die Verwendung von AWS Spot Instances, die Auto Scaling zur Auf- oder Abwärtsskalierung je nach Last und die Optimierung der Netzwerk-, Rechen- und Datenbankkosten behandelt.
  • Wenn Sie eine EC2-Instance hochfahren, wird sie als On-Demand-Instance bezeichnet, mit den damit verbundenen Betriebskosten pro Sekunde. Sie können sie auch als EC2-Spot-Instance einrichten, sodass Sie ungenutzte EC2-Kapazität in der AWS-Cloud nutzen können. Spot-Instances sind mit einem Rabatt von bis zu 90 % im Vergleich zum On-Demand-Preis verfügbar. Der Widerspruch besteht darin, dass es, da es auf ungenutzte EC2-Kapazität angewiesen ist, irgendwann beendet werden kann, wenn es zu einem Anstieg der On-Demand-Instances kommt, mit einer 2-minütigen Warnung, wann dies geschehen wird. Auf diese Weise können Sie alle laufenden Anfragen auf der Instance abschließen und sie ordnungsgemäß herunterfahren oder aussetzen, bis wieder Spot-Kapazität verfügbar ist. Sie können auch eine Kombination verschiedener Spot-Instance-Typen verwenden, um die Wahrscheinlichkeit zu verringern, dass nicht genügend Kapazität für Ihre Anfragen zur Verfügung steht. Weitere Informationen finden Sie im nächsten Abschnitt.

  • Wenn Sie Ressourcen auf der Grundlage der aktuellen Workload hoch- und herunterskalieren, haben Sie gerade genug Kapazität, um eingehende Anfragen zu bearbeiten. Für Amazon EC2-Instances kann dies durch die Verwendung von Auto Scaling und die Konfiguration von Skalierungsregeln auf der Grundlage von Metriken wie CPU-Last, Netzwerkein-/ausgang, Anzahl der Anfragen und mehr erfolgen. Für Workloads mit vorhersehbaren Spitzen, wie z. B. ein von einer Schule genutztes System, bei dem sich die meisten Benutzer um 7 Uhr morgens anmelden und mit der Nutzung beginnen, können Sie Auto Scaling mit prädikativer Skalierung so konfigurieren, dass die Skalierung nach einem Zeitplan erfolgt, z. B. zwischen 6:50 Uhr und 6:10 Uhr.

    Wie im vorherigen Abschnitt erwähnt, sind Spot-Instances eine weitere Möglichkeit, die Kosten für EC2-Instances zu senken. Mithilfe von Auto Scaling können Sie gemischte Instance-Flotten erstellen, die aus einer Kombination von On-Demand- und Spot-Instances bestehen, mit Optionen zur Auswahl der zu verwendenden Spot-Instances. Als Beispiel können Sie es so konfigurieren, dass Spot-Instances für m5.large und m5.xlarge verwendet werden, mit einer Gewichtung, die angibt, wie viel Kapazität jede davon bietet – in diesem Fall hat m5.xlarge doppelt so viel Rechenleistung wie m5.large so dass Sie ihm den Wert 2 und m5.large den Wert 1 zuweisen, damit Auto Scaling eine Entscheidung treffen kann, welcher Typ bei der Skalierung zu wählen ist. Die Größe der zu wählenden Spot-Instance kann auf der Grundlage des niedrigsten Preises konfiguriert werden, wobei die Instance mit den niedrigsten Kosten pro Einheit, wie mit den Gewichtungen gewählt wird, oder kapazitätsoptimiert, wobei der Instance-Typ mit der aktuellsten Spot-Kapazität ausgewählt wird, wodurch die Wahrscheinlichkeit einer Unterbrechung Ihres Workloads verringert wird.

    Wenn Sie Lambda-Funktionen für Ihre Anwendungen verwenden, gibt es das Open-Source-Tool AWS Lambda Power Tuning, das auf GitHub gehostet wird und Ihnen hilft, Code mit verschiedenen Lambda-Konfigurationen zu testen, um die beste Kombination aus Kosten und Leistung für Sie zu finden.

  • Ein guter Ausgangspunkt für die Kostenoptimierung ist die Analyse Ihrer EC2-Instance- oder Lambda-Funktionsgrößen auf der Grundlage des Verarbeitungsaufwands, den sie ausführen. Verschiedene EC2-Instance-Typen sind für unterschiedliche Workloads optimiert, z. B. Hochfrequenz-CPUs, hohe Speicherkapazität, schneller lokaler NVME-SSD-Speicher, angeschlossene GPUs für Machine Learning und hohen Netzwerkdurchsatz. Wenn Sie beispielsweise feststellen, dass Ihr Workload CPU-intensiv ist, ist es unter Umständen günstiger, die C5-Instance-Familie anstelle der M5-Allzweck-Instances zu verwenden. Umgekehrt könnte die Burstable T-Instance-Familie besser für Ihren Workload geeignet sein, wenn Sie nur periodische Spitzen bei der CPU-Auslastung feststellen. Um mit der Optimierung Ihrer Datenverarbeitung zu beginnen, können Sie den AWS Compute Optimizer verwenden, um laufende Workloads zu analysieren und Empfehlungen abzugeben.

  • Die Übertragung von Daten zwischen AWS-Regionen, Availability Zones (AZs) oder zwischen AWS und dem Internet ist mit Kosten verbunden. Sie können diese Kosten reduzieren, indem Sie Ihre Infrastruktur so gestalten, dass der Verkehr auf optimalen Routen geleitet wird. Der erste Schritt besteht darin, sich VPC-Endpunkte anzusehen, wenn Sie AWS-Services wie Amazon S3 oder Amazon ECR aufrufen. Wenn Sie einen VPC-Endpunkt in Ihrer VPC erstellen, werden Ihre Aufrufe an die unterstützten AWS-Services über diesen weitergeleitet und bleiben innerhalb des AWS-Netzwerks, anstatt von der VPC aus das Internet und dann zurück zum AWS-Netzwerk aufzurufen. Auf diese Weise können Sie die Kosten für ausgehenden Netzwerkverkehr vermeiden.

    Der nächste Schritt besteht darin, die Aufrufe zwischen Ihrer Infrastruktur zu optimieren. Bei der Bereitstellung über mehrere AZs hinweg können Sie Availability Zone Affinity verwenden, um sicherzustellen, dass Aufrufe innerhalb jeder Availability Zone so weit wie möglich weitergeleitet werden. Wenn Ihre Anwendung eine von Amazon RDS unterstützte Datenbank verwendet, können Sie Lesereplikate erstellen, sodass alle Lesevorgange mithilfe der Read Replica innerhalb derselben Availability Zone ausgeführt werden können.

     

  • Um mit der Optimierung der Datenbankkosten zu beginnen, können Sie zusätzliche Lesereplikate bereitstellen, um Abfragen aus der Primärdatenbank auszulagern, die nur Daten lesen. Dadurch wird Kapazität auf dem primären Knoten freigegeben, der alle Datenänderungen (Aktualisierungen, Einfügungen und Löschungen) verarbeitet. Dies hilft bei der Optimierung bis zu dem Punkt, an dem Sie beginnen müssen, die Datenbank-Instance bei schwankender Last nach oben oder unten zu skalieren. Sie können die Instance-Größe einer Amazon RDS-Datenbank ändern, aber dafür muss die Datenbank offline gehen, während der Instance-Typ geändert wird. Wenn Ihre Anwendung eine kontinuierliche Betriebszeit benötigt, lohnt sich der Einsatz von Amazon Aurora, einem relationalen Datenbankservice, der die Geschwindigkeit und Verfügbarkeit von kommerziellen High-End-Datenbanken mit der Einfachheit und Kosteneffizienz von Open-Source-Datenbanken kombiniert. Aurora ist vollständig kompatibel mit MySQL und PostgreSQL. Daher können vorhandene Anwendungen und Tools ausgeführt werden, ohne dass Änderungen erforderlich sind. Amazon Aurora Serverless ist eine bedarfsgesteuerte, skalierbare Konfiguration für Aurora, bei der die Datenbank automatisch hoch- und heruntergefahren wird und die Kapazität je nach Bedarf Ihrer Anwendung erhöht oder verringert wird.

  • Wenn Sie Ihren Workload so weit wie möglich optimiert haben und es eine feste Mindestlast gibt, die Sie unterstützen müssen, sollten Sie erwägen, einen Sparplan abzuschließen. Ein Sparplan ist ein flexibles Rabattmodell, das Ihnen dieselben Rabatte wie Reserved Instances bietet. Im Gegenzug verpflichten Sie sich, eine bestimmte Menge (gemessen in Dollar pro Stunde) Rechenleistung über einen Zeitraum von ein oder drei Jahren zu nutzen. Saving Plans sind in zwei Varianten erhältlich:

    Compute Savings Plans bieten die größte Flexibilität und tragen dazu bei, Ihre Kosten um bis zu 66 % zu senken (genau wie Convertible RIs). Die Pläne gelten automatisch für jede EC2-Instance, unabhängig von Region, Instance-Familie, Betriebssystem oder Tenancy, einschließlich derjenigen, die Teil von Amazon EMR, Amazon ECS oder einem Amazon EKS-Cluster sind. Sie können beispielsweise von C4- zu C5-Instances wechseln, einen Workload von Dublin nach London verschieben oder von EC2 zu AWS Fargate migrieren und dabei von den Sparplanpreisen profitieren, ohne etwas tun zu müssen.

    EC2 Instance Savings Plans gelten für eine bestimmte Instance-Familie innerhalb einer Region und bieten den größten Rabatt (bis zu 72 %, genau wie Standard-RIs). Genau wie bei Ris deckt Ihr Sparplan die Nutzung verschiedener Größen desselben Instance-Typs (z. B. c5.4xlarge oder c5.large) in einer Region ab. Sie können sogar von Windows zu Linux wechseln und gleichzeitig weiterhin profitieren, ohne Änderungen an Ihrem Sparplan vornehmen zu müssen.

  • Tools und Services zur Kostenoptimierung

War diese Seite hilfreich?