AWS Germany – Amazon Web Services in Deutschland

Schätzung der Gesamtbetriebskosten (TCO) für die Modernisierung von Workloads auf AWS mittels Containerisierung – Teil 1

von Kiran Kuppa und Keith Andruch, übersetzt von Tobias Nitzsche.

Einführung

Bei der Migration Ihrer lokalen Anwendungen in die Cloud können Sie eine spezielle Cloud-Migrationsstrategie anwenden. AWS bietet Unterstützung für die sieben beliebtesten Migrationsstrategien, bekannt als die „7 R’s. Die Auswahl der passenden Strategie für eine bestimmte Aufgabe hängt von den geschäftlichen Anforderungen und der Strategie der jeweiligen Organisation ab. Ein wichtiger erster Schritt bei der Entwicklung einer Geschäftsbegründung ist das Verständnis der Gesamtbetriebskosten (Total Cost of Ownership, TCO). Die Methoden zur Berechnung der TCO können variieren, je nachdem welche Daten verfügbar sind und wie viel Zeit man bereit ist, in die Analyse zu investieren. Unternehmen treffen oft Entscheidungen in zwei Schritten. Zuerst erfolgt eine grobe Kostenschätzung, um zu beurteilen, ob es sich lohnt, eine detailliertere Analyse durchzuführen. Diese Blogserie besteht aus zwei Teilen und beschreibt die Methoden, um schnell eine grobe Schätzung basierend auf zwei verschiedenen Szenarien zu erhalten: das erste Szenario nutzt nur Informationen über das Serverinventar, während das zweite nur auf Informationen auf Anwendungsebene basiert.

Ein üblicher Weg, den Organisationen einschlagen, um ihre Workloads auf AWS zu übertragen, ist die Umstellung ihrer Anwendungen von Server-basierten Hosting-Umgebungen auf moderne Orchestrierungsplattformen mittels Containerisierung. Container sind eine einheitliche Methode, um den Code, die Konfigurationen und Abhängigkeiten einer Anwendung in einem einzelnen Paket zu bündeln. Sie ermöglichen es Organisationen, Anwendungen schnell zu starten, bei Bedarf zu erweitern und als isolierte Prozesse zu betreiben, was für schnelle, zuverlässige und gleichbleibende Bereitstellungen in jeder Umgebung sorgt. Zudem verbrauchen Container weniger Systemressourcen und sind überall einheitlich einsetzbar.

Durch den Einsatz von Containern können Organisationen ihre Workloads effizienter erstellen, konfigurieren und verwalten. Das führt zu mehr Flexibilität, verbesserter Übertragbarkeit von Anwendungen und weniger Ausfallzeiten. Container eignen sich besonders für das Erstellen und Bereitstellen von Microservices, das Ausführen von Batch-Jobs, Machine Learning-Anwendungen und das Verschieben bestehender Anwendungen in die Cloud. Dieser Blogbeitrag bietet weitere Informationen darüber, wie die TCO für diesen Modernisierungsweg unter Verwendung der Container Services mit AWS berechnet werden können.

Modernisierung mittels Containern

AWS bietet drei verschiedene Möglichkeiten, um Container auszuführen und zu verwalten, je nachdem, wie viel Kontrolle Sie über die zugrunde liegende Hosting-Infrastruktur haben möchten. Die erste Option ist die Nutzung von Amazon Elastic Compute Cloud (Amazon EC2), was Ihnen ermöglicht Container direkt hosten zu können. Die zweite Möglichkeit ist AWS Fargate, eine serverlose Compute-Option, die den Betriebsaufwand reduziert. Dies ermöglicht es Ihren Teams, schneller zu veröffentlichen, Feedback zu erhalten und ihre Arbeit zu verbessern, was zu einer schnelleren Markteinführung führt. Die dritte Option ist AWS App Runner, ein vollständig verwalteter Dienst für Container-Anwendungen. Mit AWS App Runner können Sie containerisierte Webanwendungen und API-Dienste entwickeln, implementieren und betreiben, und das ohne vorherige Erfahrung in Infrastruktur- oder Containermanagement.

Berechnung der TCO für Containerisierung

In diesem Blog werden wir zwei Methoden vorstellen, um die TCO für einen modernisierten Workload, der in Containern betrieben wird, zu berechnen. Unabhängig von der gewählten Methode sind dabei fünf Schritte notwendig.

Eine umfassende TCO-Analyse erfordert die Berücksichtigung zweier Hauptfaktoren: die Kosten für die Nutzung von AWS-Ressourcen und den Aufwand, der für die Modernisierung der Anwendung durch die Implementierung von Containern erforderlich ist.

Schritt 1: Bewertung der aktuellen Umgebung

