【发布时间】:2016-10-29 12:46:18
【问题描述】:
组织 Cloud Formation 模板的最佳做法是什么?
例如,假设我有一个在其他项目之间共享的安全组。 (例如,只接受端口 80 e 22 上的连接的 sg)。
为每个项目维护一个 SG 是最佳做法吗?还是创建一个只管理 SG 的单一云形成模板?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation
组织 Cloud Formation 模板的最佳做法是什么?
例如,假设我有一个在其他项目之间共享的安全组。 (例如,只接受端口 80 e 22 上的连接的 sg)。
为每个项目维护一个 SG 是最佳做法吗?还是创建一个只管理 SG 的单一云形成模板?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation
AWS CloudFormation 最佳实践 [1] 指南是一个很好的资源。
最好按照该页面上的说明创建嵌套堆栈。由多个项目使用的安全组应该与 VPC、子网和路由一起存在于较低级别的堆栈中。项目可以存在于更高级别的堆栈中,这些堆栈建立在较低堆栈中描述的资源之上。为了帮助确定这一点,请考虑每个资源的生命周期——资源 X 是否可以在没有资源 Y 的情况下存在?如果不是,那么资源 X 可能应该定义在较低级别的堆栈中。
如果您有多个团队,这也是一个考虑因素。您的安全/网络团队可能需要访问 DevOps 团队不需要的资源。
[1]http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html
【讨论】:
项目之间是否共享安全组是简单和隔离之间的权衡。在项目之间共享一个安全组允许您为每个项目拥有更小的模板,并一起管理它们。每个堆栈有一个允许您更改一个项目的设置而不会影响其他项目。
我更喜欢跨项目共享少量安全组。我将它们放在 CloudFormation 堆栈中,用于跨帐户共享的资源。它包括以下内容:
此堆栈依赖于其他所有内容并单独维护。当我创建项目模板时,全局堆栈的输出作为参数传入。
【讨论】: