Anzeige
Anzeige
UX & Design

Mit Amazon AWS, Google App Engine & Co. Applikationen auslagern: Die Cloud für Webentwickler

Bei einer neuen Webanwendung ist die oberste Maxime für Entwickler, die gestellten Anforderungen an die Anwendung akkurat umzusetzen. Die Dimensionierung der Infrastruktur liegt hingegen nicht immer in der Kernkompetenz des Webentwicklers. Auch für Startups ist es zu Beginn in der Regel nicht finanzierbar, riesige Rechnerfarmen zu unterhalten. Um trotzdem auf eine performante Infrastruktur zurückgreifen zu können, lohnt sich ein Blick in die Wolken. Wir stellen die Cloud-Computing-Lösungen von Amazon, Google und Co. vor.

7 Min.
Artikel merken
Anzeige
Anzeige

Im Zusammenhang mit Cloud Computing fällt unweigerlich der Begriff Software-as-a-Service (SaaS). Dabei handelt es sich um eine Anwendung, die nicht mehr auf lokalen Rechnern installiert, sondern als Dienst in Anspruch genommen wird. Cloud Computing ist sehr ähnlich, wobei hier noch einen Schritt weitergegangen wird, da zusätzlich ein Online-Speicher zur Verfügung gestellt wird. Sowohl Saas als auch Cloud Computing haben gemeinsam, dass man sich um die Infrastruktur für seine Anwendung keine Gedanken mehr machen muss.

Anzeige
Anzeige

Klassische Cloud-Computing-Lösungen spielen sich komplett im Browser ab. Die Vorreiter sind die vielfach bewährten Webmailer wie Web.de oder GMX. Neben fertigen Anwendungen existiert aber auch die Möglichkeit, eigene Anwendungen als Cloud-Computing-Lösung zu betreiben – das so genannte Platform-as-a-Service (PaaS). Mit Amazon AWS und Google App Engine existieren zwei populäre Anbieter von PaaS, die wir im Folgenden näher beleuchten.

Die Wolken von Amazon

Amazon ist schon längst über den Status des reinen Online-Versandhandels hinaus und bietet unter anderem auch sein Wissen rund um den Betrieb von großen Webanwendungen an. Das Dach, unter dem diese angeboten werden, heißt Amazon Webservices (AWS) [1]. Die Dienste werden im Baukasten-Prinzip angeboten und können individuell zusammengesetzt werden. Folgende Bausteine befinden sich aktuell im Portfolio:

Anzeige
Anzeige
  • Amazon Simple Storage Service (Amazon S3)
  • Amazon Elastic Compute Cloud (Amazon EC2)
  • Amazon CloudFront
  • Amazon SimpleDB
  • Amazon Simple Queue Service (Amazon SQS)

Für die Ablage von bis zu fünf GB großen Daten steht Amazon S3 zur Verfügung. Amazon EC2 ist die zentrale Infrastrukturkomponente und stellt die notwendige Ablaufplattform für Anwendungen bereit. Eine Anwendung läuft somit innerhalb der Amazon EC2. Das Image der Anwendung wird dabei in Amazon S3 gespeichert. Der Name Elastic in EC2 rührt daher, dass zu jedem Zeitpunkt neue Ressourcen hinzugefügt und entfernt werden können. Das System ist somit sprichwörtlich elastisch. Neben unterschiedlichen Linuxderivaten wie Red Hat Enterprise Linux, Fedora oder Ubuntu Linux stehen auch OpenSolaris und Windows Server 2003 zur Verfügung.

Anzeige
Anzeige

Wie bereits erwähnt, wird ein Image der Anwendung innerhalb von Amazon S3 gespeichert. Dieses Image muss dabei im AMI-Format (Amazon Image) vorliegen. Amazon bietet einige vorkonfigurierte Images an, die als Basis für ein eigenes AMI verwendet werden können. Außerdem ist es möglich, ein komplett eigenes AMI zu erstellen. Genaue Details dazu sind in der Dokumentation zu finden [2]. Für Firefox gibt es das Plugin Elasticfox [3], das die Arbeit mit Amazon EC2 erleichtern soll. Speziell auf Java-EE-Anwendungen ausgerichtet sind die Cloud Tools [4].

