

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS CloudFormation
<a name="aws-cloudformation"></a>

 [AWS CloudFormation](https://aws.amazon.com/cloudformation/)是一项服务，使客户能够使用以 YAML 或 JSON 表示的自定义模板语言预置和管理几乎所有 AWS 资源。 CloudFormation 模板在称为*堆栈*的组中创建基础架构资源，并允许您定义和自定义运行应用程序所需的所有组件，同时保留对这些资源的完全控制。使用模板可以对基础架构实施版本控制，并能够快速可靠地复制基础架构。

 CloudFormation 提供对所有应用程序基础架构组件的配置和管理的精细控制，从路由表或子网配置等低级组件到高级组件（例如 CloudFront分发）。 CloudFormation 通常与其他 AWS 部署服务或第三方工具一起使用， CloudFormation 与更专业的部署服务结合使用，以管理应用程序代码在基础设施组件上的部署。

 除了基本功能外，AWS 还提供该 CloudFormation 服务的扩展：
+  [AWS Cloud Development Kit (AWS CDK)](https://aws.amazon.com/cdk/)是一个开源软件开发套件 (SDK)，用于使用、、Python TypeScript JavaScript、Java 或 C\$1/.NET 以编程方式建模 AWS 基础设施。
+  [AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/)(AWS SAM) 是一个开源框架，用于简化在 AWS 上构建无服务器应用程序。它提供了用于表达函数 APIs、数据库和事件源映射的速记语法。

*表 1： AWS CloudFormation 部署功能*


|  能力  |  说明  | 
| --- | --- | 
|  供应  |   CloudFormation 将自动创建和更新在模板中定义的基础架构组件。  有关使用 CloudFormation 模板创建基础架构的更多详细信息，请参阅[AWS CloudFormation 最佳实践](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html)。  | 
|  配置  |   CloudFormation 模板为自定义和更新所有基础架构组件提供了极大的灵活性。  有关自定义[CloudFormation 模板的更多详细信息，请参阅模板剖析](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)。  | 
|  部署  |   更新您的 CloudFormation 模板以更改堆栈中的资源。根据您的应用程序架构，您可能需要额外的部署服务来更新基础架构上运行的应用程序版本。  [有关如何 CloudFormation 用作部署解决方案 EC2 AWS CloudFormation的更多详细信息，请参阅在 Amazon 上部署应用程序](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html)。  | 
|  比例尺  |  CloudFormation 不会自动代表您处理基础设施扩展；但是，您可以在 CloudFormation 模板中为资源配置 auto Scaling 策略。 | 
|  监控  |   CloudFormation 提供对模板中定义的基础架构更新成功或失败的本机监控，以及用于监控模板中定义的资源何时不符合规范的*偏差检测*。需要为应用程序级别的监控和指标制定其他监控解决方案。  有关如何[监控基础架构更新的更多详细信息，请参阅 CloudFormation 监控堆栈更新进度](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-monitor-stack.html)。  | 

 下图显示了的常见用例 CloudFormation。在这里，创建的 CloudFormation 模板用于定义创建简单的三层 Web 应用程序所需的所有基础架构组件。在此示例中，我们使用中定义的引导脚本将最新版本的应用程序部署 CloudFormation 到 Amazon EC2 实例上；但是，将其他部署服务与 CloudFormation （ CloudFormation 仅用于其基础设施管理和配置功能）结合使用也是一种常见的做法。请注意，使用多个 CloudFormation 模板来创建基础架构。在图中， CloudFormation 用于创建所有基础设施组件，包括 IAM 角色、子网 VPCs、路由表、安全组和 Amazon S3 存储桶策略。使用单独的 CloudFormation 模板来构建应用程序架构的每个域。

![\[AWS CloudFormation 用例\]](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/overview-deployment-options/images/image2.png)


*AWS CloudFormation 用例*