"Vor einem Jahr haben wir drei Amazon EC2-Instances genutzt. Heute nutzen wir um die 15 Instances. Wir können damit soweit skalieren, um Lastspitzen zu bedienen, die bis zu 30 bis 50 mal höher sind, als der normale Nutzungsumfang. Das Verarbeiten von solchen Traffic Spikes und das unerwartete Wachstum ist primär möglich, weil unser Service auf AWS läuft.“

Ramzi Rizk CoFounder & Chief Developer

EyeEm Berliner Start-up-Unternehmen EyeEm bietet eine beliebte kostenlose Fotoplattform, auf der Smartphone-Fotos für andere Nutzer freigegeben werden können. Mit dieser Anwendung, die ebenfalls EyeEm heißt, können Benutzer mit Ihren Smartphones Fotos machen, verschiedene qualitativ hochwertige Filter und Frames darauf anwenden und die Bilder per E-Mail oder in sozialen Netzwerken auf der EyeEm-Website teilen. EyeEm ist für iPhone, Android- und Windows-Smartphones verfügbar. Das 2011 gegründete Start-up-Unternehmen verfügt über 16 Mitarbeiter und unterstützt eine Community von einigen Millionen Fotobegeisterten weltweit.

EyEm in AWS: Kundenerfolgsgeschichte (4:02)

EyeEm Thumb

EyeEm wollte sich als Start-up-Unternehmen auf ein schnelles Wachstum vorbereiten, ohne sein IT-Budget zu stark auszuweiten. Das Unternehmen nutzte eine gehostete Lösung und sah sich immer wieder mit Datenverkehrsspitzen konfrontiert, die kurze Offline-Zeiten verursachten. Ramzi Rizk, EyeEms Mitbegründer und CTO erläutert dazu: „Wir sind ein aus eigener Kraft gegründetes Start-up-Unternehmen. Wir konnten keine zusätzlichen Mitarbeiter einstellen, die zur Verwaltung, Überwachung und Pflege einer eigenen gehosteten Lösung notwendig gewesen wären. Wir wollten unseren Systemadministrationsaufwand reduzieren und uns gleichzeitig die Möglichkeit schaffen, innerhalb weniger Minuten zu skalieren und somit Datenverkehrsspitzen zu bewältigen.“

„Amazon Web Services (AWS) war bei uns von Anfang an in der engeren Wahl, da sich eine Großzahl anderer Start-up-Unternehmen dafür entschieden hatte“, so Rizk. „Zuverlässigkeit, Laufzeit und Geschwindigkeit waren dabei wichtige Faktoren. Wir haben uns für AWS entschieden, da wir die Flexibilität zur problemlosen Migration unserer vorhandenen Infrastruktur und zur anschließenden nahtlosen Integration in AWS-Produkte und Lösungen benötigten.“

Rizk und sein Team konfigurierten Amazon Elastic Compute Cloud (Amazon EC2)-Instances, um verschiedene Frontend- und Backend-Funktionen für den Anwendungs-Stack von EyeEm auszuführen, der aus UNIX-, PHP- und MySQL-Datenbanken besteht. „Unsere erste Migration von einem Computer in eine AWS-Instance war innerhalb weniger Stunden abgeschlossen“, sagt Rizk. Seither hat sich unsere Architektur mit unseren Anforderungen entwickelt.“

„Der Betrieb und die Skalierung eines Start-up-Unternehmens ist ein kontinuierlicher Prozess. Wir arbeiten mit vier Amazon EC2-Instances für unser MySQL-Setup: eine Instance für die EyeEm-Website, zwischen drei und zehn Instances für APIs und die Bildverarbeitung sowie zusätzliche Instances zur Unterstützung der von uns ausgeführten Dienstprogramme. Ich habe unser Produkt in AWS erstellt, um den Vorteil von Auto Scaling zu nutzen, was uns dabei hilft, den gesamten eingehenden Datenverkehr stabiler zu handhaben.“ Das Unternehmen verwendet Amazon Simple Queue Service (Amazon SQS) für Messaging und Elastic Load Balancing für die Verteilung des Datenverkehrs auf mehrere Amazon EC2-Instances. Abbildung 1 zeigt die Architektur von EyeEm.

EyeEm Architecture Diagram

Abbildung 1: Die EyeEm-Architektur in AWS

EyeEm verwendet Amazon Simple Storage Service (Amazon S3) für die erste Speicherung und Amazon Glacier für Backup-Speicherservices. „Wir verwalten unseren Memcache mit Amazon ElastiCache“, sagt Rizk. „Wir nutzen ihn überwiegend zur Reduzierung des Lesevolumens, das die Datenbank belastete. Mithilfe von Amazon ElastiCache konnten wir die API-Reaktionsrate um die Hälfte reduzieren und somit die Leistung verbessern. Wir konnten ElastiCache so problemlos in unseren bestehenden Funktions-Stack integrieren, dass wir anderen Unternehmen, die in die Cloud migrieren möchten, Amazon ElastiCache als ersten Schritt empfehlen.“ EyeEm nutzt Amazon CloudFormation für die Bildverarbeitung und API-Instances, Amazon Route 53 für die DNS-Verwaltung und Amazon CloudFront für die Fotobereitstellung.

EyeEms Ruf wächst sowohl unter professionellen Fotografen als auch Hobbyfotografen mit Smartphones, was zu einer umfassenderen Nutzung und Datenverkehrsspitzen führt. „Unser Nutzungsniveau ist im vergangenen Jahr um das zehnfache gestiegen und wir konnten unsere Ressourcen an den gestiegenen Bedarf anpassen“, so Rizk. „Vor einem Jahr betrieben wir drei Amazon EC2-Instances. Heute nutzen wird durchschnittlich 15 Instances. Wir können so skalieren, dass wir Datenverkehrsspitzen mit einem bis zu 30 bis 50 Mal höheren Bedarf als normal bewältigen können.“ EyeEm ist darauf vorbereitet, noch weiter zu skalieren, sollte der Bedarf entstehen. Rizk dazu: „Die Bewältigung enormer Datenverkehrsspitzen und von unerwartetem Wachstum ist in erster Linie dadurch möglich, dass unser Service auf AWS läuft.“

Weitere Informationen, wie AWS Ihnen bei der Erfüllung der Anforderungen an Ihre Web-, mobilen und sozialen Netzwerkanwendungen helfen kann, finden Sie unter: http://aws.amazon.com/de/web-mobile-social/.