災難復原規劃指南

本文是探討在 Google Cloud Platform (GCP) 中進行災難復原 (DR) 系列的第一單元。本單元提供 DR 規劃程序總覽:設計和實作 DR 計劃需要瞭解的概念。後續單元說明特定的 DR 使用案例,並提供在 GCP 上實作的範例。

本系列包含三個單元:

簡介

讓服務中斷的事件隨時都會發生,比如說,您的網路可能會中斷、最新的應用程式推送可能會造成重大錯誤,或者,您可能在某一天必須應對自然災害。運作上出了差錯的時候,您就需要一套健全可靠、針對特定目的制定且經過全面測試的 DR 計劃。

有了經過精心設計和全面測試的 DR 計劃,您就可以確保災難發生時對企業的財務不會造成太大的影響。不論您有哪些 DR 需求,Google Cloud Platform (GCP) 都有健全、靈活且符合成本效益的產品和功能選項,讓您建立或擴展適用於您的解決方案。

DR 規劃的基本概念

DR 是業務持續性規劃的一部分。DR 規劃會從業務影響分析開始,定義出兩個重要指標:

  • 復原時間目標 (RTO):定義您可接受的應用程式離線時間長度上限。這個值通常是在更大的服務水準協議 (SLA) 中定義。
  • 復原點目標 (RPO):應用程式可能因重大事件而遺失資料的可接受時間長度上限。這個指標會隨著資料的使用方式而改變。例如,經常修改的使用者資料可能只有幾分鐘的 RPO。相反的,較不重要、不常修改的資料則可能有幾小時的 RPO (這個指標只說明時間長度,不處理遺失資料的數量或品質)。

一般來說,RTO 和 RPO 的值愈小 (亦即,應用程式必須更快從中斷事件中復原),應用程式的執行費用就愈高。下圖顯示費用對 RTO/RPO 的比率。

圖表顯示低 RTO/RPO 對應到高成本。

因為 RTO 和 RPO 值愈小通常代表複雜性愈高,所以相關的管理負擔也會有類似的曲線。高可用性應用程式可能需要您管理兩個實體獨立的資料中心之間的流量分配、管理複製作業及其他。

RTO 和 RPO 值通常可以匯總成另一個指標:服務等級目標 (SLO),這是 SLA 的一個重要的可測量元素。SLA 和 SLO 通常會合併使用。SLA 是完整的協議,指定協議方要提供哪些服務、支援的方式、時間、位置、費用、效能、懲罰及責任。SLO 是 SLA 的專屬可測量特性,例如可用性、總處理量、頻率、回應時間或品質。一個 SLA 可以含有許多 SLO。RTO 和 RPO 都是可測量的指標,應被視為 SLO。

如要進一步瞭解 SLO 和 SLA,請參閱《Google 網站穩定性工程》一書。

您還可以規劃高可用性 (HA) 的架構。HA 與 DR 未完全重疊,但在考慮 RTO 和 RPO 的值時,通常必須將 HA 納入考慮範圍。HA 有助於確保作業效能 (通常是運作時間) 在高於一般期間的時間中,達到協議層級。在 GCP 上執行實際工作環境工作負載時您可以採用全球分散式系統,以在某一地區發生問題時讓應用程式繼續提供服務,即使該應用程式並未在全球提供。基本上,該應用程式會叫用其 DR 計劃。

為什麼要使用 GCP?

相較於在內部部署滿足 RTO 和 RPO 的需求,GCP 可以大幅降低 RTO 和 RPO 的相關費用。例如,傳統的 DR 規劃需要考量許多需求,包括:

  • 容量:確保需要時有足夠的資源可以調度。
  • 安全措施:提供保護資產的實體安全措施。
  • 網路基礎架構:包括防火牆及負載平衡器之類的軟體元件。
  • 支援服務:讓有空且技巧純熟的技術人員負責維護作業並解決相關問題。
  • 頻寬:為尖峰負載規劃適合的頻寬。
  • 設施:確保實體基礎架構,包括設備和電力。

