亚马逊EC2 - 图片上传

时间:2014-04-01 09:22:15

标签: amazon-web-services amazon-ec2 amazon-s3 amazon

我有一个Web应用程序,我正在将图片从我的机器上传到EC2机器。 基本上我会有一个Web应用程序,用户可以通过HTTP post发送jpg文件。

  1. 用户将jpg文件上传到EC2实例
  2. 创建了几种尺寸的图像(大约9种)
  3. 所有尺寸都上传到S3
  4. 关于哪台机器最适合这项工作的任何想法? 我在考虑c3.large实例http://aws.amazon.com/ec2/pricing/

    你们有其他建议吗? 感谢

1 个答案:

答案 0 :(得分:1)

很难说,依赖于进入的图像量。如果用户数量与实例大小相匹配,任何实例(微型IMO除外)都会做你想要的,但我们不会# 39;不知道用户数量。

一些建议,而不是试图猜测正确的大小,按照AWS打算使用它的方式设置你的应用程序 - 自动扩展,所以你不必猜测,或担心如果突然怎么做你的系统变得非常流行。

考虑通过在需要时调整更多实例来构建系统响应更高卷的能力,而不是为95%的时间支付超过您需要的单个机器,以便5%的当音量达到峰值时,您有额外的容量来满足您的需求。这需要提前做更多的工作,但可以节省你的屁股和钱。

一些一般性的想法:

  • 当用户将图片发布到您的应用时,请将消息放入“工作队列”中。 (SQS)
  • 让工作人员机器观察SQS队列,以便“做”工作。 (调整图片大小)
  • 构建自动缩放指标,监视SQS队列的大小,并在积压开始变大时启动新实例(考虑使用现场实例来节省资金)。
  • 将处理后的图像保存到S3,而不是ec2实例 - 将存储和带宽卸载到更便宜,更快速,更冗余的位置,而不依赖于ephermeral EC2实例。
  • 考虑使用cloudfront来提供您的s3图像,以便在全球范围内获得更好的性能(如果适用)。
  • 当您的SQS队列变小以节省资金时关闭实例,但不要将它们关闭到快速。一旦他们旋转起来,你需要支付整个小时的费用,所以请记住这一点。