Was ist Amazon Elastic Container Service? - Amazon Elastic Container Service

Was ist Amazon Elastic Container Service?

Amazon Elastic Container Service (Amazon ECS) ist ein hoch skalierbarer, schneller Container-Management-Service, der das Ausführen, Beenden und Verwalten von Containern in einem Cluster vereinfacht. Ihre Container sind in einer Aufgabendefinition definiert, die Sie zum Ausführen einzelner Aufgaben oder Aufgaben innerhalb eines Dienstes verwenden. In diesem Zusammenhang ist ein Service eine Konfiguration, mit der Sie eine bestimmte Anzahl von Aufgaben gleichzeitig in einem Cluster ausführen können. Sie können Ihre Aufgaben und Services auf einer serverlosen Infrastruktur ausführen, die von AWS Fargate verwaltet wird. Um Ihre Infrastruktur besser zu steuern, können Sie Ihre Aufgaben und Services auf einem Cluster von Amazon-EC2-Instances ausführen, die Sie verwalten.

Amazon ECS ermöglicht es Ihnen, Ihre containerbasierten Anwendungen mithilfe einfacher API-Aufrufe zu starten und zu stoppen. Sie können den Status Ihres Clusters auch von einem zentralen Service abrufen und auf viele bekannte Amazon EC2 Funktionen zugreifen.

Sie können die Platzierung von Containern in Ihrem Cluster entsprechend Ihrem Ressourcenbedarf, Ihrer Isolationspolitik und Ihren Verfügbarkeitserfordernissen planen. Mit Amazon ECS müssen Sie keine eigenen Systeme für das Cluster-Management und die Konfigurationsverwaltung betreiben und sich auch keine Gedanken über die Skalierung Ihrer Verwaltungsinfrastruktur machen.

Amazon ECS ermöglicht eine einheitliche Bereitstellungs- und Aufbauerfahrung, die Verwaltung und Skalierung von Stapel- und ETL-Workloads (Extrahieren-Transformieren-Laden) und die Errichtung komplexer Anwendungsarchitekturen in einem Mikrodienstmodell. Weitere Informationen zu Amazon ECS-Anwendungsfällen und -Szenarien finden Sie im Abschnitt Container-Anwendungsfälle.

Das AWS-Containerservice-Team bietet eine öffentliche Roadmap auf GitHub. Die Roadmap enthält Informationen darüber, woran die Teams arbeiten, und ermöglicht es AWS-Kunden, direktes Feedback zu geben. Weitere Informationen finden Sie unter AWS-Container-Roadmap.

Funktionen von Amazon ECS

Amazon ECS ist ein regionaler Service zur einfacheren, hochverfügbaren Ausführung von Containern über mehrere Availability Zones innerhalb einer Region hinweg. Sie können Amazon ECS-Cluster in einer neuen oder bestehenden VPC erstellen. Wenn ein Cluster eingerichtet und in Betrieb ist, können Sie Aufgabendefinitionen definieren, die angeben, welche Container-Images in Ihren Clustern ausgeführt werden sollen. Ihre Aufgabendefinitionen werden zum Ausführen von Aufgaben oder zum Erstellen von Diensten verwendet. Container-Images werden in Container-Registrys gespeichert und daraus abgerufen, beispielsweise dem Amazon Elastic Container-Registry.

Das folgende Diagramm zeigt die Architektur einer Amazon ECS-Umgebung, die auf AWS Fargate ausgeführt wird.


                Diagramm, das die Architektur einer Amazon ECS-Umgebung mit dem Fargate Starttyp anzeigt.

In den folgenden Abschnitten werden diese einzelnen Elemente der Amazon ECS-Architektur ausführlicher erläutert.

Container und Images

Für die Bereitstellung von Anwendungen in Amazon ECS müssen die Anwendungskomponenten für die Ausführung in Containern konzipiert sein. Ein Container ist eine standardisierte Einheit der Softwareentwicklung, die alles beinhaltet, was Ihre Softwareanwendung für die Ausführung benötigt, einschließlich relevantem Code, Laufzeit, Systemtools, Systembibliotheken usw. Container werden anhand einer schreibgeschützten Vorlage erstellt, die als Abbild bezeichnet wird.

Images werden in der Regel anhand einer Docker-Datei erstellt, einer Textdatei, die alle in dem Container enthaltenen Komponenten angibt. Nach ihrer Erstellung werden die Images in einer Registry gespeichert, aus der sie heruntergeladen und auf Ihren Cluster ausgeführt werden können. Weitere Informationen zur Container-Technologie finden Sie im Abschnitt Docker-Grundlagen für Amazon ECS.


                    Diagramm zur Erstellung und Registrierung von Docker-Images in einer Amazon ECS-Umgebung.

Aufgabendefinitionen