Amazon CloudFront als einfaches CDN

Bei vielen Internetauftritten ist es keine Seltenheit, dass große Dateien wie Filme oder andere Multimedia-Inhalte zum Download angeboten werden. Aufgrund der wachsenden Verbreitung von Breitbandinternet werden solche Angebote von Anwendern auch immer stärker genutzt. Dies kann aufgrund der hohen Datenmengen und einer hohen Anzahl an Requests zu einer Überlastung des gesamten Servers führen. Um dies zu vermeiden, ist es ratsam, große Dateien in ein so genanntes Content Distribution Network (CDN) auszulagern. Auf der Website wird dann nur noch ein Link auf die Datei im CDN verwendet.

Anzeige
Anzeige

Amazon CloudFront bietet hier eine einfache und günstige Möglichkeit, dies zu realisieren. Dafür muss der Entwickler lediglich eine Datei im Amazon S3 ablegen und diese mittels CloudFront in die Website einbinden. Bezahlt wird nach Verbrauch. Der Mehrwert gegenüber der reinen Verwendung von S3 entsteht dadurch, dass die Inhalte verteilt per Edge-Server ausgeliefert werden, was erhebliche Vorteile in der Performance bringt.

Für den indexierten Zugriff auf Daten mittels einer SQL-ähnlichen Sprache bietet Amazon den Service SimpleDB an. Darüber hinaus steht Entwicklern mit Amazon SQS ein einfacher Message-Dienst für die Kommunikation zwischen verteilten Komponenten zur Verfügung. Hiermit lassen sich Workflows in Verbindung mit den anderen Komponenten von Amazon AWS umsetzen.

Für die Berechnung der Kosten steht ein Rechner [5] auf der Webseite zur Verfügung. Sollte man darüber nachdenken, Anwendungen in die Cloud von Amazon zu verlagern, stehen auf der Website auch die Service Level Agreements zur Verfügung.

Anzeige
Anzeige

Googles Applikationsmotor

Google hat im Bereich Cloud Computing einiges zu bieten. Der bekannteste Dienst ist sicherlich der Webmailer Google Mail. Auch die Online-Officesuite Google Docs zählt dazu. Mit Google App Engine [6] hat der Suchmaschinenriese zudem eine Plattform (PaaS) im Angebot, mit der Entwickler eigene Anwendungen in der Infrastruktur von Google ablaufen lassen können. Anders als bei Amazon EC2 gibt Google die Anwendungsinfrastruktur inklusive eines Frameworks für die Webanwendungen vor.

Für die Entwicklung steht mit dem App Engine Software Development Kit [7] ein SDK zur Verfügung. Es ist in Python implementiert, wodurch Python derzeit als Sprache für die eigenen Anwendungen vorgegeben ist. Neben einer Reihe von Schnittstellen integriert die App Engine auch das Framework Django in der Version 0.96.1. Erwähnenswert ist, dass Anwendungen für die Google App Engine in einer so genannten Sandbox ablaufen, wodurch gewisse Grenzen vorgegeben sind. So ist der Zugriff auf Fremdsysteme nur über vordefinierte APIs möglich.

Schnittstellen Beschreibung
Datastore Zugriff auf den transaktionalen Datenspeicher, der von der App Engine zur Verfügung gestellt wird. Die Abfragesprache Google Query Language (GQL) ist angelehnt an SQL.
Images Arbeit mit Grafiken, z. B. Rotation
Mail Versenden von E-Mails
Memcache Cache für die Anwendungen
URL Fetch Zugriff auf andere Anwendungen mittels HTTP
Users Einbindungen von Google-Accounts (z. B. Authentifizierung)

