Amazon EC2: Performance richtig messen und optimieren!

Mehr und mehr Unternehmen setzen auf Amazon EC2-Instanzen, um Geschäftsanwendungen zu betreiben. Damit diese einwandfrei laufen, ist es von zentraler Bedeutung, stetig die Performance zu messen und zu optimieren – sowohl die Performance der Instanz als auch die der dort betriebenen Anwendung. Schließlich ist alles, was die Cloud in Bezug auf Flexibilität und Betriebseffizienz bietet, hinfällig, wenn eine Anwendung nicht richtig funktioniert.

In diesem Blogbeitrag erfahren Sie mehr über gängige Ansätze zum Messen und Verwalten der Leistung von EC2-Instanzen, sowohl über die AWS-eigenen Tools als auch über die Tools von Drittanbietern. Zudem zeigen wir, wie Sie mit IBM Turbonomic die Performance der darauf betriebenen Anwendungen optimieren und gleichzeitig Kosten sparen können.

Wir wünschen viel Spaß beim Lesen!

Was ist Amazon EC2?

Die weltweiten Cloud-Ausgaben werden im Jahr 2023 voraussichtlich 592 Milliarden US-Dollar erreichen (Quelle: Gartner). Nach Angaben der Synergy Research Group sind Amazon, Microsoft und Google die drei größten Cloud-Anbieter und haben zusammen einen Marktanteil von 72%. Amazon hatte im 3. Quartal 2022 einen Marktanteil von 34% und ist damit der führende Anbieter. Der meistgenutzte AWS-Service ist Amazon EC2.

Definition

Amazon Elastic Compute Cloud (EC2)-Instanzen sind virtuelle Server von Amazon Web Services (AWS), auf denen Nutzer Anwendungen ausführen können.

Amazon EC2-Instanzen überzeugen durch sofortige Skalierbarkeit, erhöhte Flexibilität und eine einfache Bereitstellung. Es gibt eine Vielzahl von Instanz-Typen für die unterschiedlichsten Anwendungsfälle. Diese umfassen unterschiedliche Speicher-, CPU-, Netzwerk- und Speicherkonfigurationen, um Nutzer optimal bei unterschiedlichen Ressourcenanforderungen zu unterstützen. Jeder Instanz-Typ verfügt über eine oder mehrere Instanz-Größen. Auf diese Weise lässt sich der ständig ändernde Anwendungsbedarf durch Skalierung besonders gut abdecken.

Vorteile

Wieso sollte ich meine Amazon EC2-Performance messen?

Für eine hohe Applikations-Performance und Cloud-Elastizität ist es essentiell, die EC2-Performance zu erfassen. So müssen Sie zunächst wissen, welche Ressourcen eine Anwendung benötigt, um deren Nachfrage befriedigen zu können und kontinuierlich Leistung zu erbringen. Die Messung der EC2-Performance ist demnach ein kontinuierlicher Prozess und keine einmalige Aktion.

Welche Tools messen welche Metriken?

Überwachung der Hardware mit Amazon EC2

Amazon EC2 Metriken

AWS liefert Nutzern verschiedene Metriken zu der Hardware, auf der die EC2-Instanzen ausgeführt. Dazu gehören:

  • Compute
  • Memory
  • Storage
  • IOPs/Throughput
  • Uptime
  • Discount Coverage
  • Hourly Rate
  • Region

AWS garantiert Nutzern die allokierte EC2-Ressourcenkapazität. Aufgrund der EC2-Mehrmandantenfähigkeit ist jedoch nur die Kapazität garantiert, nicht aber die Leistung. Aus diesem Grund greifen viele Nutzer auf AWS CloudWatch oder ein anderes Überwachungstool für detailliertere Leistungsdaten zu EC2-Instanzen zurück.

Mehr Visibility mit AWS Cloud Watch

AWS Cloud Watch Metriken

AWS Cloud Watch stellt ergänzend folgenden Metriken zur Verfügung:

  • CPU utilization percentage
  • Disk usage
  • Network
  • CPU credit usage
  • Status checks
  • Auto-scaling group metrics

CloudWatch meldet diese Metriken in 5-Minuten-Intervallen oder, je nach Budget, in maximal 1-minütiger Granularität. Diese Metriken gehen allerdings nicht über die virtuelle Hardwareschicht hinaus und die Anwendungs-Performance wird folglich nicht erfasst.

Die Metriken, die CloudWatch zur Verfügung stellt, geben folglich Aufschluss über die Instanz – jedoch nicht über die Performance der Anwendung selbst.

Wieso sollte ich zusätzlich die Anwendungsperformance messen?

Der digitale Geschäftserfolg hängt heute stark von der User-Experience ab. Eine 100-prozentige Verfügbarkeit der Anwendungen, einhergehend mit optimaler Performance, sind ein Muss und werden von Nutzern erwartet. Systeme zur Überwachung der Anwendungs-Performance sind daher essentiell.

