المشاركات

عرض المشاركات من يونيو, 2026

NAT Gateway مقابل NAT Instance: أيهما تختار لإخراج حركة المرور من الشبكات الخاصة؟

عندما تحتاج instances الخاصة بك إلى تحميل تحديثات من الإنترنت دون أن تكون مكشوفة مباشرة، فأنت أمام خيارين رئيسيين في AWS: NAT Gateway المُدار بالكامل، أو NAT Instance تشغّله بنفسك على EC2. القرار يبدو بسيطاً في البداية، لكن في الإنتاج يظهر الفرق الحقيقي عند أول حادثة توافر أو عند مراجعة فاتورة الشهر. ملخص سريع (TL;DR) — NAT Gateway مقابل NAT Instance المعيار NAT Gateway NAT Instance (EC2) الإدارة مُدار بالكامل من AWS مسؤوليتك الكاملة التوافر العالي مدمج داخل كل Availability Zone يتطلب بناء HA يدوياً التوسع التلقائي تلقائي محدود بحجم الـ instance Security Groups غير مدعوم مباشرة مدعوم التكلفة عند حجم صغير أعلى نسبياً أقل إذا أُديرت بكفاءة Port Forwarding غير مدعوم مدعوم الخيار الموصى به للإنتاج ✅ نع...

تحديث محتوى CloudFront: كيفية إنشاء Invalidation لمسح الكاش الفوري

استبدلت ملفاً في S3 لكن CloudFront لا يزال يعرض النسخة القديمة — هذا السيناريو يحدث في كل بيئة إنتاج تعتمد على CDN. المشكلة ليست في S3، بل في طبيعة عمل تحديث محتوى CloudFront: الـ edge nodes تحتفظ بنسخة مخزنة مؤقتاً حتى تنتهي مدة TTL، وبدون Invalidation صريح، المستخدمون يرون محتوى منتهي الصلاحية. ملخص سريع (TL;DR) — تحديث محتوى CloudFront الخطوة الإجراء متى تستخدمه 1 إنشاء Invalidation عبر AWS Console أو CLI بعد تحديث ملف موجود في S3 مباشرةً 2 استخدام مسار /* لمسح كامل الكاش عند تحديث نشر كامل (full deployment) 3 استخدام مسارات محددة مثل /index.html لتقليل التكلفة عند تحديث ملفات بعينها 4 اعتماد versioning في أسماء الملفات كحل دائم لتجنب الحاجة للـ Invalidation في كل مرة كيف يعمل كاش CloudFront — الآلية الداخلية CloudFront شبكة توزيع محتوى (CDN) تعتمد على نقاط حضور موزع...

وضع Sandbox في Amazon SES: لماذا لا تصل رسائلك للعملاء وكيف تطلب رفع الحد إلى الإنتاج

أعددت كل شيء — قالب البريد الإلكتروني، منطق الإرسال، بيانات الاعتماد — وعندما اختبرت الإرسال لنفسك نجح كل شيء. لكن حين حاولت إرسال رسالة لأحد عملائك الفعليين، اختفت الرسالة تماماً. هذا هو وضع Sandbox في Amazon SES، وهو قيد افتراضي يطبّقه AWS على كل حساب جديد يستخدم خدمة البريد الإلكتروني SES. ملخص سريع (TL;DR) — وضع Sandbox في SES الجانب وضع Sandbox وضع الإنتاج المستلمون المسموح بهم عناوين بريد إلكتروني موثّقة (Verified) فقط أي عنوان بريد إلكتروني حد الإرسال اليومي محدود — راجع التوثيق الرسمي أعلى بكثير — يتدرّج حسب السمعة معدل الإرسال محدود — راجع التوثيق الرسمي أعلى — يتدرّج حسب الاستخدام طريقة الخروج طلب رفع الحد عبر AWS Support — وقت المعالجة المعتاد — 24 ساعة في الغالب (غير مضمون) كيف يعمل وضع Sandbox في SES عند إنشاء حساب AWS جديد وتف...

تشغيل السكريبتات عند بدء تشغيل EC2: دليل User Data العملي

عندما تحتاج إلى تثبيت Nginx أو أي حزمة أخرى تلقائياً على كل نسخة EC2 جديدة، فإن الاعتماد على الإعداد اليدوي بعد الإطلاق يُعدّ خطأً تشغيلياً كلاسيكياً — خاصةً في بيئات Auto Scaling حيث تُطلق النسخ وتُوقف دون تدخل بشري. ميزة EC2 User Data هي الحل الأصلي لهذه المشكلة. ملخص سريع (TL;DR): تشغيل السكريبتات عند بدء EC2 الخطوة الإجراء الملاحظة 1 كتابة سكريبت Shell يبدأ بـ #!/bin/bash يُنفَّذ بصلاحيات root 2 لصق السكريبت في حقل 'User Data' عند إنشاء النسخة أو تمريره عبر CLI 3 يُنفَّذ السكريبت مرة واحدة فقط عند الإقلاع الأول السلوك الافتراضي 4 مراجعة السجلات في /var/log/cloud-init-output.log لتشخيص أي أخطاء كيف يعمل EC2 User Data عند إطلاق نسخة EC2، تقوم خدمة cloud-init بجلب بيانات User Data من نقطة نهاية بيانات التعريف الداخلية ( http://169.254.169.254/latest/user-data ) وتنفيذها. هذه العملية تحدث في مرحلة مبكرة جداً من دورة حياة الإقلاع، قبل أن يكون النظام جاهزاً للاستخدام الكامل. السلوك الافترا...

إرسال تنبيهات البريد الإلكتروني عبر SNS: لماذا لا تصل الرسائل؟

أنشأت موضوع SNS وربطت به بريدك الإلكتروني، لكن التنبيهات لا تصل — هذا السيناريو يتكرر كثيراً، والسبب في معظم الحالات ليس خطأً في الكود أو السياسة، بل خطوة واحدة يتجاهلها المهندسون: تأكيد الاشتراك عبر الرابط الذي أرسله SNS إلى البريد الإلكتروني. ملخص سريع (TL;DR) — إرسال تنبيهات البريد الإلكتروني عبر SNS الخطوة الإجراء المطلوب الحالة الشائعة للفشل 1. إنشاء موضوع SNS إنشاء موضوع من نوع Standard أو FIFO استخدام نوع FIFO مع بريد إلكتروني — غير مدعوم 2. إضافة اشتراك بريد إلكتروني تحديد البروتوكول email أو email-json كتابة عنوان البريد بشكل خاطئ 3. تأكيد الاشتراك النقر على رابط التأكيد في البريد الوارد تجاهل الرسالة أو انتهاء صلاحية الرابط 4. اختبار النشر نشر رسالة تجريبية عبر CLI أو Console عدم التحقق من حالة الاشتراك قبل الاختبار كيف يعمل SNS مع البريد الإلكتروني Amazon SNS ...

فهم AWS KMS: هل تستخدم مفتاحاً مُدَاراً من AWS أم مفتاح CMK لتشفير S3؟

عندما تحتاج إلى تشفير حاوية S3 في بيئة إنتاجية، يظهر السؤال الأول دائماً: هل أستخدم المفتاح المُدار من AWS أم أنشئ مفتاحاً خاصاً بي؟ الإجابة ليست تقنية بحتة — بل تعتمد على متطلبات الامتثال، ونموذج التحكم، والتكلفة التشغيلية. فهم AWS KMS بشكل صحيح يحميك من قرارات مكلفة يصعب التراجع عنها لاحقاً. ملخص سريع (TL;DR) — فهم AWS KMS وخيارات التشفير المعيار AWS Managed Key (aws/s3) Customer Managed Key (CMK) التحكم في دورة حياة المفتاح AWS تتحكم بالكامل أنت تتحكم بالكامل سياسة المفتاح (Key Policy) غير قابلة للتخصيص قابلة للتخصيص بالكامل التدوير التلقائي (Rotation) كل سنة تلقائياً اختياري — يمكن تفعيله الرسوم الشهرية للمفتاح مجاني رسوم شهرية لكل مفتاح رسوم عمليات API رسوم على كل استدعاء رسوم على كل استدعاء مناسب لـ تشفير بسيط بدون متطلبات...