هل أنت متعب من مراقبة حمولة مثيلات AWS الخاصة بك وحركة المرور التي تتلقاها؟ لماذا لا تقوم بتوتيب كل شيء عن طريق نشر Terraform مجموعات التوسع التلقائي؟ يتيح التوسع التلقائي لبعض الخوادم النوم خلال فترات الحمولة المنخفضة وإضافة المزيد من الخوادم خلال فترات الحمولة العالية، مما يوفر على تكاليف الكهرباء للشركات.
في هذا البرنامج التعليمي، ستتعلم كيفية بناء وتشغيل تكوين Terraform لإنشاء مجموعات التوسع التلقائي ونشرها باستخدام Terraform.
اقرأ وحقق عدم توقف على مثيلاتك!
المتطلبات الأولية
سيكون هذا المنشور دورًا تعليميًا خطوة بخطوة. إذا كنت ترغب في متابعة، تأكد من وجود العناصر التالية:
- حساب خدمة الويب أمازون (AWS) Amazon Web Service (AWS).
- A code editor – Even though you can use any text editor to work with Terraform configuration files, consider using Visual Studio (VS) Code as it understands the HCL Terraform language well.
- Terraform – يستخدم هذا البرنامج التعليمي Terraform v1.1.5 الذي يعمل على Ubuntu 20.04 LTS، ولكن يجب أن يعمل أي نظام تشغيل يحتوي على Terraform.
بناء تكوين Terraform لمجموعة التوسع التلقائي لخدمة AWS
قبل تشغيل أوامر Terraform لبناء ونشر البنية التحتية ، يجب عليك إنشاء ملفات تكوين Terraform. ستقوم بإنشاء تكوين Terraform لإنشاء مجموعة AWS للتوازن التلقائي في حساب AWS الخاص بك.
1. قم بتسجيل الدخول إلى جهازك باستخدام برنامج SSH المفضل لديك.
2. بعد ذلك ، قم بإنشاء مجلد بالاسم ~/terraform-autoscaling-demo، ثم قم بتغيير دليل العمل (cd
) إلى هذا المجلد. سيحتوي هذا المجلد على جميع ملفات التكوين التي ستعمل عليها في هذا البرنامج التعليمي.
3. افتح محرر الكود المفضل لديك ، وانسخ / الصق التكوين التالي ، واحفظ الملف بصيغة main.tf في المجلد ~/terraform-autoscaling-demo. هذا الملف main.tf هو تكوين Terraform لمجموعة التوازن التلقائي.
ينشئ الكود أدناه تكوين التشغيل التلقائي (web_config) ويوفر مجموعة التوازن التلقائي (autoscalegroup). تأتي مجموعة التوازن التلقائي أيضًا مع مكوناتها (aws_autoscaling_schedule و aws_autoscaling_policy).
4. أنشئ ملفًا آخر في ~/terraform-autoscaling-demo يسمى provider.tf، واملأ المحتوى أدناه. ملف provider.tf يحدد موفرين مثل AWS و Oracle و Azure، وما إلى ذلك. يتيح لك هذا الملف التكوين الاتصال بـ Terraform مع خدمات السحابة الصحيحة.
سيتم إنشاء الموارد في منطقة us-east-1 في البرنامج التعليمي. ولكن يمكنك العثور على قائمة الـمناطق التي يدعمها AWS.
5. في النهاية، قم بتشغيل الأمر tree
أدناه للتحقق من وجود جميع الملفات المطلوبة في مجلد المشروع (~/terraform-autoscaling-demo
).

إنشاء مجموعة AWS Autoscaling باستخدام تكوين Terraform
الآن بعد أن قمت بتعيين ملف تكوين Terraform وملفات المتغيرات بشكل صحيح، حان الوقت لبدء Terraform وإنشاء مجموعة AWS Autoscaling.
لتوفير مجموعة AWS Autoscaling، مثل جميع تكوينات Terraform الأخرى، يستخدم Terraform ثلاثة أوامر بتتابع (terraform init
, terraform plan
, و terraform apply
).
١. قم بتشغيل أمر terraform init
في الدليل ~/terraform-autoscaling-demo. يقوم الأمر بتهيئة الإضافات والمزودات اللازمة للعمل مع الموارد.
إذا تم كل شيء بنجاح، سترى رسالة تقول أن Terraform تمت تهيئته بنجاح في الإخراج، كما هو موضح أدناه.

٢. في الخطوة التالية، قم بتشغيل أمر terraform plan
للتأكد من صحة بنية ملفات التكوين الخاصة بك والحصول على مخطط للموارد التي سيتم توفيرها في بنيتك التحتية.
إذا نجحت العملية، يجب أن ترى رسالة تظهر المخطط مثل الواحد أدناه.