Um Anwendungen auch schnell lokal testen zu können, enthält das SDK eine komplette Laufzeitumgebung. Die ersten Schritte mit der App Engine gehen sehr einfach von der Hand, hier hilft besonders der GoogleAppEngineLauncher. Für eine Anwendung wie „Hello, t3n!“ muss nicht mehr viel gemacht werden. Aber auch bei der manuellen Erstellung sind nur zwei Dateien für dieses einfache Beispiel notwendig: die Anwendungsdatei „hellot3n.py“ mit dem Python-Quellcode und die Konfigurationsdatei „app.yaml“. Wie schon an der Dateiendung zu sehen ist, wird die Konfiguration mittels YAML [8] (YAML Ain’t Markup Language) umgesetzt. Die Anwendung wird entweder direkt über „Run“ im GoogleAppEngineLauncher gestartet oder über das Skript „dev_appserver.py“. Als Parameter muss hier der Namen des Ordners mitgegeben werden.

Anzeige
Anzeige
hellot3n.py
print 'Content-Type: text/plain'
print 'Hello, T3N!'

Listing 1

app.yaml: Konfiguration der Anwendung
application: hellot3n
version: 1
runtime: python
api_version: 1
handlers:
- url: /.*
  script: hellot3n.py

Listing 2

Die Anmeldung zur App Engine ist bisher noch kostenfrei. Entwicklern stehen nach der Anmeldung 500 MB Speicher zur Verfügung. Somit steht einem ersten Test nichts mehr im Wege. Wie man die Anwendung online stellt, ist in der Dokumentation der App Engine gut erläutert [9].

Alternativen

Neben den beiden vorgestellten Lösungen sind auch die Plattformen Babble [10] (ursprünglich 10gen) und Aptana Cloud [11] einen Blick wert. Bei Babble handelt es sich auch um eine Plattform zum Betrieb von Cloud-Computing-Umgebungen. Der Applikationsserver ist dabei in Java umgesetzt und verwendet die Datenbank Mongo [12]. Anwendungen können dabei mit JavaScript, Ruby oder Python implementiert werden. Die Installation wird auf der Seite von Babble beschrieben.

Aptana Cloud ist ein Angebot vom Hersteller der Entwickler-IDE Aptana. Dabei handelt es sich um ein komplettes Angebot zur Entwicklung von Anwendungen mit PHP, Aptana Jaxer (AJAX Server von Aptana) und demnächst auch Ruby on Rails in einer Cloud-Computing-Umgebung. Die Anwendung selbst wird dabei in Aptana implementiert und darüber auch in der Wolke installiert. Für die ersten Schritte können Entwickler die Aptana Cloud 21 Tage lang kostenlos testen. Informationen zu den danach anfallenden Preisen liefert die Website. Wie bei Amazon AWS können Entwickler die vorhandenen Ressourcen bei Bedarf anpassen.

Anzeige
Anzeige

Alles nur heiße Luft?

Von den vorgestellten Plattformen ist Amazon AWS am meisten ausgereift. Besonders CloudFront in Verbindung mit S3 lässt sich sehr einfach aufsetzen und schnell in eine Website integrieren. Da die Kosten nur bei Aufruf anfallen, ist dies auch für kleinere Unternehmungen ein praktischer Weg. Neben den vorgestellten Diensten haben auch Blue Chips wie IBM und Microsoft Plattformen im Angebot. Der Marktsektor ist derzeit in starker Bewegung und wird es sicherlich auch bleiben. Besonders die Dienste in der Cloud werden in naher Zukunft rapide zunehmen.

Bei all den Vorteilen sollte jedoch die Frage, welche Daten man in der Cloud bedenkenlos ablegen kann und welche nicht, nicht außer Acht gelassen werden. Besonders bei Google ist nicht ersichtlich, ob die Datenhaltung in Europa oder in Übersee vonstatten geht. Auch Themen wie Service Level Agreements sind bei kritischen Anwendungen ein Aspekt. Sofern es sich um öffentliche Dateien handelt, die ohnehin von jedermann über das Internet erreichbar sein müssen, überwiegen die Vorteile des Cloud Computing die Risiken jedoch bei Weitem. Die Voraussetzungen für einen Probeflug in der Wolke sind heute so gut wie noch nie.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige