如何组织云形成模板?

时间:2016-06-27 13:19:08

标签: amazon-web-services amazon-cloudformation

组织Cloud Formation模板的最佳做法是什么?

例如,假设我有一个在我的其他项目之间共享的安全组。 (例如,只接受端口80 e 22上的连接的sg)。

最佳做法是为每个项目维护一个SG吗?或者创建一个只管理SG?

的云形成模板

2 个答案:

答案 0 :(得分:4)

是否在项目之间共享安全组是简单和隔离之间的权衡。在项目之间共享一个安全组允许您为每个项目创建较小的模板,并将它们一起管理。每个堆栈有一个允许您更改一个项目的设置而不影响其他项目。

我更喜欢在项目中共享少量安全组。我将它们放在CloudFormation堆栈中,以便在整个帐户中共享资源。它包括以下内容:

  • EC2安全组(我只有一个用于SSH访问,一个用于SSH和HTTP / HTTPS)
  • 具有子网,路由,网关的VPC
  • S3存储桶,因为许多AWS资源需要S3中的资源进行初始化
  • IAM角色和政策
  • 警报的SNS主题
  • CloudTrail配置

此堆栈依赖于其他所有内容并单独维护。当我创建项目模板时,全局堆栈的输出将作为参数传递。

答案 1 :(得分:1)

一个很好的资源是AWS CloudFormation最佳实践[1]指南。

最好按照该页面上的描述创建嵌套堆栈。多个项目使用的安全组应该存在于较低级别的堆栈中,可能与VPC,子网和路由一起存在。项目可以存在于更高级别的堆栈中,这些堆栈基于较低堆栈中描述的资源。为了帮助确定这一点,请考虑每个资源的生命周期 - 资源X是否存在而没有资源Y?如果没有,那么资源X应该可以在较低级别的堆栈中定义。

如果您有多个团队也需要考虑。您的安全/网络团队可能需要访问DevOps团队不需要的资源。

[1] http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html