Das Konfigurationsmanagement ist für die Automatisierung komplexer Infrastrukturen besonders wichtig. In der AWS Cloud ist mit OpsWorks, das auf Chef als Automationsplattform basiert und Server-Konfigurationen wie Code behandelt, ein entsprechender Managed Service erhältlich.
In der Cloud kommen gerne hunderte oder tausende Server-Instanzen mit verschiedensten Software-Konfigurationen zusammen. Wer diese bereitstellen, verwalten und deren Lebenszyklen überwachen muss, um ggf. auch Instanzen, die nicht richtlinienkonform ausgerollt wurden, identifizieren und beenden zu können, braucht eine Strategie für die einheitliche Konfiguration sowie Tools für das Konfigurationsmanagement.
Letzteres lässt sich in der AWS-Cloud wahlweise mit Chef, Puppet oder Ansible realisieren. Da Amazon Web Services allerdings mit OpsWorks einen verwalteten, auf Chef basierenden Dienst zur Konfigurationsverwaltungs bereitstellt, gestaltet sich das Config-Management mit diesem deutlich komfortabler.
Vorteile von Konfigurationsmanagement
Basis des Deployments von virtuellen Servern und deren Software-Konfiguration sind Vorlagen, im Falle von AWS Amazon Machine Images (AMIs) genannt, aus denen virtuelle Server deployt werden können. Da auch AWS hierbei den Bootstrapping-Prozess (z. B. via CloudInit) beherrscht, müssen Unternehmen selbst experimentell die für sie passende AMI-Konfigurationsstrategie bestimmen.
Mit dem Konfigurieren von Instanzen ist es aber nicht getan. In der Praxis muss sich der Admin auch um VPCs, Sicherheitsgruppen, Netzwerk-ACLs, Router, Load Balancer usw. kümmern und dabei nach einem möglichst einheitlichen und vor allem reproduzierbaren Deployment streben, insbesondere aus Sicherheits- und Compliance-Gründen.
Konfigurationsserver
Daher nutzen gerade größere Unternehmen für solche Vorgänge einen Konfigurationsserver, der viele allgemeine Verwaltungsaufgaben vereinfacht. Man stelle sich z. B. folgendes Szenario vor: ein Admin im Unternehmen hat Zugriff auf mehrere Amazon EC2-Instanzen und verfügt über den privaten Schlüssel, der es ihm ermöglicht, sich mit seiner eindeutigen Benutzer-ID anzumelden und Verwaltungsaufgaben für diese Instanzen auszuführen. Doch was passiert, wenn er das Unternehmen verlässt?
Ohne einen Konfigurationsserver kann sich die manuelle Deaktivierung seines Zugriffs auf diese Instanzen zum Albtraum auswachsen. Mithilfe eines Konfigurationsservers kann ein Systemadministrator den Status eines solchen Mitarbeiters im System einfach ändern und diese Änderung mit einigen simplen Befehlen auf alle betroffenen Instanzen übertragen.
Einer der Vorteile eines Konfigurations-Servers wie Chef, Puppet oder Ansible ist, dass die Konfiguration „idempotent“ ist. Ressourcen, die von einem Konfigurationsserver erstellt oder konfiguriert werden, werden immer nur einmalig konfiguriert oder erstellt. Wenn die Konfiguration einer Instanz manuell geändert wird, erkennt der Konfigurationsserver diese und rollt sie zurück.
Was ist AWS OpsWorks?
Werfen wir dazu einen Blick auf AWS OpsWorks. Bei OpsWorks handelt es sich quasi um eine verwaltete Version von Chef. Mit OpsWorks können AWS-Nutzer sowohl die Bereitstellung und Überwachung von Servern, also auch deren Konfiguration (inklusive der Softwarepflege) über ihre gesamte Amazon Elastic Compute Cloud-Umgebung automatisieren.
Konkret stellt Amazon Web Services OpsWorks sogar zwei voneinander zu unterscheidende Angebote zur Verfügung:
AWS OpsWorks for Chef Automate
AWS OpsWorks for Chef Automate stellt einen vollständig integrierten Chef-Server bereit. Erweitert wurde dieser um eine Reihe von Automatisierungs-Tools, welche dem Admin das Automatisieren des Workflows für Continuous Delivery einschließlich automatisiertem Überprüfen der Compliance und Sicherheit erlauben.
Die OpsWorks-GUI bietet zudem eine komfortable Möglichkeit, sämtliche Knoten und deren Status einzusehen. Der Chef-Server erlaubt eine nahezu vollständige Stack-Automatisierung, indem er operative Aufgaben wie das Konfigurieren von Software und Betriebssystem, das Aufsetzen von Datenbanken oder das Installieren von Software-Paketen umsetzt.
OpsWorks speichert dazu sämtliche Konfigurations-Aufgaben an zentraler Stelle und stellt sie jedem Knoten zur Verfügung, unabhängig von der Größe der Umgebung. Damit adressiert OpsWorks als Dienst vor allem erfahrene Chef-Nutzer, zumal OpsWorks für Chef Automate vollständig mit den Tools und Rezepten der Chef-Community kompatibel ist und neu Knoten automatisch beim Chef-Server registriert.