Велика структура Terraform
Джерело: https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/large-terraform
Цей приклад містить код як приклад структурування конфігурацій Terraform для інфраструктури великого розміру, яка використовує:
2 AWS акаунти
2 регіона
2 окремих середовища (
prod
таstage, у яких немає нічого спільного
). Кожне середовище живе в окремому акаунті AWS і охоплює ресурси між 2 регіонамиКожне середовище використовує різну версію готового інфраструктурного модуля (alb), отриманого з Terraform Registry
Кожне середовище використовує одинакову версію модулів/мережі внутрішнього модуля, оскільки джерело отримане з локального каталогу.
У великому проекті, як описано тут, переваги використання Terragrunt стають дуже помітними. Перегляньте Code Structures examples with Terragrunt.
Ідеально підходить для проектів, де інфраструктура логічно розділена (окремі акаунти AWS)
Добре, коли немає необхідності змінювати ресурси, спільні між акаунтами AWS (одне середовище = один акаунт AWS = один файл стану)
Добре, коли немає потреби в оркестровці змін між середовищами
Добре, коли ресурси інфраструктури відрізняються для кожного середовища спеціально і не можуть бути узагальнені (наприклад, деякі ресурси відсутні в одному середовищі або в деяких регіонах)
Із розвитком проекту буде все важче підтримувати ці середовища в актуальному стані одне з одним. Подумайте про використання інфраструктурних модулів (готових або внутрішніх) для повторюваних завдань.
Last updated