Cluster-Deployment mit dem AWS EC2 Container Service

Amazons Public Cloud AWS bietet verschiedene Möglichkeiten zur Cluster-Verwaltung. AWS EC2 Container Service setzt hierzu auf Docker-Container.

Amazon Web Services (AWS) bietet mehrere Wege für das Deployment und die Verwaltung von Server-Clustern. Der AWS EC2 Container Service (ECS) stellt für Kunden einen Mittelweg zwischen dem prozessautomatisierenden AWS Elastic Beanstalk und der manuellen Cluster-Administration zur Verfügung.

Mit AWS Elastic Beanstalk können Entwickler Code hochladen und dem Dienst Ressourcenvorhaltung, Code-Deployment, Skalierung und Monitoring überlassen. Im manuellen Modell der Cluster-Verwaltung nutzen Entwickler Amazon Machine Images (AMIs), installieren Bibliotheken und Code und implementieren schließlich Werkzeuge für die Cluster-Verwaltung. Um zu verstehen, wie der gegenwärtig als Vorschauversion erhältliche befindliche AWS EC2 Container Service einen Mittelweg zwischen den beiden Optionen darstellt, muss man zunächst Docker verstehen.

Docker ist ein Linux-Tool zum Paketieren von Linux-Code, ‑Bibliotheken und ‑Konfigurationen in Container (LXC). Docker-Container sind Dateien, die Code und Bibliotheken enthalten und isoliert innerhalb eines eigenen Docker-Runtime-Daemons ablaufen. Die Plattform ähnelt einer virtuellen, aber sehr leichtgewichtigen Umgebung. Anders als virtuelle Maschinen benötigen Docker-Container allerdings keinen Hypervisor.

AWS bietet Docker-Laufzeitumgebungen, die das Ablaufen von Docker-Containern im Amazon Container Service ermöglichen. Entwickler erzeugen Docker-Container aus ihren Entwicklungsumgebungen heraus. Daher besitzt der Container sämtliche benötigten Komponenten und Bibliotheken, was für Administratoren ein wahrer Segen sein kann: Docker eliminiert für Administratoren die Notwendigkeit, Problemen mit inkompatiblen Bibliotheksversionen- oder Paketen nachzujagen und ermöglicht ihnen so mehr Konzentration auf die Serververwaltung.

Entwickler können überdies vorgefertigte Docker-Container verwenden. Der Docker Hub ist eine Online-Sammlung vorgefertigter, herunterladbarer Container-Images. Gegenwärtig sind im Docker Hub mehr als 45.000 öffentliche Images verfügbar.

Einblick in die Verwaltung von AWS ECS

Wenngleich Amazons EC2 Container Service auf Docker basiert, implementiert der Dienst einige zusätzliche Strukturen für die Verwaltung von Server-Clustern, darunter:

  • Eine Container-Instanz (eine EC2-Instanz, die einen ECS-Agenten ausführt),
  • eine Task-Definition (eine Ansammlung von Container-Definitionen) und
  • eine Task (eine laufende Instanz einer Task-Definition und eines Docker-Containers).

Zusätzlich zum Anlegen von Identitäts- und Zugangsverwaltung (engl. IAM – Identity and Access Management), Benutzern, Rollenzuweisungen und dem Erzeugen von Schlüsselpaaren müssen Administratoren auch eine virtuelle Private Cloud für den Cluster erzeugen. 

Nutzen Sie dafür beim Start einer EC2-Instanz eine spezielle Amazon Machine Instance (AMI) namens amzn-ami-2014.09.1-amazon-ecs-optimized-preview2. Sie können auch die AWS-Befehlszeile und deren Kommando aws ecs nutzen, um Container anzuzeigen und zu überwachen. Mehr darüber finden Sie im ECS Getting Started Guide.

Im nächsten Schritt spezifizieren Sie eine Task-Definition, um Tasks auf einem Cluster auszuführen. Eine Container-Definition beinhaltet Parameter wie den Namen des Containers, das zu nutzende Image, die Anzahl dem Container zuzuweisender CPU-Einheiten, den zu beanspruchenden Speicher, Verbindungen zu kommunizierenden Containern, eine Einsprungstelle, mit der bei Container-Start auszuführenden Kommandozeile und einige Umgebungsvariablen.

AWS ECS verfügt über einige Dienstbeschränkungen: Derzeit sind nicht mehr als lediglich zwei Server-Cluster pro Zugang zulässig. ECS ermöglicht außerdem nur 100 Container-Instanzen pro Cluster, und nur zehn Container sind pro Run-Task oder Start-Task erlaubt. Alle diese Grenzen werden sich allerdings mit der Zeit nach oben verschieben.

Docker ersetzt keine Werkzeuge für das Konfigurationsmanagement wie Chef oder Puppet. Auch damit könnten Sie Ihre eigenen Docker-Images erzeugen. Mit Docker ist sämtlicher Anwendungscode und unterstützende Pakete beim Deployment im Container enthalten – nach dem Start einer Instanz bedarf es keiner zusätzlichen Code-Installation mehr.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Cloud Computing

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close