انتقل إلى المحتوى الرئيسي

AMI - صور الآلات من أمازون

ما هي AMI؟​

AMI (صورة آلة أمازون) هي نموذج يحتوي على التكوين البرمجي اللازم لتشغيل مثيل EC2. إنها مثل "لقطة" أو "صورة قرص" لنظام كامل.

┌─────────────────────────────────────────────────────────────┐
│ AMI │
├─────────────────────────────────────────────────────────────┤
│ │
│ "AMI = الحمض النووي لمثيلك" │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ AMI │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ نظام التشغيل │ │ │
│ │ │ (Linux, Windows, etc.) │ │ │
│ │ └──────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ تكوين النظام │ │ │
│ │ │ (المستخدمون، الأذونات، إلخ.) │ │ │
│ │ └──────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ البرامج المثبتة مسبقًا (اختياري) │ │ │
│ │ │ (Apache, MySQL, Docker, etc.) │ │ │
│ │ └──────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ تكوين التخزين │ │ │
│ │ │ (حجم القرص، نوع EBS) │ │ │
│ │ └──────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ AMI ─────► مثيل 1 │
│ └───► مثيل 2 (جميعها متطابقة في البداية) │
│ └───► مثيل 3 │
│ │
└─────────────────────────────────────────────────────────────┘

تشبيه بسيط​

┌─────────────────────────────────────────────────────────────┐
│ تشبيه : AMI = قالب كعكة │
├─────────────────────────────────────────────────────────────┤
│ │
│ 🧁 مخبز 💻 AWS │
│ ───────────── ───── │
│ │
│ قالب كعكة = AMI │
│ (الشكل، الحجم) (OS، التكوين) │
│ │
│ الكعكات المنتجة = مثيلات EC2 │
│ (جميعها متشابهة) (جميعها متطابقة) │
│ │
│ التزيين بعد الخبز = التكوين بعد الإطلاق │
│ │
│ قالب واحد → عدة = AMI واحدة → عدة │
│ كعكات متطابقة مثيلات متطابقة │
│ │
└─────────────────────────────────────────────────────────────┘

أنواع AMI​

1. AMI العامة من AWS​

AMI الرسمية المقدمة من أمازون، مجانية (تدفع فقط للمثيل).

┌─────────────────────────────────────────────────────────────┐
│ AMI العامة من AWS │
├─────────────────────────────────────────────────────────────┤
│ │
│ Amazon Linux 2023 │
│ ├── محسنة لـ AWS │
│ ├── خفيفة وعالية الأداء │
│ ├── تحديثات تلقائية │
│ └── دعم مجاني عبر المنتديات │
│ │
│ Amazon Linux 2 (LTS) │
│ ├── دعم حتى 2025 │
│ ├── مستقرة جدًا │
│ └── موثقة بشكل واسع │
│ │
│ Ubuntu Server │
│ ├── 20.04 LTS، 22.04 LTS، 24.04 LTS │
│ ├── شائعة، مجتمع كبير │
│ └── جيدة للمطورين │
│ │
│ Red Hat Enterprise Linux (RHEL) │
│ ├── دعم الشركات │
│ └── مدفوعة (الرخصة مشمولة في السعر) │
│ │
│ Windows Server │
│ ├── 2019، 2022 │
│ └── رخصة Windows مشمولة (أغلى) │
│ │
└─────────────────────────────────────────────────────────────┘

2. AMI سوق AWS​

AMI مع برامج مثبتة مسبقًا، غالبًا مدفوعة (رخصة).

أمثلة :
• WordPress مهيأ مسبقًا
• خادم LAMP كامل
• Jenkins CI/CD
• Splunk
• Palo Alto Firewall
• وآلاف أخرى...

💰 التكلفة = سعر المثيل + سعر رخصة البرنامج

3. AMI المجتمعية​

AMI التي تم إنشاؤها ومشاركتها من قبل مستخدمين آخرين لـ AWS.

⚠️ انتباه :
• جودة متغيرة
• أمان غير مضمون
• قد تحتوي على برامج ضارة
• استخدم بحذر!

✅ فضلًا AMI من مصادر معروفة

