Patrick Figel: StartUp: Optimale Serveraufteilung (Beispiel ist gegeben)?

Beitrag lesen

  1. Webserver, dedicated:
  • Linux/Debian
  • Preisklasse: unter 100€
  • Nur Apache/PHP zur Ausführung von Skripten und Auslieferung von Content
  • Ist Ziel-IP des DNS-Eintrags der Domain

Das wäre ein SPOF. Je nachdem, welches Risiko ein Ausfall für dich bedeutet, sollte hier ein Cluster eingesetzt werden. die Hochverfügbarkeit von RDS und S3 bringt nichts, wenn der Webserver ausfällt.
Wie viele Requests ein einzelner Webserver handeln kann, hängt von der Anwendung ab. Mit aggressivem Caching (APC, memcached) und wenig I/O ist hier einiges herauszuholen.
Bei der Server-Dimensionierung solltest du auf möglichst viel Arbeitsspeicher achten. Vielleicht ist auch eine Kombination von nginx als Load Balancer und einem anderen Webserver (zB lighttpd mit php) für die dynamischen Inhalte sinnvoll - das hängt aber vom Anwendungsfall ab.

  1. Amazon RDS (MySQL)
  • MySQL 5.1
  • Anfangs 1 (virtuelle) CPU, 1.7 GB RAM
  • jederzeit änderbar auf bis zu 8 virtuelle CPUs und 68 GB RAM

Die einfache Skalierbarkeit und Hochverfügbarkeit ist natürlich praktisch, aber auch relativ teuer (ungefähr $ 100/monatlich für die kleinste Variante [ohne Traffic, I/O]). Die Latenzzeiten von Webserver zu MySQL werden durch das Amazon-Hosting natürlich auch nicht schneller. Ob RDS einem weiteren dedicated Server vorzuziehen ist, hängt auch davon ab, wie häufig Daten zwischen Webserver und Datenbank ausgetauscht werden müssen.

  1. Amazon EC2
  • pure Rechenleistung
  • zur Konvertierung von Videos
  • Anfangs 1 virtuelle CPU, 1.7 GB RAM
  • jederzeit änderbar auf bis zu 8 virtuelle CPUs und 1,6 TB RAM

Als Arbeitssklave für Konvertierung etc. sehr gut geeignet (evtl. auch nur für einige Stunden/Tag, um Kosten zu sparen). Nur I/O-intensive Tasks sind für EC2 ungeeignet. Wenn aber nur Videos aus S3 geladen, konvertiert und erneut dort gespeichert werden sollen, ist EC2 eine gute wahl.
Einziger negativer Punkt: Zusätzlicher Aufwand bei der Entwicklung (kommunikation mit Webserver etc.).

  1. Amazon S3
  • Speicherserver
  • unbegrenzte Kapazität, maximal 4 GB pro Datei
  • zur Speicherung von Videos, Bildern, Dokumenten, ...

S3 bzw. CloudFront lässt sich sehr gut als CDN einsetzen (Edge-Standorte weltweit mit CloudFront). Die Transferraten sind sehr hoch, die Latenz in Ordnung. Damit würdest du den Webserver sehr stark entlasten, sämtliche statische Inhalte können über S3 ausgeliefert werden