2017-08-26 1 views
0

Ich werde in nicht allzu ferner Zukunft ein Projekt machen, ein Projekt, in dem wir im Laufe der Zeit Tausende von Bildern speichern werden. Ich bin schwer zu entscheiden, ob Amazon S3 oder EFS zum Speichern dieser Bilder verwendet werden soll. Beide sind meiner Meinung nach eine sehr gute Option, aber meine Frage geht dahin, was der beste Service wäre oder was wäre die beste Praxis?Wo können Tausende von Bildern in S3 oder EFS von AWS gespeichert werden?

Meine Anwendung wird mit Laravel durchgeführt und ich habe bereits die Integration beider Dienste durchgeführt.

Die meisten der Merkmale des Projekts sind:

  • Die meisten Dateien werde ich speichert Fotos etwa 95% betragen.
  • Ungefähr 1.5k Fotos würden täglich gespeichert werden.
  • Die Fotos sind sehr groß (professionelle Kameras).
  • Verkehr zur Anwendung wird nicht viel sein, ca. 100 Benutzer gleichzeitig.
  • Jeder Benutzer würde ca. 100 Fotos pro Tag konsultieren.

Was empfehlen Sie?

Antwort

4

S3 ist absolut die richtige Antwort und Praxis. Ich habe zahlreiche Anwendungen gebaut, wie Sie es beschreiben, einige mit Millionen von Bildern, und S3 ist überlegen. Es ermöglicht auch Flexibilität, da Ihre API die Bilder als vor-signierte URLs zurückgibt, die die Belastung auf Ihre Server reduzieren, Bilder direkt über statisches Webhosting verlinkt werden können und Lebenszyklusrichtlinien zur Archivierung weniger verwendeter Daten bereitgestellt werden. Darüber hinaus ist die weitere Integration mit anderen AWS-Services mithilfe von Ereignisauslösern einfach.

Beim Speichern/Hochladen ist der S3-Multipart-Upload sehr nützlich, um die Leistung zu erhöhen und die Zuverlässigkeit zu erhöhen.

EFS wäre für Ihre Art von Szenario sinnvoll, wenn Sie eine intensive Verarbeitung durchführen, bei der Sie einen Cluster von Servern haben, die mit einem gemeinsam genutzten Dateisystem eine geringere Latenz benötigen - denken Sie an HPC. EFS würde auch zu höheren Kosten kommen und bietet nicht so viele Erweiterungsmöglichkeiten oder integrierte Funktionen wie S3. Ihr Szenario klingt nicht so, als würde EFS benötigt.

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

http://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html

http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html

http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html

http://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html

+0

Hat dies Ihre Frage beantwortet? – BryceH

+0

Vielen Dank @BryceH Ich werde Ihre Meinung sehr ernst nehmen, ich sehe, dass S3 die beste Skalierbarkeit als jeder andere Dienst in der Entwicklung von AWS hat. Ich beabsichtige auch, den Service von AWS Rekognition zu nutzen und mit S3 wird diese Arbeit wesentlich erleichtert. – Jomab

2

Für das Szenario Sie AWS S3 vorgeschlagen ist die Wahl. Warum?

  • Da Bilder häufiger hinzugefügt werden, kostet es etwa 1/10 der EFS.
  • Weniger Aufwand auf Ihren Webservern, da Dateien direkt mit S3 hochgeladen und heruntergeladen werden können.
  • Sie können ereignisgesteuerte Verarbeitung mit Lambda z. B. Thumbnail, Bildverarbeitungsfilter von S3 Lambda-Trigger verwenden.
  • Höhere SLA für Verfügbarkeit und Haltbarkeit.
  • Unterstützung für integriertes Lifecycle-Management zur Archivierung und Reduzierung der Kosten.

AWS EFS kann auch eine Option sein, wenn sie die Bilder häufig ändern passiert (Wo EBS ist auch eine Option)

Sie können auch entweder mit der Option AWS Cloudfront betrachten Bilder zwischenzuspeichern.

Hinweis: Am Ende geht es nicht um einen einzigen Dienst. Basierend auf Ihren bevorstehenden Anforderungen können Sie entweder eine oder beide auswählen.

+0

Vielen Dank @Ashan, Ich werde AWS S3 für mein Projekt auf Ihre Empfehlung verwenden .. – Jomab

+0

Ich werde die Häufigkeit der Änderung meiner Bilder analysieren, was ich nicht denke, aber sehr gute Beobachtung. – Jomab

Verwandte Themen