AWS Germany – Amazon Web Services in Deutschland

Optimieren Ihrer AWS-Infrastruktur für Nachhaltigkeit, Teil I: Datenverarbeitung

von Katja Philipp, Aleena Yunus, Otis Antoniou, und Ceren Tahtasiz; übersetzt durch Lars Reimann

Wenn Unternehmen ihr Geschäft auf Nachhaltigkeitspraktiken ausrichten, ist es wichtig hierbei alle funktionalen Ebenen zu betrachten. Wenn Sie beispielsweise eine neue IT-Umgebung erstellen, ausrollen und verwalten möchten und bei diesen Schritten jeweils die Auswirkungen auf den ökologischen Fußabdruck berücksichtigen möchten, erfordert dies fundierte Entscheidungsgrundlagen.

Diese vierteilige Blogserie stellt Strategien vor, welche dazu beitragen, Ihre AWS-Architektur in punkto Datenverarbeitung, Speicherplatz und im Bereich Netzwerk zu optimieren.

Im ersten Teil stellen wir Erfolgskriterien und Metriken für IT-Entscheider vor, wie die Datenverarbeitungsschicht in punkto Nachhaltigkeit angepasst werden kann. Diese werden ergänzt um konkrete Handlungsempfehlungen für IT-Architekten und Entwickler. Wir stellen wichtige Metriken, Dienste und Tools vor, damit Sie ihre Nachhaltigkeitsziele möglichst zielgerichtet erreichen können. Des Weiteren behandeln wir, wie diese Metriken in Amazon Cloudwatch analysiert und verbessert werden können.

Unser Einsatz für Nachhaltigkeit

Bei AWS sind wir bestrebt unser Unternehmen so umweltverträglich wie möglich zu betreiben. Wir arbeiten eng mit unseren Kunden zusammen, damit diese die Vorteile der Cloud für sich nutzbar machen und ihre IT-Infrastruktur laufend besser überwachen und optimieren. Im Bericht „The Carbon Reduction Opportunity of Moving to Amazon Web Services” ist zu lesen, dass unsere Infrastruktur bis zu 5 mal energieeffizienter betrieben wird als der europäische Durchschnitt. Darüber hinaus kann ein Umzug zu AWS die CO2-Bilanz ihres Workloads für die gleiche Aufgabe um bis zu 88% reduzieren.

Allgemein ist Nachhaltigkeit eine geteilte Verantwortung zwischen AWS und unseren Kunden. Wie Abbildung 1 zeigt, ist AWS verantwortlich für die Optimierung der Nachhaltigkeit der Cloud, während unsere Kunden für die Nachhaltigkeit in der Cloud verantwortlich sind.

Nachhaltigkeit in der Cloud

Abbildung 1: Das Modell der geteilten Verantwortlichkeit

Um den Energieverbrauch Ihrer Workloads zu reduzieren, müssen Sie Ihre Ressourcen effizient nutzen. „Die grünste Energie ist die Energie, welche wir nicht verbrauchen“ (original: „The greenest energy is the energy we don’t use“), sagte Peter DeSantis, Vice President von AWS Global Infrastructure. Aber wenn wir es doch tun müssen, wird die geringstmögliche Anzahl von Ressourcen und deren effizienteste Nutzung die geringsten Auswirkungen auf die Umwelt haben. Übertragen auf Ihre Architekturentscheidungen bedeutet das: Je effizienter Ihre Architektur ist, desto nachhaltiger wird sie sein.

Wir erkennen an, dass jede AWS-Architektur anders ist und dass es nicht nur die eine perfekte Lösung gibt. Bitte prüfen Sie daher zunächst, ob die vorgeschlagenen Empfehlungen Ihren spezifischen Anforderungen entsprechen.

Optimierung der Datenverarbeitungsschicht Ihrer AWS-Infrastruktur

Services zur Datenverarbeitung bilden die Grundlagen vieler Workloads und bieten somit großes Optimierungspotential. Schauen wir uns den proportionalen Energieverbrauch Ihrer Hardware und somit das Verhältnis zwischen Energieverbrauch und Auslastung an: Ein Server ohne Auslastung verbraucht weiterhin Energie, wie beispielsweise beschrieben in „The case for energy-proportional computing“. Somit können Sie die Effizienz Ihres Workloads erhöhen, wenn Sie die Datenverarbeitungsressourcen auf ein Minimum reduzieren und gleichzeitig eine hohe Auslastung anstreben. Der folgende Abschnitt enthält Empfehlungen, die Ihnen helfen Ihre Ressourcen effizienter einzusetzen und Kosten zu sparen.

