【问题标题】:AWS S3 : Pricing for invalidation requests for React. js application hosted on S3AWS S3:React 失效请求的定价。托管在 S3 上的 Node.js 应用程序
【发布时间】:2019-04-25 05:08:03
【问题描述】:

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

我在 AWS S3 上托管了这个 Web 应用程序。

我能够使用 HTTP 访问 Web 应用程序。

为了启用基于 HTTPS 的访问,我计划使用 AWS 云前端。

我的静态媒体内容不多,css、js很少,小图也很少。

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

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

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

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

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

对于基于 S3 的 Web 应用程序启用 HTTPS 是否有任何其他经济有效的选择?

【问题讨论】:

  • 向云端发出请求不是invalidation request。您可以阅读有关无效请求here

标签: amazon-web-services amazon-s3 amazon-cloudfront


【解决方案1】:

如果您想清除缓存内容(即旧版本的文件)的 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 多分钟不等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 2018-07-14
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 2021-04-24
    • 2022-01-08
    相关资源
    最近更新 更多