EC2 - Shared Storage - S3FS oder EBS?

9

Bauen Sie meinen Webdienst jetzt auf EC2 auf und haben Sie eine einzelne Instanz hinter einem Load Balancer. Ich werde natürlich für mehrere Fälle sorgen.

Meine ursprüngliche Idee war, alle Instanzen als dumme Slaves auszuführen und S3 als lokalen Speicher zu verwenden. Dafür habe ich begonnen, S3FS zu verwenden, aber es ist, wie ich gesehen habe, nicht wirklich bereit für die Verwendung in der Produktion in einer Web-Serving-Umgebung. Das Schreiben von Protokollen scheint sehr spät zu erscheinen, wenn nicht sogar nie. Zahlreiche Probleme mit seltsamem Caching, auch ohne Cache-Flags usw. Nur im Allgemeinen ein Albtraum, auf dem man sich entwickeln kann.

Aber die Alternativen sehen nur wenige aus. Eines davon sind offensichtlich EBS-Volumes, die an eine einzelne Instanz angehängt werden können. Einige Lösungen, um dies zu teilen: -

  • SMB-Freigabe für andere Instanzen. Mit einem Master und den restlichen Slaves - obv benötigt hier möglicherweise Redundanz mit mehreren EBS-Volumes?
  • Rsync-Freigabe für andere Boxen. Dies scheint schmerzhaft zu sein, da es nicht dauerhaft ist und regelmäßig aktualisiert wird. Möglicherweise in Ordnung, wenn Skripte gezwungen werden, zu aktualisieren, wenn größere Änderungen vorgenommen wurden.

Die Frage ist ... was machen die Leute? Es scheint ein völlig häufiger Anwendungsfall zu sein, aber die Vielzahl der Antworten in Foren und sogar hier auf SF scheint darauf hinzudeuten, dass es keine präzise Antwort gibt ... Hilfe erwünscht!

wachsartig
quelle

Antworten:

0

Das liegt daran, dass es viele Antworten gibt, abhängig von Ihrer Vertrautheit mit den Optionen, dem, was Sie möchten, was Sie teilen und wie oft es synchronisiert wird, wie "synchronisiert" es sein muss, wie sie sind. Sie werden verwendet (Ersatz für Heartbeat? Nur Lesen im Vergleich zu einer Schreibinstanz? Ausgewogene Instanzen?) und wie kompliziert das Setup sein soll und welche Anwendung Sie verwenden (Datenbanken, die sich selbst synchronisieren können? Anwendungen, die für gemeinsam genutzten Speicher erstellt wurden ? ...)

Sie können Rsync verwenden, um Synchronisierungen, Freigaben von einem Dateiserver, NFS-Server, DRBD "Software RAID 1" usw. zu planen. Dies hängt von Ihrem speziellen Anwendungsfall und der Art und Weise ab, wie Sie die Daten sichern.

Die kurze Antwort lautet: Es gibt keine Antwort auf Ihre Frage, da dies vom Anwendungsfall abhängt.

Bart Silverstrim
quelle
Danke Bart. Ich befürchtete diese Art von Antwort, obwohl es wohl zu erwarten war! Der Anwendungsfall ist ... Ich habe einen Webservice, der von PHP gesteuert wird - er hostet auch Images, CSS und den Rest (dies könnte alles auf Standard S3 / Cloudfront portiert werden), DBs sind auf RDS. Die einzigen Dinge, die geschrieben werden, sind Protokolldateien, die wirklich darüber hinausgehen. - Ich gehe dazu über, ein EBS mit einem rsync zu verwenden, um es von s3 auf dem neuesten Stand zu halten. Und ein Skript zum manuellen Pushen von Updates.
Waxical
2

Ein EBS-Volume, das auf S3 / CloudFront übertragen wird, scheint hier der beste Schritt zu sein, insbesondere wenn Sie sich Sorgen über Bilder, CSS, Javascript und dergleichen machen.

EBS ist einfacher zu erstellen / zu sichern als S3, insbesondere für das Dateisystem des Servers.

Sie können auch einen Server als "Master" und einen anderen als "Slave" festlegen und beispielsweise nur Änderungen am "Master" vornehmen.

Informationen zur Protokollierung finden Sie in einigen Cloud-Protokollierungsdiensten wie http://loggly.com/ oder https://papertrailapp.com/ .

HTH

Alex W.
quelle