Yas*_*984 5 amazon-s3 amazon-web-services distributed-filesystem glusterfs
假设您在AWS中运行了instance1,instance2和instance3.
它们都运行Apache,您运行的Web应用程序需要允许用户上传图像,这在许多项目中都是如此.
此外,当您显示图像时,需要将其裁剪为正确的大小,因此您基本上需要确保所有实例始终可以访问相同的文件.
因此,假设用户将图像上传到instance1,而另一个用户正在访问其中相同图像以100x100大小显示的页面,并且他点击了instance2.另一个用户试图在instance3上看到300x300大小的相同图像.还有许多其他不容易预测的尺寸.
所以你基本上需要一个分布式文件系统,我正在使用Gluster FS.所以所有实例都可以访问相同的文件,当看到图像的请求时,我有一个PHP脚本,检查该图像是否已经调整到给定的尺寸,如果是,它将显示它们,如果不是它将调整大小它然后再显示.
Gluster FS工作非常顺利,我对它非常满意,除了我认为我正在重新发明轮子,AWS应该有一些解决方案.使用top命令,我可以看到glusterfs总是使用我的一些CPU.
我还使用CloutFront来缓存调整大小脚本的输出,这可以将服务器负载降低到很好的程度,但Gluster FS的运行成本仍然很高.
您可以使用rsync和某种类型的cron作业来完成同样的操作而不需要Gluster FS,但这需要很多工作并且不太可靠,因为您需要知道何时触发rsyncing过程,并且您仍然无法获得巨大的好处Gluster FS提供的.我也试过s3fs,我只是想说这绝对是一场噩梦.
与Gluster FS相比,NFS驱动器似乎也非常原始,我认为它们使用UDP,因此它们会对您的数据进行处理无关紧要.
那么做这样的事情最好的方法是什么?我试图找到AWS提供的分布式文件系统,因为我认为许多开发人员会有相同或类似的问题,但没有.
您可以说只是上传到s3,但s3对我没有帮助,我需要知道图像是否已经调整大小,然后调整大小并提供服务或者只是服务,所以我需要一些我可以编写脚本的东西.
您也可以说好,为什么不首先调整所有图像的大小,然后将它们全部上传到s3,我不能这样做的原因是
归档时间: |
|
查看次数: |
411 次 |
最近记录: |