让我解释两难。 我使用亚马逊的3项服务:EC2,S3和CloudFront。 EC2接收文件作为上传,将其存储在S3存储桶中。然后,CloudFront镜像S3存储桶。唯一的限制是拥有用户友好的URL。 提供这些文件的方法更好?
客户> CloudFront> EC2> S3
客户> EC2 ...重定向... CloudFront> S3
这有两个方面:速度和成本。
我在提供个人资料图片时使用第二种方法看到facebook http://graph.facebook.com/platform/picture
答案 0 :(得分:2)
您当然不希望强制S3和客户端之间的文件传输通过您的EC2实例。这将增加EC2实例的负载,增加带宽使用,并且无疑会减慢对用户的响应。
您的EC2实例可让您最大程度地控制URL格式,因此您希望客户端向其发出初始请求(具有“用户友好”的URL)。 EC2实例可以向客户端发送重定向到实际拥有内容的CloudFront或S3 URL,客户端将直接从那里提取内容,而无需EC2的进一步参与。
除非您有大量请求,否则我不会打扰CloudFront,或者网络延迟必须尽可能低。