使用 CDK 时迁移 DynamoDB 表数据的最佳方式是什么?



我们已经在AWS上部署了基础设施,现在我们正在使用AWS CDK引入IaC。这次迁移的目标之一是在没有停机时间或停机时间尽可能短的情况下处理数据库(DynamoDB(的更改,并保留以前基础版本的数据库数据。

正如CDK最佳实践页面上提到的,我们应该使用生成的资源名称,而不是物理名称,但这意味着销毁数据库表,而不是每次需要更改时都更改它,对吧?然后,我们如何将数据从旧表迁移到新表?可靠且停机时间最少(最好是零停机时间(?

DMS(数据库迁移服务(看起来是最好的方法,但我想知道你们是如何处理这个需求的。

参考https://aws.amazon.com/blogs/devops/best-practices-for-developing-cloud-applications-with-aws-cdk/

一种方法是使用CloudFormation导入功能将DynamoDB表导入CloudFormation,然后在CDK中对其进行追溯建模,确保导入后资源的逻辑ID与CloudFormation中的逻辑ID匹配。您可以使用CfResoluse构造的overrideLogicalId方法覆盖CDK中的逻辑ID。

通过这种方式,您的表将保持原位,无需迁移。

最新更新