amazon-web-services - Terraform - 一种集中状态或多种模块化状态

标签 amazon-web-services stack terraform

我已经为我们用来在 AWS 中构建虚拟数据中心的所有必需资源创建了一个 terraform 堆栈。 VPC、子网、安全组等

这一切都很好:)。我一直在与网络工程师争论,他们希望拥有一个完全独立的网络状态等。因此,我们必须管理多个状态文件,并且需要 10 到 15 个 terraform plan/apply 命令来启动数据中心.不仅我们必须多次运行命令,我们不能在创建 ec2 实例时引用模块输出变量等,所以现在变量文件中出现了“魔术”变量。我想将创建 ec2 实例、els 等的脚本放在与“数据中心”配置相同的目录中,以便我们管理一个状态文件(在 s3 中使用 dynamodb 锁加密)并且我们的 git 存储库具有一对一的关系与我们的基础设施的关系。还有一个额外的好处是,单个 terraform 计划/应用将在单个命令中构建整个数据中心。

问题是,在单个状态文件中管理数据中心资源(vpc、子网、安全组)和计算资源是否是个好主意?有没有我可能会遇到的问题?有没有人以这种方式使用 terraform 管理 AWS 环境的经验?

问候,
大卫

最佳答案

Terraform provider 开始让您从其他状态文件访问输出变量,这样您就不必使用魔法变量。其余的只是你的风格问题。您是否经常启动整个数据中心基础设施?如果是这样,您可以考虑在一个项目中进行。另一方面,如果您只更改某些内容,您可能希望依靠其他项目的输出使其更加模块化。将它们分开可以更快地进行刨削并避免非常昂贵的terraform destroy错误。

关于amazon-web-services - Terraform - 一种集中状态或多种模块化状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46330036/

相关文章:

loops - 如何使用 Terraform 将多个服务器添加到 Hetzner Cloud 中的 LoadBalancer?

django - 在 Amazon Elastic Beanstalk 上使用 SQS 的 Celery 在消息等待时经常长时间暂停

ruby-on-rails - Rails 回形针和亚马逊 S3 'PermanentRedirect'

.net - Powershell/.Net : Get a reference to an object returned by a method

java - 在 Java 中将二维整数数组压入堆栈

kubernetes - 在 EKS 上使用 Istio Operator 和 Terraform 安装 Istio

amazon-web-services - 配置 vscode 以使用 AWS 配置文件运行测试

amazon-web-services - CI/CD 管道的 IAM 权限

recursion - 不安全的 Rust 中的堆栈引用,但确保不安全不会从堆栈中泄漏?

terraform - 将 CloudFormation 移植到 Terraform : S3 bucket NotificationConfiguration