فتح عملاء AWS حول العالم وحدات التحكم الخاصة بهم في 17 يوليو لفواتير تقدر بالملايين والمليارات، وفي بعض الحالات تريليونات الدولارات. أظهر أحد الحسابات ذات الاستخدام العادي أقل من 5 دولارات شهريًا تقديرًا بقيمة 1.7 مليار دولار. نشر أحد مستخدمي Reddit لقطة شاشة تظهر مبلغ 225,579,210,164.83 دولارًا. طالبت لوحة معلومات أخرى بمبلغ 7.1 تريليون دولار كرسوم شهرية حتى الآن، أي أكثر من ضعف القيمة السوقية لشركة أمازون. الأرقام كانت خاطئة. الفواتير الفعلية لم تتأثر أبدا. لكن الحادث استمر لأكثر من 24 ساعة، والطريقة التي تكشفت بها تكشف المزيد عن إدارة التكاليف السحابية أكثر مما تشير إليه الأرقام السخيفة.

(المصدر: موضوع Reddit AWS)

وفقًا لـ AWS Health Dashboard، بدأت المشكلة في 16 يوليو الساعة 7:46 مساءً بتوقيت المحيط الهادئ الصيفي، عندما أدى تغيير التكوين في نظام حساب الفاتورة إلى حدوث خطأ في تسعير الوحدة في مسار الفوترة المقدرة. ما حدث بعد ذلك هو الجزء الذي يجب على الممارسين قراءته مرتين. بكلمات AWS الخاصة:

في 16 يوليو الساعة 7:46 مساءً بتوقيت المحيط الهادئ الصيفي، اكتشفت إنذاراتنا حالات شاذة في التكلفة ولكنها فشلت في إيقاف عملية إنشاء الفاتورة المقدرة أو تنبيه فرقنا الهندسية. لقد تم تنبيهنا بهذه المشكلة في 17 يوليو الساعة 12:19 صباحًا بتوقيت المحيط الهادئ الصيفي من خلال تصعيد العملاء، وبدأنا على الفور في التحقيق.

لذلك انطلقت أجهزة الإنذار، ومع ذلك استمر خط الأنابيب في توليد الفواتير ولم يتم استدعاء أي مهندس. وصلت تصعيدات العملاء إلى AWS في الساعة 12:19 صباحًا، بعد أربع ساعات ونصف من إطلاق الكشف الخاص بها، مما يعني أن الشركة اكتشفت أن نظام الفوترة الخاص بها معطل لأن العملاء أخبروها بذلك. هذه هي بالضبط الطريقة التي تكتشف بها معظم الفرق الإنفاق الجامح على AWS، إلا أن الأدوار هذه المرة كانت معكوسة.

إن الآلية المحتملة وراء السبب الجذري “لتسعير الوحدة” مألوفة لدى مهندس واحد على الأقل قام بشحن هذه الفئة المحددة من الأخطاء. أحد المعلقين على Hacker News، الذي يصف تجربته المباشرة في AWS، أوضح كيف يقوم مسار الفوترة بربط بيانات القياس بخطط التسعير:

لقد تعاملت مع هذا الخطأ في AWS. إنه خطأ في الوحدة. في حالتي، كنا نقصد تحصيل رسوم مثل 5 سنت/جيجابايت، لكننا لم نستوعب الوحدة (جيجابايت)، ومن ثم يكون نظام الفوترة افتراضيًا بالبايت. 5 سنت لكل بايت من البيانات المنقولة يعني أن بعض العملاء كانوا يشاهدون فواتير MM في غضون ساعات. حصلت على الدعم في حوالي الساعة الثانية صباحًا، وتم إصلاحها وإصدار التعديلات بحلول الساعة 3-4 صباحًا، ورسائل البريد الإلكتروني الاعتذارية بعد فترة وجيزة.

وأوضح المعلق أن الخدمات تصدر قيم قياس دون إرفاق أسعار؛ يتم تعريف كل بند في خطة التسعير بنوع وحدة، ونوع وحدة خاطئ يعطل التحويل. يكمن التناقض مع هذه الحادثة في الطوابع الزمنية: انتقل هذا الخطأ السابق من الصفحة ليتم إصلاحه في ساعتين تقريبًا، بينما استمر هذا الخطأ لمدة أربع ساعات ونصف قبل أن تصل تصعيدات العملاء إلى مهندسي AWS على الإطلاق.

قدم معلق آخر تفسيرًا بنيويًا لسبب فشل الاختبار في هذه الفئة من الفشل:

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

أدى التخفيف إلى تفاقم المفارقة. بعد فشل التراجع عن تغيير التكوين في حل المشكلة، أوقفت AWS إنشاء الفواتير المقدرة مؤقتًا في الساعة 8:24 صباحًا بتوقيت المحيط الهادئ الصيفي، وتجمدت الأرقام المتضخمة في مكانها، وأوقفت تنبيهات شذوذ الميزانية والتكلفة كإجراء احترازي. طوال هذه المدة، تم تعطيل الآليتين اللتين توصي بهما AWS كشبكة أمان للتحكم في التكاليف على مستوى النظام الأساسي. أي فريق يرسل استجابات تلقائية لتلك التنبيهات، بدءًا من تصعيدات Slack إلى مرفق SCP إلى إيقاف تشغيل عبء العمل، إما تم تشغيله بواسطة البيانات الوهمية قبل الإيقاف المؤقت أو التعمية بعده.

تم افتتاح موضوع Hacker News مع مواجهة صاحب الحساب لتقدير 1.7 مليار دولار:

الاستخدام العادي هو < $5. قامت Obvs بإنشاء تذكرة دعم عاجلة لـ AWS. أي شخص آخر يرى شيئا من هذا القبيل.

كوري كوين، كبير الاقتصاديين السحابيين في The Duckbill Group، وضع المقياس في منظوره الصحيح على LinkedIn:

لقد تفاوضت على عشرات المليارات من الدولارات في عقود AWS، ولم يسبق لي أن أوصلت عميلاً إلى تريليون مرة. قام فريق Cost Explorer بذلك بين عشية وضحاها لآلاف الحسابات في وقت واحد.

قام كوين أيضًا بتسمية الارتباط التشغيلي الذي أنشأه الحادث لفرق التكلفة:

فكر في كل ممارسي FinOps الذين حصلوا على تنبيه شذوذ الليلة الماضية يقرأ “+55,000,000,000% فوق خط الأساس” وكان عليهم أن يقرروا ما إذا كان ذلك خللًا أم أننا فقط نقوم بشيء جديد.

بالنسبة لبعض العملاء، تجاوز الضرر مجرد صباح سيء. وصف بيت فان دونجن، مستشار هندسة البرمجيات في OpenValue، تصديق الأرقام لفترة كافية للعمل عليها:

لقد تلقيت إشعارًا عبر البريد الإلكتروني بشأن تنبيه تجاوز الميزانية ثم عرض Cost Explorer مبلغ 369,188,086.24 دولارًا أمريكيًا كتكاليف S3 لمشروعي الشخصي. لقد اعتقدت بصراحة أن الأمر كان حقيقيًا لمدة 10 دقائق كاملة، حتى أنني قدمت حالة دعم. لقد أزلت جميع أعباء العمل الخاصة بي في الوقت الحالي، ولا أعتقد أنني سأعود.

ربط دانييل بلومنثال، أحد رواد هندسة البرمجيات، تقديراته البالغة 843 مليار دولار بالفجوة التي أثارها عملاء AWS على مدار عقد من الزمن:

اعتقدت أن حسابي قد تم اختراقه. شعرت وكأنني أعاني من نوبة قلبية. إن حقيقة أنه يمكنك ضبط التنبيهات ولكن لا يمكنك وضع حدود صارمة على حسابك أمر مخيف للغاية.

إن القلق طويل الأمد الذي ظهر في نفس الموضوع يتجاوز الخوف نفسه. وكما قال أحد المعلقين: “إذا كان بإمكان AWS أن تخطئ بطريقة تسبب فواتير ضخمة بشكل واضح، فهذا يعني أنها لا تستطيع أن تخطئ بطرق أكثر دقة والبدء في فرض مبالغ إضافية صغيرة قد لا يلاحظها الكثير من الناس ويدفعونها فقط.” التقديرات السخيفة تعلن عن نفسها. تلك المعقولة لا تفعل ذلك.

يبدو التوقيت غريبًا بالنسبة لأي شخص يتابع محادثة التكلفة السحابية. غطت InfoQ النمط قبل أيام من وقوع الحادث: يقوم الممارسون بتوثيق كيفية تأخر بيانات فوترة AWS لمدة 24 ساعة تقريبًا عن الإنفاق الفعلي، وكيفية تقييم إجراءات الميزانية مقابل تلك البيانات المتأخرة، وكيف جاء اكتشاف الحوادث الحقيقية من بطاقة الائتمان بدلاً من AWS. يعكس حادث تقدير الفواتير الفشل. هذه المرة كانت البيانات سريعة وخاطئة بدلا من أن تكون بطيئة وصحيحة، ولكن الدرس البنيوي متطابق. يعد قياس الفوترة عن بعد بمثابة تبعية لها أوضاع الفشل الخاصة بها، وترث عناصر التحكم التلقائية في التكلفة كل واحدة منها.

قامت AWS بحل المشكلة وأكدت أن التقديرات المعروضة لم تعكس أبدًا الرسوم الفعلية. لم تنشر الشركة تقريرًا تفصيليًا بعد الوفاة يتجاوز الجدول الزمني لـ Health Dashboard، ولم تذكر ما إذا كانت فجوة التنبيه إلى الإجراء، أو التراجع الفاشل، أو قرار تعطيل تنبيهات الميزانية على مستوى النظام الأساسي سيؤدي إلى تغييرات في حواجز الحماية الخاصة بخط أنابيب الفواتير. بالنسبة للنظام الذي تتمثل مهمته في تحذير الجميع بشأن الإنفاق غير الطبيعي، فإن السؤال المفتوح هو من الذي يحذره.



شاركها.
اترك تعليقاً