You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

跨AWS账户通过CloudFormation嵌套栈更新RDS实例(基于快照)

跨账户Aurora快照更新CloudFormation管理的Serverless实例问题

问题描述

在AWS账户A中通过CloudFormation嵌套栈创建了包含Aurora Serverless RDS实例在内的各类资源,该实例基于快照snapshotA。现希望使用AWS账户B中的快照snapshotB更新账户A中的该RDS实例,且不创建新实例。请问能否通过CloudFormation实现?若不能,最优方案是什么?

提供的CloudFormation模板片段

AuroraDBCluster:
  Type: 'AWS::CloudFormation::Stack'
  Properties:
    TemplateURL: !Sub 'https://s3.amazonaws.com/${Project}-${Environment}-templates/${Environment}/aurora-snapshot.yaml'
    Parameters:
      Environment: !Sub ${Environment}
      AuroraDBName: X
      VpcId: !GetAtt [CommonVPC, Outputs.VPC]
      PrivateSubnet1Id: !GetAtt [CommonVPC, Outputs.PrivateSubnet1]
      PrivateSubnet2Id: !GetAtt [CommonVPC, Outputs.PrivateSubnet2]
      AuroraDBSecurityGroup: !GetAtt [SecurityGroups, Outputs.AuroraSecurityGroup]
      AuroraClusterSnapshotARN: !Sub ${AuroraClusterSnapshotARN}

能否通过CloudFormation实现?

不能直接实现。核心限制在于:

  • CloudFormation对Aurora集群的快照参数(DBClusterSnapshotIdentifier)仅支持资源创建阶段指定,更新栈时修改该参数会触发集群的替换操作——即删除原实例并创建新实例,无法在现有实例上直接从新快照恢复数据。
  • 跨账户快照的权限配置可以解决访问问题,但无法绕过CloudFormation的资源替换逻辑。

最优方案

1. 配置跨账户快照访问权限

先在账户B中为snapshotB添加权限,允许账户A进行恢复操作:

aws rds modify-db-cluster-snapshot-attribute \
    --db-cluster-snapshot-identifier snapshotB \
    --attribute-name restore \
    --values-to-add "arn:aws:iam::ACCOUNT_A_ID:root"

也可以通过AWS控制台操作:找到snapshotB,进入「权限」设置,添加账户A的ID。

2. 无停机数据迁移(保留原实例)

如果需要保留原集群实例,可按以下步骤操作:

  • 若使用Aurora Serverless v1,先暂停原集群;v2版本无需暂停。
  • 从账户B的snapshotB恢复一个临时Aurora集群,配置与原集群完全一致的VPC、子网、安全组等网络参数。
  • 采用高效的数据迁移方式:
    • 同引擎版本下,使用Aurora克隆集群功能(仅需秒级创建,后续后台同步数据),克隆完成后将原集群的端点切换到克隆集群(通过修改应用配置或Route 53别名)。
    • 若不支持克隆,使用mysqldump(MySQL兼容)或pg_dump(PostgreSQL兼容)导出临时集群数据,再导入到原集群。
  • 验证数据无误后,删除临时集群。

3. 可选:更新CloudFormation模板(接受实例替换)

如果业务可以接受短暂停机,可直接更新嵌套栈的AuroraClusterSnapshotARN参数为snapshotB的ARN,执行栈更新:

  • CloudFormation会自动删除原集群,并基于snapshotB创建新集群。
  • 确保账户A已具备访问snapshotB的权限,且新集群的配置参数与原集群一致。

内容的提问来源于stack exchange,提问作者pankaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 10:23:12