【问题标题】:Using EC2 to resize images stored on S3 on demand使用 EC2 按需调整存储在 S3 上的图像大小
【发布时间】:2013-01-12 15:08:08
【问题描述】:

我们需要在我们的应用中以多种可能的尺寸提供相同的图片。该库包含数十张将存储在 S3 上的数千张图像,因此以所有可能的大小存储相同的图像似乎并不理想。我在 Google 上看到过一些提及 EC2 可用于动态调整 S3 图像的内容,但我很难找到更多信息。任何人都可以向我指出更多信息的方向,或者理想情况下,一些代码示例?

提示

一开始对我们来说并不明显,但从不直接从 S3 向应用程序或网站提供图像,强烈建议使用 CloudFront。有3个原因:

  1. 成本 - CloudFront 更便宜
  2. 性能 - CloudFront 更快
  3. 可靠性 - S3 偶尔会在频繁查询时不提供资源,即每秒超过 10-20 次。这需要我们很长时间才能调试,因为资源会随机不可用。

以上内容不一定是 S3 的失败,因为它是一种存储而不是内容交付服务。

【问题讨论】:

  • 请问您最终实现的解决方案是什么?
  • @alapeno 最终,我们在服务器上创建了缩略图,然后将它们上传到 S3。这比设置另一个 EC2 实例更容易。但是,您可能想考虑使用 Amazon Lambda 之类的东西,它比管理 EC2 的开销要小

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


【解决方案1】:

您需要的是图像服务器。是的,它可以托管在 EC2 上。这些链接应该有助于开始:https://github.com/adamdbradley/foresight.js/wiki/Server-Resizing-Images http://en.wikipedia.org/wiki/Image_server

【讨论】:

  • 使用 EC2 可以让我更快地访问存储在 s3 中的图像吗?因为如果我使用自定义服务器,我需要下载图像然后处理它
  • 您的图像服务器可以在 EC2 上运行
  • 使用 EC2 处理 S3 映像的一个优势是 Amazon 不会对 S3 和 EC2 之间的数据传输收费——根据您的数量,这可以为您节省一些钱。
【解决方案2】:

假设您不是在谈论数百种不同的可能尺寸,为什么不存储所有图像尺寸?存储成本最低。然后,您还可以通过 Cloudfront(或直接从 S3)提供您的图像,这样您就不必使用应用程序服务器即时调整图像大小。如果您提供大量此类图像,则无需在 Web 服务器中动态调整图像大小和处理图像请求所节省的处理成本(即 CPU 周期、内存需求等)可能很容易抵消存储成本。

【讨论】:

  • @HermanJ.RadtkeIII 确实,问题是关于“按需”图像大小调整,但在查看这里提到的用例时,它似乎不是最好的方法,所以我提供了一个替代方案,显然OP认为是一个很好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
  • 2011-02-18
相关资源
最近更新 更多