【问题标题】:AWS CDK : snapshot restore an existing RDS Aurora database cluster?AWS CDK:快照还原现有 RDS Aurora 数据库集群?
【发布时间】:2022-01-25 02:02:41
【问题描述】:

我想从快照恢复 Aurora PostgreSQL 集群。该集群是使用 AWS CDK rds.DatabaseCluster 构造创建的。

使用Typescript的CDK版本是1.139.0,db集群是11.9

对于使用 rds.DatabaseCluster 创建的现有集群,如果您希望通过 CDK 触发集群的快照还原,似乎无法指定快照。

过去,我通过将 snapshotIdentifier 添加到 CF 模板中的 AWS::DB::Cluster 资源来恢复使用 CloudFormation (CF) 部署的集群。这个属性可以在 CDK CfnDBCluster & CfnDBInstance 资源中看到。

我知道rds.DatabaseClusterFromSnapshot 构造,它提供了通过指定快照名称来创建数据库(和恢复?)的能力。但是,如前所述,我要恢复的数据库集群已经创建并在 CDK 中与 rds.DatabaseCluster 构造相关联。

我宁愿不恢复 CDK 之外的数据库集群(使用控制台/cli),因为这导致的新集群不会与 CDK 堆栈相关联。

是否可以完全从现有 CDK 堆栈/代码中执行 RDS Aurora PostgreSQL 集群的快照恢复?特别是如果集群是使用 rds.DatabaseCluster 构造创建的?

谢谢

【问题讨论】:

    标签: amazon-rds aws-cdk


    【解决方案1】:

    您可以作为 L1 构造访问底层 CloudFormation 资源。

    const cluster = new rds.DatabaseCluster(this, 'Database', {
        engine: rds.DatabaseClusterEngine.AURORA,
        instanceProps: { vpc },
    });
    const cfnCluster = cluster.node.defaultChild as rds.CfnDBCluster;
    cfnCluster.snapshotIdentifier = "arn:snapshot";
    cfnCluster.masterUsername = undefined;
    cfnCluster.masterUserPassword = undefined;
    

    更新此值将终止您的集群并创建一个新的来替换它。

    参数文档:https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-rds.CfnDBCluster.html#snapshotidentifier

    编辑:更新为将 masterUsername 和 masterUserPassword 设置为未定义

    【讨论】:

    • 感谢 Kaustubh 的建议。不幸的是,通过 L1 构造提供快照标识符会导致错误和堆栈回滚。我们最初用于创建数据库的更高级别 L2 构造设置的属性存在冲突。 L2 rds.DatabaseCluster 正在为集群设置 MasterUsername 属性。 MasterUsername 与 SnapshotIdentifier 不兼容。
    • 在 L2 构造创建的 CF 模板中,您可以看到 MasterUsername 是使用 CDK 生成的值设置的。当按照您的建议使用 L1 构造设置快照标识符时,CDK 差异看起来不错,并显示集群将按预期被使用 CF 替换策略的资源替换。可悲的是,当我部署堆栈时,由于上述属性之间的不兼容而出错。 "不能同时指定 SnapshotIdentifier 和 MasterUsername"
    • @mStack 我更新了我的答案,将两个字段都设置为未定义。由于 RDS 集群有点昂贵并且需要时间来启动和销毁,所以除了 cdk synth 之外,我实际上无法测试我的答案。希望随着最新的变化没有更多的问题。
    猜你喜欢
    • 2017-12-30
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2014-08-08
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    相关资源
    最近更新 更多