亚马逊云端和 403 成本

Amazon cloudfront and 403 cost

我们在云端托管一些脚本和内容。作为其网站的一部分,不同的消费者可以公开访问这些内容。当脚本不再相关时,我们使 file/content 无效并且它不再可用。在他们的页面上使用 script/content 的人会收到通知,但我们不能强制他们删除现在提供 403 状态代码的 script/content。如何避免或降低这种成本?

这是一种策略。

假设您的域名是example.com。

使用备用域名 *.example.com 创建 CloudFront 分配。

为每个站点、脚本或站点+脚本组合分配自定义 "dummy" 主机名 -- 例如jozxyqkrd52169.example.com。只给一个网站。

在 Route 53 中,仅维护您当前认为有效的主机名的 DNS 条目。当不再需要条目时删除它们。这可以自动化。

从技术上讲,CloudFront 会响应任何 *.example.com 主机名,但由于没有指向那里的 DNS 记录,因此不会收到针对您未使用的主机名的请求。

您需要为 Route 53 付费以处理对具有已删除条目的主机名的查询,但这只是 CloudFronr 和 S3 请求定价成本的一小部分。

或者,您可以使用指向 CloudFront 的通配符记录,然后为要阻止的主机名创建特定条目,而不是为 Route 53 提供您想要使用的记录。指向目标名称的 CNAME 记录,例如 invalid.invalid.invalid 是一个 top-level 域名,实际上保留用于表示记录实际上无效)应该可用于覆盖特定的子域并防止对这些名称的请求访问 CloudFront。

请注意,只要您不配置 CloudFront 缓存行为以将 Host header 转发到源,在回答多个主机名的单个分配上,foo.example.com/cat.jsbar.example.com/cat.js 将被视为相同的 object,因此像这样的多个主机名不应对您的缓存命中率产生负面影响。