13

我们在 App Engine 中有一个网络应用程序。我想知道将我的静态资源(即图像、CSS 文件和 JS 文件)从 App Engine 中移出并从 Google Cloud Storage 提供它们是否是个好主意。

我的想法有两个方面:

1) 我们可以利用 Google Cloud Storage 获得 CDN 的优势。我们甚至可以为每个文件配置元数据以设置过期标头、gzip 压缩等。此外,通过提供来自不同域的文件,我们可以让浏览器并行下载更多内容。

2)通过从 App Engine 卸载一些文件,实例消耗将减少(对 App Engine 的请求减少),因此成本将下降。

我对吗?这是明智之举吗?

谢谢,

4

4 回答 4

7

这些都没有意义。

1) App Engine 的边缘缓存具有类似 CDN 的功能。不幸的是,它没有很好的记录。有一些关于它的 Google I/O 演讲。这是一个开始:http ://eng.pulse.me/backend-tips-the-free-cdn/ 您也可以在 Google I/O 2012 上找到另一个演讲。如果访问量足够,您的静态文件将与边缘缓存一起提供,因此无需为此移动到 GCS。

2) 有据可查的是静态文件不包含实例。你已经读过这篇文章,所以你的“偏执狂”只是偏执狂,没有任何意义。通过将新版本上传到应用引擎、访问静态文件以及在 Admin 中检查新实例来进行测试也非常容易。

于 2013-09-30T03:19:22.337 回答
7

你是对的,你接受的答案是错误的。官方文档对您的问题的回答:

https://cloud.google.com/storage/docs/website-configuration

为动态网站托管静态资产

您可以使用 Google Cloud Storage 托管动态网站的静态资产,例如在 Google App Engine 或 Google Compute Engine 中托管。在存储桶中托管静态资产(如图像或 Javascript 文件)的一些好处包括:

  • Google Cloud Storage 的行为本质上类似于内容分发网络 (CDN),您无需任何工作,因为默认情况下,公开可读的对象缓存在 Google Cloud Storage 网络中。
  • 使用 Google Cloud Storage 访问内容的带宽费用通常会更低。
  • 从 Google Cloud Storage 提供静态内容时,您的网络服务器上的负载会减少。
于 2015-03-03T03:36:01.033 回答
4

您的直觉是正确的,这是来自Google 文档的确认:

使用 Cloud Storage 而不是直接从您的应用提供服务的好处包括:

  • 云存储本质上是一个内容交付网络。这不需要任何特殊配置,因为默认情况下任何公开可读的对象都缓存在全局云存储网络中。

  • 通过将服务静态资产卸载到 Cloud Storage,您的应用程序的负载将会减少。根据您拥有的静态资产数量和访问频率,这可以显着降低运行应用程序的成本。

  • 使用 Cloud Storage 访问内容的带宽费用通常会更低。

知道静态文件肯定是使用实例资源提供的。边缘缓存确实生效了,但这并不能简单地解决整个问题。将静力学移至 GCS 是正确的做法。

但是请注意,如果您计划从 GCS 提供静态文件,您将无法通过 HTTPS (SSL) 将(子)域正确映射到它,并且您必须使用负载均衡器或 3rd派对CDN。在某些情况下,这可能会更加麻烦。有关详细信息,请参见此处

于 2018-07-12T09:55:47.113 回答
0

建议将静态资产移动到谷歌云存储,它有很多优点,看看这个: https ://cloud.google.com/storage/docs/static-website 就个人而言,它提高了我的 webapp 性能并减少了服务器上的负载。

于 2022-02-08T10:30:53.317 回答