為位置受限的工作負載建立災難復原架構

Last reviewed 2024-07-20 UTC

本文將說明如何使用 Google Cloud 建立災難復原 (DR) 架構,以便滿足位置專屬規定。在某些受監管的產業中,工作負載必須遵守這些規定。在這種情況下,您必須符合下列一或多項規定:

  • 靜態資料必須限制在指定位置。
  • 資料必須在存放位置處理。
  • 工作負載只能從預先定義的位置存取。
  • 資料必須使用客戶管理的金鑰加密。
  • 如果您使用雲端服務,每項雲端服務都必須提供至少兩個互為備援的位置。如需位置備援規定範例,請參閱 Cloud Computing Compliance Criteria Catalogue (C5)

本系列包含以下單元:

術語

開始為位置受限的工作負載設計災難復原架構之前,建議先查看 Google Cloud中使用的位置術語。

Google Cloud 在美洲、歐洲和中東,以及亞太地區的區域提供服務。舉例來說,倫敦 (europe-west2) 是歐洲的區域,奧勒岡 (us-west1) 則是北美的區域。部分 Google Cloud 產品會將多個區域歸入特定多區域位置,存取方式與使用區域相同。

地區會進一步劃分為區域,您可以在其中部署特定 Google Cloud 資源,例如虛擬機器、Kubernetes 叢集或 Cloud SQL 資料庫。資源 Google Cloud 可為多區域、區域或可用區層級。預設指定為多區域的部分資源和產品,也可以限制在特定區域使用。以下說明不同類型的資源:

  • 多區域資源由 Google Cloud 設計,可提供區域內和跨區域的備援機制。多區域資源可避免單一區域發生故障。
  • 區域性資源會在區域內的多個可用區備援部署,因此可抵禦區域內可用區的故障。

  • 區域資源在單一區域中運作。如果某個可用區無法使用,在服務恢復之前,該可用區中的所有區域資源也會無法使用。請將區域視為單一故障網域。您需要設計應用程式架構,以減輕單一可用區無法使用所造成的影響。

詳情請參閱「地理位置與區域」。

規劃位置受限工作負載的災難復原

應用程式的設計方法取決於工作負載類型和必須滿足的地區性需求。此外,也請考慮您為何必須符合這些需求,因為您的決定會直接影響 DR 架構。

請先參閱Google Cloud 災難復原規劃指南。 考量受地域限制的工作負載時,請著重於本規劃章節中討論的需求。

定義地區性需求

開始設計前,請先回答下列問題,定義地區需求:

  • 靜態資料儲存在哪裡?這個問題的答案會決定您可使用的服務,以及可採用哪些高可用性 (HA) 和 DR 方法來達到 RTO/RPO 值。請使用「雲端位置」頁面判斷適用產品。
  • 是否可以使用加密技術來減輕這項規定帶來的影響?如果您能使用 Cloud External Key Manager 和 Cloud Key Management Service 採用加密技術,減輕地域性需求,即可使用多區域和雙區域服務,並遵循「資料災難復原情境」一文所述的標準 HA/DR 技術。
  • 資料是否可在儲存位置以外的地方處理?您可以運用 GKE Enterprise 等產品提供混合式環境,滿足您的需求,或實作產品專屬控制項,例如在區域中的多個可用區之間,對 Compute Engine 執行個體進行負載平衡。使用機構政策資源位置限制,限制資源的部署位置。

    如果資料可以在需要靜態儲存的位置以外處理,您可以按照「災難復原建構區塊」和「應用程式的災難復原情境」中的指引,設計應用程式的「處理」部分。

    設定 VPC Security Controls 範圍,控管資料存取權,並限制可處理資料的資源。

  • 可以同時使用多個區域嗎?如果您可以使用多個區域,可以採用「災害復原」系列文章中列出的許多技術。請查看 Google Cloud 產品的多區域和區域限制。

  • 您是否需要限制應用程式的存取權? Google Cloud 提供多種產品和功能,可協助您限制應用程式的存取權:

    • Identity-Aware Proxy (IAP)。 驗證使用者身分,然後判斷是否應允許該使用者存取應用程式。機構政策會使用網域限制共用限制,定義 IAM 政策允許的 Cloud Identity 或 Google Workspace ID。
    • 產品專屬的地區控管。如要在架構中使用產品,請參閱各產品的適當地區性限制。舉例來說,如果您使用 Cloud Storage,請在指定區域中建立 bucket。

找出可使用的服務

根據您的所在地和區域精細度需求,找出可使用的服務。設計受位置限制的應用程式時,必須瞭解哪些產品可限制在哪些區域,以及可套用哪些控制選項來強制執行位置限制規定。

找出應用程式和資料的區域精細程度

請回答下列問題,找出應用程式和資料的區域精細度:

  • 您可以在設計中使用多區域服務嗎?使用多區域服務可建立高可用性架構,確保系統具備彈性。
  • 您的應用程式是否設有存取地點限制?使用這些 Google Cloud 產品,強制規定應用程式的存取位置:
  • 靜態資料是否僅限於特定區域?如果您使用受管理服務,請確保您使用的服務可進行設定,將儲存在服務中的資料限制在特定區域。舉例來說,您可以使用 BigQuery 地區限制,指定資料集的儲存和備份位置。
  • 您需要將應用程式限制在哪些區域?部分 Google Cloud 產品沒有區域限制。使用「Cloud 地理位置」頁面和產品專屬頁面,驗證您可以在哪些區域使用產品,以及是否有任何可用的緩解功能,將應用程式限制在特定區域。

使用 Google Cloud 產品符合位置限制

本節詳細說明如何使用Google Cloud 產品,做為受限地區工作負載的 DR 策略一部分,並介紹相關功能和減輕影響的技術。建議您一併閱讀本節和「災難復原的構成要素」。

機構政策

機構政策服務可讓您集中控管 Google Cloud 資源。透過機構政策,您可以設定整個資源階層的限制。為位置受限的工作負載設計架構時,請考量下列政策限制

  • 網域限制共用: 根據預設,所有使用者身分都能新增至 IAM 政策。允許/拒絕清單必須指定一或多個 Cloud Identity 或 Google Workspace 客戶身分。這項限制發揮作用後,只有具備允許清單中所列身分的使用者才能新增至 IAM 政策。

  • 位置受限的資源: 這項限制是指可建立位置型資源的位置組合。Google Cloud 這項限制的政策可將下列任一項目指定為允許或拒絕的位置:多區域 (例如亞洲和歐洲)、單一區域 (例如 us-east1europe-west1),或個別可用區 (例如 europe-west1-b)。如需支援的服務清單,請參閱「資源位置支援的服務」。

加密

如果您的資料地域性規定是為了限制資料存取權,那麼實作加密方法或許是適用的策略。使用外部金鑰管理系統管理您在Google Cloud外部提供的金鑰,或許就能部署多區域架構,以符合當地法規要求。如果沒有可用的金鑰,就無法解密資料。

Google Cloud 提供兩項產品,可讓您使用自己管理的金鑰:

  • Cloud External Key Manager (Cloud EKM): Cloud EKM 可讓您使用加密金鑰,對 BigQuery 和 Compute Engine 中的資料進行加密。該加密金鑰儲存於部署在 Google 基礎架構外的第三方金鑰管理系統中,並由該系統管理。
  • 客戶提供的加密金鑰 (CSEK):您可以在 Cloud StorageCompute Engine 中使用 CSEK。Google 會使用您的金鑰來保護 Google 所產生用於加密和解密資料的金鑰。

    不過如果您使用的是客戶提供的加密金鑰,Google 就不會將您的金鑰永久儲存在 Google 伺服器上,也不會幫您管理。因此,您必須為每次作業提供金鑰,而且一旦作業完成,系統就會將這組金鑰從 Google 伺服器中清除。

管理自己的金鑰基礎架構時,請務必審慎考量延遲和可靠性問題,並確保為外部金鑰管理員實作適當的 HA 和復原程序。您也必須瞭解 RTO 需求。金鑰是寫入資料的必要條件,因此 RPO 並非主要考量,因為沒有金鑰就無法安全地寫入資料。真正的問題是 RTO,因為沒有金鑰就無法解密或安全地寫入資料。

儲存空間

為位置受限的工作負載設計 DR 時,請務必確保靜態資料位於所需區域。您可以設定Google Cloud 物件和檔案儲存服務,以符合您的需求

Cloud Storage

您可以建立符合地域限制的 Cloud Storage bucket。

除了「災難復原建構區塊」一文 Cloud Storage 一節中討論的功能,為受限於地區的工作負載設計 DR 時,請考慮是否需要跨地區備援:儲存在多地區雙地區的物件會儲存在至少兩個地理位置不同的區域,無論儲存空間類別為何。即使發生大規模的服務中斷情況 (例如天災),仍可達到資料可用性最大化。雙區域會使用您選擇的區域配對,達成這項備援目標。多地區會使用指定多地區內的任何資料中心組合來達成異地備援,其中可能包括未明確列為可用地區的資料中心。