透過在世界一流的實際工作平台上提供可高度代管的解決方案,GCP 可協助您繞過大部分或所有複雜的因素,省下過程中各種業務成本。此外,GCP 還重視管理簡易性,這代表著管理複雜應用程式的費用也會隨之降低。

GCP 提供數種有關 DR 規劃的功能,包括:

  • 全球網路。Google 擁有全球最大且最先進的電腦網路。Google 的骨幹網路擁有數千英里的光纖纜線,使用最先進的軟體定義網路,並且具備邊緣快取服務,可提供快速、一致且可擴充的效能。
  • 備援功能。全球設有多個網路連接點 (PoP),表示可以提供完善的備援機制。您的資料會自動備份到多個位置的儲存裝置。
  • 擴充性。GCP 的資源調度能力不亞於其他 Google 產品 (例如搜尋與 Gmail),即使遭遇巨大的流量高峰,也能從容應付。App Engine、Compute Engine 自動配置器及 Cloud Datastore 等代管服務提供自動調整資源配置功能,可讓應用程式視需要擴增及縮減。
  • 安全性Google 安全性模型奠基於我們在 Gmail 和 G Suite 等 Google 應用程式上為客戶提供完善安全防護超過 15 年的經驗。此外,Google 的網站穩定性工程團隊還會協助確保高可用性,防止平台資源遭到濫用。
  • 法規遵循。Google 會定期進行獨立的第三方稽核作業,確保 GCP 的安全性、隱私權、法規遵循和最佳做法均符合相關規範。GCP 符合以下認證標準:ISO 27001、SOC 2/3 及 PCI DSS 3.0。

DR 模式

DR 模式分成冷、暖和熱模式,表示發生問題時系統復原的準備程度。好比是您在開車時若遇到汽車輪胎被刺破會採取哪些措施。

3 張汽車爆胎情境的相片:沒有備胎、有備胎和工具、失壓續跑胎。

如何處理爆胎視您的準備程度而定:

  • 冷:您沒有備胎,所以必須聯絡某人,請他帶新輪胎給您,然後更換輪胎。您的行程會因此停止,直到某人抵達完成維修才能繼續。
  • 暖:您有備胎和更換套件,所以可使用車內現有的工具維修後再次啟程。但您還是必須停下行程來修正問題。
  • 熱:您使用的是失壓續跑胎。您可能需要降低車速,但對行程不會造成立即影響。輪胎仍可繼續運作,您可以繼續開車 (雖然您最終還是要解決這個問題)。

建立詳細的 DR 計劃

本節提供如何建立 DR 計劃的相關建議。

依據您的復原目標進行設計

設計 DR 計劃時,您必須結合應用程式與資料復原技術,並瞭解整體狀況。如果要這麼做,您通常必須查看 RTO 和 RPO 值,決定您要採用哪一種 DR 模式才能配合這些值。例如,如果是記錄型法規遵循導向的資料,您大概不需要快速存取資料,所以適合使用大的 RTO 值和冷 DR 模式。如果您的線上服務發生中斷,您會想要盡速復原應用程式的資料和客戶使用的部分。在此情況下可能更適合使用熱模式。電子郵件通知系統通常不是關鍵業務功能,或許可以使用暖模式。

如需使用 GCP 處理常見 DR 情境的指南,請參閱應用程式復原情境。這些情境會針對不同的使用情況提供指定目標的 DR 策略,並提供在 GCP 上的實作範例。

設計端對端復原

只有備份或封存資料的計劃並不夠,您還要確定您的 DR 計劃能夠處理從備份、復原到清除的完整復原程序才行。如需詳細說明,請參閱 DR 資料及復原的相關文件。

明確定義工作

