تأتيمة اختبار البنية التحتية لـ AWS باستخدام Terratest

تواجه المنظمات التي تعتمد على البنية التحتية ككود (IaC) على AWS غالبًا صعوبة في ضمان أن بنيتها التحتية ليست فقط موفرة بشكل صحيح ولكن أيضًا تعمل كما هو مقصود بمجرد نشرها. حتى التكوينات الخاطئة الطفيفة يمكن أن تؤدي إلى توقف مكلف، أو ثغرات أمنية، أو مشاكل في الأداء.

طرق الاختبار التقليدية – مثل فحص الموارد يدويًا أو الاعتماد فقط على تحليل الكود الثابت – لا توفر الثقة الكافية لبيئات الإنتاج. هناك حاجة ملحة لوجود طريقة موثوقة وآلية للتحقق من تغييرات البنية التحتية لـ AWS قبل أن تصبح حية.

الحل

Terratest يوفر إطار اختبار آلي مكتوب بلغة Go، مصمم خصيصًا لاختبار كود البنية التحتية في بيئات السحاب الحقيقية مثل AWS. من خلال نشر الموارد والتحقق منها وتدميرها برمجيًا، يسد Terratest الفجوة بين كتابة IaC (مثل Terraform) والشحن بثقة بالتغييرات. إليك كيف يعمل:

فيما يلي دليل مفصل حول كيفية تحقيق اختبار البنية التحتية لـ AWS باستخدام Terratest مع Terraform، جنبًا إلى جنب مع مقتطفات كود نموذجية بلغة Go. ستساعدك هذه العملية في توفير موارد AWS، وإجراء اختبارات عليها لضمان عملها كما هو مقصود، ثم تدمير كل شيء تلقائيًا.

المتطلبات الأساسية

تثبيت Terraform

قم بتنزيل وتثبيت Terraform من الموقع الرسمي.

تثبيت Go

تم كتابة Terratest بلغة Go، لذا ستحتاج إلى تثبيت Go. قم بتنزيل Go من الموقع الرسمي.

إعداد بيانات اعتماد AWS

تأكد من تكوين بيانات اعتماد AWS الخاصة بك (مثل ~/.aws/credentials أو متغيرات البيئة مثل AWS_ACCESS_KEY_ID و AWS_SECRET_ACCESS_KEY).

تهيئة وحدة Go

في دليل مشروعك، قم بتشغيل:

Shell

 

إضافة Terratest إلى go.mod

في دليل المشروع/المستودع الخاص بك، قم بتشغيل:

Shell

 

مثال على تكوين Terraform

قم بإنشاء تكوين Terraform بسيط يقوم بتشغيل مثيل AWS EC2. ضع الملفات التالية في دليل باسم aws_ec2_example (أو أي اسم تفضله).

احفظه كـ main.tf للرجوع إليه.

Shell

 

بعد ذلك، variables.tf:

Shell

 

لقطة كود Terratest

قم بإنشاء ملف اختبار Go في دليل باسم test (أو يمكنك تسميته أي شيء، لكن test هو الاسم التقليدي). على سبيل المثال، aws_ec2_test.go:

Shell

 

ماذا يفعل هذا الاختبار

  • يبدأ ويطبق تكوين Terraform في ../aws_ec2_example.
  • ينشر مثيل EC2 مع AMI المحدد في us-east-1.
  • يستخرج مخرجات Terraform ل instance_id.
  • يتحقق من أن معرف المثيل ليس فارغًا باستخدام مكتبة Testify’s assert.
  • يدمر الموارد في نهاية الاختبار لتجنب تكبد التكاليف المستمرة.

تشغيل الاختبارات

  • انتقل إلى الدليل الذي يحتوي على ملف اختبار Go الخاص بك (مثل، دليل الاختبار).
  • قم بتشغيل الأمر التالي:
Shell

 

  • راقب المخرجات:
    • سترى Terraform تبدأ وتطبق بنيتك التحتية على AWS.
    • بعد اجتياز تأكيدات الاختبار، سيقوم Terraform بتدمير الموارد.

الخاتمة

من خلال اتباع هذه الخطوات، يمكنك دمج Terratest في سير عمل AWS IaC الخاص بك لـ:

  • توفير موارد AWS باستخدام Terraform.
  • اختبارها برمجيًا مع اختبارات قائمة على Go.
  • التحقق من أن بنيتك التحتية تم تكوينها بشكل صحيح وتعمل كما هو متوقع.
  • قم بتفكيك تلقائيًا، لضمان عدم تكبدك تكاليف AWS غير الضرورية والحفاظ على بيئة نظيفة لتكرار اختباراتك.

Source:
https://dzone.com/articles/terratest-for-aws