Viele Entwickler versuchen die Performance so zu messen, wie sie ein Endbenutzer erfahren würde. Sogenannte Observability-Tools, wie IBM Instana oder der Grafana Enterprise Stack bieten diese Granularität.

Instana, zum Beispiel, bietet:

  • Genaue Echtzeitdaten
  • Kontinuierliche Erkennung von Microservices und Infrastruktur in Echtzeit
  • Leistungsstarke und einfach zu bedienende Analytik-Funktionen
  • Abbildung der Abhängigkeiten von Anwendungen
  • Automatisierte Analyse der Ursache (root cause) von Service-Level-Beeinträchtigungen
  • Skalierbarkeit in alle Richtungen

    Wie beschrieben, ist die Messung der EC2- und Anwendungs-Performance von entscheidender Bedeutung für die Endnutzer-Experience. Es ist aber auch wichtig, die Cloud verantwortungsvoll zu nutzen. Skalierbarkeit per Mausklick ist großartig, aber wenn Sie nur nach oben (oder nach außen) skalieren und nicht nach unten (oder zurück), dann kann das größte Versprechen der Cloud, die Elastizität, nicht eingehalten werden. Kein Entwickler oder Application-Owner wird sich wohl dabei fühlen, EC2-Instanzen herunterzuskalieren, ohne genau zu wissen, wie sich das auf die Performance der jeweiligen Anwendung auswirkt. Deshalb ist Elastizität für viele Unternehmen zu einem Wunschtraum geworden. Die Ankündigung von AWS Compute Optimizer, APM-Tools von Drittanbietern zu unterstützen, ist ein Beweis dafür, wie wichtig der Anwendungskontext für das Sizing von Ressourcen ist.

  • Vermeidung von Problemen, bevor sie entstehen

    Viele Unternehmen sind mit den von ihnen eingesetzten Cloud-Tools immer noch reaktiv in einem „Fehlerbehebungszyklus“ gefangen. AWS EC2 zum Beispiel benachrichtigt Sie per E-Mail, wenn ein Problem auftritt. Dann liegt es an Ihnen, Ihre Arbeit zu unterbrechen und das Problem zu lösen. Was wäre, wenn Sie nicht darauf warten müssten, bis etwas kaputt geht? Was wäre, wenn die Plattform, welche die Performance-Probleme verhindert, Skalierungsentscheidungen zuverlässig automatisch treffen könnte?

Schauen wir mal, wie IBM Turbonomic genau das macht!

Anwendungsperformance mit IBM Turbonomic messen und optimieren

Maßnahmen zur Cloud-Optimierung – zweckgebunden (purpose-built) und automatisierbar

Turbonomic identifiziert proaktiv Performance- und Kostenrisiken und bietet die passenden Maßnahmen (die speziell für die Automatisierung entwickelt wurden) an, um diese zu minimieren. CloudWatch hält zwar Werkzeuge bereit, um zu reagieren. Aber nur in Kombination mit Turbonomic können Sie Maßnahmen zur Ressourcenbeschaffung ausführen und/oder automatisieren und so Leistungseinbußen sowie Kostenüberschreitungen vermeiden.

Im Beispiel (siehe Abbildung 1) hat IBM Turbonomic 136 Skalierungsmaßnahmen identifiziert, die entweder Performance-Probleme vermeiden/beheben oder Kosten einsparen können. Turbonomic unterstützt AWS, Azure und GCP – einige dieser Skalierungsmaßnahmen gelten daher für Azure-Knoten, die AKS (Azure Kubernetes Service) unterstützen.

Die Aktionen sind nach Kosten sortiert – einige erfordern Investitionen (Erhöhung der Ressourcen für mehr Leistung), während andere zu Einsparungen führen (Reduzierung der Ressourcen für mehr Effizienz). Es gibt sogar Aktionen, die sich mit der Einhaltung von Richtlinien (Policies) befassen.

Alle möglichen Aktionen erhalten Sie auf einen Blick – und zwar nicht nur für Ihre Cloud-VMs, sondern auch, wie rechts zu sehen, für alle Elemente des Stacks. Jede aufgelistete Aktion ist nach Typ kategorisiert, sei es eine Lösch-, Skalierungs- (nach oben oder unten), Kauf-, Größenänderungs-, Bereitstellungs-, Verschiebe- oder Optimierungsaktion.

Abbildung 1

Automatisieren Sie kleine Verbesserungen für große Ergebnisse

Abbildung 2

Turbonomic zeigt, wie sich jede einzelne Maßnahme auf die Kosten auswirkt, wie viel pro Maßnahme gespart werden kann oder investiert werden muss. Und das sehr umfassend: so gibt es in dieser Demo-Umgebung 1197 Aktionen, von der jede einzelne Mikroverbesserungen in Bezug auf Leistung, Kosten oder Compliance bietet. Das Schöne an der Software ist, dass sie in dieser Größenordnung operieren kann – so ermöglicht die Ausführung und Automatisierung der Aktionen, die Vorteile von Tausenden von Mikroverbesserungen umzusetzen. Im Beispiel (Abb.2) zeigt Turbonomic, dass sich mit allen 1100+ Aktionen mehr als 23.000 US-Dollar pro Monat einsparen lassen.

