В настоящее время я использую Terraform для развертывания приложения PHP в AWS.
Это приложение PHP развернуто как Сервис с использованием AWS ECS.
У меня есть несколько клиентов, использующих это приложение, и каждый клиент получает свою собственную копию системы со своей собственной конфигурацией как свою собственную службу - если хотите, белую метку.
Теперь, после небольшого исследования Terraform, я сконфигурировал мой код и создал следующую файловую структуру:
+---my-application
| shared.tf
| iam_policies.tf
| iam_roles.tf
| variables.tf
| web-apps.tf
|
+---modules
| \---role
| | main.tf
| | outputs.tf
| | variables.tf
| |
| \---webapp
| main.tf
| variables.tf
|
+---templates
web_definition.tpl.json
Моя проблема заключается в файле web-apps.tf
, который я использую как «клей»."для всех webapp
модулей:
module "client_bob" {
source = "modules/webapp"
...
}
module "client_alice" {
source = "modules/webapp"
...
}
module "client_jane" {
source = "modules/webapp"
...
}
module "client_rob" {
source = "modules/webapp"
...
}
... Over 30 more client module blocks ...
Нет необходимости говорить, что это не очень хорошая настройка.
Он не масштабируется и также создает огромный .tfstate
файлы.
Однажды, когда я пытался использовать Consul в качестве бэкэнда, я получил сообщение об ошибке, в котором говорилось, что я достиг предела размера, разрешенного для значения Consul KV.
Как правильно подойти к этомупроблема?
Какова лучшая практика в этой ситуации?
Я посмотрел на все вопросы в разделе Подобные вопросы , когда писал этот, и все они вращаются.вокруг идеи использования мульфайлы tiple .tfstate
, но я не совсем понимаю, как это решит мою проблему, любая помощь будет принята с благодарностью!