Cloud-Management mit Scalr

Richtig skaliert

Amazon bietet zur Verwaltung seiner Cloud-Dienste eine umfangreiche Web-GUI. Bei der Google Cloud ist das Management dagegen aufs Wesentliche reduziert. Scalr bietet ein webbasiertes Management-Tool für beide Clouds, das zusätzlich auch Azure und OpenStack verwalten kann. Wir haben uns Scalr genauer angesehen.
Immer mehr Firmen zieht es in die Cloud und die Nutzung von Public-, Private- und Hybrid-Clouds gehört längst zum Alltag. Im Juli befasst sich ... (mehr)

Wer sich ein Cloud-Framework wie OpenStack installiert, wird wohl zuerst enttäuscht sein, denn zunächst lässt sich damit wenig anfangen, außer eben mal ein virtuelle Maschine zu starten. Damit eine Cloud zum Leben erwacht, müssen passende Anwendungen installiert werden, die miteinander kommunizieren und auf Wunsch auch dynamisch skalieren. Eine Hilfe bei der Erstellung solcher Cloud-Anwendungen gibt das Management-Tool Scalr.

Scalr [1] unterstützt die öffentlichen Clouds von Amazon und Microsoft sowie eine Handvoll privater Cloud-Frameworks, von denen die meisten auf OpenStack basieren. Scalr bietet allerdings nicht den kompletten Funktionsumfang der Anbieter und beschränkt sich etwa bei Amazon auf die Haupdienste wie den Compute-Dienst EC2, den Loadbalancer ELB, Elastic Block Storage (EBS), den DNS-Dienst Route 53 oder den Monitoring-Service CloudWatch. Die vielen SaaS-Angebote wie etwa die Datenbank-Dienste bleiben außen vor, stattdessen müssen Anwender eine VM verwenden und darin eine Datenbank betreiben. Das bedeutet einerseits, dass Cloud-Anwendungen dem klassischen Muster "vernetzte VM-Instanzen" gehorchen müssen, dass aber andererseits damit ansatzweise die Portabilität solcher Konstrukte zwischen Cloud-Anbietern gewährleistet ist.

Scalr gibt es in verschiedener Ausführung für unterschiedliche Ansprüche. Die Hosted Edition startet bei 99 US-Dollar pro Monat einschließlich 5000 "Scalr Compute Units". Jede weitere SCU kostet 2 US-Cent. Die Enterprise-Edition bietet 24-Stunden-Support, Hochverfügbarkeit, Single-Sign-on, Training und weitere Features. Den Preis dafür müssen Kunden mit dem Hersteller individuell aushandeln. Wer Scalr ausprobieren möchte, kann dies mit der Community-Distribution tun, die wir im Folgenden auf einer AWS-Instanz installieren. Der Quellcode des Projekts steht unter der Apache-Lizenz und ist auf Github zu finden [2].

Große Anforderungen

Am besten verwenden Sie zur Installation von Scalr einen repektive mehrere eigene Server, denn es installiert einen Webserver auf Port 80. Auch sollte der Rechner über ausreichend Speicher verfügen, also mindestens 8 GByte RAM. Die Scalr-Entwickler empfehlen, für die einzelnen Komponenten jeweils eigene Rechner abzustellen, aber für eine Evaluation genügt eine Instanz. Außerdem unterstützt der neue Installer nur 64-Bit-Rechner respektive -Distributionen. Sie können den Server in ihrem eigenen Netz oder in der Cloud installieren, aber Sie müssen dafür sorgen, dass die verwaltete Cloud und die einzelnen Instanzen den Scalr-Server erreichen können. Außer dem Port 80 und dem Port 443 müssen Sie an der Firewall, die den Scalr-Server schützt, die Ports 8008 bis 8014 freischalten, über die der Server mit seinen Agenten kommuniziert.

Wir zeigen im Folgenden die Installation der Scalr Community Edition auf einer Ubuntu-Distribution. Ein Scalr-Paket müssen Sie dazu gar nicht von der Homepage downloaden. Stattdessen laden Sie als Erstes ein Skript von Scalr herunter, das trotz seines Namens kein Debian-Paket, sondern ein Shellskript ist, das die Software-Repositories und den zugehörigen Public Key enthält, um die Pakete zu verifizieren:

$ curl -L https://packagecloud.io/install/repositories/scalr/scalr-server-oss/script.deb | sudo bash

Nun können Sie die Scalr-Software mit einem Aufruf von Apt-Get installieren:

$ sudo apt-get install -y scalr-server

Die zugehörigen Dateien landen vorwiegend im Verzeichnis "/opt/scalr-server/". Anschließend führen Sie mit »scalr-server-wizard« die initiale Konfiguration der Software durch. Sind Sie mit der Konfiguration zufrieden, die der Wizard am Ende anzeigt, führen Sie das folgende Kommando aus:

$ sudo scalr-server-wizard

Hinter den Kulissen verwendet Scalr das Konfigurationsmanagement-Tool Chef, um die benötigten Pakete zu installieren und einzurichten.

Das automatisch erzeugte Passwort für den "admin"-User entnehmen Sie der Datei "/etc/scalr-server/scalr-server-secrets.json". Damit können Sie sich am Webinterface anmelden, das Scalr auf Port 80 anbietet. Wenn Sie Scalr beispielsweise in der Amazon Cloud betreiben, müssen Sie in der zur Instanz gehörigen Security Group den Port freischalten.

Viele Admins für viele Clouds

Der Admin-User ist ein sogenannter Superadmin, der dazu dient, Scalr einzurichten und beispielsweise andere Benutzer anzulegen, die dann selbst Cloud-Ressourcen verwalten dürfen. Das hat zur Folge, dass bestimmte Menüeinträge im Admin-Account überhaupt nicht vorhanden sind. Um also wirklich mit Scalr arbeiten zu können, legen Sie zuerst über das Menü "Accounts" und "New Account" einen neuen Benutzer an und geben sie ihm die passenden Rechte. Die Eingabe des Passworts könnte etwas schwierig werden, den Scalr setzt dabei ein mindestens 15 Zeichen langes Wort mit einer Zahl, einem Sonderzeichen sowie Groß- und Kleinbuchstaben voraus. Ob es so sinnvoll ist, Passwörter zu verwenden, die man sich nicht merken kann und deshalb notieren muss, sei dahingestellt. Sinnvoller ist es wohl, im Administrations-Interface für den Admin-User Zwei-Faktor-Authentifizierung einzustellen, die sich mit dem Google Authenticator verwenden lässt [3]. Außerdem können Sie IP-Whitelisten einrichten, die den erlaubten Zugriff auf das Scalr-Interface begrenzen.

Haben Sie sich als Benutzer eingeloggt, sehen Sie oben einige Menüeinträge wie "Dashboard", "Farms", "Roles", "Images", "Servers", "Scripts", "System Log" und "Scripting Log". Dabei handelt es sich aber nur um Bookmarks für die Menü-Einträge, die Sie über das Hauptmenü erreichen, das sich links oben hinter dem Scalr-Stapel-Logo verbirgt.

Bild 1: In der GUI mit blauem Hintergrund managen Anwender die ihnen überlassenen Cloud-Ressourcen.

Um die Zugangsdaten zu den Clouds einzugeben, gehen Sie den Weg über den Menüpunkt "Environments". Alternativ verwenden Sie den beim Einloggen im Account-Dashboard präsentierten Link "Add cloud credentials". Nach einem Klick darauf zeigt Scalr eine Liste der Cloud-Umgebungen, die es verwalten kann. Bei den "Public Clouds" sind dies derzeit Amazon EC2 (AWS), Google Compute Engine (GCE), IDC Frontier, Rackspace (OpenStack) und Azure. Private Clouds, die Scalr managen kann, sind: Apache Cloudstack, OpenStack, Mirantis (OpenStack), VMware VIO (OpenStack), Cisco Metapod (OpenStack) und HP Helion (OpenStack).

Für die Amazon-Cloud geben Sie eine Access Key ID und den zugehörigen Secret Access Key ein, die Sie in der AWS Management Console unter IAM (Identity and Access Management) finden oder erzeugen können. Hier wird noch einmal deutlich, dass es ratsam ist, die Scalr-Installation bestens abzusichern, denn wenn Fremde an die Zugangsdaten eines Public-Cloud-Accounts wie für AWS kommen, können sie damit allerhand anstellen – und das kann schnell teuer werden.

Sind die Cloud Credentials eingegeben, gelangen Sie über den Link "Start Managing Cloud Resources" in die GUI (Bild 1), in der die Hintergrundfarbe des Menüs blau ist. Grün steht dagegen für das Management der Credentials sowie Teams und Zugangsberechtigungen (Bild 2). Dort können Sie beispielsweise ACLs anlegen (Bild 3), die im Detail alle Rechte festlegen, die Anwender bei der Cloud-Benutzung haben. Diese ACLs lassen sich Anwendern und Teams zuweisen. Außerdem können Sie Anwendergruppen ein bestimmtes finanzielles Budget zuweisen, über das sie verfügen dürfen. Zur Kontrolle bietet Scalr an dieser Stelle auch eine Funktion namens "Cost Analytics". Ein weiteres Konzept zur Strukturierung sind die Environments, unter denen sich eine oder mehrere Clouds mit Teams und Berechtigungen verknüpfen lassen. Zwischen den einzelnen Environments und dem Account-Management wechseln Sie über das Icon mit dem Kreis und den drei Punkten.

Bild 2: Die GUI mit grünem Hintergrund dient der Verwaltung von Usern, Clouds und Berechtigungen.
comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023