執行 DR 計劃時,您不會想猜測每個步驟的意義。請讓 DR 計劃中的每一個工作包含一或多個具體、明確的指令或動作。例如,「執行復原指令碼」過於籠統,相較之下,「開啟 Bash 並執行 /home/example/restore.sh」則精確而具體。

實作控管措施

新增控制項以防止災難發生,並在問題發生之前先偵測到這個問題。例如新增監控程式以在執行破壞資料的流程時傳送快訊,例如刪除管道、出現非預期的尖蜂或其他不尋常的活動。這個監控程式也可以在達到特定刪除門檻時終止管道程序,避免發生災難狀況。

準備軟體

DR 計劃中有一部分是要確保您使用的軟體已準備好處理復原事件。

確認您可以安裝軟體

確定您可以從來源或從預先設定的映像檔安裝您的應用程式軟體。對於您要在 GCP 上部署的任何軟體,請確定您已取得適當的授權;如需協助,請聯絡軟體的供應商。

設計用於復原的持續部署作業

您的持續部署 (CD) 工具集是部署應用程式時不可或缺的元件。做為復原計劃的一部分,您必須考慮要在復原的環境中的哪個位置部署成果。請規劃您要託管 CD 環境和成果的位置;萬一發生災難,CD 環境和成果必須可以使用且能正常運作。

實作安全措施和法規遵循控管

設計 DR 計劃時,安全措施非常重要。復原的環境必須套用您在實際工作環境中使用的相同控制項,也必須套用法規遵循規範。

在 DR 和實際工作環境中設定相同的安全措施

請確定網路控制項提供的區隔和封鎖設定與來源實際工作環境使用的設定相同。瞭解如何設定共用虛擬私人雲端GCP 防火牆,以便為部署建立集中的網路及安全控管、設定子網路、控制傳入和傳出流量等等。瞭解如何使用服務帳戶,在存取 GCP API 的應用程式實作最低權限措施。請務必依據防火牆規則使用服務帳戶。

請確定您授予使用者的 DR 環境存取權與使用者在來源實際工作環境中所擁有的權限相同。下列清單列出在環境之間同步權限的方法:

  • 如果您的實際工作環境是 GCP,在 DR 環境中複製身分與存取權管理 (IAM) 政策非常簡單。您可以使用基礎架構即程式碼 (IAC) 方法,並使用 Cloud Deployment Manager 等工具將 Cloud IAM 政策部署到實際工作環境。然後,在驗證 DR 環境的過程中,使用相同的工具將政策繫結到 DR 環境中的對應資源。

  • 如果實際工作環境屬於內部部署,請將職務角色 (例如網路管理員和稽核員角色) 對應到具備適當 IAM 角色的 IAM 政策。IAM 說明文件含有一些職務角色設定範例。例如,請參閱建立網路以及稽核記錄職務角色的說明文件。

  • 您必須設定 IAM 政策以授予產品的適當權限。例如,您可以限制只能存取特定的 Cloud Storage 值區

  • 如果實際工作環境是另一個雲端供應商,請將供應商的 IAM 權限對應到 GCP IAM 政策。例如,如果您的實際工作環境是 AWS,可以參閱 為 AWS 專家量身打造的 GCP:管理相關頁面以瞭解詳細資訊。

確認 DR 安全性

設定 DR 環境的權限後,請確定您已測試所有功能。請建立測試環境。使用採用 Deployment Manager 等工具的 IAC 方法,將 IAM 政策部署到測試環境。驗證您授予使用者的存取權是否與授予內部部署使用者的權限相同。

確定使用者可以登入 DR 環境

同樣地,請在災難發生之前先檢查使用者是否可以存取 DR 環境。請確定您已將適當的存取權授予使用者、開發人員、操作者、數據資料學家、安全管理員、網路管理員及您機構組織中的其他角色。如果您使用其他身分識別系統,請確定這個系統中的帳戶與您的 Cloud Identity 帳戶同步。因為 DR 環境有一陣子會是您的實際工作環境,所以請讓需要存取 DR 環境的使用者登入此環境,並解決任何驗證問題。實施定期 DR 測試時,請納入登入 DR 環境的使用者。

