> For the complete documentation index, see [llms.txt](https://www.terraform-best-practices.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.terraform-best-practices.com/uk/examples/terraform/large-size-infrastructure-with-terraform.md).

# Велика структура 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](https://registry.terraform.io/)
* Кожне середовище використовує одинакову версію модулів/мережі внутрішнього модуля, оскільки джерело отримане з локального каталогу.

{% hint style="info" %}
У великому проекті, як описано тут, переваги використання Terragrunt стають дуже помітними. Перегляньте [Code Structures examples with Terragrunt](/uk/examples/terragrunt.md).
{% endhint %}

{% hint style="success" %}

* Ідеально підходить для проектів, де інфраструктура логічно розділена (окремі акаунти AWS)
* Добре, коли немає необхідності змінювати ресурси, спільні між акаунтами AWS (одне середовище = один акаунт AWS = один файл стану)
* Добре, коли немає потреби в оркестровці змін між середовищами
* Добре, коли ресурси інфраструктури відрізняються для кожного середовища спеціально і не можуть бути узагальнені (наприклад, деякі ресурси відсутні в одному середовищі або в деяких регіонах)
  {% endhint %}

{% hint style="warning" %}
Із розвитком проекту буде все важче підтримувати ці середовища в актуальному стані одне з одним. Подумайте про використання інфраструктурних модулів (готових або внутрішніх) для повторюваних завдань.
{% endhint %}

##
