Getty Images/iStockphoto

Amazon ECS und Kubernetes: Welches Tool nutzen Sie auf AWS?

Lernen Sie die Grundlagen von Amazon ECS und Kubernetes sowie EKS und Fargate kennen, bevor Sie eine Anwendungsarchitektur für Ihre Workloads auf AWS auswählen.

IT-Teams haben mehrere Möglichkeiten, containerisierte Anwendungen auf AWS auszuführen. Einige Unternehmen werden sich für Kubernetes entscheiden, einen Open-Source-Dienst, der de facto die erste Wahl für die Container-Orchestrierung ist, während andere stattdessen den proprietären Orchestrierungsdienst von AWS verwenden möchten.

IT-Teams haben die Wahl, die zugrunde liegenden VMs selbst zu kontrollieren oder diese Verwaltungsaufgaben Amazon zu überlassen. Die Entscheidung für einen bestimmten Ansatz hängt von mehreren Faktoren ab. Informieren Sie sich über die Optionen für die Bereitstellung von Containern auf AWS und finden Sie heraus, welcher Container-Orchestrierungsservice sich am besten für Ihr Projekt eignet.

Was ist Amazon ECS?

Amazon Elastic Container Service (ECS) ist ein verwalteter Container-Service, der auf einem von Amazon entwickelten, proprietären Orchestrator basiert. ECS ist mit anderen AWS-Services wie Amazon EC2, AWS Fargate und Amazon Elastic Container Registry integriert und optimiert die Bereitstellung und Verwaltung von Container-Anwendungen.

Vorteile von Amazon ECS

Zu den wichtigsten Vorteilen von ECS gehören die folgenden:

  • vollständig verwalteter Service: ECS-Kunden müssen keine Container-Orchestrierungssoftware installieren oder die zugrunde liegende Host-Infrastruktur bereitstellen. Der Service stellt alle Kernressourcen zur Verfügung, die für die Bereitstellung von containerisierten Anwendungen als vollständig verwalteter Service erforderlich sind.
  • mehrere Bereitstellungsoptionen: ECS unterstützt die Bereitstellung von Containern mit EC2-Instanzen, die der Kunde selbst verwaltet. Das erhöht den Verwaltungsaufwand etwas, bietet aber mehr Kontrolle. Darüber hinaus können Kunden AWS Fargate verwenden, das automatisch die Container-Host-Infrastruktur bereitstellt.
  • native Sicherheit: Amazon ECS ist nativ mit dem AWS Identity and Access Management (IAM) Framework und seiner Überwachungssoftware integriert, um grundlegende Zugriffskontroll- und Sicherheitsüberwachungsanforderungen zu erfüllen.
  • Rabattmöglichkeiten: Benutzer erhalten Instanz-Rabatte, wenn sie es zur Bereitstellung von Containern auf EC2-Cloud-Server-Instanzen verwenden.

Nachteile von Amazon ECS

Im Vergleich zu Amazon Elastic Kubernetes Service (EKS) und anderen Kubernetes-basierten Container-Orchestrierungsdiensten besteht der Hauptnachteil von Amazon ECS darin, dass es eine proprietäre Orchestrierungstechnologie verwendet und nicht von Open-Source-Erweiterungen profitieren kann.

Unternehmen, die Amazon ECS für ihre Container-Bereitstellungsanforderungen wählen, sind wahrscheinlich auf die Tools und Service-Integrationen beschränkt, die von AWS zur Verfügung gestellt werden, da nur wenige kommerzielle Tools von Drittanbietern mit Amazon ECS integriert werden können.

Container Orchestrierung unter AWS
Abbildung 1: Entscheiden Sie sich zwischen Kubernetes und Amazon ECS.

Was ist Kubernetes?

Kubernetes ist eine Open-Source-Container-Orchestrierungs-Engine, die containerisierte Anwendungen auf praktisch jeder Plattform oder Hosting-Umgebung bereitstellen und verwalten kann, einschließlich Public und Private Clouds sowie lokaler Infrastruktur. In diesem konkreten Beispiel geht es um Kubernetes im Allgemeinen, nicht um Amazon EKS, das auf Kubernetes basiert, aber zusätzliche Funktionen bietet.

Vorteile von Kubernetes

Zu den wichtigsten Vorteilen von Kubernetes gegenüber anderen Container-Orchestrierungsdiensten gehören die folgenden:

  • Open-Source-Gemeinschaft: Als vollständig quelloffene Plattform profitiert Kubernetes von einer großen und dynamischen Open-Source-Community. Es ist einfach, Kubernetes durch die Bereitstellung von Erweiterungen oder Add-ons aus Open-Source-Projekten um zusätzliche Funktionen zu ergänzen.
  • Beliebtheit: Da Kubernetes die beliebteste Container-Orchestrierungs-Engine ist, ist es für Benutzer einfach, Dokumentation und andere Ressourcen zu Kubernetes zu finden. Die meisten Ingenieure, die Erfahrung mit containerisierten Anwendungen haben, sind auch mit Kubernetes vertraut. Das gilt nicht unbedingt für andere Orchestratoren wie Amazon ECS und Docker Swarm.
  • flexible Bereitstellungsoptionen: Kubernetes ist mit praktisch jeder Host-Infrastruktur kompatibel. Egal, wo Sie Container bereitstellen möchten, Kubernetes funktioniert höchstwahrscheinlich mit Ihrem Stack.

Nachteile von Kubernetes

Kubernetes hat auch Nachteile, wie zum Beispiel die folgenden:

  • Komplexität: Kubernetes ist eine komplexe Plattform, die für die Bereitstellung in der Produktion umfangreiche Erfahrung einfordert.
  • Zeit: Die Einrichtung von Kubernetes-Umgebungen kann einige Zeit in Anspruch nehmen, insbesondere für Teams, die die zugrunde liegende Infrastruktur selbst verwalten.

Verwaltete Kubernetes-Services, einschließlich Amazon EKS, können die Lernkurve von Kubernetes und die Herausforderungen bei der Verwaltung ein wenig einfacher machen.

Abbildung 2: Hier sind die Unterschiede zwischen Amazon ECS und Kubernetes auf einen Blick.
Abbildung 2: Hier sind die Unterschiede zwischen Amazon ECS und Kubernetes auf einen Blick.

Wann sollte man Amazon ECS und wann Kubernetes verwenden?

Wenn Sie sich zwischen Amazon ECS und Kubernetes entscheiden müssen, ist Amazon ECS aus folgenden Gründen die bessere Option für Ihre Arbeitslasten:

  • Eine einfache Container-Verwaltung hat Priorität.
  • Sie stellen einfache containerisierte Anwendungen bereit und benötigen kein komplexes Tool oder Kontrolle über Ihre Infrastruktur.
  • Sie sind bereit, sich in hohem Maße auf Dienste innerhalb des Amazon-Ökosystems zu verlassen.

Im Gegensatz dazu ist Kubernetes in der Regel die bessere Option, wenn die folgenden Voraussetzungen erfüllt sind:

  • Sie verfügen über das notwendige Fachwissen, um Kubernetes effektiv einzurichten und zu verwalten.
  • Sie benötigen Funktionen oder Add-Ons, wie zum Beispiel die Möglichkeit, neben Containern auch VMs zu orchestrieren, die von anderen Orchestrator nicht unterstütz werden.
  • Die Kontrolle über ihre Konfiguration und Ihre Infrastruktur ist eine Priorität.

Im Allgemeinen sind Faktoren wie Art und Größe der Arbeitslast beim Vergleich von Amazon ECS und Kubernetes nicht von Bedeutung, da beide Lösungen mit jeder Art von containerbasierter Arbeitslast in jeder Größenordnung gut funktionieren. Die Unterschiede liegen in der Benutzerfreundlichkeit, bei der Amazon ECS die Oberhand hat, und in der Kontrolle und Unabhängigkeit von den Services bestimmter Anbieter, die Sie durch die Verwendung von Kubernetes erhalten.

Andere Möglichkeiten zur Bereitstellung von Containern auf AWS

Amazon bietet auch einen verwalteten Containerdienst, Amazon EKS, an, der auf Kubernetes basiert. Im Gegensatz zum reinen Open-Source-Kubernetes lässt sich Amazon EKS nativ in verschiedene AWS-Services integrieren, um Aspekte der Kubernetes-Einrichtung und -Verwaltung zu vereinfachen.

Wie Amazon ECS ermöglicht Amazon EKS den Benutzern die Bereitstellung von Containern entweder über AWS Fargate – in diesem Fall wird die Infrastruktur automatisch für sie bereitgestellt und verwaltet – oder über selbst verwaltete EC2-Instanzen. Im Gegensatz zu Amazon ECS ist Amazon EKS jedoch mit vielen der Add-Ons und Erweiterungen kompatibel, die die Kubernetes-Community anbietet. Einige Add-Ons oder Erweiterungen funktionieren möglicherweise nicht mit EKS, weil sie nicht mit den AWS-Netzwerk- und Infrastrukturressourcen kompatibel sind, von denen EKS abhängt.

Darüber hinaus ist es auch möglich, Kubernetes auf EC2 ohne die Verwendung von Amazon EKS auszuführen. Bei diesem Ansatz richten Kunden EC2-Instanzen ein, die als Knoten für ihren Kubernetes-Cluster dienen, und stellen dann Kubernetes auf diesen Instanzen bereit und verwalten es vollständig selbst.

Diese Strategie bietet mehr Kontrolle als die Verwendung von Amazon EKS, da die Benutzer nicht auf die Kubernetes-Version und -Architektur beschränkt sind, die dort implementiert ist – aber es ist in der Regel viel mehr Arbeit. In der Regel spart der Betrieb von Kubernetes auf AWS nicht viel Geld, da der Großteil der Kosten auf die von den Arbeitslasten genutzte Infrastruktur entfällt, die bei Amazon EKS und selbst verwalteten Kubernetes-Umgebungen im Grunde gleich ist. Die Kosten für Amazon EKS mögen etwas höher sein, da auch eine Verwaltungsgebühr anfällt, aber für Bereitstellungen im Produktionsmaßstab ist das im Vergleich zu den Kosten für Cloud-Server minimal.

Erfahren Sie mehr über Converged Infrastructure