AWS:重定向或代理文件

时间:2013-01-23 06:36:21

标签: proxy amazon-web-services amazon-s3 amazon-cloudfront

让我解释两难。 我使用亚马逊的3项服务:EC2,S3和CloudFront。 EC2接收文件作为上传,将其存储在S3存储桶中。然后,CloudFront镜像S3存储桶。唯一的限制是拥有用户友好的URL。 提供这些文件的方法更好?

客户> CloudFront> EC2> S3

  • 客户端向CloudFront URL发送HTTP请求
  • Cloudfront将请求转发给EC2
  • EC2将用户友好的URL转换为原始文件URL
  • EC2从S3
  • 读取文件

客户> EC2 ...重定向... CloudFront> S3

  • 客户端向EC2发送HTTP请求
  • EC2将用户友好的URL转换为原始文件URL
  • EC2重定向到CloudFront,镜像S3

这有两个方面:速度和成本。


我在提供个人资料图片时使用第二种方法看到facebook http://graph.facebook.com/platform/picture

1 个答案:

答案 0 :(得分:2)

您当然不希望强制S3和客户端之间的文件传输通过您的EC2实例。这将增加EC2实例的负载,增加带宽使用,并且无疑会减慢对用户的响应。

您的EC2实例可让您最大程度地控制URL格式,因此您希望客户端向其发出初始请求(具有“用户友好”的URL)。 EC2实例可以向客户端发送重定向到实际拥有内容的CloudFront或S3 URL,客户端将直接从那里提取内容,而无需EC2的进一步参与。

除非您有大量请求,否则我不会打扰CloudFront,或者网络延迟必须尽可能低。