Zunächst ist es wichtig, Informationen über Ihre gegenwärtige Hosting-Umgebung zu sammeln. Dazu gehören Details zur Serverkonfiguration, zur Nutzung von Ressourcen wie CPU, Speicher und Speicherplatz sowie zu den darauf installierten Anwendungen. Für die Sammlung dieser Daten können Sie entweder Ihr vorhandenes Configuration Management Database System (CMDB) oder ein Discovery-Tool verwenden. Die so erfassten Informationen sind notwendig, um die Kosten für AWS-Ressourcen zu berechnen.

Es ist möglich, dass Ihnen einige der in diesem Schritt benannten Details fehlen, die für eine präzise Berechnung der TCO notwendig sind. In solchen Fällen werden wir unterschiedliche Szenarien durchgehen, um auch mit begrenzten Informationen eine aussagekräftige TCO-Schätzung zu erreichen.

Schritt 2: Auswahl der AWS Container Services

Im nächsten Schritt wählen Sie ein Container-Management-Tool Ihrer Wahl, um Ihre Anwendung zu hosten. Basierend auf den Kompetenzen Ihres Teams oder der generellen Ausrichtung Ihrer Organisation können Sie eine passende Plattform auswählen. Die Kosten dieser Lösung hängen von der gewählten Container-Orchestrierungsplattform ab.

Container-Management-Tools auf AWS lassen sich in drei Hauptbereiche gliedern: Registry, Orchestrierung und Compute. AWS bietet Services, die Ihnen ermöglichen, Ihre Containerbilder sicher zu speichern und zu managen, bietet eine Orchestrierung, die regelt, wann und wo Ihre Container laufen, und stellt flexible Compute-Ressourcen zur Verfügung, um Ihre Container zu betreiben. Mit AWS können Sie Ihre Container und deren Deployment verwalten, ohne sich um die darunterliegende Infrastruktur kümmern zu müssen.

AWS Container-Optionen:

Registry Amazon Elastic Container Registry
Orchestrierung Amazon Elastic Container Service Amazon Elastic Kubernetes Service Red Hat OpenShift Service on AWS
Compute AWS Fargate Amazon EC2 AWS App Runner
Tools AWS App2Container AWS Copilot [EN]

Die Wahl eines Containerdienstes bei AWS muss nicht strikt zwischen zwei Optionen erfolgen. Amazon ECS und Amazon EKS sind so konzipiert, dass sie reibungslos miteinander funktionieren. Sie teilen sich ähnliche Betriebsabläufe, integrierte Sicherheitsfunktionen, ein gemeinsames System für Identity and Access Management (IAM) und bieten konsistente Verwaltungswerkzeuge für die Berechnungs- und Netzwerkoptionen. Sie können die Einfachheit der vernetzten AWS-Dienste in Amazon ECS nutzen oder mit der Flexibilität von Kubernetes auf Amazon EKS Ihre eigene maßgeschneiderte Lösung erstellen. Hier finden Sie weitere Informationen und Hilfestellungen zum Vergleich von Amazon ECS und Amazon EKS.

Schritt 3: Zielarchitektur definieren

Um Ihre Workload zu modernisieren und die entsprechende Zielarchitektur festzulegen, sollten Sie zuerst den geeigneten Weg für die Modernisierung auswählen. Dabei gibt es verschiedene Optionen, wie zum Beispiel:

  • Option 1: Ausführen einer bestehenden monolithischen Anwendung in einem Container.
  • Option 2: Geringfügige Anwendungsänderungen, um von verteilten Architekturmustern zu profitieren.
  • Option 3: Umschreiben und Neugestaltung (Refactoring) von Anwendungen.

Wenn Sie diese Entscheidung getroffen haben, geht es darum, eine passende Zielarchitektur für Ihre Workload zu entwickeln. Dazu ist es wichtig zu wissen, wie viel Rechenleistung, Speicher und Speicherplatz benötigt werden und wie viele Container zum Einsatz kommen sollen. Diese Informationen sind entscheidend, um die TCO genauer zu bestimmen.

Wenn Sie weniger als zehn Anwendungen migrieren, lässt sich dies mit den in Schritt 4 beschriebenen Methoden gut bewältigen. Bei einer größeren Anzahl von Anwendungen, etwa 10, 100, oder gar beim Umzug eines kompletten Rechenzentrums, wird der Prozess jedoch komplexer. Ohne eine effiziente Strategie könnten Sie Monate damit verbringen, jede Anwendung einzeln zu bewerten, was das Risiko einer Analyseparalyse birgt. Um diesen Aufwand zu reduzieren, empfiehlt es sich hier, gemeinsame Modernisierungsmuster in Ihren Workloads zu erkennen. Verstehen Sie den gewünschten Grad an betrieblichem Aufwand für die Verwaltung dieser Workloads (z.B. Fargate vs. EC2) [EN] und ordnen Sie sie entsprechend ein.

