在全球災難復原時,我們必須將資料庫備份儲存在不同的 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 儲存區域) .
來源: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的備份副本。
優點
缺點
實作
先決條件
備份流程
RDS/S3/EFS 實例 → AWS 備份到您帳戶的保管庫 → 從您的保管庫跨帳戶複製備份到 GDR 保管庫
您可以從Github Repo取得Terraform程式碼
以上是AWS Aurora 的全球災難復原的詳細內容。更多資訊請關注PHP中文網其他相關文章!