我们在App Engine中有一个Web应用程序。我想知道将我的静态资源(即图像,CSS文件和JS文件)从App Engine中移出并从Google云端存储中提供它们是否是一个好主意。
我的想法是双重的:
1)我们可以通过Google云端存储获得CDN的优势。我们甚至可以为每个文件配置元数据,以设置过期标头,gzip压缩等。此外,通过提供来自不同域的文件,我们可以让浏览器并行下载更多内容。
2)通过从App Engine卸载部分文件,实例消耗将减少(对App Engine的请求减少),因此成本将下降。
我是对的吗?这是明智之举吗?
谢谢,
答案 0 :(得分: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中检查新实例,也可以轻松进行测试。
答案 1 :(得分:4)
你是对的,你接受的答案是错误的。从官方文档中回答你的问题:
https://cloud.google.com/storage/docs/website-configuration
为动态网站托管静态资产
您可以使用Google云端存储来托管托管的动态网站的静态资源,例如,在Google App Engine或Google Compute Engine中。托管静态资产(如图像或Javascript文件)在存储桶中的一些好处包括:
答案 2 :(得分:2)
您的直觉是正确的,这是Google docs的确认:
使用云存储而不是直接从您的应用程序提供服务的好处包括:
Cloud Storage本质上是一个内容交付网络。不需要任何特殊配置,因为默认情况下,任何可公开读取的对象都会缓存在全局Cloud Storage网络中。
通过将服务静态资产卸载到Cloud Storage,可以减少您应用的负载。根据您拥有的静态资产数量和访问频率,这可以大大降低运行应用程序的成本。
使用Cloud Storage访问内容的带宽费用通常会更低。
请注意,静态文件是使用实例资源绝对提供的。边缘缓存确实生效了,但这并不能完全消除整个问题。将静电转移到GCS是做到这一点的 right 方法。
请注意,但是,如果您打算从GCS提供静态文件,则将无法通过HTTPS(SSL)正确地将(子)域映射到该域。必须使用负载平衡器或第三方CDN。在某些情况下,这可能会更加麻烦。有关详细信息,请参见here。