Anzeige
Anzeige
Artikel

E-Commerce in der Cloud: Magento-Hosting mit Amazon EC2

Amazons virtuelle Server-Technologie Elastic Compute Cloud (EC2) ist in aller Munde. Mit den seit Anfang April verfügbaren „Reserved Instances“ werden Amazons virtuelle Server zudem als Alternative zu klassischem Hosting interessant – auch oder besonders für das als ressourcenhungrig bekannte Open-Source-Shopsystem Magento. Wir zeigen, wie man einen vorbereiteten Demo-Shop an den Start bringt und welche Performance man erwarten kann.

5 Min.
Artikel merken
Anzeige
Anzeige

In den Anfangszeiten von Amazon EC2 war das Starten und Stoppen von neuen Server-Instanzen, das Einrichten von Sicherheitsgruppen sowie alle weiteren Vorgänge ausschließlich mit den EC2-API-Tools [1] möglich. Für Benutzer, die nicht mit der Kommandozeile vertraut sind, stellte das eine große Hürde dar. Die von Amazon entwickelte Firefox-Extension Elasticfox [2] schaffte erste Abhilfe. Anfang dieses Jahres veröffentlichte Amazon dann die AWS-Management-Konsole [3], mit der Nutzer einen virtuellen Server mit wenigen Mausklicks über ein benutzerfreundliches Web-Interface starten können.

Anzeige
Anzeige

Zudem ist EC2 mittlerweile auch für Firmen in Europa interessant geworden: In der Anfangszeit nutzte Amazon für seine Web Services ausschließlich Server, die in den USA stehen, was zu einer deutlich geringeren Reaktionszeit bei Website-Zugriffen aus Europa führt. Seit Dezember 2008 ist Amazon EC2 auch in Europa verfügbar, derzeitiger Server-Standort ist Irland. Die Region Europa ist seit März 2009 außerdem auch über die Management-Konsole ansprechbar.

Um EC2 mit der Management-Konsole nutzen zu können, benötigt man ein AWS-Konto [4] und muss dort eine Kreditkarte hinterlegen, die monatlich mit den Gebühren für die effektiv genutzten Instanz-Stunden zuzüglich des Traffics belastet wird [5]. Wer EC2 nur mal testen möchte, fährt den Server nach zwei Stunden wieder herunter und bezahlt nur ein paar Cents dafür.

Anzeige
Anzeige

In der Region EU gibt es derzeit zwei kostenlose Amazon Machine Images (AMI) auf Basis von Debian Etch Linux. Auf diesen AMIs ist ein Magento-Demo-Shop vorinstalliert, außerdem sind die Images (teilweise) für Magento optimiert. Folgende für Magento vorbereiteten Amazon Machine Images sind derzeit in der Region US und EU vorhanden:

Anzeige
Anzeige
AMI Name Region Größe Webserver
magento-etch-virtualmin-gpl-3.63 US m1.small Apache
debian-4.0-etch-64-magento-2009-03-10 EU m1.large Apache
debian-4.0-etch-32-magento-nginx-2009-03-15 EU m1.small Nginx

Amazons Web-Interface erleichtert EC2-Nutzern seit Anfang des Jahres den Umgang mit virtuellen Server-Instanzen.

Amazons Web-Interface erleichtert EC2-Nutzern seit Anfang des Jahres den Umgang mit virtuellen Server-Instanzen.

Um die Magento-AMIs zu finden, genügt es, in das Suchfeld der Management-Konsole das Wort „magento“ einzugeben. Je nach ausgewählter Region werden die vorhandenen AMIs aufgelistet. Per Checkbox wählt man das gewünschte AMI aus. Zur Wahl stehen dann noch die Anzahl der gewünschten Instanzen sowie der Instanztyp.
Eine Instanz vom Typ „Small“ (m1.small) hat 1,7 GB RAM und ist für einen
Demo-Shop ausreichend. Für einen produktiven Magento-Shop mit
beträchtlichen Besucherzahlen ist eine Small-Instanz nur ratsam,
wenn man anstatt Apache den performanteren Webserver Nginx [6] einsetzt. Ein Klick auf den Launch-Button fährt den virtuellen Server schließlich in wenigen Sekunden hoch.

Ein virtueller Server lässt sich mit einem Klick starten.

Ein virtueller Server lässt sich mit einem Klick starten.

Anschließend sollte man zum Menüpunkt „Instances“ wechseln, um die Puplic-DNS, die zu Testzwecken als temporäre URL verwendet werden kann, ablesen zu können.

Anzeige
Anzeige

Shop-Konfiguration anpassen

