Amazon Web Services vs. Microsoft Azure – Wie entscheide ich mich für eine Cloud-Plattform?

18.12.2019

Möchte man die IT-Infrastruktur für seine Applikation nicht selbst betreiben, bietet es sich an, diese in die Cloud zu verlagern. Doch dann stellt sich die Frage: Welche Cloud-Plattform ist für mich am besten geeignet?

Denn wenn man heute eine Cloudanwendung entwickeln oder nutzen möchte, hat man die Qual der Wahl: Es gibt eine ganze Reihe von Cloud-Plattformen. In diesem Blogbeitrag schauen wir uns speziell zwei davon genauer an: Amazon Web Services und Microsoft Azure. Je nach Projektkontext stellt sich dann die Frage: Welche der beiden Cloud-Plattformen ist besser geeignet?
Beide Plattformen gehören zu den führenden Public Cloud Anbietern.

Cloud Plattformen im Vergleich
Abbildung 1: Cloud-Plattformen im Vergleich [1]
Laut einer Umfrage von RightScale nutzen in diesem Jahr ca. 61 % der befragten Benutzer Amazon Web Services und ca. 52 % Microsoft Azure. Damit ist AWS im Vergleich zum Vorjahr weiterhin die häufiger genutzte Cloud-Plattform, Azure konnte jedoch aufholen.

Cloud Computing-Modelle

Beide Plattformen bieten unterschiedliche Cloud Computing-Modelle an:

  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)


IaaS
beschreibt die Bereitstellung von IT-Infrastruktur Ressourcen und bietet in der Regel Zugriff auf Netzwerkfunktionen, Computer und Datenspeicher. Bei IaaS hat der Nutzer die meisten Freiheiten, der Provider stellt hier lediglich den Service der Virtualisierung von Servern, Speicher oder Netzwerken zur Verfügung [2].

Laut einer Analyse von Statista waren die Marktanteile am Umsatz im IaaS-Bereich zwischen 2016 und 2018 bei Amazon deutlich größer als die anderer Cloud-Anbieter.

Bei PaaS wird vom Provider die gesamte Infrastruktur bereitgestellt, also Betriebssystem und Laufzeitumgebungen. Das heißt, es ist keine Verwaltung der zugrundeliegenden Infrastruktur mehr notwendig.

SaaS geht noch einen Schritt weiter und bietet eine vollständige Anwendung, die vom Provider ausgeführt und verwaltet wird. Bei SaaS hat der Nutzer i.d.R. keine Verwaltungsrechte und kann daher keine Änderungen vornehmen [3].

PaaS für die eigene Entwicklung einer Cloudanwendung

Die Auswahl der Cloud-Plattform muss erfolgen, bevor man mit der Entwicklung seiner Applikation beginnen kann. Eine Ausnahme ist, wenn die Cloud-Plattform nur die Infrastruktur bereitstellt, ohne AWS oder Azure spezifische Funktionalitäten einzusetzen. Das heißt beim IaaS Cloud Computing-Modell ist ein Wechsel zu einem anderen Cloud-Provider in der Regel kein Problem. Der Nachteil ist allerdings, dass man sich um die Verwaltung der zugrundeliegenden Infrastruktur seiner Applikation weiterhin selbst kümmern muss.

SaaS bezieht sich in den meisten Fällen auf Endbenutzeranwendungen. Ein Beispiel dafür sind webbasierte E-Mail-Programme, bei denen weder die Infrastruktur noch die Funktionen des E-Mail-Programms verwaltet werden müssen.

Möchte man eine Cloudanwendung entwickeln, aber nichts mit der Verwaltung der zugrundeliegenden Infrastruktur zu tun haben, bietet sich somit PaaS als Cloud Computing-Modell an. Bei PaaS muss man i.d.R. nur die Anwendungen und Dienste verwalten, die man selbst entwickelt. Die Verwaltung aller anderen Komponenten übernimmt der Cloud Provider.

Doch für welchen Provider soll man sich entscheiden? Um eine Entscheidung treffen zu können, ist zunächst ein Überblick notwendig, welche Funktionalitäten die Cloud-Plattformen jeweils anbieten. Werfen wir also zunächst einen genaueren Blick auf die beiden Plattformen.

Amazon Web Services

Amazon Web Services (AWS) bietet eine globale Infrastruktur und mit ‚Pay as you go‘ eine flexible Kostenabrechnung. Alle AWS-Angebote werden nach Verbrauch abgerechnet, dabei variieren die Preise je nach Service [4].

Die AWS Ressourcen lassen sich flexibel gestalten. Beispielsweise lassen sich Server-Instanzen problemlos nach oben skalieren, wenn sich die Zugriffe auf eine Webanwendung erhöhen. Eine solche horizontale Skalierung mit mehreren parallelen Instanzen kann auch automatisch wieder nach unten skaliert werden, wenn die Last zurückgeht. Amazon Web Services können vor allem mit Linux optimal umgehen, mit Windows kann in AWS jedoch auch gearbeitet werden.

Die Cloud Computing-Plattform von Amazon ist in Regionen mit unterschiedlichen Rechenzentren gegliedert, um die Stabilität des Systems sicherzustellen und Auswirkungen von Ausfallzeiten zu minimieren. Durch die Verwendung mehrerer Availability Zones in einer Region können sehr ausfallsichere Systeme mit hoher Fehlertoleranz und geringer Latenz aufgebaut werden, da dadurch mehrere Instanzen bereitgestellt und die Daten repliziert werden. Der Service Amazon S3 ist beispielsweise auf die Nutzung aller Availability Zones in einer Region ausgelegt, wodurch für diesen Service eine Verfügbarkeit von 99,999999999 % erreicht werden kann [5]. Auch Hybrid Cloud-Architekturen sind mit AWS möglich, die eine Mischung aus Cloud, lokalen Rechenzentren und Edge-Standorten darstellen [6].

Hybrid Cloud
Abbildung 2: Hybrid Cloud [5]
Bei AWS hat man – je nach Anwendungsfall – die Auswahl zwischen unterschiedlichen Diensten. Beispielsweise die Amazon Elastic Compute Cloud (EC2), ein virtueller Server, auf dem entweder ein Linux- oder ein Windows-Server-Betriebssystem läuft. Amazon Simple Storage Service (S3) bietet hochskalierbare Speicherressourcen auf Abruf und stellt dafür unterschiedliche Speicherklassen zur Verfügung. Außerdem bietet AWS sowohl relationale als auch nicht relationale Datenbanken an. Amazon CloudFront ist ein globaler Netzwerkservice, der die Bereitstellung von Inhalten wie z.B. Websites, APIs oder Videoinhalten beschleunigen soll. Überwachen lassen sich die AWS Anwendungen mit Amazon CloudWatch. Der Dienst bietet Daten und aussagekräftige Erkenntnisse, um Anwendungen zu überwachen, einen Überblick über den Betriebszustand zu erhalten und die Ressourcennutzung zu verbessern [7].

AWS Architektur
Abbildung 3: AWS Architektur

Microsoft Azure

Die skalierbare Cloud Computing-Plattform aus dem Hause Microsoft stellt Cloud-Dienste wie IaaS, PaaS und SaaS weltweit bereit. Die Services richten sich hauptsächlich an Unternehmen und Entwickler. Ziel der Plattform ist es, Anwendern eine flexible Cloud-Infrastruktur zur Verfügung zu stellen, die sich schnell an individuelle Anforderungen anpassen lässt und den Betrieb einer eigenen IT-Infrastruktur überflüssig machen kann. Dabei bietet Azure auch zahlreiche Standarddienste wie virtuelle Maschinen, SQL-Datenbanken oder VPN-Gateways [8].