In den folgenden Szenarien stellen wir Ihnen Beispiele vor, wie Sie diese Muster nutzen können, um die TCO bei einer großangelegten Migration zu berechnen. Hier finden Sie weitere Informationen über Muster bei Containern und Mikroservices.

Schritt 4: Plattformkosten berechnen

AWS ermöglicht Ihnen eine flexible Preisgestaltung mit dem „Pay-as-you-go“-Modell. Bei AWS zahlen Sie ausschließlich für die spezifischen Dienste, die Sie in Anspruch nehmen, und das auch nur für die Dauer deren Nutzung.

AWS Containerdienste-Preisgestaltung:

Registry Amazon Elastic Container Registry
Orchestrierung Amazon Elastic Container Service
(Kostenfrei)
Amazon Elastic Kubernetes Service Red Hat OpenShift Service on AWS
Compute AWS Fargate Amazon EC2 AWS App Runner
Tools AWS App2Container
(Kostenfrei)
AWS Copilot [EN]
(Kostenfrei)

Die Gesamtkosten für diese Lösung setzen sich aus mehreren Teilen zusammen: den Kosten für die Container Registry, die Kosten für die Container-Orchestrierung, die Kosten für Computing (inklusive Speicher) sowie die Kosten für verschiedene Werkzeuge.

Zusätzlich steht Ihnen der AWS Pricing Calculator zur Verfügung. Dies ist ein webbasiertes Tool, das Ihnen hilft, Kostenabschätzungen für Ihre AWS-Projekte zu erstellen. Sie können damit Ihre geplanten Lösungen modellieren, bevor Sie diese umsetzen, sich mit den Preisen der verschiedenen AWS-Dienste vertraut machen und die Details Ihrer Kostenschätzungen überprüfen.

Der AWS Pricing Calculator ermöglicht es Ihnen auch, die Kosten für einzelne Komponenten Ihrer Lösung zu berechnen.

Schritt 5: Kosten für die Modernisierungsbemühungen berechnen

Die Kosten für die Modernisierung hängen von verschiedenen Faktoren ab: der Komplexität der Anwendung, den verfügbaren Ressourcen und der benötigten Anzahl an Stunden an technischem Fachwissen. In der Regel gibt es eine oder mehrere Kombinationen aus diesen drei Optionen.

  1. Selbst durchführen: Kunden führen die Modernisierung selbst durch.
  2. AWS Professional Services: Hilfe beim Erzielen der gewünschten Geschäftsergebnisse mit AWS.
  3. AWS Partner Network: AWS-Kompetenzpartner für Migration.

Bitte kontaktieren Sie Ihren AWS-Kundenbetreuer oder den AWS-Vertriebssupport, um die genauen Preisdetails zu erhalten.

Anwendungsmodernisierung ist ein vielschichtiger Prozess, der oft eine gewisse Unklarheit mit sich bringt. In vielen Fällen ist es schwierig, den endgültigen Zustand zu definieren, ohne verschiedene Architekturen auszuprobieren, um sie an Ihre individuellen Geschäftsabläufe anzupassen. Dieser Artikel wird ein Szenario vorstellen, das Ihnen helfen kann, die Gesamtkostenanalyse durchzuführen, selbst wenn Sie nur begrenzte Informationen zur Verfügung haben.

Szenario 1: Schätzung der TCO nur mit Serverinventarinformationen

In diesem Szenario möchten wir die TCO analysieren. Dabei stehen uns ausschließlich die Details der Serverkonfiguration, allerdings keine Informationen auf Anwendungsebene zur Verfügung.

Die Kosten für die Containerisierung hängen maßgeblich von der Rechenleistung und dem Speicherplatz ab. Aus diesem Grund ist es entscheidend, eine „Right-Sizing-Übung“ [EN] durchzuführen. Dabei handelt es sich um einen Prozess, bei dem AWS-Instanztypen entsprechend den Leistungs- und Kapazitätsanforderungen Ihrer Workloads zu den geringstmöglichen Kosten zugewiesen werden. Darüber hinaus verringert die Containerisierung von Anwendungen den Ressourcenverbrauch der Anwendung und ermöglicht eine effizientere Nutzung der zugrunde liegenden Ressourcen. Die Container-Orchestrierungsebene verwendet Platzierungsstrategien, um dies zu erreichen. Gemäß Branchenstandards [EN] führt dies normalerweise zu einer zusätzlichen Kostensenkung von 23 %.

Wenn Sie nur Informationen über Serverinventar und -nutzung haben, wie Servernamen sowie bereitgestellte und genutzte CPU, Speicher und Speicherdetails, können wir folgenden Ansatz verfolgen.

1 – Workload-Bewertung

Beginnen Sie damit, Daten über den Serverbestand und die Auslastung zu sammeln, einschließlich Informationen zur CPU, zum Speicher und zu den Speicherressourcen. In VMware-Umgebungen können Sie diese Daten entweder aus vCenter beziehen oder auf Drittanbieter-Tools wie RVTools [EN, Extern] zurückgreifen.

