Magento Hosting auf Amazon EC2

·

·

English speakers, please go to the Magento Wiki page about Using Magento on EC2.

Gestern haben wir das seit langem geplante Vorhaben, eine für Magento optimierte Hosting Umgebung (EC2, Elastic Cloud) auf Amazon’s Cloud Infrastruktur zu testen, in die Realität umgesetzt.

Update 10.03.2009: Der m1.small Demo Shop wurde deaktiviert. Das Amazon Machine Image ist aber öffentlich zugäglich, d.h. jeder kann selbst einen Demo Shop starten. Dieses AMI ist nur in der der Region US zugänglich. Um den Demo Shop aufzurufen, verwenden Sie bitte die URL, die Sie in der AWS Management Konsole sehen und rufen diese in einem Browser auf. Sie gelangen nun automatisch ins apache2-default Verzeichnis. An diese URL müssen Sie nun noch magento dran hängen, um den Magento Shop aufzurufen (Admin Username: admin, Passwort: 4KKEzgn9zZ).

Update 06.03.2009: Wir haben heute ein Amazon Machine Image (AMI) unter dem Namen magento-etch-virtualmin-gpl-3.63 öffentlich bereit gestellt, so dass jeder seine eigene Instanz starten kann und mit einem Mausklick einen kompletten Debian Linux Server mit vorinstalliertem Magento 1.2.1.2, optimierter MySQL Query Cache Konfiguration und integriertem XCache starten kann.

Das AMI werden wir in Kürze auch noch ind der Region EU bereit stellen, was die Ladenzeiten für den deutschsprachigen Raum nochmals geringfügig verbessern sollte.

Wer noch keine Erfahrung mit EC2 hat, kann mittlerweile mit der AWS Management Konsole in einer graphischen Umgebung sehr einfach eine EC2 Instanz zum laufen bringen.

Nach den bisher durchgeführten Optimierungen berichtet der Magento Profiler folgende Parse Zeiten:

Home Page: 1.0s
Produktauflistung: 1.2-1.5s
Produktdetail: 1.3-1.6s
Produkt in den Warenkorb legen: 0.9-2.3s

Dies ist schon mal nicht schlecht, kann aber sicher noch weiter optimiert werden, unter anderem natürlich durch mehr RAM. Wir haben für unsere Zwecke die kleinste Standard Instanz (m1.small) verwendet. Es gibt folgende Standard Instanzen:

Small Instance (Default)

– 1.7 GB of memory
– 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)
– 160 GB of instance storage
– 32-bit platform

Large Instance

– 7.5 GB of memory
– 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each)
– 850 GB of instance storage
– 64-bit platform

Extra Large Instance

– 15 GB of memory
– 8 EC2 Compute Units (4 virtual cores with 2 EC2 Compute Units each)
– 1690 GB of instance storage
– 64-bit platform

Wie wären wohl die Parse Zeiten auf der Extra grossen Instanz?

Weitere Informationen zum Thema Magento Hosting auf EC2 finden Sie im Magento Wiki unter Using Magento on EC2.

Update 15.03.2009: Diejenigen, die uns über das Magento Wiki gefolgt sind wissen bereits, dass wir weitere Experimente mit Nginx, einem Open Source, High Performance HTTP Server unter Amazon EC2 gemacht haben und dabei sehr erfolgreich waren.

Neben den reinen Parse Zeiten, haben wir mit Pingdom ausserdem noch die Gesamtladenzeiten einer Seite ausgewertet und dabei mit Nginx und einigen weiteren Optimierungen (php_fastcgi, Varnish HTTP Accelerator und APC PHP Cache) eine m1.small Instanz schneller gemacht, als eine m1.large Instanz unter Apache!

Detailliertere Informationen zum Setup und den Benchmarking Tests finden Sie im englischsprachigen Magento Wiki.

Wir haben mittlerweile insgesamt drei verschiedene AMIs veröffentlicht, die wir abschliessend hier nochmals auflisten:

  1. magento-etch-virtualmin-gpl-3.63 (Apache, US Region m1.small)
  2. debian-4.0-etch-64-magento-2009-03-10 (Apache, EU Region m1.large)
  3. debian-4.0-etch-32-magento-nginx-2009-03-15 (Nginx, EU Region m1.small)