值區之間的資料同步作業會以非同步方式進行。如果您需要高度確保資料已寫入替代區域,以符合 RTO 和 RPO 值,其中一種策略是使用兩個單一區域值區。然後,您可以雙重寫入物件,或寫入一個值區,並讓 Cloud Storage 複製到第二個值區。

使用 Cloud Storage 時的單一區域緩解策略

如果您的需求限制只能使用單一區域,就無法單獨使用 Google Cloud 實作架構,在不同地理位置之間提供備援。在這種情況下,請考慮使用下列一或多個技巧:

  • 採用多雲端或混合雲策略。這種做法可讓您在與Google Cloud 區域相同的地理區域中,選擇其他雲端或地端解決方案。您可以將資料副本儲存在地端的 Cloud Storage 值區,也可以使用 Cloud Storage 做為備份資料的目標位置。

    如要使用這種方法,請按照下列步驟操作:

    • 確認符合距離規定。
    • 如果您使用 AWS 做為其他雲端供應商,請參閱Cloud Storage 互通性指南,瞭解如何使用 Google Cloud 工具設定 Amazon S3 的存取權。
    • 如要使用其他雲端和地端解決方案,請考慮使用 minIOCeph 等開放原始碼解決方案,提供地端物件儲存空間。
    • 建議您搭配使用 Cloud Composer 和 gcloud storage 指令列公用程式,將資料從地端物件儲存空間移轉至 Cloud Storage。
    • 使用地端資料轉移服務,將地端儲存的資料複製到 Cloud Storage。
  • 實施加密技術。如果當地法規允許使用加密技術做為解決方法,您就可以使用多區域或雙區域值區。

Filestore

Filestore 提供代管檔案儲存空間,您可以根據地區限制需求,在區域和可用區中部署。

代管資料庫

資料的災難復原情境說明如何為Google Cloud 全代管資料庫服務導入備份和復原策略。除了使用這些方法,您也必須考量架構中使用的每個代管資料庫服務的地域限制,例如:

  • Bigtable 可在區域的可用區位置使用。 正式版執行個體至少有兩個叢集,且必須位於區域內的不同可用區。Bigtable 執行個體中叢集之間的複寫作業,會由 Google 自動管理。Bigtable 會同步處理不同叢集的資料,並在執行個體存有叢集的每個區域,另外為資料建立獨立複本。複製功能可讓連入流量容錯移轉至同一個執行個體中的另一個叢集。

  • BigQuery 具有區域限制,可決定資料集的儲存位置。資料集位置可以是區域或多區域。如要在區域性災難期間提供復原能力,您需要將資料備份到其他地理位置。如果是 BigQuery 多區域,建議您避免備份至多區域範圍內的區域。 如果您選取歐盟多區域,蘇黎世和倫敦就不會納入多區域設定。 如要瞭解如何為 BigQuery 實作 DR 解決方案,以因應實體區域損失這種不太可能發生的事件,請參閱「區域損失」一文。

    如要瞭解採用單一區域或多區域 BigQuery 設定的影響,請參閱 BigQuery 說明文件

  • 您可以使用 Firestore,將 Firestore 資料儲存在多區域位置或單一區域位置。多區域位置中的資料在作業時會採用多區域及多地區備用配置。如果您的地區限制規定允許,且您希望盡可能提高資料庫的可用性和耐用性,請選取多地區位置。多地區位置可以承受整個地區服務中斷的損失,並在避免遺失資料的情況下維持可用性。單一地區位置 中的資料在作業時會採用多區域備用配置

  • 您可以設定 Cloud SQL 以達到高可用性。設為高可用性的 Cloud SQL 執行個體也稱為區域執行個體,位於所設定區域的主要和次要可用區。在區域執行個體中,設定是由主要執行個體和待命執行個體組成。請務必瞭解從主要執行個體到待命執行個體的一般容錯移轉時間

    如果符合需求,您可以設定 Cloud SQL 搭配跨區域備用資源。 如果發生災難,可以升級不同區域的唯讀備用資源。因為可以預先設定讀取副本以實現高可用性,因此在升級為高可用性後,不需要進行額外變更。您也可以設定唯讀備用資源,讓其擁有專屬的跨區域備用資源,在備用資源升級後,立即提供區域性故障防護。

  • 您可以將 Spanner 設定為區域或多區域。在所有的地區性設定中,Spanner 都會保留三個讀取/寫入備用資源,每個備用資源皆會位於該地區中不同的 Google Cloud 區域。針對處理讀取/寫入和唯讀要求的作業資料庫,每個讀取/寫入備用資源皆含有這類資料庫的完整副本。

    Spanner 使用不同區域中的備用資源,以便在單一區域發生故障時,資料庫仍然可供使用。Spanner 多區域部署會在多個區域提供一致的環境,包括兩個讀取/寫入區域和一個包含見證備用資源見證區域。您必須驗證所有區域的位置是否符合地區限制規定。