Sobald Sie diese Daten zur Verfügung haben, können Sie sie auf deren Basis geeignete Amazon-EC2-Instanztypenableiten. Wenn Sie viele Server haben, können Sie das Amazon EC2 Instanzempfehlungstool im AWS Migration Hubverwenden.

Beispiel: Ihr Bewertungsergebnis könnte folgendermaßen aussehen. Um es hier einfach zu halten, betrachten wir lediglich 3 Server:

Server Name CPU zugeteilt CPU genutzt RAM zugeteilt RAM genutzt Speicher zugeteilt Speicher genutzt ——– zusätzliche Metriken
Server 1 8 25% 32 70% 500 GB 180 GB
Server 2 4 65% 16 60% 350 GB 220 GB
Server 3 16 56% 64 80% 750 GB 450 GB

Diese Zuordnung zum richtigen EC2-Instanztyp ergibt AWS EC2-Instanzempfehlungen

Server Name Vorgeschlagene Instance EBS Speicher
Server 1 m5.xlarge 180 GB
Server 2 t3.xlarge 220 GB
Server 3 m5.4xlarge 450 GB

2 – Kosten für Compute- und Speicherressourcen

Berechnen Sie die Kosten für EC2-Instanzen und Speicher mit dem AWS Pricing Calculator.

Beispiel:

  • Kosten für Server 1 pro Monat = EC2 $70,81/Monat (mit AWS Compute Sparplan) + EBS Speicher $14,40 = $85,21
  • Kosten für Server 2 pro Monat = EC2 $60,30/Monat (mit AWS Compute Sparplan) + EBS Speicher $17,60 = $77,90
  • Kosten für Server 3 pro Monat = EC2 $283,97/Monat (mit AWS Compute Sparplan) + EBS Speicher $36 = $310,97

3 – Einsparungen

Fügen Sie eine zusätzliche 23%ige Kostensenkung für Compute hinzu, um die Effizienzsteigerung durch Containerisierung zu berücksichtigen.

Beispiel:

  • Kosten für Server 1 pro Monat = EC2 $70,81/Monat * 23% = $54,52 + EBS Speicher $14,40 = $68,92
  • Kosten für Server 2 pro Monat = EC2 $60,30/Monat * 23% = $46,43 + EBS Speicher $17,60 = $64,03
  • Kosten für Server 3 pro Monat = EC2 $283,97/Monat * 23% = $218,65 + EBS Speicher $36 = $254,65

4 – Einmaliger Modernisierungsaufwand

Berechnen Sie die Kosten für den Aufwand der Modernisierung.

Beispielsweise, wenn Ihr Stundensatz für manuelle Arbeit auf $100 geschätzt wird und es 5 Stunden dauert, dann wären Ihre Modernisierungskosten

  • 5 Stunden x $100 Stundenressourcensatz = $500

5 – TCO

  • Gesamt-TCO = Summe der in Schritt 3 und 4 berechneten Kosten

Gesamt-TCO = Server 1 $68,92 + Server 2 $64,03 + Server 3 $254,65 + Modernisierungsaufwand $500 = $887,60

Fazit:

Die Berechnung der Gesamtkosten (TCO) für die Modernisierung von Anwendungen mithilfe von Containern kann eine komplexe Aufgabe sein. In diesem ersten Teil unseres Blogs haben wir verschiedene Container-Hosting-Optionen erkundet. Anschließend haben wir einen schrittweisen Ansatz entwickelt, um zu einer aussagekräftigen TCO-Schätzung zu gelangen. Dabei stützen wir uns auf die Erfahrung von AWS Professional Services und gängige Branchenannahmen. Es ist wichtig zu beachten, dass diese Methode dazu dient, grobe Kostenschätzungen zu erstellen, die frühzeitige Investitionsentscheidungen unterstützen sollen. Im Laufe des Projekts, während der Proof-of-Concept-Experimente, können auf Grundlage der Anwendungsarchitektur aktualisierte Kostenschätzungen erstellen werden.

Über die Autoren

Keith Andruch
Keith Andruch ist AWS Principal Enterprise Architect Leader mit Sitz in Toronto, Kanada. Er verfügt über umfassende Expertise in Unternehmensumwandlungen, Cloud-Migrationen, Automatisierung und dem Entwurf von Cloud-basierten Lösungen auf Amazon Web Services.
Kiran Kuppa
Kiran Kuppa ist Principal Solutions Architect bei AWS, spezialisiert auf Migrationen und Modernisierung. Kiran hat umfangreiche Erfahrungen darin, sowohl Greenfield- als auch Enterprisekunden bei der Adoption von AWS-basierten Lösungen zu unterstützen.