【发布时间】:2018-12-22 12:51:33
【问题描述】:
我工作的公司的大部分 AWS 基础设施都是使用 Terraform 描述和管理的。
我们有多种不同的服务,包括容器化后端和 CDN 化前端。
从 Route53 域和命名空间到 ELB、ECS 和 CloudFront,有很多事情要做。
现在发生的一个问题是,主要是因为 Route53 DNS,检查、刷新和验证 terraform 状态需要很长时间。
这就是我们要解决的问题:
如何大幅减少刷新/检查 tf 状态所需的时间?
将其移至单独的存储库显然不是一个好主意,因为这会使所有与 Route53 相关的变量都无法访问,或者可能已经过时。
【问题讨论】:
-
您的所有 Terraform 配置是否都在一个地方?最佳实践表明,您应该将事物拆分为仅需要同时应用的组,以最小化爆炸半径,在不破坏状态的情况下更容易进行并发更改,并减少 Terraform 刷新和构建依赖关系图。
-
多少资源(在计划的输出中量化为每行 1 个资源)以及计划需要多少时间?示例:我有 250 多个资源,其中 20 多个是 route53 的东西 - 制定计划需要
-
@ydaetskcoR 我们有一个描述整个公司基础设施的存储库。有不同的 .tf 文件可以根据对我们有意义的内容来组织资源。但它们仍然是“一次性”阅读的。
-
@Shorn 我必须将我的数据与您的数据进行比较,感谢您提供。尽管我们拥有的 Route53 资源的数量至少比这多一个数量级。
-
单个 repo 很好,但通常您只会将 .tf 文件放在同一目录中,如果它们需要同时应用。然后,您应该按照 Stackoverflow 上其他 Terraform 项目结构问题中提到的方式拆分您的目录结构
标签: dns terraform amazon-route53 infrastructure terraform-provider-aws