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

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Was ist Amazon Elastic Container Service?

Amazon Elastic Container Service (Amazon ECS) ist ein vollständig verwalteter Container-Orchestrierungsservice, mit dem Sie containerisierte Anwendungen einfach bereitstellen, verwalten und skalieren können. Als vollständig verwalteter Service verfügt Amazon ECS über eine integrierte AWS-Konfiguration und bewährte Methoden für den Betrieb. Er ist sowohl in AWS als auch in Tools von Drittanbietern integriert, wie z. B. Amazon Elastic Container Registry und Docker. Diese Integration erleichtert es Teams, sich auf die Erstellung der Anwendungen zu konzentrieren, nicht auf die Umgebung. Sie können Ihre Container-Workloads über AWS-Regionen in der Cloud und On-Premises ausführen und skalieren, ohne die Komplexität der Verwaltung einer Steuerebene.

Amazon-ECS-Terminologie und -Komponenten

Amazon ECS besteht aus drei Ebenen:

  • Kapazität – Die Infrastruktur, in der Ihre Container laufen

  • Controller – Stellen Ihre Anwendungen, die auf den Containern ausgeführt werden, bereit und verwalten sie

  • Bereitstellung – Die Tools, die Sie als Schnittstelle zum Scheduler verwenden können, um Ihre Anwendungen und Container bereitzustellen und zu verwalten

Das folgende Diagramm zeigt die Amazon-ECS-Ebenen.


                Diagramm, das die Kapazitäts-, Controller- und Bereitstellungsebenen zeigt.

Amazon-ECS-Kapazität

Die Amazon ECS-Kapazität ist die Infrastruktur, in der Ihre Container laufen. Im Folgenden finden Sie eine Übersicht über die Kapazitätsoptionen:

  • Amazon-EC2-Instances in der AWS-Cloud

    Sie wählen den Instance-Typ und die Anzahl der Instances und verwalten die Kapazität.

  • Serverless (AWS Fargate (Fargate)) in der AWS-Cloud

    Fargate ist eine Serverless- pay-as-you-go Compute-Engine. Mit Fargate müssen Sie keine Server verwalten, Kapazitätsplanung durchführen oder Container-Workloads aus Sicherheitsgründen isolieren.

  • On-Premises-virtuelle-Maschinen (VM) oder -Server

    Amazon ECS Anywhere bietet Unterstützung für die Registrierung einer externen Instance, wie einem On-Premises-Server oder einer virtuellen Maschine (VM) in Ihren Amazon-ECS-Cluster.

Die Kapazität befindet sich in einer der folgenden AWS-Ressourcen:

  • Availability Zones

  • Local Zones

  • Wavelength-Zonen

  • AWS-Regionen

  • AWS Outposts

Amazon-ECS-Controller

Der Amazon ECS Scheduler ist die Software, die Ihre Anwendungen verwaltet.

Amazon-ECS-Bereitstellung

Es gibt mehrere Optionen für die Bereitstellung von Amazon ECS:

  • AWS Management Console – Bietet eine Webschnittstelle für den Zugriff auf Ihre Amazon-ECS-Ressourcen.

  • AWS Command Line Interface (AWS CLI) – Stellt Befehle für eine breite Palette von AWS-Services bereit, inklusive Amazon ECS. Es wird auf Windows, Mac und Linux unterstützt. Weitere Informationen finden Sie unter AWS Command Line Interface.

  • AWS-SDKs – Bieten sprachspezifische APIs und übernehmen viele der Verbindungsdetails. Dazu gehören das Berechnen von Signaturen, das Behandeln von Wiederholungsversuchen und das Behandeln von Fehlern. Weitere Informationen finden Sie unter AWS-SDKs.

  • Copilot – Bietet Entwicklern ein Open-Source-Tool, mit dem sie produktionsfertige containerisierte Anwendungen auf Amazon ECS erstellen, veröffentlichen und betreiben können. Weitere Informationen finden Sie unter -Copilot auf der GitHub -Website.

  • AWS CDK – Bietet ein Open-Source-Softwareentwicklungs-Framework, mit dem Sie Ihre Cloud-Anwendungsressourcen mithilfe vertrauter Programmiersprachen modellieren und bereitstellen können. AWS CDK stellt Ihre Ressourcen sicher und wiederholbar bereit durch AWS CloudFormation.

Anwendungslebenszyklus

Das folgende Diagramm zeigt den Anwendungslebenszyklus und wie er mit den Amazon-ECS-Komponenten funktioniert.


                Diagramm, das die Kapazitäts-, Controller- und Bereitstellungsebenen zeigt.

Sie müssen Ihre Anwendungen so entwerfen, dass sie auf Containern ausgeführt werden können. Ein Container ist eine standardisierte Einheit der Softwareentwicklung, die alles enthält, was Ihre Softwareanwendung zum Ausführen benötigt. Dies beinhaltet relevanten Code, Laufzeit, Systemtools und Systembibliotheken. Container werden anhand einer schreibgeschützten Vorlage erstellt, die als Image bezeichnet wird. Images werden normalerweise aus einer Dockerdatei erstellt. Eine Docker-Datei ist eine Klartextdatei, die alle Komponenten angibt, die im Container enthalten sind. Nach der Erstellung werden diese Images in einer Registrierung wie Amazon ECR gespeichert, von wo sie heruntergeladen werden können.

Nachdem Sie Ihr Image erstellt und gespeichert haben, erstellen Sie eine Amazon-ECS-Aufgabendefinition. Eine Aufgabendefinition ist eine Vorlage für Ihre Anwendung. Es handelt sich um eine Textdatei im JSON-Format, die die Parameter und einen oder mehrere Container beschreibt, die Ihre Anwendung bilden. So können Sie beispielsweise das Image und die Parameter für das Betriebssystem angeben, 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.

Nachdem Sie Ihre Aufgabendefinition definiert haben, stellen Sie sie entweder als Service oder als Aufgabe in Ihrem Cluster bereit. Ein Cluster ist eine logische Gruppierung von Aufgaben oder Services, die auf der Kapazitätsinfrastruktur ausgeführt wird, die auf einem Cluster registriert ist.

Eine Aufgabe ist die Instance iierung einer Aufgabendefinition auf einer Container-Instance in einem Cluster. Sie können eine eigenständige Aufgabe ausführen oder eine Aufgabe als Teil eines Services ausführen. Sie können einen Amazon-ECS-Service verwenden, um Ihre gewünschte Anzahl von Aufgaben gleichzeitig in einem Amazon-ECS-Cluster auszuführen und zu warten. Wenn eine Ihrer Aufgaben aus irgendeinem Grund fehlschlägt oder angehalten wird, launcht der Scheduler des Amazon-ECS-Service eine andere Instance entsprechend Ihrer Aufgabendefinition. Dies geschieht, um sie zu ersetzen und dadurch Ihre gewünschte Anzahl von Aufgaben im Service beizubehalten.

Der Container-Agent wird auf jeder Container-Instance in einem Amazon-ECS-Cluster ausgeführt. Der Agent sendet Informationen über die aktuell ausgeführten Aufgaben und die Ressourcenauslastung Ihrer Container an Amazon ECS. Er startet und stoppt Aufgaben auf entsprechende Aufforderung von Amazon ECS.

Nachdem Sie die Aufgabe oder den Service bereitgestellt haben, können Sie Ihre Bereitstellung und Anwendung mithilfe eines der folgenden Tools überwachen:

  • CloudWatch

  • Laufzeit-Überwachung