多个GCE VM的共享存储

时间:2017-04-23 21:05:05

标签: nginx google-cloud-platform google-cloud-storage google-compute-engine

/ *我是新来的,我已经完成了几天的研究。 * /

与多个自动缩放的Google Compute Engine虚拟机共享文件的最佳做法是什么?

我计划使用NGINX设置一个虚拟机实例组,以便为​​多个域提供静态文件。这些虚拟机会自动调整为n(自身相乘),文件会发生很大变化。我需要存储这些虚拟机将要服务的文件。

到目前为止,我已经找到了这些解决方案:

1)持久磁盘+ rsync - >这应该具有最小的延迟,但是当我达到GB的文件时,自动缩放的VM将在它们产生后很长时间同步,从而抛出404s。

2)没有网络服务器的主虚拟机+ nfs / smb - >延迟小,但没有冗余。

3)云存储+ FUSE - >大延迟,高冗余,无SLA。

4)共享永久磁盘 - >延迟很小,但是只读。

5)NGINX + Cloud SQL / Bigtable / Spanner / Datastore - > Mehish延迟,我对将网络服务器连接到数据库感觉不舒服。

还有其他更好的解决方案吗?

由于

编辑:静态文件是多个index.html文件 - >多个域名的主页。

2 个答案:

答案 0 :(得分:1)

还有:

6)Firebase托管 - https://firebase.google.com/docs/hosting

7)另一种方式 - 我个人会选择云端存储,而不是FUSE。或者至少不是为了服务。您仍然可以使用FUSE写入Bucket(s)。当然,最好的方法是在应用程序中使用 Cloud Storage API

提供文件:

我会创建一个负载均衡器,其中后端存储桶与应用程序写入的存储桶相同。另外,请注意在负载均衡器上启用 Cloud CDN

更多详情:

负载均衡器 - https://cloud.google.com/load-balancing/

云CDN - https://cloud.google.com/cdn/

或只是加粗,现在在https://console.cloud.google.com/networking/loadbalancing/loadBalancers/list?project=

创建一个负载均衡器

答案 1 :(得分:1)

对于提供静态文件,最好使用负载均衡器后端存储区,并启用启用云CDN 。 负载均衡器具有转发流量的规则。例如,它可以拦截主机,子域或路径的所有请求。

*.mysite1.com    => bucket1
demo.mysite2.net => bucket1
test.mysite3.com => bucket2

由于文件以 Cloud CDN 提供,因此延迟变得极小。 要将文件写入存储桶,您可以使用 FUSE ,或在本地创建文件并使用gsutil cp

永久磁盘只能在读取模式下在多个计算引擎中共享。如果你需要写模式,它将无法工作。

最后一个选项Cloud SQL + Nginx实际上非常不错。 Cloud SQL比Mysql服务器更快。云sql和gce之间的连接简单可靠。 但这里更多的是偏好问题......如果你觉得编写可以读写的脚本感觉很舒服。