AWS Fargate ist eine Technologie, die verwendet werden kann Amazon ECS und Amazon EKS. Es ermöglicht Ihnen, Container auszuführen, ohne Server oder Cluster von Amazon EC2-Instances zu verwalten.

Fargate macht es überflüssig, Cluster virtueller Maschinen zu konfigurieren, zu skalieren oder bereitzustellen, um Container auszuführen. Es besteht keine Notwendigkeit, Servertypen auszuwählen, die Cluster-Skalierung zu planen oder das Cluster-Packing zu optimieren.

Wir können den Fargate-Starttyp oder einen Fargate-Kapazitätsanbieter verwenden, um Ihre Amazon ECS-Aufgaben und -Dienste auszuführen. Um Fargate zu verwenden, können Sie Ihre Anwendung paketieren Behälter, geben Sie die Betriebssystem-, CPU- und Arbeitsspeicheranforderungen an, konfigurieren Sie Netzwerk- und IAM-Richtlinien und starten Sie es.

Es ist nicht erforderlich, eine Basis-CPU- und RAM-Kapazität zum Hosten von Containern aufrechtzuerhalten. Wir können AWS mitteilen, wie viel Ressourcen eine Aufgabe benötigt, und den Rest der Aufgabe AWS überlassen. Jede Fargate-Aufgabe hat ihre Isolationsbarriere, sodass sie den zugrunde liegenden Kernel, die CPU, den Speicher oder die elastische Netzwerkschnittstelle nicht mit anderen Aufgaben teilt.

YouTube-Video

How Does Fargate Work?

Fargate funktioniert, indem es Ihnen ermöglicht, Container bereitzustellen, ohne die Infrastruktur einzurichten oder zu verwalten, die sie hosten wird. Sie teilen Fargate mit, welche Container-Images Sie ausführen möchten und wie viele CPU- und Speicherressourcen Sie zuweisen möchten. Die Hostserver werden dann automatisch von Fargate bereitgestellt. Wenn Ihre Container laufen, zahlen Sie nur für die genutzten Ressourcen.

Fargate ist eine Serverless-Computing-Engine, da Endbenutzer die Server, auf denen Container gehostet werden, nicht mehr verwalten müssen. Um es klar zu sagen, die Server sind immer noch da; AWS verwaltet sie einfach. Fargate darf nicht mit AWS Lambda verwechselt werden, einem anderen Serverless-Computing-Service, der nicht mit Blick auf Container entwickelt wurde (obwohl Lamba jetzt die Bereitstellung von Container-Images unterstützt).

How does Fargate help?

AWS Fargate berechnet die genaue Menge an Rechenleistung, Arbeitsspeicher und anderen Ressourcen, die für Ihre Aufgaben erforderlich sind, sodass Sie sich keine Gedanken über die Auswahl von Instance-Arten oder die Skalierung der Clusterkapazität machen müssen.

Es ermöglicht Ihnen, für die Ressourcen zu bezahlen, die Sie zum Betreiben Ihrer Container benötigen, während sie verwendet werden, wodurch eine Überbereitstellung vermieden und für Server bezahlt wird, die Sie nicht benötigen.

Fargate-Tasks (Pods) werden in ihren eigenen Kerneln ausgeführt, was zu einer sicheren und isolierten Rechenumgebung mit isolierten Workloads und erhöhter Sicherheit führt.

Es ermöglicht Teams, Apps mit ECS- oder EKS-Containern zu entwerfen und auszuführen, ohne sich mit zeitaufwändigen Problemen auseinandersetzen zu müssen Infrastrukturmanagement Aktivitäten wie das Skalieren und Sichern von Servern oder das Patchen von Betriebssystemen.

Mit integrierten Verbindungen zu anderen AWS-Services wie Amazon CloudWatch Container Insights bietet AWS Fargate ein hohes Maß an Beobachtbarkeit. Sie können auch mehrere Technologien von Drittanbietern verwenden, um Protokolle und Metriken zu sammeln.

Wir können auch die große Bandbreite an AWS-Services effizient nutzen, wenn wir Container mit Fargate verwenden.

Fargate startet und skaliert kontinuierlich Rechenressourcen, um sie an die Anforderungen des Containers anzupassen, um eine Überbereitstellung zu verhindern und sicherzustellen, dass Sie nicht für Ressourcen bezahlen, die Sie nicht nutzen. Sie können auch eine Einsparstrategie berechnen, die Fargate Spot-Option kann Ihnen bis zu 70 % der gewöhnlichen Kosten sparen, aber sie ist nur für unterbrechbare Anwendungen optimal.

Components of Fargate

Cluster

Eine logische Gruppierung von Aufgaben oder Services ist ein Amazon ECS-Cluster. Cluster können verwendet werden, um Ihre Anwendungen zu isolieren. Wenn Sie Fargate zum Ausführen Ihrer Aufgaben verwenden, verwaltet es Ihre Cluster-Ressourcen.

Aufgabendefinitionen

Eine Aufgabendefinition ist eine Textdatei, die mindestens einen Container Ihrer Anwendung beschreibt. Es ist eine JSON-Datei. Es kann verwendet werden, um bis zu zehn Container gleichzeitig zu beschreiben. Die Aufgabendefinition Ihrer Anwendung dient als Blaupause. Es spezifiziert die zahlreichen Parameter Ihrer Anwendung.

