Cloud Computing mit Amazon EC2

Über den Wolken …

Cloud Computing geistert als neue Verheißung durch die Computergazetten. Jenseits des Hypes findet die Technologie auch eine konkrete Anwendung in Form von Amazons Computing Cloud EC2. Dieser Artikel beschreibt, wie Sie EC2 für eigene Zwecke nutzen.

Eigentlich könnte man erwarten, dass Amazon seine Infrastruktur vor jedem fremden Zugriff bewacht. Stück für Stück hat der Internet-Buchversender sich aber geöffnet, sodass wir alle heute auf dem gleichen Niveau mit virtuellen Servern, Storage und sogar dem Zustelldienst herumspielen können. Möglich machen das die Amazon Web Services (AWS), das alle diese Dienste über Web-Services-Schnittstellen dem Anwender kostenpflichtig zur Verfügung stellt.

Für jeden Dienst gibt es einige von Amazon bereitgestellte Werkzeuge und auch die Angebote von Dritten werden immer zahlreicher. Es gibt auch schon einige fertige Produkte, die auf Amazons Diensten aufsetzen, zum Beispiel riesige skalierbare Datenbanken oder die Indexierung des Web. Amazons Elastic Compute Cloud (EC2) bietet virtuelle Server ab einem Stundenpreis von 10 US-Cents, die in Amazons eigenem Data Center laufen.

Der Begriff "Cloud Computing" kann sich auf verschiedene Dinge beziehen, von Software as a Service (Saas) bis zu leicht miteinander verzahnbaren Diensten – es bedeutet vor allem auch: Der Anwender muss sich nicht um die echte Infrastruktur kümmern. Tatsächlich läuft EC2 in einer virtualisierten Xen-Umgebung, aber das kann Ihnen letztlich egal sein, Sie müssen nur bei Bedarf neue Server anfordern und Ihr Wille geschieht. Cloud Computing verändert die ganze Ressourcenplanung im Serverbereich, weil es zu besserer Skalierbarkeit führt, die Lastspitzen kostengünstiger deckt als eigene Hardware. Wo man bisher viele Tausend Euro für fünf Server ausgegeben hat, die 90 Prozent der Zeit nichts tun, nur um genügend Reserven zu besitzen, kann man fünf EC2-Instanzen einfach dann anfordern wenn man Sie braucht.

Ein wichtiger Unterschied zum konventionellen Server stellt die Verwendung von Amazon Machine Images (AMI) dar, die man sich ähnlich wie eine Live-CD vorstellen kann. EC2 verwendet ein AMI, wenn es einen neuen Server erzeugt. Im Folgenden verrät dieser Artikel, wie Sie ein eigenes AIM anlegen.

Los geht's

Als erstes brauchen Sie einen AWS-Account, den Sie unter [1] bekommen. Auf der EC2-Homepage [2] bekommen Sie dann die verschiedenen notwendigen Schlüssel. Der einfachste Weg, die eigenen EC2-Instanzen zu verwalten, führt über ein Firefox-Plugin namens Elasticfox (Abbildung 1). Installieren Sie das Plugin von der AWS-Site [3] und schauen Sie sich ein bisschen um. Der erste Schritt besteht darin, eine virtuelle Maschine einzurichten. In der Mitte des Fensters ist eine Liste von AMI-Images zu sehen. Um eine neue Instanz zu erzeugen, wählen Sie die passende AMI aus und klicken Sie den I/O-Button. Ein guter Startpunkt ist »ec2-public-images/fedora-core4-apache-mysql« mit der AMI ID »ami-25b6534c« . Nach einigen Sekunden erscheint die neue Instanz am Ende der Liste. Sobald dort »running« steht, klicken Sie mit der rechten Maustaste darauf und kopieren den Wert von »Public DNS« in ein Browser-Fenster. Dort sollten Sie dann eine normale Website sehen, die auf der neuen EC2-Instanz läuft.

Abbildung 1: Das Firefox-Plugin Elasticfox ist eine praktische Kommandozentrale für virtuelle Maschinen in der EC2-Wolke.

Es gibt eine ganze Reihe von AMIs, zum Beispiel für PHP, Ruby on Rails, Java, Hochleistungsrechnen und so weiter. Das gute daran ist, dass sie für den jeweiligen Einsatzzweck optimiert sind und somit keinen überflüssigen Ballast an Bord haben. Das ist ein weiterer Unterschied zum klassischen Hosting, wo auf Server üblicherweise alle möglichen Programme laufen.

Eigenes AMI

Ein AMI-Image zu erzeugen, dauert eine Zeit lang, aber wenn man den Bogen raus hat, ist es nicht schwierig. AMIs können alles Mögliche enthalten, von einem einzelnen Dienst bis hin zu vielen Anwendungen mit Datenbank und allem drum und dran. Wenn Sie zum Beispiel viele Websites haben, die auf der gleichen Software basieren, können Sie sie in das AMI packen, sodass Sie nur die Site selber in die EC2-Instanz laden müssen.

