我应该将静态资源从App Engine移动到Google云端存储吗?

svp*_*ino 10 google-app-engine google-cloud-storage

我们在App Engine中有一个Web应用程序.我想知道将我的静态资源(即图像,CSS文件和JS文件)从App Engine移出并从Google云端存储中提供是否是个好主意.

我在这里的想法是双重的:

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

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

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

谢谢,

小智 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 的静态内容时,您的网络服务器上的负载会减少。


dra*_*onx 6

这些都没有意义.

1)App Engine具有类似CDN的功能及其边缘缓存.不幸的是,它没有很好的记录.它上面有一些Google I/O会谈.这是一个开始:http://eng.pulse.me/backend-tips-the-free-cdn/ 在Google I/O 2012中还有另一个你可以找到的话题.如果访问的是静态文件,则它们将与边缘缓存一起提供,因此无需为此移动到GCS.

2)有充分证明静态文件不占用实例.你已经读过这个了,所以你的'偏执狂'只是偏执狂,而且没有意义.通过将新版本上传到app引擎,访问静态文件以及在Admin中检查新实例,也可以非常轻松地进行测试.


Val*_*loş 5

你的直觉是对的,这是来自谷歌文档的确认:

使用云存储而不是直接从应用程序提供服务的好处包括:

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

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

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

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

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