Infrastruktur vom Buchhändler
Artikel erschienen in Swiss IT Magazine 2008/02
Die Zeiten, in denen Amazon.com als reiner Online-Händler seine Waren per Post nach Hause schickt, sind vorbei. Statt dessen will Amazon nun auch mit seiner verteilten und leistungsfähigen Infrastruktur Geld verdienen, indem sie an die Kundschaft zur Mitbenutzung vermietet wird. Nebst grundlegenden Angeboten wie Storage und Rechenkapazität hat Amazon auch höher liegende Services wie Zahlungsverarbeitung und Datenbank im Angebot.
Amazon bietet die verschiedenen Produkte als Teil des Web-Services-Programms (AWS) an, das bereits seit einigen Jahren läuft und vor allem durch das Partnerprogramm bekannt ist. Dieses ermöglicht Seitenbetreibern, Provision für Käufe zu kassieren, die ihre Besucher bei Amazon tätigen. Seither hat Amazon die AWS um eine Reihe von Infrastruktur-Services ergänzt, die regelmässig erweitert werden und eine Mischung aus Software as a Service und Cloud Computing darstellen.
- DevPay: Ermöglicht dem Anwender die Abrechnung von Services, die Kunden in Anspruch nehmen und auf Basis von EC2 und S3 (siehe unten) erstellt wurden. Dazu kommt ein Account Management System zur Kundenverwaltung. Die Abrechnung erfolgt für die Kunden des Anwenders über FPS (siehe unten).
Die Steuerung sämtlicher AWS erfolgt über Web-APIs, die sowohl SOAP als auch REST verstehen. Dies macht die Integration der AWS in bestehende und neue Applikationen einfach, weil alle grossen Entwicklungsplattformen entweder Unterstützung für das eine oder andere Protokoll mitbringen – wenn nicht gleich für beide – und es egal ist, ob man auf Desktop oder Server arbeitet.
Die Implementierung der AWS unterstützt Amazon mit einer umfangreichen Dokumentation, die nebst Beispielcode und WDSL-Beschreibungen zum Teil auch komplette Bibliotheken enthält. Zudem steht bei einigen Services eine Sandbox zum Testen eigener Implementierungen bereit. Unterstützung erhält man über die Developer-Foren. Bei Bedarf steht auch ein technischer Support per E-Mail seitens Amazon bereit.
Die Abrechnung aller Services erfolgt nach Gebrauch (Details siehe Tabelle). So wird hauptsächlich die jeweils verbrauchte Bandbreite und Rechenkapazität respektive Uptime berechnet. Wer vorab bereits wissen will, welche Rechnungssumme ihn am Monatsende erwarten könnte, kann dies mit dem AWS Simply Monthly Calculator berechnen, sofern der Ressourcenverbrauch bereits vorab eingeschätzt werden kann.
Da die Amazon-Services sofort zur Verfügung stehen, kommt das flexible Preisschema vor allem Anwendern zugute, die kurzfristig ihre eigene Infrastruktur ergänzen müssen, um beispielsweise Lastspitzen auszugleichen oder bei starkem Wachstum die Zeitspanne zu überbrücken, bis man selber neue Hardware in Betrieb nehmen kann. Ist die Lastspitze vorbei oder die neue Hardware installiert, können die Amazon-Services kurzerhand abbestellt werden und belasten (bis zum nächsten Einsatz) nicht mehr die Rechnung.
Ob der Möglichkeiten, die einem die Amazon Web Services bezüglich günstiger Skalierung bieten, darf man allerdings nicht vergessen, dass sie von der Flexibilität her nicht an eine eigene Infrastruktur heranreichen können. So muss man mit den Funktionen leben, die ein Service bietet – oder eben nicht. Anpassung der Konditionen und Angebotsparameter sind kaum bis gar nicht vorgesehen. Zudem sind einige Funktionen nur in den USA verfügbar, was auch der Standort der Server ist – mit Ausnahme von S3 Europa. Dies kann insbesondere im Hinblick auf den Datenschutz die Einsatzmöglichkeiten der verschiedenen Web Services erheblich einschränken. Wie das Beispiel S3 zeigt, arbeitet Amazon allerdings an der geografischen Verteilung der Services, auch um die Paketlaufzeiten für Besucher auf anderen Kontinenten zu senken.
Den wohl grössten Hinderungsgrund, die Amazon Web Services zu nutzen, ist der Mangel an Service Level Agreements für das Gros der Produkte. Das heisst, dass Amazon weder eine bestimmte Uptime noch Kompensation für allfällige Ausfälle garantiert. Insofern ist für die Nutzung der AWS eine grosse Portion Vertrauen nötig. Inwiefern sich die SLA-Lage ändert, wenn die jeweiligen Services aus der Beta-Phase entlassen werden, lässt sich schwer beurteilen. S3 hat beim Verlassen der Beta-Phase per 1. Oktober 2007 einen SLA erhalten, der 99,9 Prozent Uptime pro Monat garantiert. Bei Nichteinhaltung rechnet Amazon 10 bis 25 Prozent der Rechnungssumme auf den Folgemonat an. Der Simple Queue Service kommt dagegen auch ohne Beta-Etikette ohne SLA.
Ob man einen SLA braucht, muss jeder Anwender für sich selber entscheiden. Dass Amazon mit S3 und über 5 Milliarden gespeicherten Objekten eine hohe Verfügbarkeit bieten kann, zeigt jedenfalls eine Untersuchung von Webmetrics, die für Oktober 2007 eine Verfügbarkeit von 99,991 Prozent ausweist. Auf der anderen Seite gibt es immer wieder Berichte über Ausfälle, beispielsweise von September 2007, als ein Ausfall von EC2 bei einigen Anwendern für Datenverluste gesorgt hat.
Trotz den Einschränkungen scheinen sich die AWS einer grossen Beliebtheit zu erfreuen, was sich unter anderem mit dem Hype um Web 2.0 erklären lässt und der Not, als Start-up günstig skalieren zu müssen. Im Web kann man eine Vielzahl von Erfahrungsberichten finden, in denen vor allem US-amerikanische Start-ups über ihre Erfahrungen mit den AWS berichten. So konnte beispielsweise der Betreiber der Photo-Sharing-Community SmugMug durch den Wechsel auf S3 für die Speicherung der Bilder im ersten Jahr eine Million Dollar sparen. Bei der Produktbewertungsseite Shoppero aus Hamburg hat man sich den eigenen Serverpark erspart und setzt statt dessen auf die Kombination aus EC2 und S3, da so der Serverkauf wegfällt und nach Bedarf skaliert werden kann.
Über die Amazon Web Services vermietet Amazon nicht nur Computer, sondern auch Menschen. Über Mechanical Turk («Schachtürke») lassen sich Aufgaben, die von einem Computer nur schwer, von Menschen dagegen einfach erledigt werden können, per API an Menschen zur Bearbeitung auslagern. Dazu kann beispielsweise die Erkennung eines Objekts auf einem Bild oder die Transkription eines Podcast gehören. Man braucht nur die Aufgabe angeben und den Betrag, den man zu zahlen bereit ist. Menschen können dann über die Webseite von Mechanical Turk (www.mturk.com) die Aufgaben aussuchen und erledigen. Wird eine bestimmte Qualifikation vom Aufgabenlöser verlangt, kann man Tests spezifizieren, die bewältigt werden müssen, oder eine bestimmte Anzahl bereits gelöster Aufgaben verlangen.