我使用PHP构建了一个图像上传功能。实现的场景只处理服务器机器的本地文件系统,现在我需要重新实现该功能以适应AWS。问题是AWS提供了3种类型的文件存储(EFS,EBS和S3),我不知道如何处理使用场景的第1步和第3步:
原始图像上传并存储在系统中(重命名和消毒后)。
我从该图片创建3个副本(小,中,大) 使用Imagine库过滤器。这三个副本旨在使用PHP AWS SDK复制到S3。它们还针对更好的性能进行了优化。
删除原始图像(因为它 很大,没有使用,它的删除在心理上是好的。)
换句话说,哪里存储原始临时图像更好?最好是将EBS或EFS用于此图像,还是将S3存储在最终图像旁边,然后将其删除。
"最近的"存储系统到EC2的延迟和执行速度?他们都需要一个EC2实例,但肯定其中一个更适合temporary
的这种情况。
您的经历对我们来说总是非常宝贵的。非常感谢你
答案 0 :(得分:1)
我建议您将图像保留在EBS卷上,以便在处理后删除该图像。您的EBS卷是该图像处理的最快方式,因为它直接连接到EC2实例,然后将这3个图像移动到S3。连接到EC2的EFS卷也适用于您的情况,但EFS也很昂贵,不适合临时存储。
如果您将该大图像移动到S3然后进行处理,那么S3数据传输成本将会增加,也将涉及延迟,因为该图像需要时间上传到S3。
因此临时图像存储的最佳选择是EBS或EC2实例上的某个级别EFS。