从现有 RDS 数据库实例 (Aurora PostgreSQL) 创建 CloudFormation Yaml

Posted

技术标签:

【中文标题】从现有 RDS 数据库实例 (Aurora PostgreSQL) 创建 CloudFormation Yaml【英文标题】:Create CloudFormation Yaml from existing RDS DB instance (Aurora PostgreSQL) 【发布时间】:2020-09-24 03:07:44 【问题描述】:

我的 AWS 账户中有一个 RDS 数据库实例 (Aurora PostgreSQL) 设置。这是使用 AWS 控制台手动创建的。我现在想为该数据库创建 CloudFormation 模板 Yaml,如果需要,我可以在以后使用它来创建数据库。这也将帮助我在另一个环境中复制数据库。我也会将其用作我的基础架构自动化的一部分。

【问题讨论】:

【参考方案1】:

很遗憾,AWS没有提供此类功能

但是,您的意思是听到人们可能错误地推荐的两个选项。

CloudFormer

CloudFormer 是一个模板创建 测试版工具,可从您账户中的现有 AWS 资源创建 AWS CloudFormation 模板。您选择在您的账户中运行的任何受支持的 AWS 资源,CloudFormer 会在 Amazon S3 存储桶中创建一个模板。

虽然听起来不错,但该工具不再维护而且不可靠(多年处于测试阶段)。

Importing Existing Resources Into a Stack

通常人们错误地认为这会从现有资源为您“生成 yaml”。事实上,它不会为您生成模板文件。您必须编写与您的资源完全匹配的自己的模板,然后才能将任何受控制的资源导入 CloudFormation 堆栈。

您唯一的选择是手动为 RDS 编写模板并将其导入,或者寻找可以从现有资源逆向工程 yaml 模板的外部工具。

【讨论】:

感谢您的回复。事实上,这就是我所看到的:docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…,是的,它需要模板。从Creating a Stack From Existing Resources 的描述中,感觉它会满足我的需要,但正如您所确认的那样,它不会。但这似乎是一个有用的功能,我想我应该已经在那里了。 @Learner 很有用,但不会为你生成任何模板文件。您必须自己为 RDS 准备模板,然后将其导入。模板中的所有属性必须与现有 RDS 的属性匹配。【参考方案2】:

您可以使用former2 生成现有基础架构的 CloudFormation 模板(json 和 yaml)。免费使用。 https://github.com/iann0036/former2

【讨论】:

以上是关于从现有 RDS 数据库实例 (Aurora PostgreSQL) 创建 CloudFormation Yaml的主要内容,如果未能解决你的问题,请参考以下文章

Aurora RDS 实例无法停止

AWS Aurora RDS 中的集群和实例有啥区别

[AWS][数据库]Aurora 动手实验&对比RDS Mysql性能

Spring Data JPA:如何对 RDS Aurora PostgreSQL 实例之间的读取查询进行负载平衡?

Amazon Aurora 1.8 从 S3 加载数据 - 无法实例化 S3 客户端

Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?