خطوات الاستخدام
الخطوة 1: تحديد مزود الخدمة (Provider). اختر بين Amazon SQS وAmazon SNS وAmazon EventBridge. تختلف أسعار كل خدمة بناءً على سياسات التسعير الخاصة بأمازون. يُستخدم SQS لصفوف الرسائل البسيطة، وSNS للإشعارات والتنبيهات، وEventBridge للأحداث المعقدة. التسعير لكل خدمة يعتمد على عدد الطلبات (Requests) وليس على عدد الرسائل نفسها. مثال: في SQS، كل 64 كيلوبايت من البيانات تُحتسب كطلب واحد.
الخطوة 2: تحديد عدد الرسائل الكلي (Messages) ومتوسط حجم الدفعة (Batch Size). عدد الرسائل الإجمالي هو كمية الرسائل التي سيتم إرسالها أو معالجتها شهريًا. حجم الدفعة هو عدد الرسائل التي يتم تجميعها في طلب واحد (مثلاً، استقبال 10 رسائل دفعة واحدة). كلما زاد حجم الدفعة، قلت عدد الطلبات المطلوبة، مما يقلل التكلفة. صيغة حساب عدد الطلبات: ceil(messages / batchSize)، حيث Ceil هي دالة التقريب لأعلى.
الخطوة 3: حساب عدد الطلبات (Requests). قسّم عدد الرسائل على حجم الدفعة وقرّب الناتج لأعلى. مثال: إذا كان لديك 1,000,000 رسالة وحجم الدفعة 1، فعدد الطلبات = 1,000,000. أما إذا كان حجم الدفعة 10، فعدد الطلبات = 100,000. هذا العدد هو الأساس لحساب التكلفة.
الخطوة 4: تطبيق أسعار الطبقة المجانية. لكل خدمة حد مجاني شهري: SQS يقدم أول 1,000,000 طلب مجانًا، SNS يقدم أول 1,000,000 إشعار مجانًا، EventBridge يقدم أول 100,000 حدث مجانًا. إذا كان عدد الطلبات ضمن الحد المجاني، التكلفة صفر. لكن المثال الشائع يتجاوز الحد المجاني.
الخطوة 5: حساب التكلفة الإضافية بعد الحد المجاني. بعد تجاوز الحد المجاني، يُحتسب السعر لكل مليون طلب إضافي. الأسعار التقريبية: SQS القياسي: $0.40 لكل مليون طلب، SNS: $0.50 لكل مليون إشعار، EventBridge: $1.00 لكل مليون حدث. مثال: إذا كان عدد الطلبات 2,500,000 واستخدمت SQS، فستدفع مقابل 1,500,000 طلب إضافي (2.5M - 1M) = 1.5M بسعر $0.40/M = $0.60. بالإضافة إلى ذلك، قد توجد رسوم على نقل البيانات (Data Transfer) لكننا لا نأخذها في الاعتبار هنا للتبسيط. الصيغة النهائية: التكلفة = max(0, (requests - freeTier) * pricePerMillion / 1,000,000).
أمثلة محلولة
تطبيقات عملية على تكلفة طابور الرسائل بخطوات الحل كاملة.
الحل
أولاً، نحدد عدد الطلبات: ceil(15,000,000 / 50) = 300,000 طلب. هذا أقل من الحد المجاني البالغ 1,000,000 طلب، لذا التكلفة صفر. لكن هذا غير واقعي عادةً، لأن العدد الإجمالي للرسائل كبير. لنعد الحساب بحجم دفعة أصغر: إذا كان حجم الدفعة 1، فعدد الطلبات = 15,000,000. بعد خصم الحد المجاني: 15,000,000 - 1,000,000 = 14,000,000 طلب مدفوع. بتسعير SQS القياسي $0.40 لكل مليون، التكلفة = 14 * $0.40 = $5.60. لاحظ أن التكلفة منخفضة جدًا لأن SQS رخيص. لكن إذا استخدمت SQS FIFO (السعر $0.70 لكل مليون)، ستكون التكلفة 14 * $0.70 = $9.80. كما أن هذه الحسابات لا تشمل رسوم نقل البيانات (حوالي $0.09 لكل جيجابايت أولى). في الممارسة العملية، قد تزيد التكلفة بآلاف الدولارات إذا كانت كميات البيانات ضخمة أو إذا كان هناك زمن استجابة عالٍ. هذا المثال يوضح أهمية حجم الدفعة: الدفعة الأكبر تقلل التكلفة بشكل كبير لأنها تقلل عدد الطلبات.
الحل
عدد الطلبات في SNS: ceil(5,000,000 / 100) = 50,000 طلب. هذا أقل من الحد المجاني (1,000,000)، لذا التكلفة صفر. لكن في الواقع، إذا كانت الدفعة 1، فعدد الطلبات = 5,000,000. بعد الحد المجاني: 4,000,000 طلب مدفوع. بسعر $0.50/M = 4 * $0.50 = $2.00. بالنسبة لـ EventBridge: الحد المجاني 100,000 حدث. عدد الأحداث هنا يساوي عدد الرسائل (إذا كان كل حدث رسالة واحدة) = 5,000,000. بعد الحد المجاني: 4,900,000 حدث. بسعر $1.00/M = 4.9 * $1.00 = $4.90. المقارنة: SNS أرخص في هذا السيناريو ($2 مقابل $4.90). لكن EventBridge يوفر ميزات أفضل مثل التوجيه المتقدم والتحويل. إذا زاد عدد الرسائل إلى 50 مليون، يصبح الفرق أكبر. أيضًا، يمكن لـ SNS استخدام الدفعات لتقليل التكلفة، بينما EventBridge لا يدعم الدفعات بنفس الطريقة. هذا المثال يبرز أهمية اختيار الخدمة المناسبة بناءً على الحجم والخصائص.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة تكلفة طابور الرسائل.
مرجع — SQS بمليونَي طلب إضافي
- عدد الرسائل (مليون)
- 2.5
- حجم الدفعة
- 1
- المزود
- sqs
مرجع — ضمن الحد المجاني
- عدد الرسائل (مليون)
- 1
- حجم الدفعة
- 10
- المزود
- sqs
مرجع — حد مجاني أصغر
- عدد الرسائل (مليون)
- 1
- حجم الدفعة
- 1
- المزود
- eventbridge
مرجع — خمسة عشر مليون رسالة بلا دفع
- عدد الرسائل (مليون)
- 15
- حجم الدفعة
- 1
- المزود
- sqs
قيم مُدخَلة قياسية
- عدد الرسائل (مليون)
- 30
- حجم الدفعة
- 1,000
- المزود
- sqs
قيم مُدخَلة قياسية
- عدد الرسائل (مليون)
- 10
- حجم الدفعة
- 10
- المزود
- sqs
قيم مُدخَلة مرتفعة
- عدد الرسائل (مليون)
- 50
- حجم الدفعة
- 5
- المزود
- sns
قيم مُدخَلة منخفضة
- عدد الرسائل (مليون)
- 2
- حجم الدفعة
- 1
- المزود
- eventbridge