# البنى المتوسطة باستعمال Terraform

المصدر:  <https://github.com/antonbabenko/terraform-best-practices/tree/master/examples/medium-terraform>

يحتوي هذا المثال على كود لهيكلة كود Terraform لبنية تحتية متوسطة والتي تستعمل:

* حسابين AWS
* بيئتين مختلفتين (`prod` and `stage` لا وجود لشيء مشترك بينهما). كل بيئة موجودة في حساب AWS مختلف
* كل بيئة تستعمل إصدارات مختلفة للوحدات الجاهزة (alb) مصدرها  [Terraform Registry](https://registry.terraform.io/)
* كل بيئة تستعمل الإصدار نفسه للوحدات الداخلية `modules/network` مصدره المجلد المحلي

{% hint style="success" %}

* ممتاز للمشاريع التي تحتاج إلى فصل منطقي لبيئاتها (باستعمال حسابات AWS مختلفة)
* جيد عندما لا يوجد حاجة لتعديل الموارد المشتركة بين حسابات AWS المختلفة (بيئة واحدة = حساب AWS واحد = ملف حالة وحيد)
* جيد عندما لا يوجد حاجة لتنسيق التعديلات بين البيئات المختلفة&#x20;
* جيد عند الاختلاف المتعمد للموارد بين البيئات والذي لا يمكن تعريف حالة عامة له (كوجود بعض الموارد في بيئة وغيابها في بيئة أخرى)&#x20;
  {% endhint %}

{% hint style="warning" %}
&#x20;مع نمو المشروع ، سيكون من الصعب الحفاظ على تحديث هذه البيئات مع بعضها البعض. خذ بعين الاعتبار استخدام وحدات البنية التحتية (الجاهزة أو الداخلية) للمهام المتكررة.
{% endhint %}

##