٣. في النهاية، قم بتشغيل أمر terraform apply
لإزالة العجلات التدريبية واستدعاء Terraform لإنشاء مجموعة AWS AutoScaling.
يخبر الأمر Terraform بقراءة كل تكوين (*.tf) في الدليل الحالي لتجميع حالة ترسل إلى AWS. ثم يقوم Terraform ببناء مجموعة AWS Autoscaling ومكونات أخرى.
لا توجد تكلفة إضافية لتوسيع AWS Auto Scaling. تدفع فقط مقابل الموارد اللازمة لتشغيل تطبيقاتك على AWS.

التحقق من مجموعة AWS Autoscaling في سحابة AWS
الآن، يجب أن تكون قد أنشأت مجموعة AWS Autoscaling والمكونات المتعلقة بها باستخدام Terraform. ولكن كيف تعرف أنها موجودة في سحابة AWS الخاصة بك؟ قم بالتحقق من مجموعة الإندفاع طريقة يدوية من خلال الرجوع إلى لوحة التحكم لإدارة AWS.
١. افتح متصفح الويب المفضل لديك وقم بتسجيل الدخول إلى لوحة تحكم إدارة AWS.
2. في صفحة الواجهة الرئيسية للوحة التحكم، انقر على مربع البحث، وابحث ثم انقر على “EC2” للوصول إلى لوحة تحكم EC2.
انقر على عنصر القائمة “مجموعة التوزيع التلقائي لخدمة AWS” في لوحة تحكم EC2 لإدارة مجموعات التوزيع التلقائي الخاصة بك.
سيتم إطلاق عدد مرغوب من مثيلات AWS EC2 في سحابة AWS في لوحة تحكم EC2 بميزة التوزيع التلقائي كما هو موضح أدناه.

3. أخيرًا، انقر على “تكوين إطلاق التوزيع التلقائي لخدمة AWS” في لوحة تحكم EC2. سترى تكوين إطلاق التوزيع التلقائي الخاص بك (web_config) كما هو موضح أدناه.

توزيع التوسع التلقائي لمثيل EC2 مع اختبار الحمل
الآن بعد التحقق من أن مجموعة التوزيع التلقائي/السياسة والمكونات ذات الصلة قد تم إعدادها بشكل صحيح، حان الوقت لاختبار ما إذا كانت ميزات التوزيع التلقائي تعمل. كيف؟ عن طريق إضافة حمل على المثيل الذي تم إطلاقه مؤخرًا مع مجموعة التوزيع التلقائي.
1. افتح مثيل AWS EC2 الذي تم إطلاقه مع مجموعة التوزيع التلقائي باستخدام عميل SSH.
2. بعد ذلك، قم بتشغيل الطرفية وقم بتشغيل الأمر أدناه لـ تثبيت
أداة توتر الحمل (stress-ng
). تسمح لك أداة التوتر بتعريف وتوليد التوتر على جهاز Ubuntu.
يمكنك أيضًا العثور على أدوات أخرى لتوتير الحمل متاحة في السوق.

3. قم بتشغيل الأمر stress-ng
أدناه لتوليد توتر الحمل على المثيل.
الأمر أدناه يحتوي على العلامات التالية:
--cpu
– تشير إلى عدد النوى التي سيتم توليد الحمل عليها.
-v
– يمكن تمكين وضع التفاصيل.
--timeout
– يحدد الوقت الذي يجب أن يتم فيه توليد الحمل.

4. قم بتشغيل الأمر top
أدناه فور توليد الحمل لعرض عمليات Linux.
أدناه، يمكنك رؤية ارتفاع وحدة المعالجة المركزية بعد توليد الحمل للمثيل.

5. انتقل إلى خدمة AWS CloudWatch على AWS Cloud. ستلاحظ أنه تم توليد إنذار عندما تتجاوز وحدة المعالجة المركزية (10%). الإنذار يخطر مجموعة التحجيم التلقائي بتكبير عدد المثيل من واحد إلى اثنين، كما هو محدد في مجموعة التحجيم التلقائي.

6. في النهاية، انتقل إلى المثيل الخاص بك في لوحة تحكم EC2 للتحقق من مثيلات AWS EC2.
سترى أنه تم إطلاق مثيل إضافي، مما يؤكد نجاح إعداد مجموعة AWS Autoscaling ومكوناتها.

يمكنك أيضًا التحقق من أنشطة التحجيم التلقائي في أنشطة مجموعة AWS AutoScale، كما هو موضح أدناه.

الختام
في هذا البرنامج التعليمي، لقد تعلمت كيفية استخدام Terraform لنشر مجموعة AWS Autoscaling ومكوناتها. بناء تطبيق التحجيم التلقائي باستخدام مجموعة AWS Autoscaling يتيح لك التوسع عند الحاجة وهو مهمة سريعة.
الآن، مع هذا المعرفة الجديدة، قم بتنفيذ التوسيع التلقائي مع خدمات أمازون السحابية الأخرى دون القلق بشأن الحمل على الخوادم!
Source:
https://adamtheautomator.com/terraform-autoscaling-group/