1

/*我是新來的,我已經完成了數天的研究。 */多個GCE虛擬機的共享存儲

與多個自動縮放Google Compute Engine虛擬機共享文件的最佳做法是什麼?

我打算設置一個實例組的虛擬機與NGINX爲多個域提供靜態文件。這些虛擬機會自動調整爲n(自身倍增),並且文件會發生很大變化。我需要存儲這些虛擬機將要提供的文件。

到目前爲止,我發現這些解決方案:

1)持久磁盤+ rsync的 - >這應該有最小的延遲,但是當我到達的文件GBS,自動定虛擬機將同步久他們產卵後的時間,因此扔404s。

2)主虛擬機無網絡服務器+ nfs/smb - >小延遲,但沒有冗餘。

3)Cloud Storage + FUSE - >大延遲,很好的冗餘,沒有SLA。

4)共享永久磁盤 - >小延遲,但是隻讀。

5)NGINX + Cloud SQL/Bigtable/Spanner/Datastore - > Mehish的延遲和我不太滿意將網絡服務器連接到數據庫。

還有其他更好的解決方案嗎?

感謝

編輯:靜態文件是多重的index.html文件 - >多個域的網頁。

回答

1

還有:

6)火力地堡託管 - https://firebase.google.com/docs/hosting

7)另一種方式 - 我會親自去與雲存儲但不是保險絲。或者至少不是爲了服務。您仍然可以使用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=

+0

嗨,感謝您的快速回復。 Load balancer +後端存儲桶如何處理多個域?對於沒有FUSE的NGINX +雲存儲,這是我可以使用的東西嗎? https://gist.github.com/touhonoob/5364f6c9099609c826a4 – george

+0

有沒有必要做'NGINX +雲存儲'的東西......這是**雲CDN **的工作! – eRadical

+0

首先,我認爲這將是一個破壞者,但在玩過Cloud Storage + Cloud CDN之後,我發現你不能有多個域指向單個存儲桶。有一個獨特的域名:1桶政策,你必須手動驗證通過TXT記錄創建桶時的域名所有權,並且桶必須保存FQDN,否則它不會爲index.html :( – george

1

負載均衡器提供靜態文件最好是使用負載均衡器後端存儲桶雲端CDN已啓用。 負載均衡器有轉發流量的規則。例如,它可以攔截主機,子域或路徑的所有請求。

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

因爲文件與雲CDN服務,延遲變爲最小。 爲了將文件寫入存儲桶,您可以使用FUSE,或在本地創建文件並使用gsutil cp

持久性磁盤只能在讀取模式下在多個計算引擎中共享。如果你需要寫模式,它將無法工作。

最後一個選項Cloud SQL + Nginx其實很不錯。 Cloud SQL比Mysql服務器更快。雲sql和gce之間的連接簡單可靠。 但是,這更多的是這裏的偏好問題......如果您覺得自己編寫將讀取和寫入的腳本會感覺舒適。

+0

嗨Vincent,玩過之後,我發現如果你需要服務(一個或多個)index.html,就不可能將多個域指向一個桶。每個域需要自己的桶。 – george

+0

這是正確的,可以有每個存儲桶或每個子文件夾只有一個index.html –