4. AMI المخصصة (الخاصة)​

AMI التي تقوم بإنشائها بنفسك من مثيل مهيأ.

┌─────────────────────────────────────────────────────────────┐
│ إنشاء AMI مخصصة │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. تشغيل مثيل مع AMI أساسية │
│ └── Amazon Linux 2023 │
│ │
│ 2. تكوين المثيل │
│ └── تثبيت Apache، PHP، MySQL │
│ └── تكوين الملفات │
│ └── إضافة تطبيقاتك │
│ │
│ 3. إنشاء AMI من المثيل │
│ └── Actions → Image → Create Image │
│ │
│ 4. استخدام AMI الخاصة بك لمثيلات جديدة │
│ └── جميع المثيلات ستكون مهيأة مسبقًا! │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ مثيل │ → │ AMI │ → │مثيلات │ │
│ │مهيأ │ │شخصية │ │متطابقة │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

مكونات AMI​

الهيكل الداخلي​

AMI
├── قالب الجذر
│ └── لقطة EBS لحجم الجذر
│ └── نظام التشغيل
│ └── التطبيقات المثبتة
│
├── أذونات الإطلاق
│ └── عامة (الجميع)
│ └── خاصة (حسابك)
│ └── مشتركة (حسابات محددة)
│
├── تعيين جهاز الكتلة
│ └── أي أحجام EBS يتم إرفاقها
│ └── أحجام وأنواع الأحجام
│ └── حذف عند الإنهاء؟
│
└── البيانات الوصفية
└── الهندسة المعمارية (x86_64، arm64)
└── الافتراضية (hvm، pv)
└── الاسم، الوصف

معرف AMI​

الصيغة : ami-0123456789abcdef0

أمثلة :
• ami-0c55b159cbfafe1f0 (Amazon Linux 2 us-east-1)
• ami-0747bdcabd34c712a (Ubuntu 22.04 us-east-1)

⚠️ مهم : المعرفات تختلف حسب المنطقة!
نفس AMI "Amazon Linux 2" لها معرف مختلف
في us-east-1 و eu-west-1

مقارنة AMI لينكس الشائعة​

AMIحالة الاستخدامالمزاياالعيوب
Amazon Linux 2023إنتاج AWSمحسنة لـ AWS، مجانيةمحددة لـ AWS
Amazon Linux 2قديمة، مستقرةمستقرة جدًانهاية الدعم 2025
Ubuntu 22.04 LTSتطويرشائعة، وثائقأثقل قليلاً
Debianخوادممستقرة جدًادعم AWS أقل
RHELشركاتدعم رسميمدفوعة
CentOS Streamتطوير RHELمجانيةأقل استقرارًا من RHEL

AMI والمناطق​

┌─────────────────────────────────────────────────────────────┐
│ AMI والمناطق │
├─────────────────────────────────────────────────────────────┤
│ │
│ AMI إقليمية! │
│ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ us-east-1 │ │ eu-west-1 │ │
│ │ │ │ │ │
│ │ ami-abc123... │ ≠ │ ami-xyz789... │ │
│ │ (Amazon Linux 2) │ │ (Amazon Linux 2) │ │
│ │ │ │ │ │
│ └──────────────────┘ └──────────────────┘ │
│ │
│ نفس نظام التشغيل، لكن معرف مختلف! │
│ │
│ لاستخدام AMI في منطقة أخرى: │
│ → نسخ AMI (Actions → Copy AMI) │
│ │
│ AMI شخصية AMI منسوخة │
│ us-east-1 ─────────────────► eu-west-1 │
│ ami-abc123 ami-def456 │
│ │
└─────────────────────────────────────────────────────────────┘

إنشاء AMI (العملية)​

من مثيل موجود​

