繁体   English   中英

将 AWS 配置导出为 CloudFormation 模板

[英]Export AWS configuration as CloudFormation template

我正在使用 AWS CLI 和 CloudFormation,但在文档中找不到任何参考。

有人知道是否可以从当前配置创建 CloudFormation 模板。

假设我想从我当前的安全组配置中获取 CloudFormation 模板。

知道是否可以使用 CLI 将该配置导出为模板?

根据我们的经验,我们发现了 3 种可能的方法来将现有的手动部署(从 Web 控制台 UI)AWS 基础架构转换为 Cloudformation (CF)。

  1. 使用新的 CloudFormation 本机引入功能(自 2019 年 11 月起),允许您将现有资源导入 CloudFormation 堆栈

  2. 使用aws cli对构成堆栈的每个元素执行$aws service_name_here describe ,例如RDS 数据库堆栈

  • RDS 实例 -> Type: AWS::RDS::DBInstance
  • RDS (EC2) SG -> Type: AWS::EC2::SecurityGroup ,
  • RDS 子网组 -> Type: AWS::RDS::DBSubnetGroup
  • RDS 数据库参数组 -> Type: AWS::RDS::DBParameterGroup

并根据从每个组件的aws cli获得的输出手动转换为 CF。 这种方法通常需要更多的 AWS 和 CF 经验,但是您创建的模板可以根据良好实践进行结构化和设计,完全参数化( Sub, Ref, Join, Fn::GetAtt:, Fn::ImportValue )、模块化、应用conditions并在第一次迭代中,结果可能接近模板的最终状态(有趣的参考示例: https ://github.com/widdix/aws-cf-templates/)。

加分! :)

  1. 将当前部署的 AWS 基础设施导出到 Cloudformation / Terraform 代码的其他一些新替代方案:

相关文章: https ://medium.com/@exequiel.barrirero/aws-export-configuration-as-code-cloudformation-terraform-b​​1bca8949bca

无法使用 AWS CLI,但您可以使用 CloudFormer [1] 工具从现有资源创建 CloudFormation 模板。 我已经取得了不错的成功。 这些模板不像手工模板那样“漂亮”,但它们提供了一个很好的起点。

[1] http://aws.amazon.com/developertools/6460180344805680

除了 CloudFormer,您可能还想看看 Bellerophon: https ://github.com/arminhammer/bellerophon。

我在让传统工具(上面提到的)在我们的环境中工作时遇到了一些问题; 我们有一个复杂的 API 网关。 前 2 根本没有找到它(尽管对于其他资源来说似乎很理想)

我找到了另一个工具“Terraformer”,它将 AWS 提取到 Terraform,然后可以将其转换为 CloudFormation - 或直接用作 IaC。

https://github.com/GoogleCloudPlatform/terraformer#installation

如果上述工具不起作用,也许这对其他人有用。

CloudFormer目前处于测试阶段。 我们建议不要在关键或生产环境中使用它 - 来自 AWS 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM