# Середня інфраструктура з Terraform

Джерело: <https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/medium-terraform>

Цей приклад містить код як приклад структурування конфігурацій Terraform для інфраструктури середнього розміру, яка використовує:

* 2 AWS акаунти
* 2 окремих середовища (`prod` та `stage,`які не мають нічого спільного). Кожне середовище живе в окремому акаунті AWS
* Кожне середовище використовує різну версію готового інфраструктурного модуля (alb), отриманого з [Terraform Registry](https://registry.terraform.io/)
* Кожне середовище використовує одинакову версію модулів/мережі внутрішнього модуля, оскільки джерело отримане з локального каталогу

{% 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/medium-size-infrastructure.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.
