将 Amazon Elastic Beanstalk 与 tomcat 一起使用时,我应该将 S3 用于我的所有静态内容



目前我将我的应用程序war文件部署到EB,它包含用于生成页面的代码以及渲染页面所需的任何png,我对此感到满意,因为所有这些都在一个地方。

但是现在我知道您可以将 S3 存储桶配置为网站,对我来说,将所有这些图像存储在配置为网站的 S3bucket 中并将完整的 S3 路径编码到我的代码标签中对我来说更便宜,速度更快。

但它使部署更加复杂,因为现在只有部分部署在tomcat.war中处理。将图像放入新位置也是一回事,但是如果我有静态页面,则会开始影响网址

即,如果页面 1 是使用 Tomcat 部署的,而页面 2 是静态页面,则 URL 必须类似于

  • http://widget.com/page1.jsp
  • http://static.widget.com/page2.jsp

说您正在使用 cloudfront,在这种情况下,所有可以缓存的静态文件都已经缓存在 cloudfront 上(顺便说一下,动态请求也是如此,如果它们具有相同的 url 并且不指定无缓存),我看不出您将从获取静态文件并将它们放在 S3 上有什么好处。 相反,升级的停机时间会更长,因为您需要更新 java 和 s3 文件以保持服务一致,或者有一些复杂的部署机制来对每个提交进行版本控制。

除非您的服务提供数 TB 的静态映像(无论如何,部署起来都是一个很大的问题),否则将文件保存在服务磁盘上与将它们放在 S3 上的成本可以忽略不计。

我真的不明白你的问题。

我认为迁移到 S3 是个好主意。它便宜,可靠,快速><。此外,您还可以使用 Amazon Cloudfront,以便您的内容能够非常快速地交付到世界各地。

最新更新