Sie können damit beispielsweise Betriebssystemparameter, zu verwendende Container, für Ihre Anwendung zu öffnende Ports und Datenmengen definieren, die mit den Containern in der Aufgabe verwendet werden sollen. Die Anforderungen Ihrer Anwendung bestimmen die jeweiligen Parameter, die für die Aufgabenstellung zur Verfügung stehen.

Aufträge

Eine Aufgabe ist eine Instanziierung einer Aufgabendefinition auf Clusterebene. Nachdem Sie eine Aufgabendefinition für Ihre Anwendung in Amazon ECS erstellt haben, können Sie die Anzahl der Aufgaben auswählen, die auf Ihrem Cluster ausgeführt werden. Wir können eine Aufgabe als Teil eines Dienstes oder eines separaten Prozesses ausführen.

Services

In einem Amazon ECS-Cluster können Sie einen Amazon ECS-Service nutzen, um die gewünschte Anzahl von Aufgaben gleichzeitig auszuführen und zu verwalten. Der Amazon ECS-Service-Scheduler führt basierend auf Ihrer Aufgabendefinition eine andere Instance aus, wenn eine Ihrer Aufgaben fehlschlägt oder aus irgendeinem Grund angehalten wird. Es tut dies, um es zu ersetzen und die Anzahl der Aufgaben im Dienst auf dem richtigen Niveau zu halten.

YouTube-Video

Betriebssystem und CPU-Architektur

Die von Fargate unterstützten Betriebssysteme sind Amazon Linux 2, Windows Server 2019 Full und Windows Server 2019 Core.

ARM und X86_64 sind die beiden Architekturen, die für die Amazon ECS-Aufgabendefinition verfügbar sind. Wenn Sie Windows-Container verwenden, müssen Sie über eine X86_64-CPU-Architektur verfügen. Wenn Sie dagegen Linux-Container verwenden, können Sie die ARM64-Architektur für Ihre ARM-basierten Anwendungen und die X86_64-CPU-Architektur verwenden.

ECS with EC2 instances Vs. ECS with AWS Fargate 

In den EC2-Instance-Modellwerden Container auf den EC2-Instances (VMs) des Clusters bereitgestellt. ECS verwaltet sie in Verbindung mit Aufgaben, die Teil der Aufgabendefinition sind.

Vorteile 👍

  • Der hier verwendete EC2-Instance-Typ unterliegt vollständig Ihrer Kontrolle.
  • Sie können Spot-Instances verwenden, die die Kosten um bis zu 90 % senken.

Nachteile 👎

  • Sie müssen sich um Sicherheitspatches und die Netzwerksicherheit der Instanzen kümmern; Außerdem sind Sie für deren Skalierbarkeit im Cluster verantwortlich.

In den Fargate-Modellmüssen Sie sich keine Sorgen mehr um EC2-Instanzen oder -Server machen. Wählen Sie die erforderliche CPU- und Speicherkonfiguration aus, und Fargate stellt Ihre Container bereit.

Vorteile 👍

  • Sie müssen keine Server verwalten.
  • AWS ist für Verfügbarkeit und Skalierbarkeit verantwortlich, aber es ist immer noch eine gute Praxis, den richtigen Speicher und die richtige CPU auszuwählen; andernfalls besteht die Gefahr, dass unsere Anwendung nicht mehr verfügbar ist.
  • Wenn Sie sich für Fargate Spot entscheiden, erhalten Sie bis zu 70 % Rabatt auf den Fargate-Preis.

Nachteile 👎

  • ECS mit AWS Fargate unterstützt nur einen Netzwerkmodus – awsvpc-. Infolgedessen schränkt dies Ihre Kontrolle über die Netzwerkschicht ein.

EKS without Fargate Vs. EKS with Fargate

In EKS ohne das Fargate-Modell, müssen Sie im Voraus entscheiden, wie groß der Cluster sein soll. Sie können die Knoten später immer noch manuell ändern, aber es ist mühsam im Vergleich zu der Angabe der idealen Größe von Anfang an.

Vorteile 👍

  • Dieses Modell gibt Ihnen auf verschiedene Weise mehr Kontrolle, da Sie Konfigurationsvariablen wie HostNetwork und HostPort angeben können.
  • Fargate wird nicht in allen Regionen unterstützt, daher ziehen Sie es vor, EKS ohne Fargate zu verwenden, wenn Sie möchten, dass Ihr Container in mehr Regionen verfügbar ist.

Nachteile 👎

  • EKS ohne Fargate ist etwas schwierig zu bedienen.

In EKS mit dem Fargate-Modell, müssen Sie die Größe der Cluster nicht vorher angeben.

Vorteile 👍

  • EKS mit Fargate ist sicherer, da sie in dedizierten virtuellen Maschinen ausgeführt werden. Die Tatsache, dass der privilegierte Modus nicht unterstützt wird, ist eine Art Sicherheitsfunktion.
  • Das ist auf Dauer billiger.

Nachteile 👎

  • Es gibt Ihnen auf verschiedene Weise weniger Kontrolle

Fazit

Fargate ist ein extrem leistungsfähiges und ausgereiftes Tool. Es spart Ihnen Kosten, Zeit und viel Aufwand, indem es das gesamte Infrastrukturmanagement für Sie übernimmt. Fargate ist besonders vorteilhaft, wenn Sie neu bei uns sind Behälter und sich einfach darauf konzentrieren möchten, Ihre Anwendung zu erstellen, anstatt sie zu warten.