【问题标题】:AWS-CDK: Single stack vs. Multiple stacks?AWS-CDK:单堆栈与多堆栈?
【发布时间】:2021-02-18 15:00:33
【问题描述】:

我一直在 aws-cdk 上看到不同的实现,我想知道是否有首选约定。

  1. 单栈。如果所有资源都是相关的(即 Lambda 和 IAM 角色应该在同一个堆栈中,而不是在不同的堆栈中),这是有道理的。但是,这有 200 个资源限制的问题,一旦您开始为每个表创建警报等等,这可能会成为问题。

  2. 多个堆栈。这是有道理的,因为它很好且简单地划分了应用程序(即所有 DDB 在一个堆栈中,所有 IAM 角色在另一个堆栈中)。但是,当堆栈之间存在依赖关系时,ChangeSets 版本遇到了很多问题(我的 Lambda 堆栈依赖于我的 IAM 堆栈,但 Lambda 堆栈使用了 IAM 中的旧 ChangeSet,所以现在我无法更新我的东西)。由于这个问题一直存在,我最终采用了单堆栈方法。

我想知道对此的看法;我本来希望在这里找到一条经验法则,但到目前为止我还没有遇到过。

谢谢!

【问题讨论】:

  • 您使用的是嵌套堆栈还是只是一个全新的堆栈?
  • 现在我只使用一个包含我需要的所有东西的大堆栈。但是考虑到可扩展性,这将是 200 资源限制的问题......
  • fwiw,资源限制最近从200增加到500。aws.amazon.com/about-aws/whats-new/2020/10/…

标签: aws-cdk


【解决方案1】:

CloudFormation 堆栈旨在自动更新。也就是说,堆栈的所有更新都成功完成,或者所有更新都回滚。在将基础架构组件分组到堆栈时,我使用以下检查列表作为经验法则:

  • 如果堆栈更新失败,是否要回滚所有资源
  • 是否有可能在另一个堆栈中使用此堆栈中的一些资源
  • 是我要添加的功能相关的资源,例如指相同的业务能力

如果以上任何一项的答案是肯定的,我倾向于将资源提取到单独的堆栈中。

【讨论】:

    猜你喜欢
    • 2014-06-23
    • 2022-01-03
    • 2020-08-12
    • 2021-03-31
    • 2022-11-04
    • 2011-05-04
    • 1970-01-01
    • 2021-09-06
    • 2020-12-19
    相关资源
    最近更新 更多