【问题标题】:How to organize cloud formation template?如何组织成云模板?
【发布时间】:2016-10-29 12:46:18
【问题描述】:

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

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

为每个项目维护一个 SG 是最佳做法吗?还是创建一个只管理 SG 的单一云形成模板?

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多