في السحابة ليست دائماً الأرخص حسبنا فاتورة تطبيق وقاعدة بيانات و1 TB من البيانات الخارجة شهرياً على AWS، فكانت 582.48 دولار في الشكل الذي يعمل في منطقتي توفر Availability Zones. لكن هذه الفاتورة هي ما تتوقعه في يوم التصميم، أما الفاتورة التي تصل بعد أشهر من التشغيل فتحمل سطوراً لم تكن في الحساب: بوابة NAT Gateway تحسب على كل GB يمر بها، وحركة بين مناطق التوفر Cross-AZ لا يعرف أحد من أين جاءت، ونسخ Snapshots قديمة لم يحذفها أحد، وسجلات Logs تكلف أكثر من السيرفر الذي يكتبها، ونسبة مئوية لخطة الدعم Support Plan تكبر مع الفاتورة كلها.
وهذا المقال هو الثاني في مرحلة السحابة أم سيرفرك؟، وهو عملي أكثر من الأول، فسوف نمر على كل بند من هذه البنود بسعره الحقيقي من قائمة الأسعار الرسمية، ولماذا يظهر، وكيف تخفضه، ثم نحسبها كلها بسكربت واحد. وسوف نناقش في هذا المقال ما يلي:
- خريطة الفاتورة: أين تختبئ التكاليف في بنية سحابية عادية.
- نقل البيانات الخارج Egress عند AWS وAzure وGoogle Cloud مقارنة بال VPS.
- بوابة NAT Gateway، والحركة بين مناطق التوفر، وعناوين IPv4 العامة.
- التخزين: السعة والسرعة IOPS والنسخ Snapshots والنسخ الاحتياطية وتخزين الكائنات.
- موزع الحمل وقاعدة البيانات المدارة والسجلات والمراقبة وخطط الدعم.
- الالتزام بخطط التوفير Savings Plans: الخصم الحقيقي وما تدفعه إذا تغيرت خطتك.
- هل ال VPS بلا تكاليف خفية؟ وقائمة تحقق لتخفيض الفاتورة.
خريطة الفاتورة: أين تختبئ التكاليف؟
القاعدة التي تفسر أغلب المفاجآت هي أن السحابة تحسب كل شيء يعبر حداً: البيانات التي تخرج إلى الإنترنت، والبيانات التي تعبر من منطقة توفر إلى أخرى، والبيانات التي تمر بجهاز مدار مثل NAT Gateway أو موزع الحمل، وكل GB تحفظه في مكان ما، وكل سطر سجل ترسله إلى خدمة المراقبة. وفي مركز البيانات أو على ال VPS لا يحسب لك أحد كم مر من بيانات بين سيرفرين في الشبكة نفسها، أما في السحابة فهذا بند في الفاتورة.
والصورة التالية تبين بنية صغيرة على AWS في منطقتي توفر، وعلى كل خط سعره:

وسوف نمر على هذه الأرقام واحداً بعد الآخر، بالترتيب الذي تظهر به عادة في الفاتورة.
نقل البيانات الخارج Egress
البيانات الخارجة Egress هي كل ما يرسله سيرفرك أو تخزينك إلى الإنترنت، من صفحات وصور وفيديو وملفات وردود API، والبيانات الداخلة Ingress مجانية عند المزودين الثلاثة الكبار، أما الخارجة فتحسب بال GB بعد حصة مجانية صغيرة. والجدول التالي يبين ما تدفعه مقابل 1 TB و10 TB في الشهر:
| المزود | القاعدة | 1,000 GB شهرياً | 10,000 GB شهرياً |
|---|---|---|---|
| AWS (فرانكفورت) | أول 100 GB مجاناً للحساب كله، ثم 0.09 دولار لكل GB لأول 10 TB | 81 دولاراً | 891 دولاراً |
| Azure (Germany West Central) | أول 100 GB مجاناً، ثم 0.087 دولار لكل GB عبر شبكة Microsoft | 78.30 دولار | 861.30 دولار |
| Google Cloud، الطبقة Premium | أول GiB مجاناً، ثم 0.12 دولار حتى 1 TiB و0.11 بعدها (من us-central1 إلى أوروبا) | 119.88 دولار | 1,110.12 دولار |
| Google Cloud، الطبقة Standard | أول 200 GiB مجاناً، ثم 0.085 دولار لكل GiB (من us-central1) | 68 دولاراً | 833 دولاراً |
| DigitalOcean | حصة مشتركة لكل Droplets الفريق (5,000 GiB لسيرفر 48 دولاراً)، ثم 0.01 دولار لكل GiB | 0 | 50 دولاراً |
| Hetzner Cloud (ألمانيا وفنلندا) | 20 TB مشمولة مع كل سيرفر | 0 | 0 |
| Hetzner سيرفر مخصص | حركة غير محدودة على منفذ 1 Gbit/s | 0 | 0 |
المصادر: صفحة أسعار EC2 لقسم نقل البيانات، وصفحة أسعار Bandwidth في Azure، وصفحة أسعار الشبكة في Google Cloud، وتوثيق حركة البيانات في DigitalOcean، وصفحة حركة البيانات في Hetzner.
في الجدول أعلاه لاحظ التالي:
- عند الكبار الثلاثة يكبر بند البيانات الخارجة مع كل زائر جديد، فموقع ينجح وتتضاعف زياراته تتضاعف معه هذه الفاتورة، أما عند مزودي ال VPS فالحصة المشمولة تكفي أغلب المواقع المتوسطة دون أي إضافة.
- الحصة المجانية عند AWS هي 100 GB للحساب كله في كل الخدمات والمناطق معاً كما تذكر صفحة EC2، وليست لكل سيرفر، فإذا كان لديك عشرة سيرفرات فالحصة نفسها تتوزع عليها.
- الحساب يشمل كل ما يخرج، وليس السيرفرات فقط، فصفحة AWS تذكر أن شرائح السعر تجمع ما يخرج من EC2 وS3 وRDS وCloudWatch Logs وغيرها، أي أن صور المستخدمين التي تقدمها من S3 مباشرة تدخل في الحساب نفسه.
والطريقة الأولى لتخفيض هذا البند هي أن تضع أمام موقعك شبكة توصيل محتوى CDN تحفظ الملفات الثابتة قرب الزوار، فلا يخرج الملف من سيرفرك إلا مرة واحدة لكل نقطة تواجد، وقد شرحنا ذلك بالتفصيل في شبكة توصيل المحتوى CDN للمبتدئين. ولاحظ أن ال CDN نفسها قد تحاسبك على ما تخرجه، فاقرأ سعرها قبل أن تفترض أنها تلغي البند.
بوابة NAT Gateway: رسوم على كل GB يمر بها
الإعداد الذي تنصح به أغلب الأدلة هو أن تضع السيرفرات وقواعد البيانات في شبكة فرعية خاصة Private Subnet ليس لها عنوان عام، وهذا صحيح من ناحية الأمان. لكن السيرفر في الشبكة الخاصة يحتاج أن يخرج إلى الإنترنت لتنزيل التحديثات وال Docker Images والاتصال بخدمات خارجية، والطريقة المعتادة لذلك هي بوابة NAT Gateway، وهي الفكرة نفسها التي شرحناها في ما هو NAT؟ ولكن كخدمة مدارة.
وسعر هذه البوابة في فرانكفورت بحسب قائمة الأسعار له جزءان: 0.052 دولار لكل ساعة تعمل فيها البوابة، أي حوالي 37.96 دولار شهرياً لبوابة واحدة حتى لو لم يمر بها شيء، ثم 0.052 دولار لكل GB تعالجه البوابة، في الاتجاهين. وهنا المفاجأة الأولى: تنزيل Docker Image حجمها 1 GB هو بيانات داخلة مجانية لو نزلها سيرفر بعنوان عام، لكنه يكلف 0.052 دولار إذا مر عبر NAT Gateway، فإذا كان نظام CI/CD عندك ينزل ال Images نفسها عشرات المرات في اليوم فالبند يكبر بسرعة. والمفاجأة الثانية أن توثيق AWS عن تكلفة NAT Gateway نفسه يقترح بوابة في كل منطقة توفر فيها سيرفرات، حتى لا تدفع الحركة بين المناطق فوق رسوم المعالجة، فيتضاعف الجزء الثابت مع كل منطقة.
والتفاصيل في صفحة أسعار VPC، أما الحل الأرخص لأكثر حالة شائعة، وهي الوصول إلى S3 وDynamoDB، فهو نقطة الاتصال Gateway Endpoint، وهي بحسب توثيق AWS لا تكلف أي رسوم إضافية، فتصل السيرفرات إلى S3 عبرها دون أن تمر البيانات بال NAT.
الحركة بين مناطق التوفر Cross-AZ
منطقة التوفر Availability Zone هي مركز بيانات أو أكثر داخل المنطقة الجغرافية Region، وتوزيع السيرفرات على منطقتين يحميك إذا توقفت إحداهما. لكن قائمة أسعار AWS تحسب الحركة بين مناطق التوفر في المنطقة نفسها بسعر 0.01 دولار لكل GB، والوصف في القائمة يذكر الدخول والخروج in/out، أي أن الحركة تحسب على الطرفين، فكل GB يعبر بين سيرفرين في منطقتين مختلفتين يكلفك فعلياً حوالي 0.02 دولار.
والسبب أن هذا البند مخفي هو أنك لا تراه في الكود، فالتطبيق يتصل بقاعدة البيانات باسمها، ولا يعرف أن القاعدة الرئيسية في المنطقة a وأن نصف سيرفرات التطبيق في المنطقة b. فإذا كانت سيرفرات التطبيق تقرأ من قاعدة البيانات 2 TB في الشهر، ونصفها يعبر بين المنطقتين، فهذا 1,000 GB في الاتجاهين، أي حوالي 20 دولاراً شهرياً، وفي الأنظمة الكبيرة التي تتبادل فيها الخدمات Microservices كميات ضخمة من البيانات يصبح هذا البند من أكبر سطور الفاتورة. وتنطبق القاعدة نفسها تقريباً على Google Cloud، فصفحة الشبكة عندهم تذكر 0.01 دولار لكل GiB بين مناطق التوفر في المنطقة نفسها.
والصورة التالية تبين الطريق المكلف والطريق الأرخص للعمل نفسه:

وقد يتساءل البعض: هل نترك التوفر العالي إذن ونضع كل شيء في منطقة واحدة؟ والإجابة لا، وإنما اجعل الحركة الكثيرة تبقى داخل المنطقة نفسها قدر الإمكان، فاجعل كل سيرفر تطبيق يقرأ من نسخة قراءة Read Replica في منطقته إن وجدت، وأرسل الكتابة فقط إلى القاعدة الرئيسية، وراقب هذا البند في الفاتورة باسمه، فهو يظهر عند AWS باسم يحتوي DataTransfer-Regional.
عناوين IPv4 العامة
منذ 1 فبراير 2024 تحسب AWS كل عنوان IPv4 عام بسعر 0.005 دولار للساعة، أي حوالي 3.65 دولار شهرياً، سواء كان مستخدماً أو محجوزاً دون استخدام، وفي Azure يحسب العنوان الثابت Standard بالسعر نفسه تقريباً بحسب واجهة الأسعار (0.005 دولار للساعة في Germany West Central). والمبلغ صغير لعنوان واحد، لكن موزع الحمل يأخذ عنواناً في كل منطقة توفر، وكل بيئة اختبار لها عناوينها، والعناوين المحجوزة Elastic IP التي ينساها الفريق بعد حذف السيرفر تبقى في الفاتورة. وعند Hetzner عنوان IPv4 للسيرفر السحابي بسعر 0.50 يورو شهرياً بحسب صفحة أسعار IPv4، أي أن هذا البند موجود عند الطرفين ولكن بحجم مختلف.
التخزين: الحجم ليس البند الوحيد
عندما تشتري VPS يأتي القرص جزءاً من الباقة بسرعته كما هي، أما في السحابة فالقرص الشبكي Block Storage، وهو EBS عند AWS، له ثلاثة أسعار منفصلة: السعة بال GB في الشهر، وعدد عمليات القراءة والكتابة في الثانية IOPS، وسرعة النقل Throughput. وقد شرحنا الفرق بين أنواع التخزين نفسها في أنواع التخزين Block وFile وObject للمبتدئين.
القرص من نوع gp3 يأتي بحسب توثيق EBS بسرعة أساسية 3,000 IOPS و125 MiB/s مشمولة في سعر السعة، وهو 0.0952 دولار لكل GB شهرياً في فرانكفورت، وما زاد عن ذلك تدفعه: 0.006 دولار لكل IOPS إضافية في الشهر، و0.0476 دولار لكل MiB/s إضافية. أما القرص io2 المخصص لقواعد البيانات الثقيلة فسعر السعة فيه 0.149 دولار لكل GB، وكل IOPS تطلبها بسعر 0.078 دولار شهرياً. ولنأخذ مثالاً قرصاً بسعة 500 GB نحتاج منه 16,000 IOPS:
- على gp3: السعة 47.60 دولار، والإضافة 13,000 IOPS بسعر 78 دولاراً، والمجموع 125.60 دولار شهرياً.
- على io2: السعة 74.50 دولار، و16,000 IOPS بسعر 1,248 دولاراً، والمجموع 1,322.50 دولار شهرياً.
أي أن القرص نفسه بالسرعة نفسها يكلف عشرة أضعاف بحسب النوع الذي تختاره، والسبب أن io2 يعطيك ضمانات أعلى في ثبات الأداء والمتانة، فاختره عندما تحتاج هذه الضمانات فعلاً، وليس لأن الدليل الذي قرأته قال إنه لقواعد البيانات.
النسخ Snapshots والنسخ الاحتياطية Backups
بحسب توثيق EBS فإن أول Snapshot من القرص نسخة كاملة، وما بعدها تزايدية Incremental تحفظ فقط الكتل التي تغيرت، وسعرها في فرانكفورت 0.054 دولار لكل GB في الشهر، وفي فئة الأرشيف Archive بسعر 0.0135 دولار. وهذه طريقة ذكية وموفرة، لكن مشكلتها أن السلسلة تكبر كل يوم ما دمت لا تحذف القديم، فإذا كانت سياسة النسخ تأخذ نسخة كل يوم دون قاعدة حذف، فسوف تجد بعد سنة مئات ال GB من نسخ لا يحتاجها أحد. وفي RDS تحفظ النسخ الاحتياطية التلقائية مجاناً ضمن حصة، وما زاد عنها، مثل النسخ اليدوية الكثيرة أو مدة الاحتفاظ الطويلة، يحسب بسعر 0.103 دولار لكل GB شهرياً في فرانكفورت بحسب قائمة الأسعار.
والصورة التالية تبين أسعار القرص الثلاثة وسلسلة النسخ:

تخزين الكائنات S3
تخزين الكائنات S3 رخيص في السعة، فالفئة Standard في فرانكفورت بسعر 0.0245 دولار لكل GB شهرياً لأول 50 TB، لكنه يحسب أيضاً كل طلب: 0.0054 دولار لكل ألف طلب من نوع PUT أو LIST، و0.0043 دولار لكل عشرة آلاف طلب GET. وهذا البند صغير في أغلب التطبيقات، لكنه يكبر في التطبيقات التي تكتب ملايين الملفات الصغيرة أو تعرض قائمة الملفات LIST في كل طلب، والأهم أن ما يخرج من S3 إلى الإنترنت يدخل في بند البيانات الخارجة الذي رأيناه أعلاه.
موزع الحمل Load Balancer
موزع حمل التطبيقات Application Load Balancer في فرانكفورت بسعر 0.027 دولار للساعة، أي حوالي 19.71 دولار شهرياً قبل أن يمر به أي طلب، ثم 0.008 دولار لكل وحدة سعة LCU في الساعة، وهي وحدة تجمع عدد الاتصالات الجديدة والنشطة وحجم البيانات وعدد القواعد، وتفصيلها في صفحة أسعار Elastic Load Balancing. ولاحظ أن المبلغ الثابت يتكرر مع كل موزع، فإذا كان لكل خدمة موزع خاص بها، ولكل بيئة Staging نسختها، فقد تجد عشرة موزعات بمئتي دولار شهرياً قبل أي زيارة. والحل غالباً موزع واحد بقواعد توجيه حسب اسم النطاق أو المسار، كما يفعل ال Reverse Proxy على سيرفرك.
قاعدة البيانات المدارة Managed Database
رأينا في المقال الأول أن db.m7g.large من RDS for PostgreSQL بسعر 0.200 دولار للساعة في فرانكفورت، مقابل 0.0978 دولار لسيرفر EC2 بالمواصفات نفسها، وأن Multi-AZ يضاعف السعر إلى 0.401 دولار، ويضاعف سعر التخزين من 0.137 إلى 0.274 دولار لكل GB. فأنت تدفع حوالي ضعف ثمن الآلة مقابل الإدارة، ثم ضعفاً آخر مقابل النسخة الاحتياطية الجاهزة، وهي بحسب توثيق RDS لا تستقبل أي قراءة.
وهذا ليس بنداً خفياً بالمعنى الدقيق لأن السعر منشور، لكنه البند الذي يكبر بصمت مع النمو، فكل ترقية لحجم القاعدة تضاعف الرقم مرتين، وكل نسخة قراءة Read Replica تضيف آلة كاملة بسعر الخدمة المدارة. ولاحظ أن الإدارة نفسها لها قيمة حقيقية، من النسخ التلقائي إلى الانتقال عند العطل، فإذا قررت أن تشغل القاعدة بنفسك فاقرأ أولاً ما يتطلبه ذلك في عناقيد قواعد البيانات للمبتدئين.
السجلات Logs والمراقبة Monitoring
خدمة CloudWatch Logs في فرانكفورت بسعر 0.63 دولار لكل GB تكتبه إليها Ingestion، و0.0324 دولار لكل GB تحفظه شهرياً، والمقاييس المخصصة Custom Metrics بسعر 0.30 دولار لكل مقياس في الشهر لأول عشرة آلاف. والمفاجأة هنا غالباً تأتي من مستوى السجل Log Level، فتطبيق ترك مستوى DEBUG مفعلاً في الإنتاج Production قد يكتب 5 GB في اليوم، أي 150 GB في الشهر بمبلغ 94.50 دولار للكتابة وحدها، وهو أكثر من سعر سيرفر التطبيق نفسه. ثم إن السجلات بحسب توثيق CloudWatch Logs تحفظ بشكل افتراضي إلى الأبد Indefinitely ما لم تحدد أنت مدة احتفاظ لكل مجموعة، فيتراكم التخزين شهراً بعد شهر.
والقواعد التي تحمي فاتورتك هنا هي نفسها التي تحمي سجلاتك من الفوضى: مستوى INFO في الإنتاج، وسجلات منظمة Structured Logs بلا تكرار، ومدة احتفاظ Retention لكل مجموعة، وقد فصلناها في الاحتفاظ Retention والتكلفة والصلاحيات.
خطط الدعم Support Plans
الدعم الأساسي Basic مجاني، لكنه لا يعطيك مهندساً يرد على مشكلة تقنية في الإنتاج، ولذلك تشترك أغلب الشركات في خطة مدفوعة. وبحسب صفحة أسعار الدعم في أكتوبر 2026، فإن أصغر خطة مدفوعة هي Business Support+ بسعر الأكبر من 29 دولاراً شهرياً لكل حساب أو نسبة من الفاتورة تبدأ من 9% لأول 10 آلاف دولار، والخطة Enterprise بحد أدنى 5 آلاف دولار شهرياً أو 10% من الفاتورة. وانتبه إلى أن النسبة تحسب على الفاتورة كلها قبل الخصومات، وأن الدفعات المقدمة لخطط التوفير والحجوزات تدخل في حساب الدعم في الشهر الذي تدفعها فيه بحسب الصفحة نفسها، أي أن كل دولار تضيفه إلى الفاتورة يضيف معه تسعة سنتات للدعم.
الالتزام بخطط التوفير Savings Plans
عندما تكبر الفاتورة ينصحك الجميع بخطط التوفير Savings Plans أو الحجوزات Reserved Instances، والفكرة أنك تلتزم بمبلغ ثابت في الساعة لمدة سنة أو ثلاث سنوات، فتحصل على سعر أقل على الاستخدام الذي يغطيه هذا المبلغ. وتقول صفحة Savings Plans إن الخصم يصل إلى 66% في خطة Compute التي تنتقل معك بين أنواع السيرفرات والمناطق، وإلى 72% في خطة EC2 Instance المرتبطة بعائلة سيرفرات في منطقة واحدة. وبالأرقام من قائمة أسعار خطط التوفير لسيرفر m7g.large في فرانكفورت:
- الطلب On-Demand بسعر 0.0978 دولار للساعة.
- خطة Compute لسنة بلا دفعة مقدمة No Upfront بسعر 0.0745 دولار، أي خصم 24% تقريباً.
- خطة EC2 Instance لثلاث سنوات بدفع كامل مقدماً All Upfront بسعر 0.0386 دولار، أي خصم 61% تقريباً.
لاحظ أن الخصم الكبير يأتي مع الالتزام الأطول والأضيق والدفع المقدم، وهذا هو الثمن المخفي: أنت تدفع المبلغ الملتزم به في كل ساعة حتى لو انخفض استخدامك، أو صغرت السيرفرات بعد تحسين الكود، أو قررت الانتقال إلى ال VPS. فالتزام سنة واحدة لسيرفر m7g.large واحد بخطة Compute هو 652.62 دولار، تدفعها كاملة ولو تركت السيرفر بعد أربعة أشهر. وهذا يجعل الالتزام نوعاً من الاعتماد على المزود Vendor Lock-in، لأن الانتقال قبل نهاية المدة يعني أن تدفع مرتين.
والصورة التالية تبين الفكرة:

لذلك التزم فقط بالحد الأدنى الذي أنت متأكد أنك سوف تستخدمه طوال المدة، وهو عادة أقل من استخدامك الحالي، واترك الباقي بسعر الطلب، وابدأ بسنة واحدة قبل ثلاث.
احسب السطور الخفية بنفسك
جمعنا البنود السابقة في سكربت Node.js صغير، يضيف إلى فاتورة المقال الأول (582.48 دولار) سطوراً بكميات استخدام نفترضها لفريق صغير بعد عدة أشهر من التشغيل، والكميات افتراضات وليست قياسات، فغيرها بأرقام فاتورتك. والسكربت كما يلي:
// hidden-costs.mjs: the lines that appear on the bill after the first month (USD).
// Prices read on 2026-10-07 from the AWS Price List API, eu-central-1 (Frankfurt).
// Usage figures are assumptions for an illustrative small team, not measurements.
const HOURS = 730;
const lines = [
// [group, item, monthly USD]
['network', 'NAT Gateway, 1 gateway x 730 h', 0.052 * HOURS],
['network', 'NAT Gateway, 500 GB processed', 0.052 * 500],
['network', 'Cross-AZ app <-> DB, 1,000 GB (in+out)', 0.01 * 1000 * 2],
['network', 'Forgotten Elastic IPs x2', 2 * 0.005 * HOURS],
['storage', 'EBS snapshots kept, 800 GB', 0.054 * 800],
['storage', 'RDS backups over free share, 300 GB', 0.103 * 300],
['storage', 'S3 Standard, 500 GB', 0.0245 * 500],
['storage', 'S3 requests: 200k PUT + 2M GET', 200 * 0.0054 + 200 * 0.0043],
['logs', 'CloudWatch Logs ingest, 150 GB', 0.63 * 150],
['logs', 'CloudWatch Logs stored, 450 GB', 0.0324 * 450],
['logs', 'Custom metrics x50', 0.30 * 50],
];
const base = 582.48; // the two-AZ bill from the previous article
let hidden = 0;
const byGroup = {};
for (const [group, item, usd] of lines) {
hidden += usd;
byGroup[group] = (byGroup[group] || 0) + usd;
console.log(`${group.padEnd(8)} ${item.padEnd(40)} ${usd.toFixed(2).padStart(8)}`);
}
const support = Math.max(29, 0.09 * (base + hidden)); // Business Support+
console.log(`${'support'.padEnd(8)} ${'Business Support+ (9% or $29)'.padEnd(40)} ${support.toFixed(2).padStart(8)}`);
hidden += support;
console.log('\nby group:', Object.entries(byGroup).map(([g, v]) => `${g} ${v.toFixed(2)}`).join(' | '));
console.log(`planned bill: ${base.toFixed(2)}`);
console.log(`hidden lines: ${hidden.toFixed(2)}`);
console.log(`real bill: ${(base + hidden).toFixed(2)} (+${(100 * hidden / base).toFixed(0)}%)`);
// The commitment side: m7g.large, on-demand vs Savings Plans (per hour).
const od = 0.0978, sp1 = 0.0745, sp3 = 0.0386;
console.log(`\nm7g.large on-demand ${od} /h`);
console.log(`Compute SP 1yr No Upfront ${sp1} /h (-${(100 * (1 - sp1 / od)).toFixed(0)}%)`);
console.log(`EC2 Instance SP 3yr All Upfront ${sp3} /h (-${(100 * (1 - sp3 / od)).toFixed(0)}%)`);
console.log(`1yr commitment, owed even if you leave early: ${(sp1 * 8760).toFixed(2)}`);نقوم بتشغيله بالأمر التالي (استخدمنا Node.js 22.14.0):
node hidden-costs.mjsوالمخرج سوف يكون كما يلي:
network NAT Gateway, 1 gateway x 730 h 37.96
network NAT Gateway, 500 GB processed 26.00
network Cross-AZ app <-> DB, 1,000 GB (in+out) 20.00
network Forgotten Elastic IPs x2 7.30
storage EBS snapshots kept, 800 GB 43.20
storage RDS backups over free share, 300 GB 30.90
storage S3 Standard, 500 GB 12.25
storage S3 requests: 200k PUT + 2M GET 1.94
logs CloudWatch Logs ingest, 150 GB 94.50
logs CloudWatch Logs stored, 450 GB 14.58
logs Custom metrics x50 15.00
support Business Support+ (9% or $29) 79.75
by group: network 91.26 | storage 88.29 | logs 124.08
planned bill: 582.48
hidden lines: 383.38
real bill: 965.86 (+66%)
m7g.large on-demand 0.0978 /h
Compute SP 1yr No Upfront 0.0745 /h (-24%)
EC2 Instance SP 3yr All Upfront 0.0386 /h (-61%)
1yr commitment, owed even if you leave early: 652.62في الإعداد أعلاه لاحظ التالي:
- السطور الخفية أضافت 66% إلى الفاتورة المتوقعة في هذا المثال، وأكبر مجموعة فيها هي السجلات والمراقبة وليست الشبكة، والسبب سطر واحد: مستوى DEBUG في الإنتاج.
- بند الحركة بين المناطق ضربناه في اثنين لأن القائمة تحسب الدخول والخروج، وإذا كانت فاتورتك تظهره بأقل من ذلك فاقرأ تفصيله في Cost Explorer قبل أن تعدل السكربت.
- الدعم محسوب على الفاتورة كلها بعد السطور الخفية، فكل سطر خفي يأتي معه 9% إضافية.
- سعر الالتزام لسنة هو سعر الساعة مضروباً في 8,760 ساعة، وهو مبلغ مستحق ولو تغيرت خطتك.
كيف تخفض هذه التكاليف؟
- ضع CDN أمام الملفات الثابتة: هذا أكبر توفير في بند البيانات الخارجة لأغلب المواقع.
- استخدم Gateway Endpoint لكل من S3 وDynamoDB: لا تجعل هذه الحركة تمر بال NAT Gateway.
- قلل ما يمر بال NAT: استخدم مستودع Images قريباً من السيرفرات أو Cache له، ولا تنزل ال Images نفسها في كل بناء.
- اجعل الحركة الكثيرة داخل منطقة التوفر: نسخة قراءة في منطقة كل مجموعة سيرفرات، والتوفر العالي للكتابة وللحالات الطارئة.
- حدد مدة احتفاظ لكل شيء: للسجلات، وللنسخ Snapshots، وللنسخ الاحتياطية اليدوية، وراجعها كل ربع سنة.
- احذف ما لا يعمل: عناوين IPv4 المحجوزة، والأقراص غير المتصلة بأي سيرفر، والموزعات وبيئات الاختبار التي انتهى مشروعها.
- اختر نوع القرص بحسب القياس: ابدأ ب gp3 وارفع ال IOPS عند الحاجة، ولا تبدأ ب io2 لأنه للقواعد الكبيرة.
- ضع تنبيهاً على الميزانية: أداة AWS Budgets ترسل إليك تنبيهاً عندما تقترب الفاتورة من مبلغ تحدده، فتعرف المشكلة في يومها وليس في آخر الشهر.
- التزم بالحد الأدنى فقط: خطط التوفير للجزء الثابت من استخدامك، ولمدة سنة قبل ثلاث.
هل ال VPS بلا تكاليف خفية؟
لا، والإنصاف يقتضي أن نذكر ما يخفيه الطرف الآخر أيضاً:
- الحصة المشمولة لها حد: عند Hetzner تشمل كل سيرفر سحابي 20 TB في أوروبا، وأقل بكثير في الولايات المتحدة وسنغافورة (من 0.5 إلى 8 TB بحسب الخطة)، وما زاد يحسب بحسب الأسئلة الشائعة للفواتير بكتل من 100 MB، وتنبه الصفحة نفسها إلى أن رسائل التحذير عند 75% و100% لا توقف الاستخدام، وأن الزيادة تحسب حتى لو تأخر التحذير أو لم يصل.
- الأسعار تتغير عند الطرفين: في 15 يونيو 2026 رفعت Hetzner أسعار سيرفراتها السحابية، فبعض الفئات تضاعف سعرها أكثر من مرتين بحسب صفحة تعديل الأسعار، والفئات الأرخص كانت تظهر في صفحة الخطط عند كتابة هذا المقال بأنها غير متاحة حالياً Currently not available.
- النسخ الاحتياطي ليس مشمولاً: النسخ التلقائي عند مزود ال VPS خدمة إضافية بسعر منفصل، والنسخ خارج السيرفر عند مزود آخر تحتاج تخزيناً تدفع ثمنه، ولا يوجد ما يعادل النسخ التلقائي والاستعادة إلى نقطة زمنية في RDS إلا ما تبنيه بنفسك.
- وقتك هو البند الأكبر: كل ما توفره من سطور الفاتورة تدفعه ساعات من فريقك في التحديث والمراقبة والاستعادة، وقد شرحنا كيف تحسبه في كيف تحسب التكلفة الحقيقية؟.
الخلاصة
وصلنا لنهاية الموضوع، وأهم ما فيه:
- السحابة تحسب كل ما يعبر حداً: البيانات الخارجة إلى الإنترنت، والحركة بين مناطق التوفر، وما يمر بال NAT Gateway وموزع الحمل، وكل GB تحفظه، وكل سطر سجل ترسله.
- البيانات الخارجة عند AWS وAzure وGoogle Cloud بين 0.085 و0.12 دولار لكل GB بعد حصة صغيرة، وعند مزودي ال VPS مشمولة بكميات تكفي أغلب المواقع، وأول علاج لها شبكة CDN.
- بوابة NAT تكلف بالساعة وبال GB، والحركة بين المناطق تكلف في الاتجاهين، وGateway Endpoint ووضع الحركة الكثيرة في منطقة واحدة يحذفان أغلب هذين البندين.
- القرص في السحابة له ثلاثة أسعار، والنسخ Snapshots والسجلات تتراكم ما لم تحدد مدة احتفاظ، والدعم نسبة من الفاتورة كلها.
- خطط التوفير تعطي خصماً حقيقياً يصل إلى 61% في مثالنا، لكنها التزام تدفعه حتى لو تغيرت خطتك، فالتزم بالحد الأدنى المؤكد فقط.
- ال VPS له تكاليف خفية أيضاً، أهمها وقت فريقك والنسخ الاحتياطي وتغير الأسعار، فاحسب الطرفين بالأمانة نفسها.
وبقية مواضيع المرحلة في خريطة الطريق، ومنها تجارب الشركات التي انتقلت من السحابة إلى سيرفراتها، ومتى تبقى السحابة الخيار الصحيح، والحل الهجين Hybrid، وخطة الانتقال خطوة بخطوة، بإذن الله.
دليلالسحابة ليست دائماً الأرخص: متى يكون VPS أوفر؟مقارنة فواتير تطبيق واحد على AWS وعلى VPS وسيرفر مخصص بأسعار رسمية، ومتى تربح السحابة ومتى يربح السعر الثابت.
دليلكيف تعمل شبكة توصيل المحتوى CDN وما الذي تحفظهلماذا يبطؤ موقعك على الزائر البعيد، وكيف تقرب شبكة CDN ملفاتك منه، وكيف تمنعها من حفظ الصفحات الخاصة.
دليلأنواع التخزين وواجهة S3: أين تضع بيانات تطبيقك؟أين تضع قاعدة البيانات وملفات المستخدمين والنسخ الاحتياطية، ولماذا يناسب كلاً منها نوع مختلف من التخزين.
دليلالسجلات Logging للمطورين: ماذا تسجل وماذا لا تسجلكيف تكتب سجلات Logs تساعدك على فهم ما حدث في الإنتاج، وما الذي لا يدخل السجل أبداً، وكيف تجمعها في مكان واحد.
دليلمدخل إلى تصميم الأنظمة: من سيرفر واحد إلى ملايين المستخدمينكيف يكبر متجر إلكتروني من سيرفر واحد إلى نظام يخدم ملايين المستخدمين، وما الثمن الذي تدفعه في كل خطوة.سجل التحديثات
- أكتوبر 2026: كتابة المقال، وقراءة الأسعار يوم 7 أكتوبر 2026 من قائمة أسعار AWS لمنطقة eu-central-1 (EC2 وEBS وVPC وRDS وS3 وCloudWatch وELB وSavings Plans) وواجهة أسعار Azure وصفحة أسعار الشبكة في Google Cloud وصفحات Hetzner وDigitalOcean، وتشغيل سكربت الحساب على Node.js 22.14.0.