AWS CloudFormation - AWS 上的 DevOps 简介

AWS CloudFormation

AWS CloudFormation 是一项服务,使开发人员能够以有序且可预测的方式创建 AWS 资源。资源是使用 JavaScript 对象表示法(JSON)或 Yet Another Markup Language(YAML)格式在文本文件中编写的。模板需要特定的语法和结构,具体取决于要创建和管理的资源类型。您可以使用任何代码编辑器(如 AWS Cloud9)在 JSON 或 YAML 中创作资源,将其签入版本控制系统,然后 CloudFormation 会以安全、可重复的方式构建指定的服务。

CloudFormation 模板作为堆栈部署到 AWS 环境中。您可以通过 AWS 管理控制台、AWS 命令行界面或 AWS CloudFormation API 管理堆栈。如果您需要更改堆栈中运行的资源,则可更新堆栈。在更改资源之前,您可以生成一个更改集,这是建议进行的更改的摘要。利用更改集,您可以在实施更改之前,了解更改可能会对运行的资源(特别是关键资源)造成的影响。


        图 1

图 1 – AWS CloudFormation 通过一个模板工作流创建整个环境(堆栈)

您可以使用单个模板创建和更新整个环境,也可以使用单独的模板来管理环境中的多个层。这使模板可以模块化,并且还提供了对许多组织都很重要的治理层。

当您在控制台中创建或更新堆栈时,将会出现显示配置状态的事件。如果发生错误,默认情况下,堆栈将回滚到之前的状态。Amazon Simple Notification Service(Amazon SNS)提供事件通知。例如,您可以使用 Amazon SNS 通过电子邮件跟踪堆栈的创建和删除进度,以及以编程方式和其他流程集成。

AWS CloudFormation 使组织和部署 AWS 资源集变得更为轻松,并让您能够描述任何依赖关系或配置堆栈时传入的特殊参数。

借助 CloudFormation 模板,您可以使用各种各样的 AWS 服务,例如 Amazon S3、Auto Scaling、Amazon CloudFront、Amazon DynamoDB、Amazon EC2、Amazon ElastiCache、AWS Elastic Beanstalk、Elastic Load Balancing、IAM、AWS OpsWorks 和 Amazon VPC。有关受支持资源的最新列表,请参阅 AWS 资源和属性类型参考