Ist S3 billiger als eine EC2-DIY-Lösung (für kleine Dateien)

Ist S3 billiger als eine EC2-DIY-Lösung (für kleine Dateien)

Ist es wirklich günstiger, Bilder und Skripte über S3 zu hosten, als mit einer EC2-Instanz, auf der nginx/Varnish/usw. läuft?

Mir scheint (aber ich fange gerade erst mit AWS an), dass die Anforderungskosten der Hauptfaktor sein werden, wenn Sie keine Sprites oder andere Optimierungen verwenden … oder übersehe ich etwas?

Antwort1

Sie versuchen hier irgendwie, Äpfel mit Birnen zu vergleichen. Amazons Dienste EC2 (Elastic Compute Cloud) und S3 (Simple Storage Service) dienen zwei völlig unterschiedlichen Zwecken. S3 ist für redundante Speicherung gedacht und ist kein „Server“ per se. Ja, wenn Sie einen Webserver woanders gehostet hätten, könnten Sie S3 als eine Art CDN verwenden, indem Sie S3 zusammen mit Cloudfront verwenden, aber der Hauptzweck ist die Speicherung. EC2 hingegen ist ein VPS (virtueller privater Server), der Daemons wie Nginx, Varnish, Apache usw. ausführen könnte. S3 allein kann dies nicht für Sie tun.

Wenn Sie Ihr eigenes AMI (Amazon Machine Image) für eine EC2 erstellen, speichern Sie es in S3 und zahlen die damit verbundenen Speichergebühren. Eine EC2-Instanz kann ohne jegliche Verwendung von S3 ausgeführt werden. Wie erwähnt speichern EC2-Instanzen jedoch keine Daten nach dem Herunterfahren, wenn die Instanz nicht mehr ausgeführt wird. Um Daten zwischen Starts und Herunterfahren beizubehalten, müssen Sie sie entweder in S3 speichern oder einen EBS (Elastic Block Store) verwenden, der die Daten für Sie persistent speichern kann.

Es gibt verschiedene Preisstufen für die Bandbreite eingehend, ausgehend und innerhalb einer bestimmten Region sowie für die Speicherkapazität, E/A-Anfragen usw. Das wird kompliziert und es gibt mehrere Rechner, die Ihnen dabei helfen, es herauszufinden. Ich habe meine eigene Tabelle mit Formeln geschrieben, in die ich meine CSV-Downloads mit dem Nutzungsverlauf importiere, um zukünftige Nutzungskosten abzuschätzen. Ich verwalte jetzt seit über 9 Monaten mehrere Serverinstanzen für einen Kunden innerhalb von EC2. Ich habe festgestellt, dass die am einfachsten zu berechnenden Kosten die Instanzlaufzeit sind, da es sich um einen einfachen Stundensatz pro Instanz handelt. Danach sind EBS-Volumen und S3-Speicherkapazitäten einfach zu berechnen, aber die E/A-Anfragen und die Bandbreite können manchmal überraschend sein.

Meine S3-Speicherkosten sind normalerweise recht gering (normalerweise < 2 $/Monat) und ich speichere mehrere AMIs und einige Dokumente, auf die die Anwendungsserver zugreifen, sowie den ersten Start der Instanzen. Meine Instanzen verwenden einen Puppet-Server, der auf einem VPS außerhalb von Amazon verwaltet wird und auch als mein Überwachungs- und Jumpbox-Server dient. Beim durchschnittlichen Betrieb von etwa 7 Instanzen habe ich festgestellt, dass meine E/A-Anfragen zwischen 5 und 8 Millionen liegen und durchschnittlich < 1 $/Monat kosten. In den letzten 6 Monaten habe ich durchschnittlich etwa 10 GB in EBS-Volumes verwendet und das kostet nur etwas über 1 $/Monat. Ich verwende EBS-Volumes für meine statischen Inhalte sowie für meine MySQL-Datenbankdateien und Binärprotokolle. Der eingehende Datentransfer lief zwischen 20 und 24 GB und kostet durchschnittlich ~ 2,25 $/Monat, während der ausgehende Datentransfer zwischen 241 und 326 GB lief und durchschnittlich ~ 42 $/Monat kostete. Meine regionale Bandbreite zwischen den Instanzen betrug zwischen 130 MB und 535 GB, da sich nicht alle meiner Instanzen in denselben Verfügbarkeitszonen befinden, und lag im Durchschnitt bei ~2,45 USD/Monat. Wie ich bereits sagte, ist der Stundensatz am einfachsten zu berechnen, sodass wir für die EC2-Instanzen selbst über 1700 USD/Monat ausgeben. Wir möchten derzeit von On-Demand-Instanzen auf reservierte Instanzen umsteigen und sollten dies nach den Vorabkosten (6.000 bis 9.000 USD) für die reservierte Instanz auf etwa 600 USD/Monat senken.

Antwort2

Bei S3 zahlen Sie für Übertragung und Speicherung. Bei EC2 zahlen Sie auch für die Zeit, in der die Instanzen ausgeführt werden. In jedem Fall zahlen Sie für Übertragung und Speicherung, daher sollte es in jedem Fall günstiger sein, S3 nur für das Dateihosting zu verwenden. EC2 sollte immer teurer sein, da Sie zusätzlich zu Speicherung und Übertragung auch für die Zeit zahlen, in der die Instanz ausgeführt wird. Amazon hat einePreisrechnerdie Sie verwenden können, um mit den Zahlen basierend auf Ihrem eigenen Anwendungsfall und dem geschätzten erforderlichen Übertragungs- und Speicherbedarf zu spielen.

Antwort3

Sie müssen die Menge des Datenverkehrs berücksichtigen, der die S3-Daten auf den Webserver zieht. Bei EC2 zahlen Sie stundenweise, erhalten aber 160 GB lokalen Speicher, bei S3 zahlen Sie für Speicher und Bandbreite.

Generell würde ich sagen, dass für einen Webserver die EC2-Instanz entweder billiger oder gleichwertig zu S3 ist. Aber schauen Sie sich den Preisrechner an, um das zu überprüfen

Antwort4

Da S3 im Wesentlichen ein verteiltes Netzwerkdateisystem bereitstellt, sollten Sie die Verwendung von EC2-Knoten zum Erstellen eines solchen Systems in Betracht ziehen.

MongoDB/GridFS wäre ein überzeugender Vergleich.

S3 weist angeblich von Zeit zu Zeit Lese-/Schreibtimeouts auf und der Aufbau einer eigenen Cache-Schicht könnte ebenfalls hilfreich sein.

verwandte Informationen