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

时间:2019-04-22 13:04:33

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

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

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

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

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

我没有太多的静态媒体内容,但是几乎没有CSS,js和小的图像。

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

  1. 数据传输量
  2. 不。 HTTP / HTTPS请求数量
  3. 失效请求

就我而言,当用户请求网页或想要搜索记录时,Web应用程序会向后端进行HTTPs调用。

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

还是无效请求仅在更改静态内容(HTML,CSS,JS,图像)时才适用?

是否还有其他具有成本效益的选项可以为基于S3的Web应用程序启用HTTP?

1 个答案:

答案 0 :(得分: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分钟以上。