Microsoft betreibt Rechenzentren auf der ganzen Welt, wodurch die Azure Services mit einer hohen Verfügbarkeit verwendet werden können – unabhängig davon, an welchem Standort man sich befindet. Wie in Abbildung 3 zu sehen ist, ist Microsoft Azure aktuell in 54 Regionen verfügbar [9]. Aufgrund der verteilten Rechenzentrumsstruktur sind – abhängig vom jeweiligen Azure Dienst – Service Level Agreements möglich, die Verfügbarkeiten von bis zu 99,9 Prozent („Verfügbarkeitsklasse 3“) oder sogar 99,999 Prozent (Verfügbarkeitsklasse 5“) garantieren [10].

Azure Regionen
Abbildung 4: Azure Regionen [9]
Microsofts Cloud-Plattform setzt auf hybride Technologien. Das heißt, dass sich die Cloud-Services mit lokalen Rechenzentren verbinden lassen und nur ein Teil der Services, Anwendungen und Daten in die Cloud verlagert wird. Andere Microsoft Produkte wie z.B. Active Directory, Exchange, SharePoint, SQL-Server, Office 365, etc. lassen sich leicht in die Azure Cloud integrieren. Azures Schwerpunkt liegt auf Windows, aber Linux wird ebenfalls unterstützt.

Azure Architektur
Figure 5: Azure Architektur

Auch bei Azure kann man zwischen einer großen Anzahl an unterschiedlichen Diensten wählen. Beispielsweise Azure API-Apps, mit denen Backend-Anwendungen schnell und einfach erstellt und genutzt werden können. Daneben gibt es Azure App Services, um leistungsstarke Cloudanwendungen für Web- und Mobilgeräte zu erstellen. Außerdem werden verwaltete Datenbankdienste für eine ganze Reihe von unterschiedlichen Datenbanken bereitgestellt, z.B. die Azure Database for PostgreSQL oder die Azure Database for MariaDB. Für das Monitoring der Azure Anwendungen kann Application Insights verwendet werden. Das Application Performance Monitoring Tool hilft dabei, Probleme zu diagnostizieren und nachzuvollziehen, wie die jeweilige App von den Benutzern verwendet wird.

Gemeinsamkeiten und Unterschiede

AWS und Azure ähneln sich, was die Standardfunktionen angeht. Beide bieten virtuelle Computer, Datenbanken, Netzwerke und andere Cloud-Services an. Sie stellen Funktionalitäten aus allen drei Cloud Computing-Modellen bereit: IaaS, PaaS und SaaS.

Außerdem bieten beide Provider auch Serverless Computing an. Bei diesen häufig auch Function as a Service (FaaS) genannten Produkten, wird die zugrundeliegende Serverinfrastruktur noch weiter abstrahiert als bei PaaS. Es handelt sich um kurzlebige Laufzeitumgebungen, die von Amazon bzw. Microsoft dynamisch zugewiesen und skaliert werden und mit denen zum Beispiel Backend-Prozesse als Reaktion auf Ereignisse oder Zeitpläne ausgeführt werden können [11]. Bei Amazon werden diese als AWS Lambdas bezeichnet, bei Microsoft sind es Azure Functions.

Beide Provider bieten auch Lösungen für Application Performance Monitoring, IoT-Applikationen, Messaging-Dienste und Mobile Services an. Daneben gibt es Services für Authentifizierung und Autorisierung, Verschlüsselung sowie das Sichern und Wiederherstellen von Daten [12].

Insgesamt basieren beide Cloud-Plattformen auf einer zentralen Gruppe von Compute-, Speicher-, Datenbank- und Netzwerkdiensten. In den meisten Fällen herrscht bei beiden Plattformen eine grundsätzliche Äquivalenz zwischen den angebotenen Services [13].

Außerdem arbeiten beide Provider kontinuierlich an der Optimierung und Erweiterung ihrer Cloud-Services. Das Management der Services erfolgt bei beiden Plattformen über die jeweiligen Webportale und CLIs.

Zwar weisen die Funktionalitäten, die AWS und Azure bieten, große Ähnlichkeiten auf, allerdings sind die Ressourcen, die diese Funktionalitäten bereitstellen, häufig verschieden organisiert. Zwischen den Services, welche die beiden Plattformen anbieten, herrscht meist keine 100%ige Übereinstimmung. Zum Teil sind auch Funktionalitäten bei einer der beiden Plattformen in einem Service zusammengefasst, während die andere Plattform dafür getrennte Services anbietet [13].

Folgende Tabelle zeigt beispielhaft einen Vergleich zwischen einer Reihe von AWS und Azure Services:

Bereich AWS Azure Beschreibung
Compute – Virtuelle Server Elastic Compute Cloud-Instanzen (EC2) Azure Virtual Machines Es handelt sich um virtuelle Server, die Benutzern das Bereitstellen, Verwalten und Warten von Betriebssystem- und Serversoftware ermöglichen.
Compute – Serverlos AWS Lambda Azure Function Mit AWS Lambdas oder Azure Functions können Backend-Prozesse auf Basis von kurzlebigen Laufzeitumgebungen als Reaktion auf Ereignisse oder Zeitpläne ausgeführt werden.
Datenbank – NoSQL/DocumentDB AWS DynamoDB


AWS SimpleDB

Azure Cosmos DB Es handelt sich hierbei um global verteilte Multimodell-Datenbanken.
DevOps und Anwendungsüberwachung CloudWatch


AWS X-Ray

 Azure Monitor Die Services unterstützen das Sammeln, Analysieren und Behandeln von Telemetriedaten.
Netzwerk – DNS-Verwaltung Route 53 Azure DNS


Traffic Manager

Mithilfe dieser Services können Domainnamen gehostet und DNS-Einträge verwaltet werden.
Storage -Objektspeicher Simple Storage Services (S3) Azure Blob Storage Es handelt sich um Objektspeicherservices, mit denen große Mengen an Daten gespeichert und gesichert werden können.

Fazit

Welcher Cloudanbieter besser geeignet ist, hängt letztendlich vom konkreten Projekt und dessen Anforderungen ab. Deshalb ist der erste Schritt zur Wahl des richtigen Cloud Providers die Analyse der eigenen Anforderungen. Erst im nächsten Schritt kann bewertet werden, welcher Anbieter dazu am besten passt. In unseren Projekten verwenden wir sowohl Amazon Web Services als auch Microsoft Azure.

Eine andere Variante ist eine Multi-Cloud Strategie, was bedeutet, dass mehrere Cloud-Plattformen parallel genutzt werden. Vorteile davon sind eine höhere Flexibilität und geringere Abhängigkeiten von einem konkreten Cloud Provider. Auf letzteres wird im Blogbeitrag „Vorbeugung eines Vendor-Lock-Ins bei Cloud-Anbietern“ genauer eingegangen. Aufgrund der größeren Komplexität und höheren Kosten muss auch hier jedoch genau abgewogen werden, ob eine Multi-Cloud Strategie für den jeweiligen Anwendungsfall Sinn macht.

 

Welche FaaS-Plattform ist für Ihren Anwendungsfall die geeignete?

 


Quellen

[1] https://www.forbes.com/sites/janakirammsv/2019/03/03/10-key-takeaways-from-rightscale-2019-state-of-the-cloud-report-from-flexera/#7c94034f1396

[2] https://aws.amazon.com/de/types-of-cloud-computing/

[3] https://azure.microsoft.com/de-de/overview/what-is-cloud-computing/

[4] https://aws.amazon.com/de/pricing/

[5] https://aws.amazon.com/de/compliance/uptimeinstitute/

[6] https://aws.amazon.com/de/hybrid/

[7] https://www.cloudcomputing-insider.de/was-koennen-amazon-web-services-a-581787/

[8] https://www.cloudcomputing-insider.de/was-ist-microsoft-azure-a-667912/

[9] https://azure.microsoft.com/de-de/

[10] https://docs.microsoft.com/de-de/learn/modules/explore-azure-infrastructure/6-service-level-agreements

[11] https://www.cloudcomputing-insider.de/was-ist-serverless-computing-a-713889/

[12] https://docs.microsoft.com/de-de/azure/architecture/aws-professional/services

[13] https://docs.microsoft.com/de-de/azure/architecture/aws-professional/

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*