2009-03-15 9 views
12

Ich verbrachte den Tag zum ersten Mal mit AWS experimentieren. Ich habe eine EC2-Instanz ausgeführt und ich habe einen Elastic Block Store (EBS) gemountet, um die MySQL-Datenbanken zu behalten.EBS zum Speichern von Datenbanken vs. Website-Dateien

Macht es Sinn, meine Webanwendungsdateien auch auf das EBS zu legen, oder sollte ich sie einfach auf das normale EC2-Dateisystem anwenden?

+0

Niemand kennt Ihre Anforderungen außer Ihnen. Vielleicht sollten Sie ... –

+0

Voted zurück, weil es eine vollkommen legitime Frage ist. –

+0

Wie Kevin Peterson in seiner Antwort darauf hinweist, wäre es sehr wichtig zu wissen, ob Sie implementierten Code oder Datendateien meinen. – Jonik

Antwort

7

Wenn Sie Ihre Webanwendungsdateien sagen, bin ich mir nicht sicher, was genau Sie meinen.

Wenn Sie sich auf Ihren implementierten Code beziehen, ist es wahrscheinlich nicht sinnvoll, EBS zu verwenden. Sie möchten ein AMI mit Ihren Voraussetzungen erstellen und dann ein Skript erstellen, mit dem Sie eine Instanz dieses AMI erstellen und den neuesten Code bereitstellen können. Ich empfehle Ihnen dringend, diesen Prozess zu automatisieren und zu testen, da es leicht ist, einige Einstellungen zu vergessen, die Sie manuell ändern müssen.

Wenn Sie Dateien speichern, die von der laufenden Anwendung geändert werden, kann EBS sinnvoll sein. Wenn es sich um vom Benutzer hochgeladene Bilder oder ähnliches handelt, werden Sie wahrscheinlich feststellen, dass S3 Ihnen ein viel einfacheres Modell bietet.

EBS wäre gut für: Datenbanken, Lucene-Indizes, dateibasierte CMS, SVN-Repository oder etwas ähnliches.

+1

+1, das ist die klarste Antwort hier.Wenn sich OP darüber wundert, wie schnell die EBS im Vergleich zur Instanzspeicherung ist, sollte er dies überprüfen: http://serverfault.com/questions/111594/which-is-faster-for-read-access-on-ec2-local -drive-or-ebs – Jonik

2

EBS bietet Ihnen dauerhaften Speicher. Wenn die EC2-Instanz fehlschlägt, sind die Dateien noch vorhanden. Anscheinend ist ihre IO Leistung erhöht, aber ich würde es testen, um sicher zu sein.

2

Wenn Ihre Dateien sich häufig ändern (wie eine DB) und Sie nicht mit S3 (oder anderswo) synchronisieren wollen, dann ist ein EBS ein guter Weg. Wenn Sie selten Änderungen vornehmen und die Dateien nach Bedarf manuell (oder Skript) synchronisieren können, speichern Sie sie in S3. Wenn Sie aus irgendeinem Grund herunterfahren oder Ihre Instanz verlieren müssen, können Sie sie einfach beim Starten der neuen Instanz ablegen. Dies geht auch davon aus, dass Sie sich um Kosten kümmern. Wenn Kosten kein Problem sind, ist die Verwendung der EBS weniger kompliziert. Ich bin mir nicht sicher, ob Sie ein separates EBS für Ihre DB und Ihre Web-Dateien haben wollen, aber wenn Sie nur ein EBS haben und Sie genug freien Platz für Ihre Web-Dateien haben, dann ist das EBS weniger kompliziert. Wenn es um die Leistung geht, um die Sie sich sorgen, wie bereits erwähnt, ist es am besten, Ihre bestimmte App zu testen.

1

Unser Ansatz besteht darin, auf unserem AMI ein Skript zu implementieren, das die neueste und beste Version des Codes aus der Quellcodeverwaltung abruft. Das macht es sehr einfach, neue Instanzen schnell zu starten oder alle laufenden Instanzen zu aktualisieren (wir nehmen sie nacheinander aus der Lastenausgleichsrotation heraus, führen das Skript aus und setzen sie wieder in die Rotation).

UPDATE:

zwischen den Zeilen liest es sieht aus wie Sie ein separates EBS Volumen auf eine Instanz-Speicher gesichert Instanz sind Montage. AWS hat kürzlich EBS-gestützte Instanzen eingeführt, die eine Menge Vorteile gegenüber den alten Instance-Store-Instanzen bieten. Ich montiere meine MySQL-Daten jedoch immer noch auf einer separaten EBS-Partition, so dass ich sie bei Bedarf einfach auf einem anderen Server bereitstellen kann.

Ich empfehle dringend eine EBS unterstützte Instanz mit einem separaten EBS-Volume für die MySQL-Daten.