首頁  >  文章  >  後端開發  >  AWS Aurora 的全球災難復原

AWS Aurora 的全球災難復原

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-20 15:45:14435瀏覽

在全球災難復原時,我們必須將資料庫備份儲存在不同的 AWS 帳戶中。 Aurora RDS 可以將資料庫備份複製到不同的區域或不同的帳戶,但不能同時複製到兩者。此外,如果使用 AWS 託管金鑰部署 Aurora 資料庫集群,則不支援跨帳戶複製。更改集群密鑰需要重新部署集群。

對於此類用例,方法之一是使用 AWS 備份

對於此類用例,可以使用 AWS 文件中描述的方法之一:透過跨帳戶和跨區域備份保護加密的 Amazon RDS 執行個體。

但是AWS文檔是基於AWS cloudformation模板的。我使用 terraform 重新創建了它。

此方法提供了跨帳戶和跨區域將 AWS Aurora 備份複製到 Vault 的靈活性。我們不需要使用自訂 KMS 金鑰來部署 Aurora 叢集。

此解決方案使用 AWS Backup 計畫建立 Amazon RDS 資料庫到來源保管庫(產品區域、產品帳戶)的計畫備份。
相同備份計畫定義了複製規則,該規則將備份複製到相同帳戶但位於 DR 區域(產品帳戶、DR 儲存區域)中的中間保​​管庫。

然後,此解決方案使用 EventBridge 擷取 AWS Backup 複製作業成功完成的情況,並使用這些事件觸發 AWS Lambda 函數。然後,AWS Lambda 函數使用AWS Backup 執行另一個備份複製作業,將備份從Prod 帳戶中的中間保​​管庫複製到DR 帳戶中的目標保管庫(DR 帳戶、DR 儲存區域) .

Global Disaster recovery for AWS Aurora

來源:https://aws.amazon.com/blogs/storage/protecting-encrypted-amazon-rds-instances-with-cross-account-and-cross-region-backups/

生產帳戶中使用預設RDS KMS AWS 託管金鑰加密的RDS 資料庫實例由AWS Backup 備份到SourceVault(配置為使用cmk-source-vault-account-a-region-a 加密) ),然後將備份複製到IntermediateVault(配置為使用cmk-intermediate-vault-account-a-region-b 加密)。儘管SourceVault 配置為使用「cmk-source-vault-account-a-region-a」加密,但儲存在SourceVault 上的Amazon RDS 快照仍使用預設的RDS KMS AWS 託管進行加密金鑰( aws/rds)。將快照從 SourceVault 複製到 IntermediateVault 的步驟將解密快照並在 IntermediateVault 中使用「cmk-intermediate-vault-account-a-region-b」重新加密快照。然後,可以將「cmk-intermediate-vault-account-a-region-b」客戶管理金鑰共用到 DR 備份帳戶,以用於跨帳戶複製。在跨帳戶複製期間,快照將使用目標保管庫金鑰「cmk-destination-vault-account-b-region-b」再次重新加密。

複製到IntermediateVault 完成後,生產帳戶(帳戶A、區域A)中的EvenBridge 規則會識別「複製作業完成」事件,並將該事件轉送至帳戶A、區域B 中的EventBridge,該事件在Turn觸發Lambda 函數。 Lambda 函數將檢查恢復點上是否有適當的標籤,並請求AWS Backup 將備份從生產帳戶(帳戶A、區域B、IntermediateVault)複製到DR 備份帳戶(帳戶B、區域B、DestinationVault)實現跨帳戶、跨Region的備份副本。

優點

  • 無需重新部署 Aurora 叢集
  • 異地容災備份副本。

缺點

  • 複雜的解決方案。

實作

先決條件

  • 在 AWS Organizations 中配置的現有組織結構
  • 組織中啟用 AWS Backup 的跨帳戶功能
  • 選擇在每個區域備份 Amazon RDS

備份流程
RDS/S3/EFS 實例 → AWS 備份到您帳戶的保管庫 → 從您的保管庫跨帳戶複製備份到 GDR 保管庫

您可以從Github Repo取得Terraform程式碼

以上是AWS Aurora 的全球災難復原的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn