2016-12-15 44 views
3

我們有一個在美國和歐盟託管的應用程序。 爲了獲得最佳性能,我們將在兩個位置上託管一個數據存儲實例。谷歌數據存儲跨區域複製

現在我們的問題是如何將數據從美國數據存儲複製到EU數據存儲?

或者無論我們在哪裏存儲技術視圖中的數據?

回答

2

沒有多地點GAE應用程序(至少現在還沒有)。該應用程序的獨特位置可以在創建應用程序時選擇,並且無法更改。見App Engine - How to create project in region us-centralgae app moving to eu-datacenter or re-opening

Creating a project and application重要提示:

重要:每個雲平臺項目只能包含一個App Engine應用程序,你不能改變的區域,你 創建App Engine應用程序後, 。

現在數據存儲本身只能存在於單個雲項目中,該項目也將1:1映射到某個位置。從Google Cloud Datastore Locations

當您創建Google Cloud Platform項目時,您必須選擇一個存儲項目數據的 位置。爲了減少延遲並提高可用性,請將數據存儲在需要它的用戶和服務 附近。您可以在以下位置創建項目:

  • europe-west - 西歐
  • us-central - 美國中部
  • us-east1 - 美國東部
  • asia-northeast1 - 東北亞太

App Engine和Cloud Datastore都作爲產品列出多區域覆蓋(見https://cloud.google.com/about/locations/)。但是這種報道不是全球性的,它仍然包含在一個地區集團內。而美國和歐盟在不同的地區集團,所以這不會幫助你。從​​:

多區域的資源相關聯的數據是不依賴於一個 特定區域和能夠區域和區域之間的移動可以 加入並從區域組中刪除。例如,歐盟的Google雲端存儲位置中的存儲桶會將數據保留在歐洲境內的 之內,但可以將靜態數據存儲或移動到歐盟境內的任何雲存儲區域(需遵循 )或將其移動到 terms of serviceservice specific terms)。

因此,在最好的,你可以有從(幾乎)同樣的代碼部署在2個不同地區,最終2個不同 GAE應用程序。

您需要照顧自己跨這些應用程序複製數據,例如通過在應用程序之間爲此目的添加自定義/專用通信或使用Remote API(每個應用程序充當其他應用程序的遠程API )。

最有可能不平凡,特別是如果數據一致性很重要。在這種情況下,您的可能是會因單個應用程序而更好,並且會因您的位置而對您的某些客戶造成一些性能損失。

+0

注意:雲端數據存儲並未僅與App Engine標準配合使用。使用不同的計算環境可以讓你的應用程序部署在不同的地區。使用本地緩存但訪問中央數據庫時,您可以以緩存一致性爲代價獲得更好的性能。 –

+0

感謝您的回答,與歐盟客戶合作以及新的數據保護法律時,最佳解決方案是什麼? – Aron

+0

我會有2個獨立的每個區域的應用程序,但相互獨立 - 沒有數據複製。如果應用程序的功能需要站點間交互,我會以不同的方式實現它。例如,將存儲的歐盟個人數據複製到美國可能實際上違反了該法律。 –