Serverless التسعير والتكاليف: AWS Lambda

مرحبا يا هبر! أحاول جعل الترجمات أفضل وسأكون سعيدًا بانتقاداتك.
(ملاحظة: الأسعار دقيقة اعتبارًا من أغسطس 2018)

يحتوي AWS Lambda على 263 خطًا مع علامات أسعار فريدة. على سبيل المثال ، قد يطلق عليها "تسريع InterRegion الوارد باستخدام مواقع الحافة خارج الولايات المتحدة أو أوروبا أو اليابان ، من الاتحاد الأوروبي (باريس) إلى الاتحاد الأوروبي (لندن)" ، وتكون موجودة في كل من المناطق الـ 17. في المجموع ، هذه 4،471 وظيفة فردية يمكن تحرير فاتورة لك عند إكمال Lambda.

بالإضافة إلى ذلك ، هناك 635،035 وظيفة لخدمة EC2 ، 12،261 لـ Route53 و 15،283 لـ API Gateway. في المجموع ، لدى Amazon Web Services أكثر من مليون سعر فردي للخدمات المختلفة. سياسة التسعير الخاصة بهم معقدة للغاية بحيث يوجد واجهة برمجة تطبيقات كاملة لمراجعة الأسعار. مع ذلك ، حصلت على هذه الأرقام (على الرغم من عدم تضمين Lambda في حاسبة السعر).

أسعار لامدا غير بديهية للغاية: أولاً ، يتم استخدام المستوى المجاني لطلبات المليون الأولى ، متبوعًا بسعر 0.20 دولار لكل طلبات مليون لاحقة ، بالإضافة إلى 0.00001667 دولار لـ GB-seconds من "وقت الحساب" المستخدم خلال الشهر ، بما يزيد عن والذي يكلف عبّارة API (3.50 دولار لكل مليون طلب) لإرسال طلبات HTTP إلى Lambda. ستتم محاسبتك أيضًا على أي عملية نقل لبيانات Lambda الخاصة بك (0.09 دولارًا لكل جيجابايت) ، وكذلك لأي استفسارات إلى Dynamo DB.

ما هو "حساب الوقت"؟


وجدنا أنه يتم دفع 0.00001667 دولارًا لكل جيجابايت في الثانية من وقت الحوسبة في Lambda. غيغابايت الثانية هي وحدة غريبة بعض الشيء ، ألا تجد؟ قد يعني هذا عدد الثواني عند استخدام 1 غيغابايت من الذاكرة ، ولكنه في الواقع هو عدد الثواني التي تم فيها إجراء العمليات الحسابية ، مضروبة في عدد غيغابايت التي تم تخصيصها لهذه العمليات الحسابية.

بالنسبة لأولئك الذين لا يحبون microcenters كوحدة قياس ، قمت بتجميع الأرقام في رسم تخطيطي يوضح مقدار الذاكرة ووقت وحدة المعالجة المركزية التي تحصل عليها من 1-6 دولار لكل مليون طلب:

صورة

تنشر Amazon أسعارًا لا تتضمن رسومًا أساسية قدرها 0.20 دولار ، لكنني أدرجتها في حساباتي.

وما هو ميلي ثانية واحدة من وقت المعالج؟ تمثل الحوسبة بالميللي ثانية في Apple II 3000 دورة للمعالجات. على جهاز الكمبيوتر المحمول Intel i7 ، تبلغ 4 ملايين دورة. في حالة Amazon ، فإنها تزيد من سرعة المعالج اعتمادًا على مقدار الذاكرة التي تستخدمها. بمعنى آخر ، أدائك هو وقت دورة ذاكرة وحدة المعالجة المركزية (CPU) ، حيث يتناقص وقت دورة وحدة المعالجة المركزية ، بما يتناسب مع الذاكرة المستخدمة. يستمر تسريع وحدة المعالجة المركزية (CPU) حتى ينفد مورد لب معالج واحد ، وبعد ذلك يتم تزويدك بموارد المركز الثاني ، والتي قد تكون مفيدة أو غير مستعملة على الإطلاق ، بناءً على بناء التطبيق الخاص بك.

مع وضع هذه التفاصيل في الاعتبار ، قمت بتعديل المخطط لإظهار مقدار وقت وحدة المعالجة المركزية الفعلي الذي تحصل عليه. ركزت على معالجات الخوادم المعتادة التي استخدمناها في الاختبارات المقارنة.

صورة

كما ترون من الرسم التخطيطي ، لا يهم إذا قمت بتشغيل Lambda من 1024 ميغابايت مقابل 100 مللي ثانية أو 128 ميجابايت مقابل 800 مللي ثانية ، فستحصل على نفس المبلغ من الحسابات وتدفع نفس القيمة. أكثر من 1024 ميجابايت ، يمكنك تحقيق أداء مركز واحد للمعالج وتبدأ في الحصول على قوة المركز الثاني (إذا كان تطبيقك ذو مؤشرات ترابط متعددة ويمكن استخدامه).

التقريب


بالإضافة إلى ذلك ، يتم تقريب وقت المعالج إلى أقرب 100 مللي ثانية ، مما يعني أنه حتى lambda البسيط الذي يعرض الوقت الحالي في اختباراتنا كلفنا 0.41 مليون دولار للمكالمات. بطبيعة الحال ، نادراً ما يعمل Lambda الخاص بك بالعدد الدقيق من الألف من الثانية التي تضاعف 100. في كثير من الأحيان ، ستستخدم قدرًا من مللي ثانية ستدفعها أمازون لحساب المبلغ الذي ستدفعه. نظرًا لأنه يتم تقريبها دائمًا ، فهذا يعني أنك سوف تدفع أكثر من 50 مللي ثانية من وحدة المعالجة المركزية لكل مكالمة:

صورة

بوابة API


يمكن لـ AWS Lambda تنفيذ مجموعة متنوعة من المهام داخل Amazon. ولكن أولاً وقبل كل شيء ، فهي مثيرة للاهتمام بالنسبة لنا لإنشاء تطبيقات الويب دون خادم. ولهذا الغرض ، لا يمكن استخدام lambda مباشرةً ، لأنه يحتاج إلى نوع من خادم HTTP قادر على تحويل الطلب إلى واجهة برمجة تطبيقات Lambda. أسهل طريقة للقيام بذلك هي استخدام واجهة برمجة تطبيقات Amazon Gateway.

تكلفة API Gateway هي 3.50 دولار لكل مليون طلب ، والتي غالباً ما تتجاوز تكلفة Lambda نفسها. فيما يلي الرسم البياني أعلاه ، لكن تم ضبطه على بوابة API:
صورة

ستلاحظ أن خطوط 1 و 2 و 3 دولارات قد اختفت من المخطط. الحد الأدنى المطلق هو 3.91 / مليون طلب ، على افتراض أن Lambda يستهلك القليل جدًا من وحدة المعالجة المركزية.
سيكون عليك أيضًا دفع رسوم المرور ورسوم الساعة الإضافية إذا كنت تريد استخدام التخزين المؤقت.

طريق 53


أمازون Route53 DNS فهو أيضًا ليس مجانيًا. في أول مليار استعلام ، تبلغ التكلفة 0.40 دولار لكل مليون استعلام DNS. وبذلك يرتفع الحد الأدنى للتكلفة الإجمالية إلى 4.31 مليون دولار.

المزيد من النفقات


حساب جميع التكاليف يمكن أن يكون مملا. تكلف سجلات CloudWatch 0.50 دولار لكل جيجابايت. في الوقت نفسه ، فإن 0.09 دولار لكل غيغابايت من حركة المرور سوف تؤثر بشكل كبير على الحساب.

لامدا @ الحافة


توفر Amazon طريقة لتشغيل الشفرة من خلال خدمة Cloudfront CDN. هناك تكاليف ثابتة ومتغيرة أكثر بثلاث مرات من Lambda التقليدية.

لاستخدام Lambda @ Edge لطلبات HTTPS ، عليك أولاً شراء Cloudfront مقابل 1 مليون دولار من الطلبات. أنت تدفع أيضًا تكلفة النطاق الترددي ، والتي يمكن أن تصبح بسهولة عنصر النفقات الرئيسي. إذا كان موقعك يستوعب 1 ميغابايت ، فسوف ينتهي بك الأمر إلى دفع ما يصل إلى 85 مليون دولار للنطاق الترددي Cloudfront فقط ، أو 250 دولارًا لمناطق مثل أمريكا الجنوبية. بالإضافة إلى 20 دولارًا / لكل مليون طلب إضافي يجب أن تعود إلى المرسل.

إليك المبلغ الذي يتعين عليك دفعه في النهاية لحسابات Lambda @ Edge فقط:

صورة

Source: https://habr.com/ru/post/ar481664/


All Articles