amazon-web-services - 如何缓存存储在 Amazon S3 中的图像?

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

我有一个在 Amazon EC2 上运行的 RESTful Web 服务。由于我的应用程序需要处理大量照片,我计划将它们放在 Amazon S3 上。因此,从 S3 检索照片的 URL 可能如下所示:

http://johnsmith.s3.amazonaws.com/photos/puppy.jpg

有没有办法或必要在 EC2 上缓存图像?我能想到的优缺点是:
1) 降低了 S3 的使用和成本,提高了图像获取性能。然而另一方面,EC2 成本可能会上升,而且由于带宽限制,EC2 可能无法处理图像缓存。
2)增加开发复杂度,因为你需要先检查缓存并要求S3将图像传输到EC2,然后再传输到客户端。

我正在使用 EC2 微型实例,觉得最好不要在 EC2 上进行图像缓存。但是规模可能会增长得很快,最终将需要一个图像缓存。(我说得对吗?)如果需要缓存,是在 EC2 上还是在 S3 上做更好? (有没有办法缓存 S3?)

顺便问一下,客户端上传图片时,是直接上传到EC2还是S3?

最佳答案

EC2缓存实例的几个场景:

  • 您的上传/下载比例远非 50/50
  • 你达到了 S3 限制 100req/sec
  • 您需要 URL 屏蔽
  • 您想为客户端优化内核、TCP/IP 设置、缓存 SSL session
  • 您想要所有地理位置的缓存失效机制
  • 您需要 100% 控制数据的存储位置
  • 您需要计算请求的数量
  • 您有自定义身份验证机制

  • 出于多种原因,我建议您查看 Nginx S3 proxy .

    关于amazon-web-services - 如何缓存存储在 Amazon S3 中的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28554134/

    相关文章:

    python - 使用 Python 在无需身份验证的情况下下载公共(public) S3 存储桶上的文件

    amazon-web-services - Elasticsearch 与Dynamodb进行过滤

    php - 无法从 PHP 中的大文件的 Img2Json API 获取 JSON 数据

    ruby-on-rails - rails Carrierwave 和 s3 : wrong number of arguments (2 for 1)

    amazon-web-services - Amazon EC2 集群错误无法预置 ec2 实例,因为 'The requested instance profile EMR_EC2_DefaultRole is invalid'

    amazon-web-services - 限制对 AWS Lambda 函数的 S3 存储桶访问

    java - 如何检索 amazon DynamoDB 中特定列的所有值?

    amazon-s3 - EMR 如何将文件合并为一个?

    amazon-web-services - 在elastic beanstalk中使用Nginx替代apache2

    amazon-ec2 - 在RDS读取副本之间分配读取流量