如何在 AWS 上部署基础设施即代码

问题描述

一个关于 AWS 上的基础设施即代码的问题。

想知道如何做到这一点(部署过程)以及为什么这是一种有效的架构方法?另外,是否还有其他方法需要考虑?

我希望为我正在工作的初创公司部署它,并需要帮助来实现这一目标。任何帮助表示赞赏。

谢谢。

解决方法

来自What is AWS CloudFormation?

AWS CloudFormation 是一项服务,可帮助您对 Am​​azon Web Services 资源进行建模和设置,以便您可以减少管理这些资源的时间,将更多时间专注于在 AWS 中运行的应用程序。您创建一个模板来描述您需要的所有 AWS 资源(例如 Amazon EC2 实例或 Amazon RDS 数据库实例),AWS CloudFormation 负责预置和配置这些资源为你。您不需要单独创建和配置 AWS 资源并弄清楚什么依赖什么; AWS CloudFormation 处理所有这些。

因此,无需手动创建架构的每一部分(网络、实例、队列、存储等),您可以在模板中定义它们,CloudFormation 将部署它们。它非常聪明,可以知道正确的创建顺序(例如,在在网络内创建 Amazon EC2 实例之前创建网络),并且还可以在不再需要“堆栈”时删除资源。

其他好处:

  • 模板有效地记录基础设施
  • 可以将基础架构签入源代码存储库,并对其进行版本控制
  • 基础设施可以重复且一致地部署(例如测试环境与生产环境匹配)
  • 可以对模板进行更改,CloudFormation 只需部署更改即可更新“堆栈”

有些工具(例如 https://former2.com/)可以从现有基础架构生成模板,或者仅从文档中提取的代码片段中创建模板。

概述如下:Simplify Your Infrastructure Management Using AWS CloudFormation - YouTube

还有像 Terraform 这样的工具可以跨多个云服务进行部署。