我将在不久的将来制作一个项目,一个项目,我们将在一段时间内存储成千上万的图像。我是否决定是使用Amazon S3还是EFS来存储这些图像。我认为两者都是一个非常好的选择,但我的问题是什么是最好的服务或什么是最佳做法?
我的应用程序将使用Laravel完成,我已经完成了两种服务的集成。
该项目的大部分特征是:
你推荐什么?
答案 0 :(得分:5)
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
答案 1 :(得分:3)
对于您提出的方案,AWS S3是您的选择。为什么呢?
AWS EFS也可以是一个选项,如果它经常修改图像(其中EBS也是一个选项)
您还可以考虑将AWS CloudFront与缓存图像的选项一起使用。
注意:最后它不是关于使用单个服务。根据您即将发布的要求,您可以选择其中一个或两者兼而有之。