繁体   English   中英

在AWS的S3或EFS中何处存储数千个图像?

[英]Where to store thousands of images in S3 or EFS of AWS?

我将在不久的将来创建一个项目,这个项目将在一段时间内存储成千上万的图像。 对于使用Amazon S3还是EFS来存储这些图像,我有一个艰难的决定。 我认为两者都是很好的选择,但是我的问题是什么是最好的服务或什么是最佳实践?

我的应用程序将使用Laravel完成,并且我已经完成了这两种服务的集成。

该项目的大多数特征是:

  • 我将存储的大多数文件将是约95%的照片。
  • 每天大约存储1.5k张照片。
  • 照片非常大(专业相机)。
  • 到应用程序的访问量不会很大,大约为。 一次100个用户。
  • 每个用户每天查阅约100张照片。

您推荐什么?

S3绝对是正确的答案和实践。 我已经构建了许多您所描述的应用程序,其中一些应用程序具有数以亿计的图像,而S3更为出色。 它还提供了灵活性,例如您的API将图像作为预先签名的URL返回,这将减少服务器的负载,图像可以通过静态Web托管直接链接,并且提供了生命周期策略来存档较少使用的数据。 此外,使用事件触发器可以轻松地与其他AWS服务进行进一步集成。

对于存储/上传,S3分段上传对于提高性能和提高可靠性非常有用。

如果您要进行一些密集的处理,而其中的服务器集群需要通过共享文件系统降低延迟,那么EFS对于您的方案类型来说是有意义的-请考虑一下HPC。 EFS的成本也更高,并且无法提供与S3一样多的可扩展性选项或内置功能。 您的方案听起来好像不需要EFS。

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

对于您建议的方案,选择AWS S3。 为什么?

  • 由于通常会添加图像,因此其成本约为EFS的1/10。
  • 由于可以使用S3直接上传和下载文件,因此Web服务器上的开销更少。
  • 您可以通过Lambda使用事件驱动的处理,例如,通过S3 Lambda触发器生成缩略图,图像处理过滤器。
  • 更高级别的SLA,以提高可用性和耐用性。
  • 支持内置的生命周期管理以存档并降低成本。

如果AWS EFS经常修改图像,则也可以选择使用AWS EFS(在EBS也可以使用的情况下)

您也可以考虑将AWS CloudFront与任一选项一起使用来缓存图像。

注意:最后,它与使用单个服务无关。 根据即将到来的需求,您可以选择其中之一,也可以选择两者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM