您需要了解的有关 AWS CloudFormation 的所有信息

已发表: 2021-12-28

Encap - 博客(续)


AWS CloudFormation是 Amazon 提供的一项专门服务,旨在帮助用户设置和建模 AWS 资源。 它使您能够将更多时间花在重要的事情上,例如专注于管理 AWS 资源并将您的注意力集中在 AWS 内运行的应用程序上。

您可以创建一个模板,为您提供 AWS 中所需资源的描述,例如 Amazon RDS 数据库实例和 Amazon EC2 实例。 CloudFormation 旨在为用户优化配置和预置这些 AWS 资源。 不再需要单独创建或配置这些资源,因为 AWS CloudFormation 完全负责。

在本博客中,我们将尝试了解您需要了解的有关 AWS 配置的所有信息。

AWS CloudFormation 的工作


AWS CloudFormation是一个在堆栈概念上起作用的概念。 它使您可以针对一个单元集体创建和删除 AWS 资源。 用户可以定义与映射、堆栈参数、输出值和资源属性相关的特征。 这是通过一个模板完成的,该模板是一个符合 JSON 的文件。

您可以从头开始编写和创建模板,也可以使用 AWS 预先提供的示例模板之一。 除此之外,用户还可以充分利用 CloudFormation 中的许多 AWS 产品,例如 Amazon EC2、Amazon RDS、Amazon Elastic Beanstalk。

在创建堆栈时,AWS CloudFormation 会对 AWS 进行特定的服务调用。 这有助于配置和预置 AWS 资源。 CloudFormation 仅执行您有权执行的操作。 例如,如果您希望使用 AWS CloudFormation 创建 Amazon EC2,那么您将需要特殊权限。 除此之外,还需要删除堆栈和终止实例。

要管理权限,个人可以使用 AWS Identity and Access Management。 在此之后,AWS CloudFormation 处理的调用由模板声明。 为确保您在 YAML 或 JSON 中创建和修改 CloudFormation 模板,需要使用AWS CloudFormation Designer。 您可以创建帐户并立即开始设计。

此外,您还可以更喜欢其他文本编辑器来执行相同的操作,但 AWS 设计器是获得有效性的合适平台。 CloudFormation 模板详细说明了您希望使用的资源以及与它们关联的设置。 例如,如果您希望创建一个 EC2 实例,那么您的模板将声明相同并相应地描述属性。

创建模板后,将其保存在 S3 存储桶中或本地。 您还必须确保使用 .yaml、.txt 或 .json 等扩展名保存它。 通过在本地计算机上指定 Amazon S3 URL 或模板文件位置来形成 CloudFormation 堆栈。 如果您认为模板包含一些参数,那么您可以提供相同的输入值,然后您可以继续创建堆栈的方向。 这些参数允许您为 CloudFormation 模板输入值,并且您可以在每次希望创建堆栈时自定义资源。

请记住,如果您只是指定或调用本地存储的模板,则 CloudFormation 将自动将其上传到 AWS 账户的 S3 存储桶中。 AWS CloudFormation 旨在为您可以上传模板文件的所有区域创建存储桶。 在账户中启用了 Amazon S3 权限的每个人都可以访问 CloudFormation 中的存储桶。

AWS CloudFormation 概念


无论何时使用 AWS CloudFormation,您都可以使用模板和堆栈。 您可以创建模板来描述 AWS 资源及其属性。 每当您创建堆栈时,CloudFormation 都会预配模板中描述的资源。

1. 模板


AWS CloudFormation 模板是 JSON 或 YAML 格式的文本文件。 使用任何扩展名(例如 .yaml、.template、.txt 或 .json)保存这些文件很容易。 AWS CloudFormation 使用这些模板作为构建 AWS 资源的蓝图。

例如,您可以在模板中将 Amazon EC2 实例描述为实例类型、AMI ID、块储存设备映射和 Amazon EC2 密钥对名称。 每当您创建堆栈时,您还可以提及 CloudFormation 用于创建您在模板中描述的任何内容的模板。

2. 堆栈

当您使用AWS CloudFormation时,您可以将相关资源作为一个称为堆栈的单元进行管理。 只需创建、更新和删除堆栈,就可以轻松创建、更新甚至删除资源集合。 堆栈中存在的所有资源都由堆栈的 CloudFormation 模板定义。

假设您创建了一个包含 Auto Scaling 组、Amazon Relational Database Service 数据库实例和 Elastic Load Balancing 负载均衡器的模板。 对于这些资源的创建,您可以通过提交您创建的模板来创建堆栈,CloudFormation 会为您提供所有这些资源。 您可以使用 CloudFormation 控制台、AWS CLI 和 API 来处理堆栈。

3. 变更集

如果您认为应该更改为堆栈中正在运行的资源,则可以更新堆栈。 在对资源进行任何更改之前,可以生成一个更改集,它基本上是所有建议更改的摘要。 变更集允许您查看变更如何影响正在运行的资源,尤其是在实施关键资源之前。

例如,如果您更改 Amazon RDS 数据库实例的名称,AWS CloudFormation 将创建一个新数据库并删除旧数据库。 除非您已经备份了旧数据库,否则您不能冒险丢失旧数据库中的数据。 如果您形成了一个变更集,您将看到该变更将导致数据库被替换,并且您会觉得您在更新堆栈之前已经进行了相应的计划。

为什么需要 AWS CloudFormation?

要创建支持验收、生产和测试环境的架构,需要 AWS CloudFormation 来帮助执行一些相同的活动。 CloudFormation 为构建此架构而执行的常见活动是启动实例、创建负载均衡器、进行所需的安装、将实例附加到负载均衡器、创建 RDS 和配置 EC2 安全组、创建和配置安全组以及创建自动-缩放组。

用于基础设施自动化的 AWS CloudFormation 模板是一个 JSON 文件,基本上旨在成为一个强大的工具,可以管理所有重要的事情。 它基本上有助于指定资源的必要性,而 CloudFormation 以可预测的切线为您提供资源配置。

可以使用 AWS CloudFormation 的情况

AWS CloudFormation 使用 AWS 管理控制台、AWS 命令​​行界面和 API 帮助部署或升级模板及其资源集合。 它的使用案例不收取额外费用,因为您只需为运行专用应用程序重要的 AWS 资源付费。

因此,可以得出结论,AWS CloudFormation 是基础设施即代码,这实际上意味着它可以用于阅读、重用和审查事物。 下面,我们将看到一些使用 AWS CloudFormation 的情况。 这将有助于获得更好的清晰度。

AWS Cloud Formation 有助于执行以下操作:

1. 简单的基础设施管理

要制作还包含后端数据库的可扩展 Web 应用程序,您最终可能会使用 Auto Scaling 组、Amazon Relational Database Service 数据库实例和 Elastic Load Balancing 负载均衡器。

这些服务单独用于配置资源,在创建资源后,您可以将它们配置为相互协作。 在应用程序启动和运行之前,这些任务增加了复杂性和时间。 您创建一个 AWS CloudFormation 模板并修改现有模板。

模板能够描述所有资源和属性。 当您使用模板创建 CloudFormation 堆栈时,会为您预置自动扩展组、负载均衡器和数据库。 成功创建堆栈后,AWS 资源将启动并运行。 堆栈可以轻松删除,资源也可以删除。 使用 CloudFormation,可以轻松地将资源集合作为一个单元进行管理。

2. 复制你的基础设施

如果应用程序需要更高的可用性,那么这意味着需要将其复制到多个区域。 这是因为当一个区域不可用时,用户可以使用另一个区域的应用程序。

在复制应用程序时,您需要面对一个自然挑战,即您也必须复制资源。 因此,您必须根据应用程序的需求记录所有资源。 但是,除此之外,您还必须配置和供应每个区域中的所有资源。

AWS CloudFormation模板可用于以一致且可重复的方式创建资源。 它允许模板的可重用性,这可以通过一次性描述资源并通过在许多区域提供相同的资源来完成。 通过这种方式,可以轻松地将基础架构复制到多个区域。

3. 控制对基础设施所做的更改

在某些情况下,有时可能需要升级。 这方面的一个例子可能是在自动扩展启动配置中升级高性能实例的需要或冲动。 这样,可以减少组内的实例总数。

手动控制、跟踪更改和进行升级可能是一项复杂的工作,对于所有这些事情,需要记住更改资源的下落。 使用AWS CloudFormation使模板能够描述预置资源并详细说明设置。 跟踪文本文件模板之间的基础架构更改变得很容易。

您还可以轻松地将版本控制系统与模板集成,以了解对基础架构所做的更改。 除此之外,您还可以跟踪进行更改的人员和时间。 如果要反转基础架构中的更改,还可以反转之前的模板版本。 因此,使用AWS CloudFormation可以轻松控制和跟踪基础设施更改

结论

上面提到的详细信息通常与 AWS CloudFormation 相关联。 这些见解侧重于 CloudFormation 的功能以及用户运行应用程序的舒适度。

AWS CloudFormation 可自动执行最佳实践,并在全球范围内扩展基础设施。 最棒的是它使您能够将 CloudFormation 与其他 AWS 服务集成。 您还可以有足够的能力来管理私有和第三方资源。

如果您希望使用 AWS CloudFormation,您必须使用AWS 咨询服务,这些服务可以帮助您了解更多详细信息,了解您将要集成的内容,并利用无缝执行应用程序。 联系以了解更多信息。