Reduzierung ungenutzter Ressourcen und Maximierung der Auslastung

Im Artikel Energy-Proportional Computing: A New Definition wird beschrieben, dass Ressourcen zur Datenverarbeitung im Mittel 70% – 80% ausgelastet sein sollten. Der Grund hierfür ist, dass die Energieeffizienz schnell abnimmt, wenn diese Richtwerte unterschritten werden. Die folgende Tabelle zeigt weit verbreitete AWS-Services zur Datenverarbeitung, die wichtigsten Metriken in diesem Zusammenhang und ein Verweis auf die entsprechende Dokumentation.

AWS Service Metrik Quelle
Amazon Elastic Compute Cloud (Amazon EC2) CPUUtilization Auflisten der für Ihre Instanzen verfügbaren CloudWatch-Metriken
Total Number of vCPUs AWS-Kosten- und Nutzungsberichte
Amazon Elastic Container Service (Amazon ECS) CPUUtilization Verfügbare Metriken und Dimensionen
Amazon EMR IsIdle Überwachen von Metriken mit CloudWatch

Sie können diese Metriken mit der in Abbildung 2 dargestellten Architektur überwachen. Allgemein bietet CloudWatch eine einheitliche Sicht auf alle Ihre Ressourcenmetriken.

Diagramm wie CloudWatch Ihre Ressourcen überwacht

Abbildung 2: CloudWatch überwacht Ihre Ressourcen zur Datenverarbeitung

Mit einem AWS Kosten- und Nutzungsbericht (AWS-CUR) können Sie Ihren Ressourcenverbrauch in AWS detailliert nachvollziehen. Im Rahmen unserer öffentlichen AWS-Beispiele haben wir ein Lösungskonzept ‚AWS Usage Queries‘ zur Erstellung, Speicherung, Abfrage und Visualisierung dieser Daten erstellt. Diese wird in Abbildung 3 dargestellt und stellt ein Template mit Hilfe des AWS Cloud Development Kit (AWS CDK) bereit welches Sie für die Erstellung Ihrer eigenen Berichte anpassen können.

Diagramm AWS Kosten- und Nutzungsberichte

Abbildung 3: AWS Kosten- und Nutzungsberichte zur Überwachung Ihrer Datenverarbeitungsressourcen

Allgemein empfehlen wir die folgenden Dienste und Tools, um ungenutzte Ressourcen zu reduzieren und die Auslastung zu maximieren.

  • Integrieren Sie Amazon EC2 Auto Scaling. Wenn Sie Amazon EC2 Auto Scaling verwenden, skaliert Ihr Workload automatisch in Abhängigkeit des Bedarfs hoch oder runter.
    • Konfigurieren Sie geplante- oder dynamische Skalierungsstrategien basierend beispielsweise auf den Metriken ‚Prozessorauslastung‘ oder ‚eingehendem- bzw. ausgehendem Netzwerkdatenverkehr‘.
    • Konfigurieren Sie den AWS Instance Scheduler und ‚Geplante Skalierung für Amazon EC2 Auto Scaling‘ um Ressourcen nur dann zu starten, wenn diese auch wirklich gebraucht werden. Zum Beispiel an Werktagen oder zu Ihren Geschäftszeiten.
  • Wählen Sie die korrekte Größe Ihrer Ressourcen mit Hilfe des AWS Cost Explorers, AWS Graviton und dem AWS Compute Optimizer. Wenn Sie sich für eine bestimmte Instanzgröße entscheiden, sollten Sie stets alle Anforderungen des Workloads berücksichtigen.
    • Prüfen Sie die Einsatzmöglichkeit von T-Instanzen. Die T-Instanz-Familie bietet eine Baseline-CPU-Leistung mit der Möglichkeit, jederzeit und so lange wie erforderlich über die Baseline zu springen. Dies kann die Überprovisionierung Ihrer Instanzen begrenzen.
    • Nutzen Sie die Empfehlungen des AWS Cost Explorer für Ihren Workload. Der Cost Explorer zeigt Ihnen beispielsweise an ob bestimmte Instanzen überprovisioniert sind und welche Möglichkeiten zur Kostenreduzierung und Effizienzsteigerung existieren.
    • Erhöhen Sie die Effizienz Ihres Workloads indem Sie auf AWS-Graviton-Prozessoren wechseln. AWS-Graviton3-Prozessoren sind das neueste Mitglied der AWS-Graviton-Prozessorfamilie. Sie bieten eine bis zu 25 % bessere Rechenleistung, eine bis zu 2x höhere Gleitkommaleistung und eine bis zu 2x schnellere kryptografische Workload-Leistung als AWS-Graviton2-Prozessoren.
  • Führen Sie eine serverless- oder eventbasierte Architektur ein. Prüfen Sie, ob in Ihrer Umgebung der Einsatz von serverless- oder eventbasierter Architektur möglich ist um Ihren Workload insgesamt zu optimieren. Serverless-Architekturen erfordern kein Management von physikalischen Servern mehr, da diese Schicht von AWS Services abstrahiert wird. Da die Kosten von Serverless-Architekturen üblicherweise mit der Nutzung korrelieren, steigt insgesamt die Effizienz Ihres Workloads.
    • Nutzen Sie stets eine eventbasierte Architektur für asynchrone Workloads, damit Datenverarbeitungsressourcen nicht unnötig auf eine Ausführung warten müssen.

Anpassen der Nachfrage an das vorhandene Angebot

Sie können die Nachfrage so anpassen, dass sie besser dem vorhandenen Angebot entspricht, anstatt eine Anpassung des Angebots an die Nachfrage durch Methoden wie automatische Skalierung vorzunehmen. Diese Strategie ist vor allem für flexible Workloads sinnvoll, bei denen die genaue Ausführungszeit eines bestimmten Vorgangs nicht relevant ist. Dazu könnte beispielsweise eine nächtliche, sich wiederholende Aufgabe gehören. Es ist auch möglich, Aufgaben, die zeitlich unterbrochen werden können, später fortzusetzen.

Wir empfehlen die folgenden Services und Tools, um die Client-Anfragen an das bestehende Angebot anzupassen:

  • Benutzen Sie Amazon EC2 Spot-Instanzen. Mit Amazon EC2 Spot-Instanzen können Sie die Vorteile nicht genutzter EC2-Kapazitäten in der AWS Cloud nutzen. Wenn Sie die benötigten Ressourcen and die zur Verfügung stehende EC2 Instanzkapazität anpassen, steigern Sie insgesamt ihre Effizienz und reduzieren gleichzeitig ungenutzte Kapazitäten.
    • Durch Spot-Instanzen ist ein Einparpotential von bis zu 90% gegenüber On-Demand Instanzen möglich.
    • Benutzen Sie Spot-Instanzen beispielsweise für Ihre fehlertoleranten, flexiblen und zustandslosen Workloads, welche gegebenenfalls unterbrochen werden können.
  • Wenden Sie Jitter auf geplante Aufgaben an. Vermeiden Sie Lastspitzen, indem Sie Jitter auf geplante Aufgaben anwenden und zeitlich flexible Workloads verschieben.
    • Prüfen Sie, ob Ihre Aufgaben so verteilt werden können, dass sie zu einer zufälligen Zeit innerhalb der geplanten Stunde ausgeführt werden.
    • Vermeiden Sie die Ausführung zur vollen Stunde, was in vielen Fällen dem Standardverhalten entspricht. Es empfiehlt sich stattdessen eine Ausführung einer geplanten Aufgabe zwischen Minute 2 und 58 einer Stunde um Lasten besser zu verteilen.

Fazit

In diesem Blogpost wurden Schlüsselmetriken und empfohlene Maßnahmen diskutiert, die Sie ergreifen können, um Ihre AWS-Infrastruktur für Ressourceneffizienz zu optimieren. Dies wiederum verbessert die Nachhaltigkeit Ihrer Rechenressourcen.

Wenn Ihr Unternehmen wächst, ist es üblich, dass Metriken wie „Total vCPUs hours“ zunehmen. Deshalb ist es wichtig, diese Kennzahlen pro Arbeitseinheit zu erheben, z. B. die Anzahl der vCPUs pro 100 Benutzer oder Transaktionen. Auf diese Weise messen sie KPIs unabhängig von Ihrem Unternehmenswachstum.

Im nächsten Teil dieser Blogpost-Serie zeigen wir Ihnen, wie Sie den Speicherbereich Ihrer IT-Infrastruktur für die Nachhaltigkeit in der Cloud optimieren können!

Mehr erfahren

Blogartikel aus dieser Serie

Verwandte Informationen