首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云形成模板设计

云形成模板设计
EN

Stack Overflow用户
提问于 2019-03-11 15:12:02
回答 2查看 67关注 0票数 3

在决定编写一个大CF模板或嵌套许多较小的模板时,人们会考虑哪些因素?我想到的用例是基于RDS的,在这里,我需要定义RDS实例、VPC安全组、参数组和选项组,以及执行一些定制的lambda资源。

我的直觉是,这应该是分开,也许按资源类型,但我想知道是否有普遍接受的做法在这方面。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-11 16:33:18

我目前的经验法则是通过部署单元来分割资源--一起部署什么,一起部署什么。

我希望拥有最小的可部署堆栈,因为如果存在问题,部署或失败都是快速的。我不虔诚地遵守这条规则。例如,我经常将Lambda分组(甚至是不相关的,取决于项目的大小),因为它们只在代码/config更改时更新,而且我倾向于在只有一个Lambda更改的地方推动小的更新。

我还经常在其他堆栈中使用一堆共享资源(Fn::Import-ed),比如KMS键、共享S3桶等等。

请注意,我为每个堆栈设置了一个CD进程,这就是规则。

票数 2
EN

Stack Overflow用户

发布于 2019-03-12 11:04:46

我目前的设置需要部署一个VPC (带有端点)、RDS和应用程序(API网关、Lambdas)。我已经把它们分解成

  • VPC堆栈:具有公共和私有子网、VPC端点、S3桶、NAT网关、ACL、安全组的共享资源。
  • RDS堆栈:我可以在一个VPC中有多个RDS集群,因此保持它的分离是有意义的。而且,这是在VPC之后创建的,因为它需要VPC资源,例如私有子网、安全组。此群集由多个应用程序堆栈共享。
  • 应用程序栈:这个部署API网关& Lambdas (基本上是一个无服务器的应用程序),上面的RDS集群作为DB。

因此,总的来说,我基本上遵循了“米兰·塞马克”的描述。但在我的示例中,这些部署是在需要时完成的(而不是CD的一部分),因此导出的参数存储在AWS Systems Manager的参数存储中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55104957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档