Ist ein funktionierendes AMI fertiggestellt, können Sie soviele Instanzen verwenden wie Sie möchten. Die Anfertigung eines AMI umfasst die folgenden Schritte: ein Linux-Image mit allen nötigen Dateien und Einstellungen anlegen, das Image bundlen, zu EC2 hochladen und schließlich das hochgeladene Image registrieren.

Im ersten Schritt legen das Linux-Image Sie über ein Loopback-File an, das eine echte Festplatte simuliert. Das Kommando dd kopiert soviele leere Bytes in das Image wie gewünscht, zum Beispiel ein GByte:

dd if=/dev/zero of=myimage.fs count=1024 ↩
bs=1M

Als Einheit verwendet das Programm Blocks, deren Anzahl steht hinter »count=« . Die Blockgröße gibt das Kürzel »bs« an. Der obige Befehl erzeugt ein leeres Image mit 1 GByte, in dem Sie das Linux-Image anlegen.

Als nächstes legen Sie mit mke2fs in dem Image ein Ext3-Dateisystem an:

mke2fs -F -j myimage.fs

Wenn Sie so etwas noch nie gemacht haben, erscheint es vielleicht etwas ungewöhnlich. Das Ergebnis ist jedenfalls: Die Datei »myimage.fs« lässt sich wie ein normales Device mounten:

sudo mount -o loop myimage.fs /mnt

Dieser Befehl bindet das Dateisystem im Verzeichnis »/mnt« ein. Der Schalter »-o loop« weist ihn an, eben ein Loopback-Gerät statt eines echten zu verwenden. Im Verzeichnis »/mnt« ist bisher außer dem Verzeichnis »lost+found« noch nichts zu sehen. Nun kopieren Sie nun die Dateien und Verzeichnisse einer kleinen Linux-Version für EC2.

Bei der Installation des Basissystems ist das Tool »debootstrap« hilfreich, das eine Ubuntu-Umgebung auf einem beliebigen Dateisystem erzeugt. Für eine andere Linux-Distribution sind andere Schritte erforderlich, aber für das vorliegende Beispiel sieht der entsprechende Befehl so aus:

sudo debootstrap --arch i386 edgy mnt

Während der Befehl läuft, gibt er immer wieder Meldungen darüber aus, was er gerade herunterlädt und überprüft. Ist er fertig, sieht der Inhalt von »/mnt« schon etwas vertrauter aus Mit den nächsten beiden Befehlen schließen Sie diesen Schritt ab und wechseln in das frisch erstellte Linux, gerade so, als hätten Sie dieses gerade gebootet:

sudo cp /etc/apt/sources.list ↩
/mnt/etc/apt/sources.list
sudo chroot /mnt
mount -t proc none proc

Das Ganze klappt natürlich nur, wenn die Architektur ihres Arbeitsplatzrechners und der virtuellen Umgebung übereinstimmen. Ändern Sie nun mit dem Befehl »passwd« das Root-Passwort des künftigen AIM-Images.

Außer dem Basisystem enthält das Image bisher nicht sehr viel, installieren Sie also mit dem Paketmanager »aptitude« die gewünschte Software. hier beispielsweise den SSH-Server und den Webserver Apache:

aptitude update
aptitude upgrade
aptitude install openssh-server
aptitude install apache2

Als nächstes sind die Netzwerkschnittstellen dran. Öffnen Sie mit einem Editor die Datei »/etc/network/interfaces« – das ist die richtige Datei, denn durch das obige Chroot-Kommando ist das Image ihre Root-Umgebung geworden. Die editierte Datei sieht so aus:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

Gleichermaßen verfahren Sie mit der Mount-Tabelle »/etc/fstab« :

/dev/sda2   /mnt    ext3 defaults 1 2
/dev/sda3   swap    swap defaults 0 0

Wenn Sie alle Software installiert haben, verlassen Sie die Chroot-Umgebung wieder mit:

exit
sudo umount /mnt

Alles, was nun in dem erzeugten Image steckt, wird auch in jeder künftig erzeugten EC2-Instanz vorhanden sein, die Sie damit anlegen.

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Anti-Ransomware-Tools

Ransomware ist nach wie vor eine Plage und das Potenzial, das derartige Schadsoftware besitzt, stellte erst Mitte Mai "WannaDecrypt0r" unter Beweis. Der beste Schutz vor Ransomware sind Backups, doch das wissen auch die Erpresser. Daher begnügen sich diese in Zukunft nicht mehr damit, Dateien "nur" zu verschlüsseln. Vielmehr kopieren sich Angreifer die Daten und drohen mit deren Veröffentlichung. Angesichts zahlloser neuer Varianten lassen sich Virenwächter regelmäßig austricksen. Spezielle Anti-Ransomware-Tools versprechen daher Abhilfe. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Linux-Backup

Welche Backup-Lösung setzen Sie für Linux im professionellen Umfeld ein?

  • keine
  • eigene Scripts
  • rsnapshot
  • rdiff-backup
  • Bacula
  • Bareos
  • Borg
  • Duplicity
  • Amanda
  • Burp
  • Clonezilla
  • Acronis
  • Arkeia
  • SEP sesam
  • Veeam
  • Redo Backup
  • Relax-and-Recover
  • andere kommerzielle Software
  • andere Open-Source-Software

Google+

Ausgabe /2017

Microsite