Von Full-Stack-Visibility zu Full-Stack-Automatisierung

Die von Turbonomic bereitgestellten Maßnahmen lassen sich sicher automatisieren. Aus einem einfachen Grund: Die Ressourcenabhängigkeiten im gesamten Anwendungs-Stack werden berücksichtigt. Ein Nebeneffekt ist, dass Sie eine vollständige Visualisierung all Ihrer Anwendungen – in Abbildung 3 sind es mehr als 60 Geschäftsanwendungen – erhalten und genau sehen können, wie sie Ressourcen aus der zugrunde liegenden Infrastruktur verbrauchen (siehe Supply-Chain-Visualisierung links in Abb. 3).

Abbildung 3
Abbildung 4

Sie haben auch die Möglichkeit, die Ansicht auf das zu reduzieren, was gerade für Sie von Interesse ist: Mit Klick auf die Entität "Geschäftsanwendung" (business application) in der Lieferkette links, erscheint ein Pop-up. Dies gibt einen Überblick über die wichtigsten Geschäftsanwendungen, deren Performance und die Anzahl der ausstehenden Maßnahmen (siehe Abb. 4).

Benötigen Sie mehr Details zu einer einzelnen Anwendung, wählen Sie diese einfach aus einer Liste aus (siehe Abbildung 5).

Abbildung 5
Abbildung 6

Betrachten wir zum Beispiel die Anwendung SEDemoRobot OCP 4.7 AWS AdvEng (Abb. 6), eine Microservice-Anwendung, die von Instana überwacht wird und auf OpenShift in AWS läuft. In der Ansicht nutzt Turbonomic Metriken zur Antwortzeit und den Transaktionen (Durchsatz) von Instana.

Da Turbonomic den kompletten Anwendungs-Stack kennt – von der Anwendung über die Plattform bis hin zur Infrastruktur – erfasst es auch, dass die Anwendung auf zwei AWS-Knoten läuft. Tatsächlich gibt es eine Aktion, um einen weiteren Knoten (EC2-Instanz) bereitzustellen (Provisionierung), das OpenShift-Cluster nach oben zu skalieren und die Performance zu verbessern. Diese Art von Anwendungskontext gibt AppDev-Teams die Daten, die sie benötigen, um Vertrauen in die Automatisierung zu gewinnen. Auch das Wissen, dass die Plattform nicht nur aus Kostengründen verkleinert, sondern auch aus Leistungsgründen vergrößert wird, trägt dazu bei.

Abbildung 7

Fazit: Die Messung Ihrer EC2-Performance ist notwendig, aber nicht ausreichend!

Das ultimative Ziel, das Cloud-Nutzer anstreben sollten, ist eine außergewöhnliche Customer-Experience und Elastizität. Die Leistung Ihrer EC2-Instanzen zu messen ist wichtig, reicht aber nicht aus, um eine kontinuierliche Anwendungs-Performance zu den niedrigsten Kosten zu sichern. Hierfür braucht es Automatisierung, die Sie sicher nutzen können, Daten, die AppDev das Vertrauen in die Automatisierung geben, und eine Möglichkeit, Ressourcenentscheidungen in eigenen Systemen und Prozessen zu integrieren, damit alles automatisch abläuft. Ziel ist es, den menschlichen Eingriff und die Überwachung zu verringern und einen "Zero-Touch"-Präventionsprozess zu schaffen. Auf diese Weise können Sie den besten geschäftlichen Nutzen aus der Cloud ziehen.

All das und mehr bietet Ihnen IBM Turbonomic. Schauen Sie sich IBMs Live-Sandbox an und lernen Sie das Produkt selbst kennen. Oder fordern Sie eine Demo für ein Proof-of-Value-Engagement und einen schnellen Start von Turbonomic auf Ihrer Umgebung.

Über den Autor: Dominic Lehr

Dominic Lehr ist Principal bei der TIMETOACT GROUP. Er hat mehr als 10 Jahre Projekterfahrung im Bereich Monitoring und ist Teil des Geschäftsbereichs Monitoring und Service Assurance..

Dominic Lehr
Principal Monitoring & Service Assurance TIMETOACT GROUP +49 (0) 174 88 77 592

Nehmen Sie jetzt Kontakt zu uns auf!

Sie haben Fragen rund um Application Resource Management, IBM Turbonomic oder verwandte Themen? Schreiben Sie uns einfach eine Nachricht! Wir melden uns schnellstmöglich bei Ihnen.

* Pflichtfelder

Wir verwenden die von Ihnen an uns gesendeten Angaben nur, um auf Ihren Wunsch hin mit Ihnen Kontakt im Zusammenhang mit Ihrer Anfrage aufzunehmen. Alle weiteren Informationen können Sie unseren Datenschutzhinweisen entnehmen.

Bitte Captcha lösen!

captcha image