Um Ihre Anwendung auf die Ausführung in Amazon ECS vorzubereiten, erstellen Sie eine Aufgabendefinition. Bei der Aufgabendefinition handelt es sich um eine Textdatei (im JSON-Format), in der ein oder mehrere Container (bis zu zehn) beschrieben sind, welche Ihre Anwendung bilden. Diese Aufgabendefinition ist als Plan für Ihre Anwendung vorzustellen. Sie gibt verschiedene Parameter für Ihre Anwendung an. Zum Beispiel können mit diesen Parametern angegeben werden, welche Container verwendet werden sollen, welche Ports für Ihre Anwendung geöffnet werden sollen und welche Daten-Volumes mit den Containern in der Aufgabe verwendet werden sollen. Welche spezifischen Parameter für Ihre Aufgabendefinition verfügbar sind, hängt von den Anforderungen Ihrer spezifischen Anwendung ab. Weitere Informationen zum Erstellen von Aufgabendefinitionen finden Sie im Abschnitt Amazon ECS-Aufgabendefinitionen.

Im Folgenden sehen Sie ein Beispiel einer Aufgabendefinition, die die Nutzung von Fargate angibt, um einen einzelnen Container, der auf einem NGINX-Webserver ausgeführt wird, zu starten. Ein weiterreichendes Beispiel zur Verwendung mehrerer Container in einer Aufgabendefinition finden Sie im Abschnitt Beispiel für Aufgabendefinitionen.

