amazon-web-services - AWS S3:React 失效请求的定价。托管在 S3 上的 Node.js 应用程序
问题描述
我有一个使用 React.js、HTML 和 Java 脚本开发的 Web 应用程序。此 react.js Web 应用程序调用后端 REST API。
我在 AWS S3 上托管了这个 Web 应用程序。
我能够使用 HTTP 访问 Web 应用程序。
为了启用基于 HTTPS 的访问,我计划使用 AWS 云前端。
我没有太多静态媒体内容,但很少有 css、js 和一些小图像。
据我了解,云前端的定价基于
- 数据传输量
- HTTP/HTTPS 请求数
- 无效请求
就我而言,当用户请求网页或想要搜索记录时,Web 应用程序会向后端发出 HTTPs 调用。
我想知道这对后端的每个请求是否都被视为"Invalidation Request"
?
还是仅在更改静态内容(HTML、CSS、JS、图像)时才适用失效请求?
为基于 S3 的 Web 应用程序启用 HTTPS 是否有任何其他经济有效的选择?
解决方案
invalidation request
如果您想清除缓存内容(即旧版本的文件)的 CloudFront 缓存并使用新版本, 您只会创建一个。
对于您的 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 多分钟不等。
推荐阅读
- javascript - 显示选定单元格的数量
- javascript - 将静态方法分配给类
- c# - 为什么我的 C#/ Android 应用程序不播放音频?
- android - 无法解析 com.github
- linux - CMakeList 文件从 C 源文件生成 LLVM 位码文件
- java - Java - 无法执行 AQL 查询
- jobs - 用于 z/OS 的 JCL 作业,用于对数据集执行 SRCHFOR 或 LISTCAT
- javascript - 从对象内部的对象中查找未定义或空值
- c - (C 编程)如何使用在另一个文件中定义的数据结构和函数?
- python - Python(Django)获取响应API不起作用