一个CloudFormation堆栈还是使用Export&ImportValue分成多个堆栈?

时间:2019-11-03 07:04:57

标签: amazon-cloudformation

我为同一区域内的多可用区RDS创建了一个堆栈。堆栈创建了VPC,子网,IGW,路由表,安全组,EC2,RDS EC2等,目前大约有200多个行。

我不知道Export ParameterFn::ImportValue在哪里可以进行跨栈引用。我还刚刚了解到,如果某个堆栈已经导出了某些参数并且其他堆栈正在引用它,则无法删除该堆栈。

我向CloudFormation专家提出的问题是保留一个堆栈更为实际/专业(因此删除所有资源很容易),还是应该将IAC拆分为多个相互关联的堆栈?

感谢您为我准备给团队的演示准备此模板时所提供的信息,我应该保留原样或将其拆分。

创建了一个堆栈,用于设置基础结构,并一次创建所有资源。

2 个答案:

答案 0 :(得分:0)

可能有许多正确答案,因此,我将尽力帮助您缩小最适合您的答案。

  1. 您可以删除这样的堆栈,但是它会警告您,因为堆栈依赖于将要删除的堆栈中的资源(但我看不出这样做的原因)
  2. 每个堆栈的最大资源数量为200,与此同时数量可能已更改-我们遇到了这个问题,即资源过多,因此我们拆分为嵌套堆栈体系结构
  3. 手动删除资源会使堆栈漂移-这不是一件好事
  4. 应该通过从模板中删除资源并相应地更新堆栈来删除资源-这意味着仅保留一个堆栈更易于维护,但这又取决于您的用例。

我希望这可以帮助您做出决定。如果没有,请分享更多信息。

答案 1 :(得分:0)

谢谢,我已分成两个堆栈,第一个是core-infrastructure,它仅创建Skelton网络,即VPC,IGW,子网,路由。该堆栈将发出带有这些资源的每个导出名称的输出参数。

上面刚刚引用的第二个堆栈rds-resources并创建EC2,RDS,SG。

再次感谢您提供有用的信息。