# Приклади структури коду

## &#x20;Структура коду для Terraform

{% hint style="info" %}
Ці приклади - для AWS провайдера, але більшість описаних у них принципів можна застосовувати й до інших хмарних провайдерів, а також інших видів постачальників (DNS, DB, моніторинг тощо).
{% endhint %}

| Type                                                                                                              | Description                                                                                                                                                            | Readiness |
| ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| [маленька](https://www.terraform-best-practices.com/uk/examples/terraform/small-size-infrastructure)              | Мало ресурсів, немає зовнішніх залежностей. Єдиний AWS акаунт. Єдиний регіон. Єдине середовище.                                                                        | Так       |
| [середня](https://www.terraform-best-practices.com/uk/examples/terraform/medium-size-infrastructure)              | Декілька середовищ та AWS акаунтів, готові інфраструктурні модулі з використанням Terraform.                                                                           | Так       |
| [велика](https://www.terraform-best-practices.com/uk/examples/terraform/large-size-infrastructure-with-terraform) | Багато AWS акаунтів, багато регіонів, нагальна потреба скоротити копі-пасти, власні модулі інфраструктури, інтенсивне використання композицій. Використання Terraform. | WIP       |
| [дуже велика](https://github.com/antonbabenko/terraform-best-practices/blob/master/examples/very-large-terraform) | Декілька провайдерів (AWS, GCP, Azure). Багатохмарне розгортання. Використання Terraform.                                                                              | Ні        |

## Структура коду для Terragrunt

| Type        | Description                                                                                                                                                               | Readiness |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| середня     | Декілька акаунтів і середовищ AWS, готові інфраструктурні модулі, шаблони композиції за допомогою Terragrunt.                                                             | Ні        |
| велика      | Багато AWS акаунтів, багато регіонів, нагальна потреба скоротити копі-пасти, кастомні модулі інфраструктури, інтенсивне використання композицій. Використання Terragrunt. | Ні        |
| дуже велика | Декілька постачальників (AWS, GCP, Azure). Багатохмарне розгортання. Використання Terragrunt.                                                                             | Ні        |
