Jon*_*fer 5 dns infrastructure amazon-route53 terraform terraform-provider-aws
我使用的公司的大多数AWS基础设施都是使用Terraform描述和管理的。
我们有几种不同的服务,包括容器化后端和CDN前端。
从Route53域和名称空间到ELB,ECS和CloudFront,正在发生很多事情。
当前发生的问题之一是,主要由于Route53 DNS,检查,刷新和验证地形状态需要很长时间。
这是我们要解决的问题:
如何大幅减少刷新/检查tf状态所需的时间?
显然,将其移动到单独的存储库中不是一个好主意,因为这将使所有与Route53相关的变量无法访问或可能已过时。
我来这里是因为我正在研究类似的问题。看起来 TF 在图遍历方面很糟糕,所以你的东西相互关联得越多,它的性能就越差。我有一团有2300资源的毛线团。需要 49 分钟来规划一台具有足够内存和处理器的机器,以并行度 10 运行而不出现峰值。第三个时间用于刷新状态,并且可能无法减少,因为它受到 AWS CLI 调用的约束。但是在状态刷新之前花费的第三个花费和之后的第三个花费似乎主要是图表中的 TF 消耗(基于日志)。
我发现一些讨论似乎表明代码的结构可能会极大地影响规划时间,特别是for_each
(链接#1和#2)的使用。由于我的代码库大量使用了它,我发现这很有趣。YMMV ;)
小智 4
您应该将状态分解为具有合理逻辑区别的组件子状态,例如“前端”、“缓存”或任何对您的公司如何组织和分类基础设施有意义的内容。
在使变量可访问方面,您可以将其他状态声明为数据源并从中提取(假设它们具有您感兴趣的值的有效输出)。
归档时间: |
|
查看次数: |
1288 次 |
最近记录: |