زنجیرهای از خرابیها پساز قطعی DNS در آمازون وب سرویس رخ و نشان داد وابستگی EC2 و NLB به DynamoDB چقدر بحرانی است.
به گزارش تکناک، قطعی اخیر آمازون وب سرویس (AWS) که میلیونها وبسایت و بازی آنلاین و حتی دستگاههای خانه هوشمند را از دسترس خارج کرد، سرانجام دلیل فنی خود را شناخت. براساس گزارش آمازون، همهچیز با پیکربندی معیوب DNS برای سرویس پایگاه داده DynamoDB آغاز شد. این خطا بهدلیل «شرایط رقابتی» (Race Condition) میان دو سیستم خودکار رخ داد:
- برنامهریز DNS (DNS Planner): سیستمی که بهصورت دورهای طرح جدیدی برای توزیع بار ترافیک ایجاد میکند.
- اجراکنندگان DNS (DNS Executors): سیستمهایی که این طرحها را دریافت و در سرویس DNS آمازون (Route53) اعمال میکنند.
تامزهاردور مینویسد که در لحظه وقوع حادثه، اجراکنندهای درحال اعمال طرح قدیمی بود که بهکندی پیش میرفت. همزمان، طرح جدید و صحیح را اجراکنندهای دیگر اعمال کرد. درست در لحظهای که سیستم درحال پاکسازی طرحهای منسوخ (ازجمله همان طرح قدیمی) بود، اجراکننده کُند کار خود را به پایان رساند و طرح قدیمی را در سیستم اعمال کرد که اکنون بهدلیل فرایند پاکسازی، حاوی اطلاعات خالی بود. این اقدام عملاً تمام ورودیهای DNS سرویس حیاتی DynamoDB را حذف و آن را از دسترس خارج کرد.

با ازکارافتادن DynamoDB، زنجیرهای از خرابیها در سراسر زیرساخت آمازون وب سرویس به راه افتاد که میتوان آن را به تصادفی زنجیرهای در بزرگراه تشبیه کرد:
- فلجشدن سرویس EC2: سیستمهای مدیریت خودکار سرویس ماشین مجازی (EC2) به DynamoDB وابسته بودند. با قطعی این سرویس، امکان ایجاد نمونههای جدید EC2 از بین رفت و صفی طولانی از درخواستهای معلق ایجاد شد. این هجوم باعث شد تا تکنسینها برای کنترل اوضاع، ایجاد نمونههای جدید را برای مدتی محدود کنند و همین امر قطعی بسیاری از وبسایتها را طولانیتر کرد.
- اختلال در متعادلکننده بار (NLB): متعادلکنندههای بار شبکه نیز که به DNS وابسته بودند، دچار مشکل شدند. تأخیر در اصلاح ورودیهای DNS باعث شد تا بسیاری از بررسیهای سلامت (Health Checks) با شکست مواجه شوند؛ حتی اگر زیرساخت اصلی سالم بود. این بررسیهای ناموفق باعث شدند که متعادلکنندههای بار، گرههای سالم را از DNS حذف کنند و مشکل را تشدید کنند.
در پی این حادثه، آمازون اعلام کرد که اقدامات متعددی برای جلوگیری از تکرار آن انجام داده است:
- غیرفعالسازی موقت: سیستمهای برنامهریز و اجراکننده DNS مربوط به DynamoDB تا زمان اعمال اصلاحیههای نرمافزاری و افزودن محافظهای بیشتر غیرفعال شدهاند.
- آزمایشهای جدید: مجموعهای از آزمایشهای جدید برای سرویس EC2 طراحی شده است تا عملکرد آن را در شرایط کاری غیرعادی شبیهسازی کند.
- کنترلهای جدید برای NLB: سازوکارهای کنترلی جدیدی به متعادلکنندههای بار اضافه خواهد شد تا میزان ظرفیتی را محدود کنند که درصورت شکست بررسی سلامت حذف میشود.
قطعی DNS در آمازون وب سرویس یادآوری مهمی است که سیستمهای کنترل خودکار با وجود ضرورتشان در دنیای رایانش ابری، به طراحی بسیار دقیق و عدم تمرکز نیاز دارند؛ ضعفی که زیرساخت آمازون در این حادثه از خود نشان داد.

















