Links

Велика структура Terraform

Цей приклад містить код як приклад структурування конфігурацій Terraform для інфраструктури великого розміру, яка використовує:
  • 2 AWS акаунти
  • 2 регіона
  • 2 окремих середовища (prod та stage, у яких немає нічого спільного). Кожне середовище живе в окремому акаунті AWS і охоплює ресурси між 2 регіонами
  • Кожне середовище використовує різну версію готового інфраструктурного модуля (alb), отриманого з Terraform Registry
  • Кожне середовище використовує одинакову версію модулів/мережі внутрішнього модуля, оскільки джерело отримане з локального каталогу.
У великому проекті, як описано тут, переваги використання Terragrunt стають дуже помітними. Перегляньте Code Structures examples with Terragrunt.
  • Ідеально підходить для проектів, де інфраструктура логічно розділена (окремі акаунти AWS)
  • Добре, коли немає необхідності змінювати ресурси, спільні між акаунтами AWS (одне середовище = один акаунт AWS = один файл стану)
  • Добре, коли немає потреби в оркестровці змін між середовищами
  • Добре, коли ресурси інфраструктури відрізняються для кожного середовища спеціально і не можуть бути узагальнені (наприклад, деякі ресурси відсутні в одному середовищі або в деяких регіонах)
Із розвитком проекту буде все важче підтримувати ці середовища в актуальному стані одне з одним. Подумайте про використання інфраструктурних модулів (готових або внутрішніх) для повторюваних завдань.