Mit Amazon EC2 Container Service können Sie problemlos Docker-aktivierte Anwendungen in einem Cluster von Amazon EC2-Instances ausführen und verwalten. Lokal als Container gepackte Anwendungen lassen sich auf dieselbe Weise bereitstellen und ausführen wie Container, die durch Amazon ECS verwaltet werden. Dank Amazon ECS müssen Sie Ihre eigene Infrastruktur zum Cluster-Management nicht mehr installieren, betreiben und skalieren. Sie können zudem Ihre Docker-aktivierten Anwendungen im gesamten Cluster je nach Ressourcenbedürfnissen und Verfügbarkeitsanforderungen planen. Mit Amazon ECS können Sie von einem einzigen Container zu Tausenden von Containern in Hunderten von Instances wachsen, ohne dass sich dabei für Sie die Komplexität bei der Ausführung der Anwendung erhöht. Sie können alles ausführen: von Anwendungen oder Batch-Aufgaben bis hin zu Mikrodiensten. Amazon ECS nimmt die Komplexität aus Ihrer Infrastruktur. Sie können sich ganz auf den Entwurf, das Erstellen und die auf Containern ausgeführten Anwendungen konzentrieren.
Amazon ECS bietet einen umfassenden Überblick und uneingeschränkte Kontrolle über Ihre Cluster, vom Erstellen und Beenden von Docker-Containern bis zur detaillierten Anzeige von Informationen zum Cluster-Status. Sie können problemlos Ihren eigenen Containerplaner integrieren und verwenden, sowie EC2 Container Service mit Ihrem bestehenden Softwarebereitstellungsprozess (z. B. Continuous Integration- und Continuous Delivery-Systeme) verbinden.
Amazon EC2 Container Service
Erste SchritteErhalten Sie 12 Monate lang Zugriff auf das kostenlose Nutzungskontingent von AWS sowie AWS Support-Funktionen der Stufe ''Basic'' mit Kundenservice rund um die Uhr, Support-Foren und vielen weiteren Vorteilen.
Amazon EC2 Container Service unterstützt die Docker-Plattform. Sie können damit Docker-Container in einem Cluster von Amazon EC2-Instances ausführen und verwalten. Jede EC2-Instance in einem durch Amazon ECS verwalteten Cluster führt einen Docker-Daemon aus. Daher wird jede von Ihnen lokal als Container gepackte Anwendung auf EC2 Container Service bereitgestellt und ausgeführt, ohne dass die Konfiguration geändert werden muss.
Zur Verwaltung Ihrer eigenen Container-Management-Infrastruktur gehört das Installieren, Betreiben und Skalieren Ihrer eigenen Container-Management-Software sowie Ihrer Konfigurationsmanagementsysteme und Überwachungslösungen. Es ist schwierig, die Architektur für die Verfügbarkeit und Skalierbarkeit solcher Systeme zu erstellen und diese zu verwalten. Amazon EC2 Container Services nimmt die Komplexität aus Ihrem Container-Management. Mit Amazon ECS müssen Sie lediglich ein Cluster von Container-Instances starten und die Aufgaben angeben, die ausgeführt werden sollen. Amazon ECS übernimmt das Cluster-Management vollständig für Sie.
Mit Amazon EC2 Container Service können Sie Aufgaben mit einer deklarativen JSON-Vorlage definieren, einer sogenannten Aufgabendefinition. Sie können in einer Aufgabendefinition einen oder mehrere für die Aufgabe erforderliche Container – einschließlich Docker-Repository und -Image –, die Arbeitsspeicher- und CPU-Anforderungen, gemeinsame Datenvolumen und die Art der Verknüpfung der Container untereinander festlegen. Sie können von einer einzigen Aufgabendefinitionsdatei aus, die Sie beim Service registrieren können, beliebig viele Aufgaben starten. Mit Aufgabendefinitionsdateien erhalten Sie die Versionskontrolle über Ihre Anwendungsspezifikationen.
Amazon EC2 Container Service bietet eine Reihe einfacher APIs für die Integration und Erweiterung des Services. Mit den APIs können Sie Cluster erstellen und löschen, Aufgaben registrieren bzw. Registrierungen aufheben, Docker-Container starten und beenden und detaillierte Informationen über den Zustand Ihres Clusters bereitstellen. Sie können auch AWS CloudFormation verwenden, um Amazon ESC-Cluster bereitzustellen. Registrieren Sie "Task Definitions" und planen Sie Container.
Amazon EC2 Container Service beinhaltet Planer, die Container abhängig von Ihren Ressourcenbedürfnissen (z. B. CPU oder RAM) in Ihrem Cluster platzieren. Mithilfe der verfügbaren Planer können Sie lang andauernde Anwendungen und Services sowie Batch-Aufgaben planen. Über die Amazon ECS-APIs erhalten Sie außerdem umfassende Informationen über den Cluster-Status. So können Sie Ihre eigenen Planer schreiben oder bestehende Planer von Drittanbietern (z. B. Marathon) integrieren. Amazon ECS ist ein optimistisches Parallelsystem mit Freigabe, das allen Planern den kompletten Status des Clusters anzeigt. Mit Amazon ECS-APIs oder Blox, einer Sammlung von Open Source-Projekten für Container, können Sie eigene Planer entwickeln oder Planer von Drittanbietern integrieren. Weitere Informationen hierzu finden Sie auf der Blox GitHub-Seite.
Automatische Wiederherstellung von Containern
Der Planer von Amazon ECS Service stellt fehlerhafte Container automatisch wieder her, um sicherzustellen, dass Ihre Anwendung von der gewünschten Container-Anzahl unterstützt wird.
Container-Bereitstellung
Mit Amazon ECS können Sie Ihre Container ganz einfach auf neue Versionen aktualisieren. Sie können eine neue Version der Aufgabendefinition Ihrer Anwendung hochladen und der Amazon ECS-Planer startet automatisch neue Container, wobei die aktualisierten Image- und Stop-Container mit der früheren Version verwendet werden. Amazon ECS meldet Ihre Container automatisch beim zugehörigen ELB an und ab.
Amazon ECS ist mit Elastic Load Balancing (ELB) integriert, damit Sie den Verkehr auf Ihren Containern verteilen können. Sie geben die zu verwendende Aufgabendefinition und das ELB an. Der Planer von Amazon ECS Service fügt dann dem ELB automatisch Container hinzu und entfernt sie auch wieder daraus. Sie können in der Aufgabendefinition einen dynamischen Port angeben, der Ihrem Container einen unbenutzten Port zuweist, wenn er auf einer EC2 Instance eingeplant wird. Außerdem können Sie eine Weiterleitung auf Pfadbasis verwenden, um ein ELB mit mehreren Services freizugeben.
Der Amazon EC2 Container Service CLI (Amazon ECS CLI) ermöglicht Ihnen sowohl die Vereinfachung Ihrer lokalen Entwicklung als auch die einfache Einrichtung eines Amazon ECS-Clusters und der zugehörigen Ressourcen (beispielsweise EC2-Instance). Amazon ECS CLI unterstützt Docker Compose, bei dem es sich um ein Open-Source-Tool zum Definieren und Ausführen von Multi-Container-Anwendungen handelt. Sie können die gleiche Compose-Definition, die zum Definieren einer Multi-Container-Anwendung auf Ihrem Entwicklungscomputer verwendet wurde, auch in der Produkt einsetzen. Amazon ECS CLI ist Open-Source und steht hier zum Download zur Verfügung.
Amazon ECS stellt Überwachungsfunktionen für Ihre Container und Cluster bereit. Sie können durchschnittliche und aggregierte CPU- und Speicherauslastung durch aktive Aufgaben, gruppiert nach Aufgabendefinition, Dienst oder Cluster, über Amazon CloudWatch überwachen. Sie können auch CloudWatch-Alarme einrichten, die Sie warnen, wenn Container oder Cluster herauf- oder herunterskaliert werden müssen.
Sie können die ECS-Agent-Protokolle einer Container-Instanz und die Docker-Container-Protokolle an Amazon CloudWatch Logs zur vereinfachten Fehleranalyse senden. Sie können außerdem alle Ihre Amazon ECS-API-Aufrufe protokollieren. Die Protokolldateien werden Ihnen über AWS CloudTrail zugestellt. Zu den aufgezeichneten Informationen gehören u. a der API-Aufrufer, der Zeitpunkt des API-Aufrufs, die IP-Quelladresse des API-Aufrufers, die Anforderungsparameter und die Antwortelemente, die vom AWS-Service zurückgegeben werden. CloudTrail zeigt Ihnen den Verlauf der API-Aufrufe aus Amazon ECS Management Console, AWS SDKs und AWS CLI an. Sie können damit eine Sicherheitsanalyse durchführen, Ressourcenänderungen nachverfolgen und die Compliance prüfen.
Amazon EC2 Container Service kann mit jeder von einem anderen Anbieter stammenden oder privaten Docker-Registry, jedem solchen Docker-Hub oder einem gehosteten Docker-Image-Repository verwendet werden. Sie müssen lediglich in Ihrer Aufgabendefinition das Repository festlegen, und Amazon ECS holt sich die entsprechenden Images für Ihre Anwendungen.
Mit Amazon EC2 Container Service können Sie eine IAM-Rolle für jede ECS-Aufgabe festlegen. So können die ECS-Container-Instanzen eine Mindestrolle haben, die die Zugriffsrichtlinie „Geringstes Recht“ respektieren. Sie können die Instanzrolle und die Aufgabenrolle so separat verwalten. Außerdem können Sie so in den CloudTrail-Protokollen sehen, welche Aufgabe welche Rolle verwendet.