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 |
اختبار التحقق
- ما هي AMI؟
- أي AMI لينكس محسنة لـ AWS؟
- هل AMI متشابهة في جميع المناطق؟
- كيف تنشئ AMI مخصصة؟
- ما الذي يكلف المال مع AMI؟
- لماذا تنشئ AMI الخاصة بك؟
القسم التالي: أنواع المثيلات