CloudFront、S3、EC2:除非文件存在于 S3 中,否则如何将请求从 CloudFront 重新路由到 EC2?

CloudFront、S3、EC2:除非文件存在于 S3 中,否则如何将请求从 CloudFront 重新路由到 EC2?

我的应用程序使用了所有 3 个服务层。最近降低传出流量的功能请求给我们带来了一些不确定性。

假设我们有一个使用 CloudFront 分发image.jpg文件的要求。在没有动态图像大小调整的情况下,一切都很好。现在我们不需要一直知道图像的原始大小,因此我们将所需的变量维度与查询字符串 ( image.jpg?w=100&h=100) 一起传递。

如果我们直接将 CF 路由到 EC2,那么就不会出现任何问题。但是,我们应该在两者之间放置 S3,因为 EC2 太小,无法存储媒体材料。

所以问题是 - 如何在请求期间将不存在的文件推送到 S3?

谢谢。

答案1

我认为你不需要(或不想)更改路线从 S3 存储桶获得 404 后,您将连续发出两个请求,从而导致速度变慢。

CloudFront 确实支持多个源服务器。不要认为它是 CloudFront 和 EC2 之间的 S3,而是 S3下一个到 EC2。请看这里:

源服务器

您可以为 Amazon CloudFront 下载分配配置一个或多个原始服务器。原始服务器可以是 AWS 资源,例如 Amazon S3、Amazon EC2、Elastic Load Balancing 或 AWS 之外的自定义原始服务器。Amazon CloudFront 将从每个原始服务器请求内容通过将查看器请求的 URL 与您为分发配置的规则进行匹配。此功能允许您灵活地使用每个 AWS 资源,以实现其设计用途 - Amazon S3 用于存储,Amazon EC2 用于计算等 - 而无需在您的网站上创建多个分发并管理多个域名。您还可以继续使用您已经设置的原始服务器,而无需移动数据或重新部署应用程序代码。

还有一篇关于设置多个来源的精彩博客文章这里

相关内容