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