# Велика структура 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 %}

##


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.terraform-best-practices.com/uk/examples/terraform/large-size-infrastructure-with-terraform.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
