Cloudcomputing

Das Thema Virtualisierung hat uns in den letzten Jahren eigentlich nur tangential beschaeftigt. Viele Dienste liefen auf echten Maschinen, virtuelle Computerloesungen wie XEN waren eher baeh und auch die Loesungen, die man auf VServern so angeboten bekommt

Posted by eumel8 on January 09, 2011 · 6 mins read

Das Thema Virtualisierung hat uns in den letzten Jahren eigentlich nur tangential beschaeftigt. Viele Dienste liefen auf
"echten" Maschinen, virtuelle Computerloesungen wie XEN waren eher baeh und auch die Loesungen, die man auf VServern
so angeboten bekam, fuehlten sich immer zaeh an und konnten nicht ueberzeugen. VMWARE? Aeh ... naja.

Echtes virtuales Feeling kommt bei den alteingesessenen Hard- und Softwarefirmen noch nicht auf. Man kann einen
Server virtualisieren aber keinen Dienst. Dabei ist das der Schluessel zum Erfolg, wenn es mich nicht mehr interessiert,
ob der Dienst auf Rechner12 am Switch15 laeuft und das HA durch Heartbeat auf Rechner13 geloest ist, aber die
geschwenkte Postgres-Datenbank danach Matsch ist. Bullshit.Eine ungefaehre Vorstellung, wie Virtualisierung wirklich
geht, bekommt man bei den Amazon Webservices. Den Dienst gibt es jetzt zwar auch schon 2-3 Jahre, halte ich aber
fuer relativ genial. Die Benutzung ist wie alle Amazon-Services (ja, die mit dem Onlinekaufhaus!) recht trivial. Ausgehend
von http://aws.amazon.com kann ich mich fuer den Dienst registrieren oder wenn man einen Amazon-Account mit
hinterlegten Kreditkartendaten hat, direkt einloggen auf https://console.aws.amazon.com/ec2/home . Nehmen wir an, ich
will eine Anwendung im Internet laufen lassen. Was brauche ich als erstes? Das EC2-Dashboard verraet es mir in der
erforderlichen Reihenfolge.1. Eine Rechnerinstanz. Verschiedene Instanztypen stehen in der Vorauswahl bereit: Fedora
Linux 32bit, 64 bit mit LAMP, Windows 2008 Server. Oder lieber etwas "heimisches"? SLES 11 mit dem neuesten
Servicepack kann ebenfalls ausgewaehlt werden. Oder ich habe beim letzten Besuch mein eigenes Image erstellt und
benoetige es jetzt wieder. Nun noch die Staerke der CPU festlegen, Groesse des RAM-Speichers. Und wieviel Instanzen
wollten Sie gleich noch mal? 1? 10? 100? 1000?2. Storage. Klar, bischen Festplatte waere schon nicht schlecht. 1 GB,
10 GB, 100 ... alles kann man auswaehlen und dann *KLICK*. Ratter Ratter Ratter. Fertig! Ihre Instanz ist erstellt. Haeh?
Wie? Fehlt da nicht was? Richtig!3. IP-Adresse. Aus einem Pool wird eine public IP-Adresse mit Hostnamen
ausgewaehlt und der Instanz zugewiesen. Per Default ist die IP aus dem Internet per HTTP und SSH erreichbar. Aus
einer Auswahl von einem Dutzend Protokollen kann ich meine eigene Firewall zusammenklicken und der IP-Adresse
zuweisen. Apply! Der ping-Test beweist: Das Ding ist wirklich online! Optional kann ich den Dienst auch monitoren
lassen (gegen Extra Geld) 4. SSH-Key. Wird automatisch erstellt und mit cut&paste kann man den Connect-String in die
Shell seines Vertrauens uebernehmen und schon ist man auf seiner Rechner-Instanz eingeloggt und kann da Dinge tun.
Auch per Browser ist der installierte Apache-Webserver mit PHP sofort erreichbar. 5. Load-Balancing. Vielleicht will ich 2
Instanzen meines Dienstes erstellen. Eine soll in der Cloud "US-EAST" laufen und eine in der Cloud "EU". Mit einem
virtuellen Loadbalancer kann ich meinen Dienst ueber eine Adresse anbieten. Die Konfiguration der Nodes und der
Healthcheck ist selbsterklaerend. Nach insgesamt 5 Minuten habe ich mit Maus und Browser mein komplettes
Rechenzentrum online. Und was kostet der Spass? Abgerechnet werden die einzelnen Resourcen (also Rechnerinstanz,
Speicher, IP-Adresse, verbrauchte Traffic) nach Nutzungsdauer. Wenn man eine Instanz einen ganzen Monat laufen
lassen wuerde, kaeme man bei den Kosten von 70 Dollar raus und waere in der Preisklasse der Miete eines guten Root-
Servers in Deutschland. Will man aber nur etwas ausprobieren (ein neues Betriebsssystem, eine neue Software),
minimieren sich die Kosten entsprechend bei einem Tag Nutzungsdauer. Die Abrechnung erfolgt quasi schon am
naechsten Tag online und wird dann einfach von Kreditkarte abgebucht.Was bietet AWS noch? Amazon CloudFront.
Hier kann ich einfach in "Buckets" Daten ablegen: Bilder, HTML-Seiten, Stylesheets ... Daten, die vielleicht nur einen Teil
meines Dienstes ausmachen, aber die schnell vom User geladen werden muessen, weil meine Webseite vielleicht aus
sehr vielen Teilen besteht? Die Rechner zu CloudFront stehen direkt an den Peeringpunkten in Frankfurt und in
Amsterdam. Ich lade einmal die Bilder in die Cloudfront hoch und sie werden so verteilt, dass sie von ueberall gut
erreichbar sein. Ansprechen kann ich sie ueber die URL des "Buckets" - das ist dann so eine Art Webcontainer, der (nur
intern) meinem Account zugewordnet ist. Den Namen kann man (soweit noch frei) frei waehlen, sodass
https://eubucket20100228.s3.amazonaws.com/PIC_6118.JPG ja nun unbedingt auf mich schliessen wuerde. Einzelne
Dateien oder Ordner kann ich mit Schreib- oder Leserechten versehen. Entweder kann also jeder die Datei lesen, was
zum Surfen ja nicht von Nachteil ist, oder eine Benutzergruppe oder alle haben auch Schreibrechte, weil es ein
Gaestebuch oder Blog ist. Abgerechnet wird wieder verbrauchter Speicherplatz und Traffic. Die Preislisten sind aber
unter jedem Produkt und Service einsehbar. Weitere Services sind noch SimpleDB, Relational Database Service,
Payment-Service (nur USA) und (auch ueber die EC2-Console managebar) Elastic MapReduce. MapReduce ist eine
Technolgie, die unter http://de.wikipedia.org/wiki/MapReduce beschrieben ist. Man kann wohl sagen, dass damit Google
funktioniert und das mit dieser Technologie sehr grosse Datenmengen in sehr kurzer Zeit verarbeitet werden koennen.
Einen Anwendungsfall beschreibe ich im Folgeartikel "Map&Reduce". Im Amazon Elastic MapReduce kann ich diese
Daten in grosser Breite (also B-R-E-I-T) verarbeiten, um durch Parallelisierung die Verarbeitung zu beschleunigen. Wo
die Anwendung genau laeuft? Ist mir egal. Ich bin virtualisiert.