我应该在AWS S3上托管我的webapp的静态内容吗?

Jos*_*osh 2 web-applications amazon-s3 amazon-ec2 amazon-web-services

对于将部署在Amazon EC2实例上的具有适量静态媒体内容的Web应用程序,将静态内容包含在war文件中或将其托管在单独的S3实例上是否有意义.

性能方面的差异是什么?服务成本方面的差异是什么?复杂性方面的差异是什么?

iur*_*uri 6

绝对.有4个以上的原因:

  • Amazon S3几乎不需要管理,因此在配置,扩展等方面没有麻烦.
  • 您将减少EC2服务器负载
  • S3中的存储比EC2 EBS卷中的存储更便宜,因为在S3中您只需支付所消耗的费用,在EC2中您为整个EBS配置的存储支付费用(因此您需要支付一些可用空间)
  • 您最终可以添加CloudFront分配,以便随时随地向您的用户提供静态内容(http://aws.amazon.com/cloudfront)
  • 可能更多......

在成本方面:

  • 从S3到互联网的数据传输将与您在EC2上支付的数据相同
  • 您可能会降低存储成本
  • 您对S3文件的请求数量将产生额外费用(http://aws.amazon.com/s3/#pricing)
  • 在高流量负载上,您可能还需要更少的EC2实例/资源(这显然不是事实,因为它取决于您应用的100%)

在发布新版本的应用程序时,您也会遇到复杂的开销,因为除了将其部署到EC2实例之外,您还必须将新的静态文件版本上载到S3.但是你可以用一个非常简单的脚本自动化它.