若要集中管理可透過 SSH 存取已啟動的虛擬機器 (VM) 的使用者,請在 DR 環境的 GCP 專案中啟用 OS 登入功能。

訓練使用者

使用者必須瞭解如何在 GCP 中進行以往在實際工作環境中完成的動作,例如登入、存取 VM 等等。請使用測試環境以保護系統安全的方式,訓練使用者如何執行這些工作。

確定 DR 環境符合法規遵循需求

請確認 DR 環境的存取權僅限於需要存取權限的使用者。請確認 PII 資料經過遮蓋和加密。如果您對實際工作環境執行標準滲透測試,則應在測試範圍中納入 DR 環境,並在驗證 DR 環境時執行定期測試。

請確定當 DR 環境處於服務狀態時,您所收集的任何記錄都會補充到實際工作環境的記錄封存。同樣地,請確定在 DR 環境中,您可以將透過 Stackdriver 收集到的稽核記錄匯出到主要的記錄接收器封存。請使用匯出接收器功能。針對應用程式記錄,建立內部部署記錄和監控環境的鏡像。如果實際工作環境是另一個雲端供應商,請將供應商的記錄和監控功能對應到相等的 GCP 服務。請建立一個程序,將輸入內容格式化到實際工作環境。

在每日備份程序中使用 Cloud Storage

使用 Cloud Storage 來儲存備份。請確定含有備份的值區具備適當權限。

妥善管理密鑰

使用 GCP 託管金鑰/密鑰管理服務 (KMS) 來管理應用程式層級密鑰和金鑰。您可以使用 Cloud KMS 或第三方解決方案 (例如 HashiCorp Vault) 搭配 GCP 後端 (例如 Cloud SpannerCloud Storage)。

將已復原的資料視為實際工作環境資料

請確定套用到實際工作環境資料的安全控管也套用於已復原的資料;您應套用相同的權限、加密和稽核需求。

請瞭解備份的位置及有權復原資料的使用者。請確定您的復原程序是可稽核的;在災難復原後,請確定您可以看到之前存取備份資料的使用者以及執行復原作業的使用者。

確定 DR 計劃可行

您需要確認如果災難真的發生,一切都能照您所想的運作,確認制定 DR 計劃是值得的。

維護一個以上的資料復原路徑

萬一發生災難,目前連至 GCP 的連線方法可能會無法使用。請實作存取 GCP 的替代方法,確保您可以將資料移轉到 GCP。請定期測試該備份路徑可以正常使用。

定期測試計劃

建立 DR 計劃後,請定期測試計劃,注意任何發生的問題,據以調整計劃。使用 GCP,您能夠以最低費用測試復原情境。建議您實作下列作業,以協助您進行測試:

  • 使用 Deployment Manager 自動佈建基礎架構。您可以使用 Deployment Manager 自動佈建 VM 執行個體和其他 GCP 的基礎架構。如果您的實際工作環境是在內部部署執行,則必須確認您的監控程序可以在偵測到錯誤時啟動 DR 程序,且可以觸發適當的復原動作。
  • 使用 Stackdriver Logging 及 Stackdriver Monitoring 監控測試並進行偵錯。GCP 提供絕佳的記錄和監控工具,您可以使用 API 呼叫存取這些工具,透過回應指標的方式自動部署復原情境。設計測試時,請確定您已設定適當的監控和快訊,可以觸發適當的復原動作。
  • 執行稍早提到的測試:

    • 測試權限和使用者存取權在 DR 環境中的運作方式是否和在實際工作環境中一樣。
    • 對 DR 環境執行滲透測試。
    • 在您平常使用的 GCP 存取路徑無法使用的情況下執行測試。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Architectures