我是AWS的初学者。我已经知道如何设置EC2,ELB,S3和CF.
现在我有一个问题,当有多个实例(instance0和instance1)的ELB设置为Cloudfront源时,如何处理cloudfront请求。
考虑一个请求来到Cloudfront边缘,如下所示:
http://distributionId.cloudfront.net/profile_pic_1.png
第一次请求进入ELB。 ELB将请求传递给instance0或instance1。但是" profile_pic_1.png"仅存在于instance1中。所以在这种情况下,有可能从CF获得404错误。
我的目标:我必须创建一个上传服务器。因此ELB背后会有很多上传服务器实例。 ELB设置为CF的原点。当用户上传照片时,它将临时保存在具有公共访问权限的实例存储中。上传完成后,我将向用户提供上传图片的云端URL。在这种情况下,用户会从CF获得适当的响应吗?
答案 0 :(得分:4)
第一次请求进入ELB。 ELB将请求传递给 instance0或instance1。但是" profile_pic_1.png"只存在于 INSTANCE1。所以在这种情况下有可能获得404 来自CF的错误。
是的,在那种情况下,CloudFront有50%的机会获得404响应而不是图像,而CloudFront只会将该错误响应传递给客户端。您不希望将具有不同内容的实例放在负载均衡器后面。
您的设计中缺少的是亚马逊的S3服务。您应该将所有图像上传到S3而不是EC2服务器。您应该将CloudFront配置为直接从S3提取图像。