{ "family": "webserver", "containerDefinitions": [ { "name": "web", "image": "nginx", "memory": "100", "cpu": "99" }, ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "memory": "512", "cpu": "256", }

Aufgaben und Planung

Eine Aufgabe ist die Instance iierung einer Aufgabendefinition auf einer Container-Instance in einem Cluster. Nachdem Sie eine Aufgabendefinition für Ihre Anwendung in Amazon ECS erstellt haben, können Sie angeben, wie viele Aufgaben in Ihrem Cluster ausgeführt werden.

Für die Platzierung von Aufgaben in Ihrem Cluster ist der Amazon ECS-Aufgabe-Scheduler zuständig. Es stehen mehrere verschiedene Planungsoptionen zur Verfügung. Sie können beispielsweise einen Service definieren, der eine angegebene Anzahl von Aufgaben gleichzeitig ausführt und verwaltet. Weitere Informationen zu den verschiedenen verfügbaren Planungsoptionen finden Sie im Abschnitt Planen von Amazon ECS-Aufgaben.


                    Diagramm, das die Aufgabenplanung und -platzierung in einer Amazon ECS-Umgebung mit dem Fargate Starttyp anzeigt.

Clusters

Ein Amazon ECS-Cluster ist eine logische Gruppierung von Aufgaben oder Services. Sie können eine oder mehrere Amazon-EC2-Instances (auch als Container-Instances bezeichnet) mit Ihrem Cluster registrieren, um Tasks auf ihnen auszuführen. Sie können auch die serverlose Infrastruktur verwenden, die Fargate zur Ausführung von Tasks bereitstellt. Wenn Ihre Aufgaben auf Fargate ausgeführt werden, werden Ihre Clusterressourcen auch von Fargate verwaltet.

Bei der ersten Verwendung von Amazon ECS wird ein Standardcluster erstellt. In einem Konto können Sie zusätzliche Cluster anlegen, um Ihre Ressourcen getrennt zu verwalten.

Weitere Informationen zum Erstellen von Clustern finden Sie unter Amazon ECS-Cluster. Weitere Informationen zum Starten von Container-Instances und Registrieren bei Ihren Clustern finden Sie im Abschnitt Amazon ECS-Container-Instances.

Container-Agent

Der Container-Agent wird auf jeder Container-Instance in einem Amazon ECS-Cluster ausgeführt. Der Agent sendet Informationen über die derzeit ausgeführten Aufgaben der Ressource und die Ressourcenverwendung an Amazon ECS. Er startet und stoppt Aufgaben auf entsprechende Aufforderung von Amazon ECS. Weitere Informationen finden Sie unter Amazon ECS-Container-Agent.


                    Diagramm mit Container-Agent-Tasks in einer Amazon ECS-Umgebung.

Erste Schritte mit Amazon ECS

Weitere Informationen zu den Entwicklertools, die für die Verwendung von Amazon ECS verfügbar sind, finden Sie unter Amazon ECS-Entwicklertools – Übersicht.

Bei der ersten Verwendung von Amazon ECS können Sie in AWS Management Console für Amazon ECS einen Einrichtungsassistenten nutzen, der Sie durch die einzelnen Schritte zur Festlegung einer Aufgabendefinition für einen Webserver, zur Konfiguration eines Service und zum Starten Ihrer ersten Fargate-Aufgabe führt. Es wird dringend empfohlen, den Assistenten für die Erstausführung zu verwenden, wenn Sie wenig oder keine Erfahrung mit Amazon ECS haben. Weitere Informationen finden Sie unter Erste Schritte mit Amazon ECS.

Alternativ können Sie AWS Command Line Interface (AWS CLI) installieren, um Amazon ECS zu verwenden. Weitere Informationen finden Sie unter Einrichten mit Amazon ECS.

Amazon ECS kann in Verbindung mit dem folgenden AWS-Services verwendet werden:

AWS Identity and Access Management

IAM (Identity and Access Management) ist ein Zugriffsverwaltungs-Service, der es Ihnen ermöglicht, den Zugriff auf AWS-Ressourcen sicher zu steuern. Mit IAM können Sie steuern, wer authentifiziert (angemeldet) und autorisiert (berechtigt) ist, bestimmte Aktionen für Ressourcen anzuzeigen oder auszuführen. In Amazon ECS können Sie IAM verwenden, um unter Verwendung von IAM-Rollen den Zugriff auf Container-Instance-Ebene und unter Verwendung von IAM-Aufgabenrollen den Zugriff auf Aufgabenebene zu steuern. Weitere Informationen finden Sie unter Identity and Access Management für Amazon Elastic Container Service.

Amazon EC2 Auto Scaling

Auto Scaling ist ein Service, mit dem Sie Ihre Aufgaben basierend auf benutzerdefinierten Richtlinien, Statusüberprüfungen und Zeitplänen automatisch skalieren können. Sie können Auto Scaling mit einer Fargate-Aufgabe innerhalb eines Services zum Skalieren als Reaktion auf eine Anzahl von Metriken verwenden oder mit einer EC2-Aufgabe zum Skalieren der Container-Instances in Ihrem Cluster verwenden. Weitere Informationen finden Sie unter Service Auto Scaling.

Elastic Load Balancing

Der Elastic Load Balancing-Service verteilt automatisch Ihren eingehenden Anwendungsdatenverkehr über die Aufgaben in Ihrem Amazon-ECS-Service. Somit kann eine noch höhere Fehlertoleranz erreicht werden: Die Lastverteilungskapazität wird nahtlos an den Anwendungsverkehr angepasst. Mithilfe von Elastic Load Balancing können Sie einen Endpunkt erstellen, der den Datenverkehr unter den Services in einem Cluster ausgleicht. Weitere Informationen finden Sie unter Service-Load Balancing.

Amazon Elastic Container-Registry

Amazon ECR ist ein verwalteter AWS-Docker-Registry-Service, der sicher, skalierbar und zuverlässig ist. Amazon ECR unterstützt private Docker-Repositories mit ressourcenbasierten Berechtigungen unter Verwendung von IAM, sodass bestimmte Benutzer oder Aufgaben auf Repositories und Images zugreifen können. Developer können über die Docker-Befehlszeilenschnittstelle (CLI) Images verwalten und Pull- oder Push-Übertragungen ausführen. Weitere Informationen finden Sie im Benutzerhandbuch für Amazon Elastic Container-Registry.

AWS CloudFormation

AWS CloudFormation bietet Entwicklern und Systemadministratoren eine einfache Möglichkeit, eine Sammlung zugehöriger AWS-Ressourcen zu erstellen und zu verwalten. Genauer gesagt wird die Ressourcenbereitstellung und -aktualisierung geordnet und vorhersehbar. Cluster, Aufgabendefinitionen und Services können als Entitäten in einem AWS CloudFormation-Skript definiert werden. Weitere Informationen finden Sie unter AWS CloudFormation-Vorlagenreferenz.

Pricing

Die Amazon ECS-Preise sind davon abhängig, ob Sie AWS Fargate oder Amazon EC2 Infrastruktur verwenden, um Ihre containerisierten Workloads zu hosten. Wenn Sie Amazon ECS auf AWS Outposts verwenden, entspricht die Preisgestaltung dem gleichen Modell wie bei der Verwendung von Amazon EC2. Weitere Informationen finden Sie unter Amazon ECS-Preise.

Amazon ECS und Fargate bieten außerdem Savings Plans an, die erhebliche Einsparungen auf der Grundlage Ihrer AWS-Verwendung bieten. Weitere Informationen finden Sie im Savings Plans User Guide.

Um Ihre Rechnung anzuzeigen, navigieren Sie zum Fakturierungs- und Kostenverwaltungs-Dashboard in der AWS Billing and Cost Management-Konsole. Ihre Abrechnung enthält Links zu Nutzungsberichten mit zusätzlichen Details zu Ihrer Abrechnung. Weitere Informationen zur Abrechnung von AWS-Konten finden Sie unter AWS-Kontenfakturierung.

Wenden Sie sich bei Fragen zu AWS-Abrechnungen, -Konten und -Vorfällen an AWS Support.

Eine Übersicht über Trusted Advisor, einen Service, der Sie bei der Optimierung von Kosten, Sicherheit und Leistung Ihrer AWS-Umgebung unterstützt, finden Sie unter AWS Trusted Advisor.