Compute Engine

Compute Engine 資源可分為全球、區域或可用區層級。Compute Engine 資源 (例如虛擬機器執行個體或區域永久磁碟) 稱為區域資源。其他像是靜態外部 IP 位址等資源,則為地區資源。無論區域為何,地區資源都可由該地區中的任何資源使用,而區域資源可由相同區域中的其他資源使用。

將資源放在地區中的不同區域,可避免這些資源受到大多數實體基礎架構故障和基礎架構軟體服務故障的影響。此外,將資源放在不同的地區可提供更高程度的失敗獨立性。這種做法可讓您設計完善可靠的系統,並將資源散布在不同的故障網域。

詳情請參閱地區和區域

使用地端部署或其他雲端做為正式版網站

您可能使用 Google Cloud 的區域不支援雙區域或多區域組合,因此無法用於 DR 架構。如要符合這類地區限制,請考慮使用自己的資料中心或其他雲端服務,做為實際工作環境或容錯移轉站點。

本節將討論針對混合式工作負載最佳化的產品。 Google Cloud Google Cloud 應用程式的災難復原情境一文,將討論使用內部部署和 Google Cloud 的 DR 架構。

GKE Enterprise

GKE Enterprise 是 Google Cloud's 開放的混合式雲端與多雲端應用程式平台,可協助您在任何位置安全地執行以容器為基礎的工作負載。GKE Enterprise 可確保地端和雲端環境的一致性,讓您享有統一的作業模式,並集中檢視 Google Kubernetes Engine (GKE) 叢集,無論叢集在哪裡執行都沒問題。

在 DR 策略中,GKE Enterprise 可簡化不同環境 (雲端與內部部署或另一個雲端之間) 的 HA 和容錯移轉架構設定與運作。 Google Cloud 您可以在地端執行正式版 GKE Enterprise 叢集,如果發生災害,可以容錯移轉至Google Cloud中的 GKE Enterprise 叢集,執行相同的工作負載。

Google Cloud 上的 GKE Enterprise 有三種叢集:

  • 單一可用區叢集。單一可用區叢集只有一個控制層,且該控制層在一個可用區中執行。這個控制層會管理在相同區域中執行的節點工作負載。
  • 多區域叢集。多可用區叢集在單一可用區中,只會執行一項控制層副本,但節點會在多個可用區中執行
  • 區域叢集。 區域叢集會在單一區域的多個區域之間複製叢集主節點和節點。舉例來說,us-east1 地區的區域叢集會在三個 us-east1 區域中建立控制層和節點的副本:us-east1-bus-east1-cus-east1-d

區域叢集最能抵禦可用區中斷。

Google Cloud VMware Engine

Google Cloud VMware Engine 可讓您在雲端執行 VMware 工作負載。如果地端工作負載是以 VMware 為基礎,您可以設計 DR 解決方案,在與地端相同的虛擬化解決方案上執行。您可以選取符合當地法規要求的區域。

網路

如果您的 DR 計畫是根據從地端部署系統移轉資料至Google Cloud ,或是從其他雲端服務供應商移轉資料至 Google Cloud,則必須制定網路策略。詳情請參閱「災難復原建構區塊」文件的「資料移轉 Google Cloud」一節。

VPC Service Controls

規劃 DR 策略時,請務必確保適用於實際工作環境的安全控管措施,也適用於容錯移轉環境。使用 VPC Service Controls,您可以從內部部署網路到 Google Cloud中的專案定義安全範圍。

VPC Service Controls 可為雲端資源提供情境感知存取權控制功能。您可以根據使用者身分和 IP 位址等屬性,在 Google Cloud 中建立精細的存取權控制政策。這些政策可協助確保您在內部部署和 Google Cloud 環境中,採用合適的安全性控管機制。

後續步驟