Über diese URL kann man sich auf dem neuen Server via SSH einloggen und muss lediglich noch zwei kleine Änderungen an der Konfiguration des Demo-Shops vornehmen, bevor man diesen austesten kann:

  1. Shop-URL in den ersten beiden Einträgen der Datenbank-Tabelle „core_config_data“ ändern
  2. Cache unter „/var/www/apache2-default/magento/var/cache/*“ leeren

Jetzt ist der Magento-Demo-Shop im Browser über die (sinngemäße) URL http://ihre-ec2-domain-123.compute-1.amazonaws.com/apache2-default/magento/ erreichbar.

Performance-Optimierungen

Die AMIs, die Apache als Webserver verwenden, wurden folgenden Optimierungen unterzogen:

Anzeige
Anzeige
  1. Anpassung der MySQL-Konfiguration, um den Arbeitsspeicher des Servers besser ausschöpfen zu können
  2. Apache KeepAlives aktiviert, damit mehrere HTTP-Requests über die gleiche TCP-Verbindung getrichtert werden (ist bei Debian bereits Grundeinstellung)
  3. PHP Opcode Cache (XCache) installiert, um dem Interpreter das Rekompilieren bei jeder Anfrage zu ersparen
  4. speicherbasiertes Dateisystem für das Cachen von Dateien und Sessions (wurde in den drei vorhandenen AMIs noch nicht implementiert)

Tests haben gezeigt, dass beim Magento-Demo-Shop mit 30 bis 50 Testartikeln die Parse-Zeiten nach Anwendung von Punkt 1 und 2 fast identisch bleiben. Erst nach Installation des PHP Opcode Cache sanken die Parsezeiten von durchschnittlich 1,1 bis 2,9 Sekunden auf 1,0 bis 2,3 Sekunden. Die gleichen Tests auf einer m1.large-Instanz (7,5 GB RAM) mit den gleichen Optimierungen ergeben gemäss Magento-Profiler folgende Parsezeiten:

Shop-Seite Seiten-Parsezeit in Sekunden
Startseite 0,2 bis 0,3
Produktauflistung 0,4 bis 0,6
Produktdetail 0,6 bis 0,8
Artikel in Warenkorb legen 0,6 bis 1,2

Da die Kosten für eine m1.large-Instanz viermal so hoch sind wie für eine m1.small-Instanz, gibt dies nur bedingt Grund zum Jubel. Mit dem Mitte März 2009 von Amazon neu eingeführten Modell der reservierten Instanzen (Reserved Instances), können die Stundenpreise durch eine einmalige Einrichtungsgebühr allerdings deutlich gesenkt werden, sodass die jährlichen Kosten insgesamt niedriger ausfallen.

Der große Vorteil der Cloud liegt jedoch ohnehin nicht in niedrigeren Server-Kosten im Vergleich zum klassischen Hosting, sondern in der fast grenzenlosen Skalierbarkeit, die man zum Beispiel für groß angelegte
Marketing-Aktionen nutzen kann, die hohe Besucherzahlen zur Folge haben. Nach Ende der Aktion können die nicht mehr benötigten Server-Instanzen
(automatisch) wieder heruntergefahren werden,
bezahlt wird nur der
effektiv genutzte Traffic und die tatsächlich genutzten Server-Stunden.

Anzeige
Anzeige

Nginx – High Performance HTTP-Server

Wer noch mehr aus einer m1.small-Instanz herausholen möchte, sollte sich das AMI mit dem vorinstallierten Nginx-Webserver einmal genauer ansehen. Trotz einem vergleichsweise sehr kleinen Marktanteil von 1 bis 4 Prozent ist dieser Open-Source-Webserver bekannt für seine hohe Performance, Stabilität, einfache Konfiguration und niedrigen Ressourcenverbrauch.

In Kombination mit den in dem AMI installierten Varnish (HTTP Accelerator) und APC (PHP-Cache) erreicht der Demo-Shop Parse-Zeiten zwischen 0,8 und 1,0 Sekunden.

Fazit

Mit den in der zweiten Aprilhälfte nun auch in Europa eingeführten Reserved Instances [7] wird EC2-Hosting im Dauereinsatz deutlich günstiger und ist nun eindeutig mit anderen virtuellen Server-Angeboten vergleichbar. Es eignet sich vor allem als günstige Testumgebung und für produktive Magento-Shops mit höherem Traffic, da man nicht den Performance-Schwankungen eines Shared-Hosting-Angebots ausgeliefert ist. Für kleinere Shops dürfte allerdings nach wie vor ein auf Magento ausgerichtetes Shared-Hosting die bessere und günstigere Alternative sein.

Anzeige
Anzeige

Weiterführende Informationen zur Kombination aus Magento und EC2 finden sich im englischsprachigen Magento-Wiki [8]. Dort findet man auch ein von Vinai Kopp zur Verfügung gestelltes Shell-Skript zum automatischen Einbinden von Elastic-Block-Store-Volumes.

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