AWS S3:React 失效请求的定价。托管在 S3 上的 js 应用程序

AWS S3 : Pricing for invalidation requests for React. js application hosted on S3

我有一个使用 React.js、HTML 和 Java 脚本开发的 Web 应用程序。 此 react.js 网络应用程序调用后端 REST API。

我已在 AWS S3 上托管此 Web 应用程序。

我可以使用 HTTP 访问 Web 应用程序。

要启用基于 HTTP 的访问,我打算使用 AWS 云前端。

我没有太多的静态媒体内容,但是很少css,js和一些小图片。

据我了解,Cloud Front 的定价基于

  1. 数据传输量
  2. 没有。 HTTP/HTTPS 个请求
  3. 无效请求

在我的例子中,当用户请求网页或想要搜索记录时,Web 应用程序会向后端发出 HTTPs 调用。

我想知道是否对后端的每个请求都被视为 "Invalidation Request"

还是只有当静态内容(HTML、CSS、JS、图片)发生变化时才适用失效请求?

对于基于 S3 的 Web 应用程序启用 HTTPs 是否有任何其他具有成本效益的选项?

如果您想清除 CloudFront 缓存中的缓存内容(即文件的旧版本)并使用新版本,则只需创建一个 invalidation request

对于您的 React / HTML / CSS 项目,您将把它放在 S3 存储桶中,并将您的 S3 存储桶设置为 CloudFront 的源。当 CloudFront 从 S3 获取对象时,它会将它们缓存在边缘缓存中,以供将来请求对象的 TTL(生存时间)。该对象将保留在那里,并且在 TTL 过期之前,CloudFront 不会检查您的来源是否有新版本的对象。

无效请求会告诉 CloudFront 从缓存中清除对象,因为它们不再在缓存中,当请求到达 CloudFront 时,它将从您的 S3 存储桶中获取对象。

基本上,每次发布新的生产版本时,您都需要 CloudFront 使用新版本的对象,因此每次将新版本的对象放入投入生产。

您可以在此处阅读有关失效和失效成本的更多信息: https://aws.amazon.com/blogs/aws/simplified-multiple-object-invalidation-for-amazon-cloudfront/

值得注意的是,我们每天发布 5-10 次,我们的 CodePipeline 会为我们处理失效。我们从未为无效支付过任何费用。另外,请注意,根据我的经验,根据失效对象的数量,失效可能需要几分钟到 30 多分钟不等。