┌─────────────────────────────────────────────────────────────┐
│ إنشاء AMI - الخطوات │
├─────────────────────────────────────────────────────────────┤
│ │
│ التحضير │
│ 1. إيقاف المثيل (موصى به للتناسق) │
│ 2. أو إنشاء "بدون إعادة تشغيل" (خطر عدم التناسق) │
│ │
│ الإنشاء │
│ 3. وحدة التحكم → EC2 → المثيلات │
│ 4. تحديد المثيل │
│ 5. Actions → Image and templates → Create image │
│ │
│ التكوين │
│ 6. الاسم: "mon-app-v1.0" │
│ 7. الوصف: "خادم ويب مع Apache و PHP 8" │
│ 8. الأحجام: الاحتفاظ أو التعديل │
│ 9. العلامات: الإضافة للتنظيم │
│ │
│ الانتظار │
│ 10. AMI تنتقل من "pending" إلى "available" │
│ 11. قد يستغرق بضع دقائق │
│ │
│ الاستخدام │
│ 12. تشغيل مثيلات جديدة مع هذه AMI │
│ │
└─────────────────────────────────────────────────────────────┘

أمر AWS CLI​

# إنشاء AMI من مثيل
aws ec2 create-image \
--instance-id i-0123456789abcdef0 \
--name "mon-app-v1.0" \
--description "خادم ويب مهيأ" \
--no-reboot

# عرض AMI الخاصة بك
aws ec2 describe-images --owners self

# حذف AMI
aws ec2 deregister-image --image-id ami-0123456789abcdef0

أفضل ممارسات AMI​

1. التسمية المتسقة​

الصيغة الموصى بها:
<application>-<version>-<date>-<environnement>

أمثلة :
• webapp-v2.1-20241218-prod
• api-server-v1.0-20241218-staging
• bastion-v1.0-20241218-shared

2. إصدار AMI الخاصة بك​

webapp-v1.0  →  webapp-v1.1  →  webapp-v2.0
│ │ │
└── إصدار صغير └── إصلاح خطأ └── ميزة جديدة

3. أتمتة الإنشاء​

┌─────────────────────────────────────────────────────────────┐
│ خط أنابيب AMI المؤتمت │
├─────────────────────────────────────────────────────────────┤
│ │
│ كود ──► بناء ──► اختبار ──► إنشاء AMI ──► نشر │
│ │ │
│ └── أداة: Packer │
│ │
│ Packer = أداة HashiCorp لإنشاء AMI │
│ تلقائيًا وبطريقة قابلة للتكرار │
│ │
└─────────────────────────────────────────────────────────────┘

4. الأمان​

✅ يجب القيام به:
• حذف مفاتيح SSH الشخصية
• حذف الملفات المؤقتة
• مسح تاريخ bash
• تحديث الحزم قبل الإنشاء

❌ يجب تجنبه:
• كلمات المرور بنص واضح في الملفات
• مفاتيح API في الكود
• بيانات حساسة غير مشفرة

تكلفة AMI​

┌─────────────────────────────────────────────────────────────┐
│ تكلفة AMI │
├─────────────────────────────────────────────────────────────┤
│ │
│ AMI نفسها: مجانية │
│ │
│ ما يكلف: │
│ • تخزين لقطات EBS الأساسية │
│ • ~$0.05/GB/الشهر │
│ │
│ مثال: │
│ AMI مع حجم الجذر 20 GB │
│ → التكلفة: ~$1/الشهر للتخزين │
│ │
│ AMI سوق: │
│ • تكلفة الرخصة بالإضافة إلى التخزين │
│ • تحقق من السعر قبل التشغيل │
│ │
└─────────────────────────────────────────────────────────────┘

ملخص​

المفهومالوصف
AMIصورة آلة لتشغيل المثيلات
AMI AWSرسمية، مجانية، موصى بها
AMI سوقمع برامج، غالبًا مدفوعة
AMI شخصيةتم إنشاؤها بواسطتك، خاصة
إقليميةكل منطقة لديها AMI الخاصة بها
لقطةAMI مخزنة كلقطة EBS

اختبار التحقق​

  1. ما هي AMI؟
  2. أي AMI لينكس محسنة لـ AWS؟
  3. هل AMI متشابهة في جميع المناطق؟
  4. كيف تنشئ AMI مخصصة؟
  5. ما الذي يكلف المال مع AMI؟
  6. لماذا تنشئ AMI الخاصة بك؟

القسم التالي: أنواع المثيلات