قوالب الإطلاق وإعداد ASG
أنشئوا قالب إطلاق باستخدام AMI ونوع المثيل وبيانات المستخدم الصحيحة، ثم أرفقوه بمجموعة Auto Scaling Group بسعة دنيا وقصوى ومرغوبة.
قوالب الإطلاق وإعداد ASG درس مجاني في Cloud & IT Cert Prep على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Cloud & IT Cert Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ما قالب التشغيل؟
يُعد قالب التشغيل مخططًا بإصدارات يحدد لـ Auto Scaling Groups (ولـ EC2 مباشرةً) كيفية تشغيل المثيلات. وهو يتضمن معرّف AMI ونوع المثيل وزوج المفاتيح ومجموعات الأمان وبيانات المستخدم الاختيارية في مستند واحد قابل لإعادة الاستخدام. وبخلاف Launch Configuration الأقدم، يدعم قالب التشغيل إصدارات متعددة ويمكن تحديثه دون استبدال ASG.
إنشاء قالب تشغيل عبر CLI
يمكنك إنشاء قالب تشغيل باستخدام AWS CLI من خلال create-launch-template. وتقبل المعلمة --launch-template-data كائن JSON يحدد جميع إعدادات المثيل. يتيح لك تعيين الإصدارات تطوير القالب تدريجيًا دون التأثير في المثيلات قيد التشغيل إلى أن تصبح مستعدًا للنشر.
aws ec2 create-launch-template \
--launch-template-name 'MyAppTemplate' \
--version-description 'v1 initial' \
--launch-template-data '{
"ImageId": "ami-0abcdef1234567890",
"InstanceType": "t3.medium",
"KeyName": "my-key-pair",
"SecurityGroupIds": ["sg-0123456789abcdef0"],
"UserData": "IyEvYmluL2Jhc2gKZWNobyAnSGVsbG8n"
}'إصدارات قالب التشغيل والإصدارات الافتراضية
يبدأ كل قالب تشغيل بـ الإصدار 1. وعند إنشاء إصدار جديد، يمكنك تجاوز الحقول التي تغيرت فقط، بينما تُورث جميع الإعدادات الأخرى من الإصدار المصدر. ويمكنك ضبط ASG لاستخدام إصدار $Latest (الأحدث دائمًا) أو إصدار $Default (المعيّن صراحةً). يتيح استخدام $Default عمليات نشر مضبوطة، بينما يكون $Latest مناسبًا في بيئات التطوير.
# Create a new version based on version 1, changing only instance type
aws ec2 create-launch-template-version \
--launch-template-name 'MyAppTemplate' \
--source-version 1 \
--launch-template-data '{"InstanceType": "t3.large"}'المفاهيم الأساسية لمجموعة Auto Scaling
تحافظ مجموعة Auto Scaling (ASG) على مجموعة من مثيلات EC2 ضمن حدود محددة: الحد الأدنى، والحد الأقصى، والسعة المطلوبة (العدد المستهدف في أي لحظة). عندما تفشل المثيلات في فحوصات الصحة أو تُفعَّل سياسة التوسّع، تُطلق ASG المثيلات أو تنهيها تلقائيًا للحفاظ على العدد المطلوب ضمن الحدين الأدنى والأقصى.
إنشاء ASG مرتبطة بقالب إطلاق
عند إنشاء ASG، فإنك تشير إلى قالب إطلاق (وليس إلى AMI محددة مباشرة). كما تحدد الشبكات الفرعية لـ VPC التي ستُطلق فيها المثيلات. يوفّر التوزيع عبر شبكات فرعية متعددة (واحدة لكل AZ) تكرارًا مضمّنًا عبر مناطق التوافر المتعددة؛ فإذا تعطلت إحدى مناطق التوافر، تُطلق ASG تلقائيًا مثيلات بديلة في مناطق التوافر المتبقية.
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--launch-template 'LaunchTemplateName=MyAppTemplate,Version=$Default' \
--min-size 2 \
--max-size 10 \
--desired-capacity 4 \
--vpc-zone-identifier 'subnet-aaa111,subnet-bbb222,subnet-ccc333'فحوصات صحة ASG: EC2 مقابل ELB
تستخدم ASG افتراضيًا فحوصات صحة EC2، التي لا تعتبر المثيل غير سليم إلا إذا كان متوقفًا أو منتهيًا، أو أبلغ برنامج مراقبة الجهاز الافتراضي عن تعطله. عند إرفاق موازن تحميل، ينبغي التبديل إلى فحوصات صحة ELB لكي تستبدل ASG المثيلات التي تعمل لكنها تُرجع أخطاء HTTP 5xx. هذا سؤال شائع في الاختبارات: اختر دائمًا فحوصات صحة ELB عند وجود موازن تحميل في البنية.
# Enable ELB health checks on an existing ASG
aws autoscaling update-auto-scaling-group \
--auto-scaling-group-name 'MyAppASG' \
--health-check-type ELB \
--health-check-grace-period 300إعدادات السعة: الحد الأدنى والحد الأقصى والمطلوبة
يُعد ضبط حدود السعة الصحيحة أمرًا بالغ الأهمية. يضمن الحد الأدنى قدرة تطبيقك دائمًا على خدمة الطلبات (ولا يسمح بالنزول تحته). ويمنع الحد الأقصى التوسّع المنفلت الذي قد يستنفد حدود الخدمات أو الميزانية. أما السعة المطلوبة فهي الهدف الأولي؛ وتعدّلها سياسات التوسّع ديناميكيًا. إذا ضبطت min=max=desired، فستعمل ASG كمجموعة ثابتة الحجم، وهو أمر مفيد لعمليات النشر باستخدام قالب الإطلاق أو للسعة المثبتة.
إرفاق مجموعة أهداف ALB بـ ASG
بالنسبة إلى تطبيقات طبقة الويب، أرفق ASG بـ مجموعة أهداف Application Load Balancer. يُسجَّل كل مثيل جديد تطلقه ASG تلقائيًا في مجموعة الأهداف، وتُلغى تلقائيًا تسجيلات المثيلات التي جرى إنهاؤها. يضمن ذلك توجيه حركة المرور إلى المثيلات السليمة والتي تعمل فقط. يجب أيضًا ضبط نوع فحص الصحة على ELB لكي تكون ASG على دراية بالأعطال على مستوى موازن التحميل.
aws autoscaling attach-load-balancer-target-groups \
--auto-scaling-group-name 'MyAppASG' \
--target-group-arns 'arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/MyTG/abc123'بيانات المستخدم في قوالب الإطلاق
بيانات المستخدم هي برنامج shell نصي (مُرمَّز باستخدام Base64) يُشغَّل مرة واحدة عند الإقلاع الأول للمثيل. وفي قالب الإطلاق، تُعد المكان المناسب لتثبيت الحزم، وتهيئة الوكلاء (CloudWatch وSSM)، وجلب تعليمات برمجية التطبيق. احرص على أن تكون بيانات المستخدم قابلة للتنفيذ بأمان أكثر من مرة؛ فالبرامج النصية التي يمكن تشغيلها بأمان عدة مرات تمنع حدوث المشكلات أثناء تحديث المثيلات. وبالنسبة إلى الإعدادات المعقدة، استدعِ AWS Systems Manager أو أداة لإدارة التهيئة بدلًا من تضمين برامج نصية كبيرة.
#!/bin/bash
yum update -y
yum install -y amazon-cloudwatch-agent
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
-a fetch-config -m ec2 -c ssm:/MyApp/CWConfig -s
# Start application
cd /opt/myapp && ./start.shمجموعات Warm Pool لتسريع التوسّع
تعمل Warm Pool على تهيئة مجموعة من مثيلات EC2 المتوقفة (أو قيد التشغيل) مسبقًا في حالة جاهزة خارج ASG. وعندما تحتاج ASG إلى التوسّع، تسحب المثيلات من مجموعة Warm Pool بدلًا من إطلاق مثيلات باردة، مما يقلل بدرجة كبيرة الوقت اللازم لإضافة السعة. تتحمل المثيلات في مجموعة Warm Pool تكاليف الحالة المتوقفة (لـ EBS فقط، من دون رسوم وحدة المعالجة المركزية)، لذا يكون ذلك أرخص بكثير من إبقاء مثيلات احتياطية قيد التشغيل بالكامل.
سياسات الإنهاء وموازنة مناطق التوافر
عندما تقلّص ASG النطاق، يجب أن تحدد المثيلات التي ستُنهيها. تختار سياسة الإنهاء الافتراضية أولًا منطقة التوافر التي تضم أكبر عدد من المثيلات (لإعادة التوازن)، ثم أقدم قالب إطلاق، ثم المثيل الأقرب إلى ساعة إصدار الفاتورة. يمكنك تخصيص هذا الترتيب؛ فمثلًا، اختر OldestLaunchTemplate لإزالة المثيلات التي تعمل بإعدادات قديمة أولًا. كما تنفذ ASG إعادة موازنة مناطق التوافر تلقائيًا بعد إتاحة شبكة فرعية أو بعد إجراء تغييرات يدوية.
تحقق سريع
اختبر مدى فهمك لمفاهيم AWS Solutions Architect (SAA-C03) الواردة في هذا الدرس.
مراجعة الدرس
تعلمت في هذا الدرس أن قوالب الإطلاق توفر مخططًا لإعداد المثيل يمكن إعادة استخدامه وإصداره، وتدعم إصدارات متعددة ومؤشري الإصدار $Latest/$Default، وأن حدود سعة ASG (الحد الأدنى/الأقصى/المطلوبة) تتحكم في حجم المجموعة مع توزيع تلقائي عبر مناطق التوافر المتعددة على الشبكات الفرعية، وأنه يجب تفعيل فحوصات صحة ELB عندما تكون ASG خلف موازن تحميل، حتى تؤدي الأعطال على مستوى التطبيق إلى تشغيل الاستبدال. بعد ذلك، سنستكشف سياسات التوسّع، بما في ذلك التتبع المستهدف والتوسّع المرحلي.
الأسئلة الشائعة
هل درس «قوالب الإطلاق وإعداد ASG» مجاني؟
نعم — نص درس «قوالب الإطلاق وإعداد ASG» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Cloud & IT Cert Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Cloud & IT Cert Prep 4 دروس في المجموع.
ماذا ستتعلم في «قوالب الإطلاق وإعداد ASG»؟
أنشئوا قالب إطلاق باستخدام AMI ونوع المثيل وبيانات المستخدم الصحيحة، ثم أرفقوه بمجموعة Auto Scaling Group بسعة دنيا وقصوى ومرغوبة. تتمرن على Cloud & IT Cert Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Cloud & IT Cert Prep؟
لا تُشترط خبرة سابقة. Cloud & IT Cert Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «قوالب الإطلاق وإعداد ASG»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Cloud & IT Cert Prep هذا؟
نعم. كل درس في Cloud & IT Cert Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قوالب الإطلاق وإعداد ASG
- سياسات التوسّع: تتبّع الهدف والتوسّع المرحلي
- التوسّع المجدول والتوسّع التنبؤي
- تحديث المثيلات وخطافات دورة الحياة